更新于 

数据生成与交换

编码调制

概念定义

首先我们要知道数据和信号是两个不同的概念,并且上面的一讲中我们学习过数据和信号都有“数字”和“模拟”之分,数字是离散的,模拟是连续的。而数据无论是数字的还是模拟的,最终都要转换成信号以后才能在信道上进行传输。我们把数据变换为模拟信号的过程称为调制,把数据变换为数字信号的过程称为编码。

信号是数据的具体表现形式,他和数据有一定的关系的,但是又不完全相同。数字数据可以通过数字发送器转换为数字信号传输,也可以通过调制器转换为模拟信号进行传输,同样的模拟数据可以通过PCM编码器转换成数字信号传输,也可以通过放大器调制器转换成模拟信号进行传输。如上图就是4中不同的调制编码方式。接下来我们信息讲解一下上面的四中不同转换方式。建议在学习一下内容时,先复习一下基带传输和宽带传输。

数字数据编码为数字信号

数字数据编码用于基带传输中,即在基本不改变数字数据信号的频率下,直接传输数字信号。而具体使用什么样的数字信号表示0和用什么样的数字信号表示1就是所谓的编码。编码的规则有多种,只要能够有效的把1和0区分开即可,常用的编码有下面的几种:

归零编码(RZ)

在归零编码(RZ)中,用高电平代表1,低电平代表0(或者相反),每一个时钟周期的中间均跳变到低电平0(归零)。接收方根据该跳变调整本方的时钟基准,这就为传输双方提供了自同步机制。但是由于归零需要占用一部分的带宽,而此段时间并没有实际的数据传输作用,因此传输速率受到了一定的影响,如果想要提升传输速率,那么需要尽可能的缩短归零所占的带宽。

非归零编码(NRZ)

和归零编码唯一不同的地方就在于一个周期内可以全部用来传输数据,不需要跳变零的过程,这样整个周期的带宽全部用来传输数据了,传输效率理论上会更高,但是这又会导致发送方和接受方的时钟难以同步,因为缺少了传递时钟同步信号的机制。因此如果想要进一步传输高速同步数据,那么需要带有时钟线。

思考:同步机制有何作用?

我们在信道中传输信号是要求两端能够同时开始和结束接受数据,如果同步机制难以保证,很容易再传输过程中出现混乱从而导致两端发送和接受数据时间不同步从而造成数据的丢失。比如接收端在传输过程中逐渐快于发送端,那么发送端还没有停止发送数据,接收端就已经提起结束了接受导致数据传输的丢失,因此保证时钟的同步非常重要。

反向非归零编码(NRZI)

反向非归零编码又进一步对非归零编码进行了优化,他尝试解决时钟不同步的问题。在反向非归零编码中用信号的翻转代表0,,信号保持不变为代表1。翻转信号既可以有效实现0和1两种不同信号的传递,并且还可以作为一个通知机制来时刻维持两端的时钟同步,这种编码方式结合了前两种编码的优点,既能传输时钟信号又能尽可能的不损失系统带宽。USB2.0通信的编码方式就是使用了这种编码方式。

曼彻斯特编码(Manchester Encoding)

曼彻斯特编码将一个码元分成两个相等的间隔,前一个间隔为高电平后一个间隔为低电平表示码元1;码元0的表示方法则刚好相反。当然,也可以采用相反的规则制定,效果都是一样的。这种编码方式,使得每一个码元的中间都有一个跳变,位中间的跳变既作为时钟信号(可用于同步),有作为数据信号**,但是它所占的频带宽度是原始基带宽度的两倍,每一个码元都被调成两个电平导致数据传输速率仅仅是调制速率的1/2**。在以太网中使用的编码方式就是曼彻斯特编码。

差分曼彻斯特编码

差分曼彻斯特编码常用于局域网编码,其规则是:若码元为1,则前半个码元的电平与上一个码元的后半部分码元的电平相同,若码元为0,则情形相反。这种编码的特点是,在每一个码元的中间都有一次电平的跳转,可以实现自同步,且抗干扰性能良好强于曼彻斯特编码。

4B/5B编码

