contents
下一节: 套接字库 上一层: TCP/IP 网络 前一节: 用户数据报协议

更多关于端口

端口可以被视为网络连接的附着点。如果一个应用程序想要提供某种服务,它会将其自身附加到一个端口并等待客户端(这也称为在端口上监听)。想要使用此服务的客户端会在其本地主机上分配一个端口,并连接到远程主机上的服务器端口。

端口的一个重要特性是,一旦客户端和服务器之间建立了连接,服务器的另一个副本可以附加到服务器端口并监听更多客户端。这允许例如,多个并发远程登录到同一主机,所有这些都使用相同的端口 513。TCP 能够区分这些连接,因为它们都来自不同的端口或主机。例如,如果您从 erdos 两次登录到 quark,则第一个 rlogin 客户端将使用本地端口 1023,而第二个客户端将使用端口 1022。然而,两者都将连接到 quark 上相同的端口 513。

这个例子展示了端口作为汇合点的用途,客户端联系特定的端口以获得特定的服务。为了让客户端知道正确的端口号,两个系统的管理员必须就这些号码的分配达成协议。对于广泛使用的服务,例如 rlogin,这些号码必须集中管理。这是由 IETF(或互联网工程任务组)完成的,该组织定期发布名为分配的号码的 RFC。它描述了,除其他外,分配给知名服务的端口号。Linux 使用一个将服务名称映射到数字的文件,称为 /etc/services。它在 gif 节中描述。

值得注意的是,尽管 TCP 和 UDP 连接都依赖于端口,但这些号码并不冲突。这意味着例如,TCP 端口 513 与 UDP 端口 513 不同。事实上,这些端口充当两种不同服务的访问点,即 rlogin (TCP) 和 rwho (UDP)。


contents
下一节: 套接字库 上一层: TCP/IP 网络 前一节: 用户数据报协议

Andrew Anderson
Thu Mar 7 23:22:06 EST 1996