MAC地址,IP地址及ARP协议
- MAC地址是以太网MAC子层所使用的地址(数据链路层)
- IP地址是TCP/IP体系结构网际层所使用的地址
- ARP协议属于TCP/IP体系结构的网际层,起作用是已只设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址
MAC地址
使用点对点信道的数据链路层不需要地址,因为只是两个对象,点对点就可以了
但是在广播域中,多个主机连接在一个广播通道上,要想实现两个主机之间的通信,则每个主句都必须有一个唯一的标识,即一个数据链路层地址;
在每个组件发送的帧中必须携带标识发送主机和接收主机的地址
这类地址是用于媒体接入控制(Media Access Control)因此称为MAC地址。
MAC地址一般被固化在网卡(网络适配器)中,因此叫做硬件地址
也成为物理地址,但是MAC地址并不属于物理层,而是数据链路层
严格来说,MAC地址是对网络上各接口的标识,而不是对各设备的标识。
MAC地址格式有两部分组成
- 前三字节 由 IEEE的注册管理机制分配
- 后三字节 由获得OUI的厂商自行随意分配
第一字节的最后两个比特也很重要
如果b1为0:表示全球管理
如果b1为1:表示本地管理
b0为0:单播
b0为2:多播
广播地址全F字段
蓝牙接口,wife接口,笔记本,台式机都有一个以太网接口,都有一个全球管理的单播地址
字节发送数据 b1——b7
单播MAC地址的作用
总线上有ABC三个主机,B给C发送一个数据帧。
A和C都会接收到B封装有源地址和目的地址的数据帧。当A收到数据帧时,检测到于目的地址与自己的地址不同,于是乎丢弃该帧。
而C接收到该帧时,检测到目的地址与自己地址相同,于是接收该帧。
广播MAC地址的作用
B发送了一个数据帧。A和C收到时,发现是广播帧,于是都接收,并交给上层处理。
多播MAC地址
是否接收,要看数据帧的目的地址有没有在某个主机的多播组列表中,有的话就可以接收。
现在开始提供随机MAC
IP地址
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分的信息:
网络编号:标识因特网上数以万计的网络
主机编号:标识不同网络上的不同主机
所以IP地址即区分网络,又区分主机
如果不接入因特网,只是一个单独的网络,可以只使用MAC地址。
数据包转发过程中IP地址与MAC地址的变化情况
数据包转化过程中:
源IP地址和目的IP地址保持不变;
数据包转发过程中:
源MAC地址和目的MAC地址逐个链路改变
有这么几种情况,就是都知道都知道IP地址,但是不知道MAC地址,所以问题来了:
如何通过IP地址找到相应的MAC地址
这就是下面要介绍的内容
ARP协议
比如有ABC三台主机,B要给C发送数据包,知道C的IP地址,但不知道它的MAC地址。
因为每台主机都有自己的高速缓存表
也就是IP地址与MAC地址的对应关系
在B发送给C之前,先查查自己的高速缓存表中有没有CIP地址对应的MAC地址。发现没有,于是就发送一个广播帧,广播帧的内容是:
A收到后交付上层处理发现描述的IP地址不是自己的IP地址,于是丢弃。
C收到后发现是自己的IP地址,于是
先将B的IP和MAC保存在自己的高速缓存表中
然后返回一个单播地址