将欲发送的数据每4位作为一组,然后按照4B/5B编码规则将其转换成相应的5位码。5位码共32中组合,但是只采用其中的16种对应的16种不同的4位码,其他的16种作为控制码(帧的开始和结束、线路的状态信息等)或保留。

总结

编码方式 是否能够保证同步 传输速率
归零编码
非归零编码 ×
反向非归零编码
曼彻斯特编码 较慢
差分曼彻斯特编码
4B/5B编码

数字数据调制为模拟信号

数字数据调制技术在发送端将数字信号转化为模拟信号,在接收端将模拟信号还原为数字信号,分别对应于调制调节器的调制和解调过程。基本的调制方法如下:

  1. 幅移键控(调幅ASK):通过改变载波信号的振幅来表示数字1和0,而载波的频率和相位都不改变。这种方法比较容易实现,但是抗干扰能力差。

  2. 频移键控(调频FSK):通过改变载波信号的频率来表示数字1和0,而载波的振幅和相位都不改变。容易实现,抗干扰能力强,目前应用比较广泛。

  3. 相移键控(调相PSK):通过改变载波信号的相位来表示数字1和0,而载波的振幅和频率都不改变。同时他又进一步分为绝对调相和相对调相。

  4. 正交振幅调剂(QAM):在频率相同的前提下,将ASK和PSK相结合,形成叠加信号。设波特率为B,采用m个相位,每一个相位有n中振幅,则QAM技术的数据传输R为:

    R=Blog2(mn)(b/s)R=Blog_2(mn)(b/s)

实际上上面的计算公式的原理还是码元传输率和数据传输率转换关系。

上图演示了前三种调制方法。在2ASK中,用载波有振幅和无振幅来表示数字数据的‘1’和‘0’。2FSK中,用两种不同频率分别表示数字数据‘1’和‘0’。2PSK中用相位0和相位π表示数字数据的‘1’和‘0’。

思考:看完两种信号的图示后,请说明数字信号和模拟信号的区别?

数字信号是一个离散稳定的电平脉冲信号,而模拟信号是一种连续性的变化信号。两者同时也有共同点,比如都用一个固定的周期时间来区分一个码元。

模拟数据编码为数字信号

这种编码方式最典型的例子是常用于对音频信号进行编码的脉码调制(PCM)。它主要包括采样、量化和编码三个过程来将一个连续的模拟数据转换为有限个数字表示的离散序列(也就是所说的音频数字化)。

  • 采样:对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。这里我们学习一下采样定理(又称为奈奎斯特定理):在通信领域,带宽是指对信号最高频率与最低频率之差,单位为Hz.因此,将模拟信号转换成数字信号时,假设原始信号中的最大频率为f,那么采样频率f采样必须大于等于最大频率f的两倍,这样才能保证采样后的数字信号完整保留原始模拟信号的信息。公式如下:

    f采样频率>=2f信号最高频率f_{采样频率}>=2*f_{信号最高频率}

    因此只有满足上面的公式时,才能保证信号可以无失真地代表被采样的模拟数据。

  • 量化:把采样取得的电平幅值按照一定的分级标度转化为对应的数字值并且取整数,这样就把连续的电平幅值转化为了离散的数字量。采样和量化的实质就是分割和转换。

  • 编码:把量化的结果转换为与之对应的二进制编码。

模拟数据调制为模拟信号

为了实现传输的有效性,可能需要较高的频率,但是可用的较高频率范围是有限的,因此调制方式可以使用频分复用的技术,来充分利用带宽资源。在电话和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式,模拟的声音数据是加载到模拟的载波信号中传输的。

思考:什么是频分复用?

说白了就是将通信信道中的带宽频率分割给许多传送数据使用,这样就做到了充分利用信道带宽资源的效果。比如有一个信道的带宽是0-92Hz,A,B,C三个人同时要打电话,那么可能他们三个人的模拟数据分别调制到了三个不同的频段上,然后再封装处理使得他们在传输信道上互不干扰以及加密安全不会被拦截。之后三个模拟信号上一个信道上,这样这个信道上就同时再传输三个模拟数据对应的模拟信号,节省了信道的开销成本(原本上时需要三个信道)。但是我们要注意这三个模拟信号在信道上传输时还是混合到了一起,因此到达D,E,F接受端时还需要进行剥离得到自己需要的模拟信号。这就是频分复用(FSM)。类似的还有时分复用,码分复用等等目的都是类似的,详细的讲解请参考:

