华为网络基础 | TCP提高性能机制——延迟、捎带应答

  • 内容
  • 相关

由于TCP的复杂性,已经用多篇文章来介绍 TCP保证可靠性的机制了(有序列号(按序到达)、确认应答、校验和(华为网络基础 | IP包校验和算法实例抓包验证华为网络基础 | TCP校验和算法实例抓包验证华为网络基础 | TCP校验和错误原因及再次实例抓包验证)、连接管理(华为网络基础 | TCP连接管理机制华为网络基础 | TCP断开连接管理机制)和超时重传机制)和流量控制及拥塞控制, 上篇已经介绍了TCP尽可能提高性能的滑动窗口、快速重传机制,今天继续讲解延迟应答与捎带应答机制,来提高TCP的性能。

一、延迟应答

1、什么是延迟应答?

数据传输的时候,发送端给接收端发送数据,接收端给发送端发去确认应答信息,这样比较耗时,效率低下,延迟应答就是接收端收到数据之后,稍微等一会再应答,这样可以提高数据的传输效率,因为发送端发好几次数据,接收端只需要一次来确认应答,这样可以降低网络拥塞的概率。

假设接收端缓冲区为1M. 一次收到了500K的数据; 如果立刻应答返回的窗口大小也就是500K;然后可能处理端处理的速度很快,10ms之内就把增加到缓冲区的500K数据处理掉了在这种情况下接收端处理还远没有达到自己的极限即使窗口再放大一些也能处理过来。

如果接收端稍微等一会儿再应答比如等待200ms再应答那么这个时候返回的窗口大小就是1M,窗口越大网络吞吐量就越大传输效率就越高。

2、所有的包都可以延迟应答吗?

答案是否定的,他有两个限制:

数量限制: 每隔N个包就应答一次;
时间限制: 超过最大延迟时间就应答一次。

ps:具体的延迟应答数量和超时时间,依操作系统不同也有差异,一般N2,超时时间取200ms

二、捎带应答

1、什么是捎带应答?

虽然有延迟应答,但是客户端和服务器在应用层还是还是一发一收,此时就会导致数据传输效率低下,捎带应答就是接收端在给发送端发送数据的时候,捎带着向发送端发去确认应答,应答的内容是接收端已经收到发送端发送的数据。

2、使用捎带应答之前

客户端:你好吗?

服务器:我收到你发的消息了(即:接收端的ACK应答)

服务器:我很好

3、使用捎带应答

客户端:你好吗?

服务器:我很好(接收端给发送端发送的数据),我也收到你发的消息了(即:接收端的ACK应答)

使用捎带应答后,ACK就可以搭顺风车了,在接收端给发送端发送数据的时候,ACK就可以捎带着给发送端发送过去。

 您阅读这篇文章共花了:

上一篇:华为网络基础 | TCP提高性能机制——滑动窗口、快速重传

下一篇:Windows | VMware虚拟机桥接模式无法联网

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:华为网络基础 | TCP提高性能机制——延迟、捎带应答 - http://www.fishyoung.com/post-158.html