根据实际部署调整TCP

日期: 2009-08-11 来源:TechTarget中国

  TCP是一种可靠的传输层协议,它提供了全双工连接的字节流服务。TCP的带宽使它适合于远距离的IP网络,这种网络出现包丢失和包失序的可能性较大。真正是使TCP变得复杂的是流量控制和拥塞控制机制。流量控制和拥塞控制机制通常相互影响,所以对高性能的网络来时,进行适当的调整是十分重要的。这里我们就详细的介绍一下如何根据实际部署调整TCP。

  在发送端调整TCP

  在发送端进行TCP调整,能够控制注入网络和远端客户终端的数据的大小。有几个并发的机制,使得调整TCP变得更复杂。所以,为了更好的理解,我们将把这几个部分分开介绍,然后再介绍这些机制如何合并在一起工作。我们将介绍两个阶段:启动阶段和稳定状态阶段。启动阶段的TCP调整与我们能够向网络中发送数据包的速度有关。稳定状态阶段的TCP调整与TCP通信的其它方面有关,比如调整计时器,最大窗口大小,等等。

  启动阶段

  在启动阶段的调整中,我们介绍TCP发送者如何在一个特定连接上开始发送数据。新建连接的一个问题是不知道网络管道的传输能力。所以我们以这样的方式开始,以越来越快的速度发送数据包,直到我们知道网络的传输能力,然后再根据传输能力进行调整。宏观行为的改变需要手动的TCP调整,比如当我们在像无线网那样的低速信道中或者在10Gbit/sec这样的高速信道时。在最开始的时候就发送最大的数据包会造成灾难性的后果。最好是根据传输情况,慢慢的增加发送的速度。

  在这一阶段,拥塞窗口比接收窗口要小得多。这说明发送者通过计算拥塞窗口并根据拥塞窗口大小限制发送的数据,控制着发送给接收者的流量大小。任何小的流量突增都可以被队列吸收。有三种重要的TCP可调参数:

   tcp_slow_start_initial:在socket连接建立后,立即创建初始的拥塞窗口。

  tcp_slow_start_after_idle:先休止一段时间,再初始化拥塞窗口。现在我们已经有了一些关于网络传输能力的预备知识,我们就可以直接告诉大家慢慢的增大拥塞窗口,而不必从头讲起了。

  tcp_cwnd_max:限制运行的最大拥塞窗口。如果接收窗口增大了,那么tcp_cwnd_max也跟着增大到和接收窗口一样大。

  在不同类型的网络中,你可以稍微调整这些参数的值,来控制你能够发送数据的速度。如果你的网络管道比较小,你可能就希望减少数据包,反之,如果你的网络管道比较大,你可能就希望加快发送数据包的速度,充分利用网络带宽。

  稳定状态阶段

  在稳定状态阶段,当情况稳定并且初始化的启动阶段完成以后,socket连接就达到相对稳定的状态,这时的调整就仅限于根据网络和客户端的拥塞情况减少延迟。我们必须以平均状况传输,因为网络和客户端数据的接收能力总会有一些波动。对这一阶段的TCP调整,我们看一下下面的网络属性:

   传播延迟——这一属性主要受距离远近的影响。它表示一个数据包通过网络所需的时间。在广域网中,需要对这一属性进行调整使得尽量充分利用信道,增加允许发送的数据包。

  连接速度——这一属性是网络管道的带宽。对56kbit/sec的拨号连接和10Gbit/sec的光学局域网,连接速度的调整方法是不同的。

  总之,TCP的调整也要根据网络的类型和相关的主要属性(传播延迟,连接速度和错误率)而改变。有些情况下,这些属性也会通过评估返回的响应来进行自调节。我们将针对各种新型的网络技术:光学广域网、局域网、无线网,等等——介绍如何根据具体情况调整TCP。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