免费注册 查看新帖 |

Chinaunix

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

关于内核TCP重组的函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-17 10:45 |只看该作者 |倒序浏览
请教高手,linux内核2.6中关于ip重组的函数是ip_frag,那么关于tcp重组的函数是什么?

论坛徽章:
0
2 [报告]
发表于 2007-12-17 18:23 |只看该作者
?
不明白你的意思, 协议你仔细看了没有? TCP包是在IP包之上的, IP包重组了, TCP包不也就重组了吗?

论坛徽章:
0
3 [报告]
发表于 2007-12-18 18:04 |只看该作者
发送很大数据的时候是先在TCP分包,再IP分片吧. 那接收很大的数据不是一样的吗?
比如我tcp送655350字节的数据,先再tcp层分为65535大小的ip包10个,再在ip层分为1024大小的ip包65535/1024个,再发送出去.
是这样吧

论坛徽章:
0
4 [报告]
发表于 2007-12-18 23:53 |只看该作者
TCP 协议有 MSS 选项,这样就不用在 IP 层分片了

论坛徽章:
0
5 [报告]
发表于 2007-12-19 12:00 |只看该作者
谢谢 yikaikai  platinum的回答
我想知道的是在2.6内核的tcp/ip协议栈中,数据是如何实现tcp层的重组的?

论坛徽章:
0
6 [报告]
发表于 2010-03-11 09:48 |只看该作者
这个问题MS没有答案???

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-11-17 06:20:00
7 [报告]
发表于 2010-03-11 14:13 |只看该作者
回复 1# qps104


    正在阅读tcp部分的实现代码,不能给出精确的答案。但是原理上tcp和分段没有关系,tcp的数据是封装在IP报文中的,只要IP被正确重组后,那么tcp的内容自然就可以被直接合并在一起了

论坛徽章:
0
8 [报告]
发表于 2010-03-11 14:33 |只看该作者
回复  qps104


    正在阅读tcp部分的实现代码,不能给出精确的答案。但是原理上tcp和分段没有关系,t ...
jiufei19 发表于 2010-03-11 14:13



    不是这样的,你说的是TCP协议内核实现吧?应该不是TCP Segment重组实现。TCP是流式协议,面向字节流的,但是由于IP传输的特性,需要分段传输,TCP会根据协商的MSS进行分段传输,IP层会根据Path MTU进行分片fragment(注意不是分段segment)。

举个例子或许更加清晰:比如100kB的数据需要使用TCP协议传输,我们知道IP传输的最大报文时64K,而以太网帧的最大frame长度基本上是1518(包含FCS),TCP是面向连接和流控的协议,所以TCP会对需要传输的数据进行分段segment,然后通过IP传输出去。如果没有启用selective ack,那么每个分段都需要确认。再说个实际例子,你用FTP下载个100MB的东西,那肯定不是一个IP包传输过来的饿,肯定是很多tCP分段传输过来的,FTP根据协议重组为你的文件或者其他格式数据。

我也研究很久HTTP over TCP的重组,TCP的分段比较复杂,结合HTTP协议分析,会简化细节,不过我也么有搞清楚细节,研究中。。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-11-17 06:20:00
9 [报告]
发表于 2010-03-12 09:44 |只看该作者
回复 8# samzc2010


    恩,关键是tcp的分段大小是怎样选择的,如果要避免最后封装在IP报文中被进行分片,则在选择大小是可能就和PMTU有关,这样选择的MSS大小才不会被中间节点分片

论坛徽章:
0
10 [报告]
发表于 2010-03-12 09:54 |只看该作者
回复 9# jiufei19


    这个很难控制,TCP根据协商的MSS以及IP MTU分割TCP的分段,但是不能保证在传输路径上经过其他IP设备时添加其他协议封装后IP包超过MTU,不如VLAN tag或者其他的IP over IP或者GTP封装等协议封装,从而导致再次的ip碎片产生。这个问题相对比较复杂。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP