林沛满-TCP 是如何避免被发送方分片的?

TCP 可以避免被发送方分片,是因为它主动把数据分成小段再交给网络层。最大的分段大小称为 MSS(Maximum Segment Size),它相当于把 MTU 刨去 IP头和 TCP 头之后的大小,所以一个 MSS 恰好能装进一个 MTU 中。

图4

图 4 演示了 MSS 和 MTU 的关系。有的时候 TCP 头不只 20 字节,所以会侵占一些 MSS 的空间,比如图 5 的例子中就占用 12 字节作为 TCP Options,那传输层真正用来承载数据的就剩下 1500-20-20-12=1448 字节了。这些字节数都能在Wireshark 中看到。这就是为什么我向网络教师们大力推荐 Wireshark,演示时真是一目了然。

图5

UDP 则没有 MSS 的概念,一股脑交给网络层,所以可能被分片。分片和重组都会影响性能,所以 UDP 在这一点上比 TCP 落后一些

相关推荐
砍材农夫7 分钟前
物联网 MQTT订阅性能优势
网络·物联网
无名的小三轮7 分钟前
VMware的三种网卡模式介绍
网络·智能路由器
深邃-9 分钟前
【Web安全】-计算机网络协议(1):IP协议详解,HTTP协议介绍
linux·tcp/ip·计算机网络·安全·web安全·http·网络安全
yyuuuzz13 分钟前
国际云服务商使用的常见问题分析
运维·服务器·网络·云计算·github·aws
minji...17 分钟前
Linux 网络基础(五)守护进程化,前后台进程组,作业,会话,setsid(),daemon(),端口号频繁更换问题
linux·运维·服务器·网络·c++·tcp/ip
Tipriest_24 分钟前
【TBB】多生产者、多消费者(MPMC) 队列concurrent_queue介绍
网络·数据库
录大大i25 分钟前
javaWeb中使用AES256+RSA网络数据加密
java·网络·网络安全
key_3_feng26 分钟前
TCPDump 实际抓包案例及故障分析
网络·测试工具·tcpdump
jimy136 分钟前
Oracle的e2.1.micro免费实例安装tailscale后,设置为出口节点(Exit Node)
服务器·网络·oracle
庞轩px42 分钟前
第三篇:SpringMVC——一个HTTP请求在Spring中经历了什么?
网络协议·spring·http·springmvc·handlermapping·前端控制器