计算机网络面经
文章目录
- 1
- 基础
- 浏览器中输入URL后发生了什么 1
- mac地址的作用 1
- HTTP
- HTTP报文结构 (注意)
- RPC和http的区别 1
- https和http区别 1
- TLS4次握手:
- SSL连接过程
- 非对称加密和对称加密
- CA具体如何实现数字签名认证的
- 摘要算法
- https用的对称密钥还是非对称密钥,原理,建立连接的过程
- 你了解的网络攻击方式有哪些,SYN攻击的防范方法
- get和post区别 1
- http中常见的状态码
- 强缓存和协商缓存
- http1.0与http1.1的区别,2.0与1.1的区别,3.0了解过吗
- 1.0与1.1:
- 2.0与1.1:
- 3.0:
- 长轮询和短轮询
- websocket协议:
- TCP
- TCP报文结构(注意)
- Socket通信的基本流程,使用的函数,TCP三次握手对应了socket里面的哪些流程
- TCP中的端口有什么作用
- TCP三次握手过程 1
- TCP四次挥手过程
- TCP慢启动算法讲一下(拥塞控制算法流程)
- TCP和UDP区别
- 如何去优化TCP传输协议,若在跨服务,较长链路情况下
- tcp粘包怎么处理:约定bit数切割
- 为什么TCP要设置MSS(最大报文长度)
- 如何通过UDP实现可靠传输
- TCP怎么实现可靠传输
- 流量控制和拥塞控制的区别
- TCP如何判断网络是否拥塞
- 详细的流量控制说一下/滑动窗口的原理是什么,如何保证消息的顺序
- 怎么知道是不是达到发送窗口的阈值
- 什么是零窗口
- IP
1
1 stand for 背过一遍
基础
浏览器中输入URL后发生了什么 1
1、当用户在浏览器中输入网址时,首先会进行DNS解析,将域名转换为对应的IP地址。浏览器会向本地DNS服务器发出DNS查询请求,如果本地DNS服务器缓存了该域名的IP地址,则直接返回;否则,本地DNS服务器会向根域名服务器、顶级域名服务器和权威域名服务器依次发出查询请求,直到获取到域名的IP地址;
2、浏览器获得域名对应的IP地址以后,浏览器向服务器请求建立TCP连接,发起三次握手;
3、TCP/IP连接建立起来后,浏览器向服务器发送HTTP请求;
4、服务器收到请求根据路径找到对应控制器处理请求,并将结果返回给浏览器;
5、浏览器解析渲染,遇到js,css等静态资源引用时,再次重复上述步骤;
6、最终呈现完整页面。
mac地址的作用 1
唯一标识网络设备的硬件地址。
通常情况下,可以认为一个网络端口对应一个 MAC 地址。在某些情况下,一个端口可能对应多个 MAC 地址(端口聚合(链路聚合)),或者多个端口对应同一个 MAC 地址(虚拟网络接口、虚拟机)。
HTTP
HTTP报文结构 (注意)
请求行:请求方法get/post,url,http版本
请求头:用户标识,请求体长度,类型,cookie
请求体:内容
状态行:状态码,状态消息、(http版本)
响应头:内容长度,内容类型
响应体:内容
RPC和http的区别 1
RPC(Remote Procedure Call)是远程过程调用,允许一个程序调用位于另一台计算机上的子程序或服务,就像调用本地函数一样,相较于http更专注于远程过程调用和高效的通信;
而HTTP则更适用于传输超文本和其他资源。
https和http区别 1
- 端口不同:HTTP使用的是80端口,HTTPS使用443端口;
- 安全性不同:HTTP(超文本传输协议)信息是明文传输,HTTPS运行在SSL/TLS(Secure Socket Layer)之上,添加了加密和认证机制,更加安全;
- HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- HTTPS通信需要证书,一般需要向证书颁发机构(CA)购买
- HTTPS由于加密解密会带来更大的CPU和内存开销;
TLS4次握手:
客户端发起加密通信请求,协商加密和摘要算法->
服务端确定加密和摘要算法和数字证书(CA)->
客户端校验证书,取出公钥,对前面协商的2个随机数+再生成一个随机数加密成【会话密钥】,后续使用这个密钥加密传输;发送随机数+加密方式改变+握手结束通知->
服务器使用私钥生成【会话密钥】,握手结束。
SSL连接过程
协商加密和摘要算法->返回证书-> 验证证书合法性,利用公钥获得数字签名->公钥加密对称秘钥和对称秘钥加密的报文摘要->服务器根据私钥获得对称秘钥,解密报文摘要,和计算的报文摘要对比->ssl建立完成
非对称加密和对称加密
对称加密:加密和解密采用相同的密钥。如:DES、RC2、RC4 非对称加密:需要两个密钥:公钥和私钥。如果用公钥加密,需要用私钥才能解密。如:RSA * 区别:对称加密速度更快,通常用于大量数据的加密;非对称加密安全性更高(不需要传送私钥)
对称密钥加密来保证通信内容的保密性和传输效率,同时使用非对称密钥加密来保证通信双方的身份验证和会话密钥的安全传输。
CA具体如何实现数字签名认证的
服务器把自己的公钥注册到CA
CA用自己的私钥将服务器的公钥数字签名并颁发数字证书
客户端拿到服务器的数字证书后,使用CA的公钥确认服务器的数字证书的真实性
从数字证书获取服务器公钥后使用它对报文加密后发送,服务器用私钥对报文解密
摘要算法
客户端在发送明⽂之前会通过摘要算法算出明⽂的摘要值,发送的时候把「摘要值 + 明⽂」⼀同加密成密⽂后,发送给服务器,服务器解密后,⽤相同的摘要算法算出发送过来的明⽂,通过⽐较客