《《互联网协议i》ppt课件》由会员分享,可在线阅读,更多相关《《互联网协议i》ppt课件(58页珍藏版)》请在金锄头文库上搜索。
1、第四章 互联网协议IP,计算机与通信工程学院 张 然,网络协议分析,主要内容,引言 IP数据报格式 IP数据报的分片和重组 IP数据报首部校验和的计算 IP选项 IP的一些安全问题 IP数据报的选路,基本要求,1、掌握IP协议的特点 2、掌握IP数据报的格式 3、掌握IP数据报分片及重组机制 4、了解IP选项的使用 5、掌握IP数据报选路的原理及算法 6、掌握路由表的一般形式及默认路由的概念 7、掌握IP软件对IP数据报的处理,学习内容,引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路,IP层的地位,IP层是通信子网的最高层,提供无连接的数据报传输机
2、制。目的是屏蔽底层物理网络细节,向上提供一致性。,IP层的功能与特点,IP层的主要功能: 无连接数据报的投递(数据结构,静态特性) 数据报寻径(选路,操作特性) 差错与报文控制(管理特性) 特点: 不可靠: 分组可能丢失,乱序等,不做确认; 无连接: 每个分组都独立对待; 尽力投递: 不随意放弃分组; 点到点。,互联网服务的三个概念层次,点到点无连接交付服务提供了一个其它一切赖以存在的基础。 端到端可靠的传输服务提供了应用所依赖的更高层平台。,IP,TCP,学习内容,引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路,IP数据报格式,总长度:(首部 +
3、 数据区),16比特,单字节计数,最大长度216-1 = 65535字节; 首部长度:占4比特,4字节计数,最大值为24-1 = 15,即15 * 4 = 60字节。,首部,数据区,20字节固定部分,0-40字节选项,数据格式(数据结构),服务类型(TOS),D(elay), T(hroughout), R(eliable), M(onetary cost), U(nused) 优先级:8种,0-普通级别,7-网络控制 功能:指定本数据报的处理方式 说明:TOS不是必须实现的,区分码点服务,区分码点服务(DSCP) (RFC2474、2475):对TOS的新的定义方式,使用前6比特,可定义64
4、种服务 设计思想:将码点映射为底层服务,多个码点值可映射为同一服务。 3组服务: XXXXX0: IETF分配使用 XXXX11: 本地使用或用于实验 XXXX01: 本地使用或用于实验 (将来也可由IETF分配 ) 说明:XXX000对应原来的8个优先级,寿命字段TTL,寿命字段TTL:数据报延迟控制 功能:防止数据报在网中循环流动,或延迟过长; 处理:每经过一个路由器,TTL减1;TTL=0,丢弃数据报,并向源站发回超时报告(ICMP)。,校验和(首部),计算步骤: (1)16比特分组; (2)校验和清0 (3)求所有16比特之和 (4)把求得的和模(216-1) (即高位取出后移加到和中
5、) (5)在(4)的基础上求二进制反码 校验步骤: 同计算步骤的前4步,结果为0时正确。 见书45页,校验和例子,注意 当数字作加法时,最高位进比特位的进位需要加到结果中 例子: 发送方将两个16-bit整数相加,1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1,回卷,和,检查和 (求反),接收方:求和,遇溢出也要回卷。,标
6、识、标志和片偏移,用来对数据报的分片和重组进行控制 为什么要进行分片? 类比:道路通行 MTU:最大传输单元 注:一个被分片的数据报还可能再次被分片,问题?,IP数据报的分片发生在哪里? 源点主机会对IP分组进行分片吗?,学习内容,引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路,数据报的分片控制,数据报的封装 (以太网帧类型0800H) 问题:每种网络有固定的MTU,若IP报文长度大于MTU,怎么办? 数据分片(如何分片?),举例,例:IP数据报长度1420字节(假如首部无选项),网络MTU620字节,如何分片?,问题?,(1)如何标识同一个数据报
7、的各个分片? (2)如何标识同一个数据报分片的顺序? (3)如何标识同一个数据报分片的结束?,信源机产生,每个数据报唯一 解决了:标识同一数据报的各个分片,标识分片在原来数据报文中的位置 解决了:分片的顺序,MF (More Fragment):片未完位 MF=0,是最后一片 MF=1,不是最后一片 解决了:分片的结束,DF (Do not Fragment): 不分片位 DF=1,强制不允许分片,片偏移量,如何组装?,组装时,需要重新设置首部的某些字段 (1)修改分片标志和片偏移量字段 (2)首部其它字段复制原来数据报首部的相应字段,问题:分片首部如何设置?,首部长度:若无选项,和原数据报相
8、同,否则重新计算。 ID、标志域和片偏移量:如前所述。 总长度:分片首部的长度+分片数据部分的长度。 校验和:必须重新计算。(为什么?) 选项:EOL和NOP不可复制,LSR、SSR复制到所有分片中,记录路由和时间戳选项只能复制到第一个分片中。,问题:在何处重组分片?,信宿机 优点: 不会反复分片/重组 各分片可独立选路 路由软件简化 缺点: 可能浪费带宽 丢失可能性增加,IPv6使用路径MTU发现机制,路由器不再分片,IP 数据报分片举例,例子: 4000字节数据报 MTU = 1500字节,在数据字段1480 字节,偏移 =1480/8,偏移 = 0/8 = 0,偏移= 0,偏移 = 14
9、80/8 = 185,偏移 = 2960/8 = 370,1480,2960,3979,2959,1479,3979,需分片的 数据报,数据报片 1,首部,数据部分共 3980 字节,首部 1,首部 2,首部 3,字节 0,数据报片 2,数据报片 3,1480,2960,字节 0,IP 数据报分片举例,分片重组算法(FreeBSD),数据结构(RFC791标准推荐使用) 储存数据报ID的缓冲区 储存第一个分片报头的缓冲区 重组表 数据缓冲区 定时器 数据总长度域 问题1:为什么需要存储第一个分片报头到内存缓冲区? 解答:该分片的首部将作为重组后的数据报的首部; 问题2:如何判断一个数据报是否需
10、要重组? 解答:MF位和片偏移量位都为0(没有分片),则不需重组。,ipq 结构,IP数据报重组超时时间间隔。,ipasfrag,将TOS的最后一个未用比特重新设置,存放是否需要重组的标志位: 需要重组设置为1,否则为0。,分片合并 所有分片数据放入数据缓冲区中合并, 再与第一个分片报头合并。,用源IP、目的IP、ID、协议域唯一标识一个IP数据报; 每个IP数据报都有一个ipq; 所有数据报的ipq形成一个双链表。, 同一数据报的每个分片对应一个ipasfrag结构; 同一数据报的ipasfrag组成一个双链表。,学习内容,引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安
11、全问题 IP数据报的选路,数据报选项,功能:用于网络测试、调试或控制。包括: 记录数据报经过的路由 记录数据报经过的路由和时间 源端指定必须经过的路由 路径MTU发现 选项格式:,代码,长度,数据,选项号,选项类,复制,代码格式,复制(COPY):控制数据报分片对选项的拷贝 COPY=1,所有分片均复制该选项 COPY=0,仅第一个分片复制该选项 选项类:对选项功能的大分类 选项号:与选项类结合,确定使用的选项。,记录路由选项,记录从信源到信宿所经过的各路由器IP地址。 用途:测试路由软件等。 过程:信源机设定空表,规定选项长度,各路由器把自己的地址依次填在表中。 说明:COPY=0,最多只能
12、放9个路由器地址(?) 指针:指向下一个可存放的位置,路由器把自己的地址写入表中后,指针后移。 如何判断表项是否已满?,时间戳选项,用途:用于记录路由器收到数据报的时间(分析网络系统吞吐率、拥塞、负载、时延等)。 COPY = 0 溢出:由于无空间而未能记下时戳的路由器个数 标志: = 0:只记录时间戳 = 1:记录IP地址和时戳 = 3:发送方填入IP地址,匹配的路由器填写时戳 说明:最多只有4个路由器能记录IP地址和时间戳(?),源路由选项,用途:信源机规定数据报必须经过的路径,用于测试某特定路径,或绕开某危险网络等。 严格源路由(137):指定完备路径 松散源路由(131):指定路径要点
13、,路由器对源路由选项的处理过程:根据下一目标转发数据报,并用出口IP地址覆盖入口IP地址。,路由器对源路由选项的处理步骤,发送主机从应用程序接收源站路由清单,将第一个路由表项作为目的地址,然后从表项中去掉,将剩余的项前移一个位置,将原来的主机目的地址作为清单的最后一项,指针仍然指向清单的第一项; 每个处理数据报的路由器检查其是否为数据报的目的地址,如果不是,则正常转发数据报; 如果该路由器是最终目的,且指针不大于路径长度,那么: 由指针所指的地址是数据报的最终目的地址; 由外出接口对应的IP地址取代指针所指的地址; 指针加4。,dest=D #R11,R21,R31,与IP选项相关的命令,与I
14、P选项相关的命令: ping r 目标地址 ping s ping j host list ping k host list,指定记录路由选项 指定时间戳选项 松散源路由 严格源路由,ipconfig命令: 查看本机网络配置情况,学习内容,引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路,IP协议的一些安全问题,1. 源路由攻击 原理:截获数据包后,改变包中的路由选项,把数据包路由到可控的路由器上。,2. 分片攻击 (1) Tiny Fragment:发送极小分片,让TCP报头的端口号包含在第二个分片中,绕过防火墙或者IDS过滤系统。(nmap -f
15、) (2) Ping of Death:发送长度超过65535的IP报(封装了ICMP Echo Request包),目标主机重组分片时会造成事先分配的65535字节缓冲区溢出,系统通常会崩溃或者挂起。 (3) teardrop:第二个IP分片偏移量小于第一个分片结束的位置,出现重叠。造成有的系统会出现异常。,如何实现Ping of Death和TearDrop?,例如: Ping of Death: MF=0(最后一片),报文长度为49,偏移量为0x1FFE 重组后数据报的长度是多少? 0x1FFE * 8 + (49-20) = 65549 65535 Teardrop: 分片1:MF=1
16、,偏移量=0,长度为36(不含IP首部) 分片2:MF=0,偏移量=3,偏移字节数0x3 * 8 = 24,基于IP协议的隐蔽通道,隐蔽通道与加密的区别: 加密是隐藏通信的内容 隐蔽通道是隐藏秘密通信的存在 利用IP数据报的首部ID隐藏秘密信息 利用ID和段偏移 利用IP标志域(flag)隐藏信息 利用TTL字段携带信息 利用源IP地址低8位隐藏信息 利用IP选项 利用IP数据报长度字段携带信息 利用服务类型字段ToS,学习内容,引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路,选路的概念,什么是选路? 寻找一条将分组从信源传往信宿的传输路径的过程。 什么是直接选路和直接投递? 信源和信宿在同一物理网络上。 路由器上的数据报的信宿处于当前路由器直连的网络上。 直接选路由数据链路层完成,