zoukankan      html  css  js  c++  java
  • 20.4 窗口大小

    20.4  窗口大小
    
    由接收方提供的窗口的大小通常可以由接收进程控制,这将影响TCP的性能
    
    默认设置发送和接收缓存去的大小为2048个字节
    
    注意: 为了与硬件和网络实际情况最佳匹配, bufsize的值应该是相对较小的2的幂,例如4096。
    
    
    显示了在改变发送和接收缓存大小(在单向数据流的应用中,如文件传输,只
    
    需改变发送方的发送缓存和接收缓存大小)的情况下,
    
    位于以太网上的两个工作站之间进行文件传输时的一些结构 
    
    win概念:
    
    本端的接收窗口,通告对端我当前我消费win个字节的的能力,不要发送太多,太多我有可能消费不了。
    接收窗口就是滑动窗口,用来做tcp的流量控制,防止流量过载主机。
    与接收窗口对应的还有一个发送窗口的概念,是做拥塞控制的,防止流量过载网络。
    
    
    
    
    
    
    
    
    import socket
    import time
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.connect(("192.168.137.2",8080))
    s.send('qazwsxedcrfvtgbyhnujmikolp')
    
    # s.shutdown(1)
    # #time.sleep(10)
    print s.recv(10)
    # time.sleep(3000)
    
    
    
    10:35:42.992208 IP 192.168.137.1.51142 > node1.webcache: Flags [S], seq 1894110875, win 31, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
    10:35:42.992302 IP node1.webcache > 192.168.137.1.51142: Flags [S.], seq 730850429, ack 1894110876, win 1460, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
    10:35:42.993070 IP 192.168.137.1.51142 > node1.webcache: Flags [.], ack 730850430, win 7, length 0
    10:35:52.981188 IP 192.168.137.1.51142 > node1.webcache: Flags [P.], seq 1894110876:1894110878, ack 730850430, win 7, length 2
    10:35:52.981240 IP node1.webcache > 192.168.137.1.51142: Flags [.], ack 1894110878, win 23, length 0
    10:35:52.981393 IP node1.webcache > 192.168.137.1.51142: Flags [P.], seq 730850430:730850441, ack 1894110878, win 23, length 11
    10:35:52.982207 IP 192.168.137.1.51142 > node1.webcache: Flags [R.], seq 1894110878, ack 730850441, win 0, length 0
    
    
    控制窗口大小  win 31
    
    SEND_BUF_SIZE = 9
    RECV_BUF_SIZE = 8
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.setsockopt( socket.SOL_SOCKET, socket.SO_SNDBUF, SEND_BUF_SIZE)
    s.setsockopt( socket.SOL_SOCKET, socket.SO_RCVBUF, RECV_BUF_SIZE)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
  • 相关阅读:
    使用.NET中的XML注释(二) -- 创建帮助文档入门篇
    使用.NET中的XML注释(一) -- XML注释标签讲解
    C# 代码注释和Config文件中,特殊符号的书写方法。
    C# 代码注释规范文档
    智能语音录制程序——窃听神器(源码放送!)
    基于 Winform + DotNetBar 写的股市行情助手
    C#自动弹出窗口并定时自动关闭
    C#关闭子窗口而不释放子窗口对象的问题解决
    C#中将dateTimePicker初始值设置为空
    c#多线程实现定时执行代码与lock锁操作
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348547.html
Copyright © 2011-2022 走看看