TCP协议如何实现可靠传输

TCP最主要的特点

TCP是面向连接的运输层协议,在无连接的、不可靠的IP网络服务基础之上提供可靠交付的服务。为此,在IP的数据报服务基础之上,增加了保证可靠性的一系列措施。

TCP协议如何实现可靠传输_第1张图片

TCP最主要的特点:

  1. TCP是面向连接的输出层协议

            每一条TCP连接只能有两个端点,每条TCP连接只能是点对点的(一对一)

2.TCP提供可靠交付的服务

3.TCP提供全双工通信(TCP协议会维护两个缓冲区,分别是接收缓冲区和发送缓冲区)

4.面向字节流

  • TCP中的“流”指的是流入或流出进程的字节序列。
  • 面向字节流:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流。

 TCP如何实现可靠传输

  • TCP每次发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
  • 全双工通信的双方既是发送方也是接收方。
  • 假设仅考虑A发送数据,而B接收数据并发送确认。因此A叫做发送方,而B叫做接收方。

TCP协议如何实现可靠传输_第2张图片

发送端如何知道接收端是否正确收到了M1呢?

解决方法:超时重传

发送端为每一个已发送的分组设置一个超时计时器。

发送端只要在超时计时器到期之前收到了相应的确认,就撤销该超市计时器,继续发送下一个分组M2

若发送端在超时计时器规定时间内没有收到B的确认,就认为分组错误或丢失,就重发该分组。TCP协议如何实现可靠传输_第3张图片 

TCP协议如何实现可靠传输_第4张图片 

TCP协议如何实现可靠传输_第5张图片 

TCP协议如何实现可靠传输_第6张图片 

提高传输效率:流水线传输

TCP协议如何实现可靠传输_第7张图片 

流水线传输:在收到确认之前,发送方连续发出多个分组。

                        由于在信道上一直有数据不间断地传送,流水线传输可获得很高的信道利用率

连续ARQ协议和滑动窗口协议采用流水线传输方式。

连续ARQ协议

发送窗口:发送方维持一个发送窗口,位于发送端扣内的分组都可被连续发送出去,而不需要等待对方的确认。

发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

累计确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组位置的所有分组都已正确收到了TCP协议如何实现可靠传输_第8张图片 

TCP包

TCP协议如何实现可靠传输_第9张图片 

 

你可能感兴趣的:(tcp/ip,网络,服务器)