49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

生龙活虎旦境况为移动网络情况,Google 开源小组

2020-01-02 作者:计算机网络   |   浏览(118)

谷歌开源 TCP 小组修复了 Linux 内核 TCP 缺陷

Mozilla 公司的 Patrick McManus 发布文章感谢谷歌开源小组修复了潜藏了十年之久的 Linux 内核 TCP 缺陷。

Google 传输网络成员(QUIC,TCP 等等)修复了一个将近 10 年的 Linux Kernel 中 TCP 缺陷问题,这将会大大的提升网络的性能和效率。

修复分支地址:

这个分支解决了立方拥塞控制的问题,这是大量 Linux 发行版默认的算法。这个问题可以简单总结为控制器错误的在一个静止的周期里面把缺乏拥塞报告当作是网络不拥挤的证据,因此以一个更快的速度发送信息。这样就会导致一个终端不能传递任何流量,循环反馈一个没有错误的信息。最终结果是导致自我丢包,重发,浪费带宽,降低应用水平。

Google 开源小组整理这个 Linux 内核 TCP 问题并修复,而且把结果也开源了,这对整个网络都起着很重要的作用,感谢他们所做的贡献!

via bitsup.blogspot.hk

本文永久更新链接地址:

TCP 小组修复了 Linux 内核 TCP 缺陷 Mozilla 公司的 Patrick McManus 发布文章感谢谷歌开源小组修复了潜藏了十年之久的 Linux 内核 TCP 缺陷...

TCP协议缺陷不完全记录

零。前言

TCP自从1974年被发明出来之后,历经30多年发展,目前成为最重要的互联网基础协议。有线网络环境下,TCP表现的如虎添翼,但在移动互联网和物联网环境下,稍微表现得略有不足。

移动互联网突出特性不稳定:信号不稳定,网络连接不稳定。虽然目前发展到4G,手机网络带宽有所增强,但因其流动特性,信号也不是那么稳定:坐长途公交车,或搭乘城铁时,或周边上网密集时等环境,现实环境很复杂。

以下讨论基于Linux服务器环境,假定环境为移动互联网环境。记录我目前所知TCP的一些不足,有所偏差,请给与指正。

一。三次握手

在确定传递数据之前需要三次握手,显然有些多余,业界提出了TCP Fast Open (TFO)扩展机制,两次握手之后就可以发送正常业务数据了。但这需要客户端和服务器端内核层面都支持才行: Linux内核3.6客户端,3.7支持服务器端。

49彩票集团 1

进阶阅读:TCP Fast Open: expediting web services

二。慢启动

一次的HTTP请求,应用层发送较大HTML页面的数据,需要经过若干个往返循环时间(Round-Trip Time)之后,拥塞窗口才能够扩展到最大适合数值,中间过程颇为冗余。这个参数直接关系着系统吞吐量,吞吐量大了,系统延迟小了。但设置成多大,需要根据业务进行抉择。

3.0内核之前初始化拥塞窗口(initcwnd)大小为3。一个已建立连接初始传输数据时可传递3个MSS,若1个MSS为1400那么一次性可传递4K的数据,若为10,一次性可传递13K的数据。

谷歌经过调研,建议移动互联网WEB环境下建议initcwnd设置成10,linux内核3.0版本之后默认值为10。遇到较低内核,需要手动进行设置。

若是局域网环境有类似大数据或文件的传输需求,可以考虑适当放宽一些。

若长连接建立之后传输的都是小消息,每次传输二进制不到4K,那么慢启动改动与否都是无关紧要的事情了。

进阶阅读:

  • Tuning initcwnd for optimum performance
  • 49彩票集团,Optimizing Your Linux Stack for Maximum Mobile Web Performance
  • An Argument for Increasing TCP's Initial Congestion Window

三。线头阻塞(Head-of-line blocking, HOL)

TCP协议数据传输需要按序传输,可以理解为FIFO先进先出队列,当前面数据传输丢失后,后续数据单元只能等待,除非已经丢失的数据被重传并确认接收以后,后续数据包才会被交付给客户端设备,这就是所谓的线头(HOL,head-of-line blocking)阻塞。比较浪费服务器带宽又降低了系统性能,不高效。

49彩票集团 2

1. 多路复用不理想

HTTP/2提出的业务层面多路复用,虽然在一定程度上解决了HTTP/1.*单路传输问题,但依然受制于所依赖的TCP本身线头阻塞的缺陷。构建于TCP上层协议的多路复用,一旦发生出现线头阻塞,需要小心对待多路的业务数据发送失败问题。

2. TCP Keepalive机制失效

理论上TCP的Keepalive保活扩展机制,在出现线头阻塞的时候,发送不出去被一直阻塞,完全失效。

类似于NFS文件系统,一般采用双向的TCP Keepalive保活机制,用以规避某一端因线头阻塞出现导致Keepalive无效的问题,及时感知一端存活情况。

3. 线头阻塞超时提示

数据包发送了,启动接收确认定时器,超时后会重发,重发依然无确认,后续数据会一直堆积到待发送队列中,这里会有一个阻塞超时,算法很复杂。上层应用会接收到来自内核协议栈的汇报"No route to host"的错误信息,默认不大于16分钟时间。在服务器端(没有业务心跳支持的情况下)发送数据前把终端强制断线,顺便结合TCPDUMP截包,等15分钟左右内核警告"EHOSTUNREACH"错误,应用层面就可以看到"No route to host"的通知。

本文由49彩票集团发布于计算机网络,转载请注明出处:生龙活虎旦境况为移动网络情况,Google 开源小组

关键词: