可靠性

上面大神提到了TCP中流的概念,也提到了片段(Segment),但是Segment片段编号(sequence number)仅仅完成了次序(Order)的问题,但是由于IP协议是不可靠传输,所以按照之前说的,片段乱序到达(Out of order),接收主机时不会接收,所以到最后接收主机可能收到的是个"假的文件"

TCP的补救办法是在每收到一个正确、顺序的Segment时,向发送方发送一个特殊的TCP片段,这个特殊的TCP片段用来知会(ACK Ackonwledge)发送方,我已经成功收到你发送的Segment了,请继续发下一个吧~

如果发送方在发送Segment 1到接收方等待一段时间后,没有受到接收方返回的ACK 1回复,发送方就可以认为接收方并没有受到Segment 1,于是发送方开始重新发送这个Segment 1,直到接收方返回ACK 1回复,然后开始发送下一个Segment 2

当然接收方在回复ACK 1时也有可能会丢失,所以接收方如果在看见还是Segment 1,就知道刚才发的ACK 1已经丢失了,于是开始重新发送ACK 1

所以结论是Segment重新发送存在两种可能:

  1. 数据丢失
  2. ACK丢失

    所以通过这个机制,TCP解决了传输过程中丢失片段的问题,但这样传一个等一个似乎有点呆萌了吧,所以TCP通过滑窗来解决这一问题,Next~

results matching ""

    No results matching ""