计算机网络(二十二):虚电路和数据报网络

网络层也能够在两台主机之间提供无连接服务或连接服务,网络层的连接和无连攘服务在许多方面与运输层的面向连接和无连接服务类似。
例如,网络层连接服务以源和目的主机间的握手开始;网络层无连接服务则没有任何握手预备步骤。
尽管网络层连接和无连接服务与运输层面向连接和无连接服务有类似之处,但也存在重大差异:
①、在网络层中,这些服务是由网络层向运输层提供的主机到主机的服务。在运输层中,这些服务则是运输层向应用层提供的进程到进程的服务。
②、在至今为止的所有主要的计算机网络体系结构中,网络层或者提供了主机到主机的无连接服务,或者提供了主机到主机的连接服务,而不同时提供这两种服务。仅在网络层提供连接服务的计算机网络称为虚电路网络(虚拟了一条不存在的电路连接);仅在网络层提供无连接服务的计算机网络称为数据报网络(通过直接发送数据报文实现通信)。
③、在运输层实现面向连接的服务与在网络层实现连接服务是根本不同的。运输层面向连接服务是在位于网络边缘的端系统中实现的;网络层连接服务除了在端系统中,也在位于网络核心的路由器中实现。

1、虚电路网络:

一条虚电路的组成如下:
①、源和目的主机之间的路径(即一系列链路和路由器);
②、VC号,沿着该路径的每段链路的一个号码;
③、沿着该路径的每台路由器中的转发表表项。
属于一条虚电路的分组将在它的首部携带一个VC号,因为一条虚电路在每条链路上可能具有不同的VC号,每台中间路由器必须用一个新的VC号替代每个传输分组的VC号,该新的VC号从转发表获得。
对于虚电路网络,每台路由器的转发表包括vc号的转换。无论何时跨越一台路由器创建一条新的虚电路,转发表就增加了一个新表项。无论何时终止一条虚电路,沿着该路径每个表中的相应项将被删除。
简单地讲,就是说每当建立一条虚电路时,会对虚电路上所需要经过的链路进行一次编号,然后在每个链路交界处的路由器中的转发表中,按照入VC和出VC的形式进行存储。即便是同一条链路,在不同的虚电路中的VC号是不同的。
之所以不简单的保持相同VC号的原因是:
①、逐链路代替该号码减少了在分组首部中vc宇段的长度
②、通过允许沿着该虚电路路径每条链路有一个不同的vc号,大大简化了虚电路的建立。在具有多个vc号的路径,其上的每条链路能够独立于沿着该路径的其他链路所选的号码选择一个vc号。如果沿着某路径的所有链路要求一个共同的vc的话,路由器将不得不交换并处理相当大量的报文,以约定一个共同的vc号用于一次链接。
简单地讲就是可以让同一条链路在两端的路由器中具有完全不同的vc号,比方说在R1中是出链路,出VC号为1,而在R2中是入链路,入VC号为任意一个数字,不一定非是1。
在虚电路网络中,该网络的路由器必须为进行中的连接维持连接状态信息。每当跨越一台路由器创建一个新连接,必须在该路由器的转发表中增加一个新的连接项;每当释放一个连接,必须从该表中删除该项。
虚电路有三个阶段:
①、虚电路建立:在建立阶段,发送运输层与网络层联系,指定接收方地址,等待网络建立虚电路。网络层决定发送方与接收方之间的路径,即该虚电路的所有分组要通过的一系列链路与路由器。网络层也为沿着该路径的每条链路决定一个vc号。最后,网络层在沿着路径的每台路由器的转发表中增加一个表项。在虚电路建立期间,网络层还可以预留该虚电路路径上的资源(如带宽)。即确认发送方与接收方主机,确认路径(链路+路由器,通过最短路径算法确定),修改转发表。
②、数据传送:一旦创建了虚电路,分组就可以开始沿该虚电路流动了。
③、虚电路拆除:当发送方(或接收方)通知网络层它希望终止该虚电路时,就启动这个阶段。然后网络层通常将通知网络另一侧的端系统结束呼叫,并更新路径上每台分组路由器中的转发表以表明该虚电路已不存在了。即修改转发表。
运输层的连接建立仅涉及两个端系统。在运输层的连接建立期间,两个端系统独自决定运输层连接的参数(如初始序号与流量控制窗口长度)。虽然这两个端系统已经知道该运输层连接,但网络中的路由器则对这些完全不知情。
在另一方面,对于一个虚电路网络层,沿两个端系统之间路径上的路由器都要参与虚电路的建立,且每台路由器都完全知道经过它的所有虚电路。
对于虚电路网络,简单地讲,就是说运输层只需要调用网络层的服务,给定一个发送方和一个接收方,就可以搭建一条连接。而网络层需要在给定的发送方和接收方的基础上,计算出这条路径上所需要的链路和路由器,然后告知这些路由器,由此建立一条虚拟电路。
端系统向网络发送指示虚电路启动与终止的报文,以及路由器之间传递的用于建立虚电路(即修改路由器表中的连接状态)的报文,它们被称为信令报文,用来交换这些报文的协议常称为信令协议。

