zoukankan      html  css  js  c++  java
  • 系统的buffer 最小和最大值

    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    SEND_BUF_SIZE = 167
    RECV_BUF_SIZE = 191
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
    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)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
    
    node2:/root/test#python t7.py 
    87380
    16384
    2280
    2048
    
    实际最小是 分别
    
    
    1588 #define SOCK_MIN_SNDBUF 2048
    1589 /*
    1590  * Since sk_rmem_alloc sums skb->truesize, even a small frame might need
    1591  * sizeof(sk_buff) + MTU + padding, unless net driver perform copybreak
    1592  */
    1593 #define SOCK_MIN_RCVBUF (2048 + sizeof(struct sk_buff))
    1594 
    
    
                    if (val > sysctl_wmem_max)
                            val = sysctl_wmem_max;
    set_sndbuf:
                    sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
                    if ((val * 2) < SOCK_MIN_SNDBUF)
                            sk->sk_sndbuf = SOCK_MIN_SNDBUF;
                    else
                            sk->sk_sndbuf = val * 2;
    
    
    
    
    接收buffer 是2280-2048 = 232 来自sk_buff
    
    #include <linux/skbuff.h>       /* struct sk_buff */
  • 相关阅读:
    RBAC-基于角色的访问控制
    django缓存机制
    drf JWT认证
    drf自动生成接口文档
    drf多表断表操作
    drf过滤排序分页异常处理
    drf认证权限频率
    drf路由组件
    drf视图组件
    drf请求与响应
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348533.html
Copyright © 2011-2022 走看看