音乐网站制作策划书,网站建设公司的服务公司,长春搜索排名提升,可不可以用p2p做视频网站ARP的定义
地址解析协议(Address Resolution Protocol#xff0c;ARP)#xff1a;ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说#xff0c;所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv4协议ARP)ARP协议可以将IPv4地址(一种逻辑地址)转换为各种网络所需的硬件地址(一种物理地址)。换句话说所谓的地址解析的目标就是发现逻辑地址与物理地址的映射关系。 ARP仅用于IPv4协议IPv6使用邻居发现协议(NDP)替代。 ARP协议目前最广泛应用于寻找32位IPv4地址与以太网的48位MAC地址之间的映射。
ARP --地址解析协议 通过对端的一种地址来获取对端另一种地址
AARP 正向ARP -- 已知同一网段的ip地址通过广播来获取该ip对应的MAC地址
反向ARP --- 已知对端的MAC地址获取本地的ip地址
FARP -- 无故ARP 使用AARP来查询本地的ip地址 --- 用于ip地址的冲突检测 重复或地址冲突检测手动配置/DHCP获取到IP地址后首先发一个无故ARP检查网络中是否有地址与自己的冲突如果没有接收到回复该地址才能正常使用
二级地址物理地址和逻辑地址
物理地址制造商给定的永久的将其存储在设备永久性内存中是网络适配器的ID相当于身份证注意物理地址是和网络适配器绑定的如果主机更换了网络适配器那么它的物理地址也会相应改变。-----使用在tcp/ip分层中的数据链路层和物理层
逻辑地址IP地址由软件实现不固定通常从某个网络的IP地址池中获取若改变网络环境IP地址也会发生变化。-------使用在网络层、传输层和应用层 为什么使用IP地址
IP地址有良好的分层。如果分组转发到同一子网只需要在路由表中记录统一的网络前缀。比如一个子网有6000个IP地址对应6000个物理地址。记录IP地址网络前缀只需要1行记录物理地址则需要6000行所以IP地址能够大大节省路由器资源提高工作效率。
ARP工作原理
ARP协议主要依赖ARP高速缓存(ARP cache)。ARP高速缓存就是一个映射表它记录了IP地址和物理地址的映射关系。每一台主机和路由器都设有ARP高速缓存在实际传输中通常已知下一跳的目的IP地址通过查询ARP高速缓存即可知道对应的物理地址。
如何建立ARP高速缓存----------广播ARP请求分组
ARP请求分组有3个重要信息1.源IP地址。2.对应的源物理地址。3.目的IP地址。 查询的内容为对应的目的物理地址。 以下是具体步骤
一、源主机或者路由器会给该网络的所有主机发送ARP请求分组(也就是给这个网络广播该分组)所有主机会检查分组的目的IP地址是否与自身的IP地址相同。如果不相同就丢弃该分组如果相同就说明自己就是被寻找的目的主机或者路由器。
二、目的主机(或目的路由器)在收到ARP请求分组后会做两件事 1.将源主机的IP地址和对应的物理地址添加进自身的ARP高速缓存映射表。 这是因为既然源主机会和自己通信那么自己之后也可能会主动和源主机通信提前建立源主机的映射表项是有必要的之后自己要主动和源主机通信就不用广播ARP请求分组了。 2.给源主机发送ARP响应报文(注意该报文是单播的----因为目的主机已经由源主机的物理地址可以直接给源主机发对应帧) 目的主机需要给源主机发送ARP响应报文告知源主机自己的物理地址。源主机在收到所需的ARP响应报文就可以发送帧给目的主机了。 为什么是单播而不是广播呢那是因为目的主机已经有源主机的物理地址了可以直接给源主机发送对应的帧不需要广播。
三、当源主机接收到ARP响应报文后也会将目的主机的IP地址和对应的物理地址添加到自己的ARP高速缓存映射表中这样下次再和该主机通信就不用广播ARP分组了。之后就可以通过物理地址给目的主机发送帧了。
ARP协议是在单个网络内部运行的。如果源主机和目的主机不在一个网络中必须多次使用ARP协议。无论情况多复杂都是由以下4种情况组合而成的。
如果源主机和目的主机在一个网络中这就很简单源主机直接通过ARP协议寻找目的主机的物理地址。也就是情况1源主机直接通过ARP协议寻找同一个网络下目的主机的物理地址。
如果源主机和目的主机不在一个网络中就必须通过路由器路由。通过查找路由表将目的主机的IP地址转换为下一跳的IP地址。再通过ARP协议将下一跳的IP地址转换为对应的物理地址。 细分有3种情况 情况2源主机寻找下一跳路由器的物理地址。 情况3路由器寻找在同一个网络中的目的主机的物理地址。 情况4路由器和目的主机不在同一个网络中路由器A寻找下一条路由器B的物理地址。
高速缓存的生存周期
ARP高速缓存是动态的而且缓存记录的映射项有生存周期一般默认是20分钟。超过生存周期那条映射就会从映射表中移除。 为什么需要设置生存周期呢 是因为物理地址和IP地址都可能改变。比如目的主机更换了网络适配器那么目的主机的物理地址就改变了。 如果源主机通过查看ARP映射表得到了目的主机以前的物理地址肯定是无法正常通信的。但随着该表项生存周期到时源主机会重新广播ARP请求分组这样就可以得到目的主机新的物理地址。从而和目的主机正常通信。
ARP报文格式 硬件类型该字段有16bit。指定运行ARP协议的物理网络类型ARP协议可以运行在任何物理网络上。以太网是类型1。 协议类型该字段有16bit。指定高层协议的类型。ARP可用于任何高层协议。IPv4协议的值为0x0800。 硬件长度该字段有8bit。定义物理地址的长度以字节为单位。对于以太网该值为6字节。 协议长度该字段有8bit。定义逻辑地址的长度以字节为单位。对于IPv4该值为4字节。 操作该字段有16bit。用于定义分组类型目前常用2种。ARP请求分组和ARP响应分组。 发送方硬件地址记录发送方的物理地址。 发送方协议地址记录发送方的逻辑地址。 接收方硬件地址如果是ARP请求报文由于不知道接收方的物理地址(请求报文就是通过广播询问接收方物理地址当然事先不知道)该字段全部填充为0。 接收方协议地址记录接收方的逻辑地址。
封装ARP协议
ARP协议是很特殊的协议它像是介于网络层和链路层之间的协议。 ARP协议是封装在帧中的就像IPv4协议封装在以太网帧一样从这个角度讲ARP协议像网络层协议。 但是ARP协议是为网络层协议服务的从服务的角度讲它又像链路层协议。
实际中ARP协议常封装在以太网帧中。 当广播ARP请求分组时该网络中的所有主机都会从以太网帧中提取出ARP协议分组检查接收方协议地址字段如果和自身IP地址不相同就丢弃该分组。如果相同说明自身的物理地址就是被寻找的地址。就需要给发送方回复ARP响应分组(通过单播)。 ARP的响应报文会将发送方硬件地址字段和发送方协议地址字段填写成自身的物理地址和IP地址。将接收方硬件地址和接收方协议地址填写为ARP请求报文的发送方硬件地址和发送方协议地址。
抓包分析
抓取ARP请求报文 从上图可知ARP协议被封装在Ethernet协议(以太网协议)中。
我们先看Ethernet II部分 Destination(目的物理地址)字段的值为ff:ff:ff:ff:ff:ff 说明该以太网帧是广播帧和ARP请求分组是通过广播形式发送吻合。
Source(源物理地址)字段的值为:50:eb:f6:56:ca:57 这是发送方主机的物理地址和ARP协议的Sender MAC address字段的值完全吻合。
Type字段为ARP(0x0806)。 说明该以太网帧封装的是一个ARP协议分组。
再看ARP协议部分 前4个字段表明物理地址和逻辑地址的类型和长度和之前讲解的吻合。
第五个字段Opcode的值为1说明是ARP请求报文。
后面4个字段是源物理地址和IP地址以及目标物理地址和IP地址。 值得注意的是目标物理地址正如之前所说全部填充的0。因为该字段正是ARP请求报文需要获取的目前不知只能全部填充为0。
查看ARP高速缓存 在windows系统的终端输入arp -a命令可以显示ARP缓存中的所有条目。
静态映射与动态映射
可以看到ARP高速缓存中有的是静态映射有的是动态映射。
通过ARP协议动态配置的表项就是动态映射。发送方检查ARP缓存如果没找到所需物理地址就发送ARP请求报文并得到ARP响应报文。之后再将对应的映射添加到ARP映射表上。这种方式得到的映射表项就是动态映射。
通过手动方式添加的表项就是静态映射。这种方式添加的表项比较死板因为对应的映射关系不一定固定不变。但是静态映射更加安全不会被攻击者通过ARP请求响应报文添加错误的映射关系。