TCP是点对点的传输,两个socket之间的传输,三次握手建立连接,四次挥手断开连接,可靠性的工作原理如下:
停止等待
发送方为A,接收方为B(虽然是全双工的通信,但此处做次设置)
A发一个分组后就停止发送,等待B接收到的确认后再继续发送下一个分组,但是其中分为发送过程无差错和有差错
无差错:B发送确认,A接收到后进行下一分组的发送
有差错:B检测到来自A的分组有差错,或者发送过程中丢失,B什么事都不做,当A在等待一个固定的时间(超时计时器,事件应该大于分组传输的往返时间)后还没有收到确认消息,则重发,说明A在发送一个分组的时候必须保留一份副本,用作重发时使用。
确认丢失或确认迟到:当确认迟到时,如果B发送的确认A在等待时间里没有收到,则A会重发分组,直到接收到B的确认,当然B收到重复的分组只需要丢弃。
连续ARQ协议和滑动窗口
发送的滑动窗口是可以设置的,也就是滑动窗口中的分组可以连续发送多个,而且接收方一般都是采用累计确认,就是接收方收到了几个分组后,对按序到达的最后一个分组进行确认,