二层通信
通过MAC地址表来转发数据帧,只能在同一个局域网(LAN)内进行通信,无法跨不同网络进行数据传输,因为其不具备处理IP地址等网络层信息的能力。工作在数据链路层,通信范围局限于局域网内,主要设备是二层交换机,根据MAC地址来转发或过滤数据帧,以减少网络中的广播流量,提高网络效率。
过程:
- A和B通信,检查A的arp缓存中是否有B的MAC地址;
- 若arp缓存没有,发送arp广播请求,交换机收到后,查询MAC地址转发表检查是否存在B的MAC地址对应端口,并将A的MAC地址和对应端口加入到转发表中;
- B收到广播的arp请求后,单播响应arp请求,交换机将B的MAC地址和端口号加入转发表,A将B的MAC地址加入自己的arp缓存;
- A能够和B进行通信。
三层通信
路由器或三层交换机会根据目标IP地址和路由表中的信息来决定如何将数据包转发到目标网络,同时还会对数据包进行一些必要的处理,如TTL(Time to Live)减1等。
当路由器收到一个IP数据包,路由器会根据数据包的目的IP地址查找FIB(Forwarding Information Base,转发信息库)表,找到“最匹配”的路由条目后,将数据包根据路由条目所指示的出接口或下一跳转发出去。 路由器获取路由的方式有三种,分别是动态路由(例如OSPF、RIP、BGP)、静态路由、直连路由。
过程:
- 根据IP地址查看目的地址和自己不在同一网段内,arp广播请求发送给默认网关(和其他网段进行通信的路由器的接口),查询路由器中的路由表,若存在相应表项,交付给下一跳,直到寻找到所要主机的IP地址或者找不到直接丢弃;
- 找到要通信的主机后,此主机发送arp单播响应,回到A,A将IP地址和MAC地址映射加入到自己的arp缓存:
- 两个主机可以完成通信。