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请求时,他们发现这个请求不是发给自己的,因此他们忽略这个请求但是他们还是将主机A的IP地址和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是数据链路层的协议。

TCP/IP的网际层协议——ARP的更多相关文章

  1. TCP/IP的网际层协议——ICMP

    ICMP经常被认为是IP层的一个组成部分.它携带于IP数据包中,ICMP封装在IP数据包内部: IP首部 ICMP数据包 下面是一份差错报文的例子: 最右边的+或者-代表该报文是查询报文还是错误报文. ...

  2. 再读TCP/IP网络7层协议

    随着工作的深入,每次读这7层协议,每次都有不同的理解. 分层名                                                               分层号   ...

  3. TCP/IP的排头兵――地址解析协议(ARP) (转载)

    转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网 ...

  4. TCP/IP,HTTP,SOAP等协议之区别

    术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到 ...

  5. 计算机网络(二),TCP/IP四层模型常见协议

    目录 1.应用层协议 2.传输层协议 3.网络层协议 4.链路层协议 二.TCP/IP四层模型常见协议 1.应用层协议 (1)POP3 (2)FTP (3)HTTP (4)Telnet (5)SMTP ...

  6. TCP/IP中链路层的附加数据(Trailer数据)和作用

    1.TCP/IP中链路层的附加数据是什么 在用wireshark打开报文时,链路层显示的Trailer数据就是附加数据,如图 2.如何产生 1.例如以太网自动对小于64字节大小的报文进行填充(未实验) ...

  7. 08_使用TCP/IP Monitor监视SOAP协议

    [SOAP定义] SOAP   简单对象访问协议,基于http传输xml数据,soap协议体是xml格式.SOAP   是一种网络通信协议SOAP   即Simple Object Access Pr ...

  8. 使用TCP/IP Monitor监视Soap协议

    什么是soap? soap,简单对象访问协议,基于http传输xml数据,soap协议体是xml格式. SOAP 是一种网络通信协议 SOAP即Simple Object Access Protoco ...

  9. TCP/IP和OSI4层、7层协议介绍

    1.TCP/IP全称:Transmission Control Protocol / Internet Protocol 中文翻译:传输控制协议 / 互联网协议 2.OSI4层.7层模型:

随机推荐

  1. json具体解释

    <span style="font-size:12px;">function testJson() { var jsonData = { "firstName ...

  2. KMP模式匹配 三(弦)

    原文请訪问我的博客:xiaoshig.sinaapp.com KMP模式匹配 三(串) Time Limit:1000MS     Memory Limit:131072KB     64bit IO ...

  3. C# 中4个访问符和8个修饰符详解

    4个访问修饰符(是添加到类.结构或成员声明的关键字) Public:公有的,是类型和类型成员的访问修饰符.对其访问没有限制. Internal:内部的,是类型和类型成员的访问修饰符.同一个程序集中的所 ...

  4. 将类数组对象(array-like object)转化为数组对象(Array object)

    用法:Array.prototype.slice.call(array-like object) // 创建一个类数组对象 var alo = {0:"a", 1:"b& ...

  5. Android基础之CountDownTimer 倒计时类

    app常用的60s倒计时计时功能: private static final int TIME_LIMIT = 60; private void initView() { // 相关控件 mResen ...

  6. OC字符串的常用方法

    网上写的关于字符串常用方法的博客很多,这里我简单做了下总结!不喜勿喷哦! 一.创建字符串 #import <Foundation/Foundation.h> //NSString //创建 ...

  7. TCP为什么需要3次握手与4次挥手

    为什么需要“三次握手” 在谢希仁著<计算机网络>第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”.在另一部经典的<计算机网络> ...

  8. Ubuntu12.04 配置Java开发环境:JDK1.7+Eclipse+Tomcat7.0

    软硬件环境 Ubuntu12.04+JDK1.7+Eclipse+Tomcat7.0 内容列表 1.安装JDK1.7,配置JAVA环境 2.安装Eclipse 3.安装Tomcat7.0 1.安装JD ...

  9. Arduino周边模块:执行部件(舵机、直流电机、步进电机)

    Arduino周边模块:执行部件 Arduino周边模块:执行部件 嵌入式系统的构成 如今已经有各种各样的基于Arduino的嵌入式系统, 比如:智能小车.3D打印机.机器人,甚至还有基于Arduin ...

  10. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...