网络层负责定义消息从发送主机到目的主机所采用的路由。特别是,网络层决定了到达目的地的下一跳的目标是什么。
数据链路层只关心网络中两个节点之间的数据传输。据我所知,数据链路层必须以某种方式从网络层获取信息-将数据转发到哪个下一个节点。
我的问题是-数据链路层如何从网络层获取此信息?
IP-header包含源主机和目的主机的IP。但是我正在寻找的是一些字段“转发数据的下一个直接邻居的IP”
发布于 2015-08-30 13:33:12
如果链路层地址与其硬件地址匹配,则机器会收到数据包。通常在链路层使用mac地址。如果链路层将数据包发送到适配器,则适配器将收到数据包。在接收到这样的分组时,系统(O.S)读取分组的网络层报头以获得目的地ip。在目标ip中,如果机器是智能路由器,它将尝试计算到目标的最简单路径(或发送到某个默认路由器),一旦找到,链路层报头将更改,并将设置为与路径中下一个节点的硬件地址相匹配。但是,不会更改网络层报头。
“要将数据转发到的下一个直接邻居的IP”
这正是链路层所做的事情,而不是ip,它使用mac地址。并在读取网络层后由操作系统设置。
发布于 2015-08-30 15:08:22
您正在寻找Address Resolution Protocol (ARP)。
发布于 2021-09-20 20:46:27
传输层将数据段发送到网络层,网络层根据IP地址创建到目的地的路径,并将数据划分为数据包,现在数据链路层根据这些数据包生成帧,并且数据现在根据MAC地址从一个目的地物理传输到另一个目的地
https://stackoverflow.com/questions/32287992
复制相似问题