TCP 和 UDP 的端口号

网络工程 通讯协议 协议理论 UDP 传输协议 第4层
2021-07-15 22:43:23

为什么在 TCP 或 UDP 等传输层协议中我们需要源端口号和目标端口号?两者兼得的目的是什么?

3个回答

正如MAC地址是二层地址,IP地址是三层地址,端口号是四层地址。当传输层想要回复第 4 层请求时,它必须具有它应该回复的地址(端口)。

当 PC 向 HTTP 服务器发送 HTTP(TCP 端口 80)请求时,PC 使用临时 TCP 源端口和 HTTP 服务器的 TCP 端口 80 作为目标端口。HTTP 服务器回复 PC 的临时端口,并从 PC 请求的源端口获取该端口号。

目标 TCP 端口告诉主机上需要哪些服务:80 通常是 http、22 ssh、25 邮件,...

但是一个可以多次连接到同一个服务:例如,我可以通过 ssh 两次连接到 mybox.example.net。由于目标端口是 22,我需要不同的源端口来区分这两个连接。通常源端口由客户端随机选择。

如果在我们的示例中采用套接字的主要参数:src IPdst IPprotocolsrc Portdst Port,则在到同一主机的两个 ssh 连接之间,只有src Port发生变化。

这就是为什么我们需要源端口号和目标端口号的原因。

我给你举个例子来解释一下,如果你用浏览器浏览一个网站,你的PC IP地址将是源IP地址,另一端的Web服务器将是目标IP,你的web浏览器会将端口 80“http 默认”作为目标端口,并将生成源端口号并将其发送到 Web 服务器,如果源端口不是,Web 服务器将使用您的 PC 之前生成的相同端口回复您的 PC如果不存在,您将无法同时使用多个应用程序。