1.分组交换
首先先看一下分组(packet)的定义:
A network packet is a formatted unit of data carried by a packet-switched network.
网络分组是由分组交换网络承载的数据的格式化单元。
——来自微软学术的定义
为了从源端系统向目的端系统发送一个报文 (message),将长报文划分成较小的数据块,称之为分组(packet)。
在源和目的地之间,每个分组都通过通信链路和分组交换机 (packet switch)传送。(交换机主要有两类:路由器 (router) 和链路层交换机 (link-layer switch))
分组以等于链路的最大传输速率的速度传输通过通信链路。
例如:
某源端系统或分组交换机经过一条链路发送一个L bit的分组,链路的传输速率为R bit/s,则传输该分组的时间为L/R s。
1.1存储转发传输(store-and-forward transmission)
大多数交换机在链路的输入端使用这种机制。
存储转发传输是指在交换机能够开始向输出链路传输该分组的第一个bit之前,必须接受整体分组。
在传输速度小于分组的大小时,在某一时刻,分组的前沿可能已经到达了路由器,但是这个时候还不能直接传输已经接受的bit,必须先存储该分组的bit。仅当路由器已经接受完了该分组的所有bit后,它才能向出链路传输(转发)该分组。
1.2排队时延和分组丢失
每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称为输出队列(output queue)),用于存储路由器准备发往那条链路的分组。我觉得输出队列这个称呼更加形象。如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组就必须在输出缓存中等待。排队的时间称为排队时延(queuing delay)。
由于缓存空间的大小是有限的,但缓存被其他分组完全充满时,新到达的分组或者已经排队的分组之一将会被丢弃,即分组丢失(packet loss,称为丢包)
1.3转发表和路由选择协议
路由器怎样决定它应当向哪条链路进行转发呢?
不同的计算机网络以不同的方式进行。
我们介绍以因特网采用的方法。
在因特网中,每个端系统具有一个称为IP地址的地址。当源主机要向目的主机发送一个分组时,源在该分组的首部包含目的地的IP地址。
当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻路由器转发该分组。每一个路由器都有一个转发表(forwarding table),用于将目的地址(或目的地址的一部分)映射成为输出链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其他转发表,以发现适当的出链路。路由器将分组导向该出链路。
因特网具有一些特殊的路由选择协议(routing protocol),用于自动地设置这些转发表。例如,一个路由选择协议可以决定从每台路由器到每个目的地的最短路径,并使用这些最短路径结果来配置路由器中的转发表。
可以访问www.traceroute.org,选择一个源,跟踪该源到你的计算机的路由。
2.电路交换
在电路交换网络中,在端系统健通信会话期间,预留了端系统间沿路径通信所需要的资源(缓存,链路传输速率)。
传统的电话网络是电路交换的例子。当一个人通过电话网向另一个人发送信息时。在发送方能够发送信息之前,该网络必须在发送方和接收方之间建立一条连接。此时,沿着方式方和接收方之间路径上的交换机都将为该连接维护连接状态。因为预留了带宽,发送方可以以确保的恒定速率向接收方传送数据。
当两台主机需要通信时,该网络在两台主机之间创建一条专用的端到端连接(end-to-end connection)。
图1-13中的专用的连接使用第一条链路的第二条电路和第二条链路的第四条电路。每条链路具有4条电路,对于有端到端连接所使用的每条链路而沿言,该连接在连接期间获得链路总传输容量的1/4。
电路交换网络中的复用
通过频分复用(Frequency-Division Multiplexing,FDM)或时分复用(Time-Division Multiplexing,TDM)来实现。
对于FDM,链路的频谱由跨越链路创建的所有连接共享。在连接期间链路为每条连接专用一个频段。频段的宽度称为带宽(band-width)。
对于TDM,时间被划分为固定期间的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时,网络在每个帧中为该连接指定一个时隙。这些时隙专门由该连接单独使用,一个时隙(每个帧内)可用于传输该连接的数据。对于TDM,一条电路的传输速率等于帧速率乘以一个时隙中的比特数量。例如,如果每个链路每秒传输8000个帧,每个时隙由8个bit组成,则每条电路的传输速率为64kbps。
传输640000比特的文件。
网络中所有的链路使用具有24时隙的TDM,比特速率为1.536Mbps。同时假定在源主机能够开始传输该文件之前,需要500ms创建一条端到端电路。
每条链路的传输速率:1.536Mbps/24 = 64kbps
传输时间:640kb / 64kbps = 10s
总时间:10s + 500ms = 10.5s
3.分组交换与电路交换对比
分组交换:
- 提供比电路交换更好的带宽共享
- 比电路交换更简单、更有效,实现成本更低