路由器怎么知道其他路由器和主机的MAC

来源:百度知道 编辑:UC知道 时间:2024/07/01 13:08:25
主机A(192.168.1.2/24) 发送数据 到 主机B (192.168.6.2/24)
中间连接3台路由器 R1 R2 R3
A - R1 - R2 - R3 - B
由于不在同一网段,会将数据发送到网关,主机A通过ARP请求知道R1的MAC,将数据传到R1,R1解封装,通过比对目的MAC与自己MAC相同,接收数据,然后他怎么知道R2的MAC地址呢,R3又怎么知道主机B的MAC地址呢
数据封装时需要源和目的IP,源和MAC地址。简单的说就是路由通过什么方式知道下一个路由的MAC,到了最后一个路由,又是什么方式知道主机的MAC

主机A发送数据,在同一个lan内,用MAC寻址,通过ARP,知道R1的MAC后,把数据封装

成帧的时候,目的MAC地址是R1的,传到R1之后,解封装,R1不是接收数据,是再根

据IP地址转发数据,根据路由表,得知应该

往R2发送,因为R1 R2是同一个LAN的,所以R1也会启动ARP,得知R2的MAC地址,数据

重新封装,不过这时帧里的目的MAC地址是R2的

再经二层传送~~

如此推下去

总的说来,MAC地址只限制二层交换使用,也就是不会走出广播域,一旦经过路由,重新封装后,目的MAC地址是改变的

三层的IP的是不会变的

想知道MAC地址,需要发送ARP协议

这都是在同一个网段的

路由器之间通过一些协议如 RIP或OSPF来维护路由表

根据路由表来寻径

——————————————补充————————————————

数据包有源IP这是不会变的,而MAC只要经过一个网段就会改变,从这个路由器发出去的包,在同一个网段中传输的时候,源MAC是这个路由器的MAC。

至于路由器把这个包往什么地方,就是根据路由表来决定。

路由表根据这个数据包的的目的IP,然后查出下一跳的IP地址,然后根据ARP解析得到下一跳,然后再将链路层封装好,发送出去。

建议多看看 <<TCP/IP详解>>

RIP协议,
自动学习路径

拿把 刀子 过去问