MAC地址、IP地址、ARP协议

简介: 自己总结下

我们先从一个实际问题出发:

小明和小红约好周末去小红家里玩,小红和小明说了他的地址是:杭州市.西湖区.西湖小区.1号。
小明第一次去,他看了下导航,导航显示需要先步行到附近地铁A口,坐地铁到西湖站C口,步行到小红家。
小明第二次去,这时候就不需要导航了,他已经记住了。

同理,两台电脑A、B相互传数据时,电脑A是如何将数据包发送到电脑B呢?
image.png

请忽略图中的集线器

在A第一次连接B时,A仅仅知道B的ip地址,并不知道B的MAC地址,那么A能通过B的ip地址找到B吗?
答案是否定的。
因为IP地址是网络层的,类似于小红家,网络层并不负责数据的直接传输。当网络层的数据封装到下一层的数据链路层时,必须依靠着MAC地址来确认下一步往哪里走。
这时候没有B的MAC地址也没有导航怎么办?
聪明的电脑A想到了一种办法,我是用网线的,我传数据的速度非常快,我给连接的所有的电脑都发送下,收到数据的电脑确认下数据里面的IP地址与自己的是否一致,这样就可以成功将数据发送到B了。这种给所有电脑传数据的方式叫做广播。
image.png

这里CD都知道这个数据包不是发给自己的,就没有接收

当B接收到A的广播请求时,收到的数据里面有A的IP地址、MAC地址,这样B就可以给A单独发一条数据包。这种方式叫做单播,B也会将A的IP和MAC的映射关系记录在自己的ARP表中
image.png
image.png

这条单播数据成功到达A,A就知道了B的MAC地址啦。同理A也会将B的IP和MAC映射记录在自己的ARP中
image.png
在A第二次连接B时,他的数据就知道如何走了

总结下:

IP地址和MAC的主要区别:
IP地址封装在网络层,他是数据传输的终极地址,可以理解为小红家,当数据包传输过程中路过每一个交换机(理解为地铁站),这些数据在传输的时候只认MAC地址,比如一开始数据出发时,他的IP地址是小红家(杭州市.西湖区.西湖小区.1号)他的MAC地址并不是小红家的MAC地址,而是交换机(地铁站)的MAC地址。

ARP协议:当两台设备第一次交互时,在不清楚目的MAC地址时,通过广播发送请求数据包,当目的IP地址接收到数据时,更新自己的ARP缓存表,单播回应给数据发送者,发送者收到请求,再更新自己的ARP。

目录
相关文章
|
4天前
|
网络协议
用户态协议栈04-定时arp-table的实现
用户态协议栈04-定时arp-table的实现
|
4天前
|
缓存 网络协议
用户态协议栈02-arp reply实现
用户态协议栈02-arp reply实现
|
4天前
|
存储 缓存 网络协议
MAC协议原理与ARP协议
总结一下,MAC协议是控制同一网络媒介上多个设备的数据访问的规范,而ARP是解决局域网络中的IP地址到MAC地址的转换问题,以确保IP包能在本地网络上传输到正确的设备。尽管这两种协议服务于网络通信中的不同层面,但它们都是网络正常操作的基本要素,保证了数据能从一个设备准确无误地传递到另一个设备。
4 0
|
21天前
|
存储 缓存 网络协议
ARP 地址解析协议
ARP 地址解析协议
27 0
|
1月前
|
人工智能 缓存 网络协议
网络层之三层交换、icmp协议、arp协议
网络层之三层交换、icmp协议、arp协议
|
2月前
|
弹性计算 Ubuntu Linux
为什么要学习去使用云服务器,外网 IP能干什么,MAC使用Termius连接阿里云服务器。保姆级教学
为什么要学习去使用云服务器,外网 IP能干什么,MAC使用Termius连接阿里云服务器。保姆级教学
|
2月前
|
XML API 开发工具
微信mac协议API
微信mac协议API
|
2月前
|
存储 缓存 网络协议
|
3月前
|
网络协议 Linux Android开发
计算机网络:MAC地址 & IP地址 & ARP协议
计算机网络:MAC地址 & IP地址 & ARP协议
85 7
|
3月前
|
网络协议 Linux 网络架构
arp协议 与网关
arp协议 与网关