数据交换技术

数据的交换过程可以分为下面三大类:

电路交换

对于电路交换,在进行数据传输前,两个节点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多个中间节点。但是这一路径在整个数据传输期间一直被独占,直到通信结束才被释放供其他设备使用。因此电路交换技术分为三个阶段:①连接建立②数据传输③连接释放。

电路交换的原理就是在数据传输期间,源节点和目的节点之间有一条中间节点构成的专用物理连接线路,在数据传输结束之前,这条线路一直被保持独占。因此即使双方不进行数据的传输这个线路也不能供其他传输信号使用。

从通信资源的分配角度来看,“交换”就是按照某种方式动态的分配传输线路的资源。电路交换的特点就是在数据传输的过程中,用户始终占用端到端的固定传输带宽。对于电路交换技术的优缺点如下:

优点

  1. 通信时延小。由于通信线路为通信双方用户专用,数据直达,因此传输数据的时延非常小。当传输的数据量非常大时,这一优点非常明显。
  2. 有序传输。双方通信时按发送顺序传输数据,不存在失序问题。
  3. 没有冲突。不同的通信双方拥有不同的信道,因此不会出现频分复用等复用交换技术所存在的争用物理信道的问题。
  4. 适用范围广。电路交换技术既适用于传输模拟信号,也适用于传输数字信号。
  5. 实时性强。通信双方之间的物理通路一旦建立,双方就可以随时通信。
  6. 控制简单。电路交换的设备(交换机等)及控制比较简单。
  7. 全双工通信,连接的双发都可以同时发送接受数据,连接建立后数据传输效率很高。

缺点

  1. 建立连接时间长。电路交换的平均建立时间对计算机通信来说太长了,长到传输时间节省的时间优势无法体现。
  2. 线路独占。这个很致命,导致传输效率低。电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率低。最典型的例子,双方打电话互不说话,信道也一直被占用。
  3. 灵活性差。只要在通信双方建立的通路中的任何一点出现了故障,就必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。
  4. 难以规格化。电路交换时,数据直达,但是不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。

但是我们要注意在电路交换中,是没有所谓的存储转发所耗费的时间概念的,因为电路建立后,除了源节点和目的节点以外,电路上的任何节点都采取“直通方式”接受数据和发送数据。同时我们还要注意区分信道利用率和信道内数据传输率的区别,电路交换技术对建立连接后的信道内数据传输率很高,但是同时整体上看对信道的使用分配却不合理导致信道的利用率低。

报文交换

数据交换的单位变成了报文,报文携带有目标地址、源地址等信息,他是网络中交换与传输的数据单元,即站点一次性要发送的数据块,通常长短不一致,根据内容大小和头部包装复杂程度有关。报文交换在交换节点是存储转发的传输方式。

报文交换的原理是无需在两个站点之间建立一条专用的通道,其数据传输的单位是报文,传送过程采用存储转发方式即走一步看一步,那条路现在可行合适就选择下一条的路径。经过多次存储转发跳转后就到达了目的站点。但是也由于需要在多个站点等待存储转发路径不固定且可能再次被封装,因此需要进行一下差错检验以保证信息没有在传输过程中发生错误。

优点

  1. 无需建立连接。报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送报文。
  2. 动态分配线路,当发送方把报文交给交换设备时,交换设备会先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。
  3. 提高线路可靠性。如果某条传输路径发生故障,那么可以重新选择另一条路径传输数据,因此提高了传输的可靠性。
  4. 提高线路利用率。通信双方不是固定的占有一条通信线路,而是在不同的时间段一段一段的部分占有这条物理通道,因而大大提高了通信线路的利用率。
  5. 提供多目标服务。一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。
  6. 在存储转发中容易实现代码转换和速率匹配,甚至收发双方可以处于不同的状态(异步传输)。这样就便于类型、规格和速度不同的计算机之间进行通信。

