《IP协议格式.ppt》由会员分享,可在线阅读,更多相关《IP协议格式.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、IP协议格式协议格式Maker:liwei因特网的核心协议是IP和TCP两大协议作用作用IPIP协议是协议是协议是协议是TCP/IPTCP/IP协议簇中的协议簇中的协议簇中的协议簇中的核心协议核心协议核心协议核心协议,提供数据传输的提供数据传输的提供数据传输的提供数据传输的最基本服务最基本服务最基本服务最基本服务,是实现网络互联的是实现网络互联的是实现网络互联的是实现网络互联的基本协议基本协议基本协议基本协议。位置位置IPIP协议协议协议协议位于网络层位于网络层位于网络层位于网络层,位于同一层次的协议还有,位于同一层次的协议还有,位于同一层次的协议还有,位于同一层次的协议还有下面的下面的下面的
2、下面的ARPARP和和和和RARPRARP以及以及以及以及上面的上面的上面的上面的因特网控制报文因特网控制报文因特网控制报文因特网控制报文协议协议协议协议ICMPICMP和因特网组管理协议和因特网组管理协议和因特网组管理协议和因特网组管理协议IGMPIGMP。(P44P44)关系关系ARPARP和和和和RARPRARP报文报文报文报文不被封装在不被封装在不被封装在不被封装在IPIP数据报中数据报中数据报中数据报中,而,而,而,而ICMPICMP和和和和IGMPIGMP的数据则要封装在的数据则要封装在的数据则要封装在的数据则要封装在IPIP数据报中数据报中数据报中数据报中进行传输。进行传输。进行
3、传输。进行传输。IP协议具有以下特点:协议具有以下特点:1是是点对点协议点对点协议进行数据传输时的对进行数据传输时的对等实体一定是相邻设等实体一定是相邻设备中的备中的对等实体对等实体提供提供无连接数据报无连接数据报服服务,各个数据报务,各个数据报独立独立传输传输,可能沿着不同可能沿着不同的路径到达目的地的路径到达目的地,也可能也可能不会按序到达不会按序到达目的地目的地。3不保证传输的可靠性不保证传输的可靠性不对数据进行不对数据进行差错校差错校验验和和跟踪跟踪,当数据报,当数据报发生损坏时发生损坏时不向发送不向发送方通告方通告,如果需要数,如果需要数据传输具有可靠性,据传输具有可靠性,TCP协议
4、协议加以保证加以保证。正因为正因为正因为正因为IPIP协议采用了尽力传输的思想,所以使得协议采用了尽力传输的思想,所以使得协议采用了尽力传输的思想,所以使得协议采用了尽力传输的思想,所以使得IPIP协议的协议的协议的协议的效率非常高效率非常高效率非常高效率非常高,实现起来也较,实现起来也较,实现起来也较,实现起来也较简单简单简单简单。IP IP层通过层通过层通过层通过IPIP地址地址地址地址实现了物理地址的统一实现了物理地址的统一;通过通过通过通过IPIP数据报数据报数据报数据报实现了物理数据帧的统一实现了物理数据帧的统一。IPIP层通过对以层通过对以层通过对以层通过对以上两个方面的统一达到了
5、上两个方面的统一达到了上两个方面的统一达到了上两个方面的统一达到了向上屏蔽底层差异向上屏蔽底层差异的目的。的目的。的目的。的目的。重点讨论重点讨论重点讨论重点讨论IP数据报的格式数据报的格式和和和和无连接数据报的传输无连接数据报的传输机制。机制。机制。机制。IP协议所处理的数据单元称为IP数据报固定部分可变部分04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报首部可变部
6、分首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报固定部分首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报固定部分可变部分首部048
7、16192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分版本占 4 bit,指IP协议的版本目前的 IP 协议版本号为 4(即 IPv4)首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分首部
8、长度首部长度占占 4 bit4 bit,可表示的最大数值是,可表示的最大数值是 15 15 个单位个单位(一一个单位为个单位为 4 4 字节字节)因此因此 IP IP 的首部长度的最大值是的首部长度的最大值是6060字节。字节。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分服务类型服务类型占占 8 bit,用来获得更好的服务,这个字,用来获得更好的服务,这个字段以前一直没有被人们使
9、用段以前一直没有被人们使用 服务类型规定对本数据报的处理方式优先级表示本数据报的重要程度(从0到7)越来越重要1D代表最小延迟2T代表最大吞吐率3R代表最高可靠性4C代表最低成本TOS协议D、T、R、C0000ICMP、BOOTP、DNS(TCP)Normal0001NNTPC0010IGP、SNMPR0100FTP(数据)、SMTP(数据)T1000Telnet、FTP(控制)、TFTPD服务类型服务类型DD、T T、R R、C C这这4 4个参数每次个参数每次只能设置其中的一个首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检
10、验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分总长度总长度占占 16 bit,指首部和数据之和的长度,单位为字节,因此数据,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为报的最大长度为 65535 字节。总长度必须不超过最大传送单元字节。总长度必须不超过最大传送单元 MTU。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DT
11、RC未用优 先 级数 据 部 分比特固定部分可变部分标识标识(identification)占占 16 bit,它是一个计数器,用,它是一个计数器,用来产生数据报的标识来产生数据报的标识。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分标志(flag)占 3 bit,后2位有意义MF:MF=1表示后面还有分片,为零表示最后一个DF:不能分片。只有当DF=0时才允许分片。首部04816
12、192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分片偏移片偏移(12 bit)指出:较长的分组在指出:较长的分组在分片后分片后某片某片在原分组中的相对位在原分组中的相对位置置。片偏移以。片偏移以 8 个字节个字节为偏移单位。为偏移单位。偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片 1首部数据
13、部分共 3800 字节首部 1首部 2首部 3字节 0数据报片 2数据报片 314002800字节 0IP 数据报分片的举例数据报分片的举例首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分生存时间生存时间(8 bit)记为记为 TTL(Time To Live)数据报在网络中的寿命,其单位为秒。数据报在网络中的寿命,其单位为秒。首部04816192431版 本标志生 存 时 间协 议
14、标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分协议协议(8 bit)字段指出此字段指出此数据报携带的数据使用何种协议数据报携带的数据使用何种协议以便目的主机的以便目的主机的 IP 层将数据部分上交给哪个处理过程层将数据部分上交给哪个处理过程运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据部分交给哪一个进程协议名协议名ICMPIGMPTCPEGPIGPUDPIPv6OSPF协议字段值协议字
15、段值首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分首部检验和首部检验和(16 bit)字段只检验数据报的首部字段只检验数据报的首部不包括数据部分不包括数据部分。这。这里里不采用不采用 CRC 检验码检验码而采用简单的计算方法而采用简单的计算方法发送端接收端16 bit字 116 bit字 2置为全 0检验和16 bit字 n16 bit算术运算求和取反码数据报首部IP 数据报16
16、bit检验和16 bit字 116 bit字 216 bit检验和16 bit字 n16 bit算术运算求和16 bit结果取反码数据部分若结果为 0,则保留;否则,丢弃该数据报数据部分不参与检验和的计算首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分源地址和目的地址都各占 4 字节首部校验IP层不对数据进行校验。原因:上层传输层是端到端的协议,进行端到端的校验比进行点到点的校验开销
17、小得多,在通信线路较好的情况下尤其如此。另外,上层协议可以根据对于数据可靠性的要求,选择进行校验或不进行校验,甚至可以考虑采用不同的校验方法,这给系统带来很大的灵活性。IP协议对IP数据报首部进行校验。原因:IP首部首部属于属于IP层协议层协议的内容,不可能由上层协议处理。的内容,不可能由上层协议处理。IP首部中的部分字段在点到点的传递过程中是不断首部中的部分字段在点到点的传递过程中是不断变变化化的,只能在每个中间点的,只能在每个中间点重新形成校验重新形成校验数据,在相邻数据,在相邻点之间完成校验。点之间完成校验。 IP数据报的首部通过校验和(Checksum)来保证其正确性。两个层次的校验计
18、算首部校验和USHORT checksum(USHORT*buffer,int size)unsigned long cksum=0;while(size 1)cksum+=*buffer+;size-=sizeof(USHORT);if(size)cksum+=*(UCHAR*)buffer;cksum=(cksum 16)+(cksum&0 xffff);cksum+=(cksum 16);return(USHORT)(cksum);v发送方用1的补码计算和数时,首部校验和字段被设置为0,等于没有参加计算,求补后的校验和与和数各位正好相反。v接收方用1的补码计算和数时,新的首部校验和字段已
19、经被加入,正确情况下所得的和数应该为0 xffff,因此,求补后的结果应该为0 x0000。v例子:本例中没有IP选项,所以首部长度为5,数据总长度为128字节,数据报的标识为1,未分片,TTL值为4,封装的是TCP协议数据,源地址和目的地址分别为:192.168.20.86和192.168.21.20。v计算中要注意加上进位。生成的校验和为3005。v接收方对同一数据报首部进行校验:求补后得到的校验和值为0,表明IP数据报首部在传输过程中没有出现差错。数据分片与重组 vIP数据报在从信源到信宿的传输过程中要穿过多个不同的网络。由于各种物理网络存在着差异,对帧的最大长度有不同的规定,因此,各个
20、物理网络的最大传输单元MTU可能不同。物理网络的MTU是由硬件决定的。v通常,网络的速度越高,MTU也就越大。vTCP/IP协议的封装:将数据报以从信源到信宿路径上的将数据报以从信源到信宿路径上的最小最小MTU进进行封装行封装将数据报先以信源网络的将数据报先以信源网络的MTU进行封装,在传进行封装,在传输过程中再根据需要对数据报进行输过程中再根据需要对数据报进行动态分片动态分片1数据报分片v当数据报被分片时,每个分片都会得到一个首部。分片首部的大部分内容和原数据报相同,如IP地址、版本号、协议和数据报标识等,所不同的是标志字段、数据报总长度和片偏移。分片既可以带也可以不带原数据报的选项.v在I
21、P数据报中与分片相关的字段是标识字段、标志字段和片偏移字段。1)数据报标识是分片所属数据报的关键信息,是分片重组的依据。 2)标志字段由3位构成,低两位有效,最高位未用;D位表示是否允许该数据报分片;M位表示该片是否是分片的最后一片。3)片偏移字段指出本片数据在原始数据报数据区中的偏移量。由于各分片独立传输,其到达信宿机的顺序无法保证,需要片偏移为重组提供顺序信息。一个例子一个例子 2分片的重组v分片可以在信源机或传输路径上的任何一台路由器上进行,而分片的重组只能在信宿机上进行。v信宿机在进行分片的重组时,采用了一组重组定时器。开始重组时,启动定时器,如果重组定时器超时时,仍然未能完成重组(由
22、于某些分片未及时到达信宿机),信宿机的IP层将丢弃该数据报,并产生一个超时错误,报告给信源机。v片重组的控制主要根据数据报首部中的标识、标志和片偏移字段。v数据报的分片和重组操作对用户和应用程序的编程人员都是透明的,分片和重组操作由网络操作系统自动完成IP数据报选项vIP选项是IP数据报首部中的变长部分v用于网络控制和测试目的(如源路由、记录路由、时间戳等)。vIP选项的最大长度不能超过40字节。vIP选项在使用时是可选的,但在TCP/IP软件的实现中却是必须有的,也就是说所有的IP协议都具有IP选项的处理功能。选项格式IP选项的格式如图5-10所示。选项由三个部分组成选项码选项码(Optio
23、n Code)选项长度选项长度选项数据。选项数据。v选项码由8位构成,分为复制位(COPY)、选项类和选项号3个子字段。复制位复制位占一比特,用于控制分片时是否将选项复制到各个分片。复占一比特,用于控制分片时是否将选项复制到各个分片。复制位为制位为“1”时,表示将原数据报所带的选项复制到所有的分片中,时,表示将原数据报所带的选项复制到所有的分片中,复制位为复制位为“0”时,表示仅将选项复制到第一个分片中。时,表示仅将选项复制到第一个分片中。选项类选项类占占2比特,用于定义选项的一般作用。比特,用于定义选项的一般作用。选项号选项号占占5比特,用于定义选项的具体类型。选项类区别选项的一比特,用于定
24、义选项的具体类型。选项类区别选项的一般目的,而选项号则对同一类选项进行进一步的细化。般目的,而选项号则对同一类选项进行进一步的细化。v选项长度为8位,用于定义选项的长度。长度信息除包括选项数据部分的长度外还包括选项码和长度字段本身。有些选项不含长度字段。v选项数据不定长,用于定义选项请求。选项是单方向发送,不需要信宿机进行响应。选项类型v两位IP选项类定义了四种选项类型:00用于IP数据报路径的控制和测试;10用于时间戳的测试;01类和11类未用。v每一选项类又由选项号进行细分,其中00类中常用的有5个选项号,10类中只有1个选项号在用。选项类选项号长度 含义 0000000无选项结束 000
25、0001无无操作(作为填充数据)0000011 变长宽松源路由 0000111 变长记录路径 0001001变长严格源路由 1000100变长时间戳单字节选项表中的前面两个选项为单字节选项,负责标识IP选项的结束和对IP数据报首部进行填充。当IP数据报首部中选用了IP选项时,选项不定长,而数据报要求首部是32位的整数倍,若不是,则需要进行填充。填充由“无操作”(No Operation)符和选项结束符(End of Option)组成。当需要一个以上的字节对选项进行填充时,先用多个“无操作”符进行填充,最后用选项结束符结束整个选项。源路由选项v作用:通常IP数据报在传输时,由路由器自动为其选择
26、路由。但网络管理人员为了使数据报绕开出错网络,或者为了对某特定网络的吞吐率进行测试,需要在信源机控制IP数据报的传输路径。源路由(Source Route)就是为了满足这一要求而设计的选项。v方法:源路由指由信源机上的发送者规定本数据报穿越网络的路径。v种类:源路由选项分为两种。严格源路由严格源路由宽松源路由宽松源路由(1)严格源路由v严格源路由选项要求信源机上的发送者指定数据报必须经过的每一个路由器。也就是说,数据报必须严格按照发送方规定的路径穿过每一个路由器。严格源路由选项的格式如图所示。v选项码137的含义是:复制位为“1”(严格源路由分片时选项要复制到各个分片),选项类为“00”,选项
27、号为“01001”,即128+0+9=137。v指针字段的含义:当设备(信源机或路由器)当设备(信源机或路由器)发出带该选项的数据报时,指针指带该选项的数据报时,指针指的是该设备的的是该设备的下下跳路由器的入口IP地址。当一个路由器当一个路由器收到数据报时,指针指的是该路由器的数据报时,指针指的是该路由器的下一跳IP地址,路由器转发数据报前要将指针值加,路由器转发数据报前要将指针值加4,这样发出去的,这样发出去的数据报的指针又指向了它的下下跳路由器的入口数据报的指针又指向了它的下下跳路由器的入口IP地址。地址。v这里要注意的是,源路由对于数据报中目的IP地址的处理和一般情况下有所不同。在源路由
28、传输过程中数据报的目的IP地址会不断变化,而且选项中的IP地址表也会发生变化信源机从上层收到源路由IP地址表后,将第一个IP地址从列表中去掉(将该IP地址作为当前数据报的目的地址),再将剩余的表项前移,然后将最终要去的目的地址写入到选项地址表的最后。结果如图5-12中的A选项表所示。宽松源路由v宽松源路由IP选项的格式与严格源路由相同,如图所示。所不同的是,宽松源路由在选项的IP地址表中并不给出一条完备的路径,而是只给出路径中的某些关键点,关键点之间无直接物理连接时,通过路由器的自动路由选择功能进行补充。3记录路由v记录路由选项用于记录IP数据报从信源机到信宿机所经过路径上各路由器的IP地址。
29、记录路由选项格式与源路由选项格式相同,如图所示。v地址区域的大小由源机预先分配(根据对所需记录的地址数的估计)并初始化。v指针域指向地址区域中下一个可存放地址的位置。假如预先分配的地址区域大小不足以记录下全部路径,IP软件将放弃记录余下地址的尝试。4时间戳v时间戳选项用于记录IP数据报经过各路由器时的当地时间,根据时间戳可以估算IP数据报从一个路由器到另一个路由器所花费的时间,从而帮助分析网络的吞吐率和负载情况。时间戳选项格式与源路由选项格式类似,如图5-15所示。(0+64(10)+4=68)v溢出域记录因信源机分配的数据空间不够而未能记录下来的时戳个数。v标志域用于控制时戳选项格式。其意义
30、如下:标志值 意 义 0 只记录时间,不记录IP地址 1 时间、地址同时记录 3 地址由源机指定,只记录指定地址处的时间v时戳中的时间采用世界时间(universal time)表示,以千分之一秒为单位。v注意:1)假如采用标志值为“1”的时戳,该选项可以用于替代记录路径选项。2)由于互联网中各网关时钟并不严格同步,时戳只能作为参考。IP模块的结构IP协议的主要功能包括将上层传来的数据封装成IP数据报,对数据报进行分片和重组,处理数据环回、IP选项、校验码和TTL值,进行路由选择等本章要点vIP是不可靠的无连接数据报协议,提供尽力而为的传输服务。vIP层通过IP地址实现了物理地址的统一,通过I
31、P数据报实现了物理数据帧的统一。IP层通过这两个方面的统一屏蔽了底层的差异,向上层提供了统一的服务。vIP数据报由首部和数据两部分构成。首部分为定长部分和变长部分。选项是数据报首部的变长部分。定长部分20字节,选项不超过40字节。vIP数据报中首部长度以32位字为单位,数据报总长度以字节为单位,片偏移以8字节(64比特)为单位。数据报中的数据长度=数据报总长度首部长度4。vIP协议支持动态分片,控制分片和重组的字段是标识、标志和片偏移,影响分片的因素是网络的最大传输单元MTU,MTU是物理网络帧可以封装的最大数据字节数。通常不同协议的物理网络具有不同的MTU。分片的重组只能在信宿机进行。v生存时间TTL是IP数据报在网络上传输时可以生存的最大时间,每经过一个路由器,数据报的TTL值减1。vIP数据报只对首部进行校验,不对数据进行校验。vIP选项用于网络控制和测试,重要包括严格源路由、宽松源路由、记录路由和时间戳。vIP协议的主要功能包括封装IP数据报,对数据报进行分片和重组,处理数据环回、IP选项、校验码和TTL值,进行路由选择等。
限制150内