免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

TCP选项的构造(Linux Vs XP) [复制链接]

论坛徽章:
0
21 [报告]
发表于 2011-02-14 14:42 |只看该作者
还有一个问题需要确认,个人理解,如果选项中有 wsale,应该就说明这个 OS 支持 wscale,就算数值是 0, 只 ...
Godbach 发表于 2011-02-14 13:56


一个是要支持该选项,然后通过设置不同读缓存大小(tcp_rmem),就可以改变数值。

顺带再说个笑话,某电视台网站有一条到美国40M的专线,不丢包的,但是他们单个连接的速度连5M都跑不到,我想了半天觉得不可能,最后一查,原来是他们用的AS4,没开启窗口扩大因子(或者是扩大因子太小了)。

论坛徽章:
0
22 [报告]
发表于 2011-02-14 14:45 |只看该作者
回复 17# asweisun_shan


    16还好吧,as6没出来以前,我都是在18的基础上改代码的,各种功能都支持的。

   说到f5,我顺带问一下,他用linux2.6.16内核,怎么跑到10G的负载均衡的,太nb了吧。

论坛徽章:
0
23 [报告]
发表于 2011-02-14 15:10 |只看该作者
对端的wscale值跟本地的wsale是不一样的,也没有任何的关系。

任何一端的wscale值只是说明了自己的接收能力。
对方的wsacle值也只是说明对方的接收能力。

如果wsale值是0,则只说明只能接收window大小的数据。

如果对方的wsale值是8,则说明这端可以给对方发送的最大数据是Window*(2^R)-1.

另外,21楼说的不对。
在不设置接收缓存(SO_RCVBUF选项)的情况下,实际的因子值一般是由tcp_rmem, rmem_max最大的值来决定的。
  1. 215         if (wscale_ok) {
  2. 216                 /* Set window scaling on max possible window
  3. 217                  * See RFC1323 for an explanation of the limit to 14
  4. 218                  */
  5. 219                 space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max);
  6. 220                 space = min_t(u32, space, *window_clamp);
  7. 221                 while (space > 65535 && (*rcv_wscale) < 14) {
  8. 222                         space >>= 1;
  9. 223                         (*rcv_wscale)++;
  10. 224                 }
  11. 225         }
复制代码
还有一个问题需要确认,个人理解,如果选项中有 wsale,应该就说明这个 OS 支持 wscale,就算数值是 0, 只 ...
Godbach 发表于 2011-02-14 13:56

论坛徽章:
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
24 [报告]
发表于 2011-02-14 15:31 |只看该作者
顺带再说个笑话,某电视台网站有一条到美国40M的专线,不丢包的,但是他们单个连接的速度连5M都跑不到,我想了半天觉得不可能,最后一查,原来是他们用的AS4,没开启窗口扩大因子(或者是扩大因子太小了)。

看到 hritian 兄上面的说明,我觉得下面这篇文章应该是 hritian 兄总结的吧
linux内核tcp窗口扩大因子对网络的影响
http://hi.baidu.com/malashang/bl ... 507d9b0b7b8259.html

论坛徽章:
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
25 [报告]
发表于 2011-02-14 15:35 |只看该作者
本帖最后由 Godbach 于 2011-02-14 15:39 编辑
如果wsale值是0,则只说明只能接收window大小的数据。

如果对方的wsale值是8,则说明这端可以给对方发送的最大数据是Window*(2^R)-1.

SYN 选项中的 wscale 是声明本地系统窗口缩放的比例,为 0 说明自己的窗口没有缩放。
如果对端声明的 wsacle 大于 1, 本地协议栈应该能够正确的计算出对端的 WINDOW 的值

论坛徽章:
0
26 [报告]
发表于 2011-02-14 17:27 |只看该作者
回复 23# asweisun_shan


    是tcp_rmem数组里的最后一个,第一个是最小 第二个是初始默认值  第三个最大值。

论坛徽章:
0
27 [报告]
发表于 2011-02-14 17:35 |只看该作者
看到 hritian 兄上面的说明,我觉得下面这篇文章应该是 hritian 兄总结的吧
Godbach 发表于 2011-02-14 15:31



        不是我写的,那篇文章里面说的应该是不支持窗口扩大因子导致的问题。


        话说godbach兄有没有兴趣组织一次四层的讨论会。

论坛徽章:
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
28 [报告]
发表于 2011-02-14 17:42 |只看该作者
        不是我写的,那篇文章里面说的应该是不支持窗口扩大因子导致的问题。

惭愧。还是看的不够仔细。
那篇文章的问题就有点奇怪了。OS 不支持  wscale,但是 sysctl 应该还是把 window_scaling 置为 1 了,对吧。
        话说godbach兄有没有兴趣组织一次四层的讨论会。

四层方面,其实我也是刚开始看。TCP 协议栈比较复杂啊。
不过,hritian 兄应该研究的比较深入,如果愿意不吝分享的话,我可以联系一下 CU 管理员,搞个技术沙龙,大家一起学习一下。

论坛徽章:
0
29 [报告]
发表于 2011-02-14 22:24 |只看该作者
惭愧。还是看的不够仔细。
那篇文章的问题就有点奇怪了。OS 不支持  wscale,但是 sysctl 应该还是把 wi ...
Godbach 发表于 2011-02-14 17:42



我说不定还能试着再邀请一个前辈来。

论坛徽章:
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
30 [报告]
发表于 2011-02-15 10:01 |只看该作者
本帖最后由 Godbach 于 2011-02-15 10:10 编辑
我说不定还能试着再邀请一个前辈来。
hritian 发表于 2011-02-14 22:24

如果 hritian 兄还能再邀请一个前辈过来,那这次技术交流,技术含量可是嗷嗷的高啊。:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP