计算机没有端口。您所指的“端口”概念与TCP/IP 网络堆栈的TCP和UDP协议严格相关。从严格的技术角度来看,TCP 和 UDP 都以携带多种信息(源端口、目标端口、序列号、数据等)的方式构建。由于“源端口”和“目标端口”都是用 16 位“字段”构造的(在 TCP 和 UDP 数据包内),因此存在限制:源端口和目标端口可以假设所有可以用 16 表示的值位(又名:从 0 到 65535);
见上:源端口和目标端口可以采用从 0 到 65535 的值,因为它们都用 16 位值表示,在各自的数据包内
简而言之,“源端口”和“目标端口”都扮演着非常重要的角色,因为它们让单个“主机”(单个“客户端”或单个“服务器”)向网络客户端“提供”不同的服务,尽管只有一个 IP 地址。换句话说,如果没有“端口”,那么拥有一个提供 Web 服务器(在 TCP 端口 80 上用于纯 HTTP;在 TCP 端口 443 上用于 HTTPS)、邮件服务器(在 TCP 端口上25 用于入站 SMTP;在 TCP 端口 110 上用于 POP3 访问;在 TCP 端口 143 上用于 IMAP 访问)、数据库服务器(在 TCP/端口 3306 上用于 MySQL))等。
“纯粹”的读者可能不同意我对上述过度简化的看法,而且……他们是对的:实际上,IP 地址和端口起着非常重要的作用,为了完全理解,需要正确理解“封装”概念(当然,这是这个答案中提出的最重要的概念)。不幸的是,这通常需要很多次才能正确“掌握”……这就是为什么,我上面的过度简化了:-)
| 归档时间: |
|
| 查看次数: |
6765 次 |
| 最近记录: |