网络层负责定义消息从发送主机到目的主机的路由。特别是,网络层决定在到达目的地的途中下一跳的目标是什么。
数据链路层只关心网络中两个节点之间的数据传输。据我了解,数据链路层必须以某种方式从网络层获取信息 - 将数据转发到下一个节点。
我的问题是 - 数据链路层如何从网络层获取这些信息?
IP-header 包含源主机和目标主机的 IP。但我正在寻找的是一些字段“下一个直接邻居的IP转发数据”
网络层负责定义消息从发送主机到目的主机的路由。特别是,网络层决定在到达目的地的途中下一跳的目标是什么。
数据链路层只关心网络中两个节点之间的数据传输。据我了解,数据链路层必须以某种方式从网络层获取信息 - 将数据转发到下一个节点。
我的问题是 - 数据链路层如何从网络层获取这些信息?
IP-header 包含源主机和目标主机的 IP。但我正在寻找的是一些字段“下一个直接邻居的IP转发数据”
如果链路层地址与它们的硬件地址匹配,机器就会收到数据包。通常在链路层使用mac地址。如果链路层寻址到适配器,适配器将接收数据包。在接收到这样的数据包时,系统(OS)会读取数据包的网络层标头以获取目标 ip。从目标 ip,如果机器是智能路由器,它将尝试计算到目标的最简单路径(或发送到某个默认路由器),一旦找到,链路层标头会更改并设置为匹配路径中下一个节点的硬件地址。但是,网络层标头不会更改。
“下一个要转发数据的直接邻居的 IP”
这正是链路层所做的,而不是 ip 它使用 mac 地址。并且是操作系统读取网络层后设置的。
传输层将数据段发送到网络层,网络层根据 IP 地址创建到目的地的路径,并将数据分成数据包,现在数据链路层根据这些数据包制作帧,数据现在从物理上传输基于 MAC 地址的一个目的地到另一个目的地
您正在寻找地址解析协议 (ARP)。