1

网络层负责定义消息从发送主机到目的主机的路由。特别是,网络层决定在到达目的地的途中下一跳的目标是什么。

数据链路层只关心网络中两个节点之间的数据传输。据我了解,数据链路层必须以某种方式从网络层获取信息 - 将数据转发到下一个节点。

我的问题是 - 数据链路层如何从网络层获取这些信息?

IP-header 包含源主机和目标主机的 IP。但我正在寻找的是一些字段“下一个直接邻居的IP转发数据”

4

3 回答 3

1

如果链路层地址与它们的硬件地址匹配,机器就会收到数据包。通常在链路层使用mac地址。如果链路层寻址到适配器,适配器将接收数据包。在接收到这样的数据包时,系统(OS)会读取数据包的网络层标头以获取目标 ip。从目标 ip,如果机器是智能路由器,它将尝试计算到目标的最简单路径(或发送到某个默认路由器),一旦找到,链路层标头会更改并设置为匹配路径中下一个节点的硬件地址。但是,网络层标头不会更改。

“下一个要转发数据的直接邻居的 IP”

这正是链路层所做的,而不是 ip 它使用 mac 地址。并且是操作系统读取网络层后设置的。

于 2015-08-30T05:33:11.977 回答
0

传输层将数据段发送到网络层,网络层根据 IP 地址创建到目的地的路径,并将数据分成数据包,现在数据链路层根据这些数据包制作帧,数据现在从物理上传输基于 MAC 地址的一个目的地到另一个目的地

于 2021-09-20T20:46:26.663 回答
0

您正在寻找地址解析协议 (ARP)

  1. 首先,您的计算机确定路径上下一台计算机的 IP(例如您的本地网关(例如您的 DSL 路由器))。
  2. 您的计算机使用 ARP 来识别 IP 对应的 mac 地址。
  3. IP数据包被发送到这个mac地址。
于 2015-08-30T07:08:21.687 回答