1. 概述

如图1所示,交换机RouterSW1SW2的所有表项为空,Host 1ping Host 2,即Host 1要给Host 2发送ICMP echo请求,Host 2收到请求之后,发现是请求自己的IP地址,会回复ICMP echo应答报文。

wKiom1XmvyayH__sAAB6l_Oiga4610.jpg

1 网络拓扑图

Host 1IP地址为1.1.1.1/24,默认网关为1.1.1.254MAC地址为ca02.1a14.0000

Host 2IP地址为2.2.2.2/24,默认网关为2.2.2.254MAC地址为ca03.1a14.0000

Routerfa0/0口的IP地址为1.1.1.254/24MAC地址为ca06.1b2c.0008

Routerfa0/1口的IP地址为2.2.2.254/24MAC地址为ca06.1b2c.0006

2. 三层转发

2.1 Host 1ARP请求

Host 1ICMP echo请求报文,封装到源IP地址为1.1.1.1,目的IP地址为2.2.2.1IP报文中。然后查询Host1的路由表,将报文准备发送给Host 1的默认网关1.1.1.254。由于Host 1没有其默认网关的MAC地址,因此Host 1会将该报文存到内存,先发送ARP请求。

Host 1将源物硬件址为ca02.1a14.0000,源协议地址为1.1.1.1,目的硬件地址填充00:00:00:00:00:00,目的协议地址为1.1.1.254ARP请求,封装在源MAC地址为ca02.1a14.0000,目的MAC地址为ffff.ffff.ffff的以太网帧发出,如图2所示。

wKioL1XmwL-y3r1-AANE7G6p4fI201.jpg

2 ARP请求

2.2 SW1学习MAC地址

Sw1收到该帧广播,同时将ca02.1a14.00001口关联起来,加入到MAC地址表。

2.3 RouterARP应答

Router收到这个帧之后,去掉二层封装,查看到ARP请求中的目的协议地址为fa0/0口地址,会发送响应物理地址为ca06.1b2c.0008,响应协议地址为1.1.1.254,目的MAC地址ca02.1a14.0000,目的IP地址1.1.1.1ARP应答,封装在源MAC地址为ca06.1b2c.0008,目的MAC地址为ca02.1a14.0000的以太网帧中发出,如图3所示。

wKiom1Xmvu3zqKvUAANaoPBd3pI906.jpg

3 ARP应答

同时Router也会将物理地址ca02.1a14.0000IP地址1.1.1.1存入到自己的ARP表中,如图4所示。

wKioL1XmwVywnYA-AABwbbC-g18049.jpg


4 RouterARP

2.4 SW1学习MAC地址

Sw1收到帧之后,查询MAC地址表,将帧从1口发出,同时将ca06.1b2c.0008地址与2口关联,加入到MAC地址表中。

2.5 ICMP echo请求

Host 1收到Router发送的ARP应答之后,会将物理地址ca06.1b2c.0008IP地址1.1.1.254存入到自己的ARP表中,如图5所示。

wKiom1Xmv2ChUxx-AABwDzSdKBU230.jpg

5 Host 1ARP

Host 1会调出ICMP echo请求,封装成源MAC地址为ca02.1a14.0000,目的MAC地址为ca06.1b2c.0008的数据帧,发送给Router,如图6所示。

wKiom1Xmv3miBWZGAANviGDtYfM386.jpg

6 ICMP echo请求

Routerfa0/0收到该报文,查询路由表,Router会将该报文发送给从fa0/1发送给Host 2。由于Routerfa0/1口没有2.2.2.2MAC地址,只能先进行ARP请求。

2.6 RouterARP请求

Router会将源物理地址为ca06.1b2c.0006,源协议地址为2.2.2.254,目的物理地址填充全0,目的IP地址为2.2.2.2ARP请求,封装在源MAC地址为ca06.1b2c.0006,目的MAC地址为ffff.ffff.ffff的以太网帧从fa0/1口广播出去。

2.7 SW2学习MAC地址

Sw2收到该帧之后会将该帧广播,同时将ca06.1b2c.00061口关联,加入到MAC地址表。

2.8 Host 2ARP应答

Host 2收到ARP请求之后,会将响应MAC地址ca03.1a14.0000,响应IP地址2.2.2.2,目的MAC地址ca06.1b2c.0006,目的IP地址2.2.2.254ARP应答,封装在源MAC地址为ca03.1a14.0000,目的MAC地址为ca06.1b2c.0006的以太网帧中发出。同时也将物理地址ca06.1b2c.0006IP地址2.2.2.254关联起来,存入到自己ARP表中。

2.9 SW2学习MAC地址

Sw2收到帧之后,查询MAC地址表,将帧从2发出,同时将ca03.1a14.0000地址与1口关联,加入到MAC地址表中。

Router获到Host 2给他的ARP响应之后,会将物理地址ca06.1b2c.0006IP地址2.2.2.254关联,并且加入到ARP表中。这时,Router将刚才的ICMP echo报文转发给Host 2

2.10 ICMP echo应答

Host 2收到由Host 1发送的ICMP echo请求之后,会将ICMPecho应答封装在源IP地为2.2.2.1,目的IP地址为1.1.1.1IP报文中,发送给Host 1

Host 1收到Host 2发送的ICMP echo应答,此次ping的过程结束,如图7所示。

wKioL1XmwcSgxeZwAAO3E4XEsUg245.jpg

7 ICMP echo应答

3. 相关报文格式

3.1 ARP报文

wKioL1XmwoCjd_q5AADQQHgs48c929.jpg

其中:

硬件类型:描述硬件类型信息,具体解释如下表所示,长度2字节;

类型编号

硬件类型

1

以太网

6

IEEE 802网络

12

本地网

15

帧中继

16

ATM

17

HDLD

19

异步传输模式

20

串行线路

21

同步传输模式

 协议类型:描述要映射的协议类型,0x0800IP协议,长度2字节;

硬件地址长度:1字节;

协议地址长度:1字节;

操作:描述ARP操作类型,1ARP请求,2ARP应答,长度2字节;

3.2 ICMP echo报文

wKiom1XmwJSBnUGfAAA4X4lN4Rs057.jpg

类型:0x00为回波响应,0x08为回波请求,长度1字节;其中:

代码:0x00,长度1字节;

校验和:2字节;

标识号:在ping请求中随机产生,2字节;

序号:描述请求与应答序列,在之前的基础上+11字节。