路由器/调制解调器如何从 IP 数据报中获取端口号?

路由器/调制解调器如何从 IP 数据报中获取端口号?

IP 数据报头是 TCP 段下面的一层,其中包含有关端口的信息。

因此,在防火墙检查端口号之前,是否必须将 IP 数据报重建为 TCP 段?

这是否意味着 IP 数据报缓冲区在读取端口之前要等待整个 TCP 段?

答案1

每个 TCP/IP 数据包中都包含 IP 地址和 TCP 端口。IP 数据包的最小标头为 20 字节,其中包括 IP 地址。TCP 标头的最小大小也是 20 字节,其中前四个字节是源端口和目标端口。

因此无需等待任何东西,端口和地址将始终存在于 TCP/IP 数据包中,否则它就不是数据包。

答案2

因此,在防火墙检查端口号之前,是否必须将 IP 数据报重建为 TCP 段?

TCP 段包含源端口和目标端口作为其报头的前两个字段。报头是任何 TCP 段的开始。

在此处输入图片描述

事实上并非如此,防火墙可以从收到的前 4 个字节中收集信息。

答案3

IP 数据报的数据部分包含 TCP 数据报。如果 IP 报头最小(20 字节),则路由器必须接收至少 24 个字节才能获取源端口和目标端口(也称为 TCP 地址)。

数据报的包含情况如下图所示:

包含数据报

相关内容