天下网吧 >> 网吧方案 >> 整体方案 >> 正文

路由器TCP/IP通讯协议堵塞的解决办法

68315">

  TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  由于ARPNET的设计者注重的是网络互联,允许通信子网(网络接口层)采用已有的或是将来有的各种协议,所以这个层次中没有提供专门的协议。

  一、TCP 包进入和流出这个盒子。有些时候进入盒子的包被丢失了。因为今天的数字和光媒体上出现比特级错误的机会非常少,TCP 的设计者们就假设包的丢失很大程度上是因为路由器的拥塞,也即是路由器用来容纳进入包的缓冲已经被填满了,这样路由器会静默地丢弃接下来进入的包。

  二、尽管TCP可以检测到TCP包的丢失并且进行重传,但是从TCP处理过程,重传过程和吞吐率下降这些方面看,这个重传过程将会耗费很大,当一个发送的TCP端节点检测倒一个包丢失时,可以进行快速重传或者包的重传计时器超时而重传。然后该TCP端节点减小发送窗口(在等待响应之前可以发送的包数量),进行慢启动和拥塞避免算法(RFC 2001)。这会立刻降低发送端的发送速率,以便路由器来减轻拥塞。发送端会逐渐将发送窗口恢复倒拥塞发生前的大小。

  三、尽管因为路由器拥塞而产生的包丢失是偶然发生的事件,它们并不会负面地影响块数据传输,只是会增加一些重传数据包和恢复发送速率的时间。

  慢启动和拥塞避免算法对于时间敏感的,成块数据流的控制效果非常好。然而,TCP处理丢包的方法对于交互式的,丢失敏感和时间敏感的流量来说效果不是很好。

  四、当路由器开始丢弃进入的数据包时,它一般并不区分数据流的不同。当多个TCP数据流都产生包丢失时,所有的数据流都要减少自身的发送速率。根据路由器拥塞减轻的程度,多个TCP数据流将会逐渐恢复自身的发送速率。这会降低路由器及相关链路的使用率,直到所有的TCP数据流恢复到以拥塞之前的速率进行发送。路由器从拥塞状态又进入到了低使用状态。

  五、这种拥塞后因为重传和低链路使用而带来的吞吐量问题,是仅仅通过发送端来管理拥塞的结果。为了避免因为路由器拥塞而带来的丢包而产生的一系列问题,TCP/IP的设计者们创建了一些用于主机和路由器的标准。

  这些标准描述了在IP路由器上进行的主动队列管理算法(AQM)(RFC 2309),使得路由器能够监控转发队列的状态,以提供一个路由器向发送端报告发生拥塞的机制,让发送端在路由器开始丢包前降低发送速率。这种路由器报告和主机响应机制被称为显式拥塞通告(ECN)(RFC 3168)。

  六、当拥塞发生时,发送主机必须仍然在降低它们的发送速率。然而,通过避免包的丢失,发送主机无需进入重传过程,丢失敏感的数据包流也不会因为拥塞而受到很大影响,IP和TCP使用包头中的未使用字段来支持ECN。

  在网络层(IP),一个发送主机必须能够表明自身可以进行ECN,路由器在转发时必须能够表明它正在经历拥塞。


本文来源:天下网吧 作者:网吧方案

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下