数据传输的三种交换方式

版权声明:转载请注明出处! https://blog.csdn.net/zjq_1314520/article/details/54024547

电路交换,报文交换,分组交换


首先我们来看看三种交换方式的示意图

三种交换

对照上面的图,给出三种交换方式在数据传输阶段的主要特点:

  • 电路交换:整个报文的比特流连续的从源点直达终点,好像在一个管道中传送。
  • 报文交换:整个报文先传输到相邻的结点,全部存储下来后查找转发表,转发到下一个结点。
  • 分组交换:单个分组(报文的一部分)传送到相邻结点,传送到相邻结点,存储下来后查找转发表,转发到下一个结点。

接下来介绍几种衡量计算机网络性能的指标

  • 速率:指的是单位时间传送的比特数,其单位是 b/s(比特每秒)。一个比特(bit)就是一个二进制数字中的一个 1 或 0。
    注:

比特是计算机中的最小单位,一个字节(Byte)=8个bit。
1Kb = 1024bit
1KB = 1024Byte
1Mb = 1024 Kb
1MB = 1024KB
所以有 1 Mb = 0.125 MB (1/8 * MB)
(注意上面的大小写)

  • 带宽:在计算机网络中,带宽用来表示通信线路的数据传输能力,因此网络带宽指的是在单位时间内从网络中的某一点到另一点所能通过的最高速率(上面的那个,也可以称为数据率或者比特率)。
  • 时延
    时延指的是数据从网络的一端传送到另一端所需的时间。网络中的时延有一以下几个不同的部分组成:

    1. 发送时延:主机或者路由器发送数据帧说需要的时间,由此发送时延的计算公式为:
      发送时延

    2. 传播时延:电磁波在信道中传播一定距离需要话费的时间,由此传播时延的计算公式为:
      传播时延
      注意:电磁波在自由空气中传输速率为:3.0 * 10^5 km/s,电磁波在网络传输媒体中的传播速率则相对要低一点:

      • 在光纤中的传播速率大约为:2.0*10^5 km/s
      • 在铜线电缆中的传播速率约为:2.3*10^5 km/s
    3. 处理时延:主机或者路由器在接受到分组时候要话费一定的时间进行处理,例如分析分组的首部,从分组中提取数据部分,运行差错检验或者查找适当的路由等等。

    4. 排队时延:分组在进入路由器后要先在输入队列中等待处理。在路由器确定了转发接口后还需要在输出队列中等待转发,所以就产生了排队时延。

    这样,数据在网络中经历的种时延就是以上四种时延之和:

    种时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

  • 时延带宽积:表示一个链路可以容纳的最多比特,其计算公式如下:

    时延带宽积 = 传播时延 * 带宽

    我们用下面的的示意图来表示时延带宽积:
    时延带宽积
    链路像一条圆柱形的空心管道,管道的长度来表示链路的传播时延,而管道的横截面积表示带宽,所以时延带宽积就是表示这个管道的体积,表示这样的链路可容纳的比特数。

讲了那么多的概念,最后我们来看一下实例问题吧:

要传输的报文一共 x(bit)。从源点到终点共经历k段链路,每段链路的传播时延为 d(s),数据率为 b(b/s)。在电路交换时电路的建立时间为 s(s)。在分组交换时分组的长度为 p(bit),且各个结点的排队等待时间可以忽略不计。
问:在怎样的条件下,分组交换的时延比电路交换的要小?

我们看一下解题过程:

  • 电路交换:
    (1). 建立连接:s(s)
    (2). 发送时延:根据公式得到为 x/b (s)
    (3). 传播时延:k*d(s)
    所以电路交换的种时延为:s + x/b + +k*d (s)

对于分组交换或许会复杂些,我们参照下面的这个图:
例题分析
上图中A C都是表示的发送分组的时延 ,B表示的传播时延。上图是在4个报文,三条链路的情况下的示意图,对于本题,一共有k段链路,每个分组长度为p的情况下,响应A B C的数据为:

A:报文总长度 / 数据率 即 x/b (s)
B:链路数目 * 每段链路的传播时延 即 k*d (s)
C:(链路数目 - 1) * 单个分组长度 / 数据率 即 (k-1)*(p/b) (s)
所以分组交换的总时延为: x/b + k*d + (k-1)*(p/b) (s)

我们得到了分组交换的时延和电路交换的时延,只要使 分组交换的时延 < 电路交换的时延 ,然后解方程就可以得到结果。参考结果为:

只要满足:(k-1)p/b < s 即可

上面的题目就算是解完了,现在我们在上题的基础下,看一下下面的问题:

在上题的分组交换网中,假设报文长度和分组长度分别为 x 和 (p+h)(bit),其中p和h分别是单个分组的数据部分长度和分组头部信息长度(h和p之间没有联系)。也是共经过k段链路。链路的数据率为 b (b/s),但是 传播时延和排队时延都是不做计算的。
若要使得总时延最小,那么p的值应该取多大?

我们来分析一下这个问题:

首先每个分组的数据部分为p,那么分组的个数不就是 x/p,那么得到了分组的个数,不就的得到了要发送的总长度为:(p+h)*(x/p)。那么时延就为(p+h)*(x/p)/b (s),这就相当于上面的A,因为传播时延B已经不计算,那么C的值为 (k-1)*(p+h)/b (s)。
所以:总时延=(p+h)*(x/p)/b + (k-1)*(p+h)/b (s)
我们运用微分方程的一些知识,很容易得到 p = ((hx)k1)

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试