TCP滑动窗口控制流量的原理

TCP滑动窗口控制流量的原理
TCP提供可靠传输的工作原理和实现过程

TCP提供一种面向连接的、可靠的字节流服务

一、可靠传输的要求
可靠的传输应该满足下面两个要求:
(1)传输的信道不产生差错;
(2)保证传输数据的正确性,无差错、不丢失、不重复、并且按序到达。
这里有两层意思,一是能够正确地传输数据,二是接收方能够及时处理发送方发送的数据。

二、可靠传输的工作原理
TCP为了提供可靠传输:
(1)首先,采用三次握手来建立TCP连接,四次握手来释放TCP连接,从而保证建立的传输信道是可靠的。
(2)其次,TCP采用了超时重传来保证数据传输的正确性,使用滑动窗口协议来保证接方能够及时处理所接收到的数据,进行流量控制。
(3)最后,TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。

1、超时重传 
发送一个报文段,会立即启动一个重传计时器,等待目的端口确认收到这个数据段。否则将超时重传。
2、确认响应 
对于一个收到的请求,将发送一个确认。这个确认通常要延迟几分之一秒。
3、首部校验 
TCP数据报文段中有收和数据的校验和。这是一个端到端的校验和。如果出错的话,则接收端不会发送确认,从而触发发送方的确认重传。
4、对收到的数据进行排序。 
由于IP数据报文在网络中经历的时间可能不一样,所以数据到达接收端可能会失序。而接收方的传输层会根据报文段中的序号,进行重新排序。
5、重复的而数据直接丢弃。
6、流量控制 
TCP可以通过窗口大小来进行流量控制,防止接收慢的主机缓冲区溢出。
image.png

滑动窗口机制即是发送方根据接收方返回的ACK:期望下次收到的序列号和WINDOW SIZE:希望接收的数据窗口大小来滑动传输窗口发送数据。

这就是滑动窗口的工作机制,当链路变好了或者变差了这个窗口还会发生变话,并不是第一次协商好了以后就永远不变了。
滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。
只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。
收发两端的窗口按照以上规律不断地向前滑动,因此这种协议又称为滑动窗口协议。
当发送窗口和接收窗口的大小都等于1时,就是停止等待协议。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要通过整理网络上的资料,整理出的关于TCP方面的简单理论知识。作为Java程序员虽然更多的时候我们都是直接调...
    tomas家的小拨浪鼓阅读 5,652评论 1 100
  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,500评论 0 2
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,147评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,105评论 0 8
  • 传输层-TCP, TCP头部结构 ,TCP序列号和确认号详解 TCP主要解决下面的三个问题 1.数据的可靠传输...
    抓兔子的猫阅读 4,561评论 1 46