3.1 数据链路层概述
3.1.1 数据链路层简介
Why需要数据链路层?
物理层解决了相邻结点透明传输比特的问题,但没有解决以下问题:
- 如何在比特流中找到一组数据开始和结束的位置
- 线路上有多个设备的时候比特流由谁接收
- 比特传输错误怎么办
什么是数据链路?
- 链路(link)是结点间的物理通道,无源的物理线路,中间无任何其它交换结点
- 数据链路(data link)是结点间的逻辑通道,是把实现控制数据传输的协议的硬件加软件加到链路上,即链路+协议
- 数据链路层:负责通过一条链路从一个结点向物理链路直接相连的相邻结点传送帧
- 帧:链路层协议数据单元,封装网络层的数据报
从协议栈看数据链路层

- 数据链路层不必考虑物理层如何实现比特传输的细节
数据链路层信道类型
- 点对点信道(一对一通信)
- 广播信道(一对多通信 )
3.1.2 三个基本问题
- 封装成帧、透明传输、差错控制
1.封装成帧
How? 在一段数据的前后分别添加首部和尾部(标识),构成一个帧
- 首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)
- 将比特流划分为“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误(以帧为单位进行差错控制)

最大传输单元MTU:规定了所能传送的帧的数据部分长度上限
为什么要规定MTU大小? 如果过大,容易出错;如果过小,浪费资源
成帧的方式:
- 字节计数法
- 带字节填充的定界符法
- 带比特填充的定界符法:使用特殊比特序列作为帧开始,遇到数据部分与比特填充定界符相同时,采用比特填充法实现透明传输
- 物理层编码违例:使用特殊的定界符,保证在正常的编码中不太容易产生或不会产生响应的信号,例如以太网中的帧前导码、差分曼彻斯特编码的不正常跳变信号等

问题:如果出现差错,破坏了帧的边界,会导致一连串帧的错误

问题:如果数据部分包含与“定界符”相同的字节会导致帧的错误“找到帧的边界”
透明传输:
发送方采用“字节填充”或“字符填充”法 (类似于转义字符)

接收方逐个字节检查,遇到填充符则不会将后续字符认作帧首或帧尾,去掉填充符,接收数据
差错控制:
噪声会导致数据在传输过程中可能会产生比特差错
误码率 BER:在一段时间内,传输错误的比特占所传输比特总数的比率,与信噪比有关
为保证帧的正确传输,数据链路层需要进行差错检验:
- 纠错码:主要用于错误发生比较频繁的信道上,如无线链路
- 检错码:除妖用在高可靠、误码率较低的信道上,例如光纤链路
循环冗余校验CRC原理:
- 在发送端先把数据划分为组M,假定M有k个比特
- CRC运算在k个比特后再添加供差错检测用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位

