C语言每日一练——第665天:ARP协议

举报
士别三日wyx 发表于 2022/01/18 01:32:27 2022/01/18
【摘要】 「作者主页」:士别三日wyx ARP协议 一、什么是ARP协议1. Mac地址2. 网络层的数据3. ARP协议 二、ARP协议执行原理1. 局域网内2. 局域网外3. ARP执行...

「作者主页」:士别三日wyx

一、什么是ARP协议

我们平时想要联系一个人的时候,可以给她打电话,电话号码是用户的唯一标识,只要知道了对方的电话号码,就可以与对方通话。

计算机也是如此,计算机之间想要进行通信,也需要知道对方的 “电话号码”,计算机的“电话号码” 称为Mac地址,也叫计算机的物理地址。

1. Mac地址

使用命令 ipconfig -all ,可以查看电脑的 Mac地址。
在这里插入图片描述
当前网络中,物理地址这一项,就是计算机的 Mac地址。

Mac地址与计算机一一对应,是计算机的唯一标识。

计算机之间想要通信,就必须知道对方的 Mac地址。

2. 网络层的数据

数据到达网络层的时候,网络层会为数据添加源IP和目的IP。

随后网络层需要将数据传递到数据链路层,但数据链路层传输数据需要知道源Mac地址和目的Mac地址,因此,网络层需要根据IP地址找到对应的Mac地址。大致流程如下:

在这里插入图片描述

这个根据IP地址寻找Mac地址的动作,就是由ARP协议完成的。

源Mac地址就是发送数据的计算机的Mac地址,可以轻易的获取到,就比如你给别人打电话,你肯定是知道自己的手机号;但对方的手机号就不一定知道了。

因此,寻找目的IP地址对应的Mac地址,是ARP协议的主要工作。

3. ARP协议

ARP协议设定了几条不证自明的公理:

  1. 每一个计算机或者路由器中都有一个ARP高速缓存,也就是IP地址与Mac地址的映射表
  2. ARP 高速缓存表只会存储当前局域网内的设备信息,这些设备包括但不限于计算机、交换机、路由器连接此局域网的接口所对应的 IP 和 Mac 映射信息

ARP高速缓存也叫ARP地址缓存表,使用命令 arp -a 可以查看ARP地址缓存表
在这里插入图片描述

二、ARP协议执行原理

首先,计算机会判断目的IP地址是否是同网段的IP,如果是同网段,则在当前局域网内查询。

1. 局域网内

计算机先在自己的ARP地址表中查询目的IP地址。

如果ARP地址表能查询到,就会获取IP地址对应的Mac地址,将信息发送到这个Mac地址对应的计算机中;

如果ARP地址表中查询不到,就会在局域网内广播请求,请求的内容中带有源IP地址和目的IP地址。局域网内所有的设备都会收到广播请求。

  • 如果请求中的IP地址不是自己的,就不会理会。
  • 如果是自己的IP地址,则会通过单播的方式,将自己的IP地址和Mac地址根据请求中的源IP地址,响应给计算机;计算机会将接收到的IP地址和Mac地址添加到自己的ARP地址表中,然后根据Mac地址,将数据发送给对方。

上面的这种情况,源主机和目标主机是在一个局域网内的。

2. 局域网外

如果是不同的局域网,计算机会通过路由器与局域网的连接口,先将数据发送给路由器(路由器的每个接口都有对应的IP地址和Mac地址),路由器通过路由算法选择最优的路线将信息发送到目标主机所在局域网的路由器上。

目标主机的路由器收到信息后,也会先检查自己的ARP地址表。

  • 如果有目标IP地址,就直接发送信息
  • 如果没有目标IP地址,则会在局域网内广播,目标主机收到广播后返回自己的IP地址和Mac地址,路由器将收到的IP地址和Mac地址存储到自己的ARP地址表中,然后将数据发送给Mac地址对应的目标主机

3. ARP执行流程图

在这里插入图片描述

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/122541067

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。