网络协议补完计划--ARP协议和RARP协议

目录

  • 前言
  • ARP协议和RARP协议概述
  • 以太网的传输机制
  • ARP协议
    • 当两个主机H1、H2处于同一个物理网络
    • 当两个主机H1、H2处于不同的物理网络
      • 网关
      • 代理ARP
      • ARP与代理ARP的选择
    • 多个路由器下的异网转发
    • 减少ARP协议的使用次数
  • ARP数据包格式
  • RARP协议
    • RARP协议的工作原理
  • 参考资料

前言

参照清华大学出版社-罗军周主编的《TCP/IP协议及网络编程技术》进行学习。
本篇主要参考第四章:《ARP和RARP》
介绍如何使用ARP协议通过IP地址映射回来对应的MAC地址、进而进行具体的物理通讯。
对于端内和端外ARP协议的工作有哪些不同。
以及RARP协议的相关知识。


ARP协议和RARP协议概述

上一章所讲的IP地址(192.168.1.1)依旧属于逻辑地址(北京108号信箱)、那么如何将逻辑地址对应到物理网卡MAC地址(玉泉路19号)上?

ARP协议和RARP协议就负责将IP地址映射到MAC地址上。

而在IPV6的环境中已经没有ARP协议了。ICMPV6里的“NS/NA”结合“被请求节点组播地址”代替ARP完成了工作。


以太网的传输机制

以太网是一种广播网络、即在同一个以太网中的任何一个主机都能接收到网络上的所有数据帧。但主机会检查数据帧的目的地址、如果该数据不是发送给自己的、那么就会将其丢弃。
因此、连接到以太网中的每一个连接口(通常是网卡)都会有一个自己唯一的以太网地址(MAC地址)。
如果MAC地址匹配、再交给对应的网络层交给IP协议处理。

IP协议将数据包交给网卡发送的时候、必须告诉网卡将数据发送给那个MAC地址。
IP协议在通讯的时候必须知道对方的MAC地址。
也就是说。IP协议中有一张表、表中记录着每个IP地址对应的MAC地址。这个表产生的过程、就是IP地址向MAC地址的映射过程。


ARP协议

ARP协议(地址解析协议)。
用来查找同一个物理网络中与一个IP地址相关联的MAC地址。

这里参照《图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)》进行整理

使用询问、回答的机制(源主机H、IP地址P、MAC地址M)。

当两个主机H1、H2处于同一个物理网络:

同网段ARP协议
  • 当源主机H1的IP协议构造好IP数据包、但这时还并不知道目的地的M2、所以并不能交给网卡发送。
  • 这时源ARP协议将构造一个ARP数据包、其中包含目的IP地址P2、目的M2空缺着、并将ARP数据包交给网卡广播发送给整个以太网。
  • H2网卡在收到ARP请求后、将其交给H2的ARP协议进行处理、如果查询的IP地址与自身的地址P2相符、会将自身的M2填写进去并作为ARP响应包交给网卡发送回去。如果查询的IP地址与自身的地址P2不符、则丢弃该ARP请求包。
  • H1在收到ARP应答包后、再开始向M2发送IP数据包。

当两个主机H1、H2处于不同的物理网络:

这时、需要引入两概念、代理ARP网关

  • 网关

网关IP就是默认路由的内网IP地址.
正常环境下、当用户接入网络时、都会通过DHCP协议或手工配置的方式得到IP和网关信息。


网关
  • 代理ARP

当ARP请求目标跨网段时、网关设备收到此ARP请求、会用自己的MAC地址返回给请求者、这便是代理ARP(Proxy ARP)。


代理ARP

需要注意的是网关即便有代理ARP功能,也未必一定执行,还必须满足两个条件:①网关已经开启代理ARP功能;②网关有目标的路由信息。
可能会出现"XXX设备不支持代理ARP功能,导致通信故障"的情况。

  • ARP与代理ARP的选择

    • 当电脑没有网关时、采用代理ARP
  • 当电脑有网关时、采用正常ARP
  • 总结一下

①当电脑没有网关(采用代理ARP)时:"跨网段访问谁,就问谁的MAC"

②当电脑有网关(采用正常ARP)时:"跨网段访问谁,都问网关的MAC"

③无论哪种ARP,跨网段通信时,发送方请求得到的目标MAC地址都是网关MAC。

多个路由器下的异网转发

