数据交换
如果不使用数据交换的话,那么计算机间两两相连就会造成 的链路问题,一共会有 种结果
变化过程:
↓
↓
动态转接:端口对端口,通过交换设备从对应的端口出发分配到对应的端口
电路交换
最典型的电路交换的例子就是电话网络
分为三个阶段:
- 建立连接(呼叫、电路建立)
- 通信(接通电话)
- 释放连接(挂机、拆除电路)
且两个电话之间在通话过程中建立起的电路所占用的通信资源比如信道资源是不允许第三方共享的,通俗点的理解就是比如A给B打电话,那么C此时拨打A或B的电话是打不通的,这就是所谓的独占资源,只有当他们挂断时,你才能去占用资源。
多路复用
因为无法保证每一对通信之间都有单独的物理链路,所以使用多路复用
基本原理:将链路、网络资源(如带宽)划分为“资源片”
- 将资源片分配给各路“呼叫”
- 每路呼叫独占分配到的资源片进行通信
- 资源片可能”闲置“(无共享)
典型多路复用方法:
- 频分多路复用(frequency division multiplexing - FDM)
- 时分多路复用(time division multiplexing - TDM)
- 波分多路复用(wavelength division multiplexing - WDM)
- 码分多路复用 (code division multiplexing - CDM)
频分多路复用
频分多路复用的各个用户占用不同的带宽资源(这里的带宽指频率带宽,而不是数据的发送速率)
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带
因为各个用户使用的载波频率是相互隔离的、互不干扰,所以可以使用共享信道
这里不同颜色代表不同的用户
时分多路复用
时分复用是将时间划分为一段段等长的时分复用帧(TDM帧),将每个用户在每个TDM帧中占用固定序号的时隙
每个用户所占用的时隙是周期性出现的,占用复用帧的某一个时隙,只在对应时隙来传递数据
时分复用的所有用户是在不同的时间占用相同的频带宽度
波分多路复用
波分复用就是光的频分复用
码分多路复用
应用于无线链路共享(如蜂窝网、卫星通信、军用网络)
原理:每个用户分配一个唯一的m bit 码片序列(chipping sequence),其中“0”用“-1”表示、“1“用“+1”表示
- 如某一站点的码片序列:-1-1-1+1+1-1+1+1
各用户使用相同频率载波,利用各自码片序列编码数据
编码信号=(原始数据)x(码片序列)
- 如果发送二进制数据1的话,相当于发送比特1(+1),则发送自己的m bit 码片序列
- 如果发送二进制数据0的话,相当于发送比特0(-1),则发送该码片序列的m bit 码片序列的反码
所有用户使用的频率相同,那么每个用户发送出去数据以后信号在信道中势必会相互叠加,为了共享信道而互不干扰,所以对码片序列有要求——各用户的码片序列相互正交
这表示只有自己和自己的码片序列进行运算才会得到结果1,如果两个站点的码片序列不一样的话一定是0,同样,如果一个用户的码片序列与另外一个码片序列的反码相乘的话,如果是自己的码片序列的反码,得到的结果一定是-1,否则为0。
令
为原始数据序列,各用户的叠加向量为,所有用户的数据相互叠加
信道传输的是所有用户发出信号的叠加的一个向量
Q:如果一个用户想接收另外一个用户数据的时候,怎样获取另外一个数据而不受其他用户影响呢?
A:解码。
解码:发送数据的码片序列与编码信号的内积
如果得到1表示 发送的是一个二进制比特1
如果得到-1表示 发送的是一个二进制比特0
如果得到0表示没有发送数据
单个用户
多个用户
报文交换
Q:什么是报文?
A:源(应用)发送信息整体,比如一个文件
Q:报文交换是什么意思呢?
A:就是在整个数据传输过程中,要以整个报文作为一个整体,一次性转发到下一个相应的节点上去
源主机→路由器→目的主机,如电报
分组交换
Q:什么是分组?
A:报文分析出来的一系列相对较小的数据包
分组交换需要报文的拆分和重组
- 发送报文的源主机要把报文拆成一个个小数据块,然后每个数据块上加上头部信息(头部|数据块),再构成一个分组,把这个分组发出去,到达目的主机以后,目的主机要接收完整的报文信息,所以要把这些各个小的分组所携带的报文的一部分数据合并在一起,这个时候才还原报文。
既然要进行拆分和重组,那么就会产生额外的开销(因为在源主机和目的主机进行,所以影响不大)
统计多路复用
Q:统计多路复用的原理是什么?
A:如下图,如果A发送的数据大时,其占用的链路带宽就多,如果B不发送数据,那么整个链路带宽就全部分配给A,这就是按需共享链路(statistical multiplexing)
存储-转发(store-and-forward)
先把数据接收过来暂存一下,然后确定要从哪个链路把它再往下发出去,并且那个链路可用,那就直接发送了。
报文交换与分组交换均采用存储-转发交换方式
两者的区别
报文交换以完整报文进行“存储-转发”
分组交换以较小的分组进行“存储-转发”
Q:哪种交换更好呢?
A:下面会介绍
分组交换:传输延迟
发送主机:
- 接收应用报文
- 拆分为较小长度为L bits的分组(数据包)
- 在传输速率为R的链路上传输分组
报文交换 vs 分组交换
报文交换
- 报文长度为M bits
链路带宽为R bps
每次传输报文需要M/R秒
分组交换
- 报文被拆分为多个分组
- 分组长度为L bits
- 每个分组传输时延为L/R秒
举个例子
M = 7.5 Mbits
L = 1500 bits
- M = 1500L
R = 1.5 Mbps
看报文交换和分组交换的交付时间
- 报文交换交付时间= 15s,在这里路由器至少需要7.5M缓存
- 分组交换交付时间= 5.002s,按照之前介绍的原理,第一个数据包传到第二个路由器时,第二个数据包已经传递到第一个路由器….以此类推,因此这是现在被广泛使用的,在这里路由器理论上只需要1500bit即可
分组交换的报文支付时间T
- 报文:M bits
- 链路带宽(数据传输速率):R bps
- 分组长度(大小):L bits
- 跳步器:h
- 路由器数:n
分组交换 vs 电路交换
举个例子
- 1 Mb/s链路
每个用户:
- “活动”时需100 kb/s
- 活动就是这个用户真正进行网络通信,真正在网络上传数据,如上传或下载时,正在传输内容
- 平均活动时间10%
- 我们真正网络传输的时间,假如我们看新闻,我们点击链接的时候就是活动时间内,当我们加载完网页开始看新闻时,这就不属于活动时间了
电路交换:
- 通信之前必须建立电路,建立之后意味着共享链路的100k的通信带宽就要被我们这个应用的电路所占用,且不能共享,表示这个用户占用的100k在我们非活动时间内也是不允许第三方使用的
- 只支持10个用户同时使用
分组交换
- 统计多路复用,不占用链路的资源,只需在通信的时候构造数据分组发出来到路由器,路由器按照数据到达的先后顺序在链路上进行发送,没发送一个用户的数据分组都是按1 Mbps的速率进行发送
- 分析得到:对于35个用户,大于10个用户同时活动的概率是<0.0004
分组交换运行更多用户同时使用网络,网络资源充分共享
Q:那么分组交换绝对优于电路交换?
A:不能这么说,但可以总结为
适用于突发数据传输网络
- 突发:比如打开一个网页看文章,我们花上半个小时看完,那么这半个小时我们都没有占用网络资源,那么在打开网页的这个瞬间我们就属于突发数据
非突发:比如我们现在在视频网站上追剧,看视频要源源不断的传递数据;电话打通,我们要不断传输我们通话的内容
资源充分共享
- 简单、无需呼叫建立
可能产生拥塞:分组延迟和丢失
- 很多用户大量的向网络中发送数据,超越了网络的传输能力
- 导致数据包在网络核心上(路由)进行排队等待甚至可能丢失
- 需要协议处理可靠数据传输和拥塞控制