免费注册 查看新帖 |

Chinaunix

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

请教一个tcp [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-19 15:16 |只看该作者 |倒序浏览
请教一个问题

tcp发送一个包,最大可以发送多少字节??(我个人认为tcp发送一个包时,包的大小没有限定,数据包到ip
                                                    层自动拆包,到达目的地后自动组包,我们只管收一个整包就
                                  可以了,所发我们只管发,只管收就可以了,而且还是一个完整的包)


请哪个指点?????

论坛徽章:
0
2 [报告]
发表于 2006-06-19 15:29 |只看该作者
基本上就是你想的那样

论坛徽章:
0
3 [报告]
发表于 2006-06-19 15:37 |只看该作者
那udp呢???也应该是吧,也是ip层拆包,组包吧??

但是我用udp时,最多也就1500左右,这个怎么理解呢???

论坛徽章:
0
4 [报告]
发表于 2006-06-19 16:05 |只看该作者
udp 是报文;
tcp 是流.

如果把你的数据看成是一桶水,并且希望倒入第二个桶中,那么udp相当于用杯子一杯一杯的舀,然后倒入第二个桶中,而tcp相当于用一根管子连接两个水桶,慢慢将水流入第二个桶中.

论坛徽章:
0
5 [报告]
发表于 2006-06-19 16:06 |只看该作者
补充一句,那个杯子的大小就是你说的1500...

论坛徽章:
0
6 [报告]
发表于 2006-06-19 17:00 |只看该作者
Internet 协议 (IP) 是针对由以太网、帧中继等多种网络技术构成的网络的应用而设计的。每种网络技术都有不同的最大传输单元 (MTU),即其能发送的帧的最大大小。IP MTU 就是所能发送的 IP 包的最大大小。以以太网为例,以太网的 MTU 为 1526 字节。减去报头和报尾的大小(共 26 字节),以太网的 IP MTU 为 1500 字节。

为了适应各种网络技术不同的 IP MTU,IP 允许路由器将数据包进行分段。例如,如果数据包的大小超过了转发它的链路所允许的范围,则 IP 路由器会对数据包的有效负载进行分段,然后作为一个个的 IP 包(称为分段)进行发送。

虽然 IP 的这个特性考虑了网络层的独立性,但它也会长时间占用处理器并占用大量内存,进而对 IP 路由器的性能产生实质性的影响。因此,包括 Internet 在内的现代 IP 网络都通过以下方法避免由路由器对 IP 包进行分段:
•       

发送基于 UDP 的通信时,将 UDP 消息的最大大小设置为足够小,以防止 IP 路由器进行分段。
•       

发送基于 TCP 的通信时,将 IP 报头中的“不分段”(DF) 标记设置为 1,阻止 IP 路由器对 TCP 数据段进行分段。

当 TCP 对等方建立 TCP 连接时,它们会交换各自的 TCP 最大段大小 (MSS) 值。TCP 对等方会使用这两个 MSS 值中的较小值来建立 TCP 连接。以前,主机的 MSS 值是 MTU 减去用于 IP 和 TCP 报头的 40 字节。但是,为了支持额外的 TCP 选项(如时间戳和可选确认),典型的 TCP 和 IP 报头可增至 52 字节或更多字节。

当路由器必须将 IP 包分段但又因 DF 标记设置为 1 而不能分段时,路由器可采用以下任一种方式:
•       

发送符合 RFC 792 中最初定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。

原始消息格式中不包含有关转发失败的链路的 IP MTU 的信息。
•       

发送符合 RFC 1191 中重新定义的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,然后丢弃该包。此新消息格式包含一个 MTU 字段,可指出转发失败的链路的 IP MTU。

RFC 1191 定义了路径 MTU (PMTU) 发现,它使得成对的 TCP 对等方能够动态地发现二者之间路径的 IP MTU,从而发现该路径的 TCP MSS。一旦收到符合 RFC 1191 定义的“Destination Unreachable-Fragmentation Needed and DF Set”消息,TCP 就会将该连接的 MSS 调整为指定 IP MTU 减去 TCP 和 IP 报头的大小。这样,在该 TCP 连接上发送的后续包就不会超过最大大小,无需分段即可在该路径上传输。
•       

直接丢弃包。

直接丢弃需分段但 DF 标记设置为 1 的包的路由器称为 PMTU 黑洞路由器。

[ 本帖最后由 crspo 于 2006-6-19 17:01 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP