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。如需要,可访问我的下载资料。