※ 首先要了解
① 源主机在发起通信之前,将自己的IP与目的主机的IP进行比较,如果两者位于同一网段(用网络掩码计算后具有相同的网络号),那么源主机发送arp请求广播报,请求目的主机的mac地址,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC作为报文的目的MAC进行报文发送。位于同一VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作二层交换转发;
② 判断是否网络层转发:报文的目的MAC地址是否为路由接口(网关)的MAC
如下图
当源主机判断目的主机与自己位于不同网段时,它会通过网关(Gateway)来递交报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC进行报文发送。
了解了以太帧目的MAC的填写规则之后就可以描述转发过程了
一、拓扑1,及各接口配置如下图:
同网段通信,PCa ping PCb
1,欲发送的以太帧关键部分如下:
目的MAC:未知 |
源MAC:MACa |
目的IP:10.10.10.2 |
源IP:10.10.10.1 |
2,根据规则,判断目的PCb的IP地址,发现和自己在同一网段,则直接请求目的主机MAC,此时PCa未知PCb的MAC,便广播ARP请求,请求帧关键部分如下:
以太网首部 |
ARP字段 |
|||||
目的MAC:广播 |
源MAC:MACa |
标志: 0 |
源MAC:MACa |
源IP: 10.10.10.1 |
目的MAC: 0待填充 |
目的IP:10.10.10.2 |
3,此时SW1从Fa1/1接收到了此广播,进行MAC以及ARP的学习,FDB(MAC表)上增加一条MAC对应关系如下:
MACa |
Fa1/1 |
4,SW1查表发现没有对应的表项,便在同网段内即向Fa0/1和Fa2/1转发广播包。R1发现请求的ARP不是自己的IP便丢弃;PCb则发现ARP请求目的IP是自己,便准备编辑一个ARP回应报文,同时,将PCa的MAC和IP对应关系保存在自己的ARP缓冲表中。ARP回应报文关键部分:
以太网首部 |
ARP字段 |
|||||
目的MAC:MACa |
源MAC:MACb |
标志: 1 |
源MAC:MACb |
源IP: 10.10.10.2 |
目的MAC: MACa |
目的IP:10.10.10.1 |
5,ARP回应报文从SW的Fa2/1接口进入交换机,交换机进行学习,FDB上增加一条
MACb |
Fa2/1 |
6,此时SW1再查表,发现目的MAC可以从Fa1/1到达,便从此端口转发此报文。
7,这时PCa便能收到ARP回应,将PCb的MAC记录在本机ARP缓存中。可以编辑ping报文发送。当SW1接收到目的MAC为MACb的帧时,学习过程便是更新FDB表,查表将报文从Fa2/1转发,PCb便能收到报文。Ping回应的过程也一路查表畅通无阻。
======================================================================
跨网段通信,PCa ping PCc
1,欲发送的以太帧关键部分如下:
目的MAC:未知 |
源MAC:MACa |
目的IP |