计算机网络第6章网络层机械工业出版社ISBN978-7-111-30641-2计算机网络本章学习内容及要求•掌握–网络层协议的基本概念和知识–掌握IP地址的使用方法•熟悉–通信子网提供“尽力交付”的原因和特点–网络层实现的寻址技术、路由选择算法–分组在网络中的路由选择描述方法–IP分组协议格式及各字段的用途–网络互连方法•了解–ICMP的用途–移动IP技术的实现方法计算机网络6.1网络层涉及的问题•6.1.1网络层实现的功能•6.1.2虚电路服务和数据报服务•6.1.3通信子网的内部结构计算机网络6.1.1网络层实现的功能•网络层实现的功能是最多的•网络层是网络核心(通信子网)的最高层•网络层的协议数据单元是分组(packet)–网络层提供从发送节点(主机)到目的节点(主机)之间的可靠传输和分组的路由选择–发送节点到目的节点之间经过若干个节点(交换节点),节点之间均是点到点的连接–网络层与运输层之间的接口也用做通信子网与端用户的接口–网络层需要解决的问题•网络连接的建立和释放,路由选择,拥塞控制,网络互连,分片和组装,差错检测处理,服务选择,网络寻址计算机网络网络核心的组成计算机网络6.1.2虚电路服务和数据报服务•虚电路VC(virtualcircuit)服务是面向连接的网络服务–在双方通信之前先建立一条逻辑连接–通过发送呼叫连接请求分组,协商沿途经过的节点计算机网络数据报服务•数据报服务是“尽力交付(best-effortservice)”的服务–是没有质量保证的服务–因特网采用的就是数据报服务计算机网络虚电路服务与数据报服务的比较计算机网络6.1.3通信子网的内部结构计算机网络通信子网的内部结构•虚电路服务涉及到–数据电路、逻辑信道、节点缓冲区、逻辑信道连接等概念和技术•在两节点间的数据链路上,可分为几条逻辑信道–一个逻辑信道对应一个输入缓冲区,一个输出缓冲区•虚电路是建立在逻辑信道的基础上–虚呼叫与虚电路都与存储转发相联系•图6.5中仅给出2条虚电路VC1、VC2,因为两条虚电路没有经过节点C,没有给出节点C的虚电路表。虚电路建立的顺序是先建立VC1,再建立VC2–VC1连接的主机或节点途径为:H1—A—B—D—E—H5–VC2连接的主机或节点途径为:H1—A—B—D—H4–读者可以自己建立其它虚电路,在节点虚电路表中填入对应的表项内容,例如:H2—B—D—E—C—H3计算机网络数据报通信子网•数据报服务–每个传输的分组携带完整的目的地址,在通信子网中独立的传输•在每个节点同样要有一张路由表,但不是按照虚电路号查找所要转发到的下一个节点应是哪个•节点按照分组的目的地址,根据路由算法,决定向哪条链路转发分组•可能存在多条连接通路到达目的节点–各个分组会沿着不同的连接通路到达目的节点计算机网络6.2路由选择•6.2.1路由选择概述•6.2.2网络分组的交付•6.2.3路由选择模块与路由表•6.2.4路由技术要素•6.2.5静态路由选择计算机网络6.2.1路由选择概述•路由选择涉及到多个路径的选择和分组转发–路由选择算法是实现最佳路由选择的步骤和方法•在应用时是网络层软件的一部分,用于确定节点收到的分组向哪条链路转发–在每个节点通过查找路由表,寻找适合的转发路径•路由表通常也不指明完整的路径,仅指出去某个目的地址的下一个节点,以及到达该节点的费用–路径选择和转发–路由和路由表–理想的路由算法–在具体应用时的路由算法–最优路径判定计算机网络一个广域网的描述路由选择用于在通信子网传输分组时,给出从源节点到目的节点比较合适的通路,通常根据通过每条路由传输信息所需的费用和时延来比较和确定,这就需要用到路由选择协议网路中的路由选择类似于400米接力赛跑,接力棒从一个位置传递到另一个位置,在传递时仅考虑前往目的地需要到达的下一个位置,不必考虑更后面的位置计算机网络节点路由表的内容和作用计算机网络理想的路由算法•一个理想的路由算法的设计原则包括:–⑴正确和完整性•在节点时延小,使分组迅速、正确的存储和转发–⑵算法是最简单的•算法尽量简单,易实现,开销小–⑶适应性•能适应网络状态的变化,如网络通信量、拓扑结构的变化,及时调整路由–⑷稳定性•路由算法在一定时间阶段应该是稳定的,尽量减少震荡–⑸公平性•使各节点具有较均等的传输机会,使每个连接通路的时延差别不大,公平性与最优性是一对矛盾–⑹最优性•路由选择算法是最佳算法,所谓最佳只是相对的,是比较合理的选择。计算机网络路由选择算法涉及到的参数•⑴跳步数(hopcount)–分组在传输路径上经过的路由器数目•⑵带宽(bandwidth)–是指链路的传输速率•⑶延时(delay)–分组从源节点到目的节点所经过的时间•⑷负载(load)–指通过路由器或线路的单位时间通信量或吞吐量•⑸可靠性(reliability)–指传输过程中的误码率•⑹开销(expense)–指传输过程中的花费,衡量因素可以是链路容量、链路长度、数据速率、传播时延、通信费用、保密等计算机网络6.2.2网络分组的交付•分组交付(packetforwarding)是指–在网络中路由器转发IP分组的物理传输过程与数据报转发交付机制–直接交付–间接交付计算机网络直接交付(Directdelivery)计算机网络间接交付(Indirectdelivery)计算机网络6.2.3路由选择模块与路由表•路由选择模块是一个软件•所进行的路由查询是按层次结构进行的计算机网络FlagsUTherouterisupandrunning.GThedestinationisinanothernetwork.HHost-specificaddress.DAddedbyredirection.MModifiedbyredirection.路由表(RoutingTable)计算机网络默认路由(Defaultrouting)计算机网络6.2.4路由技术要素计算机网络6.2.5静态路由选择•静态路由选择基本概念–静态路由的改变和设置是由人工完成的,一旦确定了分组路由,在一段时间内一般不会再重新设置路由–静态路由也称为非自适应性路由选择–静态路由选择算法的特点是:•简单、开销小,以及路由过程是已知的–静态路由只用在•小型的,网络拓扑结构不会经常变化的局域网中•或是查找故障的试验网络中计算机网络固定路由选择算法•固定路由选择算法是在每个节点保存一张从本节点到其它所有节点的输出路由表–表中可以规定多条输出线,一般至少两条,分别称为主路径和辅助路径–也可以规定更多的路径,称为备用路径•存在的问题是–网络本身出现故障,或网络拓扑结构发生变化后,破坏了路由表中原来设置的路径,分组无法到达目的地计算机网络随机路由选择算法•节点收到一个分组后,随机选择一条输出路径转发该分组•随机选择可以采用两种方法:–完全随机法,若与节点相连的链路路径有N条,对输出路径依次编号,节点收到分组后,产生一个从l到N之间的随机数i,把该分组送到第i条输出路径上转发–轮选法,依据对所有输出路径的排序,依次选一输出路径转发到来的每一个分组计算机网络扩散路由选择算法•扩散法也称为洪泛法(flooding),是将接收的分组从进入路径之外的所有输出路径转发出去,分组每次都被复制多份•存在的问题是网络中会产生大量的重复分组,分组的数目可能会呈指数规律增长,最终使得网络中的分组数目达到难以控制的程度–一种措施是采用站点计数器,在分组的首部增加一个站点计数字段–另一种措施是采用首次登录法,在分组中增加一个序号字段,在每个节点设置一张表,用于记录首次到达本节点的分组的序号计算机网络最短路由选择算法•最短路由选择算法是Dijkstra在1959年提出–也称为标值试探法•基本思路是–将网络表示成一个无向图,图中每条边表示一条链路,其上标出表示测度的度量数据•度量数据可以是–队列平均长度、平均吞吐量等–链路的物理长度(节点间的距离)、通信延迟、带宽、平均通信量计算机网络6.3动态路由选择•6.3.1动态路由选择基本概念•6.3.2孤立式自适应路由选择•6.3.3距离矢量路由选择•6.3.4链路状态路由选择计算机网络6.3.1动态路由选择基本概念•动态路由选择是因特网中采用的技术–动态路由选择也称为自适应性的路由选择,能够适应网络状态的变化,动态的改变和设置路由•动态路由选择可以分为三类:–孤立式–集中式–分布式计算机网络动态路由选择算法的工作过程•⑴测量并感知网络状态,主要包括拓扑结构、流量及通信时延•⑵与相邻节点交换路由信息,或向有关进程或节点报告新的路由信息•⑶依据新的路由信息更新路由表•⑷依据新路由表中更新过的路由信息,选择合适路径转发分组计算机网络6.3.2孤立式自适应路由选择•孤立式自适应路由算法只根据本节点获知的网络信息确定分组的转发,不与其它节点交换路由信息–1.热土豆算法–2.反向探知算法计算机网络6.3.3距离矢量路由选择•DV是一种分布式、迭代的和异步的算法:–⑴分布式讲的是•网络中的每个节点都要从一个或多个相邻节点交换路由信息、更新路由信息,然后把更新的路由信息再传输给相邻节点–⑵迭代讲的是•节点与邻居交换路由信息的过程一直要持续到邻居之间没有信息交换为止,也就是说DV算法是自终止的–⑶异步讲的是•不要求网络中的所有节点相互之间步伐一致地操作•距离矢量算法的核心内容•距离矢量算法的工作原理•距离矢量算法存在的问题•水平分割机制和带毒性逆转的水平分割机制计算机网络Bellman-Ford算法计算路由的过程计算机网络DVA中节点E距离表和路由表的构成DV算法中的重要数据结构是在每个节点中维护的距离表,距离向量算法要求每个节点保存一张表,网络中的每个目的节点占一行,节点的每个直接相连的邻居节点占一列由距离表生成路由表计算机网络路由表更新的例子计算机网络无穷计数问题•网络出现故障后会产生无穷计算问题,好消息反应快、坏消息反应慢,可以类比“报喜不报忧”的做法由于网络中各节点间交换路径和延迟信息是逐步进行的,网络中出现了“坏消息”是在测试了所有可能性后才能知道,当网络规模很大时,这个过程是很缓慢的计算机网络6.3.4链路状态路由选择•链路状态算法LSA是对距离向量算法的一种改进•链路状态路径选择算法简称为LS–也称为全局选路算法(globalroutingalgorithm)•在链路状态路由选择算法应用中–网络拓扑和所有的链路费用都是已知的•链路状态路径选择算法是因特网广泛采用的一种算法•链路状态路由选择概述•Dijkstra算法•链路状态路径选择算法的工作过程•构造链路状态分组•链路状态通告分组实现机制分析计算机网络链路状态算法中每个节点的工作过程•获知相邻节点•测量到各相邻节点的费用(度量标准以延迟为例)•用链路状态分组将所测量到的信息告诉其它节点•计算新的路由计算机网络节点获取链路状态的知识计算机网络Dijkstra算法•网络中的每一节点通过到所有节点的最低费用路径树,得出该节点的转发表,进一步构建出该节点的路由表计算机网络采用的链路状态(LS)算法程序用算法语言描述•1Initialization:•2N={A}•3forallnodesv•4ifvadjacenttoA•5thenD(v)=c(A,v)•6elseD(v)=infinity•7•8Loop•9findwnotinNsuchthatD(w)isaminimum•10addwtoN•11updateD(v)forallvadjacenttowandnotinN:•12D(v)=min(D(v),D(w)+c(w,v))•13/*newcosttoviseitheroldcosttovorknown•14shortestpathcosttowpluscostfromwtov*/•15untilallnodesinN计算机网络Dijkstra链路状态算法的运行过程计算机网络以A为源节点的最低费用路径和节点A的转发表计算机网络构造链路状态分组的方法计算机网络节点A缓冲区中链路状态数据库的内容计算机网络6.4层次路由选择•6.4.1层次