南理工计算机考研笔试第4章 网络层05.docx
《南理工计算机考研笔试第4章 网络层05.docx》由会员分享,可在线阅读,更多相关《南理工计算机考研笔试第4章 网络层05.docx(38页珍藏版)》请在冰豆网上搜索。
![南理工计算机考研笔试第4章 网络层05.docx](https://file1.bdocx.com/fileroot1/2023-1/4/f85a7657-8c4c-4e66-93b5-fa01677f754e/f85a7657-8c4c-4e66-93b5-fa01677f754e1.gif)
南理工计算机考研笔试第4章网络层05
第4章网络层
运输层:
·接受网络层提供的主机到主机的通信服务。
·为主机上的两个进程之间提供通信服务。
本章主要讨论网络层如何实现主机到主机的通信服务。
网络层与运输层区别
·运输层只在网络的主机中出现;
·网络层在网络的主机和路由器中出现。
主要内容
·网络层功能和服务:
虚电路和数据报;
·路由器结构和分组转发功能;
·网络层的选路:
决定分组从源到目的地所经路径的一些选路算法。
4.1概述
图4-1简单网络:
·两台主机通信:
H1H2;
·主机之间的路径经过几台路由器
发送方主机(H1)中网络层的作用:
·将来自运输层的每个报文段封装成一个数据报(网络层分组);
·将数据报向目的地发送,即向相邻的路由器R1发送。
接收方主机(H2)中网络层的作用:
·接收来自相邻的路由器R2的数据报;
·解封出报文段,并交付给其运输层。
路由器的主要作用:
将数据报从输入链路“转发”到输出链路。
通常路由器只实现下三层部分。
4.1.1转发和选路
1、网络层功能
将分组从发送主机移动到接收主机。
主要包括:
·转发:
当一个分组到达某个路由器的输入链路时,该路由器必须将其移动到合适的输出链路。
与路由器的内部结构有关。
·选路:
确定分组从发送方流向接收方时所经过的路由或路径。
通过选路算法(routingalgorithm)计算路径。
两者区别:
·转发:
将分组从路由器的一个输入链路接口转移到一个合适的输出链路接口的本地动作。
只涉及分组在路由器中从入链路到出链路的传送。
·选路:
指分组从源到目的地的端到端路径的网络范围动作。
涉及网络中的所有路由器,集体经选路协议交互,决定分组从源到目的地的路径。
2、路由器转发分组
转发表:
每台路由器有一张。
分组首部(目的地址或某个连接标识)和相应输出链路的对照表。
转发表的内容由选路算法(集中式或分布式)决定。
转发方法:
路由器根据到达分组的首部值在转发表中查询,找到相应的输出链路接口,并将分组转发出去。
如图4-2例。
3、术语
分组交换机:
一台通用分组交换设备,根据分组首部值,从输入链路接口到输出链路接口传送分组。
·链路层交换机:
根据链路层字段值作转发决定的分组交换机。
·路由器:
根据网络层字段值作转发决定的分组交换机。
4、连接建立
如运输层TCP协议,在数据实际传输之前,需要发送方和接收方经过三次握手建立所需的状态信息(运输层连接)。
网络连接:
指网络层数据分组开始传输前,在所选择的从源到目的地路径上的各路由器之间相互握手,建立连接状态。
如ATM、帧中继的网络层。
因特网网络层不执行连接建立。
4.1.2网络服务模型
问题:
·发送主机的运输层是否能依靠网络层将分组交付到目的地;
·多个分组是否能按发送顺序交付给接收主机的运输层;
·传输两个连续分组的时间间隔是否与接收到的时间间隔相同;
·网络层是否能提供网络拥塞的反馈信息;
·连接发送与接收主机的运输层通道的抽象视图(特性)是什么?
由网络层提供的服务模型来确定。
网络服务模型(networkservicemodel):
定义在网络的一侧“边缘”到另一侧“边缘”之间(即在发送与接收端系统之间)端到端的数据运输特性。
1、网络层可能提供的服务
·确保交付:
确保分组到达目的地。
·具有时延上界的确保交付:
主机到主机的时延。
·有序分组交付:
按发送顺序到达。
·确保最小带宽:
当发送主机以低于特定比特率的速率发送比特,分组不会丢失,在一定时延到达。
·确保最大时延抖动:
发送方发送两个连续分组
的时间间隔与接收到的间隔相同。
2、因特网网络层提供的服务
单一的服务,即尽力而为服务(best-effortservice),类似于“根本无服务”。
·分组间的定时不能被保证;
·分组的接收顺序与发送顺序不一定相同;
·传送的分组不能保证最终交付,即网络可能未向目的地交付分组。
3、ATM服务模型
提供多重的服务模型,即在同一网络中为不同的连接提供不同类别的服务。
恒定比特率CBR(Costantbitrate)服务:
标准的ATM服务模型。
适用于实时、恒定比特率的音频和视频流。
服务目标:
·使网络连接看起来就像在发送主机和接收主机之间有一条专用的固定带宽的传输链路。
·ATM信元传输时的端到端时延可变性(时延抖动)及丢失、迟交的信元都保证在规定值以下。
可用比特率ABR(Availablebitrate)服务
“比尽力服务稍好一点”的服务。
·可能会丢失信元,但不能被重排序;
·保证最小信元传输速率(MCR),或比MCR更高(有足够空闲资源);
·能够为发送方提供反馈信息。
4.2虚电路和数据报网络
运输层:
提供无连接服务和面向连接服务。
如因特网的UDP、TCP。
网络层:
提供无连接服务和面向连接服务。
相同:
·面向连接服务:
源和目的主机之间先握手。
·无连接服务:
无握手过程。
区别:
·网络层:
向运输层提供的主机到主机的服务。
运输层:
向应用层提供的进程到进程的服务。
·网络层:
任何网络中的网络层只提供两种服务之一,不会同时提供。
虚电路网络:
提供连接服务。
数据报网络:
提供无连接服务。
·运输层:
面向连接服务在网络边缘的端系统中实现。
网络层:
面向连接服务在端系统及网络核心的路由器中实现。
4.2.1虚电路网络
如X.25、帧中继和ATM等。
根据虚电路号转发分组。
1、虚电路VC组成:
·源和目的地之间的一条连接路径:
一系列链路和路由器;
·VC号:
该路径上每段链路的号码,每条链路上的VC号可能不同;
·路由器转发表中的表项:
VC路径上每台路由器中都有该表。
2、工作原理:
·在源和目的之间创建一个VC;
·源向该VC发送带有VC号的分组;
·每经过一台中间路由器,用新的VC号代替原VC号:
从VC号转发表获得;
·分组在每条链路上的VC号不同。
·依此规则,直到目的地。
例,图4-3网络。
接口号:
路由器连接链路的接口号码。
主机A与主机B通信过程:
·主机A与主机B之间创建一条VC:
路径为AR1R2B,3个链路分配VC号12、22和32。
·传输时,分组VC号变化过程:
122232
AR1R2B
3、VC号转发表结构
例,R1中的VC号转发表。
入接口
入VC#
出接口
出VC#
1
12
2
22
2
63
1
18
3
7
2
17
1
97
3
87
…
…
…
…
VC1
VC2
VC3
VC4
·只要通过该路由器创建新的VC,其转发表中就增加一项;
·终止一个VC,其转发表中就删除对应项。
·路由器必须为正在进行的连接维护连接状态信息,直到该连接释放。
每条链路采用不同VC号的优点:
·减少分组首部VC字段的长度;
·简化虚电路的建立过程。
虚电路的三个阶段:
虚电路建立
在发送方与接收方之间建立一条虚电路,即决定所有分组要通过的一系列链路与路由器,并为每条链路确定一个VC号。
·发送方与网络层联系,指定接收方地址,由网络建立虚电路(VC)。
如图4-4(1~4步)。
·涉及到路径上每个路由器转发表的更新、资源的预留等。
数据传送:
沿该虚电路传输数据分组(5~6步)。
虚电路拆除:
·由其中一方通知其网络层终止该虚电路;
·通知网络另一侧的端系统呼叫结束,并更新路径上每台路由器中的转发表。
网络层与运输层连接建立区别:
·运输层的连接建立:
只涉及两个端系统,相互协商通信并共同确定连接的参数。
网络中的路由器并不知道该运输层连接。
·网络层虚电路建立:
沿两个端系统之间路径上的路由器都要参与虚电路的建立,且每个路由器都完全知道所经过的所有虚电路。
信令报文:
端系统向网络发送的指示虚电路的启动与终止的报文、以纪录由器之间传递的用于建立虚电路的报文。
信令协议:
用来交换信令报文的协议。
4.2.2数据报网络
如,因特网。
分组传送,不需在发送方与接收方之间建立虚电路。
路由器根据主机目的地址转发分组。
传输过程:
发送方给要发送的分组加上目的端系统地址,并送入网络,经过若干中间路由器转发分组,直到目的地。
如图4-5所示。
路由器转发方法:
根据到达分组的目的地址在转发表中查询,找到相应的输出链路接口,并将分组转发出去。
转发表:
每台路由器有一张。
目的地址与链路接口的映射表。
转发表中的表项数与地址位数有关,每个可能的地址对应一项。
例,设目的地址32位,某个路由器有4条链路(0~3),地址与链路接口关系:
目的地址范围
链路接口
11001000000101110001000000000000~
11001000000101110001011111111111
0
11001000000101110001100000000000~
11001000000101110001100011111111
1
11001000000101110001100100000000~
11001000000101110001111111111111
2
其他
3
对应转发表:
前缀匹配
链路接口
110010000001011100010
0
110010000001011100011000
1
110010000001011100011
2
其他
3
路由器查表方法:
用目的地址前缀与转发表的前缀匹配:
·存在匹配:
向对应链路转发。
如,目的地址
110010000001011100010110101000010#
·不存在匹配:
选择“其他”项对应的链路转发。
·存在多个匹配:
使用最长前缀匹配规则,即向与最长前缀匹配的链路接口转发分组。
如,目的地址
110010000001011100011000101010101#
说明:
·路由器转发表只维持转发状态信息;
·转发表由选路算法修改(1~5分钟更新);虚电路网络转发表随虚电路的建立和拆除更新。
·一个端系统发送给另一个端系统的一批分组可能在网络中选择不同的路径,到达的顺序可能不一致。
4.2.3数据报和虚电路服务的由来
虚电路服务:
源于电话产业界(采用“真正”电路)。
呼叫建立及每次呼叫的状态要在网络中的路由器上维持,比面向数据报的网络要复杂。
网络功能复杂,端系统设备简单。
数据报服务:
由互连计算机的需求发展而来。
与电话网相反。
·网络层服务模型简单。
·端系统功能复杂:
高层实现许多功能,如按序传送、可靠数据传输、拥塞控制与DNS名字解析等;
带来的结果:
·因特网服务模型提供的服务保证最少(可能没有!
),对网络层的需求最小,使得互连使用各种不同链路层技术的网络变得更加容易。
·许多应用都在位于网络边缘的主机(服务器)上实现。
4.3路由器工作原理
网络层转发功能:
将分组从路由器的输入链路传送到适当的输出链路。
路由器的体系结构:
图4-6。
输入端口:
·将一条物理链路端接到路由器的物理层;
·实现路由器的数据链路层功能;
·实现查找与转发功能,以便分组通过路由器交换结构转发到适当的输出端口;
·用于控制的分组从输入端口转发到选路处理器。
通常,路由器中的多个端口被集中到一块线路卡(linecard)上。
交换结构:
将路由器的输入端口连接到它的输出端口。
完全包含在路由器中。
输出端口:
·存储经过交换结构转发给它的分组,并将分组发送到输出链路。
·完成与输入端口顺序相反的数据链路层和物理层功能。
对双向链路,输出端口与其输入端口通常在同一线路卡上成对出现。
选路处理器:
执行选路协议、维护选路信息和转发表以及执行路由器中的网络管理功能。
目前,Cisco公司主宰因特网路由器市场。
4.3.1输入端口
输入端口功能:
如图4-7。
·线路端接与数据链路处理:
实现与输入链路相关的物理层和数据链路层功能。
·查找/转发:
确定将一个到达的分组通过交换结构转发给哪个输出端口。
通过查找转发表实现。
转发表由选路处理器计算出来,给每个输入端口存放一份拷贝,能随选路更新。
分散式转发:
在每个输入端口本地做出交换决策,无须激活中央选路处理器。
可避免在路由器中某个单点产生转发处理瓶颈。
集中式转发:
若路由器的输入端口处理能力有限,可直接将分组转发给中央选路处理器,查找转发表并将分组转发到适当的输出端口。
如,将工作站或服务器用作路由器时,采用此法。
选路处理器就是CPU,输入端口是一块网络接口卡。
查表速度:
搜索转发表,查找最长匹配的表项,或无相应表项时找出默认选路表项。
查找速度受许多因素影响,如路由器速度、链路速率、查找算法等。
通常,输入端口的处理速度要超过线路速度。
即
完成一次查找的时间应少于从输入端口接收一个分组所需的时间(对收到的分组的输入处理在下一个接收操作结束之前完成)。
如,对运行速率为2.5Gbit/s的OC48链路,若分组长256B,查找速度大约为每秒一百万次。
查找方法:
线性查找:
对庞大的转发表不合适;
二分查找:
将转发表表项存放在一个树形数据结构中。
树的每一层对应目的地址的一个比特,查找某个地址时,从树的根节点开始,依次查地址的每一位。
·第一比特:
0:
左子树包含与该目的地址对应的转发表表项;
1:
表项在右子树中。
·下一比特:
0,选择初始子树的左子树;
1,选择初始子树的右子树。
……
N步之内可找到相应的转发表表项(N是地址的位数,地址空间为2N)。
如,因特网32bitIP地址需32步。
内容可寻址内存(CAM):
将一个32bitIP地址提交给CAM,由它以常数时间返回该地址对应的转发表表项内容。
如,Cisco8500系列。
将最近被访问的表项保存在高速缓存(cache)中:
分组阻塞(blocked):
来自其他输入端口的分组当前正在使用该交换结构。
被阻塞的分组必须在输入端口处排队,等待以后调度通过交换结构。
4.3.2交换结构
将分组从输入端口交换(转发)到输出端口中。
交换方式:
三种,如图4-8所示。
1、经内存交换
早期用计算机作为路由器
·输入端口与输出端口之间的交换由CPU(选路处理器)控制完成;
·输入端口与输出端口类似I/O设备:
当分组到达输入端口时,通过中断向选路处理器发出信号,将分组拷贝到处理器内存中;
选路处理器根据分组中的目的地址查表找出适当的输出端口,将该分组拷贝到输出端口的缓存中。
若内存带宽为每秒写入或读出B个分组,则总的转发吞吐量(分组从输入端口被传送到输出端口的总速率)小于B/2。
现代路由器
目的地址的查找和将分组存储(交换)进适当的存储位置是由输入线路上的处理器来执行的。
类似共享内存的多处理机,用一个线路卡上的处理器将分组存储进适当输出端口的内存中。
2、经一根总线交换
输入端口通过一条共享总线将分组直接传送到输出端口,不需要选路处理器的干预。
每次只能有一个分组通过总线传送。
分组到达一个输入端口时,若总线正忙,会被暂时阻塞,在输入端口排队。
路由器交换带宽受总线速率限制。
3、经一个互联网络交换
使用一个互联网络结构。
如
纵横式交换机:
由2n条总线组成,n个输入端口与n个输出端口连接。
到达输入端口的分组沿水平总线穿行,直至与所希望的输出端口的垂直总线交叉点:
·若该条垂直总线空闲,则分组被传送到输出端口;
·否则,该到达的分组被阻塞,必须在输入端口排队。
4.3.3输出端口
取出存放在输出端口内存中的分组,并将其传输到输出链路上。
示意图,4-9。
当交换结构将分组交付给输出端口的速率超过输出链路速率,就需要排队与缓存管理功能。
4.3.4何时出现排队
输入端口和输出端口都会形成分组队列。
当队列逐步增长,路由器缓存空间满,会出现分组丢失(packetloss),在输入端口队列或输出端口队列。
丢失具体位置,取决于流量负载、交换结构的相对速度、线路速度等因素。
假定:
输入线路速率与输出线路速率相同,有n个输入端口和n个输出端口。
交换结构速率:
将分组从输入端口移动到输出端口的速率。
1、输入端口不排队:
若交换结构的速率至少是输入线路速率的n倍,在输入端口处不会出现排队。
最坏情况,有n条输入线路同时接收分组。
交换结构可以在每个输入端口(同时)接收一个分组的时间内将n个分组从输入端口传送到输出端口。
2、输出端口排队:
设交换结构的速率至少是线路速率的n倍。
最坏情况,到达每个输入端口的分组都被发往同一个输出端口。
·在一个单位时间(接收或发送一个分组)内,将有n个分组到达该输出端口,排队(等待)发送到输出链路上;
·在发出队列中一个分组的时间内,又有n个分组到达。
依此类推,最终排队的分组快速增长,很快占满输出端口的存储空间,使后续分组被丢弃。
图4-10说明输出端口的排队过程。
t时刻:
每个输入端口都到达一个分组,都发往最上侧的输出端口。
假定:
线路速度相同,交换结构处理速度是线路速度的三倍。
·一个单位时间后(接收或发送一个分组的时间):
三个原始分组都被传送到输出端口,并排队等待发送。
又有两个新分组到达交换结构的输入端,其中的一个分组要发往最上侧的输出端口。
·下一个单位时间:
三个分组中的一个通过输出链路发送出去。
分组调度程序:
在输出端口排队的分组中选出一个发送。
原则:
·先来先服务FCFS(first-come-first-service):
简单。
·加权公平排队WFQ(weightedfairqueuing):
在具有排队分组的不同端到端连接之间公平地共享输出链路。
分组丢弃方法:
若缓存已满,丢弃分组。
·丢弃后到的分组(弃尾);
·删除一个或多个已排队的分组;
·活动队列管理AQM算法:
在缓存填满前丢弃分组或首部加标记,向发送方提供拥塞信号。
如,随机早期检测RED算法:
输出队列长度维护一个加权平均值:
平均队列长度小于最小阈值minth,到达分组被纳入队列;
队列满或平均队列长度大于最大阈值minmax,到达分组被标记或丢弃;
平均队列长度在[minth,minmax]之间,到达分组以某种概率被标记或丢弃。
3、输入端口分组排队:
交换结构不够快,即相对于输入线路速度不能快得使所有到达的分组无延迟地通过它传送,则在输入端口出现分组排队,以等待通过交换结构传送到输出端口。
如采用纵横式交换结构,假定:
所有链路速度相同;
分组从输入端口传送到给定输出端口的时间与从输入链路接收一个分组的时间相同;
分组按FCFS方式从输入队列移动到输出队列中。
结果:
·如果分组输出端口不同,多个分组可以被并行传送。
·如果不同输入队列中前端的分组是发往同一输出队列,其中的一些分组被阻塞,在输入队列中等待(交换结构一次传一个分组到端口)。
例图4-11。
·不同输入队列前端的两个分组要发往右上角的同一输出端口。
·若先发送左上角队列前端的分组,左下角队列中的分组要等待,左下角队列中排在该分组后面的分组也要等待(虽然不是同一个输出端口)。
线头HOL(head-of-the-line)阻塞:
输入队列中后面的分组被位于线头的一个分组阻塞(即使输出端口空闲的),等待通过交换结构发送。
4.5选路算法
分组通过路由器转发,每个路由器都有一张转发表,选路算法决定转发表内容。
选路:
确定分组从发送方传送到接收方所要通过的路径(路由)。
·数据报服务:
在给定源和目的地之间传输不同分组可能采用不同的路由。
·虚电路服务:
在给定源和目的地之间的所有分组采用同一路径。
默认路由器(defaultrouter):
与主机直接相连的一台路由器,又叫第一跳路由器(first-hoprouter)。
每当主机发送一个分组时,都先传送给它的默认路由器。
·源路由器:
源主机的默认路由器。
·目的路由器:
目的主机的默认路由器。
从源主机到目的主机的选路归结为从源路由器到目的路由器的选路。
选路算法:
确定一个分组从源路由器到目的路由器所经路径的算法。
即在给定的一组路由器以及连接路由器的链路中,找到一条从源路由器到目的路由器的“好”路径。
“好”路径:
具有“最低费用”的路径。
费用由许多因素决定,如链路长度、传播时延、价格等。
网络的抽象图模型:
用“节点图”表示网络的结构。
图论中,图G=(N,E)表示N个节点和E条边的集合,每条边是来自N的一对节点。
如图4-25:
·节点:
表示路由器(做出分组转发判决的点)。
如u,v,w,x,y,z。
·边:
连接节点的线段,表示路由器之间的物理链路。
如(u,v)、(u,x)、(u,w)、…
·边的值(费用):
反映对应链路的物理长度、或链路速度、或与链路相关的费用。
约定:
c(x,y)表示节点x和节点y之间边的费用(从节点x到节点y的链路费用)。
·若(x,y)是E中的某条边(节点x与节点y直接相连):
则c(x,y)=链路费用,节点x与节点y互为邻居。
如c(u,v)=2,节点u与节点v互为邻居
c(u,x)=1,节点u与节点x互为邻居
·若(x,y)不是E中的某条边(节点x与节点y不直接相连):
则c(x,y)=∞。
如c(u,y)=∞,c(u,z)=∞
·c(x,y)=c(y,x)
如c(u,v)=c(v,u)=2
选路算法:
根据给定的网络抽象图,找出从源节点到目的节点间的最低费用路径。
路径表示:
用路径上的节点来描述。
如
图G=(N,E)中的一条路径,是一个节点序列(x1,x2,…,xp),其中每一对(x1,x2),(x2,x3),…,(xp-1,xp)是E中的边,即x1,x2,…,xp依次连成的边。
路径(x1,x2,…,xp)费用:
沿途所有边的费用之和。
即
c(x1,x2)+c(x2,x3)+…+c(xp-1,xp)
通常,任意两个节点x和y之间有多条路径,费用不一定相同。
最低费用路径(least-costpath):
该路径上链路费用之和最小。
若所有链路费用相同,则最低费用路径就是最短路径(shortestpath),即在源和目的地之间经过链路最少的路径。
如图4-25,源节点u和目的节点w之间的最低费用路径:
(u,x,y,w),费用为3。
选路算法分类:
根据算法是全局性还是分散性划分
全局选路算法(globalroutingalgorithm):
用完整的、全局性的网络信息来计算最低费用路径。
即以所有节点之间的连通性及所有链路的费用为条件。
·在开始计算前,以某种方式获得这些信息。
·可在单个位置计算,也可在多个位置上复制。
·拥有连通性和链路费用的完整信息。
链路状态算法LS:
必须知道网络中每条链路的费用。
分散式选路算法(decentralizedroutingalgorithm):
以迭代的、分布式的方式计算最低费用路径。
·节点只有与其直接相连链路