声明
文中提到的应用程序特指JAVA应用程序
本文涉及的Linux基础命令
netstat -natp 查看端口相关信息
lsof -p pid 查看某个进程打开的fd相关信息
ls -l /proc/pid/fd 查看某个进程打开的fd相关信息
什么是TCP
TCP是一种面向连接的、可靠的传输协议
Client(客户端)和 Server(服务端)建立连接需要经过三次握手,断开连接需要完成四次挥手
什么是Socket
Linux一切皆文件,Socket是其中一种文件类型
ls -l /proc/pid/fd 查看某个进程的fd可以看到socket文件类型
- lrwx------. 1 root root 64 Dec 13 16:42 4 -> socket:[3848983]
- lrwx------. 1 root root 64 Dec 13 16:42 5 -> socket:[3848985]
socket可以简单理解为ServerIP;ServerPort + ClientIP;ClientPort 这样一个四元组组成
端口的最大限制:65535
单进程fd数量限制:根据Linux系统用户的不同,可以修改不同的数量限制,使用ulimit -a 命令查询
ulimit -a
open files (-n) 1024
pipe size (512 bytes, -p) 8
查询所有进程已经使用的fd