通过CRC计算出来的冗余码称作帧检验序列FCS
CRC循环冗余检验不能完全实现数据的可靠传输,WHY?
- 仅仅使用CRC差错检测技术只能做到无差错接收,即“凡是接受的帧(不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”
- 而“无比特差错”与“无传输差错”是不同的,CRC只能检测到比特差错,不能检测到传输差错(帧丢失、帧重复、帧失序等)
可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。要做到可靠传输,不仅需要CRC技术,还必须再加上帧编号、确认和重传等机制
3.2 点对点协议 PPP
3.2.1 PPP 协议的特点
1.当前使用最广泛
2.PPP 协议的组成:
- 一种将IP数据报封装到同步/异步串行链路的方法
- 链路控制协议LCP:建立链路、配置链路 最重要的功能:身份验证
- 网络控制协议NCP:用于支持不同网络层协议
3.2.2 PPP 协议的帧格式

PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节
透明传输问题:
- 当 PPP 用在异步传输时,使用字节填充法
当 PPP 用在同步传输时,采用零比特填充法
- 同步传输(SONET/SDH链路):面向比特的传输,同步传输的单位是帧;同步传输收发双时钟统一、字符间传输同步无间隔
- 异步传输:面向字节的传输,异步传输的单位是字符;异步传输效率低。高速链路开销大


3.2.3 PPP 协议的工作状态
状态图

3.3 使用广播信道的数据链路层
3.3.1 局域网的数据链路层
1.局域网的主要优点:
- 具有广播功能,从一个站点可以方便的访问全网
- 便于系统的扩展和逐渐地演变,各设备位置可灵活调整和改变
- 提高了系统的可靠性、可用性和生存性
2.局域网拓扑结构:(两个结点之间的连接关系)
星形网、环形网、总线网

共同特点:共享同一信道
3.广播信道的问题:
- 可能两个或更多站点同时请求占用信道
解决方法:介质的多路访问控制,在多路访问信道上确定下一个使用者(信道分配)
怎么介质访问控制?(分配信道,媒体共享技术)
- 静态分配
- 动态分配
4.媒体共享技术
静态划分信道:频分复用、时分复用、波分复用、码分复用
- 适用于通信量大且流量稳定、用户数量少且数目恒定的情况
- 代价高,不适合突发性业务,不适合局域网
动态媒体介入控制(多点接入)
- 随机接入:所有用户可随机地发送信息(以太网)
- 受控接入:用户必须服从一定的控制。如轮询(Polling)
5.以太网的历史(非考点)
- 1973年Bob Metcalfe提出以太网连接方案的备忘录
- 1976年Metcalfe和David Boggs发表了《以太网:…》的论文
- 1979年Metcalfe创立3Com,推进以太网的商业化
- 1985年,IEEE成为以太网的官方标准化组织。开放的标准帮助以太网成为了占绝对支配的LAN技术
- 1986年,IEEE发布10Base5以太网标准(粗以太网)
- 1989年,Kalpana推出第一台以太网交换机,最终取代了网桥和集线器
- 1991年,IEEE批准了Cat-3双绞线10Base-T以太网,很快成为LAN部署的标准配置
- 1994年,IEEE批准10BaseF标准,即数据中心所用光纤以太网标准
- 1995年,100Mbps以太网标准,称快速以太网
- 1998年,1000Base-T千兆以太网
- 2001年,万兆以太网标准前产品开始问世,2002年标准正式通过
- 40G/100G以太网标准在2010年中制定完成,当前使用附加标准IEEE 802.3ba用以说明
- 2014年,成立200 Gb/s和400 Gb/s以太网标准工作组IEEE 802.3bs
6.以太网的两个标准:
IEEE 802.3:第一个IEEE的以太网标准。数据链路层分为两个子层:
- 逻辑链路控制LCC子层
- 媒体接入控制MAC子层
DIX Ethernet V2:世界上第一个局域网产品(以太网)的规约。
- 发现LCC子层没啥意义,现生成的适配器基本上仅装有MAC协议而没LCC协议
7.适配器的作用:

重要功能:
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
8.以太网采取的2钟重要措施:
采用较为灵活的无连接的工作方式
- 不必先建立连接就可以直接发送数据
- 对发送的数据帧不编号,也不要求接收方发回确认(不可靠)
- 提供不可靠、尽最大努力的交付服务
- 差错帧是否重传由高层决定
对发送的数据都使用曼彻斯特编码,便于同步
- 缺点:所占频带宽度比原始的基带信号增加了一倍

9.总线型以太网的工作特点:
- 最早的以太网:将许多计算机都连接到一根总线上
- 总线特点:易于实现广播通信,简单可靠
如何实现一对一通信?
- 将接收站的硬件地址写入帧首部中的目的地址字段中,仅当数据帧中的目的地址与适配器硬件地址一致时,才能接收这个数据帧

如果多个用户同时在发送数据呢?
- 总线缺点:多个站点同时发送时,会产生发送冲突,导致发送失败
- 因此需要在以太网上实现动态媒体接入控制
3.3.2 CSMA/CD 协议
CSMA/CD:载波监听多点接入/碰撞检测
- 多点接入:总线型网络,以多点接入的方式连接在一根总线
- 载波监听:即“边发送边监听”,不管是发送数据之前还是之中,每个站必须不停地检测信道
碰撞检测:适配器边发送数据,边检测信道上信号电压的变化情况。电压摆动值超过一定门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞
检测到碰撞后:
- 适配立即停止发送(碰撞点后面的已发信号会一直叠加)
- 等待一段随机时间后再次发送(避免再次冲突)

关于CSMA/CD协议的问题:
问题1:既然发送前已经监听过信道,为什么还要进行碰撞检测?
- 因为信号有传播时延,监听信道空闲,但信道可能并非真正空闲
问题2:A发送数据后,至少要在多少时间内收到数据才说明没有碰撞
- 以太网的端到端往返时延$2\tau$称为*争用期,或碰撞窗口
- 具体争用期时间 = 51.2$\mu s$
问题3:经过争用期这段时间还没有检测到碰撞,就能肯定这次发送不会遇到碰撞吗?
- YES!当然如此
问题4:碰撞后什么时候重传?
采用截断二进制指数退避来确定
发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据:
- 基本退避时间 = $2 \tau$
- 从整数集合 $[0,1,...,(2^{k}-1)]$ 中随机取出一个数记为 $r$ ,重传所需要的时延 T = r x 基本退避时延
- 参数 k = Min[重传次数,10]
- 当重传达16次仍不成功时即丢弃该帧,并向高层报告
NOTE:
- 10Mbps以太网争用期的长度 $2 \tau = 51.2 \mu s$
- 对于10Mbps以太网,在争用期可以发送512bit,即64字节
- 因此规定了最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常终止的无效帧,应丢弃
- 口诀:先听先发,边听边发,冲突停止,延迟重发
CSMA/CD 重要特性:
- 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)
- 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
- 这种发送的不确定性使得整个以太网的平均通信量远小于以太网的最高数据率
3.3.3 使用集线器的星形拓扑
传统以太网传输媒体:粗同轴电缆 -> 细同轴电缆 -> 双绞线
10Base-T双绞线
- 速率:10Mbps 基带:Base 双绞线:T
- 使用双绞线的以太网采用星形拓扑
- 在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
集线器的特点:
- 使用集线器的以太网在逻辑上仍然是一个总线网,只是使用电子器件来模拟实际电缆线的工作
- 仍然是共享信道,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线
- 工作在物理层
- 采用了专门芯片,进行自适应串音回波抵消,减少了近端串音
3.3.4 以太网的信道利用率

