TCP/IP(3.3) —ARP和RARP

ARP和RARP协议的作用

ARP

  我们知道,网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。但IP和下面的网络的硬件地址以为格式不同而不存在简单的映射关系。(IP是32位,而局域网硬件地址是48位。)更换网络适配器还可能改换硬件地址。

  地址解析协议ARP就是解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表经常动态更新(动态这个词是因为整个过程是软件自动完成的,一般应用程序和用户不必关心)

  每一个主机都设有一个APR高速缓存(ARP
cache)。里面有本局域网上各个主机和路由器的IP地址到硬件地址的映射表。

使用ARP的四种情况

  1. 发送方式主机,要把IP数据报发送到本网络上的另一个主机。这时ARP找到目的主机的硬件地址。

  2. 发送方是主机,要把IP数据报发送到另一个网络上的主机,这时ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器完成。

  3. 发送方式路由器,要把IP数据报转发到本网络上的一个主机。这时ARP找到目的主机的硬件地址

  4. 发送方式路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

那么主机是怎么知道这些地址的呢?

ARP的运行过程

  如果主机B刚入网,或者主机A刚启动,高速缓存还是空的,这时A是没有B的地址的

  在这种情况下,主机A就自动运行ARP,按照下面步骤找到B的地址:

1.ARP进程在本局域网上广播发送一个ARP请求分组,其中广播内容如下图(或者理解为如果你是这个IP地址的所有者,请回答你的硬件地址):

2.本局域网上的所有主机运行的ARP进程都收到此ARP请求分组。

3.主机B在ARP请求中看到自己的IP地址,就向主机A发送ARP相应分组,应写入自己的硬件地址。其余所有的主机都不理睬这个A的ARP请求分组。ARP请求分组是广播的,但是ARP相应分组是普通的单播

4.主机A收到B的相应分组后,就在其ARP高速缓存中写入B的从IP到硬件地址的映射。

5.主机A在向主机B发送ARP请求时,也把自己的IP到硬件地址的映射写入了ARP请求分组中。当B接收到时,就写入到自己的ARP高速缓存中。

  可见ARP高速缓存非常有用。如果不使用ARP高速缓存,任何一个主机只要进行一次通信,就要在网络上以广播的形式发送ARP请求分组,这样就使得网络上的通信量大大增加。

  ARP把保存在高速缓存中的每一个映射地址都设置生存时间(例如20分钟)。凡超过生存时间的项目就从高速缓存中删除掉。这种生存时间是很重要的。设想如果A和B通信,如果B的网络适配器突然坏掉了,A还按照原来的硬件地址发送,肯定就不能成功了、A在删掉后,又重新广播ARP请求分组,又找到了B

  可能我们会有疑问,既然在网络链路上传送的帧最终是按硬件地址找到目的主机的,那么为什么不直接使用硬件地址进行通信呢?

  因为全世界存在各式各样的网络,它们使用不同的硬件地址,要使得这些异构网络能够通信就必须进行非常复杂的硬件地址转换工作。但是统一的IP地址把这个复杂的问题解决了。

ARP的分组格式

  在以太网上解析IP地址时, ARP请求和应答分组的格式如图3所示(
ARP可以用于其他类型的网络,可以解析IP地址以外的地址。紧跟着帧类型字段的前四个字段指定了最后四个字段的类型和长度)。

  

  以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。

  两个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806。

  形容词hardware (硬件)和protocol
(协议)用来描述ARP分组中的各个字段。例如,一个ARP请求分组询问协议地址(这里是IP地址)对应的硬件地址(这里是以太网地址)。

  硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。

  接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。

  OP
操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)和R
ARP应答(值为4)。这个字段必需的,因为ARP请求和ARP应答的帧类型字段值是相同的。

  接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址(IP地址)、目的端的硬件地址和目的端的协议地址。注意,这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。

  对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把op操作字段置为2,最后把它发送回去。

时间: 2024-10-21 11:38:40

TCP/IP(3.3) —ARP和RARP的相关文章

TCP/IP协议族——ARP、DNS工作原理及实例详解

 测试网络: 通过VMware创建了两个虚拟机,并利用桥接方式联网以此模拟两台主机连接一台路由器的情况.测试网络图如下: ARP协议工作原理 ARP协议能实现任意网络地址到任意物理地址的转换,这里仅讨论IP地址到以太网地址(MAC地址)的转换.其工作原理是:主机向自己所在网络广播一个ARP请求,该请求包含目标机器的网络地址.此网络上的其他机器都将接收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址. 以太网ARP请求/应答报文 以太网ARP请求/应答报文格式如下

