tcp端口号范围
时间:2022-05-02 19:22 | 分类: 句子大全 | 作者:漫漫开发路 | 评论: 次 | 点击: 次
tcp端口号范围
1. 网络编程时可用端口号的范围是多少
端口的取值范围是:0-65535。
在这个取值范围中1023以下的端口已经分配给了常用的一些应用程序,这个数字以后的端口部分被使用,所以网络编程可用的端口一般在1024之后选取。
在网络技术中,端口(Port)大致有两种意思:
1、物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等;
2、逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。
扩展资料:
常用的保留UDP端口号有:
DNS 53,BootP 67(server)/ 68(client),TFTP 69,SNMP 161等。
每个TCP报文头部都包含源端口号(source port)和目的端口号(destination port),用于标识和区分源端设备和目的端设备的应用进程。
在TCP/IP协议栈中,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一的确定一条TCP连接。
相对于TCP报文,UDP报文只有少量的字段:源端口号、目的端口号、长度、校验和等,各个字段功能和TCP报文相应字段一样。
参考资料来源:百度百科-网络端口
2. IP地址范围(不分哪段的)还有端口号范围分别是多少
10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。
端口概念
在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。
(1)知名端口(Well-Known Ports)
知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
(2)动态端口(Dynamic Ports)
动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
3. socket端口范围是多少
由一个经典问题来引出:一台机器最多可以建立多少tcp连接?
这个问题基本都是从server的角度来回答,因为很少会有客户端需要建立多个连接。
需要记住:
client_ip:client_port server_ip:server_port,一个四元组可以确定一个连接
一.对于单机server,单机可以接受的最大连接数是多少?
65536是一个经典错误答案.
理论上是受系统支持的最大打开文件描述符的数目限制;实际则受到系统资源的各种限制。之前转过一篇淘宝探索单机server 支持200M连接的尝试。
对于从同一个listen的socket accept进来的连接,是本机端口号都是同一个端口号,都是listen之前bind的那个端口号。从同一个listen的socket可以接受的连接实际上也远大于65536
对于单机server来讲,通常server_ip和server_port是固定的,client_ip和client_port都是可变量,可变数目远大于65536。实际上server_ip也可以通过多网卡,虚ip等手段来变化
二.对于单机client,单机可以发起的最大连接数是多少?
1.client连接的只是一个对端server,即对端ip:port是确定的,只有一个。
这时,要受到系统端口号的限制,每发起一个新的连接,就要占用一个新的端口号。这就是65536这个数字的由来,因为端口号是16位无符号整数,0-65535之前变化。
但实际最大连接数并到不了65536,还要受到net.ipv4.ip_local_port_range 这个范围的限制,自己的程序只能使用这个范围内的端口号。
这种情况下,通常server_ip,server_port,client_ip都是固定的,可变的只有client_port,所以受到端口号数目的限制。实际上client_ip也可以通过多网卡,虚ip等手段来变化
2.client连接的是多个server,即对端ip:port有多个可以同时连接
这时的答案和单机server的情况是一样的,理论上是受系统支持的最大打开文件描述符的数目限制;实际则受到系统资源的各种限制。
对于这种情况下,只有client_ip是固定的,server_ip server_port client_port都是可变量,可变数目远大于65536,但在实际编程处理时,需要注意如何支持使用相同的本地ip和port向不同的远端发起连接,即支持:
client_ip:client_port ------- server_ip1:server_ip1
client_ip:client_port ------- server_ip2:server_ip2
这样的情况,需要设置客户端socket 的SO_REUSEADDR选项,即可使用相同的本地ip和port向不同的远端发起连接
SO_REUSEADDR通常只在server端设置,用来能使server快速重启
Stevens的Unix网络编程中说,SO_REUSEADDR可以用在以下四种情况下:
1.当有一个有相同本地地址和端口的socket1处于TIME_WAIT状态时,而你启动的程序的socket2要占用该地址和端口,你的程序就要用到该选项。
2.SO_REUSEADDR允许同一port上启动同一服务器的多个实例(多个进程)。但每个实例绑定的IP地址是不能相同的。在有多块网卡或用IP Alias技术的机器可以测试这种情
3.SO_REUSEADDR允许单个进程绑定相同的端口到多个socket上,但每个socket绑定的ip地址不同。
4.SO_REUSEADDR允许完全相同的地址和端口的重复绑定。正常只用于UDP的多播
参考:TCP/UDP 端口号范围
以下内容来自RFC6335
一个端口号由一个16位数字表示,范围0~65535。端口号由IANA负责分配,主要分为3大类:
系统端口(Well known port)
系统端口范围:0~1023
系统端口由IANA负责分配。需要走申请流程,申请手续最为严格。
用户端口(Registered port)
用户端口范围:1024~49151
用户端口由IANA负责分配。需要走申请流程,申请手续相对系统端口来说不那么严格。
动态端口(Private port)
动态端口范围:49152~65535
动态端口不在IANA的分配范围,应用程序可以在不用申请这些端口的情况下使用这些端口,但是,有个问题,因为这些端口可能会被其他应用程序或者操作系统使用,所以,我们不能假定这些端口在任意时间都可用,因此,不能将这些端口用于标示一个服务。
结论
系统端口通常紧密绑定于一些比较常用的服务,用户端口也绑定了其他的许多服务。动态端口不固定分配给某个服务,但是有可能使用前已经被其他服务占用。当使用动态端口的进程退出,端口资源释放。
- 上一篇:中学生关于冬天的优美句子
- 下一篇:列队口号