- MAC地址是以太网的MAC子层使用的地址 数据链路层
- IP地址是TCP/IP体系结构网际层所使用的地址 网际层
- ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址 网际层
- 尽管IP地址和ARP协议属于TCP/IP体系结构的网际层,但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议
MAC地址
- 点对点数据链路层不需要地址,但当多个主机连接在同一个广播信道上,要想实现两个主机间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址
- MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址。
- MAC地址有时也被称为物理地址。请注意:这并不意味这MAC地址属于物理层
- 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网络卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上个接口的唯一标识,而不是对网络上设备的唯一标识。
IEEE 802局域网的MAC格式
一共六个字节,从左至右分别为第一字节到第六字节
- 前三个字节是组织唯一标识符OUI(有IEEE的注册管理机构分配)
- 后三个字节是获得OUI的厂商可自行随意分配
- 这种地址标识符称为拓展的唯一标识符EUI,对于48比特(6字节)的MAC地址,可称为EUI-48
-
IEEE 802局域网的MAC地址发送顺序
字节发送顺序:第一字节->第六字节
-
MAC地址举例
单播MAC地址举例
B在数据帧中放入自己的MAC地址,和目的地址(C的地址),发送出来,A和C接收到A的地址和目的地址不匹配,对其,C的匹配,接收,交给上层广播MAC地址的举例
B要发送广播帧,在目的地址填入广播地址,即全F,源地址字段填自己的MAC地址,再加上帧首部的其他字段和帧尾,构成该帧。发出去后,A和C都收到,发现是个广播地址,全部接收,交给上层。
多播MAC地址
A生成帧的时候吧多播地址填入目的地址,假设BCD支持多播,受到该帧后,在自己的多播组列表中查找该多播地址,查到就接收,查不到就丢弃。 给主机配置多播组列表进行私有应用时,不能使用共有多播地址
IP地址(介绍作用)
- IP地址属于网络层范畴
- IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
- 网络编号:用来标识因特网上数以百万计的网络
- 主机编号:标识同一网络上的不同主机(或路由器各接口)
- 同一个网络上的各主机和路由器的各接口的IP地址的网络号部分应该相同,而主机号部分应该互不相同
- MAC地址不具备区分不同网络的功能
- 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)
- 如果要接入因特网,两个地址都要使用
从网络体系结构看IP地址和MAC地址
IP地址输入网络层范畴,所以网络层首部中封装源IP地址和目的IP地址
MAC地址属于数据链路层范畴,所以数据链路层首部中封装源MAC地址和目的MAC地址
数据包转发过程中IP地址和MAC地址的变化情况
- 数据包转发过程中,源IP地址和源MAC地址保持不变。
- 源MAC地址和目的MAC地址逐个链路改变。
地址解析协议ARP
如何起作用
- 每个主机都有自己的一个ARP高速缓存表,里面有别的主机的IP地址和MAC地址的对应关系
- B想给C发送数据,但是只有IP地址,没有MAC地址
- 于是B发一个ARP请求报文
- 报文内容封装在MAC帧中,目的地址为全F广播地址
- 内容是自己的IP地址+自己的MAC地址+想知道MAC地址的主机的IP地址
- A收到报文,发现不是想要自己的MAC地址,不理会
C收到报文
- 发现想要自己的MAC地址,先把B的IP地址和MAC地址存入自己的ARP高速缓存表中
给B发送ARP响应报文,封装在MAC帧中,告知自己的MAC地址
告知B自己的IP地址和MAC地址
其他主机也都能收到该单播帧,其他主机收到后,发现MAC地址不匹配,直接丢弃,B收到发现匹配,向上层交付,进行解析,然后将C的IP和MAC地址加入缓存表里,之后就可以发数据包了
ARP高速缓存表中的每一条记录,都有其类型
- 自动:自动获取,生命周期默认为两分钟;
- 静态:手工设置,不同操作系统下的生命周期不同,例如系统重启后不存在或者仍然有效
ARP的作用范围:逐链路或逐个网络使用
- 除ARP请求和响应外,ARP还有其他类型的报文,例如检查IP地址冲突的“无故ARP,免费ARP”
- ARP没有安全验证机制,存在ARP欺骗(攻击)问题