系统如何识别接收到的数据包是TCP还是UDP?

How the system identifies the received packet is TCP or UDP?

我们的系统如何识别收到的数据包是TCP还是UDP? 例如,我们从 system.Server 发出请求,通过端口号查找数据包,它会响应我们。

我们的系统如何识别接收到的数据包是 TCP 还是 UDP?

在 IPv4 header 中,有一个协议字段。在 IPv6 中,该字段称为 Next Header。在这两种情况下,该字段的内容都是相同的,它是一个协议编号,表示 IP 数据包有效负载的传输层协议。 IANA 负责维护 Protocol Numbers 文档。

当主机流量从传输层协议传递到 IP 时,IP 在 IP 数据包 header 中填写哪个协议将数据包有效载荷交给它,而在另一端,IP 可以告诉哪个协议它必须通过数据包负载。

只有一些传输层协议使用地址(端口),所以你必须先识别协议,然后才能确定它可能有哪个端口,因为端口号在传输协议header中,并且每个协议有一个不同的 header。因此,UDP 端口与 TCP 端口不同。