为什么tcp没有长度,而udp有

突然想到这个问题.转载http://www.itye.org/archives/3087,相对来说解释比较合理.但stevens的可能两字还是不爽,但是历史原因谁能说全呢?协议制定人,不同人不同角度,再说规则的制定前后并不是给你去对比统一的.何必钻牛角呢?如此想来,也是正常的,辩证看待问题.你才会有更宽的视野.


IP的头部包换数据的长度,TCP的头部不包含数据长度,UDP的头部则包含。

从信息冗余的角度来看,UDP的长度信息是不需要的。

因为IPv4的头部已经包含了数据的长度信息,这里的数据如果当前的通讯协议是UDP,那么这个长度就包含了UDP的头部和UDP的数据,因为UDP的头部长度固定为8字节,那么这样就很容易的算出UDP的数据的长度了。

根据 《TCP/IP Illustrated Volume 1》,这个信息也是冗余的。这是Stevens关于这个问题的描述,关于Stevens是谁,为什么要引用他说的话,是因为他写了

TCP/IP Illustrated的1,2,3卷,而这本书可以说是解析TCP/IP协议的圣经。

那又是什么原因致使UDP的头部包含了这个冗余信息呢?

Stevens在卷2中提到很有可能是为了校验和校验,确切的说是32对齐,因为如果没有这这部分信息,那么UDP的头部就不是32对齐的。

在TCP/IP协议族中,所谓校验和就是16bit的和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值