《互联网协议I》PPT课件.ppt_第1页
《互联网协议I》PPT课件.ppt_第2页
《互联网协议I》PPT课件.ppt_第3页
《互联网协议I》PPT课件.ppt_第4页
《互联网协议I》PPT课件.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 互联网协议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层是通信子网的最高层,提供无连接的数据报传输 机制。目的是屏蔽底层物理网络细节,向上提供一致 性。 以太网帧令牌环帧 IP数据报 传输协议分组 IP层的功能与特点 IP层的主要功能: 无连接数据报的投递(数据结构,静态特性) 数据报寻径(选路,操作特性) 差错与报文控制(管理特性) 特点: 不可靠: 分组可能丢失,乱序等,不做确认; 无连接: 每个分组都独立对待; 尽力投递: 不随意放弃分组; 点到点。 互联网服务的三个概念层次 点到点无连接交付服务提供了一个其它一切赖以存在 的基础。 端到端可靠的传输服务提供了应用所依赖的更高层平 台。 点到点不可靠无连接分组投递服务 端到端可靠传输服务 应用服务 IP TCP 学习内容 引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路 IP数据报格式 总长度:(首部 + 数据区),16比特,单字节计数, 最大长度216-1 = 65535字节; 首部长度:占4比特,4字节计数,最大值为24-1 = 15, 即15 * 4 = 60字节。 首部数据区 20字节固定部分0-40字节选项 数据格式(数据结构) 版本头长服务类型总长度 标识符分片偏移标志 TTL协议首部校验和 源IP地址 目的IP地址 IP选项(可选)填充 数据 服务类型(TOS) D(elay), T(hroughout), R(eliable), M(onetary cost), U(nused) 优先级:8种,0-普通级别,7-网络控制 功能:指定本数据报的处理方式 说明:TOS不是必须实现的 DTRMU优先级 区分码点服务 区分码点服务(DSCP) (RFC2474、2475):对TOS的新的定 义方式,使用前6比特,可定义64种服务 设计思想:将码点映射为底层服务,多个码点值可映射为 同一服务。 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)在(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 回卷 和 检查和 (求反) n 接收方:求和,遇溢出也要回卷。 标识、标志和片偏移 用来对数据报的分片和重组进行控制 为什么要进行分片? 类比:道路通行 MTU:最大传输单元 注:一个被分片的数据报还可能再次被分片 问题? IP数据报的分片发生在哪里? 源点主机会对IP分组进行分片吗? 学习内容 引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路 数据报的分片控制 数据报的封装 (以太网帧类型0800H) 问题:每种网络有固定的MTU,若IP报文长度大于 MTU,怎么办? 数据分片(如何分片?) 数据报首部数据报数据区 帧头帧数据区 举例 例:IP数据报长度1420字节(假如首部无选项), 网络MTU620字节,如何分片? 首部数据(1600字节) 数据1(600字节)数据2(600字节) 数据3(200字节) 首部 数据1(600字节) 首部 数据2(600字节) 首部 数据3 (200字节) 问题? (1)如何标识同一个数据报的各个分片? (2)如何标识同一个数据报分片的顺序? (3)如何标识同一个数据报分片的结束? 标识 DF MF 信源机产生,每个 数据报唯一 解决了:标识同一 数据报的各个分片 标识分片在 原来数据报 文中的位置 解决了:分 片的顺序 MF (More Fragment):片未 完位 MF=0,是最后一片 MF=1,不是最后一片 解决了:分片的结束 DF (Do not Fragment): 不分片位 DF=1,强制不允许分片 片偏移量 如何组装? 组装时,需要重新设置首部的某些字段 (1)修改分片标志和片偏移量字段 (2)首部其它字段复制原来数据报首部的相应字段 标识符片偏移量DF MF 首部 数据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字节) 问题:分片首部如何设置? 首部长度:若无选项,和原数据报相同,否则重新计算。 ID、标志域和片偏移量:如前所述。 总长度:分片首部的长度+分片数据部分的长度。 校验和:必须重新计算。(为什么?) 选项:EOL和NOP不可复制,LSR、SSR复制到所有分片 中,记录路由和时间戳选项只能复制到第一个分片中。 问题:在何处重组分片? 信宿机 优点: 不会反复分片/重组 各分片可独立选路 路由软件简化 缺点: 可能浪费带宽 丢失可能性增加 IPv6使用路径MTU发现机制,路由器不再分片 IP 数据报分片举例 ID =x 偏移 =0 段标识 =0 长度= 4000 ID =x 偏移 =0 段标识 =1 长度 =1500 ID =x 偏移 =185 段标识 =1 长度 =1500 ID =x 偏移 =370 段标识 =0 长度 =1040 一个大数据报变为几个较小的数据报 例子: 4000字节数据报 MTU = 1500字节 在数据字段1480 字节 偏移 =1480/8 偏移 = 0/8 = 0 偏移= 0 偏移 = 1480/8 = 185偏移 = 2960/8 = 370 14802960397929591479 3979 需分片的 数据报 数据报片 1 首部 数据部分共 3980 字节 首部 1首部 2首部 3 字节 0 数据报片 2数据报片 3 14802960字节 0 IP 数据报分片举例 分片重组算法(FreeBSD) 数据结构(RFC791标准推荐使用) 储存数据报ID的缓冲区 储存第一个分片报头的缓冲区 重组表 数据缓冲区 定时器 数据总长度域 问题1:为什么需要存储第一个分片报头到内存缓冲区? 解答:该分片的首部将作为重组后的数据报的首部; 问题2:如何判断一个数据报是否需要重组? 解答:MF位和片偏移量位都为0(没有分片),则不需重组 。 ipq 结构 Next Prev ip q_tllip q_pip q_id ip q_next ip q_prev ip q_src ip q_dst IP数据报重 组超时时间 间隔。 ipasfrag ip_vipf_mffip_len ip_id ip_ttl ipf_next ipf_prev ip_hl ip_off ip_pip_sum data 将TOS的最后一个未用比特重新设置,存放是 否需要重组的标志位: 需要重组设置为1,否 则为0。 分片合并 所有分片数据放入数据缓冲区中合并, 再与第一个分片报头合并。 u 用源IP、目的IP、ID、协议域唯一标识一个 IP数据报; u 每个IP数据报都有一个ipq; u 所有数据报的ipq形成一个双链表。 同一数据报的每个分片对应一个 ipasfrag结构; 同一数据报的ipasfrag组成一个双链表 。 学习内容 引言 IP数据报格式 IP数据报的分片和重组 IP选项 IP的一些安全问题 IP数据报的选路 数据报选项 功能:用于网络测试、调试或控制。包括: 记录数据报经过的路由 记录数据报经过的路由和时间 源端指定必须经过的路由 路径MTU发现 选项格式: 代码长度数据 选项号 选项 类 复 制 代码格式 复制(COPY):控制数据报分片对选项的拷贝 COPY=1,所有分片均复制该选项 COPY=0,仅第一个分片复制该选项 选项类:对选项功能的大分类 选项号:与选项类结合,确定使用的选项。 常用的选项 类号含义 03Loose source routing 07Record route 09Strict source routing 24Timestamp 记录路由选项 记录从信源到信宿所经过的各路由器IP地址。 用途:测试路由软件等。 过程:信源机设定空表,规定选项长度,各路由器把 自己的地址依次填在表中。 说明:COPY=0,最多只能放9个路由器地址(?) 指针:指向下一个可存放的位置,路由器把自己的地 址写入表中后,指针后移。 如何判断表项是否已满? 代码(7)长度指针 第1个路由器的IP地址 第2个路由器的IP地址 时间戳选项 用途:用于记录路由器收到数据报的时间(分析网络 系统吞吐率、拥塞、负载、时延等)。 COPY = 0 溢出:由于无空间而未能记下时戳的路由器个数 标志: = 0:只记录时间戳 = 1:记录IP地址和时戳 = 3:发送方填入IP地址,匹配的路由器填写时戳 说明:最多只有4个路由器能记录IP地址和时间戳( ?) 代码(68)长度指针 第1个路由器的IP地址 第1个路由器的时间戳 溢出标志 源路由选项 用途:信源机规定数据报必须经过的路径,用于测试某特定 路径,或绕开某危险网络等。 v 严格源路由(137):指定完备路径 v 松散源路由(131):指定路径要点 代码(137/131)长度指针 第1个路由器的IP地址 第2个路由器的IP地址 路由器对源路由选项的处理过程:根据下一目标转发数据报 ,并用出口IP地址覆盖入口IP地址。 路由器对源路由选项的处理步骤 发送主机从应用程序接收源站路由清单,将第一个路由表 项作为目的地址,然后从表项中去掉,将剩余的项前移一 个位置,将原来的主机目的地址作为清单的最后一项,指 针仍然指向清单的第一项; 每个处理数据报的路由器检查其是否为数据报的目的地址 ,如果不是,则正常转发数据报; 如果该路由器是最终目的,且指针不大于路径长度,那么 : 由指针所指的地址是数据报的最终目的地址; 由外出接口对应的IP地址取代指针所指的地址; 指针加4。 dest=D #R11,R21,R31 R1R2R3 SD R11R12 R21R22 R31R32 dest=R11 #R21,R31,D dest=R21 R12, #R31,D dest=R31 R12,R22, #D dest=D R12,R22,R32# 与IP选项相关的命令 与IP选项相关的命令: 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) (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,偏移量=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数据报的选路 选路的概念 u什么是选路? 寻找一条将分组从信源传往信宿的传输路径的过程。 u什么是直接选路和直接投递? 信源和信宿在同一物理网络上。 路由器上的数据报的信宿处于当前路由器直连的网络上。 直接选路由数据链路层完成,不同的网络采用的技术不同 。 u什么是间接选路和间接投递? 信源和信宿不在同一物理网络上; 或者信宿不在当前路由器直连的网络上。 IP要解决的问题:间接选路 路由表 1、选路方式: 表驱动:每个主机和路由器都有一张路由表,指明去往某信 宿应该走哪条路径。选路时,要查询路由表。 2、路由表格式: 信宿地址去往信宿的路径 不是主机地址,而 是网络地址 不是完整路径,而是(next hop) 下一跳地址 目标网络1的网络号到达网络1的下一跳路由器IP 目标网络2的网络号到达网络2的下一跳路由器IP 路由表示例 网络 10.0.0.0 网络 20.0.0.0 网络 30.0.0.0 网络 40.0.0.0 10.0.0.5 20.0.0.5 20.0.0.6 30.0.0.6 30.0.0.7 40.0.0.7 20.0.0.0直接投递 30.0.0.0直接投递 10.0.0.020.0.0.5 40.0.0.030.0.0.7 R S Q 练习:请给出上图路由器S的路由表。 路由表的特殊表目 (1)特定主机路由: 为某个指定主机在路由表中单设一项。 用途:测试网络连通性、路由表正确性、安全性等 。 (2)默认路由: 信息隐藏、保持路由表更小的技术。每一网络到外 部的出口总是非常有限的几个,对很多信宿网络来 说,出口总是同一个。 方法:把不在路由表中列出的网络统一到一个出口 。 几点说明 (1) 路由表的内容选择充分体现了“信息隐藏原理”。 (2) 路由表条目少,选路效率高。 (3) 路由表的大小与主机数目无关。 (4) 受互联网拓朴结构改变影响小,对互联网变化适应 性强。 (5) 路由器对网络拓朴的描述是局部的,但对网络拓朴 结构的把握却是全局的。 3、选路总控算法 RouteDatagram(Datagram ,RoutingTable) 从数据报中提取目的IP地址D,并计算网络前缀N; if N与任何直接相连的网络地址匹配 then 通过该网络把数据报交付到目的地 else if 表中包含特定于具体主机的一个到D的路由 then 把数据报发送到表中指定的下一跳 else if 表中包含到网络N的一个路由 then 把数据报发送到表中指定的下一跳 else if 表中包含的一个默认路由 then 把数据报发送到表中指定的默认路由器 else 宣布选路出错 选路的执行 u 路由选择的依据是什么? (1)网络负载 (2)数据报文的长度 (3)服务类型 实际中:基于最短路径的假设。 u 路由选择的参与者 路由器负责数据在各个不同网络之间的传输时的路由选择。 问题1:主机是否参与路由选择? Y! 问题2:主机是否应该转发它收到的IP数据报? N! IP软件对数据报的处理 主机: 主机不转发数据报。 是自己的:交上层; 不是自己的:丢弃。 路由器: 若是邻网,直接投递; 其它的转发。 (TTL 1,重新计算校验和 ) 重要说明:IP协议不涉 及选路技术细节,只描 述原理和规则,具体选 路技术指路由表的建立 与刷新,由专门的路由 协议完成。 R1R2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论