TCP 分割数据
如果 HTTP 请求消息比较长,超过了MSS
的长度,这时 TCP 就需要把 HTTP 的数据拆解成一块块的数据发送,而不是一次性发送所有数据。
MTU
:一个网络包的最大长度,以太网中一般为 1500 字节。MSS
:除去IP
和TCP
头部之后,一个网络包所能容纳的 TCP 数据的最大长度。
数据会被以 MSS
的长度为单位进行拆分,拆分出来的每一块数据都会被放进单独的网络包中。也就是在每个被拆分的数据加上TCP
头信息,然后交给 IP 模块来发送数据。
MSL、MTU、MSS
(1) MSL(Maximum Segment Lifetime,报文最大生存时间)
- TCP Segment在网络上的存活时间不会超过MSL(RFC793定义了MSL为2分钟,Linux设置成了30s)
(2)MTU(Maximum Transmission Unit,最大传输单元) - 一个网络包的最大长度,以太网中一般为 1500 字节。
- 数据帧过大或过小都会影响传输的效率
- 路径MTU由链路中MTU的最小值决定
(3) MSS(Maximum Segment Size,最大报文长度)
- 指的是除去
IP
和TCP
头部之后,一个网络包所能容纳的 TCP 数据的最大长度。 - 如果 HTTP 请求消息比较长,超过了
MSS
的长度,这时 TCP 就需要把 HTTP 的数据拆解成一块块的数据发送,而不是一次性发送所有数据。 - 数据会被以
MSS
的长度为单位进行拆分,拆分出来的每一块数据都会被放进单独的网络包中。也就是在每个被拆分的数据加上TCP
头信息,然后交给 IP 模块来发送数据。