TCP到底怎么流量控制?

栏目: 服务器 · 发布时间: 4年前

内容简介:我们都知道TCP是一种可靠的,面向连接的传输层协议。我们总是希望TCP能够传输的数据越快越好。如果存在这样一种情况,发送方数据发送的非常快,而且接收方耗尽自己的资源也根本来不及接收,那这些多余的数据就会被丢弃,这就违背了TCP可靠的宗旨了。所以就需要引入一种流量控制的手段:让发送方不要发送太快,既让接收方能够顺利接收数据,而且也不会造成网络链路的阻塞。

我们都知道TCP是一种可靠的,面向连接的传输层协议。我们总是希望TCP能够传输的数据越快越好。如果存在这样一种情况,发送方数据发送的非常快,而且接收方耗尽自己的资源也根本来不及接收,那这些多余的数据就会被丢弃,这就违背了TCP可靠的宗旨了。

TCP到底怎么流量控制?

所以就需要引入一种流量控制的手段:让发送方不要发送太快,既让接收方能够顺利接收数据,而且也不会造成网络链路的阻塞。

思路

沿着这个思路:让发送方不要发送的太快。那就让接收方控制发送方的数据大小,每次应答的时候通知发送方自己还剩多少空间可以接收数据。当然实际交互没有这么的简单,只是提供了一种思路。利用这种思路,诞生了滑动窗口的方式。

滑动窗口

滑动窗口类似一个窗口,是用来告诉发送方可以发送数据的大小。也可以说是窗口标记了接收方缓冲区的大小。窗口大小也就表示一次能发送多少数据量,而且这个窗口可以滑动,滑动窗口因此得名。

怎样告知发送方窗口大小?

怎样通知发送方窗口大小呢?难道要重新发送一包数据告诉对方吗,这显然是不合理的。可以巧妙的使用确认应答包。有了确认应答包还是不够,如果是第一次交互呢?所以还需要在三次握手时候,就需要告知对方。(rwnd表示接收窗口)

TCP到底怎么流量控制?

在原来的确认应答策略中,每一次发送数据,都需要Ack应答,在接收到Ack之后才会发送下一个数据段,发送方没有接收到Ack应答呢?这样做的方式效率实在太低。使用了滑动窗口,可以多次发送数据,只要不要超过对方窗口大小。这样就大大提高了效率。

滑动窗口细节

  1. 接收方将自己能够接收的缓冲区大小是在TCP首部中的“窗口大小”字段表示的,通过Ack通知发送方。
  2. 窗口大小是发送方可以发送的最大值,也就是说可以不需要Ack应答,可以发送多次数据,前提发送总数据量不要超过窗口大小。
  3. 窗口大小大说明网络的吞吐率高
  4. 操作系统内核维护了一块接收缓冲区,只有Ack应答之后的数据才能从缓冲区中删除。
  5. 接收方一旦发现自己的缓冲区快满了,就会通知对方自己的窗口为更小的值。
  6. 如果接收方发现自己的缓冲区满了,就会将窗口的大小设置为0,此时发送方将不再发送数据,但是需要定期发送一个窗口探测数据段,使接收方把窗口大小告诉发送方 。(针对这一点重点说明下为什么需要定期发送窗口探针?可以想象下,如果接收方缓冲区满了,然后通过Ack告知发送方窗口大小为0。发送方从此不会发送数据给接收方,接收方也没办法告知对方自己缓冲区可以接收数据,就会出现“卡死”的情况)

实例

A 向 B 发送数据。在连接建立时,B 告诉 A:“我的接收窗口 rwnd = 400(字节)。注意:图中的箭头上面大写的ACK表示首部中的确认位ACK,小写ack表示确认字段的值。

TCP到底怎么流量控制?

上面的过程是这样的:

  1. A发送了数据序号1至100,还能发送300字节
  2. A发送了数据序号101至200,还能发送200字节
  3. A发送了数据序号201至300,但是丢失了数据
  4. B发送了ACK,同时通知A,允许A发送序号201至500,300字节
  5. A发送了数据序号301至400,还能发送100字节
  6. A发送了数据序号401至500,不能发送数据了
  7. A超时重传旧的数据,但不能发送新数据
  8. B发送了ACK,同时通知A,允许A发送序号501至600,100字节
  9. A发送了数据序号501至600,不能发送数据了
  10. B发送了ACK,同时通知A,不允许A发送数据

以上所述就是小编给大家介绍的《TCP到底怎么流量控制?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

思考,快与慢

思考,快与慢

[美] 丹尼尔·卡尼曼 / 胡晓姣、李爱民、何梦莹 / 中信出版社 / 2012-7 / 69.00元

《纽约时报》2011年度十大好书 新书上市,连续20多周蝉联亚马逊、《纽约时报》畅销书排行榜前20名,上市至今超过7个月,横扫全球各大畅销书排行榜,稳居亚马逊总榜前50名 《经济学人》、《华尔街日报》、《卫报》、《纽约时报》、《金融时报》、《商业周刊》、《华盛顿邮报》、等国外权威媒体,《三联生活周刊》、《商学院》、《东方早报》等国内知名媒体争相报道,国内外读者好评如潮 人类究竟有......一起来看看 《思考,快与慢》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码