什么是 TCP 端口?17 Mar 2025 | 5 分钟阅读 TCP 端口是分配给不同应用程序的唯一编号。例如,我们在电脑上打开了电子邮件和游戏应用程序;通过电子邮件应用程序,我们想向主机发送邮件,通过游戏应用程序,我们想玩在线游戏。为了完成所有这些任务,不同的唯一编号被分配给这些应用程序。每个协议和地址都有一个端口,称为端口号。TCP (传输控制协议) 和 UDP (用户数据报协议) 协议主要使用端口号。 端口号是与 IP 地址一起使用的唯一标识符。端口是一个 16 位无符号整数,TCP/IP 模型中可用的端口总数为 65,535 个端口。因此,端口号的范围是 0 到 65535。在 TCP 中,零端口号被保留且不能使用,而在 UDP 中,零端口不可用。IANA (互联网号码分配机构) 是一个分配端口号的标准机构。 端口号示例 192.168.1.100: 7 在上述情况下,192.168.1.100 是 IP 地址,7 是端口号。 要访问特定服务,端口号与 IP 地址一起使用。0 到 1023 的端口号范围保留给标准协议,其他端口号是用户定义的。 为什么我们需要端口号?单个客户端可以与同一服务器或多个服务器建立多个连接。客户端可能同时运行多个应用程序。当客户端尝试访问某些服务时,IP 地址不足以访问服务。要从服务器访问服务,需要端口号。因此,传输层通过为应用程序分配端口号,在提供这些应用程序之间的多重通信方面发挥着重要作用。 端口号分类端口号分为三类
![]() 知名端口知名端口的范围是 0 到 1023。知名端口与那些服务常见应用程序和服务的协议一起使用,例如 HTTP (超文本传输协议)、IMAP (互联网消息访问协议)、SMTP (简单邮件传输协议) 等。例如,我们想访问互联网上的某些网站;那么,我们使用 http 协议;http 可用端口号 80,这意味着当我们使用 http 协议与应用程序时,它会获得端口号 80。它定义了只要使用 http 协议,就会使用端口号 80。同样,对于其他协议,例如 SMTP、IMAP;都定义了知名端口。剩余的端口号用于随机应用程序。 注册端口注册端口的范围是 1024 到 49151。注册端口用于用户进程。这些进程是独立的应用程序,而不是具有知名端口的常见应用程序。 动态端口动态端口的范围是 49152 到 65535。动态端口的另一个名称是临时端口。当客户端创建连接时,这些端口号会动态分配给客户端应用程序。当客户端发起连接时,动态端口会被识别,而客户端在连接之前就知道知名端口。当客户端连接到服务时,客户端不知道此端口。 TCP 和 UDP 头部正如我们所知,TCP 和 UDP 都包含源端口号和目的端口号,这些端口号用于识别源端和目的端的应用程序或服务器。TCP 和 UDP 都使用端口号将信息传递给上层。 让我们理解这个场景。 假设客户端正在访问网页。TCP 头部包含源端口和目的端口。 ![]() 客户端在上图中, 源端口:源端口定义了 TCP 段所属的应用程序,此端口号由客户端动态分配。这基本上是分配端口号的进程。 目的端口:目的端口标识服务器上服务的位置,以便服务器可以服务客户端的请求。 服务器端在上图中, 源端口:它定义了 TCP 段来自哪个应用程序。 目的端口:它定义了 TCP 段将要发送到哪个应用程序。 在上述情况下,使用了两个过程 封装:发送方使用端口号告诉接收方它应该使用哪个应用程序来处理数据。 解封装:接收方使用端口号来识别它应该将数据发送到哪个应用程序。 让我们通过使用所有三个端口(即知名端口、注册端口和动态端口)来理解上面的示例。 首先,我们来看看知名端口。 ![]() 知名端口是服务常见服务和应用程序的端口,如 http、ftp、smtp 等。在这里,客户端使用知名端口作为目的端口,而服务器使用知名端口作为源端口。例如,客户端发送 http 请求,那么在这种情况下,目的端口将是 80,而 http 服务器正在服务请求,因此其源端口号将是 80。 现在,我们来看看注册端口。 ![]() 注册端口分配给非常见应用程序。许多供应商应用程序使用此端口。与知名端口一样,客户端使用此端口作为目的端口,而服务器使用此端口作为源端口。 最后,我们看看动态端口在此场景中是如何工作的。 ![]() 动态端口是客户端应用程序在发起连接时动态分配的端口。在这种情况下,客户端使用动态端口作为源端口,而服务器使用动态端口作为目的端口。例如,客户端发送 http 请求;那么在这种情况下,目的端口将是 80,因为它是一个 http 请求,源端口将仅由客户端分配。当服务器服务请求时,源端口将是 80,因为它是一个 http 服务器,目的端口将与客户端的源端口相同。注册端口也可以代替动态端口使用。 我们来看看下面的示例。 假设客户端正在与服务器通信,并发送 http 请求。因此,客户端将 TCP 段发送到 HTTP 协议的知名端口,即 80。在这种情况下,目的端口将是 80,并且假设客户端动态分配的源端口是 1028。当服务器响应时,目的端口是 1028,因为客户端定义的源端口是 1028,而服务器端的源端口将是 80,因为 HTTP 服务器正在响应客户端的请求。 下一主题计算机网络 |
我们请求您订阅我们的新闻通讯以获取最新更新。