免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach

TCP/IP实现刨根究底大讨论【活动结束】 [复制链接]

论坛徽章:
0
发表于 2011-03-24 19:01 |显示全部楼层
回复 58# platinum


    quick-start我是四五年前看的,不知道记得对不对,它是一个基于网络系统的大协议,光靠一个端系统支持就不能解决问题的。soso。。。。。。。。。
    quick-start本质上好像是初始窗口大小的自适应调整吧,实际上现在很多定制的tcp协议栈(包括国内数个CDN运营商)早就自己调整初始窗口了,初始窗口20的我都见过。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
发表于 2011-03-24 21:33 |显示全部楼层
回复 60# aaaaa5aa

    通俗一点说就是:接收窗口增大,能发送到网络中(未确认的)的 TCP 段就更多了,当然发送端还受用塞窗口的限制。
   
  TCP 会按照 MSS 分段。可以先看看下面的帖子
   http://bbs.chinaunix.net/thread-1937395-1-1.html

论坛徽章:
0
发表于 2011-03-24 21:49 |显示全部楼层
本帖最后由 lmarsin 于 2011-03-24 21:51 编辑

回复 60# aaaaa5aa


    通常TCP段是不会或很少分片的,TCP会得到路径上的PMTU,因此段的长度会小于PMTU。即使分片,也是就是分片而已,不会对TCP段进行修改,只有第一个分片有TCP首部。

论坛徽章:
0
发表于 2011-03-24 22:14 |显示全部楼层
回复  platinum


    quick-start我是四五年前看的,不知道记得对不对,它是一个基于网络系统的大协议 ...
hritian 发表于 2011-03-24 19:01


wscale 初始是 20 的话确实有点“为了目的不则手段”的感觉……

的确 Q-S 需要端对端的支持,就好像 SACK 一样,只有一端支持是没有效果的,且仅对高延时网络下需要大吞吐量传输的应用效果特别好,对需要频繁数据交互的应用就没戏了(比如没有 nagle 算法的 telnet 或利用 FTP 传输多个小文件的应用)

很多国内的 CDN 都已经开始深入到修改 TCP 栈的领域,比如 ChinaCache,新浪也修改过,有些是修改初始窗口,有些还修改了 AIMD 算法,可能还有更巧的解决思路,具体不是很清楚了:)

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2011-03-24 22:34 |显示全部楼层
回复 64# platinum

wscale 初始是 20 的话确实有点“为了目的不则手段”的感觉……

   
白金兄,我觉得他说的是接收或者发送窗口吧, 我记得 linux 下wscale最大也只能为 14

论坛徽章:
0
发表于 2011-03-24 22:42 |显示全部楼层
回复 64# platinum


  不是wscale,wscale就算是该到20也没有任何意义。

是初始的拥塞窗口大小,以前默认是2,据说现在的内核是可以配置的。

初始拥塞窗口改到20就有蓝汛的份,不过cc的tcp协议栈的优化方面,跟网宿和同兴万点比,就是小儿科。

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
发表于 2011-03-24 23:39 |显示全部楼层
回复  platinum


  不是wscale,wscale就算是该到20也没有任何意义。

是初始的拥塞窗口大小,以前默 ...
hritian 发表于 2011-03-24 22:42



    hritian兄,ssthresh这个门阀值是不是降低后就很难再涨上去了?

论坛徽章:
0
发表于 2011-03-25 00:10 |显示全部楼层
回复  platinum


   
白金兄,我觉得他说的是接收或者发送窗口吧, 我记得 linux 下wscale最大也只能 ...
Godbach 发表于 2011-03-24 22:34


看来我理解错了,实在不好意思,呵呵

论坛徽章:
0
发表于 2011-03-25 09:39 |显示全部楼层
hritian兄,ssthresh这个门阀值是不是降低后就很难再涨上去了?
goter 发表于 2011-03-24 23:39


我觉得这和 AIMD 具体实现有关
http://wendang.baidu.com/view/1a8db91ba8114431b90dd887.html

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
发表于 2011-03-25 10:00 |显示全部楼层
回复 67# goter


    首先ssthresh 的初始值很大(0x7fffffff)。 进入拥塞处理时会记录当前的ssthresh(用tp->prior_ssthresh, 注意有些状态不会记录),然后计算新的ssthresh (一般为cwnd * n: 不同拥塞算法n取值不同,就是很多文档中说的1/2),
  拥塞恢复后 ssthresh = prior_ssthresh。但2.6.20中prior_ssthresh是u16,单从变量类型看,拥塞发生后,ssthresh就不可能恢复初始值了。
  
   实际运行中,由于拥塞状态转换比较复杂,通常ssthresh会变得越来越小。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP