- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux服务器端口的那些事
了解端口的用途和局限,以及如何突破端口限制
聂永@2014/06/26
目录
目录
IP和协议端口
网络四元组、二元组
突破端口限制
代码绑定IP和端口
外部程序绑定IP和端口
地址和TIME_WAIT
服务器地址重用和释放
演示和用途
数据进入栈封装过程
IP地址位置
IP报文
IP地址属于IP数据报,标识源主机和目标主机
协议端口在TCP数据包中位置
只有TCP数据包头部中包含端口
端口号和TCP服务器进程存在映射关系
端口,具有数据包路由作用
TCP传输层根据端口路由数据包到服务器程序所申请的缓存队列中
协议端口用途
一台服务器好比一座院子
IP地址比作院子大门;一座院子对应至少一个大门
每一个具体的服务程序进程好比一个房子
端口号好比进入房间的门
一个房间至少一个门
服务器程序可以决定由哪一个大门才能进入房间
以太网帧根据IP地址决定投递主机位置,端口决定数据报送达应用程
序映射
服务器内核接收的数据将根据端口进行路由传递到对应程序中
协议端口的一些常识
16位表示
范围 :从0 到65535 (2^16-1 )
已知端口号[0,1023],这些端口由IANA分配和控制
Linux下需要root权限才能使用
[1024,65535],可自由使用端口数量不超过64512个
但不要和已有服务进行冲突
UNP对网络四元组的解释
《UNIX网络编程卷1 :套接字联网API (第3版)》 (简称UNP )解
释:
一个TCP连接的套接字对(socket pari)是一个定义该连接的两个端点
的四元组,即本地IP地址、本地TCP端口号、外地IP地址、外地TCP
端口号。套接字对唯一标识一个网络上的每个TCP连接。
标识每个端点的两个值(IP地址和端口号)通常称为一个套接字。
四元组解释
仅针对TCP
IP用于标识通讯的机器,端口号用于标识通信的进程。
网络四元组,一个完整TCP连接参阅双方体现:
{请求者本机IP地址,请求者本机端口,目标IP地址,目标端口}
一次TCP请求必须把自身IP、PORT以及目标IP、目标PORT都要携
带上
Linux系统端口范围
默认范围 :1~65535
0-1023已知端口,已被分配,需要ROOT权限
可被自由使用端口范围:65535 - 1024 ≈ 64000
查看Linux系统默认可使用端口范围:
sysctl -a | grep net.ipv4.ip_local_port_range
32768 61000
修改其端口范围:
sysctl -w net.ipv4.ip_local_port_range=1024 65535
保存修改:
sysctl -p 持久化
如何突破端口数量限制
默认情况下,系统对外发出的请求数量受限于可用端口数量!
网络四元组中{本机IP ,本机Port}两元组表示一个套接字
一个套接字表示系统可以向外请求的一个完整的TCP连接
套接字的数量
文档评论(0)