Download presentation
Presentation is loading. Please wait.
1
第7章 网络层
2
学习本章方法 本章是本书最重要的一章,其中7.5节是重中之重.
1) 算法着重理解,也可自己发明新的算法或改进已有的算法,并能根据现有的算法编写程序 2) IP地址,子网的划分,超网的构造 网络层是向传输层提供以下服务: 路由选择 拥塞控制 网络互联
3
第7 章网络层 ISO 定义 网络层为一个网络连接的两个传送实体间交换网络服务数据单元提供功能和规程的方法,它使传送实体独立于路由选择和交换的方式。 网络层与数据链路层的区别: 网络层是将源端发出的分组经各种途径送到目的端。 而数据链路层仅将数据帧从传输介质的一端送到另一端。因此,网络层是处理端到端数据传输的最低层。 网络层要解决的关键问题 了解通信子网的拓扑结构,选择路由。
4
7.2 路由算法 •路由算法 •理想的路由算法 – 就是产生路由表的算法; – 是网络层软件的一部分。
– 子网采用数据报方式,每个包都要做路由选择; – 子网采用虚电路方式,只需在建立连接时做一次 路由选择。 •理想的路由算法 – 正确性(correctness):算法必须正确; – 简单性(simplicity): 算法开销小,效率高; – 健壮性(robustness): 算法能适应网络负荷和拓朴的变化; – 稳定性(stability): 算法必须收敛,不能振荡发散; 振荡:算法得出的路由是在一些路由之间回荡。
5
路由算法分类 – 公平性(fairness):算法对所有用户必须是平等的; – 最优性(optimality):算法应提供最佳路径选择;
最佳:链路长度、传输时延、数据速率、链路容量、链路 差错率、链路丢失率等。 路由算法分类 – 非自适应算法(静态路由算法); 简单、开销小,但不能适应网络状态变化; 采用离线方式求出路由表。 – 自适应算法(动态路由算法); 复杂、开销大,但能适应网络状态变化;
6
7.2.1最优化原则(optimality principle)
• 从所有的源结点到一个给定的目的结点的最优路由的集合形成了一个以目的结点为根的树,称为汇集树(sink tree) ; • 路由算法的目的是找出并使用汇集树。
7
最短路径路由算法 属于静态路由算法 基本思想 测量路径长度的方法
构建子网的拓扑图,图中的每个结点代表一个路由器,每条弧代表一条通信线路。为了选择两个路由器间的路由,算法在图中找出最短路径。 测量路径长度的方法 结点数量 地理距离 传输延迟 距离、信道带宽等参数的加权函数
8
Dijkstra算法 采用标注的方式求出某一结点的汇集树和路由表。
①每个结点用从源结点沿已知最佳路径到本结点的距离来标注,标注分为临时性标注和永久性标注; ②初始时,所有结点都为临时性标注,标注为无穷大; ③将源结点标注为0,且为永久性标注,并令其为工作结点; ④检查与工作结点相邻的临时性结点,若该结点到工作结点的距离与工作结点的标注之和小于该结点的标注,则用新计算得到的和重新标注该结点; ⑤在整个图中查找具有最小值的临时性标注结点,将其变为永久性结点,并成为下一轮检查的工作结点; 重复第④、⑤步,直到所有结点成为工作结点;
9
请指出AD最短路径
10
Dijkstra算法程序
11
7.2.3洪泛算法(也叫扩散算法) 属于静态路由算法 基本思想 主要问题 解决措施
把收到的每一个包,向除了该包到来的线路外的所有输出线路发送。 主要问题 产生大量重复包,导致出现拥塞现象。 解决措施 方法1:每个包头包含站点计数器(端到端的最大段数),每经过一站计数器减1,为0时则丢弃该包。 方法2:在每个节点建立一个登记表,凡经过此节点的进行登记,若再次经过该节点,丢弃该包。
12
选择性扩散算法(selective flooding)
扩散法的一种改进。 将进来的每个包仅发送到与正确方向接近的线路上。 应用情况 路由器和线路的资源过于浪费,实际很少直接采用; 具有很强的健壮性,常用于军用网; 作为衡量标准评价其它路由算法。
13
7.2.4基于流量的路由算法 属于静态路由算法 基本思想 需要预知的信息 既考虑拓扑结构,又兼顾网络负荷;
前提:每对结点间平均数据流相对稳定和可预测; 根据网络带宽和平均流量,可得出平均包延迟,因此路由选择问题归结为找产生网络最小延迟的路由选择算法; 提前离线计算。 需要预知的信息 网络拓扑结构; 通信量矩阵Fij,即线路ij之间的平均通信量。 线路带宽矩阵Cij,即线路ij 之间允许的最大通信量。 路由算法(可能是临时的)。
15
7.2.5距离矢量路由算法 属于动态路由算法 最初应用于ARPANET,后来应用于因特网的RIP协议(路由信息协议)。 基本思想
每个结点通过测取与相邻结点的距离,再依据与其相邻结点交换的距离信息,间接地求出路由表; 各结点周期性地测取相邻结点的距离; 向相邻结点发送它到每个目的结点的距离表,同时,它也接收每个邻居结点发来的距离表; 结点中的老路由表在计算中不被使用。
16
操作过程:每个路由器维护一张表,表中列出了到每个目的地址的最佳距离和线路,并通过与邻居结点交换信息来更新表。
表(路由表)的构成:以子网中其它路由器为表的索引,到达目的结点的最佳输出线路,和到达目的结点所需时间或距离。 路由器需要知晓自己到邻居结点的“距离”。所用的度量标准可以为站点、估计的时间延迟等。 如果为站点,本路由器到每个邻居结点的距离都为1。 如果是延迟,本路由器就发送一个要对方立即响应的ECHO分组,用来回时间除以2即得到延迟时间, 每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。 邻居结点X发来的表中,X到路由器i的距离为Xi。本路由器到X的距离为m,则本路由器经过X到i的距离为Xi + m。根据不同邻居发来的信息,计算Xi + m,取最小值,更新本路由器的表。 注意:在计算中不使用本路由器中的老路由表。
19
路由器J计算到达路由器C的最新路由 JAC=8+25=33ms JIC=10+18=28ms JHC=12+19=31ms JKC=6+36=42ms 其中JIC是最好的。 因此在路由器J的新路由表中填上到C的延迟为28ms,经过路由器I。
20
距离向量路由算法的缺陷 缺陷——无穷计算问题
对好消息反应迅速:在最长路径为N各结点的子网中,在N次交换之内,所有的路由器都会指导新增的线路和路由器。 对坏消息反应迟钝:对于已经消失的结点,相互欺骗。 图例如下。
21
解决方案之一水平分裂 水平分裂算法基本思想
工作过程与距离向量算法相同,区别在于到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不可达了。 A B C D E
22
水平分裂不能解决所有的问题 水平分裂虽然广泛使用,但有时候会失败。 如右图。 开始时,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,直至加大无穷。
23
7.2.6链路状态路由算法 距离向量路由算法的主要问题 由于延迟度量仅仅是队列长度,在选择路由时没有考虑线路带宽。
即使使用了水平分裂,路由收敛速度依然慢。 在1979年前,ARPANET上都采用距离向量路由算法,但是之后,即为链路状态路由算法所替代。 链路状态路由算法的简单步骤 发现邻居结点,并学习它们的网络地址。 测量到每个邻居结点的延迟或开销。 将所有学习到的内容封装成一个分组。 将这个分组发送给所有其它路由器。 计算到每个其它路由器的最短路径。
24
步骤1:发现邻居结点 发现邻居结点,并学习它们的网络地址。 路由器启动后,通过发送HELLO分组,并得到邻居路由器的响应来发现邻居结点。
路由器的名称必须是唯一的。 当两个或多个路由器连在一个LAN时,引入人工结点。 图例。
25
步骤2/3:测量线路开销和封装分组 测量到每个邻居结点的延迟或开销,一种直接的方法是:发送一个要对方立即响应的ECHO分组,来回时间除以2即为延迟时间。 如果在测量延迟时间的时候,考虑负载,会是什么情况? 将所有学习到的内容封装成一个分组,即在信息收集完毕后,构造一个包含所有数据的分组。 该分组的结构为:发送方的标识符、序号、年龄、邻居结点列表(邻居结点标识符,线路开销值)。 创建链路状态分组的时机:一是定期创建,一是在发生重大事件后创建。
26
步骤4:发布链路状态分组 链路状态分组的发布算法 基本思想:洪泛链路状态分组。 为控制洪泛,每个分组中增加一个序号域,每次发送新分组时加1。
路由器记录信息对(源路由器,序号),当一个链路状态分组到达时,若是新的,则分发;若是重复的,则丢弃;若序号比路由器记录中的最大序号小,则认为过时而丢弃。 基本算法所产生的问题 序号循环使用会混淆。 路由器崩溃后,所有的序号丢失,从0开始记,以后所有的新到分组都可能被当作重复分组而被拒绝。 序号在发送出去后出现错误。
27
步骤4:发布链路状态分组 基本算法的改进方案 为了避免序号重复,使用32位的序号。
解决序号丢失和出错的方法是增加年龄(age)域,每秒钟年龄减1,至零则丢弃。 链路状态分组到达后,延迟一段时间(被放置在一个保持区中),并与其它已到达的来自同一路由器的链路状态分组比较序号,丢弃重复分组和超龄分组。 为了防止链路出错,所有的链路状态分组都需要应答。
28
步骤5:计算新路由 在路由器积累了一整套网络的链路状态分组后,就可以通过计算得到整个网络的结构。可以利用Dijkstra算法计算得到每个其它路由器的最短路径。 基于链路状态的路由协议 Open Shortest Path First (OSPF) Intermediate System-Intermediate System (IS-IS)
29
7.2.7分层路由 网络规模增长带来的问题 路由器中的路由表增大。 路由器为选择路由而占用的内存、CPU时间和网络带宽增大。
解决办法 —— 分层路由 对于大型网络分而治之,每个路由器只知道自己所在子网的路由信息,而不去了解其他子网的内部结构。 根据需要,可以分成区域(regions)、聚类(clusters)、区(zones)和组(groups)… 图例。 分级路由带来的问题 路由表中的路由不一定是最优路由。
30
分级路由图例
31
小结 — 路由算法 最优化原则 路由算法的目的是找出并使用汇集树。 距离向量路由算法
最短路径路由算法 目的是构建两个路由器间的路由,算法是在子网拓扑图中找出最短路径。Dijkstra算法。 洪泛算法 把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。 基于流量的路由算法 根据网络带宽和平均流量,可得出平均延迟,因此路由问题归结为找产生网络最小延迟的路由算法。 距离向量路由算法 根据两个结点间的队列长度来完成路由选择,但是最大的问题是无穷计算,而且水平分裂也不能完全解决所有的问题。 链路状态路由算法 发现邻居结点 测量线路开销 将所有学习到的内容封装成一个分组 发布链路状态信息 计算新路由 分级路由 对于大型网络分而治之,每个路由器只知道自己所在子网的路由信息,而不去了解其他子网的内部结构。
32
7.3 拥塞控制算法 拥塞(congestion) 网络资源上有太多的分组时,导致性能会下降。 Σ对资源的需求> 可用资源
资源:链路容量、交换结点中的缓存和处理机等。 拥塞产生的原因 – 结点缓存容量太小;多个输入对应一个输出; – 结点处理机速度不高; – 低带宽线路;
33
针对某个因素改善拥塞 若结点缓存容量太小,到达结点的分组无空间暂存;
若增大结点缓存容量,而链路容量和处理机速度未提高,分组排队会很长,导致时延增大,可能因超时发送端进行重发,拥塞更加恶化; 提高结点处理机速度,增大链路容量,固然可以改善拥塞,但可能瓶颈转移到其它地方。 因此,针对某个因素的解决方案,只能对提高网络性能起到一定的好处,甚至仅仅是转移了影响性能的瓶颈。
34
拥塞控制与流量控制的差别 拥塞控制(congestion control) 流量控制(flow control)
需要确保通信子网能够承载用户提交的通信量,是一个全局性过程,涉及主机、路由器等很多因素; 流量控制(flow control) 与点到点的通信量有关,主要解决快速发送方与慢速接收方的问题,是局部过程,一般都是基于反馈进行控制的。
37
拥塞控制的分类 根据控制论,拥塞控制可分为两类。 开环控制(防患于未然)
通过良好的设计解决问题,以避免拥塞发生。一旦运行,就不再做中间阶段的更正。 进行开环控制的工具需要决定何时接收新的分组、何时丢弃分组、丢弃哪些分组,制定网络中不同地点的计划表等。利用开环进行拥塞控制时,所有这些操作都不会考虑网络的当前状态。 闭环控制(因地制宜) 基于反馈机制。其工作过程为: 监控系统,发现何时何地发生拥塞。 把发生拥塞的消息传给能采取动作的站点。 调整系统操作,解决拥塞问题。 闭环控制操作需要完成以下三个问题:何为拥塞、如何反馈和如何解决。
38
闭环控制 何为拥塞 —— 衡量网络拥塞的参数 缺乏缓冲区造成的丢包率 平均队列长度 超时重传的分组数目 平均分组延迟
分组延迟变化(Jitter) 如何反馈 —— 反馈方法 向负载的发生源发送一个报警分组,这同时加强了拥塞。 在分组结构中保留一个位或一个域来表示发生拥塞,一旦发生拥塞,路由器将所有输出分组的拥塞位填充,报警。 主机或路由器主动地、周期性地发送探报(probe),查询是否发生拥塞。 如何解决 —— 利用拥塞控制算法
39
开环控制 — 拥塞预防策略 影响拥塞的网络设计策略 数据链路层 网络层 传输层 重传、乱序缓存、确认、流控
子网中的虚电路和数据报、分组排队和服务策略、分组丢弃策略、路由算法、分组的生存时间管理 传输层 重传、乱序缓存、确认、流控、超时中止
40
开环控制 — 通信量整形 通信量整形(Traffic Shaping)的基本思想 网络上,突发的通信量是造成拥塞的主要原因。
强迫分组以某种可以预见的速率传送,减少拥塞,这种方法就被称为通信量整形。 此方法广泛应用于ATM网络中。 漏桶算法和令牌桶算法都可以实现通信量整形。 漏桶算法(The Leaky Bucket Algorithm) 基本原理: 在计算机中的使用 漏桶——有限内部队列;水 —— 通信量,需要发送的分组。 分组到达队列时,队列满,分组被丢弃;队列空,分组放置在队尾。 效果 将用户发出的不平滑的分组流转变成网络中平滑的分组流。 漏桶算法既可以用于分组长度固定的协议,如ATM,使用分组计数;也可用于可变长分组的协议,如IP,使用字节计数。
41
无论水流进桶的速度为多少,只要桶中有水,水从桶中外
漏的速度是恒定的。桶空了,速度为零。桶满了,水外泄。
42
令牌桶算法 由于漏桶算法不够灵活,因此加入令牌机制。 令牌桶算法 (The Token Bucket Algorithm)
令牌代表的不是发送一个分组的权利,而是可以发送的字节数。
43
小结 —拥塞控制算法 拥塞控制的基本原理 网络中存在过多分组的时候,网络性能降低,产生拥塞。 开环控制 (通过良好的设计解决问题) 闭环控制
拥塞预防策略:数据链路层、网络层、传输层都策略可以进行预防 通信量整形 强迫分组以某种可以预见的速率传送。 漏桶和令牌桶均可实现通信量整形。 流说明 闭环控制 虚电路网络中的拥塞控制 许可控制、绕开拥塞、资源预留 抑制分组:向源主机发送抑制分组。 为了公平,可以采用加权公平算法(字节轮巡)。 为了得到快速的抑制效果,可采用Hop-by-Hop抑制分组,抑制分组对其所经过的路由器都起作用。 负载丢弃:对不同服务采用不同的丢弃策略。
44
7.4 网络互联 互联网(internet):两个或多个网络构成互联网。 因特网(Internet):是互联网的著名例子。
45
网络互联示例
46
多种不同网络(协议)存在的原因 网络互联要解决的问题 历史原因:不同公司的网络产品大量使用;
价格原因:网络产品价格低,更多的人有权决定使用何种网络; 技术原因:不同网络采用不同技术、不同硬件、不同协议。 网络互联要解决的问题 不同的寻址方式、不同的最大分组长度; 不同的超时控制、不同的路由选择技术; 不同的差错控制、不同的网络接入机制; 不同的管理方式、不同的网络计费方式; 不同的服务(面向连接服务和无连接服务);
47
网络互联设备(P130) 图 7-14 OSI各层使用的中继系统
48
7.4.1网络互联方法 — 级联虚电路 级联虚电路(Concatenated Virtual Circuits)的工作过程 建立连接
当目的主机不在本子网内时,则在子网内找一个离目的网络最近的路由器,与之建立一条虚电路;该路由器与外部网关建立虚电路;该网关与下一个子网中的一个路由器建立虚电路。 重复上述操作,直到到达目的主机。 传输数据 相同连接的分组 沿同一虚电路按 照顺序传输; 网关根据需要转 换分组格式和虚 电路号。 拆除连接
49
7.4.2网络互联方法 — 无连接网络互联(数据报模型)
无连接网络互联(Connectionless Internetworking)的工作过程 无连接网络互联的工作过程与数据报子网的工作过程相似。 每个分组独立路由,不保证分组按顺序到达,提高网络利用率 。其中,连接不同子网的多协议路由器做协议转换,包括分组格式转换和地址转换等。
50
级连虚电路与无连接网络互联的比较 级连虚电路 优点 缺点 无连接网络互联 无连接网络互联的缺点 路由器预留缓冲区等资源,保证服务质量。
分组按序号传输。分组的报文头部较短。 缺点 路由器需要大量内存存储虚电路信息。 一旦发生拥塞,没有其它路由,健壮性差。 如果网络中有一个不可靠的数据报子网,级连虚电路很难实现。 无连接网络互联 能够容忍拥塞,并能适应拥塞。 健壮性好。 可用于多种网络互联。 无连接网络互联的缺点 分组的报文头部较长。 不能保证分组按序号到达。 不能保证服务质量。
51
7.4.3网络互联方法 — 隧道技术 (为了将两个不同的网络相互连接起来)
如果源和目的主机所在网络类型相同,但连接它们的是一个不同类型的网络,可采用隧道技术(Tunneling)。 隧道技术的工作过程 主机1构造一个分组,IP地址 = 主机2-IP,将分组封装到局域网帧中,帧地址 = 路由器1-MAC; 局域网传输; 路由器1剥掉局域网帧头、帧尾,将得到的IP分组封装到广域网帧中(如PPP),IP地址不变,帧地址 = 路由器2-帧地址; 广域网传输; 路由器2剥掉广域网帧头、帧尾,将得到的IP分组封装到局域网帧中,IP地址不变,帧地址 = 主机2-MAC地址; 局域网传输; 主机2接收。
52
互联网路由(Internetwork Routing)的工作过程 互联网络的路由与单独子网的路由过程相似,只是更复杂。
7.4.4网络互联方法 — 互联网路由 互联网路由(Internetwork Routing)的工作过程 互联网络的路由与单独子网的路由过程相似,只是更复杂。 一般使用两级路由算法: 内部网关协议(interior gateway protocol):RIP,OSPF 外部网关协议(exterior gateway protocol):BGP 自治系统AS(Autonomous System):使用统一算法的一个网络。
53
7.4.5网络互联方法 — 分段 (如何把大的分组传向小的分组目标网络)
每种网络都对分组的最大长度有限制,因为: 硬件要求。 操作系统,例如所有缓冲区都是512字节。 协议,例如分组长度域的比特数。 与标准的兼容性; 希望减少传输出错的概率。 希望避免一个分组占用信道时间过长。 当长的分组经过分组长度短的网络时,网关要将长分组分成若干段(fragment),每段作为独立的分组传输。 发送主机:将报文分组。 路由器:将长的分组分段。 接收主机:将得到的(有/没有)被切割的段重组起来,构成完整的报文。
54
分段重组策略 分段重组过程对其它网络透明 网关将长的分组分段后,每段都要经过同一出口网关,并在那里重组。例如:ATM网络。 所带来的问题
出口网关需要知道何时所有分组都到齐。 所有分组必须从同一出口网关离开。 长分组经过一系列短分组网络时,需要反复地分段重组,开销大。 分段重组过程对其它网络不透明 中间网关不做重组,而由目的主机做。 对主机要求高,能够重组。 每个段都要有一个报头,网络开销增大。
55
7.4.6 防火墙 为防止网络中的 信息泄露出去或不好的信息渗透进来,在网络边缘设置防火墙(firewall)。
防火墙的一种常用配置:两个路由器, 根据某种规则表,进行分组过滤;一个应用网关,审查应用层信息。
56
防火墙定义 防火墙就是一个位于计算机和它所连接的网络之间的软件。该计算机流入流出的所有网络通信均要经过此防火墙。 防火墙的功能 防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。 为什么使用防火墙 防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等,但至少这是你自己的保护选择。 防火墙的类型 防火墙有不同类型。一个防火墙可以是硬件自身的一部分,你可以将因特网连接和计算机都插入其中。防火墙也可以在一个独立的机器上运行,该机器作为它背后网络中所有计算机的代理和防火墙。最后,直接连在因特网的机器可以使用个人防火墙。
58
3.防火墙的种类 防火墙技术可根据防范的方式和侧重点的不同而分为很多种类型,但总体来讲可分为二大类:分组过滤、应用代理。
分组过滤(包过滤)(Packet filtering):作用在网络层和传输层,它根据分组包头源地址,目的地址和端口号、协议类型等标志确定是否允许数据包通过。只有满足过滤逻辑的数据包才被转发到相应的目的地出口端,其余数据包则被从数据流中丢弃。 应用代理(Application Proxy):也叫应用网关(Application Gateway),它作用在应用层,其特点是完全"阻隔"了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。实际中的应用网关通常由专用工作站实现。
59
4.分组过滤型防火墙 分组过滤或包过滤,是一种通用、廉价、有效的安全手段。之所以通用,因为它不针对各个具体的网络服务采取特殊的处理方式;之所以廉价,因为大多数路由器都提供分组过滤功能;之所以有效,因为它能很大程度地满足企业的安全要求。 包过滤在网络层和传输层起作用。它根据分组包的源、宿地址,端口号及协议类型、标志确定是否允许分组包通过。所根据的信息来源于IP、TCP或UDP包头。 包过滤的优点是不用改动客户机和主机上的应用程序,因为它工作在网络层和传输层,与应用层无关。但其弱点也是明显的:据以过滤判别的只有网络层和传输层的有限信息,因而各种安全要求不可能充分满足;在许多过滤器中,过滤规则的数目是有限制的,且随着规则数目的增加,性能会受到很大地影响;由于缺少上下文关联信息,不能有效地过滤如UDP、RPC一类的协议;另外,大多数过滤器中缺少审计和报警机制,且管理方式和用户界面较差;对安全管理人员素质要求高,建立安全规则时,必须对协议本身及其在不同应用程序中的作用有较深入的理解。因此,过滤器通常是和应用网关配合使用,共同组成防火墙系统。
60
5.应用代理型防火墙 代理型防火墙是内部网与外部网的隔离点,起着监视和隔绝应用层通信流的作 用。同时也常结合入过滤器的功能。它工作在OSI模型的最高层,掌握着应用系统中可用作安全决策的全部信息。
61
防火墙的局限性 存在着一些防火墙不能防范的安全威胁,如防火墙不能防范不经过防火墙的攻击。例如,如果允许从受保护的网络内部向外拨号,一些用户就可能形成与Internet的直接连接。另外,防火墙很难防范来自于网络内部的攻击以及病毒的威胁。
62
入侵检测技术 入侵检测系统(IDS):由于入侵检测系统的市场在近几年中飞速发展,许多公司投入到这一领域上来。Internet Security System(ISS)、思科、赛门铁克等公司都推出了自己的产品。 系统组成 IETF将一个入侵检测系统分为四个组件:事件产生器;事件分析器;响应单元;事件数据库。 系统分类 根据检测对象的不同,入侵检测系统可分为主机型和网络型。 基于主机的监测。主机型入侵检测系统就是以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。这种系统经常运行在被监测的系统之上,用以监测系统上正在运行的进程是否合法。 网络型入侵检测。它的数据源是网络上的数据包。往往将一台机子的网卡设于混杂模式(promisc mode),对所有本网段内的数据包并进行信息收集,并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。
63
入侵检测技术 对各种事件进行分析,从中发现违反安全策略的行为是入侵检测系统的核心功能。从技术上,入侵检测分为两类:一种基于标志,另一种基于异常情况。 对于基于标识的检测技术来说,首先要定义违背安全策略的事件的特征,如网络数据包的某些头信息。检测主要判别这类特征是否在所收集到的数据中出现。此方法非常类似杀毒软件。 而基于异常的检测技术则是先定义一组系统“正常”情况的数值,如CPU利用率、内存利用率、文件校验和等(这类数据可以人为定义,也可以通过观察系统、并用统计的办法得出),然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。 两种检测技术的方法、所得出的结论有非常大的差异。基于异常的检测技术的核心是维护一个知识库。对于已知的攻击,它可以详细、准确的报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以(至少在理论上可以)判别更广范、甚至未发觉的攻击。
64
总结 入侵检测作为一种积极主动地安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。入侵检测系统面临的最主要挑战有两个:一个是虚警率太高,一个是检测速度太慢。现有的入侵检测系统还有其他技术上的致命弱点。因此,可以这样说,入侵检测产品仍具有较大的发展空间,从技术途径来讲,除了完善常规的、传统的技术(模式识别和完整性检测)外,应重点加强统计分析的相关技术研究。 但无论如何,入侵检测不是对所有的入侵都能够及时发现的,即使拥有当前最强大的入侵检测系统,如果不及时修补网络中的安全漏洞的话,安全也无从谈起。
65
入侵诱骗技术(honeypot and honeynet)
端口扫描技术(NAMP) Snort and sniffer
66
网络互联小结 网络互联设备:中继器、网桥、路由器、各种网关。 级联虚电路:在网关和网关之间建立虚电路连接。
无连接网络互联:每个分组独立路由。 隧道技术:两个同类型网络通过不同类型的网络连接时使用。 互联网路由:使用两级的分级路由法,在自治系统内部的为内部网关算法,在自治系统之间的是外部网关算法。 分段 分段的时候可以通过树形结构或者偏移量方法来标记段, 分段重组,可以由网关来重组也可以由接收方主机完成重组。 防火墙:常用配置是两个路由器根据某种规则表进行分组过滤,一个应用网关审查应用层信息。
67
7.5 因特网的网络层 因特网(Internet) 是目前世界上最大的分布式计算机网络的集合。
在因特网中不存在一个统一管理的单位,而是有各个本地网自己管理。 因特网中最重要的是TCP/IP协议,这个网络通讯协议使任意数目的计算机网可以互联在一起。 IP协议(Internet Protocol) 网际协议(网络层的协议),实现异种机及异种网的互连。 TCP 协议(Transmission Control Protocol) 传输控制协议(传输层的协议)
68
IP协议(Internet Protocol)
地址解析协议ARP 反向地址解析协议RARP 因特网控制报文协议ICMP 在网络层,Internet可以看成是自治系统的集合,是由网络组成的网络。 网络之间互连的纽带是IP协议。
69
IP数据报 IP数据报= 首部+ 数据 IP数据报首部 包含报文的控制信息 源IP地址、目的IP地址;
本报文携带的运输层数据属于何种协议(TCP、UDP、...); 本报文长度(最大65535,实际使用576字节); 首部校验和; … …
70
IP数据报-首部格式 IP数据报首部=固定部分(20个字节) +变长的可选部分(最长40字节)
71
位 4 8 16 19 24 31 首 部 固 定 部 分 20 字 节 版 本 首部长度 区 分 服 务 总 长 度 标 识 标志 片 偏 移 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 首 部 数 据 部 分 发送在前 IP 数据报
72
1. IP 数据报首部的固定部分中的各字段 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 位
4 8 16 19 24 31 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
73
首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节。 位 4
4 8 16 19 24 31 版 本 首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节。 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
74
在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。
位 4 8 16 19 24 31 区分服务——占 8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。 只有在使用区分服务(DiffServ)时,这个字段才起作用。 在一般的情况下都不使用这个字段 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
75
总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。
4 8 16 19 24 31 总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 字节。 总长度必须不超过最大传送单元 MTU。 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
76
标识(identification) 占 16 位,
4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标识(identification) 占 16 位, 它是一个计数器,用来产生数据报的标识。 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
77
标志(flag) 占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。
4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 标志(flag) 占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。 MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。 标志字段中间的一位是 DF (Don't Fragment) 。 只有当 DF 0 时才允许分片。
78
片偏移(12 位)指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。 位 4 8 16 19 24 31
4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 片偏移(12 位)指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
79
生存时间(8 位)记为 TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值。
4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 生存时间(8 位)记为 TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值。
80
协议(8 位)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理过程
4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 协议(8 位)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理过程 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
81
运输层 TCP UDP ICMP IGMP OSPF 网络层 首部 数 据 部 分 协议字段指出应将数据 部分交给哪一个进程 IP 数据报
82
这里不采用 CRC 检验码而采用简单的计算方法。
位 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 首部检验和(16 位)字段只检验数据报的首部 不检验数据部分。 这里不采用 CRC 检验码而采用简单的计算方法。 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
83
发送端 接收端 字 1 字 1 16 位 16 位 数 据 报 首 部 字 2 字 2 16 位 16 位 … … 置为全 0 检验和 16 位 检验和 … … 字 n 字 n 16 位 16 位 16 位 反码算术 运算求和 16 位 反码算术 运算求和 取反码 IP 数据报 取反码 16 位 检验和 16 位 结果 若结果为 0, 则保留; 否则,丢弃该数据报 数据部分 不参与检验和的计算 数据部分
84
源地址和目的地址都各占 4 字节 位 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识
4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源地址和目的地址都各占 4 字节 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
87
点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址 是 32 位 二进制代码
每隔 8 位插入一个空格 能够提高可读性 将每 8 位的二进制数 转换为十进制数 采用点分十进制记法 则进一步提高可读性
89
IP地址使用范围 IP地址的分配 由Internet最高管理机构(ICANN)分配与管理。
我国用户可向亚太网络信息中心APNIC申请( 交费)。 主机地址由本网络自己分配与管理。
90
有几个特殊地址要记住: 网络地址:主机地址全0时:表示为本网络地址;如: 就是一个B类网络地址. 广播地址:主机地址全1时:在本网络上进行广播; 例如: 就是一个B类广播地址. 本地回路测试地址:网络地址127保留给诊断用, IP地址为127.X.X.X:用于本地软件回路测试; 私有地址:这种地址不能在公网上出现,只能在内部网络中,下面都是私有地址: 个A类地址 — 个B类地址 — 个C类地址
91
IP地址与硬件地址 假定:主机通过局域网进行网络互连。 在IP层抽象的互连网上只能看到的是IP数据报。
在具体的物理网络的链路层只能看到的是MAC帧。
92
不直接使用硬件地址进行通信? 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。 连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
93
地址解析协议ARP (The Address Resolution Protocol)
解决IP地址与MAC地址的转换(映射)问题。 IP地址是主机在网络层中的地址,为32bit; MAC地址是数据链路层中的硬件地址,为48bit; 要发送的IP数据报必须转变为MAC帧,才能发送到网络。因此需要在IP地址和MAC 地址之间进行转换; 若用户使用主机名字标识主机,因此需要在主机名字和IP地址之间进行转换; 对于小型网络,主叫主机通过hosts文件(主机名字到IP地址转换的映射表)进行转换; 对于大型网络,主叫主机通过网络中的域名系统DNS的服务器进行转换;
94
每个主机有一个ARP高速缓存,里面有IP地址到硬件地址的映射表;
主机A首先在ARP高速缓存中查找主机B的IP地址对应的硬件地址,然后将此硬件地址写入MAC帧,再通过局域网发往此硬件地址。
95
若ARP高速缓存中没有主机B的映射项,主机自动运行ARP进程来寻找主机B的硬件地址:
①ARP进程广播发送一个ARP请求分组,内含主机B的IP地址; ②所有主机上运行的ARP进程都收到此ARP请求分组; ③主机B在ARP请求分组中见到自己的IP地址,就向主机A发送一个ARP响应分组,内含主机B的硬件地址; ④主机A收到主机B的ARP响应分组后,就在ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
96
反向地址解析协议RARP(The Reverse Address Resolution Protocol)
解决MAC地址与IP地址的转换(映射)问题。 主要用于无盘工作站启动; RARP的工作过程: – 在局域网中有一个主机充当RARP服务器;内建硬件地址到IP地址的映射表。 – 无盘工作站广播发送一个RARP请求分组,内含自己的硬件地址; – RARP服务器收到RARP请求分组后,从映射表中查出该无盘工作站的I P地址, 然后发回一个RARP响应分组,内含无盘工作站的IP地址; – 无盘工作站收到RARP响应分组后,就获得自己的IP地址。
97
8.子网的划分 分而治之:为了便于管理和使用,可以将网络分成若干供内部使用的部分-子网。对外界,该网络还是一个单独的网络。
98
一个单位被分配到IP地址的网络号,后面的主机号由本单位进行分配。本单位所有主机都使用同一个网络号。
利用子网掩码来提供划分后的分界情况。
99
若网络号是本单位网络,再检查IP地址中的子网络号(IP地址和子网掩码进行与运算),
采用子网掩码-相当于三级分址; 在本单位网络中的路由器收到一个分组时,首先检查分组的IP地址中的网络号(此时不需子网掩码信息,因为,从IP地址即可判断它是A类、B类、C类地址); 若网络号不是本单位网络,则转发出去; 若网络号是本单位网络,再检查IP地址中的子网络号(IP地址和子网掩码进行与运算), 若子网号不是本子网,则转发到本单位相应的子网; 若子网号是本子网,则依据主机号把分组送到本路由器相应的端口上的主机;
100
划分子网的基本思路 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
从主机号借用若干个位作为子网号 subnet-id,而 主机号 host-id 也就相应减少了若干个位。 IP地址 ::= {<网络号>, <子网号>, <主机号>}
101
划分子网的基本思路(续) 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。 最后就将 IP 数据报直接交付目的主机。
102
一个未划分子网的 B 类网络145.13.0.0 网络 145.13.0.0 … … … 我的网络地址 是 145.13.0.0
… R2 网络 R1 … R3 … 所有到网络 的分组均到达此路由器
103
划分为三个子网后对外仍是一个网络 网络 145.13.0.0 所有到达网络 145.13.0.0 的分组均到达 此路由器
… R2 子网 子网 … R1 R3 子网 … 网络
104
划分子网后变成了三级结构 当没有划分子网时,IP 地址是两级结构。 划分子网后 IP 地址就变成了三级结构。
划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。
105
2. 子网掩码 从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
2. 子网掩码 从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。 使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。
106
IP 地址的各字段和子网掩码 net-id host-id 两级 IP 地址 145 . 13 . 3 . 10 net-id
net-id subnet-id host-id 三级 IP 地址 主机号 子网号为 3 的网络的网络号 子网掩码 子网的 网络地址
107
(IP 地址) AND (子网掩码) = 网络地址
网络号 net-id 主机号 host-id 三级 IP 地址 net-id host-id subnet-id 逐位进行 AND 运算 网络号 子网号 主机号 子网掩码 子网的 网络地址 net-id subnet-id
108
默认子网掩码 A 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.0.0.0
B 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 C 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码
109
子网掩码是一个重要属性 子网掩码是一个网络或一个子网的重要属性。
路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
110
【例7-2】已知 IP 地址是 141.14.72.24,子网掩码是 255.255.192.0。试求网络地址。
(a) 点分十进制表示的 IP 地址 (b) IP 地址的第 3 字节是二进制 (c) 子网掩码是 (d) IP 地址与子网掩码逐位相与 (e) 网络地址(点分十进制表示)
111
【例7-3】在上例中,若子网掩码改为255.255.224.0。试求网络地址,讨论所得结果。
(a) 点分十进制表示的 IP 地址 (b) IP 地址的第 3 字节是二进制 (c) 子网掩码是 (d) IP 地址与子网掩码逐位相与 (e) 网络地址(点分十进制表示) 不同的子网掩码得出相同的网络地址。 但不同的掩码的效果是不同的。
112
求主机地址 P151
113
10. 使用子网掩码的分组转发过程 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
10. 使用子网掩码的分组转发过程 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。 但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。 因此分组转发的算法也必须做相应的改动。
114
在划分子网的情况下路由器转发分组的算法 (1) 从收到的分组的首部提取目的 IP 地址 D。
相应的网络地址匹配。若匹配,则将分组直接交付。 否则就是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。 (4) 对路由表中的每一行的子网掩码和 D 逐位相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
115
【例7-4】已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。
目的网络地址 子网掩码 下一跳 接口 0 接口 1 R2 子网1: 网络地址 子网掩码 H1 子网2:网络地址 子网掩码 1 H2 R2 1 子网3:网络地址 子网掩码 H3
116
主机 H1 要发送分组给 H2 因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上
要发送的分组的目的 IP 地址: R1 的路由表(未给出默认路由器) 目的网络地址 子网掩码 下一跳 接口 0 接口 1 R2 子网1: 网络地址 子网掩码 H1 R1 子网2:网络地址 子网掩码 1 R2 H2 请注意:H1 并不知道 H2 连接在哪一个网络上。 H1 仅仅知道 H2 的 IP 地址是 因此 H1 首先检查主机 是否连接在本网络上 如果是,则直接交付; 否则,就送交路由器 R1,并逐项查找路由表。 1 子网3:网络地址 子网掩码 H3
117
主机 H1 首先将 本子网的子网掩码 255. 255. 255. 128 与分组的 IP 地址 128. 30. 33
主机 H1 首先将 本子网的子网掩码 与分组的 IP 地址 逐比特相“与”(AND 操作) AND 的计算 H1 目的网络地址 子网掩码 下一跳 接口 0 接口 1 R2 子网1: 网络地址 子网掩码 255 就是二进制的全 1,因此 255 AND xyz = xyz, 这里只需计算最后的 128 AND 138 即可。 R1 子网2:网络地址 子网掩码 128 → 138 → 1 H2 逐比特 AND 操作后: → 128 R2 1 逐比特 AND 操作 子网3:网络地址 子网掩码 H1 的网络地址 H3
118
因此 H1 必须把分组传送到路由器 R1 然后逐项查找路由表
目的网络地址 子网掩码 下一跳 接口 0 接口 1 R2 子网1: 网络地址 子网掩码 H1 R1 子网2:网络地址 子网掩码 1 H2 R2 1 子网3:网络地址 子网掩码 H3
119
路由器 R1 收到分组后就用路由表中第 1 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作
R1 收到的分组的目的 IP 地址: R1 的路由表(未给出默认路由器) 目的网络地址 子网掩码 下一跳 接口 0 接口 1 R2 子网1: 网络地址 子网掩码 H1 R1 子网2:网络地址 子网掩码 不一致 1 R2 H2 AND = 不匹配! (因为 与路由表中的 不一致) 1 子网3:网络地址 子网掩码 H3
120
路由器 R1 再用路由表中第 2 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作
R1 收到的分组的目的 IP 地址: R1 的路由表(未给出默认路由器) 目的网络地址 子网掩码 下一跳 接口 0 接口 1 R2 子网1: 网络地址 子网掩码 H1 一致! R1 子网2:网络地址 子网掩码 1 R2 H2 AND = 匹配! 这表明子网 2 就是收到的分组所要寻找的目的网络 1 子网3:网络地址 子网掩码 H3
121
例1: A类网络是很大的网络,每个A类网络中可以有(1)个网络地址. 实际使用中必须把A类网络划分为子网. 如果指定的子网掩码为255
例1: A类网络是很大的网络,每个A类网络中可以有(1)个网络地址.实际使用中必须把A类网络划分为子网.如果指定的子网掩码为 ,则该网络被划分成(2)个子网,C类网络是很少的网络,如果一个公司有2000台主机,则必须给它分配(3)个C类网络.为了使该公司的网络在路由表中只占一行,给它指定的子网掩码必须是(4). A 210 B 212 C D 224 A B C D 2048 A B 8 C 16 D24 A B C D
122
李老师:我是您的学生,我这里有一个题目看不明白,资料也没有查到,麻烦你能帮忙解析一下不?
*给定的IP地址为 ,子网屏蔽码是: ,那么子网号是__(61)__,主机号是__(62)__,直接的广播地址是__(63)__ 。 如果主机地址的头十位用于子网,那么 的子网屏蔽码是__(64)__。 如果子网屏蔽码是 ,那么下面主机 __(65)__ 必须通过路由器才能与主机 通信。 (6l):A B C D (62):A B C D (63):A B C D (64):A B C D (65):A B C D
123
4.3.3 无分类编址 CIDR 1. 网络前缀 划分子网在一定程度上缓解了因特网在发展中遇
到的困难。然而在 1992 年因特网仍然面临三个必 须尽早解决的问题,这就是: B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕! 因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。 整个 IPv4 的地址空间最终将全部耗尽。
124
IP 编址问题的演进 1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。 在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
125
CIDR 最主要的特点 CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。 CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP 地址从三级编址(使用子网掩码)又回到了两级编址。
126
无分类的两级编址 无分类的两级编址的记法是: IP地址 ::= {<网络前缀>, <主机号>} (4-3)
CIDR 还使用“斜线记法”(slash notation),它又称为CIDR记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。 CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
127
CIDR 地址块 /20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。 这个地址块的起始地址是 。 在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。 /20 地址块的最小地址: /20 地址块的最大地址: 全 0 和全 1 的主机号地址一般不使用。
128
/20 表示的地址(212 个地址) 最小地址 所有地址 的 20 位 前缀都是 一样的 最大地址
129
CIDR 记法的其他形式 10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。
/10 隐含地指出 IP 地址 的掩码是 。此掩码可表示为 掩码中有 10 个连续的 1 255 192
130
路由聚合(route aggregation)
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。 路由聚合也称为构成超网(supernetting)。 CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。
131
CIDR 记法的其他形式 10.0.0.0/10 可简写为 10/10,也就是将点分十进制中低位连续的 0 省略。
/10 相当于指出 IP 地址 的掩码是 ,即 网络前缀的后面加一个星号 * 的表示方法 如 *,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号,可以是任意值。
132
构成超网 前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。 这些 C 类地址合起来就构成了超网。
网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。
133
CIDR 地址块划分举例 ISP 大学 X 因特网 三系 四系 二系 一系 206.0.64.0/18 206.0.68.0/22
/23 /24 /25 /25 /25 /25 /25 /25 /26 /26 /26 /26 /26 /26 /26 /26 三系 四系 二系 一系 单位 地址块 二进制表示 地址数 ISP / * 大学 / * 一系 / * 二系 / * 三系 / * 四系 / *
134
CIDR 地址块划分举例 ISP 大学 X /18 因特网 /22 /23 /24 /25 /25 /25 /25 /25 /25 /26 /26 /26 /26 /26 /26 /26 /26 三系 四系 二系 一系 这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 /18 就能找到该 ISP。
135
练习P172:35
136
(2)每个子网的地址中有4位留给主机用,因此共有16个地址。 (3)四个子网的地址块是:
某单位分配到一个地址块 /26。现在需要进一步划分为4个一样大的子网。试问: (1)每一个子网的网络前缀有多长? (2)每一个子网中有多少个地址? (3)每一个子网的地址是什么? (4)每一个子网可分配给主机使用的最小地址和最大地址是什么? (1)每个子网前缀28位。 (2)每个子网的地址中有4位留给主机用,因此共有16个地址。 (3)四个子网的地址块是: 第一个地址块 /28,可分配给主机使用的 最小地址: = /28 最大地址: = /28 第二个地址块 /28,可分配给主机使用的 最小地址: = /28 最大地址: = /28 第三个地址块 /28,可分配给主机使用的 最小地址: = /28 最大地址: = /28 第四个地址块 /28,可分配给主机使用的 最小地址: = /28 最大地址: = /28
137
2. 最长前缀匹配 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。
应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)。 网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。 最长前缀匹配又称为最长匹配或最佳匹配。
138
最长前缀匹配举例 收到的分组的目的地址 D = 206.0.71.130 路由表中的项目:206.0.68.0/22 (ISP)
/25 (四系) 查找路由表中的第 1 个项目 第 1 个项目 /22 的掩码 M 有 22 个连续的 1。 M = 因此只需把 D 的第 3 个字节转换成二进制。 M = AND D = 与 /22 匹配
139
最长前缀匹配举例 收到的分组的目的地址 D = 206.0.71.130 路由表中的项目:206.0.68.0/22 (ISP)
/25 (四系) 再查找路由表中的第 2 个项目 第 2 个项目 /25 的掩码 M 有 25 个连续的 1。 M = 因此只需把 D 的第 4 个字节转换成二进制。 M = AND D = 与 /25 匹配
140
最长前缀匹配 D AND ( ) = / 匹配 D AND ( ) = / 匹配 选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。
141
网际控制报文协议 ICMP 为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP 不是高层协议,而是 IP 层的协议。 ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
142
ICMP 报文的格式 8 16 31 前 4 个字节 都是一样的 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型)
8 16 31 前 4 个字节 都是一样的 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型) ICMP 的数据部分(长度取决于类型) ICMP 报文 首 部 数 据 部 分 IP 数据报
143
1 ICMP 报文的种类 ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
144
ICMP 差错报告报文共有 5 种 终点不可达 源点抑制(Source quench) 时间超过 参数问题
改变路由(重定向)(Redirect)
145
ICMP 差错报告报文的数据字段的内容 IP 数据报的数据字段 收到的 IP 数据报 IP 数据报 首部 8 字节 ICMP 的
前 8 字节 IP 数据报 首部 8 字节 ICMP 差错报告报文 首部 ICMP 差错报告报文 装入 ICMP 报文的 IP 数据报 IP 数据报
146
不应发送 ICMP 差错报告报文 的几种情况 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
147
ICMP 询问报文有两种 回送请求和回答报文 时间戳请求和回答报文 下面的几种 ICMP 报文不再使用 信息请求与回答报文
掩码地址请求和回答报文 路由器询问和通告报文
148
2 ICMP的应用举例 PING (Packet InterNet Groper)
PING 使用了 ICMP 回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
149
PING 的应用举例
150
Traceroute 的应用举例 Tracert www.sohu.com
* * * request time out (是因为现在路由器不允许ping,但最后一定会有一条显示通常
151
7.5.5 IPv6的主要变化P164 更大的地址空间。 – 由32bit变成128bit,增大了296倍; 灵活的首部格式。
简化了协议、加快了分组转发。 – 取消了首部校验和字段; 允许对网络资源的预分配。 – 支持实时性数据(视像)传输; 允许协议继续扩展。 – 适应未来技术的发展。
152
IPv6 IPv6的提出 – 目前使用的IP(IPv4) 不能满足需要; – 主要问题:32bit的IP地址不够用;
– 1992年6月,IETF开提出制定下一代的IP-IPng 即,IPv6; – 1993年,进一步讨论、修改、结合后,形成IPv6; – IPv6与IPv4不兼容,但与其它Internet协议兼容, 如TCP、UDP、OSPF、BGP、DNS等,有时需要 做小的修改。
153
IPv6的地址空间 地址的范围 – 每个地址占128bit,地址空间>3X1038; – 在地球表面,可分配7×1025个地址/米2;
– 若分配100万个地址/微秒,需要1019年完成。 地址的表示 – 使用冒号16进制记法; – 用冒号(:)隔开的8组,每组4位16进制值; 例: 8000:0000:0000:0000:0123:4567:89AB:CDEF 或8000:0:0:0:123:4567:89AB:CDEF
154
– 一组或多组的全0值可以被一对冒号(::)替代,
但是一对冒号只能出现一次。 例: :0:0:0:123:4567:89AB:CDEF 可表示为:8000::123:4567:89AB:CDEF 例: 0:0:0:0:123:4567:89AB:CDEF 可表示为:::123:4567:89AB:CDEF – IPv4地址可以写成一对冒号和用“.”分隔的十进 制数, 例: ::
155
练习题
156
1.试简单说明下列协议的作用:IP、ARP、RARP和ICMP。
IP协议:实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。 ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。 RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。 ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会 因特网组管理协议IGMP:用于探寻、转发本局域网内的组成员关系。
157
2.(1)子网掩码为 代表什么意思? 有三种含义 其一是一个A类网的子网掩码,对于A类网络的IP地址,前8位表示网络号,后24位表示主机号,使用子网掩码 表示前8位为网络号,中间16位用于子网段的划分,最后8位为主机号。 第二种情况为一个B类网,对于B类网络的IP地址,前16位表示网络号,后16位表示主机号,使用子网掩码 表示前16位为网络号,中间8位用于子网段的划分,最后8位为主机号。 第三种情况为一个C类网,这个子网掩码为C类网的默认子网掩码。
158
(2)一网络的现在掩码为255.255.255.248,问该网络能够连接多少个主机?
即 每一个子网上的主机为(2^3)-2=6 台 掩码位数29,该网络能够连接8个主机,扣除全1和全0后为6台。
159
(3)一A类网络和一B网络的子网号subnet-id分别为16个1和8个1,问这两个子网掩码有何不同?
就是 和 的区别
160
(4)一个B类地址的子网掩码是255.255.240.0。试问在其中每一个子网上的主机数最多是多少?
主机数2^12-2
161
(7)C类网络使用子网掩码有无实际意义?为什么?
有实际意义.C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号.如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数相信减少.
162
3.主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程中总共使用了几次ARP?
6次,主机用一次,每个路由器各使用一次。
163
7-33(P171):(1)分组的目的站IP地址为:128. 96. 39. 10。先与子网掩码255. 255. 255
与子网掩码 相与得 ,不等于 。 与子网掩码 相与得 ,经查路由表可知,该项分组经R2转发。 (3)分组的目的IP地址为: ,与子网掩码 相与后得 ,与子网掩码 相与后得 ,经查路由表知,该分组转发选择默认路由,经R4转发。 (4)分组的目的IP地址为: 。与子网掩码 相与后得 。与子网掩码 相与后得 ,经查路由表知,该分组经R3转发。 (5)分组的目的IP地址为: ,与子网掩码 相与后得 。与子网掩码 相与后得 ,经查路由表知,该分组转发选择默认路由,经R4转发。
164
7-40. 在Internet上的某个网络具有子网掩码 255.255.240.0. 它可以处理的最大主机数是多少?
答:对于一个B 类网络,高端16 位形成网络号,低端16 位是子网或主机域。在子网掩码的低端16 位中,最高有效4 位为1111,因此剩下12 位用于主机号。因此,存在4096 个主机地址。但由于全0 和全1 是特别地址,因此最大的主机数目为4094。
Similar presentations