首页 > 编程知识 正文

arp协议特点,dns数据包

时间:2023-05-04 08:51:56 阅读:137753 作者:1005

另一方面,ARP协议1 .概要地址解析协议是基于IP地址来获取物理地址的TCP/IP协议。 主机发送信息时,将包含地址IP地址的ARP请求广播给局域网上的所有主机,通过接收回复信息来指定地址的物理地址,接收到信息后,将该IP地址和物理地址用ARP密钥进行发送

ARP或地址解析协议在从IP地址到MAC地址的映射中,也就是在查询与目的地对应的MAC地址的网络通信中,主机与主机通信的数据包按照OSI模型从上到下进行数据封装。 在局域网通信中,不仅需要目的地IP地址的封装,而且通常需要目的地MAC的封装。 由于上层APP已经成熟,开始关注IP地址而不是MAC地址,需要通过ARP协议知道目标主机的MAC地址,完成数据封装2.ARP原理的请求响应,这里假设局域网中只有两台主机

当主机1需要与主机2通信时,根据OSI数据封装顺序,发送器将数据封装并自顶向下(从APP应用层到物理层)发送,指示主机1 ping“ip2”。 由此,通知了目标IP,主机1中有通信所需的发送源IP地址,但主机1中还没有通信所需的目标MAC地址。 通过上述步骤,主机1和主机2执行一次ARP请求和响应过程,在该交互过程中,主机1具备主机2的MAC地址信息,并且在实际进行通信之前,主机1将主机2的MAC信息放入本地ARP缓存表中

小结:

经过以上步骤,主机1终于可以发送包,然后进行正常的通信。 ARP的功能和实现流程为:发送方需要目标MAC地址时立即出手,采用“一问一答”的方式获取与特定IP对应的MAC地址,保存到本地ARP缓存表中,以后根据需要在此进行查找

3.ARP缓存表每个主机或柳侯维护一个ARP缓存表,该表包含IP地址和MAC地址之间的映射关系。 该表记录有IP地址、MAC地址至ARP表项目,在需要发送数据时,主机基于数据报内的目标IP地址信息检索对应的MAC地址,最后经由网卡生命周期到了的话会从缓存表中被删除。 这些寿命可以任意设定,默认为10分钟。 具有时效性,当计算机或通信设备重新启动时,此表将为空。 这意味着下次需要通信时,需要进行ARP请求

4 .在要求单播响应的实际网络中,一个LAN可能有几十、上百台主机。 那么,在多主机环境中,主机1当前发送的ARP请求包如何传递到主机2手中?

在这种情况下,ARP协议必须使用以太网的'广播'功能:通过广播发送请求包。 当交换机或wifi装置(无线路由器)接收到广播包时,此数据将被发送到同一局域网中的所有其它主机,主机1发送的请求广播包将同时被其它主机接收。 在主机3和主机4接收到之后(注意到不是自己),另一方面,主机2在接收到请求分组中的信息(具有自己的IP地址)判断为是发送给自己的,并且不执行丢弃操作,而是发送回ARP响应分组。 ARP请求时通过广播来实现,但主机2返回ARP应答包,不需要通过广播来实现。大部分网络协议在设计的时候,都需要保持极度克制,不需要的交互就砍掉,能合并的信息就合并,能不用广播就用单播,以此让带宽变得更多,让网络变得更快

那么,如何处理ARP响应数据包? ARP请求包的完整信息是:我的IP地址是IP1,MAC地址是MAC2。 谁是主机2,你的IP2对应的MAC地址是什么? 简单来说,ARP请求首先有“自我介绍”,然后才是咨询。 在这种情况下,主机2可以在收到请求后将主机1的IP和MAC映射信息存储在本地ARP中

总结:ARP协议以“一问一答”实现交互,“问”以广播形式实现,“答”以单播形式实现

5 .什么是广播? 大多数广播数据包具有共同的特征。 对于:双层封装,所需的MAC均为f(ffff.ffff.ffff )或对于三层封装,所需的IP均为1 ) 255.255.255.255。 这样,就可以容易地记住:目的地址最大。 那就是广播

6 .从ARP是数据链路层还是网络层来看,其功能是最终获取MAC信息并为数据链路层提供服务来看,ARP是一种数据链路层协议,但从层次上看,ARP是基于以太网协议的

总的来说:按照功能来考虑,ARP是数据链路层协议,以及根据分层/封装来考虑,ARP是网络层协议

7.ARP缓存表超时处理ARP表项的生存时间通常为5-10分钟,但ARP请求的等待时间为秒。 当这些时间到来时,更新ARP表项,如果在数据链路层无法连接,则删除该表项。 因此,每次安装协议栈时,都必须维持定时器(超时机构)来管理ARP缓存表

8.ARP消息ARP的请求和应答均依赖于ARP消息结构来进行,ARP消息放入以太网数据帧中发送

封装在以太网帧中的格式:

