【问题】如何将两个节点连接起来?
如何将多个节点连接到ISP云中?
- 需要考虑到的问题:
- Mechanical
- Functional
- Electrical
- Procedural
(本章就3、4进行讨论)
- 节点能进行连接,首先要解决下列问题:
- 编码(encoding)
- 组帧(framing)
- 差错检测(error detection)
- 可靠传输
- 介质访问控制(media access control)
2.1 连接概览
- 链路是能够传输信号的物理介质,但我们要传输的其实是比特。所以需要将比特进行编码,以便在物理介质中传输。
- 香农-哈特雷定理:以每秒比特(bps)的形式给出一条链路容量的上限。
- C——可达到的信道容量,(单位:bps),B——用Hz表示的信道宽度,S——信号的平均功率,N——噪声的平均功率。
- 构建高容量的链路的方法:提高带宽或提高信噪比。
链路分类:
(依据介质)
1.wire——> guided line
2.wireless——> unguided line
(依据使用方法)
- last-mile links (最后一公里) 接入网。
- ……
——》 链路类型多样性。
——》 网络协议利用这种多样性展现高层的一致性,无需考虑低层的复杂性细节。
所有链路都依赖于通过介质或自由空间传播的电磁波。
链路的另一个重要的属性:频率。
2.2 编码(NRZ、NRZI、曼切斯特、4B/5B)
- 信号在物理链路上的传播需要:1)将源节点准备发送的二进制数据编码(encode)为链路能够传输的信号,2)然后在接收节点将信号解码(decode)成相应的二进制数据。
- 信号可能对应着铜线链路上两个不用的电压或光纤链路上两个不同的能量级。
- 网络适配器(network adaptor):将一个节点连接到链路上的硬件。网络适配器包含一个信令构件, 它在发送节点把比特编码为信号,在接收节点把信号解码为比特。
编码方案:
1.不归零(Non-Return to Zero,NRZ)
NRZ存在的问题
1)可能导致基线偏移(baseline wander)。
2)由高到低和由低到高的频繁转换必须使用时钟恢复信号(clock recovery)。——》接收方和发送方的始终必须精确同步,否则接收方就不能正确解码信号。
无论传什么数据,时钟回复都依赖于信号内由许多跳变。
解决方法:不归零反转。
2.不归零反转(Non-Return to Zero Inverted,NRZI):发送方将当前信号的跳变编码为1,将当前信号的保持编码为0。
——>解决了连续1的问题,但没有解决连续0的问题。
3.曼切斯特编码(Manchester encoding):通过传输NRZ编码数据与时钟的异或值使时钟与信号结合在一起。
将0作为由低到高的跳变,1作为由高到低的跳变。因为0和1 都导致信号的跳变,所以接收方能有效地恢复时钟。
(差分曼切斯特(differential Manchester)编码:曼切斯特编码的变种,若信号的前一半与后一比特信号的前一半相等,则编码为1,若信号的前一半与前一比特信号的后一半信号相反,则编码为0。)
曼切斯特编码存在的问题:使链路上的信号跳变加倍,这意味着接收方有一半的时间在检测信号的每一个脉冲。
波特率(baud rate):信号变化的速率。
4.4B/5B:力求不扩大高信号或低信号的持续期而解决曼切斯特编码的低效问题。——4B/5B的思想是在比特流中插入额外的比特以打破一连串的0或1。
2.3 组帧
2.3.1 面向字节的协议
(BISYNC、PPP、DDCMP)
1.起止标记法:
1)BISYNC(Binary Synchronous Communication ,二进制同步通信)协议采用起止标记法组帧。
(上图为BISYNC协议的帧格式。每个人字段上的数字表示所占的比特数。分组是从左