首页 >

如何降低TCP在局域网环境下的数据传输延迟? – 网络|

rides s trike怎么读,如何提升网络安全分析能力,ul无序列表怎么去掉点如何降低TCP在局域网环境下的数据传输延迟? - 网络|如何降低TCP在局域网环境下的数据传输延迟

首先要肯定一点,在局域网内部,底层网卡基于CSMA接收网络包,不再有中心节点瓶颈问题,而且随着底层物理层技术的发展,现在局域网的丢包错包概率已经非常之低,在这个层面,UDP和TCP有着相同的网卡丢包概率。

IP层分包这种情况也是基本不会出现在TCP上,通常在局域网上,网卡MTU默认值在1500左右,而大部分的系统内核网络协议栈会把TCP的MSS默认值设置的远小于这个值,所有TCP应用层的数据会被内核自动切割成MSS大小发送,所以IP的分包在TCP来说基本不存在这样的场景。反而对UDP来说,由于内核没有任何机制保证数据的可靠性,应用层发送的大包能直接到达IP层,在这里,如果包超过了MTU,IP层会开启分包发送。可以看出,IP的分包大多发生在UDP上,而且是应用层有大数据包发送的情况出现。

所以抛开丢包和IP分包,最后大家谈谈影响TCP局域网性能的本质原因。除了TCP连接建立过程中的几个握手包带来数据延迟外,TCP有两个特性直接影响数据的发送速度,慢启动和窗口。

慢启动发生在连接刚建立时,数据是慢慢发送给对方的,并不能有多少数据就能立马全部发送,而是要根据对方的确认个数来调整发送方的发送速度,确认的个数能够直接体现出对方的接收数据的能力。最终,如果链路稳定,TCP能够达到双方握手协商的最大窗口值,在这个窗口上发送数据。

当TCP连接稳定后,双方都能以最大的约定的窗口发送数据,什么意思呢?比如双方约定窗口大小10K,发送方一次性只能最多发送10K大小就不能发送了,因为窗口被填满了,只有能对方的确认回来窗口有空余,才能继续发送数据。所以大家能够看出,稳定状态能够影响TCP速度的是窗口大小。而这个值是连接建立的时候在握手包里面协商的,观察下TCP握手包头部可以看到,这个字段只有16bit,意思是最大的窗口只能有65535字节,意思是通信双方任何时刻处于通信链路上数据最大只能64K。这个限制从根本上影响了TCP速度,所以当底层物理层发送速度越来越快比如用光纤等等物理通道时,也不能明显改善TCP速度。之后,TCP扩充了协议,在握手过程中可以额外添加一个窗口扩大因子选项,可以使得双方能够协商出按指数因子增大的窗口,这样才从根本上解决了TCP窗口对TCP速度的限制。

综上局域网提高TCP发送效率最本质的方法有两个,一是使用大窗口,二是增大MSS值,但又不要太大避免IP分包。


如何降低TCP在局域网环境下的数据传输延迟? - 网络|
  • 轻松点学习计算机技术,学习什么呢? - 网络|
  • 轻松点学习计算机技术,学习什么呢? - 网络| | 轻松点学习计算机技术,学习什么呢? - 网络| ...

    如何降低TCP在局域网环境下的数据传输延迟? - 网络|
  • 医学生学python如何找工作?医学统计学可以与其有何联系? |python断开路由器重新连接
  • 医学生学python如何找工作?医学统计学可以与其有何联系? |python断开路由器重新连接 | 医学生学python如何找工作?医学统计学可以与其有何联系? |python断开路由器重新连接 ...

    如何降低TCP在局域网环境下的数据传输延迟? - 网络|
  • 股票涨跌从哪些数据判断? - 网络|
  • 股票涨跌从哪些数据判断? - 网络| | 股票涨跌从哪些数据判断? - 网络| ...