- 以下是前端需要知道的
TCP协议
- TCP处于传输层,基于端口,面向连接
- 主机之间要想通信需要先建立双向数据通道
- TCP的握手和挥手本质上都是四次
建立TCP连接
- 先建立连接(确保双方都有收发消息的能力)
- 再传输内容(如发送给一个get请求)
- 网络连接是TCP协议,传输内容是HTTP协议
三次握手
常见控制字段
- SYN=1 表示请求建立连接
- FIN=1 表示请求断开连接
- ACK=1 表示数据信息确认
第二条和第三条可以同时传,然后合并所以简化为 三次握手
四次挥手
- 为什么第二条服务端消息确认和第三条服务端请求断开不合并?
- 因为当客户端对服务器说:"我没有请求了的时候",这时服务端不能保证已经完全把之前客户端请求的数据传给客户端了,有可能还正在传,所以这个时候服务器收到请求后先返回一个消息确认给客户端,等自己把客户端的数据传完以后,再发一条请求断开连接,所以这两条不能合并。