【发布时间】:2020-07-31 21:23:01
【问题描述】:
IP 数据包有一个 8 位标头(Protocol 用于 v4,Next Header 用于 v6),它决定了负载中使用的传输层协议。例如,如果是 6,则有效负载是 TCP 段,如果是 17,则这是 UDP 段。
但是我们如何找到在 TCP 或 UDP 负载中使用的应用层协议呢?没有可用于相同目的的此类标头。我们如何区分封装 HTTP 请求的有效负载和封装 SMTP 邮件的有效负载?是使用的端口吗?如果是这样,如果我在端口 80 而不是 25 上发送 SMTP 邮件,它会被解释为 HTTP 请求而不是 SMTP 邮件吗?
感谢您的帮助。
【问题讨论】:
-
如果您确实为多个应用程序协议使用相同的连接,请将其放入有效负载中。我建议这是相当罕见的。更常见的是,您只需区分同一整体应用协议中的不同消息类型。
-
有时根本没有协议,只有实际数据,例如文件的内容。
标签: networking tcp udp ip