为什么TCP协议使用32位的序号

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:36:29
为什么TCP协议使用32位的序号,而不是采用3位或7位的序号?(因为序号实际上属于控制字段,是一种开销,序号位数少就可以节省额外开销,但是TCP为什么却使用这么长的序号字段呢?

我来说两句:
你说的也有些道理,但是对大量的数据包是不行的,因为TCP协议使用32位的序号是为了给数据包编号,
因为编了号,所以可以确认数据包是否被收到。对序列号的确认是累积性的,也就是说,如果用户收到对X的确认信息,这表示在X以前的数据(不包括X)都收到了。在每个段中字节是这样安排的:第一个字节在包头后面,按这个顺序排列。我们需要认记实际的序列空间是有限的,虽然很大,但是还是有限的,它的范围是0到2的32次方减1。(采用3位或7位的序号,范围只能在0到2的7次方减1,太小了)
另外为了电脑运算的方便,熟悉编程的一定知道为什么要在计算两个段是不是相继的时候要使用2的32次方为模了。
下面这篇文章对你可能有些帮助:http://hi.baidu.com/deathangel/blog/item/dd23b5efa5b3f216fcfa3cea.html