网络 I/O(Input/Output)是指操作系统与网络接口之间的数据传输操作,包括从网络中接收数据和向网络中发送数据。本质上是通过协议栈的“socket接口”实现对远端主机的访问。
基本概念
性能指标
1、带宽
在单位时间内传输的数据量,理论上的最大传输速率,单位为bps(比特每秒)。
2、延时
数据传输所经历的时间,单位为ms(毫秒)。
3、吞吐量
网络在特定时间内传输的数据量,是实际达到的数据传输率,受带宽、延时、丢包率等因素的影响。
4、IOPS
I/O per second,即每秒钟可以处理的I/O个数。
TCP建立、关闭连接的相关状态
1、三次握手(建立连接)
(1)LISTENING
服务端监听tcp端口的连接请求。
(2)SYN-SENT
客户端发送请求连接,等待状态。
(3)SYN-RECV
服务端接收连接请求,发送确认状态。
(4)ESTABLISHED
该状态表示连接建立,正在传输数据。
2、四次挥手(关闭连接)
(1)FIN-WAIT1
主动发起关闭端(客户端)发出FIN请求时,进入的状态。
(2)FIN-WAIT2
主动发起关闭端(客户端)接收到ACK回复后,进入该状态(半关闭状态)。此时应用程序可以接收数据,无法发送数据。
(3)CLOSE-WAIT
被动关闭端(服务端)接收到FIN,回复ACK后进入的状态。
(4)LAST-ACK
被动关闭端(服务端)传输完所有数据后,发送FIN并进入的状态。
(5)TIME-WAIT(2MSL状态)
主动发起关闭端(客户端)接收到FIN,发送ACK后进入的状态。
(6)CLOSED
被动关闭端(服务端)接收ACK后,进入closed的状态。
注:
1、客户端SYN-SENT状态非常短暂,如果服务器出现大量该状态,排查一下是不是线路不好或存在扫描网段的病毒工具。
2、服务端SYN-RECV状态也非常短暂,存在大量该状态检查一下服务器是否被攻击。
常用分析工具
netstat
netstat命令用于显示网络连接、路由表、接口统计等信息。
# 显示tcp、udp的网络连接状态、进程
netsta -antup
ss
ss命令用于显示系统中socket的统计信息。与netstat类似,但更加详细且处理大量连接时更高效。
ss -tunpa
sar
sar命令用于收集、报告系统活动信息,包括CPU、内存、I/O、进程活动等。
# 统计网卡接口的网络流量
sar -n DEV 1 10
IFACE:网络接口的名称。
rxpck/s:每秒钟接收的数据包数量。
txpck/s:每秒钟发送的数据包数量。
rxkB/s:每秒钟接收的字节数(以KB为单位)。
txkB/s:每秒钟发送的字节数(以KB为单位)。
rxcmp/s:每秒钟接收的压缩数据包数量。
txcmp/s:每秒钟发送的压缩数据包数量。
rxmcst/s:每秒钟接收的多播(组播)数据包数量。
%ifutil:网络接口利用率百分比(忙碌程度)。
总结
关于网络I/O,开发人员更需要理解I/O模型、协议栈等,本文从运维的角度简述网络的几个重要指标、tcp连接状态以及服务器出现网络问题时如何定位分析。
网络I/O问题的排查思路
1、使用ifconfig/ip命令查看网卡接口是否产生了大量错误,排查是否存在硬件问题?
2、确认网络设备中的流量类型,是否有进程处理该类型的流量?进一步找到该进程的套接字socket。(软件问题)
网络 I/O工具
ping:测试连通性
ifconfig/ip:配置和查看网络接口
netstat/ss:统计网络连接和端口
ifstat:监控网络流量
tcpdump:抓包分析
traceroute:追踪网络路径,
nmap:扫描网络
sar:收集系统活动信息
iperf/netperf:测试网络带宽
dtrace/strace:跟踪系统调用
刀客12 天前
发表在:挂机网赚 - Wipter@大礼:我回头看看,可能先弄✈群先,感谢...
大礼12 天前
发表在:挂机网赚 - Wipter没事的,群名不那么直接就行了
刀客12 天前
发表在:挂机网赚 - Wipter@大礼:🐧群,这种网赚挂机,容易和谐
大礼13 天前
发表在:挂机网赚 - Wipter搞个qq群吧,后期加群限制下就行了,tg...
刀客13 天前
发表在:挂机网赚 - Wipter@大礼:迟一点吧,我到时候弄个tg群
大礼14 天前
发表在:挂机网赚 - Wipter@大礼:搞一个qq群,交流交流
刀客15 天前
发表在:挂机网赚 - Wipter@大礼:暂时木有哦~
大礼15 天前
发表在:挂机网赚 - Wipter有没有群,交流交流
刀客24 天前
发表在:挂机网赚 - ProxyRack@cnbobo:目前我在Windows跟...
cnbobo24 天前
发表在:挂机网赚 - ProxyRack刀哥,proxyrack项目目前有投入多...