首页 > 编程知识 正文

无线通信模块组网(怎么从0开始学黑客)

时间:2023-05-04 02:22:27 阅读:87781 作者:1288

ARP/RARP协议

地址解析协议(ARP )地址解析协议是基于IP地址获取物理地址(MAC )的TCP/IP协议。 主机向网络上的所有主机广播ARP请求,包括目标IP地址,然后接受回复消息以确定目标物理地址。 收到回复消息后,将IP地址和物理地址保存在本地ARP缓存中,保留一段时间,然后在下一次请求时直接询问ARP缓存以节省资源。 )是不是不能很好地理解这句话呢? 下面用图解给你看。 然后,大家回来把这句话读了好几遍。

在同一局域网内,PC1需要与PC2进行通信时,PC1如何处理?

根据OSI数据的封装顺序,发送方自上而下(从APP应用层到物理层)封装和发送数据。 在此为PC1 ping PC2工艺例==

PC1封装数据并发送到外部时,上图中出现“failed”。 也就是说,数据封装失败。 为什么?

我们指示PC1 ' ping ' pc2,这是通知目标IP,此时PC1有通信所需的来源IP地址,但pc1还没有通信所需的目标MAC地址。 就像我们寄快递一样,我只知道他的名字(IP ),不知道他家的地址) MAC ),所以这个快递不能寄。

那么,现在PC1有PC2的IP地址信息,要获取PC2的MAC地址该怎么办呢? 此时,ARP协议会很有用。 我们接着上图,继续==

在这两个步骤中,我们发现PC1和PC2进行了一次ARP请求和回复过程。 通过这种交互工程,PC1拥有PC2的MAC地址信息。

接下来PC1怎么办? 实际进行通信之前,PC1将PC2的MAC信息放入本地的【ARP缓存表】中,表中放置了IP和MAC地址的映射信息,例如IP2-MAC2。 然后,PC1再次封装数据,正式进入PING通信。 如下所示==

总结:经过上述6个步骤的处理,PC1终于发送数据包,之后可以正常通信。 看到了吗? ARP的功能和实现过程就是这么简单。 它在发送方需要目标MAC地址时立即动手,以“一问一答”的方式获取特定IP对应的MAC地址,保存在本地【ARP缓存表】中,以后需要的话在这里找。

既然是“缓存”表,就具有时效性,如果电脑和通信设备重新启动,该表就会变空,也就是说,下次需要通信时,就需要进行ARP请求。 在windows/macos系统中,可以通过命令行“arp -a”查看具体信息。

ARP的广播请求单播响应

在上图中,整个局域网只有PC1和PC2两个主机,所以一问一答很流畅,但在实际网络中局域网中可能有很多主机。 PC1如何将这个【ARP请求包】顺利传递给PC2,PC2如何将【ARP响应包】顺利返回PC1? 其实原理是一样的,只是其中流程发生了变化。

在多主机环境中,PC1需要以太网的“广播”功能才能向PC2发送ARP请求包。 将请求包作为广播发送,当交换机或WiFi设备(无线路由器)接收到广播包时,将该数据发送到同一LAN上的所有其他主机。 (在网络传输中,向所有连接的节点发送消息称为广播的简单理解即可)

如果发现从PC1发送的请求广播包同时被其他主机接收,然后其他主机(PC2除外)接收后)没有询问自己,则废弃该请求广播包。 PC2在接收后,根据请求包中的信息(有自己的IP地址),判断为发给自己,所以不进行丢弃动作,返回ARP响应包。

(PC2返回ARP后返回数据包时,通过采用单播形式而不是广播形式,可以截断不必要的交互,增加带宽)

那么,如何处理ARP响应数据包呢? 简单来说,PC1要提交ARP请求,首先会有“自我介绍”,然后会有询问。 这样,PC2在收到请求后,可以将PC1的IP和MAC映射信息保存在本地的【ARP缓存表】中,既然知道PC1在哪里,就可以返回ARP单播响应包

ARP协议通过“一问一答”实现对话,但对“问”和“答”很讲究,而ARP协议是构建在网络上的各主机

互相信任的基础上的,这也导致了针对于ARP的攻击,很多渗透工具都是底层基于ARP原理进行实现的。


RARP(Reverse ARP)即反向ARP或者翻转ARP,顾名思义,它跟常规的ARP功能恰恰是相反的,ARP是实现IP到MAC地址的映射,而RARP是实现MAC到IP地址的映射。

什么样的设备或者场景需要用到RARP呢?其实RARP原先在设计的时候,是适用于大部分终端设备的,不仅仅是无盘工作站,它的功能就是根据MAC获取IP地址,功能跟DHCP是一样的。

例如,一个电脑刚接入网络,没有IP地址就无法上网,此时它便会通过本地MAC地址,对外发送RARP Request广播请求,看看局域网里面是否有RARP Server,若Server上面有关于此MAC地址的映射IP,则会向此电脑返回RARP Reply回应,电脑便获取了IP地址。

RARP通过非常精简的交互实现了IP地址的获取,但同时也暴露了一些问题:

①RARP Server必须提前将MAC和IP的映射静态绑定在本地;若没有提前绑定,则电脑用自己MAC询问时,Server也不会回应;

②RARP Server只能给电脑分配IP地址,不包括其他信息,包括网关、DNS等信息;

③RARP基于二层封装,只能运行在同一网段;每个网段分配地址,都需要一个RARP Server。

在RARP的基础上,后面又有了Bootp协议,直译过来便是"启动协议",功能同RARP,也是用于电脑接入网络时,用来获取IP地址的。但是毕竟做了增强,Bootp协议能让电脑启动时,不仅仅获取IP地址,而且能获取到网关地址,从而让电脑实现跨网段通信。

Bootp协议虽然让电脑能够获取到更多的信息,但是仍然没有解决最大的问题:

服务器仍然需要提前手工绑定MAC和IP地址,而对于现在的移动网络或者公共网络而言,这根本无法实现。

因为用户什么时候接入,接入的MAC是多少,管理员没法提前知道。这就有了后面的DHCP,DHCP通过动态分配的方式解决了这个诟病,并且通过DHCP中继技术实现了跨网段地址分配,实现了全网IP地址的统一管理。

小结:RARP是一种逝去的地址分配技术,是Bootp和DHCP的鼻祖,目前我们的电脑基本不会用到这个协议,只有部分无盘工作站等情况需要用到。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。