如何区分TCP/UDP负载中的协议



IP数据包有一个8位标头(v4中为Protocol,v6中为Next Header(,用于确定有效载荷中使用的传输层协议。例如,如果是6,则有效载荷是TCP段,如果是17,则是UDP段。

但是,我们如何找到TCP或UDP有效载荷中使用的应用层协议?没有这样的标头可用于相同的目的。我们如何区分封装HTTP请求的负载和封装SMTP邮件的负载?是使用的端口吗?如果是这样,如果我在端口80而不是25上发送SMTP邮件,它会被解释为HTTP请求而不是SMTP邮件吗?

谢谢你的帮助。

如果是这样,如果我在端口80而不是25上发送SMTP邮件,它会被解释为HTTP请求而不是SMTP邮件吗?

通常没有定义应用程序协议的特定标记。相反,这是一个沟通同行对彼此期望的问题。

如果向SMTP服务器发送HTTP请求,服务器将尝试将信息解释为SMTP-,因为这正是它所期望的。由于HTTP请求看起来与SMTP不同,服务器会以某种方式抱怨,比如简单地关闭连接或发回SMTP错误响应,因为这是一个会说话并期望SMTP的SMTP服务器。客户端发送将尝试将服务器SMTP响应解释为HTTP响应-,因为这是它所期望的。当然,它会失败,因为SMTP看起来与HTTP非常不同。

最新更新