udp端口号范围通常有多大?

TheDisguiser 2020-08-10 10:32:15 java常见问答 14549

在TCP和udp协议中是有端口范围这一说的,超出端口范围访问就会凉凉,小伙伴们知道它有多大吗?下面小编就带你一起看看。

端口范围

一般在 TCP及 UDP的报文结构中都会使用源端口和目标端口号,如下:

udp端口号范围

可以看到,它的长度都是16个bit,因此端口号范围为0到(2^16-1),即 0到 65535。其中0到1023是IANA规定的系统端口,就是系统保留窗口。

根据RFC 6335的文档,端口号在事实上分为三个范围:

- 系统端口,即公认的端口,从 0 到 1023 。

- 用户端口,又称为注册端口,从 1024 到 49151 。

-临时端口,又称动态端口(Ephemeral Port),从 49152 到 65535。

各端口范围用途

系统端口,是系统默认保留端口,用于提供已存在的服务。如HTTP就为80端口,DNS服务为53端口。

用户端口,是用户程序自行绑定的端口。一般在开发人员开发新服务时,都会绑定此区间内端口。

PS:上面端口绑定的服务,在wikipedia上都有相应的词条:List of TCP and UDP port numbers

临时端口,它一般没有被公认绑定到那些服务上,可以用于任何用途。

临时端口解析

一般情况下,当一个客户端与服务端建立联系时,都需要通过一个四元组(server IP, server port, client IP, client port)来区分服务。除client Port外,其他三个通常都是确定的。而client Port,除非是客户端程序显式地指定一个端口号,不然IP 栈就会自动选取一个端口来绑定服务,从而进行服务的区分。在这里,这个端口号就是从临时端口号中选取的。。

当这个连接断开后,该端口允许被重用。注意了,绝大部分IP栈都不会在该端口释放后,就马上重用它,而是等到其他临时端口都被使用过了,才会重新使用该端口。

以上就是本篇文章的所有内容,端口号的范围一定要记得,不然在运行时可能会出错。更多编程常见问题关注我们了解详情。

推荐阅读:

udp协议和tcp协议是什么?要如何实现?

udp端口扫描,java实现本地主机UDP端口扫描

udp端口号一般有哪些?(UDP端口大全详解)