ping 是在应用层吗?

网络工程 通讯协议 奥西 传输协议 第4层
2021-07-29 01:26:17

Ping在internet层工作,但是当我在我的终端ping一个IP地址时,是在应用层ping吗?如果是,应用程序如何通过传输层?

如果不是,我能说那些在应用层使用协议(SSH、DHCP等)并通过传输层的应用可以在应用层而不是所有应用吗?

2个回答

我将从经常重复的警告(至少对我而言,无论如何)开始,即事情并不完全适合 OSI 模型。

“Ping”是生成ICMP 回显请求包并接收回显应答包的应用程序的名称。ICMP 并不完全适合 OSI 或 TCP/IP 模型,因此您可以将其称为第 3 层或第 3.5 层,具体取决于您的观点。

通常“ping”是使用“原始套接字”实现的。这些让应用程序绕过传输层并自己生成/解释数据包。

原始套接字具有安全隐患,因此除了应用于常规套接字的限制之外,它们通常还受到限制。传统上,在类 Unix 系统上,ping 是“suid”,以允许它通过最近的 linux 发行版使用原始 sockect,通常使用“功能”代替。不知道其他平台上的图是什么样子的。