网络端口的物理方面

网络端口的物理方面

我偶然发现本文与我读过的任何含糊其辞的文章不同,它指出我的

“计算机背面的细如铅笔的网线(或无线网络适配器)内部包含 65,536 条微观通道。”

我一直被告知,端口只是一个数字(而不是一根线),用于区分不同的虚拟连接,所以这两种解释如何共存

  • 此外,这不可能意味着当端口未被使用时,部分网线就不会被用来传输信号,不是吗?

文章还说

数据包必须在每个网络节点停止,并且:

  1. 找到一个开放的端口,
  2. 通过允许其通过该端口的识别测试,如果不通过,
  3. 移至下一个端口并重试,直到允许通过收费站。
  • 我认为数据包包含特定的目标端口,那么它们为什么会搜索新的开放端口?
  • 最后,通过身份识别测试需要什么?

答案1

我一直被告知,端口只是一个数字(而不是电线),用于区分不同的虚拟连接,那么这两种解释如何共存?

你引用的段落充满了隐喻. 在传输层,端口只是数据包中的数字;它们不是物理的。

物理层,或“链接”层,不知道任何事物关于 TCP/UDP 端口,也关于 IP 地址 —— 它只从一端到另一端传输一系列位。

此外,这不可能意味着当端口未被使用时,部分网线就不会被用来传输信号,不是吗?

不。无论你有一个连接还是二十个连接,电缆的使用方式都完全相同。在有线以太网中,只有四对电线——旧电缆只有两对;绝对不是 65536;所有电线都是同时使用的。

文章还说<...>。我以为数据包包含特定的目标端口,那么为什么它们会搜索新的开放端口呢?

此时,文章已经慢慢跨过了“隐喻”与“胡说”之间的界限。

TCP 端口号在建立连接时分配,并且仅供该连接的两端使用。同时,路由发生在“互联网”层,仅使用 IP 地址,不关注 IP 数据包中包含的数据或以任何方式修改它。

(唯一的例外是当执行 NAPT 时 - 例如,通过您的家庭路由器,使多台计算机共享一个 IP 地址。在这种情况下,您的计算机收到的数据包可能具有与最初发送的数据包不同的 TCP 或 UDP 端口号。)

识别测试可能是指网络防火墙。但是,被防火墙规则阻止的数据包将不是“去寻找下一个端口”;它们会被丢弃。

答案2

这篇文章写得很糟糕。它试图用隐喻语言和“流行知识”来解释网络概念。有 65,536 个可寻址端口,但它们并不存在于物理光纤链中,或者无论这篇文章试图描述什么。可用端口的数量在某种程度上是任意得出的(16 位整数在当时可能有意义),并且可能在 RFC 中标准化。

我不是网络专家,但我很确定网络硬件(交换机等)使用防火墙类型的规则来确定是否应沿线路转发特定端口上的流量(例如,您的 ISP 可以阻止 Bittorrent 使用的端口上的流量,或者您的家庭路由器可以阻止 ping 端口)。

答案3

“计算机背面的细如铅笔的网线(或无线网络适配器)内部包含 65,536 条微观通道。”

TCP 负责保持两端的流量按端口分开,并部分抽象串行介质上许多多路复用“连接”之一的概念。TCP 使用“套接字”的概念,即源 IP+端口和目标 IP+端口。同一介质上可能存在多个套接字,但另一端的 TCP/IP 堆栈会将它们分类,并且两个套接字上的流量不会相互混合。因此,从某种意义上说,它是一条路径。

TCP 和 UDP 使用端口和套接字的概念。其他协议(例如低级 IP)则不使用。并非所有从网络接口发出的信息都需要是 TCP 或 UDP。

数据包必须在每个网络节点停止,并且:

找到一个开放的端口,通过允许其通过该端口的识别测试,如果不行,则移动到下一个端口并再试一次,直到允许其通过收费站。

我觉得这没有意义。通常,当应用程序打开套接字时,它可以指定一个端口(如果该端口正在使用中,则套接字打开尝试将失败)或采用内核分配的端口(服务器通常指定端口号,而服务器的客户端通常采用内核分配的随机端口)。

也许以上内容描述的是更高层协议的一部分。我需要更多背景信息才能完全理解上述陈述。

相关内容