Send -Q Recv -Q
Send -Q 对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
Recv -Q 数据已经在本地接收缓冲,但是还没有recv().
CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分 段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情 况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作 可能会带来错误。
/proc/sys/net/ipv4/tcp_fin_timeout
如 果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只能吃掉1.5K 内存,但是它们的生存期长些。参见tcp_max_orphans 。
/proc/sys/net/ipv4/tcp_keepalive_time
当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时。
/proc/sys/net/ipv4/tcp_keepalive_intvl
当 探测没有确认时,重新发送探测的频度。缺省是75 秒。
/proc/sys/net/ipv4/tcp_keepalive_probes
在 认定连接失效之前,发送多少个TCP 的keepalive 探测包。缺省值是9 。这个值乘以tcp_keepalive_intvl 之后决定了,一个连接发送了keepalive 之后可以有多少时间没有回应。
相关推荐
特别是,netstat 命令中的 Recv-Q 和 Send-Q 两个信息是查看 TCP 连接状态的重要指标。但是,Linux 官方文档中关于 Recv-Q 和 Send-Q 的描述是错误的。笔者小林通过查看内核源码,确认了这个问题。 首先,我们需要...
* `Recv-Q`:接收队列中的字节数 * `Send-Q`:发送队列中的字节数 * `Local Address`:本地 IP 地址和端口号 * `Foreign Address`:远端 IP 地址和端口号 * `State`:套接字的状态,例如 LISTEN、ESTABLISHED 等 SS...
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN tcp 0 0 192.168.92.128:8090 192.168.92.1:56258 ESTABLISHED tcp 0 52 ...
2. **Recv-Q** 和 **Send-Q**:接收队列和发送队列的长度,一般为0,表示没有未处理的数据。 3. **Local Address**:本地地址,显示了该端口监听的IP和端口号。 4. **Foreign Address**:远程地址,对于监听连接来说...
简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 ...Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED tcp 296
* Recv-Q:显示接收队列的长度。 * Send-Q:显示发送队列的长度。 * Local Address:显示本地IP地址和端口号。 * Foreign Address:显示远程IP地址和端口号。 * State:显示连接的状态,如ESTABLISHED、LISTEN等。 ...
Proto Recv-Q Send-Q Local Address Foreign Address State Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path ``` 这里列出了活跃的互联网连接以及UNIX域套接字的...
- **Recv-Q/Send-Q** - 分别表示接收队列和发送队列的长度。正常情况下,这两个值应为0。如果出现非零值,可能意味着数据包在网络中堆积,这通常是网络拥塞或应用程序处理缓慢的表现。 - **Local Address/Foreign ...
* Recv-Q:显示当前套接口缓冲区中等待处理的数据包数量。 * Send-Q:显示当前套接口缓冲区中等待发送的数据包数量。 * Local Address:显示本地套接口的 IP 地址和端口号。 * Foreign Address:显示远程套接口的 IP...
- `Recv-Q`和`Send-Q`:接收队列和发送队列的长度,正常情况下应为0。 - `Local Address`:本地IP地址和端口号。 - `Foreign Address`:远程IP地址和端口号。 - `State`:连接状态,如ESTABLISHED(已建立连接)...
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 5 18.104.81.152:7710 211.100.39.250:29488 ESTABLISHED 6111/sshd ``` 上面的输出显示7710端口正被`sshd`程序使用。 2. **...
- `Recv-Q`:接收队列中等待处理的数据量。 - `Send-Q`:发送队列中待发送的数据量。 - `Local Address`:本地主机的IP地址和端口号。 - `Foreign Address`:远程主机的IP地址和端口号。 - `State`:连接状态,...
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 256 10.153.89.66:ssh 10.153.21.168:1054 ESTABLISHED tcp 0 0 10.153.89.66:ssh 10.153.21.166:1222 ESTABLISHED tcp 0 0 10.153.89.66:1521 10....
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN ... ``` - **字段解释**: - `Proto`:协议类型。 - `Recv-Q`:接收...
- **Recv-Q**:接收队列,等待处理的接收数据包数量。 - **Send-Q**:发送队列,等待发送的数据包数量。 - **Local Address**:本地地址,包括IP和端口号。 - **Foreign Address**:远程地址,同样包括IP和端口号。 ...
- `netstat -natp` 用于查看所有网络连接,特别是`Recv-Q`, `Send-Q` 和 `State`,这些指标可以帮助我们了解网络通信的状态。 - `lsof -p pid` 查找特定进程打开的文件句柄,包括网络套接字。 - `lsof -i :80` ...
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15772/svnserve ``` 编辑 `/etc/rc.d/rc.local` 文件,添加如下内容: ```bash #!/bin/sh -...