-
数据交换方式有电路交换、报文交换、分组交换,本文主要学习分组交换。 -
分组交换(package switching) 分组:报文分拆出来的一系列相对较小的数据包 分组交换需要报文的拆分与重组,会产生额外开销。在发送端对报文进行拆分,在接收端对报文进行重组,一般有传输层上的协议完成,如TCP协议。 报文交换与分组交换均采用存储-转发交换方式。其中,报文交换以完整报文进行存储转发,而分组交换以较小的分组进行存储转发。 -
分组交换:传输延迟 例如,发送主机: a、接收应用报文(消息) b、拆分为较小长度为L bits的分组(packets) c、在传输速率为R bps(即bits/s)的链路上传输分组 则 分组传输延迟(时延 delay)= L(bits)/R(bits/s) -
比较报文交换与分组交换的传输延迟: 报文交换: a、报文长度为M bits b、链路带宽为R bps c、每次传输报文需要 M/R 秒 分组交换: a、报文被拆分为多个分组 b、分组长度为L bits c、每个分组传输时延为 L/R 秒 给定数据,M=7.5 Mbits,L=1500 bits(则M=5000L,拆分为5000个分组),R=1.5 Mbps。传输链路如图所示, ![本文所用图片均来源于哈尔滨工业大学的计算机网络课程](https://img-blog.csdnimg.cn/19ffd484a0a04411a37aa0231e620789.png) 注:本文所用图片均来源于哈尔滨工业大学的计算机网络课程。
其中,报文交换的报文交付过程如图所示,在0-5秒时报文到达第一个路由器,5-10秒时报文到达第二个路由器,10-15秒时报文到达目的主机。(忽略其他延迟,仅考虑传输延迟情况下) ![在这里插入图片描述](https://img-blog.csdnimg.cn/e8f2add148004386bc89b28c9c7c471e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/7bd6ba1a4edd4e31b0f18be472e86b58.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/29d0ba69c29448a9ac959fb92d0212a9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) 可以看出,报文交付时间为15秒。并且考虑路由器至少需要多大缓存?很明显,在报文交换中,路由器缓存至少为报文大小,在此情境中是7.5 Mbits。那么,遇到更大的报文怎么办?路由器缓存需要做到多大才能满足任意报文?这显然是个头疼的问题。
那么,在分组交换下的传输延迟呢? ![在这里插入图片描述](https://img-blog.csdnimg.cn/e1214dd6180f4a808d275fa533274469.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/dc313cf6f5ba46239f8884318f0e280e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/2a2d1f09c0d14002b9eb41af9c48b696.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/29db4b90f97b4c0da86140ce0f0b823d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4ae2ec92a34e473ab3acd8d5a550eb92.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) 可以看到,当最后一个分组到达目的主机时,整个报文交付完成,交付时间为5.002秒。此时考虑路由器至少需要多大缓存?很明显,路由器只需要缓存一个分组的大小即可,即1500bits。 两相对比,分组交换的交付时间5.002秒比报文交换的交付时间15秒快了很多,所需路由器缓存也很小。
由以上例子可以得出分组交换报文交付时间的计算公式: 报文:M bits 链路带宽:R bps 分组大小:L bits 跳步数(经过一段链路即为一跳):h 路由器数:n ![在这里插入图片描述](https://img-blog.csdnimg.cn/9571eaa071a745768cf5f370becdec24.png) T=M/R+(h-1)L/R =M/R+nL/R
- 分组交换VS电路交换
![在这里插入图片描述](https://img-blog.csdnimg.cn/675ff6d072fb48e1b34f2ea3c3331e20.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2F0c29uX1dlbmc=,size_20,color_FFFFFF,t_70,g_se,x_16) 如图所示,电路交换有“独享资源”的特点,即使每个用户平均活动时间只有10%也会一直占用带宽,因此最多允许10个用户;而分组交换中,对于35个用户,大于10个用户同时活动的概率<0.0004.(概率论知识)因此,分组交换允许更多用户同时使用网络,即网络资源充分共享。
那么,分组交换绝对优于电路交换吗? 并不是。分组交换适用于突发数据传输网络,有利于资源充分共享,并且简单、无需呼叫建立。但可能产生拥塞:分组延迟和丢失。需要借助协议处理可靠数据传输和进行拥塞控制。
|