路由器对不同数据帧的处理
一、 单播
A:目的MAC地址是自己的MAC地址
路由器在接收接口上收到帧,检查目的MAC地址,发现该地址与接收接口的MAC地址完全匹配,得知这个帧是发给自己的,就会接收该帧,并且剥离数据链路层的帧头和帧尾,开始处理数据包。
A1:数据包的目的IP地址是单播
1. 目的IP地址是自己的IP地址,路由器将数据包交给上层协议栈处理
2. 目的IP地址不是自己的IP地址,查询路由表,如果没有找到匹配的路由条目,静默丢弃该数据包;如果找到匹配的路由条目,数据链路层重新封装帧,通过ARP表重新构建新的MAC地址
A2:数据包的目的IP地址是广播
1. 本地广播:路由器不会转发本地广播,本地广播的作用范围仅限于本地网段,路由器作为网络层设备,隔离本地广播域
2. 子网广播:路由器会转发子网广播
A3:数据包的目的IP地址是组播
1. 路由器自身加入了该组播组,运行组播服务,将组播数据包上送给本地的组播应用程序
2. 路由器未加入该组播组,转发或者丢弃
B:目的MAC地址不是自己的MAC地址
默认行为丢弃
二、 广播
A:纯二层广播帧(无IP层)
典型协议为ARP请求,路由器检查目的IP是否为自己接口IP,如果匹配就单播回应ARP响应,如果不匹配就默认丢弃
B:三层IP广播帧
255.255.255.255:路由器不转发,隔离广播域,仅处理本地需求(DHCP)
子网定向广播:网络目标直连,转发;网络目标非直连,丢弃
三、 组播
收到组播帧,目的MAC是否为监听组,如果不是,就丢弃;如果是监听组,接收并解封:
1. 解封后如果IP地址为单播IP地址,匹配,处理、丢弃或转发
2. 解封后如果IP地址为组播IP地址,按照组播协议栈处理