缺点

  1. 由于数据进入交换节点要经历存储、转发这一过程,因而会引起转发时延(包括接收报文,检验正确性、排队、发送时间等)。
  2. 报文交换对报文的大小没有限制,这就要求网络节点需要有较大的缓存空间。当缓存区不能满足要求时,那么报文会被丢弃,造成信息的丢失或者无可选路径传输。

思考:为什么需要交换设备有很大的缓冲区?

我们知道报文大小是没有限制的,而报文又是一个基本数据单元不能分割,只能一次性转发,但是缓冲区总是相对某些报文来说更小的。假如某一个地带的交换设备缓冲区大概都是5M,而报文大小却有7M,那么此时就会出现无转发路径可选的问题。即使恰巧此时报文大小为5M,也会极可能造成拥塞的问题,因此报文交换的弊端较为明显,需要改进。

报文交换主要使用在早期的电报通网中,现在较少使用,通常被较为先进的分组交换方式所取代。

分组交换

和报文交换的思路大致相同,分组交换也采用存储转发的方式,但是他解决了报文交换中大报文传输的问题。分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为了更加合理的小数据块,同时再为每一个小数据块加上一些必要的控制信息(如源地址、目的地址、编号信息等),构成分组(Packet)。网络节点根据控制信息把分组送到下一个节点,下一个节点接受到分组后,暂时保存并排队等待传输,然后根据分组的控制信息选择它的下一跳的节点,直到到达目的节点。

分组交换的原理与报文交换的原理基本一致,都采用了存储转发的方式,形式上的主要差别就是分组交换网中要限制所传输的数据单位的长度,一般选为128B。发送节点首先对从终端设备送来的数据报文进行接收、存储,然后将报文切割划分成一定长度的分组,并以分组为单位进行传输和交换。接收节点将收到的分组组装成信息或报文。

思考:接收端怎样能够将乱序的分组组装成报文信息?

很简单,我们可以对每一个分组都设置一个独立连续的组号,那么接收端就可以根据号码来拼接收到的分组组装成报文信息。

优点

  1. 无需建立连接。报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接时延,用户可以随时发送分组。
  2. 线路利用率高。通信双发不是固定占有一条通信线路,而是在不同的时间一段一段的部分占有物理通路,因而大大提高了通信线路的利用率。
  3. 简化了存储管理(相对于报文交换)。因为分组的长度是固定的,因此相应的缓冲区的大小也是固定的,在交换节点中存储器的管理通常简化为对缓冲区的管理,相对比较容易。
  4. 加速传输。分组是逐个传输的,可以使够一个分组的存储操作与前一个分组的转发操作并行,这种流水线方式减少了报文的传输时间。此外,传输一个分组所需要的缓冲区比传输一个报文所需的缓冲区大小小的多,这样因缓冲区不足而等待发送的概率及时间也必然少的多。
  5. 减少了出错概率和重发数据量。因为分组较短,其出错概率也必然减少,所以每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时输。
  6. 适用于突发式数据通信,相较于电路交换和报文交换,更能够迅速的发送突发紧急信息。

缺点

  1. 存在传输时延。尽管分组交换比报文交换的传输时延少,当相对于电路交换仍存在存储转发时延,而且其节点交换机必须具有更强的处理能力。

  2. 需要传输额外的信息量。每个小数据块都要加上源地址、目的地址和分组编号等信息。从而构成分组,因此使得传送的信息量增大了5%~10%,一定程度上降低了通信效率,增加了处理的时间,是控制更加复杂,时延增加。

  3. 当分组交换采用数据报服务时,可能会出现失序、丢失或重复分组,分组到达目的节点时,要对分组按编号进行排序等工作,因此很麻烦。如果采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。

总结

交换方式 是否乱序抵达 是否有转发时延 对缓冲区要求 信道利用率
电路交换
报文交换
分组交换
  1. 传送数据最大,且传送时间元远大于呼叫时,优先选择使用电路交换。电路交换传输时延最小。
  2. 当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
  3. 从信道利用率上来看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合与计算机之间的突发式数据通信。