最初只能通过广播发送ARP请求包,因为在创建ARP表之前,主机不知道目标MAC地址

,处于同一局域网的主机都能接收到广播的数据包。所以一开始目标MAC地址是FF-FF-FF-FF-FF-FF,而以太网首部的帧类型是有多种,对于ARP数据包来说,其值为0x0806,对于IP数据报来说,其值为0x0800。
在ARP首部一开始的2个字节存储的是硬件类型,表示要知道目标网卡的硬件类型,其中,值为1表示以太网地址;接下来还有2字节的协议类型,其中,0x0800表示IP协议,其他还可能是ICMP/IGMP协议等;接下来有1个字节表示硬件地址长度,指出该报文中硬件地址的长度,对于以太网硬件类型,它的值为6;还有1字节的协议地址长度,如果是ARP协议、IP协议等,该值为4;ARP首部最后的op字段用于记录ARP操作的类型,分别是:

ARP请求,其值为1。ARP应答,其值为2。RARP请求,其值为3。RARP应答,其值为4。

我们只关心ARP的请求与应答即可,RARP是逆地址解析协议,在这里我们就不用去了解,它在网络中基本已经被淘汰,用于主机在启动的时候获得自己的IP地址。
对于ARP首部后面的四个字段分别是源MAC地址、源IP地址、目标MAC地址、目标IP地址,这些就是比较简单的了。

9.ARP映射方式

(1)静态映射
手动创建一张ARP表,把IP地址和MAC地址关联起来,这个ARP表存储在网络中的每一台主机上,这样有一定的局限性,因为物理地址可能发生变化:

机器可能更换lmdqq(网络适配器),这时MAC地址就发生了变化在某些局域网中,每当计算机加电时,它的物理地址都要改变一次移动电脑可以从一个物理网络转移到另一个物理网络,这时MAC地址就会变化

要避免这些问题出现,必须定期更新ARP表,比较麻烦而且会影响网络性能
(2)动态映射
每次只要机器知道另一台机器的IP地址,就可以使用协议找出相对应的MAC地址,ARP和RARP都实现了动态映射

ARP:把IP地址映射为MAC地址RARP:把MAC地址映射为IP地址 10.如何查看ARP缓存表

在命令提示符下输入"arp-a"

二.RARP协议 1.概述:

RARP即反向地址转换协议,允许局域网的主机 从网关服务器的ARP表或缓存上请求IP地址

2.工作流程 主机发送一个本地RARP广播,在广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址本地网段的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址如果存在,RARP服务器就给源主机发送一个相应数据包,并将IP地址提供给对方主机使用如果不存在,RARP服务器对此不作任何响应源主机收到从RARP服务的响应信息,就利用的得到的IP地址进行通信,如果一直没收到RARP服务器的响应信息,表示初始化失败 三.IP协议 1.概述

IP(Internet Protocol,互联网协议)主要用于互联网通信,IP协议用于将多个包交换网络连接起来,他在原地址和目的地址之间传输数据报,还提供对数据大小的重新组装功能,以适应不同网络的要求,IP协议是TCP/IP协议族的核心协议,最常用的IP协议版本号是4,即IPV4,它的下一个版本就是IPV6

2.IP协议报文格式


(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。

(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务 占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。

(4)总长度 总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

(5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag) 占3位,但目前只有2位有意义。
● 标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个
● 标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

(7)片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

(8)生存时间 占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。

(9)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10)首部检验和 占16位。当收到一份IP数据包后,同样对首部的每个16位进行反码求和。由于接收方在计算过程中包含了发送发在首部中的校验和,如果传输过程中没有差错,计算结果应全为1,不是全1,即检验和错误,那么就丢弃收到的数据报,但不生成差错报文,由上层发现丢失的数据报并进行重传。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

四.DNS协议 1.概述

DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为对应的域名地址),IP地址是面向主机的,域名则是面向用户的

2.DNS系统 一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系如果新计算机接入网络,将这个信息注册到数据库中用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址 3.域名的层次结构 每一个域名都是一个标号序列,用字母(A-Z,a-z,大小写等价),数字(0-9),和连接符(-)组成标号序列总长度不能超过255个字符,它由点号分割成一个个的标号每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名级别最低的域名写在左边,级别最高的域名写在右边域名服务主要是基于UDP实现的,服务器的端口是53
2.域名的分级

3.域名解析过程 输入域名后,先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据如果没有,就向上级域名服务器进行查找,以此类推最多回溯到根域名服务器,肯定能找到这个域名的IP地址域名服务器自身也会进行一些缓存,把曾经访问过的域名和对应的IP地址缓存起来,可以加速查找过程

具体可描述如下:

主机先向本地域名服务器进行递归查询本地域名服务器采用迭代查询,向一个根域名服务器进行查询根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址本地域名服务器向顶级域名服务器进行查询顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址本地域名服务器向权限服务器进行查询权限服务器告诉本地域名服务器所查询的主机的IP地址本地域名服务器最后把结果告诉主机

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