1 / 18

第三章 ARP 与 RARP

第三章 ARP 与 RARP. 引言. 我们使用 TCP/IP 进行通信,从高层来看使用的是 IP 地址作为源 / 目的地的标识 IP 数据包的传输是通过物理网络来进行的 物理网络有它自己的地址机制,称为物理地址。 物理网络是通过物理地址来发送和接收数据的。设备驱动程序从不检查 I P 数据报中的目的 I P 地址 于是,引出一个问题: 由于物理网络并不识别 IP 地址,那么它把 IP 数据包发给谁呢? 这里就有一个 IP 地址和物理地址的映射问题。只要能找到 IP 地址对应的物理地址, IP 数据包在物理网络传输中的寻址问题就解决了。.

Télécharger la présentation

第三章 ARP 与 RARP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 ARP与RARP

  2. 引言 • 我们使用TCP/IP进行通信,从高层来看使用的是IP地址作为源/目的地的标识 • IP数据包的传输是通过物理网络来进行的 • 物理网络有它自己的地址机制,称为物理地址。 • 物理网络是通过物理地址来发送和接收数据的。设备驱动程序从不检查I P数据报中的目的I P地址 于是,引出一个问题: 由于物理网络并不识别IP地址,那么它把IP数据包发给谁呢? 这里就有一个IP地址和物理地址的映射问题。只要能找到IP地址对应的物理地址,IP数据包在物理网络传输中的寻址问题就解决了。

  3. Ethernet Address 以太网是我们常用的网络,以此为例: • 每个以太网接口都有一个唯一的48位的地址(也叫做硬件地址、MAC地址) • Example: C0:B3:44:17:21:17 前24位标识网络接口卡的厂商,不同厂商生产的标识不同,后24位是由厂商指定的网络接口卡序列号 • 分配给厂商的地址是由某机构统一分配的,保证唯一。 • 广播地址:所有比特位都是1 (11:11:11:11:11:11?,X,FF:FF:)

  4. Ethernet Addressing • 先看一下Ethernet 的数据帧,虽然不同标准帧的格式稍有区别,但其中都有一个目的地址,标识此帧数据希望由谁来接收。 • 但是呢,以太网是一种广播网络,连接在网络中的主机可以收到网络上发送的所有数据。虽然都收到,但主机会检查数据帧中的目的地址。如果目的地址和自己接口的地址不符,同时目的地址也不是广播地址,那么就会丢弃这个数据。 Preamble Destination Address Source Address Msg. Type DATA CRC 8 bytes 6 6 2 0-1500 4

  5. IP数据包在以太网上的传输 课本例子P29,Figure4.1 • 构造一个IP数据包,设好目的IP地址P4 • 交给网卡处理,指定发往M4 • 网卡将数据包封装在数据帧中的数据区中,并将数据帧的目的地址设置为M4,然后发送出去 • 以太网的广播特性,每台主机都能收到这个数据帧 • H4收到后,通过比较目的地址,发现该帧是发给自己的,就将帧的数据区提取出来,交给上层协议处理。 结论:IP协议在发送数据时必须知道通过哪个MAC地址才能到达目的IP地址,就是说,IP协议中有一张表,记录了目的IP地址到MAC地址的映射。 convert the <protocol type, target protocol address> pair to a 48bit Ethernet address

  6. 映射表建立的方法 • 人工建立 • 自动建立 利用了以太网的广播特性,让主机互相知道对方的IP地址和MAC地址。这就是ARP协议采用的方法 地址解析就是给定IP地址,找到其硬件地址的过程 Address Resolution

  7. ARP • 地址解析协议(Address Resolution Protocol)是需要发送报文的主机在知道目的IP却不知道目的物理地址的时候使用的 • ARP是一个广播协议——网络上的每个主机都能收到ARP请求 • 各主机根据其IP地址检查ARP请求——只有符合的那个进行应答(当然,想搞破坏的话,其它主机也可以应答进行欺骗,这就涉及到一些安全方面的课题了)

  8. ARP conversation HEY - Everyone please listen! Will 128.213.1.5 please send me his/her Ethernet address? not me Hi Green! I’m 128.213.1.5, and my Ethernet address is 87:A2:15:35:02:C3

  9. ARP (cont.) • ARP不需要每发送一个IP数据包都执行——它可以用缓存来记住IP地址和物理地址的对应关系:<IP地址,物理地址,更新时间>。(缓存的有效期大约10分钟左右吧) • 接收到ARP请求的主机也可以根据请求中的源IP地址和源物理地址更新自己的缓存。

  10. 网络接口层简介 • 以太网的帧格式 • Internet 封裝:網際層封包與 Ethernet 訊框包裝 • Type 0800 :IP 封包 • Type 0806:ARP 封包 • Type 8035:RARP 封包

  11. ARP数据包格式 struct arp { u_short ar_hwtype; /* hardware type */ u_short ar_prtype; /* protocol type */ u_char ar_hwlen; /* hardware address length */ u_char ar_prlen; /* protocol address length */ u_short ar_op; /* ARP operation (see list above) */ u_char ar_addrs[1]; /* sender and target hw & proto addrs */ }; #define SHA(p) (&p->ar_addrs[0]) #define SPA(p) (&p->ar_addrs[p->ar_hwlen]) #define THA(p) (&p->ar_addrs[p->ar_hwlen + p->ar_prlen]) #define TPA(p) (&p->ar_addrs[(p->ar_hwlen*2) + p->ar_prlen]) Notation --- S:source, T:Target; H:Hardware, P:Protocol; A:Address Ethernet 传输层,即以太网头部 注意:是按顺序的) 48.bit: 目的方的以太网地址 48.bit: 发送方的以太网地址 16.bit: 协议类型 = ether_type$ADDRESS_RESOLUTION Ethernet ARP数据包内的数据:

  12. ARP软件的功能需求 • 功能需求:将上层的IP地址与底层的物理地址进行绑定(binding) • ARP软件属于网络接口层。 虽然ARP软件维护一张地址映射表,用以将IP地址映射为物理地址,但高层协议软件并不直接访问该表。

  13. 理论上的结构 • ARP软件可以划分为3个部分:输出模块、输入模块和高速缓存管理模块。 • 输出模块:给网络接口软件返回IP地址到物理地址的绑定(映射) • 输入模块:处理来自网络的ARP分组,包括请求和响应。 • 高速缓存管理模块:实现高速缓存替换策略,删除到达规定时限的表项。

  14. 设计方案举例 • 单一的高速缓存 VS 每个网络接口一个缓存(对连接多网络的设备有影响) • 全局替换策略VS本地替换策略 前者可以动态的跟随网络负载的变化;后者可以保持接口间的独立性 • 高速缓存的超时与删除(寿命字段) • 分组以多队列的形式等待发送。ARP缓存中的每个表项都有一个输出分组队列。 • 互斥访问:调用者完成VS过程中设置

  15. ARP回顾 • 当某主机要向以太网中另一台主机发送I P数据时,它首先根据目的主机的I P地址在A R P高速缓存中查询相应的以太网地址, A R P高速缓存是主机维护的一个I P地址到相应以太网地址的映射表。 • 如果查到匹配的结点,则相应的以太网地址被写入以太网帧首部,数据报被加入到输出队列等候发送。 • 如果查询失败, A R P会先保留待发送的I P数据报,然后广播一个询问目的主机硬件地址的A R P报文,等收到回答后再将I P数据报发送出去。

  16. ARP结论 • 在大多数的T C P / I P实现中,A R P是一个基础协议,但是它的运行对于应用程序或系统管理员来说一般是透明的 • A R P高速缓存在它的运行过程中非常关键 • a r p命令可以显示和修改A R P高速缓存中的内容 • 课本P171,ARP在Windows下的工作过程

  17. 反向地址解析协议RARP • 给定物理地址,去查找IP地址的过程就称为反向地址解析Reverse Address Resolution • 反向地址解析是无盘工作战启动的时候需要的 需要通过TCP/IP从远程服务器获取启动映象文件来启动;但启动前却无IP地址

  18. RARP conversation HEY - Everyone please listen! My Ethernet address is 22:BC:66:17:01:75. Does anyone know my IP address ? not me Hi Green! Your IP address is 128.213.1.17.

More Related