3

三次握手

图片描述

ListenOverflows

root@b5dbe93bcb04:/opt# netstat -s | grep listen
    22438 times the listen queue of a socket overflowed

tcp_v4_syn_recv_sock():三路握手最后一步完成之后,Accept queue队列(完全连接队列,其大小为min(/proc/sys/net/core/somaxconn, backlog))超过上限时加1.

ListenDrops

root@b5dbe93bcb04:/opt# netstat -s | grep LISTEN
    49148 SYNs to LISTEN sockets dropped

tcp_v4_syn_recv_sock():任何原因,包括Accept queue超限,创建新连接,继承端口失败等,加1. 包含ListenOverflows的情况,也就是说当出现ListenOverflows时,它也会增加1;除此之外,当内存不够无法为新的连接分配socket相关的数据结构时,也会增加1,当然还有别的异常情况下会增加1。

AttemptFails

  • tcp_done():如果在SYN_SENT/SYN_RECV状态下结束一个连接,加1

  • tcp_check_req():被动三路握手最后一个阶段中的输入包中如果有RST|SYN标志,加1

1.试图和一个不存在的套接口建立连接时,连接失败,而TcpAttemptFails同时会加1

2.被动连接(SYN_SEND)等待第三次握手的ack应答信号超时或者为其它的错误应答时,连接将会失败,且同时TcpAttemptFails的值将加1。

ActiveOpens

客户端通过connect 发起主动打开(active open),tcp_connect(),发送SYN时,加1。

PassiveOpens

服务器必须准备好接受外来连接。通常调用的是socket,bind和listen这三个函数来完成。我们称之为被动打开(passive open)。被动三路握手完成,加1。

CurrEstab

tcp_set_state(),根据ESTABLISHED是新/旧状态,分别加减一。

EstabResets

tcp_set_state(),新状态为TCP_CLOSE,如果旧状态是ESTABLISHED/TCP_CLOSE_WAIT就加1。

doc


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...


引用和评论

0 条评论