---------------理论概述--------------
MAC(Media Access Control,介质访问控制)地址,或称为MAC位址、硬件地址,用来定义网络设备的位置。MAC集成在网卡,由48bit的2进制的数字组成,0~23位数字叫作组织唯一标志符(organizationally unique,是识别局域网节点的标识)。24~47位是由厂家自己分配,其中第48位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM芯片中,芯片中的数据可以通过程序进行擦写,它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。也就是说,在网络底层的物理传输过程中,数据传输是通过物理地址来识别主机的,它一定是全球唯一的。
IP,全称互联网协议地址,是指IP地址,意思是分配给用户上网使用的网际协议的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类。
ARP(Address Resolution Protocol)即,地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
下面我将以下面这张图片作为例子,解释一下路由器的三层转发原理
PC1要和PC2联络要经过以下步骤:
1、PC1与PC2不在同一网段,进行三层交换。
2、PC1通过ARP广播获取到路由器A与自己相连得E0接口MAC地址,把数据包封装成数据帧,数据帧首部的原MAC地址00-11-12-21-11-11,目的MAC地址是E0接口MAC地址00-11-12-21-22-22。
3、路由器A从E0接口接受到数据帧之后进行解封装,路由器A查找自己的路由表,寻找与IP地址192.168.2.2相匹配的路由表,根据下一跳地址把数据包转发到E1接口。
4、路由器A重新封装数据帧,这个时候源MAC地址为E1接口00-11-12-21-33-33,目的MAC地址为00-11-12-21-44-44.
5、路由器B从E1解耦接受到数据帧,把数据帧进行解封装,对目的IP地址进行检查,匹配路由表,根据路由表的下一跳,将数据包转发到E0接口,路由器B发现PC2与E0接口直接相连,通过ARP广播,获得PC2的MAC地址00-11-12-21-66-66,得到PC2的MAC地址后,路由器B会将自己E0接口的MAC地址作为源MAC,PC2的MAC地址作为目的MAC。
6、目标IP和源IP不变。