- 成功发送一个帧 $T_0 + \tau$,比帧的发送时间要多一个单程端到端时延$\tau$
- $\tau / T_0$越小,信道利用率越高
- 因此在以太网中定义参数a = $\tau / T_0$ 以太网的信道利用率 $S_{max} = \frac{T_0}{T_0+ \tau} = \frac{1}{1+a}$
改进以太网的方法:使参数 a 尽可能小
- 以太网的长度受到限制,否则$\tau$的数值会太大
- 以太网的帧长不能太短,否则$T_0$会太小,使得 a 太大
- 只有当参数 a << 1 才能得到尽可能高的极限信道利用率
3.3.5 以太网的MAC层
MAC层的硬件地址:
- 又称为物理地址或MAC地址
- IEEE 802标准为局域网规定了一种48位的全球地址 指局域网上的每一台计算机中固化在适配器的ROM中的地址
- 每一个适配器有一个MAC地址,相当于它的标识符,与其所处的位置无关
- 局域网上的每一个接口都有一个MAC地址

- IEEE 注册管理机构 RA 负责向厂家分配前3个字节(高24位)称为组织唯一标识符 OUI 厂家自行指派后三个字节(低24位)称为扩展唯一标识符 必须确保生产的适配器没有重复地址
MAC地址分类:
- 单站地址:I/G位 = 0
- 组地址:I/G位 = 1。组地址用来进行多播,只能作为目的地址使用
- 广播地址:所有48位都为1,只能作为目的地址使用

全球管理与本地管理:
- 全球管理:G/L位 = 0 。厂商向 IEEE购买的 OUI 都属于全球管理
- 本地管理:G/L位 = 1 。这时用户可任意分配网络上的地址

MAC 帧的格式:
最常用:DIX Ethernet V2标准 以太网V2的格式

什么样的MAC帧是无效的? ——直接丢弃
- 数据字段长度与长度字段的值不一样
- 帧的长度不是整数个字节
- 用收到的帧检验序列 FCS 查出有差错
- 数据字段的长度不在 46~1500 字节之间 (有效MAC帧长度应在 64~1518 字节之间)
*IEEE 802.3 MAC与以太网 V2 MAC的区别:

