数据包转发原理-二层

时间:2023-01-30 17:35:52

  R1----------SW------------R2

条件:R1:192.168.1.1  mac:a  R2: 192.168.1.2 mac:b sw是2层交换机   R1数据包转发给R2过程: R1 收到数据包后,查询R1的路由表,查路由表的目的是查找数据包从那个接口出,找到出接口后,目的封装什么类型的帧,完成二层帧封装后,查ARP表,目的是找R2的MAC地址,有2种情况: (1) R1在ARP表项中找到,完成2层封装,发出去 (2) R1如在ARP中没找到,将数据包丢弃(丢弃的是二层以太网帧),引发R1的ARP表查询,现象是ping 第一个包不通。 R1 以出接口的mac:a 为源mac,以自己的IP:192.168.1.1 为源IP, 以R2的IP:192.168.1.2为目的IP, 目的mac为全F的广播。 SW收到R1发来的ARP请求帧(收到二层单播帧),会打开帧头,查看源和目的mac. 查看自己的mac表,有2种情况 (1) sw收到arp请求帧,查找自己的mac表,如找到表项,查看对方的接口是那个,把帧还原,没有改变R1发来的帧。从出接口转发(2层透传,不改变源mac) (2) sw查找mac表,如没找到,会在相应vlan里的所有接口复制一份数据帧,泛洪(防止帧丢失)(未知单播帧,未知目的mac) R2 上收到sw发来的arp请求帧,会以自己的ip:192.168.1.2 为源ip,以出接口的mac:b 为源mac,给R1发arp的回应帧,此时,R2上已建立起与R1的arp表项, 当sw收到R2发的arp回应帧,会不改变的发给R1, R1收到回应帧后,与R2建立起arp表项, R1再发第二个icmp echo个R2,R2会给R1回应,ping通。

本文出自 “王博之博客” 博客,请务必保留此出处http://wbyyy.blog.51cto.com/1322006/669441