《《IP包格式详解》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《IP包格式详解》PPT课件.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、专题一专题一IPV4IPV4协议应用协议应用一、IP数据包格式l(1)头部+数据部分其中头部又包含一个20字节的定长部分和一个可选的变长部分.(一)头部组成1、vesion(版本)取值为:取值为:IPv4:4,IPv6:6。2、IHL(首部长度)可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时
2、可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。举例3、区分服务(DS)一共8个bit位,从左到右依次为PPPDTRCU,其中包含4个标志D,T,R,C(延迟,吞吐量,可靠性,最小费用)和一位保留位。PPP:表示IP封包的优先度D:若为0表示一般延迟,为1低延迟T:为0表示一般传输量,为1表示高传输量R:若为0表示为一般可靠度,为1高可靠度U:保留位,一般未使用4、总长度总长度:即首部即首部+数据部分的长度,它数据部分的长度,它是一个数值。单位是字节,总长度为是一个数值。单位是字节,总长度为1616位,最位,最长为:长为:2
3、 21616-1=65535-1=65535字节字节,实际上决定于实际上决定于MTUMTU(最大传输单元),对以太网为(最大传输单元),对以太网为15001500字节。字节。若包太长,超过了若包太长,超过了MTUMTU的值,则需要切割,即的值,则需要切割,即分片分片5、标识(Identification)的用途是让目标主机确定一个新的数据段属于哪个数据包,同一个数据报的分段有相同的标志值.当IP被重组时,每个来自同一笔数据的小IP就得要有个识别码以告知接收端这些小IP其实来自同一个封包才行。6、标志(Flags)l该地方的内容为0D*lDF:若为0表示可以分段,若为1表示不可分段lMF:若为0
4、表示此IP为最后分段,若为1表示非最后分段。7、分段偏移l表示目前这个IP分段在原始的IP封包中所占的位置,有点像序号,有这个序号才能将所有的小IP分段组合成为原本的IP封包大少8、TTL域,存活周期,是一个限制分组生存期的计数器.计数时间为秒,一共占8位,所以最大生存期为255(秒/点)通常为64。当他递减到0时,路由器给源主机发送一个警告分组,原分组被丢弃.这样可以避免数据报长时间存在网络中.TTL=8TTL=7TTL=69、协议类型IP内的号码协议名称1ICMP2IGMP3GGP4IP6TCP8EGP17UDP10、头部校验和,当数据到达时,头部所有的16位累加起来,再取结果的补码,其结
5、果应该为0.11、32位的源地址和32位的目标地址,12、选项IP首部的长度必须是4个字节的整数倍,如果选项长度不是4的整数倍,必须填充数据0。6、分片(、分片(Fragmentation)及重组及重组lMTU(Maximum Transfer Unit)MTU(Maximum Transfer Unit)MTU=1500MTU=1500MTU=1500MTU=1500MTU=576MTU=576IPIP包,长度为包,长度为768 DF=0768 DF=0X.25X.25或拨号线路或拨号线路以太网以太网思考:如思考:如DF=1DF=1,怎么办?,怎么办?分段数据(数据(14001400字节)字
6、节)分组头分组头MTU=620MTU=620字节字节分组头分组头分组头分组头分组头分组头数据(数据(600600字节)字节)数据(数据(600600字节)字节)数据数据200200字节字节段偏段偏移移=0=0段偏移段偏移=75=75段偏移段偏移=150=150分片实例分片实例选项都是以一个8位的选项开始的,每个选项由三部分组成:一个字节的选项码、一个字节的长度、多个字节所构成的选项数据,长度由前一部分决定。不同的选项码位的数字代表不同的意义,其代表意义如下:第0位代表:拷贝类(Copy)。用于控制网关对数据包分片时对本项的处理,“1”将本选项拷贝到所有的分片中;“0”仅将本选项拷贝第一个分片中
7、。第1、2位代表:选项类(OptionClass).第37位:目前定义了6种类型,其中如定义为00111代表记录路由,该选项让数据包把从源节点到目的节点所经过的各路由填上其IP地址.第讲 ARP和RARP应用回顾以太网数据包发送格式如下:回顾以太网数据包发送格式如下:在以太网中,上层运行的是IP协议,当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的。即下层传输地址使用MAC地址表示。我们使用SOCKET程序,只是关心IP地址。它们二者是怎样相对应呢?地址解析为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的
8、地址。(ARP和RARP)一:基本概念一:基本概念 ARP理论的基础是:每个网络接口有一个硬件地址(一个48bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但是,TCP/IP有自己的地址:32bit的IP地址。知道主机的IP地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bitIP地址和采用不同网络技术的硬件地址之间提供动态映射。ARP为IP地址到对应的硬件地址之间提供动态映射。这个过程一般应用程序会自动完成的,用户并不知道。RARP是被那些没有磁盘驱动器的系统使用,它需要系
9、统管理员进行手工设置。地址转换规程l当链路层要封装网络层分组时,当链路层要封装网络层分组时,它需要知道目的物理地址。它需要知道目的物理地址。l首先,每个主机都有ARP缓存,用来存放一些IP地址与MAC地址的对应关系。主机根据分组头上的目的IP地址查阅自己的ARP缓存,如果没查到,就用广播地址广播地址发送发送ARP请求请求。l被请求的IP地址所对应的主机返回一个ARP响应。l主机收到响应后,就可发送数据帧,并将该IP地址与MAC地址对存放在ARP缓存中。Proxy ARP 如果目的如果目的IPIP地址是子地址是子网外的,显然它不可能网外的,显然它不可能收到收到ARPARP请求,这时有请求,这时有
10、两种方案:两种方案:1.1.路由器有路由器有ARPARP代理功代理功能,它代理子网外能,它代理子网外的主机响应的主机响应ARPARP请求。请求。2.2.主机通过识别目的主机通过识别目的IPIP地址的网络号,地址的网络号,知道它是子网外的知道它是子网外的主机,直接发给缺主机,直接发给缺省路由器省路由器ROUTERROUTERStn.Stn.A AStn.Stn.B BStn.Stn.D DStn.Stn.C CMAC R1MAC R1NET N1NET N1MAC R2MAC R2NET N2NET N2Station B wants to send a frame to Station DSt
11、ation B wants to send a frame to Station DnOne Way Using Router with Proxy ARPOne Way Using Router with Proxy ARPnStation B Arps for Station DStation B Arps for Station DnRouter Proxy ARP responds with MAC address of R1Router Proxy ARP responds with MAC address of R1nStation B transmits frame with S
12、ourceMAC=MB,Station B transmits frame with SourceMAC=MB,SourceNetwork=N1B,DestinationMAC=R1,SourceNetwork=N1B,DestinationMAC=R1,DestinationNetwork=N2DDestinationNetwork=N2DnRouter forwards frame with SourceMAC=R2,Router forwards frame with SourceMAC=R2,SourceNetwork=N1B,DestinationMAC=MD,SourceNetwo
13、rk=N1B,DestinationMAC=MD,DestinationNetwork=N2DDestinationNetwork=N2DnSecond Way Station knows R1 is the designated Router for Second Way Station knows R1 is the designated Router for N2N2三:三:ARP的分组格式的分组格式 在以太网上解析IP地址时,ARP请求和回答分组的格式如图所示。(ARP可以用于其它类型的网络,可以解析IP地址以外的地址。紧跟着帧类型字段的前四个字段指定了最后四个字段的类型和长度。)以太
14、网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。2个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或回答来说,该字段的值为0 x0806。形容词hardware(硬件)和protocol(协议)用来描述ARP分组中的各个字段。例如,一个ARP请求分组询问协议地址(这里是IP地址)对应的硬件地址(这里是以太网地址)。硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为0 x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这
15、是有意设计的。接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或回答来说,它们的值分别为6和4。操作字段指出四种操作类型,它们是ARP请求(值为1),ARP回答(值为2),RARP请求(值为3),RARP回答(值为4)。这个字段必需的,因为ARP请求和ARP回答的帧类型字段值是相同的。接下来的四个字段是发送端的硬件地址(在本例中是以太网地址),发送端的协议地址(IP地址),目的端的硬件地址,目的端的协议地址。注意,这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。对于一个ARP
16、请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。物理帧头 DLC HeaderDLC Header字段字段长度长度(Byte)(Byte)默认值默认值备注备注接收方接收方MACMAC6 6广播时广播时,为为 ff-ff-ff-ff-ff-ff-ff-ffff-ff-ff-ff发送方发送方MACMAC6 6EthertypEthertype e2 20 x08060 x08060 x08060 x0806是是ARPARP帧的类帧的类型值型值
17、ARP帧的格式帧的格式字段字段长度长度(Byt(Byte)e)默认值默认值备注备注硬件类型硬件类型2 20 x10 x1以太网类型值以太网类型值上层协议类上层协议类型型2 20 x08000 x0800上层协议为上层协议为IPIP协议协议MACMAC地址长度地址长度1 10 x60 x6以太网以太网MACMAC地址长度为地址长度为 6 6IPIP地址长度地址长度1 10 x40 x4IPIP地址长度为地址长度为 4 4操作码操作码2 20 x10 x1表示表示ARPARP请求包请求包,0 x2,0 x2表示应答包表示应答包发送方发送方MACMAC6 6发送方发送方IPIP4 4接收方接收方MA
18、CMAC6 6接收方接收方IPIP4 4填充数据填充数据1818因为物理帧最小长度为因为物理帧最小长度为6464字节字节,前面的前面的4242字字节再加上节再加上4 4个个CRCCRC校验字节校验字节,还差还差1818个字节个字节ARP包的填充 l电脑MAC地址为aa-aa-aa-aa-aa-aa,IP为l我们想要查询的MAC地址,应该怎么来做呢?请求包DLC HeaderDLC Header字段字段长度长度(Byte)(Byte)填充值填充值接收方接收方MACMAC6 6ffffffffffffffffffffffff发送方发送方MACMAC6 6aaaaaaaaaaaaaaaaaaaaaa
19、aaEthertypeEthertype2 20 x08060 x0806 ARP FrameARP Frame字段字段长度长度(Byte)(Byte)填充值填充值硬件类型硬件类型2 21 1上层协议类型上层协议类型2 208000800MACMAC地址长度地址长度1 16 6IPIP地址长度地址长度1 14 4操作码操作码2 21 1发送方发送方MACMAC6 6aaaaaaaaaaaaaaaaaaaaaaaa发送方发送方IPIP4 4192.168.0.1192.168.0.1接收方接收方MACMAC6 6任意值任意值 xxxxxxxxxxxxxxxxxxxxxxxx接收方接收方IPIP4
20、 4192.168.0.99192.168.0.99填充数据填充数据18180 0响应包 DLC HeaderDLC Header字段字段长度长度(Byte)(Byte)填充值填充值接收方接收方MACMAC6 6bbbbbbbbbbbbbbbbbbbbbbbb发送方发送方MACMAC6 6aaaaaaaaaaaaaaaaaaaaaaaaEthertypeEthertype2 20 x08060 x0806ARP FrameARP Frame字段字段长度长度(Byte)(Byte)填充值填充值硬件类型硬件类型2 21 1上层协议类型上层协议类型2 208000800MACMAC地址长度地址长度1
21、 16 6IPIP地址长度地址长度1 14 4操作码操作码2 22 2发送方发送方MACMAC6 6aaaaaaaaaaaaaaaaaaaaaaaa发送方发送方IPIP4 4192.168.0.1192.168.0.1接收方接收方MACMAC6 6bbbbbbbbbbbbbbbbbbbbbbbb接收方接收方IPIP4 4192.168.0.99192.168.0.99填充数据填充数据18180 0四:四:ARP高速缓存高速缓存 ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。可以用arp命令来检查ARP高速缓存。参数-a的意思是显示高速缓存中所有的内容。ARP Utility五、五、RARP的分组格式的分组格式 RARP分组的格式与ARP分组基本一致。它们之间主要的差别是RARP请求或回答的帧类型代码为0 x8035,而且RARP请求的操作代码为3,回答操作代码为4。对应于ARP,RARP请求以广播方式传送,而RARP回答一般是单播(unicast)传送的。作业l程序实现一种ARP网络攻击。l设计一种ARP防御方法。
限制150内