1、尹尹 霞霞清华大学计算机科学与技术系清华大学计算机科学与技术系计算机网络技术研究所计算机网络技术研究所2000 年年 11 月月21日日计 算 机 网 络 原 理 n网络层概述 n网络层的地位n网络层需要解决的问题n数据报和虚电路n网络层提供的服务n拥塞控制算法 n拥塞控制的基本原理n开环控制n拥塞预防策略n通信量整形(漏桶和令牌桶)n流说明n闭环控制n虚电路网络中的拥塞控制n抑制分组n负载丢弃nInternet网络层协议n路由算法n最优化原则n最短路径路由算法n洪泛算法n基于流量的路由算法n距离向量路由算法n链路状态路由算法n分级路由 n网络互联技术 n网络互联设备n常用网络互联技术n级联虚
2、电路n无连接网络互联n隧道技术n互联网路由n分段n防火墙计 算 机 网 络 原 理 n当今流行的通信技术n传统的电信网络:线路交换、x.25、帧中继、ATM。n计算机网络:ARPANET、INTERNET等。n有线电视网络。n计算机网络中的网络层至关重要n网络层是通信子网的最高层,关系着整个网络的运行控制。n网络层需要解决的问题是确定分组从源地址到目的地址是如何路由的。n网络层利用数据链路层提供的服务,为传输层提供服务。网络层处理端到端传输的最低层。n在广播网络中,路由选择很简单,所以网络层也很薄,甚至不存在。而在大型网络中,分组不得不跨越若干个网络到达目的地址,这其中的种种问题就需要由网络层
3、来解决。计 算 机 网 络 原 理 n网络层为了能够了解通信子网的拓扑结构,以便选择路由,需要解决以下问题:n屏蔽各种不同类型网络之间的差异n需要统一数据格式n需要统一网络地址n实现全网的数据传输n建立跨越网络的虚电路n网络之间实现分组的寻址和转发n网络层的两种实现方式n虚电路(virtual circuit):提供面向连接的服务。n类似于电话,先建立连接,之后依次发送分组,最后关闭连接。n避免对每个分组进行路由。n数据报(datagram):提供无连接的服务。n类似于发送信件。对每个数据报(对于无连接中的独立分组称作数据报)分别进行路由。计 算 机 网 络 原 理 n计算机网络总是由资源子网
4、和通信子网组成。通信交换技术是指数据信息如何在通信子网的各个结点之间进行传输的。通常存在三种交换技术:线路交换、报文交换和分组交换。还存在某几个技术的融合,即混合交换。n线路交换(circuit switching)在网络中利用可切换的物理通信线路直接连接通信双方。n最常见的例子是电话系统。n线路交换包括三种状态:线路建立、数据传送、线路拆除。n线路交换方式中通道是专用的,利用效率低,并存在延迟。n报文交换(message switching)是指信息以报文(逻辑上完整的信息段)为单位进行。计 算 机 网 络 原 理 HHHAR5R2R3Router1R4HBMMMMMn发送报文的主机在发送之
5、前,要将报文的目的地址附加在报文前面。然后将报文发送到网络中的结点中。n每个网络中的结点将完整地接收报文,暂存报文,然后将报文发送到下一个更接近目的主机的结点中。如此操作,直至将报文发送到目的主机为止。计 算 机 网 络 原 理 n分组交换结合报文交换和线路交换的优点,采用存储转发机制,但是规定了传输数据的单位长度。n过长的报文被分成较小的单位(分组packet),依次发送。n如何管理这些分组的正确传输:数据报和虚电路。n数据报(datagram):每个分组被单独处理。n每个分组带有自己的目的地址和序号被发出,由通信子网中的结点进行路由选择。n在所有分组到达了目的主机后,再将各个分组按照序号编
6、排起来。n虚电路(virtual circuit):n在发送任何分组之前,首先在发送主机和目的主机之间建立一条逻辑连接,即在通信子网中确定一条用于本次传输数据用的结点序列。n建立虚电路后,所有的分组都将按照循序依次被发送到目的主机。n当所有的分组都发送之后,虚电路将被拆除。在虚电路方法中,每个分组无须进行路径选择。n每个主机可以和另一个主机建立若干个虚电路,每个主机也可以同时和若干主机个建立虚电路。计 算 机 网 络 原 理 计 算 机 网 络 原 理 n路由器内存空间与带宽的权衡n虚电路占用路由器中的表空间n每个数据报都携带完整的目的/源地址,浪费带宽n连接建立时间与地址查找时间的权衡n虚电
7、路需要在建立连接时花费时间n数据报则在每次路由时过程复杂n服务质量和健壮性的权衡n虚电路方式很容易保证服务质量QoS(Quality of Service),适用于实时操作,但比较脆弱。通信线路的故障,对于虚电路而言有时是致命的。n数据报不太容易保证服务质量,但是对于通信线路的故障,却很容易得到补偿。计 算 机 网 络 原 理 MHHHAR5R2R1R3R4HBM1M3M2M1M2M3M1M2M3n请判断是虚电路还是数据报?计 算 机 网 络 原 理 n网络层为传输层提供的服务n面向连接服务:将复杂的功能放在网络层(通信子网)。n建立连接n传输数据n拆除连接n无连接服务:将复杂的功能放在传输层
8、。n只负责传输分组。n通信子网提供的服务(面向连接或无连接)与通信子网结构(虚电路或数据报)无关。n面向连接的服务用虚电路来实现(比较合理)n面向连接的服务用数据报来实现n面向无连接的服务用虚电路来实现n面向无连接的服务用数据报来实现(比较合理)计 算 机 网 络 原 理 计 算 机 网 络 原 理 n网络层的地位n确定分组从源地址到目的地址如何进行路由。n网络层需要解决的问题n屏蔽各种不同类型网络之间的差异n实现全网的数据传输n网络层的两种实现方式 数据报和虚电路n都属于分组交换,采用存贮转发机制。n数据报(datagram):每个分组被单独处理,每个分组带有自己的目的地址和序号被发出。n虚
9、电路(virtual circuit):先在发送主机和目的主机之间建立一条逻辑连接,所有的分组按照循序依次被发送。最后虚电路将被拆除。在虚电路方法中,每个分组无须进行路径选择。n网络层提供的服务n面向连接的服务和无连接的服务。计 算 机 网 络 原 理 n路由算法是网络层软件的一部分n子网采用数据报方式,每个分组都要做路由选择。n子网采用虚电路方式,只需在建立连接时做一次路由选择。n路由算法应具有的特性n正确性(correctness)、简单性(simplicity)、健壮性(robustness)、稳定性(stability)、公平性(fairness)、最优性(optimality)n路由
10、算法分类n非自适应算法(静态路由算法):按照预先计算好的(off-line)信息进行路由。n自适应算法(动态路由算法):根据网络拓扑结构,通信量等地变化来改变路由。计 算 机 网 络 原 理 n最优化原则(optimality principle)n如果路由器 J 在路由器 I 到 K 的最优路由上,那么从 J 到 K 的最优路由会落在同一路由上。n汇集树(sink tree)n路由算法的目的是找出并使用汇集树。n从所有的源结点到一个给定的目的结点的最优路由的集合形成了一个以目的结点为根的树,称为汇集树。计 算 机 网 络 原 理 n静态路由算法n最短路径选择(Shortest Path Ro
11、uting)n洪泛算法(Flooding Routing)n基于流量的路由算法(Flow-Based Routing)n动态路由算法n距离向量路由算法(Distance Vector Routing)n链路状态路由算法(Link State Routing)n分级路由(Hierarchical Routing)计 算 机 网 络 原 理 n基本思想n构建子网的拓扑图,图中的每个结点代表一个路由器,每条弧代表一条通信线路。n目的是构建两个路由器间的路由,算法是在子网拓扑图中找出最短路径。n得到最短路径,有不同的测量路径长度的方法:n计算结点数量n计算地理距离n计算传输延迟n计算距离、信道带宽等参
12、数的加权函数nnDijkstra算法是其中的一种计算最短路径的算法。计 算 机 网 络 原 理 n每个结点用从源结点沿已知最佳路径到本结点的距离来标注,标注分为临时性标注和永久性标注。开始时,所有结点都为临时性标注,标注为无穷大。n源结点标注为0,且为永久性标注,令其为工作结点。n检查与工作结点相邻的临时性结点,若该结点到工作结点的距离与工作结点的标注之和小于该结点的标注,则用新计算得到的和重新标注该结点。n在整个图中查找具有最小值的临时性标注结点,将其变为永久性结点,并成为下一轮检查的工作结点。n重复第三、四步,直到目的结点成为工作结点。nDijkstra算法的图例。nDijkstra算法的
13、程序:与算法的区别是从目的结点开始。计 算 机 网 络 原 理 计 算 机 网 络 原 理 计 算 机 网 络 原 理 n基本思想n把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。n主要问题n洪泛要产生大量重复分组。n解决措施n每个报头包含站点计数器,每经过一站计数器减1,为0时则丢弃该分组。n记录下分组扩展的路径,防止它第二次扩散到已经扩散过的路径中。n较实用的方法选择性洪泛算法(selective flooding)n洪泛法的一种改进:将进来的每个分组仅发送到与正确方向接近的线路上。计 算 机 网 络 原 理 n应用情况n洪泛算法由于过于浪费路由器和线路的资源,在实际应用中
14、很难被直接采用,但还是有一些用处的。n在军事领域中,由于需要极好的健壮性,扩散法可以一展身手。n在分布式数据库中,有时需要并行地更新所有数据库,这时洪泛算法也是最佳方案。n因为洪泛算法总是能够选择最短的路径,可以产生一个最短的延迟。洪泛算法可以作为一种尺度衡量标准来评价其它路由算法。计 算 机 网 络 原 理 n基本思想n既考虑拓扑结构,又兼顾网络负荷。n前提:每对结点间平均数据流是相对稳定和可预测的。n根据网络带宽和平均流量,可得出平均分组延迟,因此路由算法就演变为寻找网络中连接两个路由器的线路上具有最小平均分组延迟的问题。n需要预知的信息n网络拓扑结构。n通信量矩阵Fij,即线路ij之间的
15、平均通信量。n线路带宽矩阵Cij,即线路ij 之间允许的最大通信量。n临时的路由算法。n图例。计 算 机 网 络 原 理 计 算 机 网 络 原 理 根据队列原理,线路平均分组延迟的计算公式为:T=1/(C-)1/=800 bit计 算 机 网 络 原 理 n属于动态路由算法,最初用于ARPANET,DECnet等网络。n基本思想:每个路由器维护一张表,表中列出了到每个目的地址的最佳距离和线路,并通过与邻居结点交换信息来更新表。n表(路由表)的构成:以子网中其它路由器为表的索引,到达目的结点的最佳输出线路,和到达目的结点所需时间或距离。n路由器需要知晓自己到邻居结点的“距离”。所用的度量标准可
16、以为站点、估计的时间延迟等。n如果为站点,本路由器到每个邻居结点的距离都为1。n如果是延迟,本路由器就发送一个要对方立即响应的ECHO分组,用来回时间除以2即得到延迟时间,n每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。n邻居结点X发来的表中,X到路由器i的距离为Xi。本路由器到X的距离为m,则本路由器经过X到i的距离为Xi+m。根据不同邻居发来的信息,计算Xi+m,取最小值,更新本路由器的表。n注意:在计算中不使用本路由器中的老路由表。计 算 机 网 络 原 理 路由器J计算到达路由器C的最新路由nJAC=8+25=33msnJIC=1
17、0+18=28msnJHC=12+19=31msnJKC=6+36=42ms其中JIC是最好的。因此在路由器J的新路由表中填上到C的延迟为28ms,经过路由器I。计 算 机 网 络 原 理 n缺陷无穷计算问题n对好消息反应迅速:在最长路径为N各结点的子网中,在N次交换之内,所有的路由器都会指导新增的线路和路由器。n对坏消息反应迟钝:对于已经消失的结点,相互欺骗。n图例如下。计 算 机 网 络 原 理 n水平分裂算法基本思想n工作过程与距离向量算法相同,区别在于到X的距离不向真正通向X的邻居结点报告。从而使得坏消息以每次一个结点的速度传播。n举例:如右图。n在路由信息的交换中,B知道可以直达A,
18、并告诉C,通过B到C路径为1。C得到B发来的路由信息后,告诉D通过C到达A距离为2,告诉B通过C到达A为无穷。D得到C发来的路由信息后,告诉E通过D到达A距离为3,告诉C通过D到达A为无穷。n当A下网后,n第一次交换:B发现到达A的直达路线没有了,而且C也向B说到达A为无穷,故B将其到达A的距离设置为无穷。n第二次交换:C得到B的通知,B到达A为无穷;同时D也告诉C,通过D到达A为无穷,故C将其到达A的距离设置为无穷。n以次类推,在第四次交换的时候,E也知道A不可达了。ABCDE计 算 机 网 络 原 理 n水平分裂虽然广泛使用,但有时候会失败。n如右图。n开始时,A和B到D的举例都为2,C到
19、D的举例为1。n假设CD线路断了,使用水平分裂,A和B都告诉C,它们不能到达D,同时C自己也发现直达D的线路断了,于是C很快认定D不可达了。n但是,A认为B有一条通向D长度为2的路径,通过B经过3个结点可到达D。类似,B也这样认为。于是两个结点每交换一次信息,到达D的距离就增加1,直至加大无穷。计 算 机 网 络 原 理 n距离向量路由算法的主要问题n由于延迟度量仅仅是队列长度,在选择路由时没有考虑线路带宽。n即使使用了水平分裂,路由收敛速度依然慢。n在1979年前,ARPANET上都采用距离向量路由算法,但是之后,即为链路状态路由算法所替代。n链路状态路由算法的简单步骤n发现邻居结点,并学习
20、它们的网络地址。n测量到每个邻居结点的延迟或开销。n将所有学习到的内容封装成一个分组。n将这个分组发送给所有其它路由器。n计算到每个其它路由器的最短路径。计 算 机 网 络 原 理 n发现邻居结点,并学习它们的网络地址。n路由器启动后,通过发送HELLO分组,并得到邻居路由器的响应来发现邻居结点。n路由器的名称必须是唯一的。n当两个或多个路由器连在一个LAN时,引入人工结点。n图例。计 算 机 网 络 原 理 n测量到每个邻居结点的延迟或开销,一种直接的方法是:发送一个要对方立即响应的ECHO分组,来回时间除以2即为延迟时间。n如果在测量延迟时间的时候,考虑负载,会是什么情况?(自学)n将所有
21、学习到的内容封装成一个分组,即在信息收集完毕后,构造一个包含所有数据的分组。n该分组的结构为:发送方的标识符、序号、年龄、邻居结点列表(邻居结点标识符,线路开销值)。n创建链路状态分组的时机:一是定期创建,一是在发生重大事件后创建。计 算 机 网 络 原 理 n链路状态分组的发布算法n基本思想:洪泛链路状态分组。n为控制洪泛,每个分组中增加一个序号域,每次发送新分组时加1。n路由器记录信息对(源路由器,序号),当一个链路状态分组到达时,若是新的,则分发;若是重复的,则丢弃;若序号比路由器记录中的最大序号小,则认为过时而丢弃。n基本算法所产生的问题n序号循环使用会混淆。n路由器崩溃后,所有的序号
22、丢失,从0开始记,以后所有的新到分组都可能被当作重复分组而被拒绝。n序号在发送出去后出现错误。计 算 机 网 络 原 理 n基本算法的改进方案n为了避免序号重复,使用32位的序号。n解决序号丢失和出错的方法是增加年龄(age)域,每秒钟年龄减1,至零则丢弃。n链路状态分组到达后,延迟一段时间(被放置在一个保持区中),并与其它已到达的来自同一路由器的链路状态分组比较序号,丢弃重复分组和超龄分组。n为了防止链路出错,所有的链路状态分组都需要应答。计 算 机 网 络 原 理 n在路由器积累了一整套网络的链路状态分组后,就可以通过计算得到整个网络的结构。可以利用Dijkstra算法计算得到每个其它路由
23、器的最短路径。n基于链路状态的路由协议nOpen Shortest Path First(OSPF)nIntermediate System-Intermediate System(IS-IS)计 算 机 网 络 原 理 n网络规模增长带来的问题n路由器中的路由表增大。n路由器为选择路由而占用的内存、CPU时间和网络带宽增大。n解决办法 分级路由n对于大型网络分而治之,每个路由器只知道自己所在子网的路由信息,而不去了解其他子网的内部结构。n根据需要,可以分成区域(regions)、聚类(clusters)、区(zones)和组(groups)n图例。n分级路由带来的问题n路由表中的路由不一定是
24、最优路由。计 算 机 网 络 原 理 计 算 机 网 络 原 理 n最优化原则n路由算法的目的是找出并使用汇集树。n最短路径路由算法n目的是构建两个路由器间的路由,算法是在子网拓扑图中找出最短路径。Dijkstra算法。n洪泛算法n把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。n基于流量的路由算法n根据网络带宽和平均流量,可得出平均延迟,因此路由问题归结为找产生网络最小延迟的路由算法。n距离向量路由算法n根据两个结点间的队列长度来完成路由选择,但是最大的问题是无穷计算,而且水平分裂也不能完全解决所有的问题。n链路状态路由算法n发现邻居结点n测量线路开销n将所有学习到的内容封装
25、成一个分组n发布链路状态信息n计算新路由n分级路由n对于大型网络分而治之,每个路由器只知道自己所在子网的路由信息,而不去了解其他子网的内部结构。计 算 机 网 络 原 理 n拥塞(congestion):网络中存在过多分组的时候,网络性能降低,这种情况被称为拥塞。图例n造成拥塞的原因n多个输入对应一个输出,只增加内存,并不能解决问题。n慢速处理器。n低带宽线路。n针对某个因素的解决方案,只能对提高网络性能起到一点点作用,甚至可能仅仅是转移了影响性能的瓶颈。n拥塞控制(congestion control)与流量控制(flow control)n拥塞控制需要确保通信子网能够承载用户提交的通信量,
26、是一个全局性问题,涉及主机、路由器等很多因素。n流量控制与点到点的通信量有关,主要解决快速发送方与慢速接收方的问题,是局部问题,一般都是基于反馈进行控制的。计 算 机 网 络 原 理 计 算 机 网 络 原 理 n根据控制论,拥塞控制可分为两类。n开环控制(防患于未然)n通过良好的设计解决问题,以避免拥塞发生。一旦运行,就不再做中间阶段的更正。n进行开环控制的工具需要决定何时接收新的分组、何时丢弃分组、丢弃哪些分组,制定网络中不同地点的计划表等。利用开环进行拥塞控制时,所有这些操作都不会考虑网络的当前状态。n闭环控制(因地制宜)n基于反馈机制。其工作过程为:n监控系统,发现何时何地发生拥塞。n
27、把发生拥塞的消息传给能采取动作的站点。n调整系统操作,解决拥塞问题。n闭环控制操作需要完成以下三个问题:何为拥塞、如何反馈和如何解决。计 算 机 网 络 原 理 n何为拥塞 衡量网络拥塞的参数n缺乏缓冲区造成的丢包率n平均队列长度n超时重传的分组数目n平均分组延迟n分组延迟变化(Jitter)n如何反馈 反馈方法n向负载的发生源发送一个报警分组,这同时加强了拥塞。n在分组结构中保留一个位或一个域来表示发生拥塞,一旦发生拥塞,路由器将所有输出分组的拥塞位填充,报警。n主机或路由器主动地、周期性地发送探报(probe),查询是否发生拥塞。n如何解决 利用拥塞控制算法计 算 机 网 络 原 理 n影
28、响拥塞的网络设计策略n数据链路层n重传、乱序缓存、确认、流控n网络层n子网中的虚电路和数据报、分组排队和服务策略、分组丢弃策略、路由算法、分组的生存时间管理n传输层n重传、乱序缓存、确认、流控、超时中止计 算 机 网 络 原 理 n通信量整形(Traffic Shaping)的基本思想n网络上,突发的通信量是造成拥塞的主要原因。n强迫分组以某种可以预见的速率传送,减少拥塞,这种方法就被称为通信量整形。n此方法广泛应用于ATM网络中。n漏桶算法和令牌桶算法都可以实现通信量整形。n漏桶算法(The Leaky Bucket Algorithm)n基本原理:图例。n在计算机中的使用n漏桶有限内部队列
29、;水 通信量,需要发送的分组。n分组到达队列时,队列满,分组被丢弃;队列空,分组放置在队尾。n效果n将用户发出的不平滑的分组流转变成网络中平滑的分组流。n漏桶算法既可以用于分组长度固定的协议,如ATM,使用分组计数;也可用于可变长分组的协议,如IP,使用字节计数。计 算 机 网 络 原 理 无论水流进桶的速度为多少,只要桶中有水,水从桶中外漏的速度是恒定的。桶空了,速度为零。桶满了,水外泄。计 算 机 网 络 原 理 n由于漏桶算法不够灵活,因此加入令牌机制。n令牌桶算法(The Token Bucket Algorithm)n基本思想:漏桶存放令牌,每T秒产生一个令牌,分组发送传输之前必须获
30、得一个令牌,传输之后删除该令牌。n令牌代表的不是发送一个分组的权利,而是可以发送的字节数。计 算 机 网 络 原 理 一台计算机以25MB/s的速率生成数据,网络也可以该速率运行,但路由器的最佳工作速率为2MB/s。右图说明了1M的分组在不同的算法下是如何发送的。如何计算最大速率的突发时间长度:令:令牌桶容量为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计 算 机 网 络 原 理 n通信量整形策略不同n
31、漏桶算法不允许空闲主机积累发送权。n令牌桶算法允许空闲主机积累发送权,以便以后发送大的突发数据,最大为桶的大小。n桶中存放的内容不同n漏桶中存放的是数据,桶满了丢弃数据。n令牌桶中存放的是令牌,桶满了丢弃令牌,不丢弃数据。计 算 机 网 络 原 理 n流说明(Flow Specification)n当发送方、接收方和子网都达成一致后,通信量整形才能发挥最佳效果。所以,一个数据流的发送方、接收方和通信子网三方认可的、描述发送数据流的模式和希望得到的服务质量的数据结构,被称为流说明。n对发送方的流说明,子网和接收方可以做出三种答复:同意、拒绝、其它建议。计 算 机 网 络 原 理 n方法一 n许可
32、控制(admission control):一旦发生拥塞,就不允许再建立新的虚电路,直到拥塞解除为止。n方法二n在发生拥塞后可以建立新的虚电路,但要绕开发生拥塞的地区。n方法三n资源预留:建立虚电路时,主机与子网达成协议,子网根据协议在虚电路上为此连接预留资源。计 算 机 网 络 原 理 n抑制分组(Choke Packets)n路由器监控输出线路及其它资源的利用情况,超过某个阈值,则此资源进入警戒状态。n每个新分组到来,检查它的输出线路是否处于警戒状态。若是,向源主机发送抑制分组,分组中指出发生拥塞的目的地址。同时将源分组打上标记(为了以后不再产生抑制分组)后,正常转发。n源主机收到抑制分组
33、后,按一定比例减少发向特定目的地的通信量,并在固定时间间隔内忽略指示同一目的地的抑制分组。然后开始监听,若此线路仍然拥塞,则主机在固定时间内减轻负载、忽略抑制分组;若在监听周期内没有收到抑制分组,则增加通信量。n通常采用的通信量增减策略是:n减少时按一定比例减少,保证快速解除拥塞。n增加时以常量增加,防止很快导致拥塞。计 算 机 网 络 原 理 n由于采用抑制分组时,源端的抑制行为是自愿的。为了公平地对待自觉和不自觉的源端,就提出公平队列(fair queueing)算法。n每个输出线存在多个队列,每个源端对应一个队列,当输出线空闲时,路由器将轮巡这几个队列,从下一个队列中选出第一个字节。n由
34、于某些服务器非常重要,就可以对每个队列采用不同的优先权。例如:可以一次机会发送两个或者更多的字节。计 算 机 网 络 原 理 n在高速、长距离的网络中,由于源主机响应太慢,抑制分组算法对拥塞控制的效果并不好,可采用Hop-by-Hop抑制分组算法。nHop-by-Hop Choke Packets的基本思想n抑制分组对它经过的每个路由器都起作用。n能够迅速缓解发生拥塞处的拥塞。n要求上游路由器有更多的缓冲区。计 算 机 网 络 原 理 计 算 机 网 络 原 理 n当所有上述算法都不能消除拥塞时,路由器只得采用负载丢弃(Load Shedding),将分组丢弃。n路由器可以随意挑选分组来丢弃,
35、但还可以根据不同的服务,采取不同丢弃策略n文件传输,优先丢弃新分组,wine策略;n多媒体服务,优先丢弃旧分组,milk策略;n早期丢弃分组,会减少拥塞发生的概率,提高网络性能。计 算 机 网 络 原 理 n拥塞控制的基本原理n网络中存在过多分组的时候,网络性能降低,产生拥塞。n开环控制(通过良好的设计解决问题)n拥塞预防策略:数据链路层、网络层、传输层都策略可以进行预防n通信量整形n强迫分组以某种可以预见的速率传送。n漏桶和令牌桶均可实现通信量整形。n流说明n闭环控制n虚电路网络中的拥塞控制n许可控制、绕开拥塞、资源预留n抑制分组:向源主机发送抑制分组。n为了公平,可以采用加权公平算法(字节
36、轮巡)。n为了得到快速的抑制效果,可采用Hop-by-Hop抑制分组,抑制分组对其所经过的路由器都起作用。n负载丢弃:对不同服务采用不同的丢弃策略。计 算 机 网 络 原 理 n互联网(internet):两个或多个网络构成互联网。n为什么会存在多种不同的网络(协议)?n历史原因:不同公司的网络产品大量使用。n价格原因:网络产品价格低使很多人有权决定使用何种网络。n技术原因:不同网络采用不同技术、不同硬件、不同协议。计 算 机 网 络 原 理 n物理层设备n网卡(NIC Card)n安装在计算机主板上的电路板插板。网卡的作用是将计算机与通信设施连接起来,将计算机中的数字信号转换成通信线路上能够
37、传送的电子信号或者电磁信号。n 调制解调器(Modem)n是一种信号转换装置。完成数字信号和模拟信号之间的转换。n中继器(Repeater)n是一种比较简单的单向传送设备。它能够接收一条链路上的数据,并以同样的速度串形地将该数据传送到另一条链路上,而且,所有的链路都按一个方向传输数据。n对弱信号进行放大或再生,以便延长传输距离。n集线器(Hub)n是局域网中的连接设备,具有多个端口,可连接多台计算机。在局域网中常常将分散的计算机连接起来,形成星型拓扑结构的局域网。计 算 机 网 络 原 理 n数据链路层设备 n网桥(Bridge)n是局域网中的连接设备。网桥将一个大的局域网分成不同的网段,以扩
38、展网络距离,减轻网络负担。n网络层设备 n多协议路由器(Multiprotocol Router)n广域网中的连接设备,将多个网络连接起来,形成一个更大的网络。其主要的功能是路由和转发分组。必要时,做网络层协议转换。n交换机(Switch)n有些交换机工作在数据链路层,例如帧中继交换机、ATM交换机等,(有些交换机工作在网络层),为源和目的地址之间建立连接。交换机一般都工作在虚电路模式,在数据链路建立之后,直接将数据转发出去,不需要再进行路径选择,延迟小。计 算 机 网 络 原 理 n传输层设备 n传输网关(Ttransport Gateway)n在传输层转发字节流。n应用层设备 n应用网关(
39、Application Gateway)n在应用层实现互联。计 算 机 网 络 原 理 n半网关当一个网关处于两个不同的机构时,可以将其从中间分开,切分成两个部分,由导线连接,两个半网关之间遵循一个中性协议。n任意一种网关都可以用在任意一层。n实际的网络互联设备总是很混乱。n对于一个纯的网桥而言,它只检查数据链路帧的帧头,而不关心帧中网络层的分组。n对于一个纯的路由器而言,它只需要分析分组的报头,按照所发现的地址尽力传送,根本不关心下层是用什么方法和何种帧结构发送。n市场的很多设备都是将网桥和路由器的功能组合在一起的。计 算 机 网 络 原 理 计 算 机 网 络 原 理 计 算 机 网 络
40、原 理 n级联虚电路(Concatenated Virtual Circuits)的工作过程n建立连接n当目的主机不在本子网内时,则在子网内找一个离目的网络最近的路由器,与之建立一条虚电路;该路由器与外部网关建立虚电路;该网关与下一个子网中的一个路由器建立虚电路。n重复上述操作,直到到达目的主机。n传输数据n相同连接的分组沿同一虚电路按照顺序传输;n网关根据需要转换分组格式和虚电路号。n拆除连接计 算 机 网 络 原 理 n无连接网络互联(Connectionless Internetworking)的工作过程n无连接网络互联的工作过程与数据报子网的工作过程相似。n每个分组独立路由,不保证分组
41、按顺序到达,提高网络利用率。其中,连接不同子网的多协议路由器做协议转换,包括分组格式转换和地址转换等。计 算 机 网 络 原 理 n级连虚电路n优点n路由器预留缓冲区等资源,保证服务质量。n分组按序号传输。分组的报文头部较短。n缺点n路由器需要大量内存存储虚电路信息。n一旦发生拥塞,没有其它路由,健壮性差。n如果网络中有一个不可靠的数据报子网,级连虚电路很难实现。n无连接网络互联n优点n能够容忍拥塞,并能适应拥塞。n健壮性好。n可用于多种网络互联。n无连接网络互联的缺点n分组的报文头部较长。n不能保证分组按序号到达。n不能保证服务质量。计 算 机 网 络 原 理 n路由器1剥掉局域网帧头、帧尾
42、,将得到的IP分组封装到广域网帧中(如PPP),IP地址不变,帧地址=路由器2-帧地址;n广域网传输;n路由器2剥掉广域网帧头、帧尾,将得到的IP分组封装到局域网帧中,IP地址不变,帧地址=主机2-MAC地址;n局域网传输;n主机2接收。n如果源和目的主机所在网络类型相同,但连接它们的是一个不同类型的网络,可采用隧道技术(Tunneling)。n隧道技术的工作过程n主机1构造一个分组,IP地址=主机2-IP,将分组封装到局域网帧中,帧地址=路由器1-MAC;n局域网传输;计 算 机 网 络 原 理 n互联网路由(Internetwork Routing)的工作过程n互联网络的路由与单独子网的路
43、由过程相似,只是更复杂。n一般使用两级路由算法:n内部网关协议(interior gateway protocol):RIP,OSPFn外部网关协议(exterior gateway protocol):BGPn自治系统AS(Autonomous System):使用统一算法的一个网络。计 算 机 网 络 原 理 n每种网络都对分组的最大长度有限制,因为:n硬件要求。n操作系统,例如所有缓冲区都是512字节。n协议,例如分组长度域的比特数。n与标准的兼容性;n希望减少传输出错的概率。n希望避免一个分组占用信道时间过长。n当长的分组经过分组长度短的网络时,网关要将长分组分成若干段(fragmen
44、t),每段作为独立的分组传输。n发送主机:将报文分组。n路由器:将长的分组分段。n接收主机:将得到的(有/没有)被切割的段重组起来,构成完整的报文。计 算 机 网 络 原 理 n路由器在对分组做划分时,必须按照能够重组源数据流的方式对段进行编号,即标记段。有很多种标记段的方法。n树型标记法n例,分组0分成三段,分别标记为0.0,0.1,0.2,段0.0构成的分组被分成三段,分别标记为0.0.0,0.0.1,0.0.2。n如果在确保所有分段都能到达情况下,无论分段是否按顺序到达,这种方法可以使分段正确重组。但是,如果某个分段丢失,就会出现的问题,因为需要做端到端重传。这样,如果分组通过不同的路径
45、,就会有不同的分段效果,从而导致重组出错。n偏移量法n定义一个基本段长,使其能够通过所有网络。n分组被分段时,除最后一个段小于等于基本段长外,其他段的段长都等于基本段长,一个分组可以包括几个段。n每个分段的报头中包括:原始分组标识,分组中该段的偏移量,是否为最后段的指示位。计 算 机 网 络 原 理 计 算 机 网 络 原 理 n分段重组过程对其它网络透明n网关将长的分组分段后,每段都要经过同一出口网关,并在那里重组。例如:ATM网络。n所带来的问题n出口网关需要知道何时所有分组都到齐。n所有分组必须从同一出口网关离开。n长分组经过一系列短分组网络时,需要反复地分段重组,开销大。n分段重组过程
46、对其它网络不透明n中间网关不做重组,而由目的主机做。n所带来的问题n对主机要求高,能够重组。n每个段都要有一个报头,网络开销增大。计 算 机 网 络 原 理 计 算 机 网 络 原 理 n为防止网络中的 信息泄露出去或不好的信息渗透进来,在网络边缘设置防火墙(firewall)。n防火墙的一种常用配置:两个路由器,根据某种规则表,进行分组过滤;一个应用网关,审查应用层信息。计 算 机 网 络 原 理 n网络互联设备:中继器、网桥、路由器、各种网关。n级联虚电路:在网关和网关之间建立虚电路连接。n无连接网络互联:每个分组独立路由。n隧道技术:两个同类型网络通过不同类型的网络连接时使用。n互联网路由:使用两级的分级路由法,在自治系统内部的为内部网关算法,在自治系统之间的是外部网关算法。n分段n分段的时候可以通过树形结构或者偏移量方法来标记段,n分段重组,可以由网关来重组也可以由接收方主机完成重组。n防火墙:常用配置是两个路由器根据某种规则表进行分组过滤,一个应用网关审查应用层信息。