3.1 数据链路层的功能
- 在物理层的基础上提供无差错的传输igmp
- 数据链路层的三个基本问题:封装成帧,透明传输,差错控制
以太网帧图示
- 帧头和帧尾共 18 字节
3.1.1 为网络层提供服务
- 无确认的无连接服务
- 目的机器接收到数据后,无需响应。对于丢失这样的情况概不负责
- 适用场景:误码率较低或实时通信:以太网
- 有确认的无连接服务
- 规定时间内没有收到通信就重传
- 适用场景:误码率较高的通信:无线通信
- 有确认的连接服务
3.1.2 链路管理
使用面向连接的服务时,进行链路管理:连接的建立,维持和释放的过程称为链路管理
3.1.3 帧界定,帧同步和透明传输
- 帧的界定:帧首尾部的重要作用之一
- 帧同步:接收方从接收的比特流中区分初帧的起始于截至
- 透明传输:不管什么样的比特组合都能够在链路上传送
3.1.4 流量控制
- 限制发送方的数据流量,使发送速率不超过接收方的接收能力
- 流量控制不是数据链路层特有的功能
3.1.5 差错控制
- 使接收方接收到正确的数据
- 基本思想:引入冗余
- 位错
- CRC 校验检测错误
- ARQ(Automatic Repeat reQuest)自动重传请求
- 帧错
- 丢失
- 重复
- 失序
- 引入定时器和编号机制
3.2 组帧
- 作用
- 出错的时候只用发出错的帧(模块化)
- 解决帧同步,帧界定和透明传输的问题
PS:**组帧要加首部和尾部,分组只需要首部且分组是在网络层**
- 常用的组帧方法
- 比特填充法
- 违规编码法
3.2.1 字符统计法
- 帧头部用一个计数字段来表明帧字符数(包含统计字段本身)
- 缺点:如果统计字段出错,后果很严重
3.2.2 字符填充的首尾界定符法
- 使用特定的字符来界定帧的开始和结束
- 如果特殊字符是数据内容,就在前面加转移字符
3.2.3 比特填充的首尾标志法
- 使用 01111110 来表示帧的开始结束
- 数据部分每 5 个 1 就插入一个 0 来排除和帧界定符(就是上面的那串数字)重复
- 优点
- 硬件实现
- 性能优于字符填充
3.2.4 违规编码法
- 如 高高电平和低低电平对在曼切斯特编码中是违规的,可以用来界定帧的开始和结束
- 适用场景
- 802 标准
- 冗余编码环境
3.3 差错控制
- 噪声分类
- 热噪声
- 固有的,随机的
- 通过提高信噪比来减少干扰
- 冲击噪声
- 外界特定原因造成
- 差错产生的主要原因
- 突发差错
- 热噪声
- 差错控制技术
- 自动重传请求(ARQ:Automatic Retransimission Request):接收端检测到错误会要求发送端重新发送,直到得到正确的数据为止
- 前向纠错技术(FEC:Forward Error Correction):接收端不仅可以检测错误,还可以确定其二进制编码中哪一位出现了错误,并加以改正
3.3.1 检错编码
- 所有检错编码的核心思想是:冗余编码。所谓冗余编码是指,比如我现在有一串(5个) 1,0 组成的二进制数,如 10101,此时我在根据前面 5 位的某种关系,生成新一位编码作为第六位。当我发送的数据交给接收端后,接收端只要检测发送的这 5 位和第六位的关系是否匹配即可检测出,数据是否发生了改变。(具体可以看下面的链接,奇偶校验和循环冗余校验都是不同“关系”的检错编码)
- 奇偶校验和循环冗余校验
- 检错编码可以知道发生了错误,纠错编码不仅知道发生了错误,还可以聚焦到哪一位发生了错误(检错和纠错都是针对比特出错的)
3.4 流量控制与可靠传输机制
3.4.1流量控制与可靠传输机制
note:ARQ:Automatic Repeat-reQuest(自动请求重传)
- 流量控制是对发送方进行速率的控制
- 常见方式
- 停止-等待流量控制基本原理:发送方发送一帧都要等待接收方的应答信号(每次只发送一个,得到回应后发送下一个)
- 滑动窗口流量控制基本原理
- 发送方维持一组连续发送的信号,称为发送窗口;接收方…称为接收…
发送端每接收到一个确认,就向前滑动一个帧的位置(发送窗口)
一个帧一个帧的接收(接收窗口)
1. 滑动窗口的特性
1. 接收帧为 1 时,可以保证帧的有序接收
1. 数据链路层的滑动窗口,窗口大小是固定的(传输层是可变的)
- 可靠传输机制
- 确认
- 超时重传:超过了指定的计时,就重新发送该数据帧
- 自动重传请求
- 停止-等待 ARQ
- 后退 N 帧 ARQ
- 选择性重传 ARQ
💡 ARQ 中发送窗口的大小必须小于窗口数 - 1
3.4.2,3,4 三种请求重传协议
note
- 窗口大小的区别(窗口大小固定)
3.5 介质访问控制
- 前言
- 什么是介质访问控制:介质本是指物理介质,即双绞线啊,光纤啊,这些。介质访问控制是抽象的,即我不管你是什么具体的介质,我把你们都看成是介质。访问控制就是,我的数据要在这些介质按照什么规则传播。比如下图,任意两个计算机之间进行数据通信,如果不采用一定的规则,是会在通信的时候乱套的。
- 主要任务
- 为使用介质的每个结点隔离其他的信号,确保结点间通信不会干扰
3.5.1 信道划分介质访问控制(静态)
- 时分多路复用(TDM)
- 时间->时间帧->时隙
- 信道传输速率:R bps,有 N 个结点:每个帧的传输速率:R/N bps
- TDM 中,介质的位速率(总的)大于单个信号的位速率
- 抗干扰能力强,适合数字信号
- 分类
- 同步时分多路复用:静态
- 异步时分多路复用(统计时分复用):动态,动态分配时隙,有数据时才分配时间片
- 频分多路复用(FDM)
- 信道->频段(每个频段:R/N);适合模拟信号
- 频分多路就是把要传递的数据放在不同的频率上传播。举个例子,同样是用汽车运输乘客,我可以在地面运输,也可以在高架上运输,这样同一段路,我可以运输两拨乘客,高架可以理解为更高的频率
- 码分多址(CDMA)
- 每个结点不同编码,不同结点同时传输
- 如,从成都到北京,采用汽车,动车,飞机的交通方式可以同时传输(共享时间和空间)
- 码片序列即两向量正交使得其不同码片不受干扰。优点是,抗干扰强,类似白噪声,不易被敌人发现。缺点是占用较大带宽
- 波分复用
- 光的频分复用
note
- 比特率和带宽的区别
- 静态方式划分信道是不会产生碰撞的,因为其保持信号“独占”的性质
- E1 载波:采用同步时分复用,将 32 条信道复用在一个高速信道上。E1 和 T1 载波都是 PCM 技术和 TDM 技术进行复用
- QPSK 下,比特率 = 2*波特率
3.5.2 随机访问介质访问控制(动态)
- 所有用户随机发送信息,占用全部速率
- 遇到碰撞重新传帧
- 核心思想
- 胜利者获取信道使用权利,争用型协议
- 短时间的信道独占
- 常见协议
- ALOHA
- 纯 ALOHA:
- 不进行检测就发送数据。在一段时间内未收到确认就默认发生了冲突,选择随机等待一段时间后重发
- 成功发送帧数的概率是 S=Ge^(-2G)
- 纯 ALOHA:
- ALOHA
1. 时隙 ALOHA
1. 把时间划分为等长的时隙,每个时隙开始的时候才能发送帧
1. 成功发送帧的概率是 S=Ge^(-G)
经典题目
- CSMA
- 载波侦听多路访问(Carrier Sense Multiple Access)
- 比 ALOHA 多了载波侦听装置
- 分类
- 1-坚持 CSMA
- 基本思想:发送前侦听。空闲发送,忙则边等边听。冲突后等待,然后继续侦听
- 传播延迟对性能的影响大
- 非坚持 CSMA
- 基本思想:发送前侦听,空闲发送,忙则放弃,等待随机时间段后继续侦听
- 增加了数据发送的延迟
- p-坚持 CSMA
- 基本思想:发送前侦听,信道忙则下一个时隙侦听;空闲,以 p 概率发送数据,1-p 概率推迟到下一个时隙发送。
- 用于时分信道
- 1-坚持 CSMA
- CSMA/CD
- 载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection)
- 适用于总线型和半双工
- 原理
- 先听后发,边听边发,冲突停发,随机重发
- 最小帧长(46B)
- 帧长的大小是发送帧长的时延大于 2 τ(传播时延传输速率2)
- 以太网取 51.2 us 为争用期的长度(争用期:信号在最远两个端点往返的时间,等于两倍地传播时延)
- 往返时延=发送时延
- 关于最早检测到碰撞和最晚检测到碰撞的问题
- 最晚就是 A 的帧发送到了快到 B 的时候,B 也发送了,此时在 B 的出发点附近碰撞,近似看成 A 的数据走了一个来回
- 最早就是 A B 帧在中间碰撞,这样近似看成,A 走了一边的路程,即去的路程
- 截止二进制退避指数(考虑了对网络负载的影响)
- 1.确定基本退避时间,2τ
- 2.定义重传次数 k,k=[重传次数,10](选择重传就是为了降低冲突,k 越大,冲突可能性越小),当重传次数小于 10 时,k 为重传次数;当重传次数大于 10 时,k 为10.
- 3.从[0,1,2,3,4,5,7…2^k-1]中确定退避时间倍数 r,如 2rτ,r表示多少个争用期
- 4.若 16 次仍不能成功就抛弃此帧
- 强化碰撞
- 当碰撞发生后,除了立即停止发送数据外,为了让所有用户都知道碰撞发生,还要发送 32b 或者 48b 的干扰信号
- 帧间最小间隔 9.6 微秒,96 比特时间,为的是接收方能够清除接收缓存而使用的时间
- CSMA/CA
- 适用于无线局域网
- 也是半双工的工作模式
- 基本原理:信道忙变空闲,先等待再争用窗口。随即退避再次接入
- 碰撞避免
- 预约信道:发送时,广播通知传输数据的时间长度
- ACK 帧:接收方收到数据返回 ACK 帧;若发送方未在规定时间接到则重发
- RTS/CTS
- 与 CD 的区别:CD 是电压检测
note:
- 有效数据率=以太网有效数据长度 / (发送时延+传播时延)
- CSMA 和 CSMA/CD 的区别是,后者多了边听边发和冲突停发,且随机重发的方式也不一样
- CA 不需要碰撞检测的原因是,信号强度波动大,检测困难,这是本身的特点决定的
- 隐蔽站,未能检测出信道上有其他站点发送信号
- 暴露站,误以为信道占用
3.5.3 轮询访问介质访问控制(动态):令牌传递协议
- 基本原理
- 一个集中控制的监控站以循环的方式轮询每个结点,在决定信道的分配
- A 结点使用信道的时候,其他结点无法使用信道
- 令牌传递协议用于令牌环局域网中
- 令牌传递协议
- 令牌在各结点之间以固定次序交换
- 令牌是由一组特殊的比特组合而成的帧
- 如何避免碰撞
- 令牌只有一个,一个站点只有在拥有令牌的时候才能发送帧
- 帧在环上传送的时候,所有站点必须转发,直到帧返回初始站
- 目的站除了转发帧外,维持一个帧副本,且在帧的尾部设置“响应比特”,表示收到副本
- 当无计算机发送数据,令牌就在环型网上游荡
- 所有设备逻辑成环
- 适用场景
- 负载很高的广播信道(负载高表示同一时刻发送数据概率很大的信道)
纯ALOHA | 想发就发 | 纯的效率和吞吐量更低 |
---|---|---|
时隙ALOHA | 每个片开始发送 | |
3.6 局域网
3.6.1 局域网的基本概念和体系结构
- 特点
- 小
- 较高的数据传输率
- 较低的时延和误码率(因为小),所以采用无连接不可靠的方式传输数据
- 各站为平等关系
- 能进行广播和组播
- 多采用基带传输(中继器放大数字信号,而放大器放大模拟信号宽带传输)
- 以太网地址就是 mac 地址,mac 地址通过 arp 协议转换
PS:组播就是源主机“尽力而为”发送一份数据给一组计算机(组播组),组播组通过目的站拷贝的方式获得数据,不像单播是源站拷贝,占用资源。
- 局域网三要素
- 拓扑结构
- 星形(物理结构)
- 环形
- 总线型(逻辑结构)
- 传输介质
- 介质访问控制方式
- CSMA/CD(总线型)
- 令牌总线(总线型)
- 令牌环(环型型)
- 拓扑结构
IEEE 802
IEEE 802.3 作用
- 基带总线局域网的标准
- 描述物理层和 MAC 子层的实现方法
- 以太网
- 逻辑上采用总线结构
- 广播发送
- 采用 CSMA/CD,不一定必须采用
- 802.3 局域网简称以太网
- 简化通信的手段
- 无连接工作
- 尽最大努力交付
- 以太网的传输介质与网卡
PS:10BASE-T 逻辑上还是总线型,因为中心是集线器,属于一个冲突域
- 网卡
- 工作在数据链路层和物理层
- 作用
- 电信号匹配
- 帧的发送和接收
- 帧的拆封
- 介质访问控制
- 数据的编码解码
- 数据缓存功能
- 以太网的 MAC 帧
- 6 字节,16 进制表示。高 24 位厂商代码,低 24 位自行分配
- 本站接收,非本站丢弃
- 前导码
- 前同步码实现比特同步
- 帧开始界定符
- PS:mac 帧不需要帧结束符,因为各帧之间必有一定的间隙。但是数据链路层上,帧既要加首部也要加尾部
- 目的地址:单播:目的地址就是目的主机的地址;广播:全为 1 或者 ff-ff-ff-ff-ff-ff
- 类型:数据上交给哪个协议
- 数据:46 ~ 1500 字节。因为以太网帧必须满足最小帧长 64 字节,填充 46 字节。1500 字节是最大帧长
- 校验码检验从目的地址到数据部分结尾,用 CRC 校验
- 高速以太网
- 前导码
- 速率达到或者超过 100Mb/s 的以太网称为高速以太网
- 100BASE-T 以太网和吉比特以太网可以支持全双工和半双工方式
- 10 吉比特以太网只工作在全双工方式所以没有争用问题
- 可以全双工无冲突的原因
可以看到有交换机,交换机隔离冲突域。所谓冲突域就是域内只能有一台主机在某一时刻发送数据。一个冲突域就是一个网段。
note
- 在以太网的数据链路层中还划分了 mac 子层和 llc 子层
3.6.3 IEEE 802.11
- IEEE 802.11 是无线局域网的一系列标准,如,802.11a 和 802.11b
- 802.11 MAC 层采用 CSMA/CA 协议,其工作方式如下:
- 先侦听
- 空闲发送
- 等待时间间隔
- 收到确认帧 ACK 完成
- 未收到重发,最大重发次数内完成
PS:无线局域网中发生了碰撞也要把整个帧发送完成,而有线局域网发生冲突就立即停止
- 有固定基础设施无线局域网
- 无固定基础设施无线局域网自组织网络
- 区别
- 没有 AP
- 临时组网
- 结点地位平等
- 中间节点具有转发功能,路由功能
- 自组织网络的构成
- 移动设备发现其他的移动设备
- 区别
3.6.4 令牌环网的基本原理(802.5)
- TCU
- 作用
- 传递经过的帧
- 为发送和接收数据提供接口
- 状态
- 收听状态
- 发送状态
- 作用
- 令牌
- 作用:确保同一时刻只有一个结点能够独占信道
- 传递过程
- 发送站修改令牌标志位,附加自己需要传输的数据
- 沿环路一边转发数据,一边检查目的地址
- 当帧又到达源站,发送结束
- 拓扑结构
- 物理:星形
- 逻辑:环型
💡
- 重复的静态物理地址问题
- 使得两个设备不能正常通信
- 不会发送 mac 帧为自己的帧
- ARP 软件不允许这样的情况
- 使得两个设备不能正常通信
- 不存在冲突
3.6.5 高速以太网
高速以太网
特点:
- 真的大,远超一个城市的范围
- 是因特网的核心
- 任务:长距离发送数据
- 高速链路构成,光缆或者点对点卫星链路
- 通信容量大
- 广域网是包含了物理层->网络层;而局域网只到数据链路层
- 互联网与广域网的区别
- 互联网
- 连接不同类型的网络
- 工作设备:路由器(异构网络中转发分组)
- 主要工作在物理层和数据链路层
- 广域网
- 单一网络
- 工作设备:结点交换机(单个网络中转发分组)
- 主要工作在物理层,数据链路层和网络层
- 互联网
- 局域网和广域网的区别
- 局域网使用的协议主要在数据链路层
- 广域网使用的协议在网络层
- 局域网和广域网在互联网的角度看是平等关系
注意观察位置关系
- 广域网的重要作用
- 路由选择
- 分组转发
- 广域网数据链路层控制协议
- PPP 协议
- HDLC 协议
note:
- 上面写错了一点,就是 PPP 仅支持字符填充,因为 PPP 是面向字符的;而 HDLC 是字符插入和比特插入都可以
3.7.2 PPP 协议
- 特点
- 简单,无需纠错,无需流量控制,只需要 CRC 检验,且出错就丢弃
- 封装成帧:用特定的帧界定符作为作为结束和开始
- 透明性
- 支持多种网络协议
- 支持多种类型链路:串行,并行,高速,低速等
- 检测链路状态:(每隔几分钟)自动检测链路状态
- PPP 有 MTU,也就是 1500,超过就丢弃
- 组成
- 链路控制协议(LCP-Link Control Protocol):用于建立,配置,测试和管理数据链路
- 网际控制协议(NCP-Network Control Protocol):配置不同的网络层协议(PPP 允许多种网络层协议)
- 将 IP 数据报封装到串行链路的方法
- 帧格式
PS:PPP 不是总线型是点对点,所以无需采用 CSMA/CD,也没有最短帧
- 协议状态图
PS
- PPP 提供差错检测但不纠错,是不可靠协议
- 只支持全双工
- 可以运行不同的网络层协议
- 在点对点链路上,为了减少地址的浪费,子网掩码应该指定为 255.255.255.252。因为整个链路只存在两台主机,所以只需要给网络分配 2 个主机位,同时去除两个全0和全1的地址
拓展
🔦 PPP 协议的特点
PPP 协议简单,实现封装成帧,透明传输,支持多种网络层协议和多种链路。
PPP 协议不需要帧编号,因为不需要重传,不需要可靠传输。
PPP 协议适用于线路质量好的情况,因为线路质量差,而 PPP 不提供编号和帧确认,使得传输效率降低。
PPP 协议异字同比
**
3.7.3 HDLC 协议
- 英文:High-level Data Link Control,高级数据链路控制
- 特点
- 面向比特(也采用比特填充)
- 全双工
- CRC 校验
- 透明传输
- 基本配置
- 非平衡:主站控制着整个链路
- 平衡:两个复合站位于链路两端,地位平等
- 站
- 主站:控制链路的操作,发送命令帧
- 从站:受控于主站,发送响应帧
- 复合站:兼备二者的功能
- 数据操作方式
- 正常响应:主站发数据,从站响应传输
- 异步平衡:平衡结构,利用复合站工作
- 异步响应方式:从站未经允许也可以传输
HDLC 帧
- 帧格式(如下)
- 地址字段:无论是平衡还是非平衡模式,都是表示要目标地址,特别的是,非平衡是表示从站地址
控制字段
- 信息帧(I:0):传输数据信息
- 监督帧(S:10):流量控制,差错控制,帧确认,请求重发等
- 无编号帧(U:11):链路的建立,拆除等
PPP 与 HDLC 的区别与联系
- PPP 面向字节
- PPP 多 2 字节的协议字段
- PPP 没有序号和确认机制
- 均是数据链路层协议
3.8 数据链路层设备
(以太网帧格式)
3.8.1 网桥的概念及其基本原理
- 基本概念
- 层次:工作在数据链路层(具体在 MAC 子层)
- 数据对象:帧(中继器,放大器处理的数据对象是信号,所以它工作在物理层)
- 网桥可以累加数据率,而集线器和转发器只能共享相同的数据率(其中集线器是物理层设备)
- 基本特点
- 具备寻址和路径选择能力(存储转发设备都有协议转换功能,连接的两个网段可以使用不同的协议)
- 网桥用于连接每一个以太网成为一个更大的以太网,每一个小的以太网是一个网段,这也就分割了碰撞域
- 网桥与碰撞域
- 网桥是用于分割碰撞域的,如每个网段(假设此时有 3 个网段)有 10Mb/s 的吞吐量,当用网桥分割时,三个网段的吞吐量就变成了 30Mb/s。但如果只在一个网段,即把网桥换成集线器或者转发器,吞吐量还是 10Mb/s。
- 网桥的优缺点
- 优点
- 过滤通信量,隔离出安全网段
- 扩大物理范围
- 互联异构网络
- 缺点
- 通信量大会产生广播风暴
- 优点
- 网桥分类(根据路径选择算法的不同分类)
- 透明网桥(非最佳路由)
- 混杂工作:网卡接收每一帧数据,而不管目的地址是否是它。这就好像卖家从北京向成都发一个快递,卖家不用管这个快递中间经过哪些物流中心。
- 到达帧的路由选择
- 源 LAN 和目的 LAN 相同,丢弃该帧
- 源 LAN 和目的 LAN 不同,转发该帧
- 目的 LAN 未知,扩散该帧
- 自学习算法处理收到的帧
- 这里的自学习算法具体内容在P121,下面
- 生成树算法保证逻辑上没有环路
- 源路由网桥(最佳路由)
- 路由选择由发送数据帧的源站负责
- 源站如何选择最佳路由(如下图)
- **_PS:最佳路由是指往返时间最短的路由
- 透明网桥(非最佳路由)
3.8.2 局域网交换机及其工作原理
- 网桥的局限:一次只能执行一个帧
- 以太网交换机
- 本质上,以太网交换机是一个多端口的网桥
- 可以实现 VLAN
- 用局域网交换机实现的虚拟局域网(VLAN)隔离广播域和冲突域
- 工作在数据链路层和物理层
- 特点
- 全双工
- 独占信道
- 共享式以太网均分数据率,以太网交换机倍增数据率
- 两种交换模式
- 直通式交换机只检查真的目的地址
- 存储转发要先缓存检查数据(一个完整的帧)是否正确才可以发送
note
- 路由器具有较大的传输时延,因为要分析那么多报头
- 数据链路层设备可以隔离冲突域但不能隔离广播域(广播域与冲突域)
- 考点 在交换机中,以直通方式交换,只需要检查帧的目的地址(6B)
3.9 扩展的以太网
3.9.1 虚拟局域网(VLAN)
- 定义:虚拟局域网是由一些局域网网段组成的,与物理位置无关的逻辑组。每一个 VLAN 的帧都有一个标识符,指明这个帧是从哪个逻辑组发出来的
- 每一个 VLAN 的工作组可以处于不同的局域网中
- VLAN 中的每一个主机可以收到同一个工作组的主机广播发送的信息,但这些信息,其他处于同一局域网的主机收不到
- VLAN 限制了工作站的数量,使其免于广播风暴的困扰
- VLAN 的划分方式
- 基于交换机端口
- 基于连接到交换机设备的 MAC 地址
- 基于第三层协议或者地址
NOTE
- VLAN 只是提供一种服务,而非新的局域网