TCP/IP, UDP, ICMP, ARP协议族简介--纯图慎点

ISO/OSI的网络模型架构 TCP/IP参考模型的层次结果 以太网头部结构 以太网属于数据链路层, 属于最基本的协议结构 IP协议 IP协议为TCP, UDP, ICMP提供最基本的数据传输通路 ICMP协议 ICMP协议用于传递差错信息, 时间, 回显, 网络信息等报文数据, ICMP在IP报文中的位置为: 通过ICMP协议, 判断局域网的某台机器是否在线的文章: linux:C语言通过ICMP局域网内部主机是否存活:http://www.cnblogs.com/diligenceday/p

TCP/IP简介

一.TCP/IP北京和介绍 上世纪 70 年代,随着计算机技术的发展,计算机使用者意识到:要想发挥计算机更大的作用,就要将世界各地的计算机连接起来.但是简单的连接是远远不够的,因为计算机之间无法沟通.因此设计一种通用的“语言”来交流是必要可少的,这时 TCP/IP 协议就应运而生了. TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了点设备如何连入互联网,以及数据如何在他们之间传输的标准.TCP/

【linux基础】17、TCP/IP网络基础(上)

一.计算机网络概述 1.什么是网络? 一群具有独立功能的计算机组成的系统通过通信设备及传输媒体互连起来,在通信软件支持下,实现资源共享.信息交换的整个系统 产生计算机网络的基本条件:通信技术与计算机技术的结合 2.计算机网络的产生与发展 1954年 主机-终端的通信网络  第一代计算机网络 以单个主机为中心.面向终端设备的网络结构.系统中除主计算机具有独立的数据处理功能外,系统中所连接的终端设备均无独立处理数据的功能 1969年 主机-主机的通信网络  ARPANET网  第二代计算机网络 以分

【精】TCP/IP协议简介(一) 之 TCP/IP简介

一.TCP/IP 背景和介绍 上世纪 70 年代,随着计算机技术的发展,计算机使用者意识到:要想发挥计算机更大的作用,就要将世界各地的计算机连接起来.但是简单的连接是远远不够的,因为计算机之间无法沟通.因此设计一种通用的"语言"来交流是必要可少的,这时 TCP/IP 协议就应运而生了.本文地址:http://blog.csdn.net/sunansheng/article/details/52054632 TCP/IP(Transmission Control Protocol/Int

(1)TCP/IP简介

TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准. TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议.IMCP 协议.TCP 协议.以及 http.ftp.pop3 协议等.网络中的计算机都采用这套协议族进行互联. 网络协议栈架构 提到网络协议栈结构,最著名的当属 OSI 七层模型,但是 TCP/IP 协议族的结构则

TCP/IP协议简单介绍

简单介绍 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准. TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议.ICMP 协议.TCP 协议.以及 http.ftp.pop3.https 协议等.网络中的计算机都采用这套协议族进行互联. TCP/IP协议OSI 七层模型 TCP/IP四层模型 (1)应用层:应用程序通

2.tcp/ip协议分析-IP协议、ARP协议和RARP协议

IP协议是TCP/IP协议族中最核心的协议,它提供不可靠.无连接的数据报传输服务.所以理解IP协议对于我们学习网络至关重要. IP首部 重要字段介绍: 4bit首部长度:以4字节为单位,决定了IP首部长度最大为15*4=60,一般的IP数据报首部长度为20,此时该字段为5. 8bit的服务类型:包括一个3bit的优先权子字段(可以忽略),4bit的tos子字段和1bit的未用位但必须置0.4bit的TOS分别代表:最小延时.最大吞吐量.最高可靠性和最小费用. 比如在telnet交互应用中就要求有

TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

转http://blog.csdn.net/goodboy1881/article/details/668556 —————————————————————————————————————————————————————— 把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. 1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UD

TCP/IP学习笔记(三)——IP,ARP,RARP

参考文献: * <TCP/IP详解 卷一:协议>: 1. IP网际协议 1.1 特点: 不可靠:不能保证IP数据报能成功到达目的地: 无连接:不维护任何关于后续数据报状态信息,即没有握手的环节,比如UDP也是无连接的: 1.2 IP首部 普通IPv4首部长度20字节(除非含有选项字段): 网络字节序:Big-endian: 服务类性(TOS):共8位,实际有效位4bit,最小时延,最大吞吐量,最高可靠性,最小费用: 不同的协议有不同的要求:Telnet和Rlogin用于少量交互数据要求最小传输