交换机工作原理
如上图,定义C1、C2、C3的IP与MAC地址。
C1需要发送数据到C3。(定义C1与C3从未通信过)
其他层次略去,仅从网络层动作开始:
1.网络层为上层数据分包,加上IP包头,其中包括C1的源IP地址192.168.1.10与C3的目标IP地址192.168.1.30。
2.网络层分包后数据包传递到数据链路层,数据链路层为上层数据包装帧,加上帧头,其中包括C1的源MAC地址与C3的目标MAC地址;C1端的源MAC为00-00-00-11-11-11,但无C3的MAC地址。
3.此时,C1会通过arp协议广播发送请求报文来获得C3即IP为192.168.1.30的设备的MAC地址,局域网中除C1的所有设备都会收到此广播,但除C3外,其他设备不会回应,而C3会通过单播的方式向C1发送回应报文。这样C1便获得了C3的MAC地址。而这些MAC地址会被保存在arp缓存表中,以便下次通信。装帧后,将数据通过交换机的1号接口发送。
4.当数据发送到交换机后,交换机会首先查询MAC地址表中1号接口对应的源MAC地址条目,若条目中没有数据帧的源MAC地址,交换机就会将这个帧的源地址和收到这个帧的接口编号(即1号接口)对应起来,添加到MAC地址表中。
5.若交换机没有在MAC地址表中找到数据帧的目标MAC地址所对应的条目,便无法确定要在哪个接口中将数据传输出去。此时,交换机会通过广播的形式来获取MAC地址为00-00-00-33-33-33的设备连接在哪个接口上。(除1号接口外其他接口都会收到该广播)
6.C3会回应这个广播,并回应一个数据帧(源MAC地址为00-00-00-33-33-33,目标MAC地址为00-00-00-11-11-11),交换机会将此帧的源MAC地址和接口标号(3号口)对应在一起,添加到MAC地址表中。C1与C3实现数据通信了。
注:交换机只会学习源MAC地址,并且交换机学到的MAC地址不会永远保持在MAC地址表中,默认的老化时间是300s.
路由器工作原理
C1与C2连通性,步骤略去,如上图。
1、C1向C2发送数据,不在同一个网段,数据直接发送给默认网关。网络层分包,为数据装上IP包头,其中源IP为192.168.1.2/24,目标IP为192.168.2.2/24。分包后,数据链路层为数据包装帧,其中源MAC地址为00-11-12-21-11-11,目标MAC地址为R1的f0/0接口,为00-11-12-21-22-22。数据发送到路由器R1接口f0/0。
2、路由器R1的f0/0接口接收到数据后,拆开数据帧查看目标Mac地址为自己后,拆开IP包头查看源IP和目标IP,发现目标IP不是自己,查看路由表后,将数据包发送到R1的f0/1接口,对数据进行二层封装。此步骤中,源IP和目标IP不变,源MAC地址为R1的f0/1接口地址:00-11-12-21-33-33,目标MAC地址为R2的f0/0接口地址:00-11-12-21-44-44。
3、数据包发送到R2的f0/0接口后,拆开数据帧查看目标MAC为自己后,拆开IP包头查看源IP和目标IP,发现目标IP不是自己,查看路由表后,将数据包移动到R2的f0/1接口,对数据进行二层封装,将数据包发送给C2。此步骤中,源IP和目标IP不变,源MAC地址为R2的f0/1接口地址:00-11-12-21-55-55,目标MAC地址为C2的地址:00-11-12-21-66-66。
4、C2接收到数据包后,拆开数据帧查看目标MAC是自己后,拆开IP包头,查看源IP和目标IP,发现目标IP是自己后,接收数据,并向C1发送数据包回应,具体步骤同上,略去。