IP不变、MAC变就行了。这是我学CCNA时、听过最经典的总结。

A网关收到数据包后查看,根据目的IP(B的IP地址)查找路由表,找到通往目的网段的路由及下一跳,得到下一跳的MAC地址(ARP获得的),然后将数据包中原IP、目的IP保持不变,原MAC地址换成A网关的MAC地址,目的地址换成下一跳的MAC地址,转发到下一跳的设备(路由器,三层交换机等)。

  • 不是B的网关,就重复上面的动作
  • 如果下一条就是B的网关,网关收到后查看,发现目的IP在自己的内部(ARP表),将数据包中原IP、目的IP保持不变,原MAC地址换成B网关的MAC地址,目的地址换成B的MAC地址,将数据包发给B,B得到数据包后,完成A与B的通信。

减少ARP协议的使用次数

如果每次发送一个IP数据包都需要通过ARP协议进行一次ARP请求数据包的广播和ARP响应数据包的发送、那么代价将非常高。
实际上、每个主机可以制作一个《缓存表》来减少这种地址解析所需的通信。
缓存表中有三个字段:IP地址MAC地址以及该记录最后的更新时间(超过一段时间未更新则删除该条数据)。

  • 发送方主机。在收到ARP响应数据包的时候、会把目标的信息写入缓存表。

  • 所有接收方主机。在接收到ARP请求广播的时候、会将请求发送方的信息写入缓存表。
    也就是说只要我发送过一次ARP请求包、我的信息将被广播范围内所有的主机缓存。

  • 每台设备接入网络或者启动时、可以向网络发送一个ARP广播。
    这样做也有利于帮助设备核查IP地址是否存在冲突。


ARP数据包格式

ARP数据包的格式和RARP数据包的格式相同、只是操作位不同而已。所以、RARP的数据包将不再赘述。

  • 共9个字段、但是具体长度不固定
    因为ARP协议可以用来实现任意上层协议地址到任何类型物理地址的映射、而不用的地址类型其长度是不同的。
    IP地址长度为4、MAC地址长度为6。
  • 硬件类型
    指明物理地址类型:以太网为1
  • 协议类型
    指明上层协议地址类型:IP协议为0x0800
  • 操作
    指明ARP数据包的类型:
    1、ARP请求 || 2、ARP响应 || 3、RARP请求 || 4、RARP响应

再来看看具体操作流程:

  • 请求者:将数据填好后将《目标硬件地址》空缺、将《操作》写成1发送。
  • 响应者:收到ARP请求后、将请求者信息放入缓存表
  • 响应者:将自身的MAC地址填写进《目标硬件地址》后、将目标位字段与发送位字段互换、将《操作》改写成2发送。
  • 请求者:收到ARP响应后、将响应者信息放入缓存表。

RARP协议

ARP--地址解析协议的反向版。起到给物理地址分配IP地址的作用。

通常是需要远程启动(类似无盘工作站)的系统中使用
  • 这种系统需要通过TCP/IP协议从远程服务器获取启动文件映像来启动计算机。
  • 而IP请求发送需要两个关键的地址:IP地址以及MAC地址
  • IP地址通常保存在二级存储器中、并在启动后载入系统。
    而需要远程启动的系统往往不具备二级存储器、因此在系统启动之前是没有IP地址的。
  • 通过TCP/IP协议启动、与启动后才有IP地址就出现了矛盾。
RARP协议的工作原理
  • 请求计算机给远程服务器发送一个RARP请求数据包、服务器接收到后发送一个RARP响应数据包(包含请求计算机的IP地址)。
  • 请求计算机接收到RARP响应数据包、获取被分配的IP地址后、使用该IP地址发送TCP/IP请求获取启动文件映射。

ARP欺骗

在局域网中,黑客经过收到ARP Request广播包,能够偷听到其它节点的 (IP, MAC) 地址, 黑客就伪装为A,告诉B (受害者) 一个假地址,使得B在发送给A 的数据包都被黑客截取,而B 浑然不知。

  • 利用ARP协议的缺陷
    ARP主机是不验证自己之前是否发送过ARP请求包的。只要接到ARP响应包、就更新缓存表。

参考资料

知乎--电脑是怎么通过ip找到对应的终端的?
图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
知乎--路由器中是否有arp缓存表? ?
百度知道--不同网段和同一网段的 ARP 解析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345