导读
大家好,很高兴又和大家见面啦!!!
经过前面几个篇章的内容,我们已经熟悉了计算机网络的三种交换方式:
- 电路交换——通信双方通过建立一条专用的通信线路进行通信。
- 报文交换——通信双方通过将源地址、目的地址以及用户数据打包成报文进行通信。
- 分组交换——通信双方通过将用户数据分割成长度相同的短数据,并且在每个短数据的前面添加由源地址、目的地址以及序列信息等控制信息组成的首部,由首部和短数据组成一个分组,借由这些分组完成通信。
这三种交换方式各有各的优缺点,那他们之间到底谁优谁劣呢?在今天的内容中,我们将会从多个维度来比较这三种交换方式的性能。下面我们直接进入正题吧!!!
一、电路交换
在电路交换的整个过程中,需要经历三个阶段:
- 建立连接
- 数据传输
- 释放连接
这三个阶段的时间消耗如下图所示:
从已知信息中,我们可以获取各阶段的时间消耗情况:
- 连接建立阶段:
- 连接请求:A->B、B->C、C->D
- 节点A、B、C三个节点的请求传输需要花费1ms,B、C两个节点的连接建立需要花费1ms
- 请求应答:D->C、C->B、B->A
- D处理连接请求需要花费2ms,应答传输到每个节点都需要花费1ms
- 连接建立的整个过程需要花费10ms
- 连接请求:A->B、B->C、C->D
- 数据传输阶段:
- 耗时计算:
发送时延
=
报文大小
/
传输速率
发送时延 = 报文大小 / 传输速率
发送时延=报文大小/传输速率
- 由公式可得 发送时延 = 4 / 0.5 = 8 m s 发送时延 = 4 / 0.5 = 8ms 发送时延=4/0.5=8ms
- 信号传输:从A到B,B到C、C到D每个节点之间的型号传输只需要花费1ms
- 数据传输的整个过程需要花费11ms
- 耗时计算:
发送时延
=
报文大小
/
传输速率
发送时延 = 报文大小 / 传输速率
发送时延=报文大小/传输速率
- 连接释放阶段:
- 释放请求:A->B、B->C、C->D
- A结点完成数据传送后到传输释放连接信号需要花费1ms,节点之间的信号传输只需要1ms,B、C两个节点在接收到信号后断开与上一个结点的连接需要1ms
- 连接释放的整个过程需要花费6ms
- 释放请求:A->B、B->C、C->D
从上面的时间消耗来看,电路传输光是连接建立与连接释放这两个阶段就花费了16ms,而真正用于数据传输的时间才11ms,大部分时间都用在了连接建立与释放上了。
二、报文交换
在报文交换中,数据是直接以报文的形式发送给邻近的结点,节点在收到报文后,花费一定的时间来存储与处理报文,最后才能够转发给下一个结点,整个过程的时间消耗如下所示:
由报文大小与数据传播速率,我们可以计算出报文从一个节点传输到下一个节点所需要消耗的时间:
发送时延 = 4 / 0.5 = 8 m s 发送时延 = 4 / 0.5 = 8ms 发送时延=4/0.5=8ms
每个节点之间的信号传输需要消耗1ms,B、C两个节点在收到报文后,需要花费2ms对报文进行处理,才能转发给下一个节点。
也就是说报文交换从发送信号开始到节点D完成信号接收为止,整个过程都是在进行报文传输,相比于电路传输,报文传输的通信资源利用率就大大提高。
三、分组交换
在分组交换中,通信的起始方会将报文分割成定长的分组,每个分组的首部都有该分组的编号信息,完成分割后,分组会依次被传输给邻近的节点,节点在收到分组后,会通过存储转发技术继续传递给下一个节点,同时上一个节点会同步传输下一个分组的信息,直至目的地址完成所有分组的接收:
从由报文大小、分组大小以及数据传输速率我们可以获取分组从一个节点发送到下一个节点所需时间:
发送时延 = 1 / 0.5 = 2 m s 发送时延 = 1 / 0.5 = 2ms 发送时延=1/0.5=2ms
每个节点之间的信号传输需要消耗1ms,B、C两个节点对接收到的分组进行处理的时间只需要0.5ms,之后就可以将该分组的信息转发给下一个节点,同时接收上一个节点传输过来的下一个分组的信息。
也就是说当节点D完成全部分组信息的接收,整个过程都是在进行分组传输,相比于电路交换,分组交换对通信资源的利用率大大提升,对比与报文交换,分组交换所消耗的时间大幅度降低。
四、性能对比
下面我们就来看以下3种交换方式的时间消耗图示比较:
如果仅观察数据传输阶段的耗时,我们不难发现,电路交换的发送时延是最低的,报文交换的发送时延是最高的,分组交换中规中矩;
在整个信息传输的过程中,由于电路交换是提前建立好了专用的通信线路,因此数据在传输的过程中是不需要进行校验,可以直接完整的传输给目的地址,而报文交换和分组交换都会在中间节点进行停留,因此需要在下一次发送前检验一下当前的数据是否正确;
在电路交换和报文交换中,结点之间传输的都是整个报文,因此传输的数据都是有序的,但是分组交换传输的则是一个一个的分组,并且这些分组的传输都是独立的,当一个分组全部传输完,下一个分组才会开始进行传输,并且传输的过程与报文交换一样,会灵活的选择线路,因此目的地节点在收到分组时不一定是按照源地址节点发送分组的顺序进行接收,所以目的地节点在完成所有分组的接收后需要先对这些分组进行排序,之后才能够将这些分组的首部去掉,获取完整的数据;
结语
在今天的内容中我们介绍了电路交换、报文交换与分组交换技术这三种交换技术的性能对比,下面是三种交换方式从不同维度的性能表:
特性 | 电路交换 | 报文交换 | 分组交换 |
---|---|---|---|
完成传输所需时间 | 最少(排除建立/释放连接耗时) | 最多 | 较少 |
存储转发时延 | 无 | 较高 | 较低 |
通信前是否需要建立连接? | 是 | 否 | 否 |
缓存开销 | 无 | 高 | 低 |
是否支持差错控制? | 不支持 | 支持 | 支持 |
报文数据有序到达? | 是 | 是 | 否 |
是否需要额外的控制信息 | 否 | 是 | 是(控制信息占比最大) |
线路分配灵活性 | 不灵活 | 灵活 | 非常灵活 |
线路利用率 | 低 | 高 | 非常高 |
表格说明
在不同的维度中,三种交换方式的表现各有千秋:
- 从线路的利用率来看,分组交换是三者中性能最好的交换方式;
- 从完成传输所需时间来看,电路交换是三者中性能最好的交换方式;
- 从缓存开销来看,电报交换所需的缓存开销是三者中最高的交换方式;
三种技术各有优缺点,在现代计算机网络中,分组交换因其高效性和灵活性被广泛采用。
今天的内容到这里就全部结束了,在下一篇内容中我们将介绍《计算机网络的性能指标》,大家记得关注哦!
如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!