0端口的用途是什么?

端口0不是一个真实的端口号,但它是有目的的

端口0在网络编程中具有特殊的意义,特别是在网络编程中Unix操作系统套接字编程其中端口用于请求系统分配的动态端口。端口0是一个通配符端口,它告诉系统找到一个合适的端口号。

不像大多数端口号,端口0为预留端口TCP / IP这意味着它不应该在TCP或UDP消息。TCP和UDP的网口范围是0 ~ 65535。端口范围0 ~ 1023定义为非临时端口、系统端口或非临时端口著名的港口.因特网号码分配机构(IANA)维护一个官方清单这些端口号在互联网上的预期用途,并且系统端口0不被使用。

TCP/UDP端口0如何在网络编程中工作

IT技术人员在服务器机架之间使用计算机。
捷达制作/盖蒂图片社

配置新的网络套接字连接需要在源端和目的端都分配一个端口号。发起者(源)发送的TCP或UDP消息包含两个端口号,以便消息接收者(目的地)可以向正确的协议端点发出响应消息。

IANA为基本的互联网应用程序(如web)预先分配了指定的系统端口服务器(端口80),但许多TCP和UDP网络应用程序没有自己的系统端口,必须从他们的设备获得一个操作系统每次他们跑。

为了分配源端口号,应用程序调用bind()等TCP/IP网络函数来请求一个源端口号。如果应用程序希望请求一个特定的数字,则可以提供一个固定的(硬编码的)数字给bind(),但是这样的请求可能会失败,因为在系统上运行的另一个应用程序可能正在使用它。

或者,它可以提供端口0给bind()作为它的连接参数。这将触发操作系统在TCP/IP动态端口号范围内自动搜索并返回一个合适的可用端口。

应用程序没有被授予端口0,而是授予了其他一些动态端口。这种编程约定的优点是效率。应用程序依赖于操作系统,而不是每个应用程序实现并运行代码来尝试多个端口,直到它们获得一个有效的端口。

Unix,窗户,和其他操作系统在端口0的处理上有所不同,但通用的约定是相同的。

端口0和网络安全

通过internet发送到侦听端口0的主机的网络流量可能是由网络攻击者生成的,也可能是由编程错误的应用程序意外生成的。主机对端口0流量的响应消息可以帮助攻击者了解这些设备的行为和潜在的网络漏洞。

许多互联网服务提供商(isp)阻塞端口0上的流量,包括传入和传出的消息,以防止这些攻击。

常见问题解答
  • 什么是端口号?

    用于TCP/IP网络连接的端口号作为地址信息,标识消息的发送者和接收者。端口号可以让同一网络上的各种应用程序同时共享资源。

  • 如何找到端口号?

    要找到特定IP地址的端口号,进入命令提示符、类型netstat - a,然后按输入.您将看到一个活动TCP连接列表,以及用冒号分隔的IP地址和端口号。

  • 我可以连接到端口0吗?

    不。官方的说法是,端口0不存在,你不能连接到它,因为它是一个无效的端口号。但是,您可以像使用另一个端口号一样,在端口0和端口0之间发送一个internet数据包。

这个页面有用吗?