3.1 使用点对点信道的数据链路层
3.1.1 数据链路和帧
链路是指从一个结点到相邻节点的一段物理线路(有限或无线),而中间没有其它交换结点。链路是一条路径的组成部分。
传输数据时,不仅需要物理线路,还需要一些必要的通信协议控制数据传输。若把实现该些协议的硬件与软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器(既有硬件也有软件)来实现这些协议。
早期数据通信协议曾叫做规程 (procedure)。因此在数据链路层,规程与协议是同义语。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。互联网中,网络层协议数据单元是 IP 数据报(或简称为数据报、分组或包)。
点对点信道通信时的主要步骤:
(1) 结点 A 的数据链路层把网络层叫下来的 IP 数据报添加首部和尾部封装成帧。
(2) 结点 A 把封装好的帧发送给结点 B 的数据链路层。
(3) 若结点 B 数据链路层收到的帧无差错,则提取 IP 数据报并交给网络层,否则弃帧。
3.1.2 三个基本问题
三个基本问题:封装成帧、透明传输和差错检测。
3.1.2.1 封装成帧
封装成帧 (framing) 是指在一段数据前后分别添加首部和尾部,构成一个帧。首部和尾部的一个重要作用是进行帧界定。每一种链路协议都规定所能传送的帧的数据部分最大长度上限——最大传送单元 MTU (Maximum Transfer Unit)。
帧界定使用特殊的帧界定符,帧开始符 SOH (十六制编码 01)放于首部,帧结束符 EOT (十六进制编码 04)放于尾部。
3.1.2.2 透明传输
当传输数据是非 ASCII 码的文件时,如果数据中某个字节二进制代码恰好和 SOH 和 EOT 这种控制字符一样,则会产生错误。透明传输的概念是指,无论怎样的数据通过,数据链路层都能原样无差错传输该数据。
为实现透明传输,发送端的数据链路层在发送数据中出现控制字符的位置前插入一个转义字符 ESC (十六进制编码 1B),接收端的数据链路层在将其送往网络层前提前删除这个插入的转义字符。此方法叫做字节填充或字符填充。
3.1.2.3 差错检测
比特在传输过程中可能会产生差错,$0$ 变成 $1$,$1$ 变成 $0$,这种情况叫比特差错。同一时间传输错误的比特占总传输比特数的比率叫做误码率 BER (Bit Error Rate)。但实际数据传输误码率不可能降为零,因此位保证可靠传输,必须进行差错检测。目前广泛采用循环冗余检验 CRC (Cyclic Redundancy Check) 检错技术。
传输差错可分为两大类,一类是基本的比特差错,里另一类是更复杂些的帧丢失、帧重复或帧失序。因此出现比特差错与出现传输差错并不等价。为实现可靠传输,在 CRC 检错的基础上,增加了帧编号、确认和重传机制。现在互联网采用区别对待方法,对于通信质量良好的传输线路,不适用确认和重传机制,即要求数据链路层向上提供可靠传输;对于通信质量较差的链路,则采用确认重传机制,数据链路层向上提供可靠传输。
3.2 点对点协议 PPP
通信质量较差的年代,采用可靠传输协议是一种好办法,因此当时比较流行能实现可靠传输协议的高级数据链路控制 HDLC (High-level Data Link Control)。目前对于点对点的链路,则广泛采用简单得多的 点对点协议 PPP (Point-to-Point Protocol) 。
3.2.1 PPP 协议的特点
应满足需求:
- 简单
- 封装成帧
- 透明性
- 多种网络层协议兼容
- 多种类型链路,如串行或并行,同步或异步,低速或高速
- 差错检测
- 检测连接状态
- 最大传送单元
- 网络层地址协商
- 数据压缩协商
PPP 协议的组成
(1) 一个将 IP 数据报封装到串行链路的方法。
(2) 一个用来建立、配置和测试数据链路连接的 链路控制协议 LCP (Link Control Protocol)。
(3) 一套网络控制协议 NCP (Network Control Protocol),其中每一个协议支持不同网络层协议。
3.2.2 PPP 协议的帧格式
1. 各字段意义
首部第一字段和尾部第二字段为标志字段 F 。
首部第二、三字段无具体含义,未定义。
首部第四字段是 $2$ 字节的协议字段。协议字段为 $0x0021$ 时,PPP 帧的信息字段就是 IP 数据报;协议字段为 $0xC021$,则信息字段是 PPP 链路控制协议 LCP 的数据;而 $0x8021$ 表示这是网络层的控制数据。
2. 字节填充
3. 零比特填充
发送端每遇见 $5$ 个连续的 $1$ ,则插入一个 $0$;接收端采取相反操作。
3.2.3 PPP 协议的工作状态
3.3 使用广播信道的数据链路层
3.3.1 局域网的数据链路层
局域网最主要特点:网络为一个单位所有,且地理范围和站点数目均有限。
局域网优点:
(1) 可广播,一个站点可以很方便访问全网,主机可共享连接在局域网上的各种硬件和资源。
(2) 便于系统的扩展和演变,各设备位置可灵活调整或改变。
(3) 提高系统的可靠性 (reliability)、可用性 (availability) 和生存性 (survivability)。
局域网可按网络拓扑进行分类,分为星形网(核心设备集线器)、环形网、总线网几类,其中总线网以传统以太网最为著名。经过几十年发展,以太网已经在局域网市场中占据绝对优势,以太网几乎成为局域网同义词。
从 $10\ Mbit/s$ 到 $10\ Gbit/s$ 的局域网均可用双绞线。双绞线已成为局域网中的主流传输媒体。数据率很高时,往往需要使用光纤作为传输媒体。
共享信道在技术上有两种方法:
(1) 静态划分信道,如 2.4 中的频分复用、时分复用、波分复用和码分复用,但是这种划分代价较高,不适合局域网使用。
(2) 动态媒体接入,又称多点接入 (multiple access),特点是信道并非在用户通信时固定分配给用户。又分为两类:
- 随机接入 所有用户可以随机发送信息,但如果恰巧有两个或多个用户同一时刻发送信息,则会产生碰撞(即冲突),使得这些用户全部发送失败。因此需要有解决碰撞的协议。
- 受控接入 用户服从控制而不能随机发送信息,代表有分散控制的令牌环局域网和集中控制的多点线路探询 (polling),或称轮询。
现在用“传统以太网”表示最初流行的 $10 Mbit/s$ 的以太网。
3.3.1.1 以太网的两个标准
世界上第一个局域网产品规约—— DIX Ethernet V2; 第一个 IEEE 的以太网标准 IEEE 802.3,数据率为 $10\ Mbit/s$。这两个标准区别很小,因此也常把 IEEE 802.3 局域网简称以太网。
为了使得数据链路层能更好适应多种局域网标准,IEEE 802 委员会将局域网的数据链路层拆成两个子层,即 逻辑链路控制 LLC (Logical Link Control) 子层和媒体接入控制 MAC (Medium Access Control) 子层。与接入媒体相关内容全部放在 MAC 子层,LLC 子层与传输媒体无关, MAC 子层对 LLC 子层来说是透明的。
现代 TCP/IP 体系经常使用的局域网只剩下 DIX Ethernet V2 而非 IEEE 802.3 中的局域网,因此逻辑链路子层 LLC(即 IEEE 802.2 标准)作用已经消失,很多厂商生产适配器上仅有 MAC 协议而没有 LLC 协议。
3.3.1.2 适配器的作用
适配器实现功能包含物理层和数据链路层两部分。
计算机与外界局域网的连接是通过适配器 (adapter)进行的。适配器本来是主机箱内插入的一块网络接口板,又称网络接口卡 NIC (Network Interface Card),或网卡。现在计算机主板上都已经嵌入该种适配器,不再使用单独的网卡,因此采用适配器这个术语更准确些。
适配器与局域网之间通过电缆或双绞线以串行传输方式进行通信,与主机则通过计算机主板上的 I/O 总线以并行传输进行通信,因此适配器一个重要功能是进行数据串行传输与并行传输的转换。
计算机的硬件地址在适配器的 ROM 中,而软件地址——IP 地址,则在计算机存储器中。
3.3.2 CSMA/CD 协议
局域网上的计算机称为“主机”、“工作站”、“站点”或“站”。
为了通信减半,以太网采取以下两种措施:
第一,采用无连接工作方式,不必先建立连接即可发送数据。适配器对发送帧不进行编号,也不要求对方发回确认。因此以太网提供的服务随时尽最大努力的交付,即不可靠的交付。若目的站收到有差错帧,则丢,是否需要重传则有高层决定。
总线同一时间只允许一台计算机发送数据,否则会产生碰撞。以太网采用最简单的随机接入,但同时使用 CSMA/CD 协议处理碰撞,意思是载波监听多点接入/碰撞检测 (Carrier Sense Multiple Access with Collision Detection)。
第二,以太网发送数据采用曼彻斯特 (Manchester) 编码的信号。优点是每个码元都出现一次电压变换,可以很方便地把位同步信号提取出来;缺点则是所占频带宽度比原始基带信号增加一倍。
介绍下 CSMA/CD 协议要点。
“多点接入”说明其是总线型网络。
“载波监听”是用电子技术检测总线上有无其它计算机在发送,其实就是检测信道。发送前和发送中都必须进行信道检测。发送前检测是为了获得发送权。发送中检测则是为了及时发现碰撞,即碰撞检测。
“碰撞检测“亦即“边发送边监听”,几个站同时在总线上发送数据时,总线上信号电压变化幅度会增大,超过一定阈值时,就视为产生了碰撞。一旦出现碰撞,适配器立即停止发送,等待一段随机时间后再次发送。
电磁波在 $1\ km$ 电缆的传播时延约为 $5\ \mu s$。把总线上的单程端到端传播时延记为$\tau$。最迟经过 $2\tau$ 的时延即可确认是否发生碰撞(信息来回一次最大可能时延)。
在使用 CSMA/CD 协议时,一个站不可能同时进行发送和接收,因此使用 CSMA/CD 协议的以太网只能进行半双工通信。
每一个站在发送数据后的一小段时间内,存在遭遇碰撞的可能性,这段时间是不确定的,因此称为以太网发送的不确定性。端到端往返时间 $2\tau$ 称为争用期。经过争用期检验后,才能肯定此次发送是否发生碰撞。
以太网使用截断二进制指数退避 (truncated binary exponential backoff) 算法确定碰撞后重传时机,这里不多赘述。
以太网规定一个最短帧长 64 字节,即 512 bit,这样发送一个帧的时间也至少需要一个争用期。凡是长度小于 64 字节的帧都是由于冲突而异常终止的无效帧。
强化碰撞是指发送数据一旦发生碰撞,除立即停止发送数据外,继续发送 32 或 48 比特的人为干扰信号 (jamming signal),以便让所有用户都知道发生碰撞。
以太网还规定帧间最小间隔为 $9.6\ \mu s$,相当于 96 比特时间,是为了使得刚刚受到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
由此,CSMA/CD 协议总结如下:
(1) 准备发送:组装成帧
(2) 检测信道:检测到信道忙,则不停检测,直至信道空闲
(3) 发送:边发送边监听,发送成功则回到 (1) ;发生碰撞则执行指数退避算法,等待一定时间后回到 (2),若重传 16 次仍失败,则停止重传并向上报错。
3.3.3 使用集线器的星形拓扑
集线器 (hub) 是一个物理层网络设备,通常与双绞线以太网相配合使用。10BASE-T 双绞线以太网的出现,是局域网发展史上一个非常重要的里程碑,从此以太网的拓扑就从总线型变为更加方便的星形网络,以太网也在局域网中占据统治地位。
集线器有如下特点:
- 使用集线器的以太网逻辑上仍是一个总线网,各站共享逻辑总线,仍使用 CSMA/CD 协议,同一时刻至多允许一个站发送数据。
- 一个集线器有多个接口,每个接口通过 RJ-45 插头用两对双绞线与一台计算机上的适配器相连。集线器像一个多接口的转发器。
- 集线器工作在物理层,每个接口仅仅简单转发比特,不进行碰撞检测。若发生碰撞,则所有接口都收不到正确的帧。
- 采用专门芯片进行自适应串音回波抵消,减少近端串音干扰(发出去的强信号对受到的弱信号的干扰)。
堆叠式 (stackable) 集线器由 4~8 个集线器堆叠使用。
IEEE 802.3 标准还可以使用光纤作为传输媒体,主要作用于集线器之间的连接。
3.3.4 以太网的信道利用率
$a$ 趋近于 $0$,表示一发生碰撞即可检测出来,信道资源被浪费时间非常少。因此为了使 $a$ 值尽量小,以太网的长度受到限制($\tau$ 不能太大),同时以太网的帧长不能太短 (否则 $T_0$ 太小)。
理想状况下,不发生任何碰撞,则发送一帧时延为 $T_0+\tau$,而帧本身发送时延为 $T_0$,因此有极限信道利用率
因此只有当 $a$ 远小于 $1$ 时才能得到尽可能高的极限信道利用率。
3.3.5 以太网的 MAC 层
3.3.5.1 MAC 层的硬件地址
局域网中,硬件地址又称物理地址或 MAC 地址(因地址用在 MAC 帧中)。
IEEE 802 标准为局域网规定一种 48 位的全球地址,是指局域网上每一台计算机中固化在适配器的 ROM 中的地址。
IEEE 的注册管理机构 RA (Registration Authority) 是局域网全球地址的法定管理机构,负责分配地址字段 6 字节中的前三字节(即最高 24 位)。世界上生产适配器的厂家都必须向 IEEE 购买由这三个字节构成的号,名称为 组织唯一标识符 OUI (Organizationally Unique Identifier),通常也称公司标识符 (company_id)。地址中后三个字节由厂家自行指派,称为扩展标识符 (extended identifier)。
IEEE 规定地址字段第一字节的最低位为 I/G 位。I/G 表示 Individual/Group。该位为 0 时,地址字段表示一个单个站地址。该位为 1 时表示组地址,用来进行多播。因此 IEEE 只分配前三字节中的 23 位。
第一字节低 2 位规定位 G/L 位,该位为 0 时是全球管理(保证全球没有相同地址),厂商向 IEEE 购买的 OUI 均属于全球管理。
适配器有过滤功能,适配器收下的帧包括以下三种:
(1) 单播 (unicast) 帧,收到的帧的 MAC 与本站硬件地址相同。
(2) 广播 (broadcast) 帧,发送给本局域网所有站点的帧(全 1 地址)。
(3) 多播 (multicast) 帧,发送给本局域网上一部分站点的帧。
所有适配器都应能够识别前两种帧,有的适配器可用编程方法识别第三种帧。
适配器还可设置为一种特殊的工作方式即混杂方式 (promiscuous mode)。窃听所有的帧,经常为黑客所使用。
3.3.5.2 MAC 帧的格式
数据字段小于 64 字节时,MAC 子层会在其后加入一个填充字段。
MAC 子层向下传到物理层时还要在帧前插入 8 字段,第一字段为 7 个字节的前同步码 (1 和 0 的交替码),使得适配器接受 MAC 帧时迅速调整时钟频率。第二字段为帧开始定界符,定义为 10101011
,前 6 位作用与前同步码相同,最后两个连续 1 预告信息接收。
由于曼彻斯特码的使用,以太网不需要着帧结束定界符,由此也不需要插入字节来保证传输透明。
3.4 扩展的以太网
扩展的以太网在网络层看来仍然是一个网络。
3.4.1 物理层扩展
扩展主机与集线器之间距离一种简单方法是使用光纤和一对光纤调制解调器。
使用多个集线器,可以构成覆盖范围更大的多级星形结构以太网。
但这种多级结构的集线器以太网也有一些缺点。
(1) 多个系以太网相连把多个碰撞与变成一个,但此时最大吞吐量仍然是一个系的吞吐量 10 Mbits/s。
(2) 若不同系用不同以太网技术(如数据率不同),则无法互连。
3.4.2 数据链路层扩展
最初使用网桥 (bridge),对 MAC 帧的目的地址进行 转发 和 过滤。
交换式集线器 (switching hub) 也称交换机 (switch) 或 第二层交换机 (L2 switch) 很快淘汰了网桥,这种设备工作在数据链路层。
3.4.2.1 交换机特点
实质上是一个多接口网桥,通常有十几个或更多接口。具有并行性,能同时连通多对主机进行通信,相互通信主机独占传输媒体,无碰撞地传输数据。
交换机的接口还有存储器,能在输出端口繁忙时将到来的帧进行缓存。
交换机即插即用,内部帧交换表是通过自学习算法自动逐渐建立。
许多交换机对收到的帧采用存储转发,但有些交换机用直通的交换方式,提高了帧的转发速度,但缺点是少了检查差错步骤。
3.4.2.2 交换机的自学习功能
懒得写,看书吧。
为防止环状网络拓扑导致的资源浪费,IEEE 的 802.1D 标准制定了生成树协议 STP (Spanning Tree Protocol),不改变物理上的网络拓扑,但从逻辑上切断某些链路,消除环状结构的存在。
随着站点数目增多和交换机成本的下降,传统总线以太网迅速为星形以太网所取代,但由于仍采用以太网的帧结构,故仍称以太网。
3.4.3 虚拟局域网
利用交换机能方便地实现虚拟局域网 VLAN (Virtual LAN) ,虚拟局域网限制接收广播信息的计算机数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化。
1988 年 IEEE 批准了 802.3ac 标准,该标准定义了以太网帧格式的扩展,以支持虚拟局域网。
以太网最大帧长从原来的 1518 字节变为 1522 字节。
3.5 高速以太网
3.5.1 100BASE-T 以太网
在双绞线上传输 100 Mbit/s 基带信号的星形拓扑以太网,但仍使用 IEEE 802.3 的 CSMA/CD 协议,又称快速以太网 (Fast Ethernet)。现在快速以太网正式标准为 IEEE 802.3u。
IEEE 802.3u 标准并未包括对同轴电缆支持,由细缆以太网升级到快速以太网必须重新布线,因此现在 10/100 Mbit/s 的以太网均无屏蔽双绞线布线。
更快的以太网就不写了,看书看吐了。。。。。#