Download presentation
Presentation is loading. Please wait.
1
Chap5 网 络 层
2
网络层主要内容 Internet网络层协议(IP) 网络层概述 拥塞控制算法 路由算法 网络层的地位 网络层需要解决的问题
网络层概述 网络层的地位 网络层需要解决的问题 数据报和虚电路 网络层提供的服务 拥塞控制算法 拥塞控制的基本原理 开环控制 拥塞预防策略 通信量整形(漏桶和令牌桶) 流说明 闭环控制 虚电路网络中的拥塞控制 抑制分组 负载丢弃 路由算法 最优化原则 最短路径路由算法 洪泛算法 基于流量的路由算法 距离向量路由算法 链路状态路由算法 分级路由 Internet网络层协议(IP)
3
网络层概述
4
1.网络层的地位 2.网络层需要解决的问题 3.三种通信交换方式 4.网络层的两种实现方式 5.网络层提供的服务 通信子网的最高层
屏蔽各种不同类型网络之间的差异 2.网络层需要解决的问题 实现全网的数据传输 线路交换 3.三种通信交换方式 报文交换 分组交换 虚电路 4.网络层的两种实现方式 数据报 面向连接 5.网络层提供的服务 面向无连接
5
举例 请判断是虚电路还是数据报? M M1 M3 M2 H HA R5 R2 R1 R3 R4 HB M1 M2 M3 M1 M2 M3
6
路由算法
7
路由算法 路由算法是网络层软件的一部分 路由算法应具有的特性 路由算法分类 子网采用数据报方式,每个分组都要做路由选择。
子网采用虚电路方式,只需在建立连接时做一次路由选择。 路由算法应具有的特性 正确性(correctness)、简单性(simplicity)、健壮性(robustness)、稳定性(stability)、公平性(fairness)、最优性(optimality) 路由算法分类 非自适应算法(静态路由算法):按照预先计算好的(off-line)信息进行路由。 自适应算法(动态路由算法):根据网络拓扑结构,通信量等地变化来改变路由。
8
最优化原则 最优化原则(optimality principle) 汇集树(sink tree)
如果路由器 J 在路由器 I 到 K 的最优路由上,那么从 J 到 K 的最优路由会落在同一路由上。 汇集树(sink tree) 路由算法的目的是找出并使用汇集树。 从所有的源 结点到一个给定的目的结点的最优路由的集合形成了一个以目的结点为根的树,称为汇集树。
9
几种常见的路由算法 静态路由算法 动态路由算法 最短路径选择(Shortest Path Routing)
洪泛算法(Flooding Routing) 基于流量的路由算法(Flow-Based Routing) 动态路由算法 距离向量路由算法(Distance Vector Routing) 链路状态路由算法(Link State Routing) 分级路由(Hierarchical Routing)
10
最短路径路由算法 基本思想 得到最短路径,有不同的测量 路径长度的方法:
构建子网的拓扑图,图中的每个结点代表一个路由器,每条弧代表一条通信线路。 目的是构建两个路由器间的路由,算法是在子网拓扑图中找出最短路径。 得到最短路径,有不同的测量 路径长度的方法: 计算结点数量 计算地理距离 计算传输延迟 计算距离、信道带宽等参数的加权函数 …… Dijkstra算法是其中的一种计算最短路径的算法。
11
Dijkstra算法 每个结点用从源结点沿已知最佳路径到本结点的距离来标注,标注分为临时性标注和永久性标注。开始时,所有结点都为临时性标注,标注为无穷大。 源结点标注为0,且为永久性标注,令其为工作结点。 检查与工作结点相邻的临时性结点,若该结点到工作结点的距离与工作结点的标注之和小于该结点的标注,则用新计算得到的和重新标注该结点。 在整个图中查找具有最小值的临时性标注结点,将其变为永久性结点,并成为下一轮检查的工作结点。 重复第三、四步,直到目的结点成为工作结点。 Dijkstra算法的图例。
12
Dijkstra算法图例
13
Dijkstra算法程序
14
洪泛算法 基本思想 主要问题 解决措施 较实用的方法——选择性洪泛算法(selective flooding)
把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。 主要问题 洪泛要产生大量重复分组。 解决措施 每个报头包含站点计数器,每经过一站计数器减1,为0时则丢弃该分组。 记录下分组扩展的路径,防止它第二次扩散到已经扩散过的路径中。 较实用的方法——选择性洪泛算法(selective flooding) 洪泛法的一种改进:将进来的每个分组仅发送到与正确方向接近的线路上。
15
洪泛算法 应用情况 洪泛算法由于过于浪费路由器和线路的资源,在实际应用中很难被直接采用,但还是有一些用处的。
在军事领域中,由于需要极好的健壮性,扩散法可以一展身手。 在分布式数据库中,有时需要并行地更新所有数据库,这时洪泛算法也是最佳方案。 因为洪泛算法总是能够选择最短的路径,可以产生一个最短的延迟。洪泛算法可以作为一种尺度衡量标准来评价其它路由算法。
16
基于流量的路由算法 基本思想 需要预知的信息 图例。 既考虑拓扑结构,又兼顾网络负荷。 前提:每对结点间平均数据流是相对稳定和可预测的。
根据网络带宽和平均流量,可得出平均分组延迟,因此路由算法就演变为寻找网络中连接两个路由器的线路上具有最小平均分组延迟的问题。 需要预知的信息 网络拓扑结构。 通信量矩阵Fij,即线路ij之间的平均通信量。 线路带宽矩阵Cij,即线路ij 之间允许的最大通信量。 临时的路由算法。 图例。
17
基于流量的路由算法图例
18
基于流量的路由算法图例 根据队列原理,线路平均分组延迟的计算公式为: T=1/(C-) 1/=800 bit
19
距离向量路由算法 属于动态路由算法,最初用于ARPANET,DECnet等网络。
基本思想:每个路由器维护一张表,表中列出了到每个目的地址的最佳距离和线路,并通过与邻居结点交换信息来更新表。 表(路由表)的构成:以子网中其它路由器为表的索引,到达目的结点的最佳输出线路,和到达目的结点所需时间或距离。 路由器需要知晓自己到邻居结点的“距离”。所用的度量标准可以为站点、估计的时间延迟等。 如果为站点,本路由器到每个邻居结点的距离都为1。 如果是延迟,本路由器就发送一个要对方立即响应的ECHO分组,用来回时间除以2即得到延迟时间, 每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。 邻居结点X发来的表中,X到路由器i的距离为Xi。本路由器到X的距离为m,则本路由器经过X到i的距离为Xi + m。根据不同邻居发来的信息,计算Xi + m,取最小值,更新本路由器的表。 注意:在计算中不使用本路由器中的老路由表。
20
距离向量路由算法图例 路由器J计算到 达路由器C的最 新路由 JAC=8+25=33ms JIC=10+18=28ms
JHC=12+19=31ms JKC=6+36=42ms 其中JIC是最好的。 因此在路由器J的 新路由表中填上 到C的延迟为28ms, 经过路由器I。
21
距离向量路由算法的缺陷 缺陷——无穷计算问题
对好消息反应迅速:在最长路径为N各结点的子网中,在N次交换之内,所有的路由器都会指导新增的线路和路由器。 对坏消息反应迟钝:对于已经消失的结点,相互欺骗。 图例如下。
22
解决方案之一水平分裂 水平分裂算法基本思想 举例:如右图。
工作过程与距离向量算法相同,区别在于到X的距离不向真正通向X的邻居结点报告。从而使得坏消息以每次一个结点的速度传播。 举例:如右图。 在路由信息的交换中,B知道可以直达A,并告诉C,通过B到C路径为1。C得到B发来的路由信息后,告诉D通过C到达A距离为2,告诉B通过C到达A为无穷。D得到C发来的路由信息后,告诉E通过D到达A距离为3,告诉C通过D到达A为无穷。 当A下网后, 第一次交换:B发现到达A的直达路线没有了,而且C也向B说到达A为无穷,故B将其到达A的距离设置为无穷。 第二次交换:C得到B的通知,B到达A为无穷;同时D也告诉C,通过D到达A为无穷,故C将其到达A的距离设置为无穷。 以次类推,在第四次交换的时候,E也知道A不可达了。 ABCDE
23
水平分裂不能解决所有的问题 水平分裂虽然广泛使用,但有时候会失败。 如右图。 开始时,A和B到D的举例都为2,C到D的举例为1。
假设CD线路断了,使用水平分裂,A和B都告诉C,它们不能到达D,同时C自己也发现直达D的线路断了,于是C很快认定D不可达了。 但是,A认为B有一条通向D长度为2的路径,通过B经过3个结点可到达D。类似,B也这样认为。于是两个结点每交换一次信息,到达D的距离就增加1,直至加大无穷。
24
链路状态路由算法 距离向量路由算法的主要问题 在1979年前,ARPANET上都采用距离向量路由算法,但是之后,即为链路状态路由算法所替代。
由于延迟度量仅仅是队列长度,在选择路由时没有考虑线路带宽。 即使使用了水平分裂,路由收敛速度依然慢。 在1979年前,ARPANET上都采用距离向量路由算法,但是之后,即为链路状态路由算法所替代。 链路状态路由算法的简单步骤 发现邻居结点,并学习它们的网络地址。 测量到每个邻居结点的延迟或开销。 将所有学习到的内容封装成一个分组。 将这个分组发送给所有其它路由器。 计算到每个其它路由器的最短路径。
25
步骤1:发现邻居结点 发现邻居结点,并学习它们的网络地址。 路由器启动后,通过发送HELLO分组,并得到邻居路由器的响应来发现邻居结点。
路由器的名称必须是唯一的。 当两个或多个路由器连在一个LAN时,引入人工结点。 图例。
26
步骤2:测量线路开销和封装分组 测量到每个邻居结点的延迟或开销,一种直接的方法是:发送一个要对方立即响应的ECHO分组,来回时间除以2即为延迟时间。 如果在测量延迟时间的时候,考虑负载,会是什么情况?(自学) 将所有学习到的内容封装成一个分组,即在信息收集完毕后,构造一个包含所有数据的分组。 该分组的结构为:发送方的标识符、序号、年龄、邻居结点列表(邻居结点标识符,线路开销值)。 创建链路状态分组的时机:一是定期创建,一是在发生重大事件后创建。
27
步骤3:发布链路状态分组 链路状态分组的发布算法 基本算法所产生的问题 基本思想:洪泛链路状态分组。
为控制洪泛,每个分组中增加一个序号域,每次发送新分组时加1。 路由器记录信息对(源路由器,序号),当一个链路状态分组到达时,若是新的,则分发;若是重复的,则丢弃;若序号比路由器记录中的最大序号小,则认为过时而丢弃。 基本算法所产生的问题 序号循环使用会混淆。 路由器崩溃后,所有的序号丢失,从0开始记,以后所有的新到分组都可能被当作重复分组而被拒绝。 序号在发送出去后出现错误。
28
步骤3:发布链路状态分组 基本算法的改进方案 为了避免序号重复,使用32位的序号。
解决序号丢失和出错的方法是增加年龄(age)域,每秒钟年龄减1,至零则丢弃。 链路状态分组到达后,延迟一段时间(被放置在一个保持区中),并与其它已到达的来自同一路由器的链路状态分组比较序号,丢弃重复分组和超龄分组。 为了防止链路出错,所有的链路状态分组都需要应答。
29
步骤4:计算新路由 在路由器积累了一整套网络的链路状态分组后,就可以通过计算得到整个网络的结构。可以利用Dijkstra算法计算得到每个其它路由器的最短路径。 基于链路状态的路由协议 Open Shortest Path First (OSPF) Intermediate System-Intermediate System (IS-IS)
30
分级路由 网络规模增长带来的问题 解决办法 —— 分级路由 分级路由带来的问题 路由器中的路由表增大。
路由器为选择路由而占用的内存、CPU时间和网络带宽增大。 解决办法 —— 分级路由 对于大型网络分而治之,每个路由器只知道自己所在子网的路由信息,而不去了解其他子网的内部结构。 根据需要,可以分成区域(regions)、聚类(clusters)、区(zones)和组(groups)… 图例。 分级路由带来的问题 路由表中的路由不一定是最优路由。
31
分级路由图例
32
小结 — 路由算法 最优化原则 最短路径路由算法 洪泛算法 基于流量的路由算法 距离向量路由算法 链路状态路由算法 分级路由
路由算法的目的是找出并使用汇集树。 最短路径路由算法 目的是构建两个路由器间的路由,算法是在子网拓扑图中找出最短路径。Dijkstra算法。 洪泛算法 把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。 基于流量的路由算法 根据网络带宽和平均流量,可得出平均延迟,因此路由问题归结为找产生网络最小延迟的路由算法。 距离向量路由算法 根据两个结点间的队列长度来完成路由选择,但是最大的问题是无穷计算,而且水平分裂也不能完全解决所有的问题。 链路状态路由算法 发现邻居结点 测量线路开销 将所有学习到的内容封装成一个分组 发布链路状态信息 计算新路由 分级路由 对于大型网络分而治之,每个路由器只知道自己所在子网的路由信息,而不去了解其他子网的内部结构。
33
课后作业 复习教材相关内容 P 181(14) P183 (9)
34
拥塞控制
35
拥塞的基本概念 拥塞(congestion):网络中存在过多分组的时候,网络性能降低,这种情况被称为拥塞。图例 造成拥塞的原因
多个输入对应一个输出,只增加内存,并不能解决问题。 慢速处理器。 低带宽线路。 针对某个因素的解决方案,只能对提高网络性能起到一点点作用,甚至可能仅仅是转移了影响性能的瓶颈。 拥塞控制(congestion control)与流量控制(flow control) 拥塞控制需要确保通信子网能够承载用户提交的通信量,是一个全局性问题,涉及主机、路由器等很多因素。 流量控制与点到点的通信量有关,主要解决快速发送方与慢速接收方的问题,是局部问题,一般都是基于反馈进行控制的。
36
拥塞图例
37
拥塞控制的分类 根据控制论,拥塞控制可分为两类。 开环控制(防患于未然) 闭环控制(因地制宜)
通过良好的设计解决问题,以避免拥塞发生。一旦运行,就不再做中间阶段的更正。 进行开环控制的工具需要决定何时接收新的分组、何时丢弃分组、丢弃哪些分组,制定网络中不同地点的计划表等。利用开环进行拥塞控制时,所有这些操作都不会考虑网络的当前状态。 闭环控制(因地制宜) 基于反馈机制。其工作过程为: 监控系统,发现何时何地发生拥塞。 把发生拥塞的消息传给能采取动作的站点。 调整系统操作,解决拥塞问题。 闭环控制操作需要完成以下三个问题:何为拥塞、如何反馈和如何解决。
38
闭环控制 何为拥塞 —— 衡量网络拥塞的参数 如何反馈 —— 反馈方法 如何解决 —— 利用拥塞控制算法 缺乏缓冲区造成的丢包率
平均队列长度 超时重传的分组数目 平均分组延迟 分组延迟变化(Jitter) 如何反馈 —— 反馈方法 向负载的发生源发送一个报警分组,这同时加强了拥塞。 在分组结构中保留一个位或一个域来表示发生拥塞,一旦发生拥塞,路由器将所有输出分组的拥塞位填充,报警。 主机或路由器主动地、周期性地发送探报(probe),查询是否发生拥塞。 如何解决 —— 利用拥塞控制算法
39
开环控制 — 拥塞预防策略 影响拥塞的网络设计策略 数据链路层 网络层 传输层 重传、乱序缓存、确认、流控
子网中的虚电路和数据报、分组排队和服务策略、分组丢弃策略、路由算法、分组的生存时间管理 传输层 重传、乱序缓存、确认、流控、超时中止
40
开环控制 — 通信量整形 通信量整形(Traffic Shaping)的基本思想
网络上,突发的通信量是造成拥塞的主要原因。 强迫分组以某种可以预见的速率传送,减少拥塞,这种方法就被称为通信量整形。 此方法广泛应用于ATM网络中。 漏桶算法和令牌桶算法都可以实现通信量整形。 漏桶算法(The Leaky Bucket Algorithm) 基本原理:图例。 在计算机中的使用 漏桶——有限内部队列;水 —— 通信量,需要发送的分组。 分组到达队列时,队列满,分组被丢弃;队列空,分组放置在队尾。 效果 将用户发出的不平滑的分组流转变成网络中平滑的分组流。 漏桶算法既可以用于分组长度固定的协议,如ATM,使用分组计数;也可用于可变长分组的协议,如IP,使用字节计数。
41
漏桶算法 无论水流进桶的速度为多少,只要桶中有水,水从桶中外 漏的速度是恒定的。桶空了,速度为零。桶满了,水外泄。
42
令牌桶算法 由于漏桶算法不够灵活,因此加入令牌机制。 令牌桶算法 (The Token Bucket Algorithm)
令牌代表的不是发送一个分组的权利,而是可以发送的字节数。
43
漏桶和令牌桶的结合算法 一台计算机以25MB/s的速率 生成数据,网络也可以该速 率运行,但路由器的最佳工 作速率为2MB/s。右图说明
是如何发送的。 如何计算最大速率的突发时 间长度: 令:令牌桶容量为C字节,突发时间S秒,令牌到达速率为p字节/秒,最大输出速率为M字节/秒 有:C+pS=MS > S=C/(M-p) 图cde:M=25MB/s, p=2MB/s, C=250/500/750KB 图f:M=10MB/s, p=2MB/s, C=500KB
44
漏桶和令牌桶算法的比较 通信量整形策略不同 桶中存放的内容不同 漏桶算法不允许空闲主机积累发送权。
令牌桶算法允许空闲主机积累发送权,以便以后发送大的突发数据,最大为桶的大小。 桶中存放的内容不同 漏桶中存放的是数据,桶满了丢弃数据。 令牌桶中存放的是令牌,桶满了丢弃令牌,不丢弃数据。
45
开环控制 — 流说明 流说明(Flow Specification)
当发送方、接收方和子网都达成一致后,通信量整形才能发挥最佳效果。所以,一个数据流的发送方、接收方和通信子网三方认可的、描述发送数据流的模式和希望得到的服务质量的数据结构,被称为流说明。 对发送方的流说明,子网和接收方可以做出三种答复:同意、拒绝、其它建议。
46
闭环控制 —虚电路子网中的拥塞控制 方法一 方法二 方法三
许可控制(admission control):一旦发生拥塞,就不允许再建立新的虚电路,直到拥塞解除为止。 方法二 在发生拥塞后可以建立新的虚电路,但要绕开发生拥塞的地区。 方法三 资源预留:建立虚电路时,主机与子网达成协议,子网根据协议在虚电路上为此连接预留资源。
47
闭环控制 — 抑制分组 抑制分组(Choke Packets) 路由器监控输出线路及其它资源的利用情况,超过某个阈值,则此资源进入警戒状态。
每个新分组到来,检查它的输出线路是否处于警戒状态。若是,向源主机发送抑制分组,分组中指出发生拥塞的目的地址。同时将源分组打上标记(为了以后不再产生抑制分组)后,正常转发。 源主机收到抑制分组后,按一定比例减少发向特定目的地的通信量,并在固定时间间隔内忽略指示同一目的地的抑制分组。然后开始监听,若此线路仍然拥塞,则主机在固定时间内减轻负载、忽略抑制分组;若在监听周期内没有收到抑制分组,则增加通信量。 通常采用的通信量增减策略是: 减少时按一定比例减少,保证快速解除拥塞。 增加时以常量增加,防止很快导致拥塞。
48
加权公平队列 由于采用抑制分组时,源端的抑制行为是自愿的。为了公平地对待自觉和不自觉的源端,就提出公平队列(fair queueing)算法。 每个输出线存在多个队列,每个源端对应一个队列,当输出线空闲时,路由器将轮巡这几个队列,从下一个队列中选出第一个字节。 由于某些服务器非常重要,就可以对每个队列采用不同的优先权。例如:可以一次机会发送两个或者更多的字节。
49
Hop-by-Hop抑制分组 在高速、长距离的网络中,由于源主机响应太慢,抑制分组算法对拥塞控制的效果并不好,可采用Hop-by-Hop抑制分组算法。 Hop-by-Hop Choke Packets的基本思想 抑制分组对它经过的每个路由器都起作用。 能够迅速缓解发生拥塞处的拥塞。 要求上游路由器有更多的缓冲区。
51
闭环控制 — 负载丢弃 当所有上述算法都不能消除拥塞时,路由器只得采用负载丢弃(Load Shedding),将分组丢弃。
路由器可以随意挑选分组来丢弃,但还可以根据不同的服务,采取不同丢弃策略 文件传输,优先丢弃新分组,wine策略; 多媒体服务,优先丢弃旧分组,milk策略; 早期丢弃分组,会减少拥塞发生的概率,提高网络性能。
52
小结 —拥塞控制算法 拥塞控制的基本原理 开环控制 (通过良好的设计解决问题) 闭环控制 网络中存在过多分组的时候,网络性能降低,产生拥塞。
拥塞预防策略:数据链路层、网络层、传输层都策略可以进行预防 通信量整形 强迫分组以某种可以预见的速率传送。 漏桶和令牌桶均可实现通信量整形。 流说明 闭环控制 虚电路网络中的拥塞控制 许可控制、绕开拥塞、资源预留 抑制分组:向源主机发送抑制分组。 为了公平,可以采用加权公平算法(字节轮巡)。 为了得到快速的抑制效果,可采用Hop-by-Hop抑制分组,抑制分组对其所经过的路由器都起作用。 负载丢弃:对不同服务采用不同的丢弃策略。
53
网 络 层 2 之 Internet网络层协议
54
主要内容 Internet网络层概述 IP协议 IP协议概述 IP数据报 IP地址 子网和掩码 IP协议的主要功能
无连接的数据报传输 数据报路由 差错处理 — ICMP协议
55
Internet 网络层概述
56
INTERNET网络层概述 在网络层,Internet可以看成是自治系统的集合,是由网络组成的网络。网络之间互联的纽带是IP(Internet Protocol)协议。
57
... INTERNET网络层概述 提供无连接的数据报传输机制 实现点到点的传输:网络层的对等实体间不存在任何中间设备。
设计思想为“尽力传送” 不能保证传输的可靠性(有数据丢失,无差错恢复) 纠错重传问题交由传输层来解决 特点是快速、简单、效率高 实现点到点的传输:网络层的对等实体间不存在任何中间设备。 通信子网的最高层,对传输层提供统一格式的数据报,是异种网络互连的基础。 ... IP/ICMP Ethernet FDDI Token Ring PPP 数据报
58
Internet网络层的通信方式 单播通信(unicasting) 广播通信(broadcasting)
一台主机将数据发送到另外一台主机上。 源地址和目的地址都是IP地址。 广播通信(broadcasting) 一台主机将数据发送给同一个网络/子网中的所有主机。 源地址为IP地址,目的地址为本网络/子网的广播地址。 组播通信(multicasting) 一台主机将数据发送给同组的主机。 可以避免广播通信的广播风暴,减少网络通信流量。
59
Internt网络层主要协议 Internet网络层存在两种类型的协议:Routed Protocols 和Routing Protocols。 Routed Protocols 的主要协议包括: IP (Internet Protocol):完成无连接的数据报传输和路由功能。 ICMP(Internet Control Message Protocol):用于网络层的差错与控制报文的传输。 IGMP(Internet Group Management Protocol):用于将UDP数据报发送给同组主机。 ARP/RARP(The (Reverse) Address Resolution Protocol):用于网络层地址(IP地址)与数据链路层地址(MAC地址)之间的映射。 Routing Protocols包括: RIP(Routing Information Protocol):是“距离向量”协议族中最简单的一种。距离的衡量标准是到达目的地需要经过的中间结点的数目(Hop)。 OSPF(Open Shortest Path First):是“链路状态协议”的一种,通过计算自己到自治系统中其他路由器的最短路径来路由。 BGP(Exterior Gateway Protocol):是自治系统间的路由协议,又称域间路由协议。
60
IP协议
61
IP协议概述 IP协议采用无连接的数据报机制,对数据进行“尽力传输”,即只负责将分组发送到目的主机,不管传输正确与否,不作验证,不发确认,也不保证分组的到达顺序。 IP协议是点到点的,不可靠的。Internet的可靠性体现在传输层 — TCP协议,所以Internet只提供可靠的端到端通信。 IP协议的主要功能: 无连接的数据报传输 数据报路由(IP路由) 差错检验 — 由ICMP协议完成 实际上,任何IP协议模块,都必须提供ICMP实现。
62
IP协议主要内容 IP协议概述 IP数据报 IP地址 子网和掩码 IP协议的主要功能
报头(20Bytes的固定部分和变长的可选部分) +TCP数据 IP地址 32bits的二进制地址,由网络标识位和主机标识位组成。 子网和掩码 为了便于管理,任何网络可以再划分成子网。子网对内部网络独立存在,对远程网络是透明的。 IP协议的主要功能 无连接的数据报传输 分段,分段的传输和控制,分段重组 数据报路由 路由表和工作流程 差错处理 — ICMP协议
63
IP数据报 IP数据报由报头和正文部分构成,正文部分就是来自传输层的数据。
TCP Segment IP数据报
64
IP报头 Version:4 bits (版本域) IHL: 4 bits (IP Header Length)
目前使用最广的v4,最新的版本是v6。 IHL: 4 bits (IP Header Length) 最小为5,最大为15,单位为32-bit。 Type of Service:8 bits (服务类型域) Bits 0-2:Precedence,8种不同的优先级。 Bit :0 = Normal Delay,1 = Low Delay Bit :0 = Normal Throughput,1 = High Throughput Bit :0 = Normal Relibility,1 = High Relibility Bit 6-7:Reserved for Future Use 目前,几乎所有路由器都忽略服务类型域。
65
IP报头 Total length:16 bits (总长度域) Identification:16 bits (标识域)
包括报头和正文,最长为65535字节。 Identification:16 bits (标识域) 用于让目的主机判断新来的分段属于那个分组,属于同一分组的分段具有同样的标识值。 Flags:3 bits Bit 0:reserved, must be zero Bit 1:(DF) 0 = May Fragment, 1 = Don't Fragment. DF位置1,表示不允许路由器对该数据报分段,因为目的主机不能重组分段。这意味着该数据报可能需要绕过最优路径上的小分组网络,而选择次优路由。所有机器都能够接收小于等于576字节的分组/分段。 Bit 2:(MF) 0 = Last Fragment, 1 = More Fragments. 除最后一个段外的所有段都要置MF位。
66
IP报头 Fragment offset:3 bits (段偏移量) Time To Live:8 bits (生存期TTL)
此域的基本单位是8 bytes。 除最后段外的其他段的取值应是8字节的倍数。 Time To Live:8 bits (生存期TTL) 用于限制分组的生存周期,防止其在网络中无限制的转发。 在实际实现中,分组/分段每经过一个路由器TTL减1,为0则丢弃,并给源主机发送一个告警分组。 Protocol: 8 bits (协议域) 上层使用哪种传输协议。 如果传输层协议是TCP,取值为6;如果传输层协议是UDP,取值为17。
67
IP报头 Header checksum:16 bits (头部校验和) Source Address:32 bits (源地址)
算法:报头的每16位求反,循环相加(进位加在末尾),后再求反。如果报头正确,结果应为零。 按照经验,这个简单的算法是够用了,但也可以用CRC校验来代替。 头部校验和在每个节点都需要重新计算。 Source Address:32 bits (源地址) 发送主机的IP地址。 Destination Address:32 bits (目的地址) 接收主机的IP地址。
68
IP报头 Options:variable (选项) 选项域便于为后续版本引进新信息,提供了可扩展能力。
每种选项用一个字节标明选项类型,一个字节标明长度(可有可无),其余时若干数据字节。每种选项的总长度为4字节的倍数,不够则填充,最长为40字节。 已经定义了五种选项,但是并不是所有的路由器都支持全部五种选项。
69
IP报头选项 Security(安全性) Strict source routing (严格源路由)
Back IP报头选项 Security(安全性) 说明信息的安全程度。实际上,所有路由器都忽略此选项。 Strict source routing (严格源路由) 将从源到目的地的完整路径上所有的IP地址都记录下来。数据报必须严格地按照这条路径传送。 当路由器崩溃时,该字段可用于发送紧急分组或测量时间。 Loose source routing (松散源路由) 同样是一系列的IP地址,但只要求该数据报按照指定次序遍历所列的路由器,不是一条严格路径,可以穿越其它路由器。 Record route (记录路由) 另该数据报穿越的路由器将其IP地址加到选项域,但现在已经不够用了。 Time stamp (时间戳) 在记录路由的同时还记录一个32位的时间标记,用于路由算法的纠错。
Similar presentations