TCP可靠传输
TCP的任务是在IP层的不可靠的尽力而为的服务基础上建立一种可靠数据传输服务。TCP提供的可靠数据传输服务就是要保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。TCP使用了校验、序号、确认和重传等机制来达到这个目的。其中,TCP的校验机制与UDP校验一样。
1、 序号
TCP首部的序号字段用来保证数据能有效提交给应用层,TCP把数据看成一个无结构但是有序的字节流,而序号是建立在传送的字节流之上,而不是建立在报文段之上。
2、 确认
TCP首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号。
3、 重传
有两种时间会导致TCP对报文段进行重传:超时和冗余ACK。
(1) 超时
TCP每发送一个报文段,就对这个报文段设置一个计时器。只要计时器设置的重传时间到期还没收到确认,就要重传这段报文段。