OSI模型 | 协议 | 数据包叫法 | 常见设备 | 五层模型 |
应用层 | HTTP,DHCP,FTP | 报文 | 常见PC机,工作站,终端等 | 应用层 |
表示层 |
| |||
会话层 |
| |||
传输层 | TCP/UDP | 传输协议分组,分组 | 网关 | 传输层 |
网络层 | IP协议,ICMP协议,IGMP协议 | IP包,IP数据报 | 路由器,三层交换机 | 网络层 |
数据链路层 | 以太网协议,ARP协议 | 帧,数据帧 | 交换机,网桥 | 数据链路层 |
物理层 | 802.3 | 比特流 | 网口,网线,集线器 | 物理层 |
概念:二层转发,即数据包在二层网络设备上的转发过程。而二层网络设备常用的是交换机和网桥,将PC通过交换机或者网桥连接在一起,形成一个局域网的拓扑。在此基础上讨论二层转发原理。
需要明白的基础知识:PC在自己内部维护一个ARP表,内容为IP和MAC地址。在将数据发送出去的时候,就会查找该表,根据IP封装MAC头部。而交换机(Switch)内部维护的是一个FDB(Forwarding DataBase)表,里面包含端口和对应的MAC地址。在转发数据的时候根据这个FDB表进行转发。
一:构建拓扑
二:二层转发过程及二层转发原理
(1)PC A要讲数据发往PC C,PC A已知 PC C IP地址为192.168.1.3。但是在PC A 的ARP表中没有相关的项。
(2)此时,PCA 就会广播ARP请求,交换机SW1收到这个请求后,根据收到的端口,和数据包的源MAC地址,确定这个MAC地址和这个端口是对应的,于是将它添加到FDB表。
(3)因为PCA发的是广播的ARP查询包,所以SW1会将该数据包广播出去。
(4)SW2收到该数据包后,同SW1一样,会根据源MAC和接受的端口,来添加一项FDB表。因为是广播,PC b也会收到该ARP广播报文,但是因为该ARP请求报文的请求的IP不是自己,所以PCb不做什么回应。PCb他会利用该数据包,得知IP和ARP。会在自己的ARP表中添加一项,但是我们在这里先不用考虑PC b这台主机。
(5)SW2继续广播出去。
(6)PC C收到数据包,为自己的ARP表添加一项。
(7)PC C解析该数据包,发现找的就是自己的IP地址,于是回应一个ARP响应报文。
(8)SW2收到后,同理也会根据源Mac和收到该数据包的端口,添加一个FDB表项。
(9)SW2查找FDB表项,发现发往0000-00e0-0001MAC地址的端口是E0/0,所以直接发过去,不会广播。
(10)同理,SW1收到该数据包,也会添加FDB
(11)同理,SW1会根据FDB,确定转发的端口是E0/1,所以此时PC b就不会收到这个数据包了。
(12)PC A收到了这个ARP回应报文,于是添加了一个ARP表项。
(13)现在PCA可以根据ARP表,封装要发往PC C的数据包了,然后SW1,SW2也有了相应的FDB表项,就会轻车熟路的进行转发,这就是二层转发的过程,SW1,SW2根据FDB表项进行转发的机制,即是二层转发的原理。
注:上面的图片素材是我在某公司上班时,为应届生进行交换机知识授课的时候自己做的PPT。如需要,可访问我的下载资料。