Skip to content

Latest commit

 

History

History
83 lines (49 loc) · 3.33 KB

README.md

File metadata and controls

83 lines (49 loc) · 3.33 KB

数据传输方式

电路交换

在源到目的的通信会话期间,预留了沿途路径所需的所有资源。

例如传统的电话网络,当通话进行之前,必须建立一条发送方与接收方的连接,这条连接即为电路:

phone1  <---------> phone2
         |       |
         |       |
         |       |
         |       |
phone3  <---------> phone4
``` 

假设 phone1 与 phone2 进行通话,若采用频分复用的方式构建链路,则二者占用了链路中的某个频段,在二者通话期间,其他人无法使用这段频率。

因此,与随后的分组交换相比,电路交换效率低下且成本高昂,因此在网络通信过程中,这种方式很少用到。

## 报文交换

不同于电路交换中构建一条真实的物理链路,报文交换以**存储转发**的方式进行传输。

- 存储转发:交换机向下一条链路传输数据时,必须接收到之前的所有数据。

假设有下述网络:

```txt
源 ----> 路由器1 -----> 目的

源将报文(即所有数据)传输到路由器1, 路由器1 接收完后,才将数据传给 2.

由于报文长度没有限制,对于数据较大的分组,时延可能较大,因此多数采用分组交换

分组交换

为了将源系统向目的系统发送一个报文,源将长报文分割为较小的数据块,称为分组

每个分组通过通信链路和分组交换机(路由器和链路层交换机)传输。

传输过程

考虑两个端系统经过一台路由器构成的简单网络,即:

源 ------->  路由器 -------> 目的

假设源发出的报文分割成了两个分组,每个分组的长度为 $L$ bit, 链路传输速率为 $R$ bit/s.

  • 时刻 0, 源开始传输;
  • 时刻 $L/R$ s, 路由器接受完第一个分组,并向目的地传输该分组;
  • 时刻 $2L/R$ s, 目的地接受完第一个分组;路由器接受完第二个分组,并向目的地传输该分组;
  • 时刻 $3L/R$ s, 目的地接受完所有分组。

存储转发时延(传输时延)

扩展到一般情形:由 $N$ 条速率均为 $R$ bit/s 的链路组成的路径(在源和目的之间一共有 $N-1$ 个路由器),对于从源发向目的地的一个分组,端到端的存储转发时延为:$NL/R$ s.

传播时延

数据在链路上的传播是需要消耗时间的,但由于速率为光速,因此传播时延一般在毫秒量级。

排队时延

思考:若有多个分组同时到达某台交换机,则交换机该如何处理?

其实,每台交换机都会与多个链路相连,对于每条相连的链路,交换机内有一个输出队列,它存储了发往各个链路的分组。

若某条链路中已经传输分组,则交换机中准备向这条链路发出的分组必须在输出队列中等待,因此,分组还具有排队时延,该事件由网络环境的拥挤程度决定的。

转发表

对于每个到达路由器的分组而言,都需要知道它之后的传输路径,因此,每个路由器中存储了转发表,它用于将目的地址映射为输出链路。

丢包

再思考:若交换机内的输出队列已满,而又有新的分组到达该交换机,如何处理?

一般情况下,交换机会按照约定的策略丢掉某个分组,这就是丢包