分类: LINUX
2013-06-07 01:59:07
原文地址:三次握手相关的几个数据 作者:newjiawen
查看网络的连接状态常用的文件是/proc/net/snmp及/proc/net/netstat文件,当你打开这两个文件时,你会出现格式比较乱,因为它里面包含的数据比较多,我们一般用以下两个命令来查看相应的网络状态,其命令为:netstat -s和nstat -az
这两个文件中包含的信息较多,这里只简单的写出了几个与三次握手相关的几个参数,并简单地分析了它的含义:
TcpAttemptFails:(连接尝试失败数)
1. 试图和一个不存在的套接口建立连接时,连接失败,而TcpAttemptFails同时会加1
2. 被动连接(SYN_SEND)等待第三次握手的ack应答信号超时或者为其它的错误应答时,连接将会失败,且同时TcpAttemptFails的值将加1。
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0
TcpExtListenDrops(监听队列连接丢弃数) 和TcpListenOverflows(监听队列连接溢出数):
1. 首先是查看现有的连接数是否大于设置的backlog,如果大于就丢弃,并相应的参数值加1。其中backlog是由程序和系统参数net.core.somaxconn共同设置,当backlog的值大于系统设置的net.core.somaxconn时则取net.core.somaxconn的值,否则取程序设置的backlog值。这种出错的方式也被记录在TcpListenOverflows中(其只记录了连接个数不足而产生溢出错误的次数!)。
2. 接收到连接的应答信号时,但它的源地址和目标不同,或者为空时,这个连接将被丢弃。而TcpListenDrops 值也会加1。
3. 当连接没有问题时,系统将会分配必要的资源,而此时没有足够的资源时则会错,此时的连接也会被丢弃,同时TcpListenDrops 值也会加1。
4. 最后在新建绑定端口的时候如果出现资源的不足时TcpListenDrops 值也会加1。
SyncookiesFailed:
当net.ipv4.tcp_syncookies = 1开启时, SyncookiesFailed是通过tcp_v4_hnd_req调用子函数cookie_v4_check做一系列的合法性校验,主要工作是在半连接队列中看是否存在当前的socket连接,如果不存在则说明这个是错误的应答,其值加1。
其它的数据含义可以参考:http://blog.chinaunix.net/uid-20695170-id-3073945.html