我们要注意这三种交换技术只是三个不同的数据传输的策略,并不一定只在物理层体现。比如电路交换虽然在物理层上实现的电话应用上应用广泛,但是实际上电路交换的思想也在传输层中的TCP有所体现。而报文交换现在基本上不常用,已经被更加优秀的分组交换所替代,而分组交换在网络层,传输层都有应用,例如UDP。

同时三种不同的交换方式也会有不同的传输延迟,对比如下:

我们假设上图中报文大小都是一样大的,且一个报文可以被整除分割成四个分组。那么上图中的图形象的体现出下图普遍规律:

V电路交换<V报文交换<V分组交换V_{电路交换}<V_{报文交换}<V_{分组交换}

我们假设一个报文的传输需要一个RTT,那么很显然在电路交换中文件的传输只需要一个RTT,但是他的连接建立和连接释放的时间也很长,导致整体上使用时间大概是2.5个RTT。而报文交换连续发送三个报文,整体的时间才3个RTT,也就是只有每一个报文对应需要一个RTT时间,没有其他的连接建立、连接释放的额外开销,当然还会存在很短的转发时延,但是对于一个较大的报文传输来说其大小可以忽略。而对于分组传输,3个报文被分割成了12个分组,他们采用流水线的方式进行传输,即第一个分组离开第一个中间节点时,第二个分组也已经发送向第一个中间节点,这种流水线式的传输方式极大的缩减了整体的传输时间,其实我们观察每一个由4个分组组成的报文信息传输时间还是用一个RTT,但是整体上的时间却只用了大约1.5个RTT。所以分组交换的传输优势非常明显,得到了广泛的应用,但是电路交换又凭借其大文件传输效率更高,有序抵达且丢包率低而始终能够在传输领域占据一席之地。

数据报与虚电路

前面一讲的最后我们学习了三种数据交换方式,其中分组交换现在被广泛应用。而分组交换根据其通信子网端点系统提供的服务,可以进一步分为面向连接的虚电路方式和无连接的数据报方式。这两种方式都由网络层提供。但是我们要注意数据报方式和虚电路方式都是分组交换的两种不同方式

数据报方式

当通信子网用户的端系统发送一个报文时,在端系统中实现的高层协议首先会把报文拆成若干个有序的数据单元,然后在网络层加上地址等控制信息形成数据报分组(即网络层的PDU)。中间节点存储分组一段时间后,找到最佳的路由后,就会尽快转发每一个分组。注意不同的分组可以走不同的路径。也可以按照顺序抵达目的节点。如下图是一个主机A向主机B发送报文的一个例子:

步骤如下:

  1. 主机A先将分组发往与他直接相连的交换节点A(我们后面学习到网络层就知道一般这种主机唯一相连的一个通向通信子网的节点对应的设备就是默认网关路由)。交换节点A缓存接收到的分组。
  2. A节点接收到分组后首先会进行差错检测确保数据还是正确的,然后节点A查找自己的转发表,由于不同时刻的网络状态不同,因此转发表的内容在时刻发生变化,内容可能不是固定不动的,而是不同时刻完全不同的,因此所有的分组可能转发的路径是不同的,比如有的分组下一跳可能会转发到C,也有的分组会转发到D,F。
  3. 网络中的其他中间节点接收到分组后,类似的存储转发分组直到分组最终到达主机B。

思考:如果在转发过程中发生了错误怎么处理?

这里涉及到了选择重传机制的相关知识,我们简单描述一下这种重传的过程。我们要知道每次分组完成一跳后接收分组的节点都会对分组信息首先进行差错检测,而发送方此时并不会立刻从他的缓冲区中丢弃这个已发送分组的副本,而是会先保留直至接收到接收方节点反馈的信息(ACK或者NAK)。接受节点发现接收到的分组信息已经出错,那么就会反馈NAK告诉上一个发送节点,此时发送节点会重传这个分组,直至接收到ACK才会丢弃已发送分组的副本。如上图假设节点A接收到P1检测正确,那么会发送ACK告诉主机A成功接收分组P1,然后主机A会将缓冲区中的P1副本丢弃。此时节点A会保留P1副本,假设下一跳是C,那么C接收分组后同样要进行差错检测,很不幸发现数据错误,那么会反馈NAK,节点A受到NAK后会重传P1,这就是选择重传机制。

