字节编号和确认
考试要求: 掌握     
知识路径:  > 计算机网络原理  > Internet 协议  > 传输层协议 TCP 与 UDP  > TCP 协议  > TCP可靠传输


 
       前面提到过,TCP提供面向连接的字节流传输服务,也就是说,TCP协议将要传送的数据看成是一个个字节组成的字节流,而且接收方返回给发送方的确认是按字节进行的,而不是按报文段进行。
       每个TCP连接传输字节流数据的第一个字节序号是建立TCP连接时初始序号加1。
       假设某条TCP连接要传送5000字节的文件,分为5个TCP报文段进行传送,每个TCP报文段携带1000字节,TCP对第一个字节的编号从10001开始(假设TCP连接建立随机选择的初始序号x为10000,而数据传送开始序号则从10001开始,也就是说,TCP连接建立过程要用掉一个序号)。那么每个TCP报文段的字节编号如下所示:报文段1的字节序号为10001(范围是从10001~11000);报文段2的字节序号为11001(范围是从11001~12000);报文段3的字节序号为12001(范围是从12001~13000);报文段4的字节序号为13001(范围是从13001~14000),报文段5的字节序号为14001(范围是从14001~15000)。
       TCP采用差错控制机制是字节确认,一般情况下,接收方确认已收到最长的连续的字节计数,TCP报文的每个确认序号字段指出下一个希望接收到的字节,实际上就是对已经收到的所有字节的确认。
       字节确认的优点是即使确认丢失也不一定导致发送方重传。下面来看一个例子,假设接收方TCP发送的ACK报文段的确认序号是1801,表明字节编号为1800前的所有字节都已经收到。如果接收方TCP前面已经发送过确认序号为1601的ACK报文段,但是如果确认序号为1601的这个ACK报文段丢失,也不需要发送方TCP重发这个报文段,这就是所谓的“累计确认”。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有