`
pcpig
  • 浏览: 91815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

大量close_wait以及调用ip地址错误获取方法引发的故障

阅读更多
记录一下这几天帮助兄弟项目组解决的几个问题

工程:网关服务器,业务逻辑少,操作不费时
问题:大量的Close_wait,访问速度较慢

分析&解决:
1、close_wait是TCP/IP协议中被动关闭方收到Fin后没有发送Fin导致
  项目采用了mina框架,服务器被动关闭时会生成一个异常,调用exceptionCaught()方法,
  在该方法中,服务器调用关闭方法session.close(false);false的意思是先发送数据,等数据   发送完了再关闭。通常情况下这是一个正常的流程,但是在高并发访问的情况下,可能生成大量Close_wait。如果情况允许的话,把false改成true就好了。通常情况下,改成true是没有问题的。

2、项目中获取ip的方法有问题:
  ip = ((InetSocketAddress)(session.getRemoteAddress())).getHostName();

  此方法会先通过域名服务器获取远程客户段的域名,域名无法获得的情况下再获取ip,在域名服务器不稳定的情况下,通常耗时好几百毫秒。如果没有必要的话,可以将这个代码直接修改为:
	InetSocketAddress accountAddress = (InetSocketAddress) session
				.getRemoteAddress();
	
		String accountIp = accountAddress.getAddress().getHostAddress();
分享到:
评论

相关推荐

    Netstat命令详解如何关闭TIME_WAIT连接如何查看nginx的访问流量[归类].pdf

    5. FIN_WAIT1:主动关闭(active close)端应用程序调用 close,于是其 TCP发出 FIN 请求主动关闭连接,之后进入 FIN_WAIT1 状态。 6. CLOSE_WAIT:被动关闭(passive close)端 TCP 接到 FIN。 7. FIN_WAIT2:主动...

    Local TCP list.rar_tcp_winsock api_winsockapi

    本文将深入探讨“Local TCP list.rar”这个主题,介绍如何利用Winsock API读取本地计算机的TCP连接清单,以及获取其中的IP地址、端口和连接状态等信息。 首先,理解TCP连接的基本概念至关重要。TCP是一种面向连接的...

    linux socket 状态迁移 源码测试

    例如,使用套接字API创建Socket,bind()绑定本地地址,listen()开始监听,accept()接收连接请求,send()和recv()进行数据传输,最后使用shutdown()或close()关闭连接。客户端类似,只是先发起连接请求。 在测试过程...

    TCP_IP详解卷1

    3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的...

    Vpp tcp层代码解析.pdf

    **vppcom_session_bind**: 将服务端的IP地址、端口以及协议类型记录到服务端session的transport结构中。 **vppcom_session_listen**: 该函数负责创建应用程序与VPP通信的socket以及相关线程,例如app_wrk和app_wrk-...

    TCP/IP详解part_2

    3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的...

    cacti添加监控TCP连接模板

    TCP连接由源端口号、目标端口号以及各自的IP地址唯一标识,这种连接状态可以分为SYN_SENT、SYN_RECEIVED、ESTABLISHED、CLOSE_WAIT、FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT、CLOSED等多种状态。 在Cacti中添加TCP连接...

    TCP协议的C语言实现

    9. **连接状态与状态机**:TCP连接有多个状态,如CLOSED、LISTEN、SYN_SENT、SYN_RCVD、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、CLOSING、LAST_ACK、TIME_WAIT等,理解这些状态及其转换对于调试和问题...

    Linux下TCP/IP服务器实现源码解析(含源码)

    通过这些函数,开发者可以创建一个套接字,绑定到特定的IP地址和端口,监听连接请求,以及建立或接受连接。 2. **TCP连接的建立与关闭**:TCP的三次握手和四次挥手过程是其核心特性,源码会解释这些流程在内核中的...

    socket编程1

    网络通信中,还涉及到其他协议,如ARP(地址解析协议)用于获取MAC地址,RARP(逆向地址解析协议)用于从MAC地址获取IP地址,以及HTTP、FTP、Telnet等应用层协议。IP(Internet Protocol)和ICMP(Internet Control ...

    TCP-IP详解卷2_1.rar

    6.6.11 删除IP地址:SIOCDIFADDR 140 6.7 接口ioctl处理 141 6.7.1 leioctl函数 141 6.7.2 slioctl函数 142 6.7.3 loioctl函数 143 6.8 Internet实用函数 144 6.9 ifnet实用函数 144 6.10 小结 145 第7章 域和协议 ...

    TCP-IP详解卷2_2.rar

    6.6.11 删除IP地址:SIOCDIFADDR 140 6.7 接口ioctl处理 141 6.7.1 leioctl函数 141 6.7.2 slioctl函数 142 6.7.3 loioctl函数 143 6.8 Internet实用函数 144 6.9 ifnet实用函数 144 6.10 小结 145 第7章 域和协议 ...

    java获取网卡地址

    在Windows环境下,我们可以调用操作系统命令行工具来获取网卡的IP地址信息。例如,我们可以使用`ipconfig`命令来查询网络配置,其中包含了物理网卡(通常称为MAC地址)的信息。 以下是使用`ProcessBuilder`获取网卡...

    实现STM32单片机TCP服务器,支持PC多客户端连接

    STM32作为服务器端,需要处理TCP的状态机,包括CLOSED、LISTEN、SYN_SENT、SYN_RCVD、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、CLOSING、LAST_ACK、TIME_WAIT等状态。在接收和发送数据时,要注意处理TCP...

    易语言统计TCP连接信息

    2. **解析数据**:获取到TCP连接表后,需要解析其中的每一项,提取IP地址、端口和状态等字段。易语言提供了数据类型转换和结构体操作的相关命令,如`整数转字符串`、`字节集到字符串`等。 3. **统计信息**:根据...

    Basic unix socket programming

    总结,Unix套接字编程涉及到TCP和UDP协议的理解,以及一系列与之相关的函数调用,如socket、bind、listen、accept、connect、send、recv、close等。了解这些基础知识是构建高效、可靠的网络应用程序的关键。在设计...

    eXtended osip library 用户手册

    接下来,通过调用 `eXosip_listen_addr()` 函数来设置监听地址,其中 `IPPROTO_UDP` 表明使用 UDP 协议,`NULL` 指向绑定所有可用网络接口,`port` 是端口号,`AF_INET` 指定 IP 地址族为 IPv4,最后一个参数为 0 ...

    tcp.rar_tcp类

    `socket()`函数用于创建一个套接字,`bind()`函数绑定IP地址和端口号,`listen()`让服务器进入监听状态,等待客户端连接。对于客户端,`connect()`函数用于连接服务器。`accept()`函数则在服务器端接收客户端的连接...

    TCP-IP详解卷2

    6.6.11 删除IP地址:SIOCDIFADDR 140 6.7 接口ioctl处理 141 6.7.1 leioctl函数 141 6.7.2 slioctl函数 142 6.7.3 loioctl函数 143 6.8 Internet实用函数 144 6.9 ifnet实用函数 144 6.10 小结 145 第7章 域和协议 ...

Global site tag (gtag.js) - Google Analytics