我们要注意当分组在链路上传送时,并不会占用网络中的其他部分资源,因为采用了存储转发的技术,因此资源都是共享的,所有当A发送分组时,主机B也可以同时向其他主机发送分组,并且此时通信网络中的中间节点也在时刻存储转发其他分组。

我们通过上面的例子,可以总结出数据报服务具有如下的特点:

  1. 数据报方式为网络层提供无连接服务,发送方可随时发送分组,网络中的节点可以随时接收分组,并且在存储转发过程中,并不会事先为分组的传输确定一条专有路径,每一个分组都是独立确定一条传输路径,因此不同分组传输路径不同,因此抵达时是乱序的。
  2. 网络尽最大努力交付,传输不保证可靠性,所以可能在传输过程中丢失或者在环路中循环直至失效,因此分组并不一定能够抵达目的节点。
  3. 发送的分组中包括了发送端和接收端的完整地址,以便可以独立传输。
  4. 分组在交换节点存储转发时,需要排队等候处理,这会带来一定的时延。通过交换节点的通信量较大或者网络发生拥塞时,这种时延会大大增加,交换节点还可以根据情况丢弃部分分组。
  5. 网络具有冗余路径,当某一交换节点或者某一段链路发生故障时,可相应的更新转发表,寻找另一条路径转发分组,对故障的适应能力增强,适用于突发性通信,但是不适用于长报文、会话式通信。
  6. 存储转发的时延一般很小,提高了网络的吞吐量。
  7. 收发双方不独占某一条链路,因此资源利用率高。

虚电路方式

虚电路方式试图将数据报方式和电路交换方式结合起来,充分发挥两种方法的优点,以达到最佳的数据交换效果。在分组发送之前,要求在发送方和接收方之间要建立一条逻辑上相连的虚电路,并且连接一旦建立,就固定了虚电路对应的物理路径。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输和虚电路释放。

在虚电路方式中,端系统每次要建立虚电路时,选择一个未用过的虚电路号分配给虚电路,以区别于本系统的其他虚电路。在传送数据时,每个数据分组不仅要有分组号、校验和等控制信息,还要有他要通过的虚电路号,以区别于其他虚电路上的分组。并且在虚电路网络中的每一个节点都要维持一张虚电路表,表中的每项记录了一个打开的虚电路的信息,包括在接受链路和发送链路上的虚电路号、前一节点和下一节点的标识。数据的传输时双向进行的,上述信息是在虚电路的建立过程中确定的。

这里我们同样给出一个主机A向主机B发送数据的例子:

  1. 首先为进行数据传输,主机A与主机B之间先建立一条逻辑通路,主机A发出一个特殊的呼叫请求分组,该分组通过中间节点数据报的方式送往主机B,如果主机B同意连接,则发送呼叫应答请求分组予以确认。
  2. 虚电路建立后,就形成了一条固定的物理路径供双发发送数据,例如上图的虚电路时主机A->节点A->节点B->节点C->节点D->主机B,这样主机A就可以一直通过这条逻辑虚电路向主机B发送数据,同时主机B也可以在这条虚电路上向主机A发送数据。
  3. 当所有分组都有序的抵达主机B后,传送结束后,A发送通过虚电路方式释放请求分组来拆除虚电路,逐段断开整个连接。

