您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 第4章互联网协议IP
第4章互联网协议IP要求:1、掌握IP协议的特点2、掌握IP数据报的格式3、掌握IP数据报分片及重组机制4、了解IP选项的使用5、掌握IP数据报选路的原理及算法6、掌握路由表的一般形式及默认路由的概念7、掌握IP软件对IP数据报的处理4.1IP层的地位与特点1.IP层的地位IP层是通信子网的最高层,提供无连接的数据报传输机制。目的是屏蔽底层物理网络细节,向上提供一致性。以太网帧令牌环帧IP数据报传输协议分组2.IP层的特点不可靠:分组可能丢失,乱序等,不做确认;无连接:每个分组都独立对待;尽力投递:不随意放弃分组;点到点。点到点和端到端应用层传输层IP层物理接口层硬件层端到端点到点网络1网络2网络3主机1主机2路由器1路由器2应用层传输层IP层网络接口层应用层传输层IP层网络接口层网络1网络2网络3IP层网络接口层IP层网络接口层端到端端到端点到点点到点点到点点到点点到点点到点点到点无连接交付服务提供了一个其它一切赖以存在的基础。端到端可靠的传输服务提供了应用所依赖的更高层平台。点到点不可靠无连接分组投递服务端到端可靠传输服务应用服务点到点:对等实体间的通信由一段一段的直接相连机器间的通信组成。端到端:对等实体间的通信象拥有一条直接线路,而不管中间要经过多少通信节点。3.互联网服务的三个概念层次IPTCP4.IP层的主要功能(1)无连接数据报的投递(数据结构,静态特性)(2)数据报寻径(选路,操作特性)(3)差错与报文控制(管理特性)4.2IP数据报1.数据报一般格式首部数据区20字节固定部分0-40字节选项总长度:(首部+数据区),单字节计数,最大长度216-1=65535字节;首部长度:4字节计数,最大长度24-1=15,即15*4=60字节。2.数据格式(数据结构)版本头长服务类型总长度标识符分片偏移标志TTL协议首部校验和源IP地址目的IP地址IP选项(可选)填充数据……(1)校验和(首部)计算步骤:(1)16比特分组;(2)校验和清‘0’(3)求所有16比特之和(4)把求得的和模216-1(5)在(4)的基础上求二进制反码校验步骤:同计算步骤的前4步,结果为‘0’时正确。(2)寿命字段TTL:数据报延迟控制功能:防止数据报在网中循环流动,或延迟过长;处理:每经过一个路由器,TTL减1;TTL=0,丢弃数据报,并向源站发回超时报告(ICMP)。(3)服务类型与区分码点服务功能:指定本数据报的处理方式说明:TOS不是必须实现的DTRMU优先级D(elay),T(hroughout),R(eliable)M(onetarycost),U(nused)优先级:8种,0-普通级别,7-网络控制区分码点服务(DSCP)(RFC2474、2475)未用码点功能:把码点值映射到底层服务,多个码点可映射成同一服务。设计思想:将码点映射为底层服务,多个码点值可映射为同一服务。3组服务:XXXXX0IETF分配使用XXXX11本地使用或用于实验XXXX01本地使用或用于实验(将来也可由IETF分配)说明:XXX000对应原来的8个优先级4.3数据报的分片控制1.数据报的封装(以太网帧类型0800H)问题:每个网络有固定的MTU,若IP报文长度大于MTU,怎么办?2.数据分片例:IP数据报长度1400字节,网络MTU620字节,如何分片?数据报首部数据报数据区帧头帧数据区首部数据(1600字节)数据1(600字节)数据2(600字节)数据3(200字节)首部数据(1600字节)数据1(600字节)数据2(600字节)数据3(200字节)首部数据1(600字节)首部数据2(600字节)首部数据3(200字节)问题1:如何组装分片?(1)如何标识同一个数据报的各个分片?(2)如何标识同一个数据报分片的顺序?(3)如何标识同一个数据报分片的结束?解决:重新设置首部的某些字段(1)修改分片标志和片偏移量字段(2)首部其它字段复制原来数据报首部的相应字段标识符片偏移量DFMF标识DFMF信源机产生,每个数据报唯一解决了:标识同一数据报的各个分片标识分片在原来数据报文中的位置解决了:分片的顺序MF(MoreFragment):片未完位MF=0,是最后一片MF=1,不是最后一片解决了:分片的结束DF(DonotFragment):不分片位DF=1,强制不允许分片片偏移量首部数据1:偏移量=0,MF=1首部数据2:偏移量=75(600)MF=1首部数据3:偏移量=150(1200)MF=0首部数据(1600字节)数据1(600字节)数据2(600字节)数据3(200字节)首部数据1(600字节)首部数据2(600字节)首部数据3(200字节)问题2:分片首部如何设置?(1)首部长度:若无选项,和原数据报相同,否则重新计算。(2)ID、标志域和片偏移量:如问题1所述。(3)总长度:分片首部的长度+分片数据部分的长度。(4)校验和:必须重新计算。(5)选项:EOL和NOP不可复制,LSRR、SSRR复制到所有分片中,记录路由和时间戳选项只能复制到第一个分片中。解答:第一个分片的首部复制原IP数据报的首部,并修改总长度字段,之后的分片首部重新设置。问题3:何处重组分片?答案:信宿机优点:(1)不会反复分片/重组(2)各分片可独立选路(3)路由软件简化缺点(1)可能浪费带宽(2)丢失可能性增加IPv6使用路径MTU发现机制,路由器不再分片3.分片重组算法(FreeBSD)(1)数据结构(RFC791标准推荐使用)◆储存数据报ID的缓冲区◆储存第一个分片报头的缓冲区◆重组表◆数据缓冲区◆定时器◆数据总长度域问题1:为什么需要存储第一个分片报头的内存缓冲区?解答:该分片的将首部将作为重组后的数据报的首部;问题2:如何判断一个数据报是否需要重组?解答:MF位和片偏移量位都为‘0’。◆用源IP、目的IP、ID、协议域唯一标识一个IP数据报;◆每个IP数据报都有一个ipq;◆所有数据报的ipq形成一个双链表。◆同一数据报的每个分片对应一个ipasfrag结构;◆同一数据报的ipasfrag组成一个双链表。ipq结构NextPrevipq_tllipq_pipq_idipq_nextipq_previpq_srcipq_dstIP数据报重组超时时间间隔。ipasfragip_vipf_mffip_lenip_idip_ttlipf_nextipf_previp_hlip_offip_pip_sumdata◆将TOS的最后一个未用比特重新设置◆存放是否需要重组的标志位◆需要重组设置为‘1’,否则为‘0’分片合并◆所有分片数据放入数据缓冲区中合并,◆再与第一个分片报头合并。4.4数据报选项功能:用于网络测试、调试或控制。包括:(1)记录数据报经过的路由(2)记录数据报经过的路由和时间(3)源端指定必须经过的路由(4)路径MTU发现1.选项格式COPY选项类选项号代码(1B)长度(1B)数据(不固定)COPY:控制数据报分片对选项的拷贝COPY=1,所有分片均复制该选项COPY=0,仅第一个分片复制该选项选项类:对选项功能的大分类(00:数据报或网控,10:测试和度量)选项号:与选项类结合,确定使用的选项。常用的选项类号含义03Loosesourcerouting07Recordroute09Strictsourcerouting24Timestamp选项类:0-控制1-保留2-调试与测量3-保留其他选项号类别选项号长度描述00-表示选项的结束01-空操作0211安全选项084流ID(用于传送流ID)安全选项:用于传送安全、分隔、用户组及处理限制等信息2.记录路由选项记录从信源到信宿所经过的各路由器IP地址。用途:测试路由软件等。过程:信源机设定空表,规定选项长度,各路由器把自己的地址依次填在表中。代码(7)长度指针第1个路由器的IP地址第2个路由器的IP地址……说明:COPY=0,最多只能放9个路由器地址指针:指向下一个可存放的位置,路由器把自己的地址写入表中后,指针后移。3.时间戳选项用途:分析网络系统吞吐率、拥塞、负载、时延等。代码(68)长度指针第1个路由器的IP地址第1个路由器的时间戳……溢出标志COPY=0溢出:由于无空间而未能记下时戳的路由器个数标志:=0:只记录时间戳=1:记录IP地址和时戳=3:发送方填入IP地址,匹配的路由器填写时戳说明:最多只有4个路由器能记录IP地址和时间戳4.源路由选项用途:信源机规定的数据报必须经过的路径,用于测试某特定路径,绕开某危险网络等。严格源路由:指定完备路径松散源路由:指定路径要点代码(137/131)长度指针第1个路由器的IP地址第2个路由器的IP地址……路由器对源路由选项的处理过程:根据下一目标转发数据报,并用出口IP地址覆盖入口IP地址。dest=D{#R11,R21,R31}R1R2R3SDR11R12R21R22R31R32dest=R11{#R21,R31,D}dest=R21{R12,#R31,D}dest=R31{R12,R22,#D}dest=D{R12,R22,R32#}路由器对源路由选项的处理步骤:1.发送主机从应用程序接收源站路由清单,将第一个表项去掉,将剩余的项前移一个位置,将原来的目的地址作为清单的最后一项,指针仍然指向清单的第一项;2.每个处理数据报的路由器检查其是否为数据报的目的地址,如果不是,则正常转发数据报;3.如果该路由器是最终目的,且指针不大于路径长度,那么:(1)由指针所指的是地址是数据报的最终目的地址;(2)由外出接口对应的IP地址取代指针所指的地址;(3)指针加4。与IP选项相关的命令:ping–rping–sping–jping–k记录路由时间戳松散源路由严格源路由ipconfig命令:查看本机网络配置情况1.源路由攻击原理:截获数据包后,改变包中的路由选项,把数据包路由到可控的路由器上。4.5IP协议的一些安全问题2.分片攻击(1)TinyFragment:发送极小分片,让TCP报头的端口号包含在第二个分片中,绕过防火墙或者IDS过滤系统。(nmap-f)(2)PingofDeath:发送长度超过65535的IP报(封装了ICMPEchoRequest包),目标主机重组分片时会造成事先分配的65535字节缓冲区溢出,系统通常会崩溃或者挂起。(3)teardrop:第二个IP分片偏移量小于第一个分片结束的位置,出现重叠。问题:如何实现PingofDeath和TearDrop?PingofDeath:MF=0(最后一片),报文长度为49,偏移量为0x1FFE重组后长度为0x1FFE*8+(49-20)=65549Teardrop:分片1:MF=1,偏移量=0,长度为36(不含IP首部)分片2:MF=0,偏移量=3,偏移字节数0x3*8=244.6选路的概念1、选路寻找一条将分组从信源传往信宿的传输路径的过程。2、直接选路和直接投递信源和信宿在同一物理网络上。信宿处于当前路由器直连的网络上。选路由数据链路层完成,其技术随不同的网络技术不同。3、间接选路和间接投递信源和信宿不在同一物理网络上或者信宿不在当前路由器直连的网络上。IP要解决的问题:间接选路4.7选路的表示:路由表1、选路方式:表驱动:每个主机和路由器都有一张路由表,指明去往某信宿应该走哪条路径。选路时,查询路由表。2、路由表格式信宿地址去往信宿的路径不是主机地址,而是网络地址不是完整路径,而是(nexthop)下一跳地址目标网络1的网络号到达网络1的下一跳路由器IP目标网络2的网络号到达网络2的下一跳路由器IP………路由表示例网络10.0.0.0网络20.0.0.0网络30.0.0.0网络40.0.0.010.0.0.520.0.0.520.0.0.630.0.0.630.0.0.740.0.0.720.0.0.0直接投递30.0.0.0直接投递10.0.0.020.0.0.540.0.0.030.0.0.7说明:(1)路由表的内容选择充分体现了“信息隐藏原理”。(2)路由表目少,选路效率高。(3
本文标题:第4章互联网协议IP
链接地址:https://www.777doc.com/doc-2194646 .html