1、网络基础
1.1、传输流程
- 域名换取ip地址
- IP:地址 + 端口
- 建立连接(
三次握手) - 传输
请求头head - 空行 +
请求体body - 在不需要连接时断开连接(
四次挥手)
1.1.1、TCP三次握手
-
TCP三次握手的过程其实就是在:确认通信双方(客户端和服务端)的序列号
SYN:同步序列号,解决网络包乱序的问题(随机产生一个值seq)ACK:确认标识,解决网络包丢失问题
-
TCP头部格式
- SYN为1时,表示希望创建连接
- ACK为1时,确认号字段有效
- FIN为1时,表示希望断开连接
- RST为1时,表示TCP连接出现异常,需要断开
-
TCP握手流程
- 发送端 超时未接收到接收端的应答ACK包时,发送端会重发,超过最大限制后断开
-
客户端请求连接 --> 服务器同意连接 --> 客户端收到服务器同意回复
-
三次握手防止出现
失效的连接请求报文段被服务端接收的情况,从而产生错误
1.1.2、四次挥手
-
TCP挥手流程
MSL:报文最大生存时间,它是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃- 2MSL 是报文一来一回的时间,超过 2MSL 客户端还没收到报文说明服务端已经正常关闭,这样客户端就可以关闭连接了
-
客户端请求断开(
客户端停止发送) --> 服务器确认断开请求(服务器停止接收、等待最后一条数据发送完毕) --> 服务器请求断开(服务器停止发送) --> 客户端确认断开请求(客户端停止接收) -
四次挥手
防止服务端向客户端发送的数据接收不完整(如果客户端没收到最后的数据,服务端自顾自的关闭了链接就导致数据传输不完整)
1.2、OSI七层模型
- 应用层协议:HTTP、DNS
- 传输层协议:TCP、UDP
- 网络层协议:IP
- 应表会传网数物
成帧化:数据不能一次传输完成,要进行分段MTU:最大传输单元(576 ~ 1500字节)MSS:最大分段大小(536字节)