免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5321 | 回复: 4
打印 上一主题 下一主题

[网络管理] TCP分片? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-04 09:58 |只看该作者 |倒序浏览
我们知道,IP层外发数据是会根据MTU进行分片。

TCP这层也需要分片吗?根据MSS的值?如果需要分片的话,为什么不集中在IP层做,TCP又自己做?

论坛徽章:
0
2 [报告]
发表于 2010-02-04 10:28 |只看该作者
我们知道,IP层外发数据是会根据MTU进行分片。

TCP这层也需要分片吗?根据MSS的值?如果需要分片的话,为 ...
C.J 发表于 2010-02-04 09:58


是的,TCP 也会分片,是根据握手时的 MSS 指定的,分片处理过程由 TCP 协议栈内部完成,与 IP 栈和 netfilter 无关

论坛徽章:
0
3 [报告]
发表于 2010-02-04 10:34 |只看该作者
在看内核 GSO, 本来一直以为IP分片就好了,没想到TCP更需要分片。谢谢了,下面是我的理解。不知道对不对。

Segmentation Offload
这是针对传输层的分片操作。还是说TCP,如果TCP发送一个超大的报文到IP层,IP必须将其分片才能发送出去;同样,对方必须收到所有分片,经过重组才能发往上层。这带来的后果是:分片和重组的开销、分片多,丢包的可能性增大×。如果在传输层就将其分片,其中分片的长度(MSS)是考虑到下层的分片参数(MTU),就不需要在IP层进行分片了,发送出去的报文也能够直接到达对方传输层。
这样看来,传输层分片是必要的,增加开销也是必然的。如果对该层的分片放在硬件上,势必会降低开销、提高性能,后来,确实出现了这样的网卡(如e1000),它们接收超大TCP报文,将其根据其MTU分片,再传输,该技术称之为TSO(TCP Segmentation Offload)。

×在TCP分片,也会有丢包可能,不过TCP有重传机制

论坛徽章:
0
4 [报告]
发表于 2010-02-04 11:46 |只看该作者
你理解的没有问题
1、TCP 分片后无需 IP 分片
2、TCP 分片也有可能丢失,但 TCP 协议有重传机制
3、IP 和 TCP 甚至 UDP 都有硬件重组功能(GSO、TSO、UFO)

论坛徽章:
0
5 [报告]
发表于 2010-02-07 21:44 |只看该作者
TCP的segment是为了到IP层不再需要分片
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP