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)
  • 相关阅读:
    Android平台下基于XMPP的IM研究
    Android File数据存储
    Android 获取屏幕分辨率的方式
    Android TabHost 动态修改图标或者动态改变标题
    Android DatePickerDialog用法
    SharedPreference Demo
    progressdialog 去边框
    [LCT学习时的一些笔记]
    [ZJOI2007]最大半连通子图
    【Matrixtree Theorem学习笔记】
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348547.html
Copyright © 2011-2022 走看看