zoukankan      html  css  js  c++  java
  • TCP/IP的网际层协议——ARP

    MAC地址对于每一台设备是全球唯一的,该地址被烧录在网卡的硬件电路上。MAC地址由12位十六进制数表示,其中前6位标识网卡的制造厂商,后6位是网卡的序列号。在以太网中,一个主机要和另一个主机进行通信,必须知道知道目标主机的的MAC地址。


    什么是ARP,它用来将IP地址映射到MAC地址,以便设备能在多路访问介质上通信。可以举一个例子很好的说明ARP是如何工作的:老师要将一封信交给教室里的某个学生,但是老师
    并不认识这个学生,她只知道这个学生的姓名(IP),于是她对教室里所有的人说:“谁是王XX,有你的信(网络数据)”,当王XX听到这个信息时(地址匹配),他站起来回答,然后老师就知道了他坐在几排几列(MAC地址),最后把信送到他的座位上。


    ARP协议的实现中还有一些应该注意的事项:
    每台计算机上都有一个ARP缓冲,它保存了一定数量的从IP地址到MAC地址的映射,同时当一个ARP广播到来时,虽然这个ARP广播可能与它无关,但ARP协议软件也会把其中的物理地址与IP地址的映射记录下来,这样做的好处是能够减少ARP报文在局域网上发送的次数。 按照缺省设置,ARP高速缓冲中的项目是动态的,ARP缓冲中IP地址与物理地址之间的映射并不是一旦生成就永久有效的,每一个ARP映射都有自己的寿命,如果在一段时间内没有使用,那么这个ARP映射就会从缓冲中删除 ,这一点和交换机MAC地址表的原理一样的。这种老化机制,可以大大减少ARP缓存表的长度,加快查询速度。
    在以太网中,当主机要确定某个IP地址的MAC地址时,它会先检查自己的ARP缓冲区表,如果目标地址不包含在该缓冲表中,主机就会发送一个ARP请求(广播形式),网段上的任何主机都可以接收到给广播但是只有目标主机才会响应此ARP请求。由于目标主机在收到ARP请求时可以学习到发送方的IP地址和MAC地址的映射,因此它采用一个单播消息回应请求。

    主机A以广播形式发送ARP请求查询IP地址为192.168.1.3的主机的MAC地址,网段上所有的主机都会收到该ARP请求。

    主机B、主机D收到主机A发送的ARP请求时,他们发现这个请求不是发给自己的,因此他们忽略这个请求但是他们还是将主机AIP地址和MAC地址的映射记录到自己的ARP表中。当主机C收到主机A发来的ARP请求时,它发现这个ARP请求是发给自己的,于是它用单播消息回应ARP请求,同时记录下其IP地址和MAC地址的映射。
    通常ARP协议都在支持广播的网络上使用,如以以太网。但是ARP数据包不能跨网段使用,也就是说不能跨越路由器(路由器本身用作ARP代理除外)。但目标网络IP地址和源IP地址不在统一网段上时,就要使用代理ARP
    IP地址冲突的问题及解决方法:
     
    ARP产生的问题汇总最常见的是IP地址的冲突,这时由于两个不同的主机使用相同的IP地址而产生的,在任何互联网中,IP地址必须是唯一的。
    当接口初始化时,它发送一个含有其IP地址的ARP请求,如果收到回应,Windows就会向用户报告这个IP地址已经被别人占用了;如果没有收到回应,它就认为IP地址没有被使用。最后说明一点:ARP是数据链路层的协议。
  • 相关阅读:
    为什么qt成为c++界面编程的第一选择 老夏课堂
    升级 package.json 内所有包的版本号
    小米 pro 双硬盘设置引导盘
    react 疑问集锦
    jmeter 基础使用
    vmware ubuntu 看不到网卡或连接不到网络
    如何在 Windows 11 使用旧的(或完整的)右键菜单
    hbuilder x 连接夜神模拟器
    当初为什么报 软件工程 这个专业?
    sparky 一个趋势图的JavaScript插件
  • 原文地址:https://www.cnblogs.com/stemon/p/4717561.html
Copyright © 2011-2022 走看看