第05章网络层.docx
《第05章网络层.docx》由会员分享,可在线阅读,更多相关《第05章网络层.docx(14页珍藏版)》请在冰豆网上搜索。
![第05章网络层.docx](https://file1.bdocx.com/fileroot1/2023-1/30/215852dd-b2d8-4c30-a5dd-7d93a861732d/215852dd-b2d8-4c30-a5dd-7d93a861732d1.gif)
第05章网络层
第05章网络层
一网络层的功能
⏹为运输层提供服务
⏹路由选择即在具有多个节点的广域网里,应通过哪条通路才能将数据从源主机传到目的主机
⏹流量控制就是控制进入分组交换网的通信量,避免因负荷过重导致网络性能变坏
二网络层提供的服务
网络层提供的服务有两大类:
面向连接的服务和无连接的服务,这两种服务的具体实现就是所谓的虚电路服务和数据报服务
1虚电路服务
把一对相邻结点间的物理链路逻辑地分成若干子信道,也就是所谓的虚电路;一条端到端的虚连接由若干段虚电路串接而成,比如在上图中H1-A-B-C-E-H5由H1-A间的2号虚电路、A-B间的2号虚电路、B-C间的0号虚电路、C-E间的1号虚电路、E-H5间的2号虚电路串接而成;每一条虚电路由相邻结点间的一对缓冲区实现,每个缓冲区有一个本地唯一的编号,称之为虚电路号,建立一条虚连接的过程就是在沿线各结点上分配缓冲区和虚电路号的过程
虚电路网络中的一对主机在通信之前必须先在它们之间建立一条逻辑连接,我们以H2-B-D-E-H5建立的过程为例描述连接如何建立
⏹H2向与之相连的交换节点B发呼叫请求分组,其中包含虚电路号(0)、主叫地址(H2的网络地址)、被叫地址(H5的网络地址)
⏹B收到该呼叫请求分组,查其上的路由表得知到H5下一站应走交换节点D,于是将B-D间的1号空闲虚电路分配给该连接,然后将分组中的虚电路号改成1,向D转发。
同时在其虚电路表中添加一行记录(H2,0,D,1);路由表的结构类似于:
(目的结点号,输出端口号);虚电路表的格式(上游节点号,上游虚电路号,下游节点号,下游虚电路号)
⏹D收到该呼叫请求分组,查其上的路由表得知到H5下一站应走交换节点E,于是将D-E间的0号空闲虚电路分配给该连接,然后将分组中的虚电路号改成0,向E转发。
同时在其虚电路表中添加一行记录(B,1,E,0)
⏹E收到该呼叫请求分组,查其上的路由表得知到H5连在其上,于是将E-H5间的1号空闲虚电路分配给该连接,然后将分组中的虚电路号改成1,向H5转发。
同时在其虚电路表中添加一行记录(D,0,H5,1)
⏹H5向H2返回一个呼叫接收分组,该呼叫请求分组沿呼叫请求分组来时的路径到达H2,一条逻辑连接建立
2数据报服务
⏹在传送数据之前,无须事先在源主机和目的主机之间建立一条逻辑通路
⏹每个分组都携带了目的主机的地址,交换节点根据分组中的目的主机地址查路由表,以确定下一步该从哪个节点转发分组。
路由表的结构大致是这样的:
(目的主机,下一跳)
⏹由于交换节点独立地转发每一个路过的分组,同一批中各个分组很可能经过不同的转发路径,有的分组可能后发而先至,所以数据报服务不能保证按序交付分组
3虚电路服务和数据报服务的比较
比较项目
数据报
虚电路
思路
可靠通信由用户主机来保证
可靠通信由网络来保证
事先建立连接
不用
必须
目的站地址
每个分组中都要有目的站的全地址
仅在连接建立阶段需要。
在数据传送阶段,分组中只包含很短的虚电路号
状态信息
交换节点不保留连接的状态信息
虚电路沿线的所有交换节点都为该逻辑连接提供虚电路表空间
寻径
每个分组独立寻径
分组沿固定的路径传送
节点故障
除非所有转发节点崩溃,所有分组丢失,否则无影响
所有通过故障节点的VC全部终止
三路由器
⏹路由器实际是一个多端口的计算机;路由器由4部分组成:
路由选择处理机、交换结构、一组输入端口和一组输出端口;路由器的功能主要有二,一是分组转发,二是路由选择;分组转发就是根据路由表将到达的用户分组从一个合适的端口转发出去;路由选择就是通过运行一个分布式的路由算法来构建、维护和更新路由表;路由表中的记录一般由以下字段构成:
目的子网号、输出端口号、下一跳地址
⏹路由选择处理机运行路由选择协议,构建、维护和更新路由表
⏹输入端口输入端口的功能视图如下:
物理层从输入的电信号中提取比特流;链路层从比特流中提取数据帧,去掉帧头、帧尾,将分组送网络层的队列中排队;网络层的查表转发模块不断地从其队列中取出分组,根据其目的地址字段查转发表以确定向哪个输出端口转发,然后将分组转发到合适的输出端口上去;通常将路由表的一个影子副本(我们称之为转发表)放到每一个输入端口上,使得每个输入端口有能力做出转发决定,而无须劳驾选路处理机
⏹输出端口输出端口的功能视图如下:
交换结构传送过来的分组在网络层的队列中排队,数据链路层处理模块将分组加上链路层的首部和尾部(重写二层信息),交给物理层放到输出链路上传输
⏹交换结构
三路由算法
1路由算法的分类
2路由算法必备的品质
正确性、简单性、健壮性、稳定性、公平性、最优性
3衡量路径好坏的度量标准
路径长度、跳数、带宽、平均流量、通信开销、平均队列长度、延迟时间等。
或者用上述若干个量的函数作为衡量路径好坏的度量标准
4如何求最短通路——Dijkstra算法
在各种路由算法中,经常会涉及到求最短通路的问题,即已知整个网络拓扑和各链路的长度,求任意两个节点间的最短通路。
我们以下图中的网络为例讨论下面的两种算法
算法1
从某个节点出发,逐个寻找到达网络中其他节点的最短通路;每搜索一次,就在最短通路上增加一个节点,最后构成一棵包含所有节点的最短通路树;这里假设源节点是1
⏹N:
已经被加入到最短通路树上的节点,开始仅包含源节点1
⏹S:
还没被加入到最短通路树上的节点。
开始时,除节点1之外,网络中的其他节点都在S中
⏹l(a,b):
如果节点a和b之间的边长,如果a和b之间无边,则l(a,b)=∞
⏹D(v):
从源节点u到节点v的最短路径长度,开始时,D(v)=l(u,v)
算法描述如下
While(集合S不为空)
在集合S中寻找D(w)最小的节点w;
从集合S中删除节点w;
将节点w加入到集合N中;
对w的每一个邻居节点v
D(v)=MIN(D(v),D(w)+l(w,v));
算法2
每次以网络一个结点为目的节点,从网络中的其它的节点出发向目的节点搜索,每个源节点根据其每一个邻接点的状态信息,确定前往目的节点的最短通路和最短距离;这里假设目的节点是1
D(v):
代表从节点v到目的节点的当前最短路径长度,开始时,除目的节点外的其他节点的D(v)为无穷大,这里假设目的节点为1,所以D
(1)=0
S(v):
代表从节点v到目的节点的当前最短路径中,v的后继节点;开始时,除目的节点外,其它节点的S(v)为空;这里假设目的节点为1,所以S
(1)=1
l(a,b):
如果节点a和b之间的边长,如果a和b之间无边,则l(a,b)=∞
算法描述如下图所示
5非自适应路由算法
非自适应路由算法不能根据网络的通信量或网络拓扑的变化自动进行调整路由。
包括洪泛法、固定路由法和随机走动法
6洪泛法
1)选路策略
从一个接口收到的分组,向其余的各接口转发
2)问题
分组重复到达某个节点
3)解决方法
方法1在分组首部设置一个计数器,每经过一个节点计数器加1,计数值达到规定值,即将该分组丢弃
方法2在每个节点建立登记表,数据报再次通过时丢弃
7固定路由法
在每个节点上维护一张路由表,表中记录到每个目的地应走哪条链路;这些路由表是在整个系统进行配置时生成的,并在此后相当长的时间内保持不变;当网络拓扑固定不变且通信量也相对稳定时,采用固定路由法是最好的
8随机走动法
当分组到达某个节点时就随机选择一条链路将它转发出去
9自适应路由算法
自适应路由算法能根据网络通信量或网络拓扑的变化自动进行调整路由。
包括孤立的路由选择算法、集中式路由选择算法和分布式路由选择算法
10孤立的路由选择算法
只根据本节点的状态来决定路由选择,无须和网络中的其他节点交换状态信息。
比如,当分组到达某个节点时,总是选择等待队列最短的链路将它转发出去,这就是所谓的热土豆算法,或者叫最短队列算法
11集中式路由选择算法
由网控中心NCC负责全网状态信息的收集、路由计算以及路由选择的实现
12分布式路由选择算法
所有节点周期性地交换状态信息,以使这些节点不断地根据网络新的状态更新其路由选择决定。
最常见的分布式路由选择算法包括距离矢量算法和链路状态算法,关于这两种路由选择算法在第8章有详细的描述
三拥塞控制
1什么叫拥塞?
当通信子网中有太多的分组,导致其性能降低,这种情况叫拥塞
2拥塞控制和流量控制的区别
流量控制:
接收方控制发送方发送数据的速率,以使得接收方来得及接收
拥塞控制:
防止网络因过载而引起吞吐量下降和时延增加
3造成拥塞的原因
节点的缓冲区不足;处理机速度慢;线路带宽不够
4发生拥塞的征兆
吞吐量随输入负荷的增大而下降;时延随着输入负荷的增加而增加
5拥塞控制的基本原理
1)开环控制
通过良好的设计来避免问题的出现,使得问题从一开始就不会出现。
开环控制的方法:
⏹什么时候接收新的数据包
⏹什么时候开始丢包,丢哪些包
⏹制定网络中各节点的调度策略
所有这些决定与网络的当前状态无关
2)闭环控制
建立在反馈的基础上,由三部分组成:
⏹监视系统检测何时何地发生拥塞。
检测的指标可以是丢包率、平均队列长度、超时重发包数、数据包延迟抖动等
⏹发布拥塞通知直接发包给相关节点;利用包中的某一比特告知邻居发生拥塞;每个节点周期性的发探测报文
⏹调整系统操作以更正系统
闭环控制方式包括:
⏹显示反馈某节点发生拥塞,它发一个ACK给相关节点,通知它们网络拥塞了
⏹隐式反馈设定时器,发送方每发一帧,就启动一个定时器,若在规定的时间内没收到相应的ACK,则认为该帧丢失,丢失率高则认为网络拥塞
闭环控制不适合高速网络,因反馈信号到达时已经时过境迁
6拥塞预防策略
传输层、网络层和数据链路层的传输策略都会影响拥塞。
如下表所示
影响拥塞的策略
层次
策略
传输层
重传策略;乱序保存策略;应答策略;流量控制策略;超时决定
网络层
子网是虚电路子网还是数据报子网;数据包排队和服务策略;丢包策略;路由算法;数据包生存时间管理
数据链路层
重传策略;乱序保存策略;应答策略;流量控制机制
7虚电路子网中的拥塞控制
⏹准入控制一旦发生拥塞,不允许建立新的虚电路
⏹若允许建立新的虚电路,在路由选择时绕开拥塞的地段
⏹当虚电路建立时,在主机和子网间协商一个协议,该协议指出新建流的量、特征、QOS和其他参数,子网将为该数据流预留资源
8数据报子网的拥塞控制
路由器监视每条输出线路的利用率,当利用率超过某一阈值时,采取某些行动
⏹警告位方法FR上采用的方法。
发生拥塞时,在数据包头上置警告位。
当包到达接收方时,传输实体将警告位拷贝到ACK上,发送方能得知拥塞的发生,以调整发送速率
⏹阻塞数据包拥塞的路由器直接发一个专门的包给发送源告知拥塞发生了
⏹HOP-BY-HOP阻塞包直接发阻塞包给发送源的方法太慢。
取而代之的是发阻塞包给它的前一站路由器,让它放慢速度,前一站再发送给它的前一站,一直到发送源
9载荷脱落
⏹观察队列长度,超过阈值,就在队列中随机取出一个包丢弃,并继续观察。
这就是所谓的RED(RandomEarlyDetection)
⏹这意味着在情况还不太糟的时候就开始丢包了
⏹丢包的同时可以发一个阻塞包告知发送方阻塞发生了,也可以不发阻塞包,发送方没收到ACK,自然就会意识到阻塞的发生
五X.25建议书
1X.25网络
X.25网络就是X.25分组交换网,它主要提供面向连接的虚电路服务;X.25建议书只是一个DTE和分组交换网之间的接口规范,它不涉及分组交换网的内部,我们所说的X.25网络只是说该网络和网络外部DTE的接口遵循了X.25标准。
X.25起作用的位置如下图所示
2X.25的层次结构
3X.25PLP(分组层协议)
1)虚电路的建立和拆除
⏹主叫DTE向其DCE发送一个呼叫请求分组(CallRequest),该分组携带的信息有:
逻辑信道号、主叫DTE地址、被叫DTE地址。
其中的逻辑信道号是主叫DTE从本地的一组空闲逻辑信道号中按先小后大的次序挑出来的
⏹网络选择合适的路由将呼叫请求分组传送到被叫DCE
⏹被叫DCE收到呼叫请求分组后,向被叫DTE发呼入分组(IncomingCall),此分组格式与呼叫请求分组的一样,只是换了个逻辑通道号。
这个逻辑通道号是被叫DCE从本地的一组空闲逻辑信道号中按先小后大的次序挑选出来的
⏹若被叫DTE接受呼叫,发呼叫接收分组(CallAccepted),其逻辑信道号与呼入分组相同
⏹网络按呼叫建立时建立的路由将呼叫接收分组串到主叫DCE
⏹主叫DCE向主叫DTE发呼叫接通分组(CallConnected)。
呼叫建立阶段结束
2)X.25的分组格式
⏹Q比特Q表示限定符(Qualifier),它通常取0。
有时用户希望能区分自己所传的两种分组,这时可以用Q=0和Q=1加以区别
⏹D比特D表示投递证实(DeliveryConfirmation)。
D=0表示要网络给出应答,D=1表示要对端的DTE给出应答
⏹SS比特用来说明分组编号的方式:
SS=01,用3比特编号;SS=10,用7比特编
⏹组号和逻辑信道号虚电路号共有12比特,由两部分组成,前4比特为组号,后8比特为逻辑信道号
⏹分组类型该字段只包含在控制分组中,用来区分各种控制分组。
X.25规定,控制分组第3字节的第1比特为1,数据分组第3字节的第1比特为0
⏹主叫DTE地址和被叫DTE地址DTE地址用十进制数编码,最多可包含14位十进制数,分3部分,其中国家代码3位,网络代码1位,其余为网内地址代码
⏹P(S)表示当前发送分组的编号
⏹P(R)表示期待下一次接收的分组编号,它同时暗示编号为P(R)-1及其以前的分组均以正确收下。
X.25在分组层设置P(S)和P(R)的目的是进行流量控制
⏹M比特M表示更多,当一组相关的分组在传送时,M=1表示后面还有属于同一组的分组,M=0表示是一组相关分组中的最后一个分组
3)X.25的流量控制机制
X.25采用滑动窗口机制进行流量控制,如下图所示。
默认的窗口大小为2,采用3比特编号和7比特编号是,窗口的最大值分别为7和127
领悟:
1、虚电路交换