![客户端临时端口的安全性,以及客户端和服务器之间可能存在不同的 IP 路由](https://linux22.com/image/1504048/%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%B8%B4%E6%97%B6%E7%AB%AF%E5%8F%A3%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%EF%BC%8C%E4%BB%A5%E5%8F%8A%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%92%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E5%8F%AF%E8%83%BD%E5%AD%98%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%9A%84%20IP%20%E8%B7%AF%E7%94%B1.png)
据我所知,套接字对中的临时端口是客户端选择的随机端口号,以便服务器做出响应。如果通信发生在本地网络上,并且客户端没有防火墙,那么在与服务器建立连接时,本地网络上是否有可能存在另一个进程使用临时端口作为开放攻击点?
如果客户端和服务器不在同一子网中,是否可以通过与服务器接收数据不同的路由将数据发送回临时端口?互联网协议中是否有规则明确要求在两个方向上使用相同的路由进行通信?
如果使用 TCP 或 UDP,我的问题的答案会改变吗?
答案1
临时端口不保证是随机的本身. 它们可能会被连续分配。
是的,本地网络上的另一台设备可能会尝试向该开放的临时端口发送数据包,甚至可能伪造客户端正在与之通信的服务器的源 IP 地址。使用 UDP 比使用 TCP 更容易做到这一点,因为使用 TCP 时,您需要正确获取序列号和确认号。但使用 TCP 仍然可以做到这一点。
是的,同一 TCP 或 UDP 流中的数据包可以采用不同的路由。这样,路由器就可以智能地处理拥塞的链路以及断开或接通的链路。