专栏首页cwl_Java速读原著-TCP/IP(ARP:地址解析协议)

速读原著-TCP/IP(ARP:地址解析协议)

第4章 ARP:地址解析协议

4.1 引言

本章我们要讨论的问题是只对 T C P / I P协议簇有意义的 I P地址。数据链路如以太网或令牌环网都有自己的寻址机制(常常为 48 bit地址),这是使用数据链路的任何网络层都必须遵从的。一个网络如以太网可以同时被不同的网络层使用。例如,一组使用 T C P / I P协议的主机和另一组使用某种P C网络软件的主机可以共享相同的电缆。

当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据 48 bit的以太网地址来确定目的接口的。设备驱动程序从不检查 I P数据报中的目的I P地址。

地址解析为这两种不同的地址形式提供映射: 32 bit的I P地址和数据链路层使用的任何类型的地址。 RFC 826 [Plummer 1 9 8 2 ]是A R P规范描述文档。

本章及下一章我们要讨论的两种协议如图 4 - 1所示:A R P(地址解析协议)和R A R P(逆地址解析协议)。A R P为I P地址到对应的硬件地址之间提供动态映射。我们之所以用动态这个词是因为这个过程是自动完成的,一般应用程序用户或系统管理员不必关心。

R A R P是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或 X终端),它需要系统管理员进行手工设置。我们在第 5章对它进行讨论。

4.2 一个例子

任何时候我们敲入下面这个形式的命令:

% ftp bsdi

都会进行以下这些步骤。这些步骤的序号如图 4 - 2所示。

  1. 应用程序FTP客户端调用函数g e t h o s t b y n a m e(3)把主机名(bsdi)转换成32 bit的IP地址。这个函数在D N S(域名系统)中称作解析器,我们将在第 1 4章对它进行介绍。这个转换过程或者使用DNS,或者在较小网络中使用一个静态的主机文件(/e t c / h o s t s)。
  2. F T P客户端请求T C P用得到的I P地址建立连接。
  3. T C P发送一个连接请求分段到远端的主机,即用上述 I P地址发送一份 I P数据报(在第1 8章我们将讨论完成这个过程的细节)。
  4. 如果目的主机在本地网络上(如以太网、令牌环网或点对点链接的另一端),那么I P数据报可以直接送到目的主机上。如果目的主机在一个远程网络上,那么就通过 I P选路函数来确定位于本地网络上的下一站路由器地址,并让它转发 I P数据报。在这两种情况下,I P数据报都是被送到位于本地网络上的一台主机或路由器。
  5. 假定是一个以太网,那么发送端主机必须把 32 bit的I P地址变换成48 bit的以太网地址。从逻辑I n t e r n e t地址到对应的物理硬件地址需要进行翻译。这就是 A R P的功能。A R P本来是用于广播网络的,有许多主机或路由器连在同一个网络上。
  6. A R P发送一份称作 A R P请求的以太网数据帧给以太网上的每个主机。这个过程称作广播,如图 4 - 2中的虚线所示。 A R P请求数据帧中包含目的主机的 I P地址(主机名为b s d i),其意思是“如果你是这个 I P地址的拥有者,请回答你的硬件地址。”
  1. 目的主机的A R P层收到这份广播报文后,识别出这是发送端在寻问它的 I P地址,于是发送一个A R P应答。这个A R P应答包含I P地址及对应的硬件地址。
  2. 收到A R P应答后,使A R P进行请求—应答交换的I P数据报现在就可以传送了。
  3. 发送I P数据报到目的主机。 在A R P背后有一个基本概念,那就是网络接口有一个硬件地址(一个 48 bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但是,T C P / I P有自己的地址:32 bit的I P地址。知道主机的I P地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。 A R P的功能是在32 bit的I P地址和采用不同网络技术的硬件地址之间提供动态映射。点对点链路不使用A R P。当设置这些链路时(一般在引导过程进行),必须告知内核链路每一端的I P地址。像以太网地址这样的硬件地址并不涉及。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 速读原著-TCP/IP(arp命令)

    我们已经用过这个命令及参数- a来显示A R P高速缓存中的所有内容。这里介绍其他参数的功能。

    cwl_java
  • 速读原著-TCP/IP(RARP的分组格式)

    具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取 I P地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得 I P地址。

    cwl_java
  • 速读原著-TCP/IP(ARP高速缓存)

    A R P高效运行的关键是由于每个主机上都有一个 A R P高速缓存。这个高速缓存存放了最近I n t e r n e t地址到硬件地址之间的映射记录。高速缓存...

    cwl_java
  • 前端开发就是这样,“看似简单的东西,反而会很复杂。”

    今天的零基础前端课讲到了一个tab地址切换的菜单,就下面这个东西, ? 第一眼看起来超级简单,无非是点击上面的title显示下面的菜单,然后点省市区把内容选上去...

    web前端教室
  • 127.0.0.1和0.0.0.0地址的区别

    之前在使用tomcat的时候,启动tomcat默认都会绑定到127.0.0.1这个地址,最近在使用hexo写博客的时候发现通过 hexo server命令启动服...

    xjjdog
  • mac苹果电脑怎么查看本机IP与MAC地址

    在windows系统中与Mac系统中查看本机ip地址有些不同,那么在Mac系统中该如何查看本机的IP地址以及物理MAC地址呢?给您带来相关的查看方法,具体步骤如...

    MAC先森
  • 操作系统存储管理和oracle数据库(第二篇) (r4笔记第45天)

    在之前分享过第一篇 关于操作系统存储管理和oracle数据库 http://blog.itpub.net/23718752/viewspace-1359146/...

    jeanron100
  • 127.0.0.1和0.0.0.0地址的区别

    之前在使用tomcat的时候,启动tomcat默认都会绑定到127.0.0.1这个地址,最近在使用hexo写博客的时候发现通过 hexo server命令启动服...

    黄泽杰
  • 【原创】标准地址库建设在物流运营管理中的作用

    本文阐述了标准地址库在资源预判、工单流转、经营分析中的重要作用,结合实际项目建设情况说明了问题的解决情况和下一步需要完善的工作。

    物流IT圈
  • 操作系统 页式存储 页与块之间的关系详解

    操作系统 页式存储 页与块之间的关系详解 操作系统 页式存储 页 块 逻辑地址 物理地址 块号 页号 以下这些概念在刚开始学的时候简直要逼疯我了,因为不同书籍不...

    marsggbo

扫码关注云+社区

领取腾讯云代金券