前言
在上一节中,我们介绍了广域网技术和其中的一种——Dedicated Networks 专用网络的部分。在这一章,将介绍剩下两种广域网技术——Circuit switching和Packet-switched Networks。
电路交换网络
电路交换网络(Circuit switching)是一种广域网(WAN)技术,这种技术在建立通信之前,首先在发送方和接收方之间建立一个专用的物理通信路径。
电路交换用于必须长时间连续的连接,例如长距离通话。在电路交换中,带宽和数据传输速率是固定的。
电路交换网络的通信过程分为三个主要步骤:
- 建立连接(Connection establishment):在通信开始前,网络需要先建立一条从源头到目的地的专用物理连接。这个过程涉及寻路和为通信预留必要的资源。
- 通信(Data transfer):一旦建立了连接,数据就可以沿着这条专用的物理路径传输。在连接存在期间,这条路径是专门为这次通信保留的。
- 释放连接(Connection relinquishment):通信结束后,建立的物理路径被释放,资源随之被回收,以供未来的通信使用。
我们在本章中,主要介绍电路交换网络的一种经典应用——集成业务数字网(ISDN)。
ISDN
ISDN(Integrated Services Digital Network,集成业务数字网)是一种用于传输语音、数据和视频的数字通信网络。在ISDN之前,还存在一种电路交换网络——模拟拨号,模拟拨号是一种基于模拟信号的通信方式,通常用于传输语音信号,也可用于传输低速数据。
在模拟拨号技术中,通信设备通过拨号方式建立点对点连接。当用户拨号时,通信设备会向电话交换机发送信号,请求建立连接。电话交换机会将呼叫连接到目标设备,建立起通信链路。这种方式下,通信链路是一直占用的,直到通信结束,如图所示。
此时,在用户端处负责将数字信号转变成模拟信号的拨号调制解调器传输速率只有56Kbps,速度很慢。而ISDN的出现,组成了数字信道,使其可以传输数字信令,为用户提供了更高的通信质量和更快的传输速度。
ISDN对比模拟信号有着如下的优点:
- ISDN可以使用电话网络传输各种用户流量信号。
- ISDN在呼叫建立速度上比调制解调器连接快得多,因为它使用D通道。
- ISDN通过使用基于信道(64Kbps的B通道)提供比调制解调器更快的数据传输速率。
其中,我们把为使通信网中各种设备协调运作,在设备之间传递的有关控制信息称为信令(Signaling)。
ISDN提供了两种类型的接口:基本速率接口(BRI)和主要速率接口(PRI),用于满足不同用户的通信需求。
- 基本速率接口(BRI):由两个64Kbps的B信道和一个16Kbps的D信道组成。
- B信道用于传输用户数据,每个B信道的传输速率为64Kbps,可以同时传输语音、数据或视频。
- D信道用于传输控制和信令信息,确保通信链路的稳定和可靠。
- BRI适用于小型办公室或家庭用户,提供了较高的传输速率和较好的通信质量,适合一般通信需求。
- 主要速率接口(PRI):也称为T1(美国)或E1(欧洲)接口,提供了更高的传输速率和更多的信道。
- PRI由23个B信道和1个D信道组成(T1接口),或者30个B信道和2个D信道组成(E1接口)。
- PRI适用于大型企业或需要大量数据传输的用户,提供了更高的传输速率和更多的通信信道,满足了高容量通信的需求。
我们主要介绍BRI。BRI通常与各种设备和设施一起使用,以支持数字通信。以下是一些常见的BRI设备:
- Terminal Equipment 1 (TE1, 终端设备1):TE1是指直接连接到ISDN网络的数字终端设备。这些设备可以是计算机、传真机、电话等,能够通过ISDN网络进行数据传输或通信。
- Terminal Equipment 2 (TE2, 终端设备2):TE2是指通过ISDN终端适配器(TA)连接到ISDN网络的设备。这些设备可能不具备直接连接到ISDN网络的能力,因此需要通过TA转换为ISDN可以接受的信号。
- Terminal Adapter (TA, 终端适配器):TA是一种设备,用于将非ISDN设备连接到ISDN网络。它可以将模拟信号转换为数字信号,使得非ISDN设备能够通过ISDN网络进行通信。
- NT Type 1 (NT1,网络终端1):NT Type 1是指一种设备,用于连接用户设备到ISDN线路。它负责将用户设备产生的数字信号转换为ISDN网络可以接受的信号,并提供线路管理和维护功能。
- NT Type 2 (NT2,网络终端2):NT Type 2是指一种设备,用于连接ISDN线路到用户设备。它提供了与NT Type 1相反的功能,即将ISDN网络产生的数字信号转换为用户设备可以接受的信号,并提供线路管理和维护功能。
其中,不同的设备之间连接存在不同的接口,具体如下:
- S/T接口(S/T Interface):S/T接口是指TE1和NT之间的接口。
- R接口(R Interface):R接口是指TE2和TA之间的接口。
- U接口(U Interface):U接口是指NT和ISDN交换机之间的双线接口。
ISDN协议
ISDN标准同时也是一组协议,应用于物理层、数据链路层和网络层。
ISDN BRI的物理层接口遵循ITU-T I.430标准,PRI遵循ITU-T I.431标准。BRI物理层帧分为两种——出站帧(Outbound Frames)和入站帧(Inbound Frames)。
出站帧是从网络向用户设备发送的帧。这些帧可以包括从交换中心发出的信号(例如,电话拨号信号、控制信息等),也可以包含其他用户通过网络发送的数据。它使用TE帧格式。
入站帧是从用户设备向网络发送的帧。它们包含用户发起的通信请求、数据传输以及对出站帧的响应。它使用NT帧格式。
如图,每个ISDN BRI帧包含两个子帧。每个子帧中都有8 bits of B1 channel,8 bits of B2 channel,2 bits of D channel,6 bits of overhead(E/F/L/S)。即每个ISDN BRI帧有2 x (2 x 8B + 2D + 6F) = 32B + 4D + 12F
的结构,合并起来就是48BDF
。
现在计算ISDN BRI帧的比特率,假设每秒传输n个ISDN BRI帧,总体传输速率为(48BDF x n) bps
,而其中有效的接口信息为[(32B + 4D) x n] bps
。
ISDN BRI第二层信令协议是LAPD(Link Access Procedure for D channels),是用于ISDN网络中D信道的数据链路层协议。LAPD负责在ISDN中的D信道上建立和管理连接,以及传输控制和管理信息。它定义了数据帧的格式、错误检测和纠正机制,以及连接的建立和维护过程。其帧格式如图。
其中有三种类型的地址:端点地址(Station Address)、SAPI(Service Access Point Identifier)和TEI(Terminal Endpoint Identifier)。
- 端点地址(Station Address):这是LAPD用来标识接收方的地址。每个LAPD实体都有一个唯一的端点地址,用于区分不同的设备或网络节点。通常情况下,端点地址用于将数据帧发送到正确的接收方。
- SAPI(Service Access Point Identifier):SAPI用于标识在同一个ISDN用户之间提供的不同服务。例如,不同的SAPI可以用于语音通信、数据传输和信令传递。这样可以让网络设备知道接收方希望使用哪种服务。
- TEI(Terminal Endpoint Identifier):TEI用于标识连接到ISDN的不同设备或终端。每个设备在连接到ISDN时都会被分配一个唯一的TEI。TEI的作用是在多个设备之间唯一地标识每个设备,以便正确地路由数据帧。相当于LAPD中的MAC地址。
BRI网络层遵循Q.931协议,它定义了在ISDN中建立、维护和拆除连接的过程,包括呼叫的建立、接受、拒绝、释放等。Q.931通过在用户设备和ISDN网络之间传输信令消息来实现这些功能。
ISDN的全过程如下,在整个过程中,ISDN BRI通过分离数据(B通道)和信令(D通道)的方式,有效地管理和控制通信,提供了一种相对高速且可靠的通信方式。
- 建立连接阶段:
- 用户1想要与用户2通信,首先,用户1的设备通过连接到其modem的ISDN终端适配器(TA)向本地ISDN交换机(local switch)发起呼叫请求。
- 这个请求通过D通道使用Q.931协议传输。Q.931包含有User2的电话号码,它会被包装在LAPD中,包含了User1的TEI。
- 本地ISDN交换机接收到请求后,处理呼叫,并通过网络寻找到用户2的远端ISDN交换机(remote switch)。
- 远端ISDN交换机通过D通道,使用相同的Q.931协议,通知用户2有呼叫进入,并请求用户2接受呼叫。
- 一旦用户2接受呼叫,两个ISDN交换机之间就通过D通道协商确定使用哪个B通道进行通信。
- 数据传输阶段:
- 一旦B通道被选定,并且两端的设备都准备好,数据就可以在User1和User2之间通过选定的B通道传输了。
- 在B通道中,数据可以是数字化的语音、视频或其他形式的数据。由于B通道提供了64Kbps的带宽,它能够支持高质量的通信。
- 数据传输期间,D通道依然可以用于传递额外的信令信息,比如调整通话参数或处理呼叫转移等。
- 呼叫终止:
- 当通信结束时,任一方都可以发起挂断请求。
- 挂断请求通过D通道使用Q.931协议传输给本地ISDN交换机,然后交换机传递信令给对端,最终释放B通道。
- 一旦B通道释放,连接就被彻底关闭,直到下一次呼叫建立新的连接。
分组交换网络
分组交换网络(Packet-switched Networks)是一种数据通信网络的类型,其中数据被分成小块,称为"分组",这些分组独立地通过网络传输到目的地。每个分组包含源地址、目的地址以及所携带的数据。
分组交换网络中,在数据传输前需要建立一个虚拟链路,但并不是所有的分组都按照这个虚拟链路的路径传输。
与专用连接、电路交换网络的最大区别就是虚拟电路和目的地设备之间使用逻辑连接,而非物理连接。
常见的分组交换网络有——X.25、帧中继(Frame Relay)和异步传输模式(Asynchronous Transfer Mode, ATM)。
X.25是一种早期的分组交换网络协议,它支持端到端的连接,提供了可靠的数据传输服务,包括错误检测和纠正。它在数据传输前,需要建立一个虚拟电路,所有的分组都按照这个虚拟电路的路径传输。
帧中继(Frame relay)是一种更高效的分组交换技术,它是X.25的简化版本,它同样使用虚拟链路连接,相比X.25,它没有错误检测和流量控制。
如图,此时可能不同的虚拟链路使用同一条物理链路,并只占用链路中的一部分带宽。
而ATM是一种基于专为高速多媒体通信设计的分组交换网络。它使用固定大小(53字节)的小分组(ATM信元, ATM cells)来传输数据,这使得ATM非常适合于语音、视频和数据集成服务。ATM限制了包大小,使得延迟更低。
我们这一章也只专注于帧中继。
帧中继
帧中继是一种面向连接的分组交换网络,它使用虚拟电路建立连接。它工作在OSI参考模型的物理层和数据链路层,且使用HDLC协议的一个子集——链路访问协议帧(LAPF)协议。因为帧中继没有错误检测和流量控制,它被设计用于在高质量的数字线路上运行,依靠上层TCP进行纠错。
在前面介绍到,分组交换网络需要建立一个虚拟电路(virtual circuits)连接,大多数情况下,帧中继使用永久性虚拟电路连接(Permanent Virtual Circuits, PVCs),即事先在网络设备(通常是Frame Relay交换机)上配置的虚拟连接,一旦建立,数据将沿着相同的路径传输,不会随着网络条件的变化而改变。
帧中继的每个虚拟电路之间都有一个独特的DLCI,数据链路连接标识符(Data Link Connection Identifiers, DLCI)来标识PVC。DLCI只具有本地意义,在帧中继网络中不是唯一的。DLCI和MAC地址、TEI一样也是L2层地址。
帧中继通过在每台交换机的交换表中存储输入端口到输出端口的映射,并将DLCI值映射到入站和出站端口来定义虚拟电路。例如:
此时帧中继交换机的交换表中记录着:
In_Port |
In_DLCI |
Out_Port |
Out_DLCI |
P1 |
111 |
P2 |
222 |
这与以太网中的交换表如出一辙。再如下面这个例子,
交换表如下:
SW1
In_Port |
In_DLCI |
Out_Port |
Out_DLCI |
P1 |
102 |
P2 |
112 |
P1 |
103 |
P2 |
113 |
SW2
In_Port |
In_DLCI |
Out_Port |
Out_DLCI |
P6 |
122 |
P7 |
201 |
SW3
In_Port |
In_DLCI |
Out_Port |
Out_DLCI |
P8 |
123 |
P9 |
301 |
SW4
In_Port |
In_DLCI |
Out_Port |
Out_DLCI |
P3 |
112 |
P4 |
122 |
P3 |
113 |
P5 |
123 |
帧中继是一种非广播多址(nonbroadcast multiaccess, NBMA)网络,在这种网络中,节点之间的通信是通过点对点连接来实现的,而不是通过广播或多播。帧中继有三种常见的拓扑方式:
- Full Mesh(全网状拓扑):在全网状拓扑中,所有站点都直接相互连接,形成了一个完全连接的网络。每个站点都与其他站点之间建立了点对点连接。
- Star Topology(星型拓扑):在星型拓扑中,所有站点都直接连接到一个中心站点(或中心设备)。中心站点充当数据交换和路由功能的中心。
- Partial Mesh(部分网状拓扑):在部分网状拓扑中,只有部分站点直接相互连接,而不是所有站点都相互连接。
如图:
Full Mesh
Star Topology
Partial Mesh
在帧中继网络中,存在带宽策略(Bandwidth Policy),用于有效地管理和分配可用的带宽资源,以满足网络中不同站点之间的数据传输需求。帧中继带宽策略中,存在如下术语:
- Access rate / Port speed:访问速率 / 端口速率:指帧中继接口(Frame Relay interface)的最大传输速率,通常以bps表示。这是物理链路或端口的最大传输能力。
- Committed information rate (CIR):承诺信息速率:指网络服务提供商承诺为客户提供的最小传输速率,以bps表示。这是服务提供商保证为客户提供的带宽,客户在订购帧中继连接时选择的速率。
- Excess information rate (EIR):超额信息速率:指超出承诺信息速率的额外传输速率。EIR允许客户在网络空闲时使用未使用的带宽,以满足临时的流量需求。EIR以bps表示。
- Committed Time (Tc):承诺时间:指在给定时间周期内,帧中继网络为客户保证传输数据的时间区间。Tc与CIR一起使用,用于确定每个时间周期内客户允许传输的最大数据量。
- Committed burst (Bc):承诺突发量:指在一个时间周期内,允许传输的最大数据量(最大传输位数)。Bc与Tc和CIR一起使用,用于限制客户在一个时间周期内的传输量。
- Excess burst (Be):超额突发量:指超出承诺突发量的最大额外数据量。与EIR一起使用,允许客户在网络空闲时传输额外的数据,但在网络忙碌时可能会丢失这些数据。
用我们常见的家庭带宽举个例子:
- Access rate / Port speed:访问速率 / 端口速率:你的路由器/光猫的接口速率可能是100Mbps或1Gbps。
- Committed information rate (CIR):承诺信息速率:你可能订阅了一个100Mbps的家庭宽带服务,ISP承诺在任何时候都会提供至少100Mbps的下载速度。
- Excess information rate (EIR):超额信息速率:即使你订阅的是100Mbps的服务,但在网络空闲时,你可能会获得更高的下载速度(超过100Mbps的那部分)。这额外的速度即为EIR。
- Committed Time (Tc):承诺时间:ISP保证提供的传输数据的时间长度。例如,如果Tc是1s,那么在每一秒钟内,ISP保证你至少能以CIR的速率下载数据。
- Committed burst (Bc):承诺突发量:例如,如果ISP为你的连接设置了100Mbps的CIR和10Mbps的Bc,那么在每个时间周期(1s)内,你可以传输10Mb的数据,即使你的CIR是100Mbps。
- Excess burst (Be):超额突发量:在网络空闲时,你可能会传输更多的数据,但这些数据量超过了Bc的限制。这些额外的数据量即为Be。
此外,帧中继还定义了一个丢弃资格(Discard Eligibility, DE),表示帧是否会被丢弃,DE=1时为具有丢弃资格。具有丢弃资格并不代表帧会被丢弃,只是可能有被丢弃的风险。
以下面的这些数据为例,来看看如何判定丢弃资格的。
Access Rate: 64 Kbps
Committed Information Rate (CIR): 32 Kbps
Excess Information Rate (EIR): 16 Kbps
Committed Time (Tc): 0.2 seconds
Committed Burst (Bc) = CIR x Tc = 6.4 Kbits
Excess Burst (Be) = EIR x Tc = 3.2 Kbits
- 如果流量低于Bc,则该帧不符合丢弃条件(DE=0)。
- 如果流量高于Bc,则该帧符合丢弃条件(DE=1)。
- 此时若流量超过Bc + Be,则帧会被丢弃。
- 否则帧不会被丢弃。
- 在每个Tc秒结束时,计时器将会复位。
在帧中继网络中,帧的传输速率是不断变化的,这会导致传输速率的突然波动。为了确保网络的稳定性和可靠性,需要在帧之间留出一定的间隙,以平滑流量的传输,防止突发的拥塞。同时可以为网络设备提供额外的处理时间,提高网络的稳定性和可靠性,从而满足服务质量要求。
假设在0.1s内发送一个6.4kbits的帧,以每个Tc内4个区间为例,如图:
- 在第一个时间间隔开始时,一个6.4Kbits帧发送,并在0.1秒后完成。在剩余的0.1秒内,不能再提交更多的帧,否则会超过Bc。此时DE=0。
- 如果在第二个时间间隔内没有提交帧,计数器也不能变为负值。这意味着即使没有提交帧,网络也不会对流量进行惩罚(不超的话不会补)。
- 如果在第三个时间间隔内(图中t∈[0.4, 0.55])提交了两个帧,则第二个帧(多出的帧)标记为(DE=1)。此时这两个帧加起来刚好是Bc + Be = 9.6Kbits,所以不会被丢弃。
- 在下一个Tc(t = 0.6)开始时,因为在上一周期中超额了3.2Kbits,所以这一周期内最大可用的流量大小为Bc + Be - 3.2Kbits = 6.4Kbits。
- 故在下个Tc的第三个周期时,帧被标记为DE = 1. 在第四个周期还有帧的话则会被舍弃。
总的来说:
- 每个周期原本最大的流量为Bc + Be - ET,ET为上个周期超额的流量(excess traffic),ET ≤ Be;
- 每个周期中,当流量大于Bc - ET时,DE = 1,否则DE = 0;
- 当前周期的流量大于上限时,帧会被舍弃;
在帧中继网络中,有几种流量控制和管理机制。
- FECN(Forward Explicit Congestion Notification):FECN 是一种用于指示网络拥塞的机制。当帧在前向方向(从源到目的地)通过网络时,如果经过的网络设备(比如交换机)检测到网络拥塞,它会向帧的头部添加 FECN 标志。这个标志告诉接收方网络当前出现了拥塞,接收方可以根据需要采取相应的措施,例如减少发送的数据量。
- BECN(Backward Explicit Congestion Notification):BECN 与 FECN 相反,它是一种在网络拥塞时由接收方向发送方发出的指示。当接收方检测到网络拥塞时,它会在发送的帧中添加 BECN 标志。这告诉发送方当前网络出现了拥塞,并建议发送方减少发送的数据量,以帮助缓解网络拥塞。
- Discard Eligibility(DE)指示器:DE 是一种指示器,用于标识帧是否有资格在网络中被丢弃。当网络拥塞时,网络设备可能会根据一些策略选择丢弃一些帧,以保护网络的正常运行。DE 指示器用于帮助网络设备确定哪些帧应该被丢弃。通常情况下,当帧通过网络时,源设备可以设置 DE 标志。如果网络设备在处理帧时发现拥塞情况,它可以根据帧中的 DE 标志来决定是否丢弃该帧。
最后我们来看看中继帧的格式,它简单分为:
- Flag(标志):指示帧中继帧的开始和结束。
- Address(地址):指示地址字段的长度。
- DLCI值:指示DLCI值。由地址字段的10位组成。
- 拥塞控制:地址字段的最后三位,用于控制帧中继拥塞通知机制。这些是FECN、BECN和DE位。
- Data(数据):包含封装的上层数据的可变长度字段。
- FCS(帧校验序列):用于确保传输数据的完整性
知道了这些基础知识后,接下来就是帧中继的全过程。假设在如图的简单拓扑中:
- 建立虚拟电路(VC):首先,帧中继交换机会根据DLCI建立交换表,以确定永久虚拟链路(PVCs)。
- 发送数据帧:若User1想要向User2发送数据。首先,User1将帧发送到帧中继网络。SW1将根据目标地址找到适当的虚拟电路(DLCI = 102)并将数据帧发送到SW2。SW2接收到数据帧后,根据帧头中的信息确定应该将帧转发到哪个接口。在这种情况下,它将转发帧到User2。
- 反向ARP:当User2接收到来自User1的数据帧时,它可能需要确定如何将响应数据帧发送回User1。按照数据帧按原路返回。帧到达SW1时,存在两条虚拟链路,但是并不知道哪一条对应的是User2该回复的,SW1将执行反向地址解析协议(Reverse Address Resolution Protocol,RARP)来确定User1的物理地址。具体步骤如下:
- SW1向User1发送RARP请求(用User2的IP问),询问User1的物理地址。
- User1收到RARP请求后,会回复包含自己的物理地址的RARP响应(User2对应的102)。
- SW1接收到RARP响应后,会将User1的物理地址(102)存储在本地ARP缓存中,以便将来发送数据帧时使用。此时存储在交换表中的出入帧DLCI与之前发送的那条记录相反。
- 数据传输结束:当数据传输完成后,User2可以向User1发送确认,或者根据需要继续进行其他通信。