我们要注意无论是数据报方式还是虚电路方式,在数据传输过程中都是有确认的传输(由高层实现,主机B收到分组后要发回相应分组的确认。但是网络中的传输是否有确认机制与网络层提供的两种服务是没有任何关系的,也就是说明基于数据报方式和虚电路方式实现的服务未必就是有确认机制的,他需要额外的机制来确认。

思考:为什么建立时是数据报方式,而释放时确实虚电路方式?

实际上很难好像,首先建立前还没有确定虚电路,因此只能通过数据报的方式发送请求连接的分组。但是当释放连接分组发送时,却已经有现成的虚电路了,并且释放连接分组按照虚电路的路径传送也可以顺便通知虚电路对应的物理路径上的各个交换节点释放对应的虚电路表上的虚电路号表项。

思考:虚电路方式和电路交换的区别?虚电路方式为什么是分组交换的一种,体现在哪里?

我们可能学习完虚电路方式后会混淆他和电路交换方式。实际上很好理解分辨两者的区别。首先电路交换方式是直接建立一条独占专用的物理信道路径收发双方使用,并且数据并不需要切割必须使用特定大小的分组来传输,因为电路交换方式是直接使用了一个信道的所有带宽,是非常充足的,完全没有必要分割的。而虚电路方式是仅仅形式上和电路交换类似,但是本质上还是分组交换的特点,首先一点,他就是必须使用分组进行传输,同时建立一条专用的逻辑虚电路和电路交换方式中的建立一条专用的物理信道电路区别很大。这里的虚电路仅仅强调的是对应物理路径是确定的即必须经过特点的交换节点,而不受占用一条物理路径,这也就意味着对于主机A->节点A->节点B->节点C->节点D->主机B这要路径上的交换节点并不是只能服务与这一条虚电路,他还可以服务与其他虚电路,比如还有一条虚电路是主机A->节点A->节点B->节点G->节点F->主机C,此时的节点A,节点B和节点C同时服务了两条虚电路,但是逻辑上这两条虚电路是专用于某一个收发双方的数据传输的,这就是虚电路的特点。也正是由于一个中间节点可能需要服务于多条虚电路,因此他需要区分不同的虚电路,因此我们需要为每一条虚电路分配一个独一无二的虚电路号从而在交换节点的虚电路表中加以区分。

思考:虚电路方式借鉴了电路交换的哪些优点?

首先当然就是更加安全稳定,并且分组是有序到达的。同时他也有类似于全双工的数据传输特点,但是同时,他又避免了电路交换中信道利用率低的特点。从每一个信道的视角来看,每一个信道的带宽都能够被充分利用服务与多条虚电路的服务,但是从每一个虚电路交换的数据传输视角来看,他自身确实在使用一条逻辑专用通道,完美复现了电路交换的优点。

因此我们可以总结电路交换有以下的特点:

  1. 虚电路方式为网络层提供连接服务,源节点与目的节点之间建立一条逻辑连接,而非物理连接的通道。因此首先需要为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
  2. 但是虚电路通信链路的建立和拆除需要时间开销,对交互式应用和小量的短分组情况显得很浪费,但对长时间、频繁的数据交换效率较高。
  3. 虚电路的路由选择体现在建立阶段,连接建立后,就确定了传输路径。
  4. 虚电路提供了可靠的通信功能,能保证每个分组正确有序到达。此外,还可以对两个数据端点的流量进行控制,当接收方来不及接收数据是,可以通知发送方暂缓发送。
  5. 虚电路有一个致命的弱点,即当网络中的某个节点或某条链路出现故障而彻底失效时,所有经过该节点或该链路的虚电路将遭到破坏。
  6. 分组首部并不包含目的地址,而包含虚电路标识符,相对数据报方式开销小。

虚电路之所以是虚的,就是因为这条电路不是专用的,每一个节点到其他节点之间的链路可能同时有若干虚电路通过,也可能同时与多个节点之间建立虚电路。每一条虚电路支持特定的两个端系统之间的数据传输,两个端系统之间也可以有多条虚电路为不同的进程服务,这些虚电路的实际路由可能相同也可能不同。

两种分组交换方式的对比

数据报服务 虚电路服务
连接的建立 不要 必须有
目的地址 每一个分组都有完整的目的地址 仅在建立阶段使用,之后每一个分组使用长度较短的虚电路号来确定路径
路由选择 每一个分组独立进行路由选择和转发 属于同一条虚电路的分组按照同一路由转发
分组顺序 不保证分组的有序到达 保证分组的有序到达
可靠性 不保证可靠通信,可靠性由用户主机来保证 可靠性由网络保证
对网络故障的适应性 出故障的节点丢失分组,其他分组路径选择发生变化,可正常传输 所有经过故障节点的虚电路均不能正常工作
差错控制和流量控制 由用户主机进行流量控制,不保证数据报的可靠性 可由分组交换网负责,也可由用户主及负责

最后我们要牢记数据报方式和虚电路交换方式都是分组交换的一种,他们分别应用于UDP和TCP中,并且各有千秋无优劣之分。