谁能解释ARP属于OSI模型ARP的哪一层以及使用哪个套接字?

问这个问题之前,我参考了很多书。

在在某些书籍中,作者说它属于数据链路层,而在某些书中,他们说它属于网络层。哪个是正确的?

例如BGP使用TCP套接字,OSPF使用IP套接字...

#1 楼

ARP是第2层。其原因是广播是在第2层(数据链路层)发送的,而ARP通常不会遍历第3层(网络层)。但是,它可以为第3层协议提供额外的功能。

事实是并非所有协议都完全适合OSI模型,因为毕竟它只是一个模型。如果您真的想将其推广到某个地方,我会说ARP是2.5层协议。它适合第2层,但不能完全适合第3层。

关于ICMP及其适用位置的讨论通常是相同的:第3层或第4层。

关于这些异常的一个很好的解释是:


通常,第N + 1层的协议与第N层的协议的报头一起封装,但是arp,stp,cdp,icmp和igmp
之类的协议是例外,因为封装有来自同一层的协议标头



评论


我有一个愚蠢的问题,OSI模型用于什么?

–Bionix1441
18年1月10日在19:57

@ Bionix1441在大学里,我们的教授告诉我们,“模型”是对现实的简化,可以更轻松地谈论现实和/或进行计算:如果您想对某些复杂过程进行计算机模拟,则可以首先需要简化它。但是,简化总是意味着您的模型不再涵盖现实的所有方面! OSI模型也是如此。考虑将IP数据包封装在UDP数据包中(例如使用Teredo):UDP现在是第2层还是IP第5层...?

–马丁·罗森瑙(Martin Rosenau)
19年2月14日在13:46

#2 楼

IETF协议套件未根据OSI模型进行定义,因此IETF和OSI协议之间的映射比其他协议更为常见。

-事实上,有充分的理由将其视为第2层(在以太网V2帧内定义为以太类型,并且不由标准IP路由器转发)作为第3层(必须与主机的3到2层映射过程进行互操作:纯第2层节点没有的东西)

这就是说,认为它是第2层协议的文献范围更广,通常被认为是“第2层”而不是“第3层”。 >
,但不要成为教条:就第3层而言,这并不是完全异端:IPV6中保留的同一过程(不再使用ARP)通常被定义为“第3层”,但这是确切的概念过程。

#3 楼

由于ARP数据包本身封装在以太网帧中,因此它不能仅是L2协议。但是,ARP通过使用L2服务(FFFF.FFFF.FFFF广播地址)为L3服务(哪个接口接受特定L3地址的帧?)的L2问题提供服务。因此,ARP与L2 + L3匹配。

问题是,ARP至少接触过一次哪些服务? L3和L2。这并不意味着ARP不适合OSI模型。参考模型为您提供了一个配置文件以匹配您的观察结果。这并不意味着您必须选择一个图层。

评论


Arp消息恰好包含L3信息,但DHCP消息也是如此。这并不意味着这些协议必须定义为L2和L3,它们只是L2协议。

–约翰·肯尼迪
2013年12月27日20:19在

DHCP是在IP之上传输的UDP的一个选项。它将如何成为Layer2协议?

–埃米利奥·加拉瓦利亚(Emilio Garavaglia)
2014年3月18日13:50