1.深入理解TCP/UDP协议和端口
IP数据包会有源地址和目的地址,TCP/UDP消息同样也会有源端口和目的端口。目的端口表示该消息要用于哪个服务或程序,而源端口的作用是什么呢?
- 源端口通常是由计算机随机选择的
- 路由器和防火墙可以使用源端口区分不同的会话
假如你在计算机上打开两个浏览器,并且在这两个浏览器上同时浏览同一个网页,即现在有两个会话,这两个会话将会发送到同一个目标端口80/TCP。此时,Web服务器会返回两个回复,计算机该如何知道哪个浏览器该接受哪个回复?
此时随机选择的源端口就发挥了作用。服务器回复时,计算机可以查看这些端口并将它们与内存中的会话表进行比较,以查看哪个网络浏览器应该接收哪个回复:
2.完整的地址转换流程
在第一节中提到两台计算机同时浏览同一个网页时,端口在其中起到的作用。在这个过程中,路由器会跟踪流量的源IP地址、目的IP地址以及源端口和目的端口,所以完整的流量传输会存在端口和地址转换:
对于每个经过路由器的流量或会话,它将保存以下信息在表中:
- 流量来自LAN中的哪个IP地址
- 流量要传输到哪个IP地址
- 流量来自哪个端口
- 流量要传输到哪个端口