3.4.1 在物理层扩展以太网
- 使用光纤扩展(光纤调制解调器+光纤)
使用集线器扩展 (取代传统总线)
- 碰撞域:又称冲突域,指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络

3.4.2 在数据链路层扩展以太网
- 更常用,早期使用网桥,现在多用以太网交换机

网桥根据 MAC 帧的目的地址对收到的帧进行转发和过滤,或者转发,或者丢弃
以太网交换机的特点:
- 实质上是一个多接口网桥
- 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式
以太网交换机具有并行性
- 每个接口都是一个碰撞域
- 接口是存储器
- 即插即用。其内部的帧交换表(又称地址表)是通过自学习算法自动地逐渐建立起来的
- 使用专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多
- 每个接口用户独享带宽,增加了总容量
- 支持多种速率、多种类型的接口

以太网交换机的自学习功能

两个以太网交换机互连

问题:可能会形成回路,造成广播风暴,使得交换机性能急剧下降
消除回路:使用生成树协议 STP
- 生成树协议 STP 不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其它主机的路径是无环路的树状结构,从而消除回路的问题
从总线以太网到星形以太网

3.4.3 虚拟局域网
以太网存在的主要问题:
- 广播风暴
- 安全问题
- 管理困难等
广播域
- 指这样一部分网络,其中任何一台设备发出的广播通信都能被该部分网路中所有其他设备所接收
- 一个以太网是一个广播域

安全问题、管理问题

虚拟局域网 VLAN(Virtual LAN)
IEEE 802.1Q 对虚拟局域网的定义:
- 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个VLAN
- 虚拟局域网其实只是局域网给用户提供的一种服务,并非一种新型局域网

- 一台主机发出的广播包,只能在其所在的VLAN中传播


3.5 高速以太网
3.5.1 100BASE-T 以太网
- 又称快速以太网
- 在双绞线上传送100Mbps 星形拓扑以太网 使用IEEE802.3的CSMA/CD协议 正式标准:IEEE802.3u
特点:
- 可在全双工方式下工作,此时不使用CSMA/CD协议
- 使用 IEEE802.3 协议规定的MAC帧格式
- 保持最短帧长不变,但将一个网段的最大电缆长度减小到100米
- 帧间间隔从原来的 $9.6\mu s$ 缩短到 $0.96 \mu s$

3.5.2 吉比特(Gbps)以太网
特点:
- 允许在 1 Gbps 下以全双工和半双工两种方式工作
- 使用 IEEE802.3 协议规定的MAC帧格式
- 在半双工方式下使用 CSMA/CD 协议,在全双工方式下不适用
- 与 10BASE-T 和 100BASE-T 技术向后兼容


- 载波衍伸:将争用时间增大为512字节,凡发送的 MAC 帧长不足 512 字节时,就用一些特殊字符填充在帧的后面

- 分组突发:当很多短帧要发送时,第 1 个短帧采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到1500字节或稍多一些为止

3.5.3 10吉比特以太网(10GE)和更快的以太网
特点:
- 万兆比特
- 与10、100Mbps和1Gbps以太网的帧格式完全相同
- 保留了 IEEE802.3 标准规定的 以太网最小和最大帧长
- 只使用光纤作为传输媒体
- 只工作在全双工方式,没有争用问题,不使用 CSMA/CD 协议

端到端的以太网传输
- 以太网的工作范围已经扩大到城域网和广域网,实现了 端到端 的以太网传输
好处:
- 技术成熟
- 互操作性好
- 在广域网中使用以太网时价格便宜
- 采用统一的以太网帧格式,简化了操作和管理
3.5.4 使用以太网进行宽带接入
以太网宽带接入具有以下特点:
- 可以提供双向的宽带通信
- 可以根据用户对宽带的需求灵活地进行带宽升级
- 可以实现端到端的以太网传输,中间不需要再进行帧格式的转换
- 但不支持用户身份鉴别
PPPoE
- PPPoE (PPP over Ethernet):在以太网上运行PPP
- 将 PPP 帧封装到以太网中来传输
- 现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入
- 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间的连接也使用 RJ45 和 5类线,也使用 PPPoE



































































































