2、数据报网络

在数据报网络中,每当一个端系统要发送分组,它就为该分组加上目的端系统的地址,然后将分组推进网络中。无需建立任何虚电路,路由器不维护任何虚电路的状态信息。
当分组从源到目的地传输,它通过一系列路由器传递。路由器中的每台都使用分组的目的地址来转发该分组。每台路由器有一个将目的地址映射到链路接口的转发表;当分组到达路由器时,路由器使用该分组的目的地址在转发表中查找适当的输出链路接口。然后路由器有意将分组向该输出链路接口转发。
在路由器的转发表中就没有必要有40亿表项(全部表项),因为针对一个路由器,其能够到达的目的地址是有限的,而且不同分支能够到达的目的地址可以有明显的相似性。
使用这种风格的转发表,路由器用分组的目的地址的前缀与该表中的表项进行匹配;如果存在一个匹配项,则路由器向与该匹配项相联系的链路转发分组。例如,假设分组的目的地址是11001000000101110001011010100001; 因为该地址的21比特前缀匹配该表的第一项,所以路由器向链路接口0转发该分组。如果一个前缀不匹配前3项中的任何一项,则路由器向链路接口3转发该分组。
尽管昕起来足够简单,但这里还是有重要的微妙之处。一个目的地址可能与不止一个表项相匹配。例如,地址11001000000101110001000010101010的前24比特与表中的第二项匹配,而该地址的前21比特与表中的第三项匹配。当有多个匹配时,该路由器使用最长前缀匹配规则;即在该表中寻找最长的匹配项,并向与最长前缀匹配相关联的链路接口转发分组。即相当于找最接近目的地址的路由器转发分组。
虽然在数据报网络中的路由器不维持连接状态信息(即不知道目的地和起始地,不知道如何路由),但它们在其转发表中维持了转发状态信息(即知道中间转向方式,知道如何转发)。然而,转发状态信息表变化的时间尺度相对要慢。实际上,在数据报网络中的转发表是通过路由选择算法进行修改的,这通常每5分钟左右更新一次转发表。即由于数据报网路不需要实时的建立连接,在创建实体网络的时候,其转发就相对固定,所以不需要经常修改转发表。
在虚电路网络中,通过路由器建立一条新的连接,或通过路由器拆除一条现有的连接,路由器中的转发表就被更新。对一台第一层主干路由器而言,这很容易以微秒的时间尺度进行更新。即由于每次建立连接都要新的链路连接,所以需要实时对转发表进行更新,表更新更频繁。
因为在数据报网络中的转发表能够在任何时刻修改,从一个端系统到另一个端系统发送一系列分组可能在通过网络时走不同的路径,并可能无序到达。即由于转发表的转换和分组并无太大关联,并不是同步的,所以可能一系列分组没有传输完,而转发表就发生了改变。

3、虚电路和数据报网络的由来:

虚电路的概念来源于电话界,它采用了真正的电路。因特网作为一种数据报网络,是由将计算机连接在一起的需求发展而来的。由于端系统设备复杂得多,因特网架构师们选择使网络层服务模型尽可能简单。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值