为什么tcp实现使用字节序列号而不是段号进行流控制?
对于流控制,tcp使用为什么tcp实现使用字节序列号而不是段号进行流控制?,tcp,Tcp,对于流控制,tcp使用序列号和确认号,这是段中的起始字节号 当发送或接收段时,它作为一个整体进行。因此,从套接字的角度来看,要么接收到整个段,要么丢失包含该段的完整数据包 例如: 这些线段创建为 第1部分:序号1至序号1000 第2部分:序号1001至序号2000 第3部分:2001年至3000年 如果包含段2(seq 1001到2000)的分组被丢弃,则接收端或者不接收seq 1000到2000。没有一种方式可以接收部分片段。因此,接收器发送1001的ack 在实现TCP时,创建者为什么不使用
序列号
和确认号
,这是段中的起始字节号
当发送或接收段时,它作为一个整体进行。因此,从套接字的角度来看,要么接收到整个段,要么丢失包含该段的完整数据包
例如:
这些线段创建为
第1部分:序号1至序号1000
第2部分:序号1001至序号2000
第3部分:2001年至3000年
如果包含段2(seq 1001到2000)的分组被丢弃,则接收端或者不接收seq 1000到2000。没有一种方式可以接收部分片段。因此,接收器发送1001的ack
在实现TCP时,创建者为什么不使用段号。与上述示例一样,发送方可以将序列号作为段
1,2和3发送,接收方可以使用确认号作为段
1,2和3。如果有丢弃,接收器可以为下一个预期段(我们示例中的段2)发送ack
这可能会在每个TCP标头中节省空间。序列号与接收窗口直接相关,无需进一步计算。段的大小可以不同,并且可以在没有所有数据的情况下发送-使用序列号在计算中不会产生影响。不太可能重新传输,并且段已经包含序列号-它不包含“段号”。“段号”(如果添加)也将是4字节,在4字节序列号上不节省空间,因为2字节太小(65k值)。序列号直接与接收窗口相关,无需进一步计算。段的大小可以不同,并且可以在没有所有数据的情况下发送-使用序列号在计算中不会产生影响。不太可能重新传输,并且段已经包含序列号-它不包含“段号”。“段号”(如果添加)也将是4字节,在4字节序列号上不节省空间,因为2字节太小(65k值)。