运维开发网

二、三层转发原理(ping过程)

运维开发网 https://www.qedev.com 2020-01-25 01:04 出处:网络 作者:lovegiggle
1. 概述如图1所示,交换机Router,SW1,SW2的所有表项为空,Host 1要ping Host 2,即Host 1要给Host 2发送ICMP echo请求,Host 2收到请求之后,发现是请求自己的IP地址,会回复ICMP echo应答报文。图1 网络拓扑图Host 1的IP地址为1.1.1.1/24,默认网关为1.1.1.254,MAC地址为ca02.1a14.0000;Host 2

1. 概述

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

二、三层转发原理(ping过程)

图1 网络拓扑图

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

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

Router的fa0/0口的IP地址为1.1.1.254/24,MAC地址为ca06.1b2c.0008;

Router的fa0/1口的IP地址为2.2.2.254/24,MAC地址为ca06.1b2c.0006。

2. 三层转发

2.1 Host 1的ARP请求

Host 1将ICMP echo请求报文,封装到源IP地址为1.1.1.1,目的IP地址为2.2.2.1的IP报文中。然后查询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.254的ARP请求,封装在源MAC地址为ca02.1a14.0000,目的MAC地址为ffff.ffff.ffff的以太网帧发出,如图2所示。

二、三层转发原理(ping过程)

图2 ARP请求

2.2 SW1学习MAC地址

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

2.3 Router的ARP应答

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

二、三层转发原理(ping过程)

图3 ARP应答

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

二、三层转发原理(ping过程)

图4 Router的ARP表

2.4 SW1学习MAC地址

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

2.5 ICMP echo请求

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

二、三层转发原理(ping过程)

图5 Host 1的ARP表

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

二、三层转发原理(ping过程)

图6 ICMP echo请求

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

2.6 Router的ARP请求

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

2.7 SW2学习MAC地址

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

2.8 Host 2的ARP应答

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

2.9 SW2学习MAC地址

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

Router获到Host 2给他的ARP响应之后,会将物理地址ca06.1b2c.0006与IP地址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.1的IP报文中,发送给Host 1。

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

二、三层转发原理(ping过程)

图7 ICMP echo应答

3. 相关报文格式

3.1 ARP报文

二、三层转发原理(ping过程)

其中:

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

类型编号

硬件类型

1

以太网

6

IEEE 802网络

12

本地网

15

帧中继

16

ATM

17

HDLD

19

异步传输模式

20

串行线路

21

同步传输模式

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

硬件地址长度:1字节;

协议地址长度:1字节;

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

3.2 ICMP echo报文

二、三层转发原理(ping过程)

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

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

校验和:2字节;

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

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

0

精彩评论

暂无评论...
验证码 换一张
取 消