zoukankan      html  css  js  c++  java
  • 全连接队列

    
    「全连接队列」包含了服务端所有完成了三次握手,但是还未被应用调用 accept 取走的连接队列
    
    你可以把这个过程想象生产者、消费者模型。内核是一个负责三次握手的生产者,握手完的连接会放入一个队列。我们的应用程序是一个消费者,
    
    
    取走队列中的连接进行下一步的处理。这种生产者消费者的模式,在生产过快、消费过慢的情况下就会出现队列积压。
    
    
    
    处于 LISTEN 状态的 socket,Recv-Q 对应 sk_ack_backlog,
    
    表示当前 socket 的完成三次握手等待用户进程 accept 的连接个数,
    
    
    Send-Q 对应 sk_max_ack_backlog,表示当前 socket 全连接队列能最大容纳的连接数
    
    
    node1:/root#ss -lnt  | grep 8081
    LISTEN     6      5             192.168.137.2:8081                     *:*   
    
    
    
    服务端脚本:
    
    node1:/root/test#cat p2.py 
    # coding = utf-8
    # -*- coding:utf-8 -*-
    import socket
    import time
    BUFSIZE=1024
    ip_port = ('192.168.137.2',8081)
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建套接字
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(ip_port)#绑定地址
    s.listen(5)
    time.sleep(10000)
    
    
    ss -lnt | grep :9090
    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
    LISTEN     51     50           *:9090                     *:*
    对于 LISTEN 状态的套接字,Recv-Q 表示 accept 队列排队的连接个数,
    
    Send-Q 表示全连接队列(也就是 accept 队列)的总大小。
  • 相关阅读:
    C++之路进阶——codevs2439(降雨量)
    C++之路进阶——codevs2933(诗人小G)
    C++之路进阶——bzoj2879(美食节)
    C++之路进阶——bzoj1934(善意的投票)
    C++之路进阶——bzoj3876(支线剧情)
    C++之路进阶——codevs1281(Xn数列)
    八数码难题
    道路游戏
    细胞分裂
    最长链
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348470.html
Copyright © 2011-2022 走看看