当前位置:  技术问答>linux和unix

请教关于TCP窗口大小的问题

    来源: 互联网  发布时间:2015-03-05

    本文导语:  在Windows 2000中,可以在注册表中更改TCP窗口大小。 在Linux中,怎么修改? 注:该TCP窗口大小将在三次握手期间作为TCP协议一字段传给对方,表明TCP的接收窗口。 另外,对套接字调用 setsockopt和 getsockopt操作的是套...

在Windows 2000中,可以在注册表中更改TCP窗口大小。
在Linux中,怎么修改?

注:该TCP窗口大小将在三次握手期间作为TCP协议一字段传给对方,表明TCP的接收窗口。

另外,对套接字调用 setsockopt和 getsockopt操作的是套接字的缓冲
它和TCP的接收或发送窗口是同一概念吗?




|
窗口大小不只在三次握手时有,在整个连接过程中都要互相通告,且是动态变化的。其大小可以理解为套接字缓冲中还有多少空闲空间,所以增大socket缓冲,相应的TCP接收窗口(跟发送窗口没关系)也会增大,可以认为是同一概念。
至于socket接收缓冲的默认大小可以用sysctl修改内核参数rmem_default实现,或直接修改/proc/sys/net/ipv4/tcp_rmem文件。

|
# man tcp
  ...
       tcp_rmem
              This  is  a  vector  of  3 integers: [min, default, max].  These
              parameters are used by TCP to  regulate  receive  buffer  sizes.
              TCP  dynamically adjusts the size of the receive buffer from the
              defaults listed below, in the range of these  sysctl  variables,
              depending on memory available in the system.

              min  -  minimum  size  of  the  receive  buffer used by each TCP
              socket.  The default value is 4K, and is  lowered  to  PAGE_SIZE
              bytes  in low memory systems.  This value is used to ensure that
              in memory pressure mode, allocations below this size will  still
              succeed.   This  is  not  used  to bound the size of the receive
              buffer declared using SO_RCVBUF on a socket.

              default - the default size of  the  receive  buffer  for  a  TCP
              socket.   This  value overwrites the initial default buffer size
              from the generic global net.core.rmem_default  defined  for  all
              protocols.   The default value is 87380 bytes, and is lowered to
              43689 in low memory systems.  If larger receive buffer sizes are
              desired, this value should be increased (to affect all sockets).
              To employ large  TCP  windows,  the  net.ipv4.tcp_window_scaling
              must be enabled (default).

              max  -  the  maximum size of the receive buffer used by each TCP
              socket.    This   value   does   not   override    the    global
              net.core.rmem_max.   This  is  not used to limit the size of the
              receive buffer  declared  using  SO_RCVBUF  on  a  socket.   The
              default value of 87380*2 bytes is lowered to 87380 in low memory
              systems.
              ...

至于为什么是5840我也不清楚了。
关于最后一个问题,建议读一下《详解》第20章的内容,或者《UNP》中关于SO_RCVBUF选项的阐述。

|
收藏

    
 
 

您可能感兴趣的文章:

  • 请教/var/adm/wtmpx文件的最大大小是多少?是一个数值还是一个与文件系统的比值?是如何设置大小限制的?谢谢!!
  • 请教交换区大小配置
  • 请教,如何修改在虚拟机vmware中安装的linux的ramdisk大小?
  • 怎么改变鼠标图像的大小,请教
  • 请教:如何能获得某个文件系统的块大小
  • 请教:sed替换如何不区分大小写?
  • 如何使用gcc不对文件名大小写敏感哈,请教各路神仙~
  • 请教有关samba共享名大小写的问题
  • 请教,如何比较2个文件的修改时间的大小
  • 请教:linux下如何检测并控制进程的内存大小?
  • 我有一个3CD的REDHAT7.2,请教如果完全安装,/,/root,/user,/home怎么分配大小?
  • 请教:使用mkswap /dev/hdaX 之后可使用任意数字来规定swap分区大小
  • 200分请教,如何知道数据包的大小
  • 请教:线程栈的大小问题
  • 新手请教高手在linux上用c写结构体时是不是有大小限制?如何解决?
  • 请教一个关于文件大小和block之间对应的问题
  • 请教图片上传中的改变图片大小的问题!!急!!!
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • 请教,请教,这个问题是为什么????
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 请教一个opengl的问题
  • 请教两个redhat9问题
  • 请教kdevelop的问题
  • 送上100分问题请教,同时学习一下进程通讯问题,望各位不吝赐教
  • 请教linux 下的adsl拨号问题.
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教这种循环的执行过程
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教两个shell
  • 请教高手:如何用gnome/gtk编写托盘程序
  • 菜鸟请教Linux
  • 请教semop()函数的用法、含义
  • 请教个,关于C编译器参数CFLAGS的问题(真诚请教,分不够了全部送出)
  • 请问如何在Redhat7.1下安装Ftp服务,如何开启Ftp帐号????请教!!!急急急急急急
  • Think in java 问题。(请教)
  • 请教下我的eth0为什么设置后重启会失败?
  • 请教:$PWD 这个东西是什么意思啊?谢谢!
  • 请教高手AIX中怎么删除行尾的字符^M


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3