0
点赞
收藏
分享

微信扫一扫

网络:TCP分隔数据以及MSL、MTU、MSS的关系

水沐由之 2022-03-30 阅读 50
leetcodeC++

TCP 分割数据

如果 HTTP 请求消息比较长,超过了MSS 的长度,这时 TCP 就需要把 HTTP 的数据拆解成一块块的数据发送,而不是一次性发送所有数据。
在这里插入图片描述

  • MTU :一个网络包的最大长度,以太网中一般为 1500 字节。
  • MSS :除去IPTCP头部之后,一个网络包所能容纳的 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,最大报文长度)

  • 指的是除去IPTCP头部之后,一个网络包所能容纳的 TCP 数据的最大长度。
  • 如果 HTTP 请求消息比较长,超过了MSS 的长度,这时 TCP 就需要把 HTTP 的数据拆解成一块块的数据发送,而不是一次性发送所有数据。
  • 数据会被以 MSS的长度为单位进行拆分,拆分出来的每一块数据都会被放进单独的网络包中。也就是在每个被拆分的数据加上TCP 头信息,然后交给 IP 模块来发送数据。
举报

相关推荐

0 条评论