linuxtcp优化案例详解ppt课件_第1页
linuxtcp优化案例详解ppt课件_第2页
linuxtcp优化案例详解ppt课件_第3页
linuxtcp优化案例详解ppt课件_第4页
linuxtcp优化案例详解ppt课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux TCP/IP 优化案例详解搜索平台部杨辉2019/12/09跨机房传输文件为什么这么慢?跨机房传输文件为什么这么慢?短衔接传输速率还能提高吗?短衔接传输速率还能提高吗?我们后台效力时间才几十毫秒,为什么我们的用户感知时间却是秒级我们后台效力时间才几十毫秒,为什么我们的用户感知时间却是秒级的?的?TCP/IP - TCP/IP - 窗口机制窗口机制TCP/IP TCP/IP 拥塞控制拥塞控制TCP/IP TCP/IP 拥塞算法拥塞算法Linux TCP/IP 优化案例详解问题问题 北京上海间传输速率太慢,单北京上海间传输速率太慢,单socket 2MB/ssocket 2MB/s左右

2、。左右。可选方法可选方法 1 1创建多个创建多个socketsocket衔接衔接 2) 2) 增大增大TCPTCP缓冲缓冲( (发送发送/ /接纳传输速率接纳传输速率30MB/s30MB/s 思索思索 为什么增大缓冲,就能提高传输速率?为什么增大缓冲,就能提高传输速率? 为什么为什么BJ BJ 机房内不增大缓冲,也能到达几十兆的速率机房内不增大缓冲,也能到达几十兆的速率? ? 发送发送/ /接纳缓冲中,只调整一个,行不行?接纳缓冲中,只调整一个,行不行?跨机房传输文件为什么这么慢?原理分析原理分析 带宽公式带宽公式 网络带宽网络带宽=(win=(win* *MSS)/rttMSS)/rtt w

3、in=min win=min发送窗口,拥塞窗口发送窗口,拥塞窗口 BJ-BJ RTT 1ms BJ-SH RTT 20-30ms BJ-BJ RTT 1ms BJ-SH RTT 20-30ms跨机房传输文件为什么这么慢?问题问题 短衔接下,短衔接下,BJBJ和和SHSH间发送间发送1MB 482 - 48,procproc参数参数) ) 添加丢包后发送窗口添加丢包后发送窗口1- 24, proc1- 24, proc参数参数 添加对窗口添加添加对窗口添加/ /减小速度进展控制的相关参数减小速度进展控制的相关参数proc)proc) ( (对比分析了对比分析了,google,google的相关参

4、数,同时参考了的相关参数,同时参考了HSTCPHSTCP和和googlegoogle论文中的处理方案论文中的处理方案超时重传优化超时重传优化 建立衔接的过程中采样建立衔接的过程中采样RTT,RTT,用于计算初始用于计算初始RTO (3s - max(200, 2RTT)RTO (3s - max(200, 2RTT) RTO RTO计算计算 max(200,3RTT) - (100, 2RTT) max(200,3RTT) - (100, 2RTT) 部分快速重传取代超时重传,快速重传条件部分快速重传取代超时重传,快速重传条件 3 - 2 3 - 2 副作用副作用 反复包率上升反复包率上升 内

5、核协议栈优化技术点内核协议栈优化技术点优化传输时间效果优化传输时间效果 北京联通北京联通 369ms 369ms 优化后优化后181ms 181ms 下降下降188ms 50.8% 188ms 50.8% 深圳电信深圳电信 490ms 203ms 287ms 58.5% 490ms 203ms 287ms 58.5% 上海电信上海电信 449ms 217ms 232ms 51.7% 449ms 217ms 232ms 51.7% 西安电信西安电信 417ms 205ms 212ms 50.6% 417ms 205ms 212ms 50.6% 西安教育网西安教育网 834ms 399ms 435

6、ms 52.2% 834ms 399ms 435ms 52.2%优化后与百度对比优化后与百度对比 北京办公区在结果检索结果均命中北京办公区在结果检索结果均命中cachecache的情况下,明显快于百度。的情况下,明显快于百度。 SOSO优化效果窗口机制窗口机制 滑动窗口与控制窗口滑动窗口与控制窗口 拥塞控制拥塞控制 控制控制过程控制控制过程 拥塞控制窗口变化拥塞控制窗口变化拥塞算法拥塞算法 各种算法简介各种算法简介 TCP/IP问题问题 假设网络中有两台主机假设网络中有两台主机A A和和B B,主机,主机A A向向B B发送多个数据包,为了发送多个数据包,为了防止数据包丧失,需求思索哪些要素防

7、止数据包丧失,需求思索哪些要素滑动窗口滑动窗口 主机主机B B接纳缓冲区接纳缓冲区rmemrmem的大小的大小 A A向向B B发送数据包的速度比发送数据包的速度比B B运用程序处置的快运用程序处置的快 rmem rmem溢出,溢出,数据包丧失数据包丧失 引入了滑动窗口协议引入了滑动窗口协议控制窗口控制窗口 链路上节点负荷过大,导致缓冲队列溢出,数据包丧失拥塞链路上节点负荷过大,导致缓冲队列溢出,数据包丧失拥塞 引入了拥塞控制窗口协议引入了拥塞控制窗口协议MIN(MIN(滑动窗口,拥塞窗口滑动窗口,拥塞窗口) )决议决议TCPTCP传输速率传输速率TCP/IP - 窗口机制窗口机制慢启动慢启动

8、 拥塞窗口拥塞窗口snd_cwndsnd_cwnd初始化为初始化为2 2,然后在每个,然后在每个RTTRTT内增大,即每收到一个内增大,即每收到一个ACKACK包,包,snd_cwnd+=1snd_cwnd+=1。当。当snd_cwndsnd_cwnd超越阈值超越阈值snd_ssthreshsnd_ssthresh时,进入拥塞防止阶段。时,进入拥塞防止阶段。tcp_slow_start,delay acktcp_slow_start,delay ack机制导致机制导致snd_cwndsnd_cwnd增长更慢增长更慢 拥塞防止拥塞防止 snd_cwnd snd_cwnd曾经超越阈值曾经超越阈值s

9、nd_ssthreshsnd_ssthresh,为了防止拥塞,为了防止拥塞,snd_cwndsnd_cwnd缓慢增大。每收到一个缓慢增大。每收到一个ACKACK增大增大1/snd_cwnd1/snd_cwnd。tcpbic_cong_avoid, delay acktcpbic_cong_avoid, delay ack机制导致机制导致snd_cwndsnd_cwnd增长更增长更慢慢 丢包丢包 当发生数据包丧失时,当发生数据包丧失时,TCPTCP以为网络中存在拥塞,将减小拥塞窗口的大小,降低发送速率。以为网络中存在拥塞,将减小拥塞窗口的大小,降低发送速率。timeout loss: snd_s

10、sthresh= snd_cwnd/2timeout loss: snd_ssthresh= snd_cwnd/2,snd_cwnd = 1snd_cwnd = 1;dup-ack dup-ack loss : tcp_fastretransmit_alert, tcp_cwnd_downloss : tcp_fastretransmit_alert, tcp_cwnd_downTCP/IP 拥塞控制过程拥塞控制过程窗口变化窗口变化影响拥塞窗口影响拥塞窗口 tcp_cwnd_restart tcp_cwnd_restartrtorto时间未传数据,时间未传数据,tcp_process_frto

11、tcp_process_frto,tcp_enter_frto_losstcp_enter_frto_loss,tcp_complete_cwrtcp_complete_cwr,tcp_undo_cwrtcp_undo_cwr,tcp_enter_cwrtcp_enter_cwr,tcp_cwnd_downtcp_cwnd_down,tcp_moderate_cwndtcp_moderate_cwnd,tcp_cwnd_application_limitedtcp_cwnd_application_limited,tcp_create_openreq_childtcp_create_openr

12、eq_child TCP/IP拥塞控制过程拥塞控制过程Reno - TCP/IPReno - TCP/IP默许拥塞算法默许拥塞算法超时:超时:ssthresh = cwnd/2ssthresh = cwnd/2,cwnd=1cwnd=1;快速重传:;快速重传:ssthresh = cwnd/2ssthresh = cwnd/2,cwnd= ssthresh+3cwnd= ssthresh+3/pros/sys/net/ipv4/tcp_reordering/pros/sys/net/ipv4/tcp_reordering;快速重传;快速重传(Reno)(Reno)从丧失的数据包算起,从丧失的数

13、据包算起,全部重传。全部重传。SACK - SACK - 选择重传选择重传用用TCPTCP扩展头部,接纳端通知发送端哪些数据包曾经收到;发送端标志扩展头部,接纳端通知发送端哪些数据包曾经收到;发送端标志sk_bufsk_buf,阐明该数据包曾经正确传输;重传丧失的数据包。,阐明该数据包曾经正确传输;重传丧失的数据包。FACKFACK由由sacksack确认的包之间的数据包,丧失确认的包之间的数据包,丧失 还是还是 其它其它? ?SackSack之间的一切数据包,以为已丧失。之间的一切数据包,以为已丧失。D-SACKD-SACK接纳端收到了一样接纳端收到了一样seqseq的数据包,怎样办的数据包

14、,怎样办? ?收到两个一样收到两个一样seqseq的数据包,阐明的数据包,阐明 没必要的重传;接纳端在没必要的重传;接纳端在ACK TCPACK TCP头部扩展域中参与头部扩展域中参与 反复数据包的反复数据包的seqseq。 发送端收到发送端收到D-SackD-Sack,cwndcwnd恢复重传前的设置。恢复重传前的设置。 TCP/IP拥塞算法简介拥塞算法简介BICBIC适宜高时延、高带宽的网络,如适宜高时延、高带宽的网络,如BJ-SH,LINUXBJ-SH,LINUX默许选项默许选项; ;拥塞防止:拥塞防止: cwnd cwndcwnd+inccwnd+inc;inc = 1/ca-cntinc = 1/ca-cnt丢包:丢包: ssthreshold ssthresholdssthresholdssthreshold1 1。VEGASVEGAS适宜适宜rttrtt动摇大的网络动摇大的网络, , 即丢包率高的网络,即丢包率高的网络,事前预测拥塞:在丢包之前,经过事前预测拥塞:在丢包之前,经过rttrtt的变化提早预测拥塞。的变化提早预测拥塞

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论