计算机网络-第三章-数据链路层
一、数据链路层的简介
1.基本概念
- 数据链路层在物理层提供的服务基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
- 链路:一条无源的点到点的物理路段,中间没有任何其他的交换结点
- 一条链路只是一条通路的一个组成部分
- 数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路
- 数据链路传输的数据单位是帧
2.主要功能
- 对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层
- 有连接就一定要有确认
- 主要可为网络层提供三种服务:无确认的无连接服务、有确认的无连接服务、有确认的面向连接的服务
- 链路管理:数据链路层连接的建立、维持和释放过程
- 帧定界:帧的首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的边界
- 帧同步:指接收方应能从接收的二进制比特流中区分出帧的起始和终止
- 透明传输:透明表示一个实际存在的事物看起来好像不存在一样
- 流量控制:实际上是限制发送方的数据流量,使其发送速率不超过接收方的接收能力
- 流量控制并不是数据链路层特有的功能,许多高层协议中也提供此功能,只不过控制的对象不同而已
- 差错控制:由于噪声等各种原因,帧在传输过程中可能会出现错误,用以使发送方确定接收方是否正确接收到由其发送的数据的方法
- 位错:指帧中某些位出现差错,通常使用循环冗余校验(CRC)方式发现错误,通过自动重传请求(ARQ)方式来重传出错的帧
- 帧错:指帧丢失、重复或失序等错误,在数据链路层中引入定时器和编号机制
二、组帧
- 把数据分割、封装成帧
- 将网络层传下来的分组添加首部和尾部,用于标记帧的开
始和结束 - 接收者如何从位流中区分出帧的边界(帧同步),即帧的开始和结束
- 将网络层传下来的分组添加首部和尾部,用于标记帧的开
- 透明:某一个实际存在的事物看起来却好像不存在一样
- 目前较常使用的组帧方法是比特填充法和违规编码法
1.字节计数法
- 指在帧头部使用一个计数字段来标明帧内字符数
- 计数字段提供的字节数包含自身所占用的一个字节
- 每帧以帧同步标志字节开始,后面紧跟帧长计数器
- 接收方收到帧,知道帧的长度,每接收一个数据字节,计数减1,直到0,便是帧尾,帧后跟校验信息
- 缺点:
- 如果帧的长度域出错,则同步信息完全丢失,必须重新开始建立同步
- 如果帧的长度域出错,则同步信息完全丢失,必须重新开始建立同步
2.使用字符填充的首尾定界符法
- 面向字符的通信协议,以特定的ASCLL字符序列表示帧首、帧尾及控制字段
- 帧文本以STX开始,ETX结束
- 当数据中恰好出现STX或ETX时,帧的边界会被误识别
- 控制字符如STX,ETX前加入DLE
- 发送时对数据中的DLE,在其前面再插入一个DLE
- 缺点
- 兼容性差(依赖于特定的字符集,如ASCLL)
- 帧长位数需要为8的整数倍,不能传输任意长位数
- 若不用“DLE插入删除技术”时,数据传输会不透明
3.使用比特填充的首尾标志法
- 以特殊的比特组合(如0111 1110同步序列)标志帧的开始和结束
- 位填充易于用硬件实现,如ISO的HDLC(高级数据链路规程)
- 解决数据传输的透明性
- (“0”比特插入删除技术)发送方边发边检查数据,每连续发送5个“1”后,即在后面自动插入一个“0”
- 接收方在收到5个连续的“1”后,将后面紧跟的1个“0”删去,恢复原来的数据
- 优点:
- 面向位的通信协议,可传送任意长度,通用性强
- 面向位的通信协议,可传送任意长度,通用性强
4.编码违例法
- 在物理层进行比特编码时,通常采用违规编码法
- 采用违反编码规律的策略来标志帧的边界
- 优点:
- 无须填充
- 缺点:
- 只适用于冗余编码的特殊编码环境
- 只适用于冗余编码的特殊编码环境
三、差错控制
- 目的:保证所有的帧按顺序、正确送到目的主机
- 解决:如何检测出错、如何纠正错误
- 噪声来源:
- 热噪声:又称白噪声,由电子的热运动产生
- 交叉调制噪声:不同频率的二个信号伴生出频率和、差及整倍频率的信号,干扰正常信号
- 串扰:由附近线路上的信号电偶合形成
- 脉冲干扰:外来的幅度大而持续时间短的干扰
- 脉冲干扰是数字数据信道造成错误的主要干扰源
- 差错分类:
- 单个错:由随机的信道热噪声引起,一次只影响一位,差错是孤立的,错误之间没有关联
- 突发错:
- 由瞬间的脉冲噪声引起,如雷电、马达启动等,会持续一段短的时间,由于线路上数据速率高,影响面较大,一般会影响持续的许多位
- 突发长度:突发错所影响的最大连续数据比特数
- 通常利用编码技术进行差错控制
- 自动请求重发
- 向前纠错FEC
- 混合纠错:
- 结合上述两种方式,能够纠错的则自动改正,否则请求重发
1.差错编码
- 在数据块中加入冗余信息的过程
- 附加监督位:在数据块中加入一些冗余信息,使数据块中的各个比特建立起某种形式的关联,接收端通过验证这种关联关系是否存在,来判断数据在传输过程中有没有出错
- 帧检验序列(FCS):在数据后面添加上的冗余码
- ARQ:自动重发请求:
- 发送方使用检错码,接收方对收到的数据进行检错
- 接收方使用应答向发送方进行信息反馈
- 发送方若收到肯定应答:数据已被正确接收
- 发送方若收到否定应答:传输有错,则重发,直至正确接收
- 为防止帧丢失导致发送方收不到应答,发送方发完一幀后,会启动一个超时定时器,若定时到仍未收到应答,便进行重发
奇偶校验码
- 先将要发送的数据块分组,且在每一组的数据码元后面附加一个冗余位,使得该组连冗余位在内的码字中“1”的个数为偶数(偶校验)或奇数(奇校验)
- 在接收端按同样的规则检查,如发现不符,就说明传输有误
- 分类:垂直奇偶校验码、水平奇偶校验码、水平垂直奇偶校验码
- 校验和:
- 发送:如以16位字为单位进行累加,再将最后累加和取“1补码”(即反码),得该字符串得校验码
- 接收:当接收者收到该数据块后,同样以16位字为单位对各数据及校验和进行累加,若最后结果为全1,则正确,否则出错
- 可靠性:
- 能够检测出绝大多数奇数个和偶数个数据位得变化
- 除非,一个16位字中的0变成1,而另一个16位字中的相同位置由1变成0
- 只能检测奇数位的出错情况,但并不知道那些位错了,也不能发现偶数位的出错情况
循环冗余校验码(CRC)
- 原理:设定一个除数d(多项式表示法最高阶的次数即为n)
- 发送:将数据用除数d来相除,产生的余数作为FCS,附加在数据后发送
- 接收:将收到的数据和FCS用d来相除,若余数为0,则正确,否则出错
- CRC检验码的位数等于生成多项式的G(x)的最高次数
- 模2运算特点:
- 模2除:被除数高位为1即可相除,商为1
- 模2加、模2减:等于按位加(异或)运算
- 检错率:
- 可检测出几乎所有错误。当出现差错的码多项式仍能被G(X)整除时,错误就检测不出来,发生这种情况的概率是非常小的
- 循环冗余码是具有纠错功能的,但是数据链路层仅使用了它的检错功能,检测到帧出错直接丢弃
2.前向纠错(FEC)
- 发送端使用纠错码,接收端检出错并纠错,但监督码比较复杂、效率低,一般用于没有反馈信道的单工通信中
- 缺点:冗余码多、译码复杂;适用于单工信道
海明码
- 确定位数:
- 信息位n,校验位k:n+k <= 2k-1
- 确定码距:
- 纠错d位,需要的码距:2*d+1
- 检错d位,需要的码距:d+1
四、流量控制与可靠传输机制
- 流量控制:涉及对链路上帧的发送速率的控制,以使接受方有足够的缓冲空间来接收每个帧
- 基本方法:由接收方控制发送方发送数据的速率
- 停止-等待协议
- 滑动窗口协议
1.可靠传输机制
- 现有的实际有线网络的数据链路层很少采用可靠传输
- 数据链路层的可靠传输通常使用确认和超时重传两种机制来完成
- 确认,是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道那些内容被正确接收
- 超时重传,指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据直到发送成功为止
2.基本方法的基本原理
停止-等待协议
- 发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧
- 接收方每接收到一帧,都要反馈一个应答信号,表示可以接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待
- 每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低
滑动窗口协议
- 发送窗口:在任意时刻,发送方都维持一组连续的允许发送帧的序号
- 用来对发送方进行流量控制
- 发送窗口大小W代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧
- 接收窗口:同时,接收方也维持一组连续的允许接收帧的序号
- 为了控制可以接收那些数据帧和不可以接收那些帧
- 只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下;若接收到的数据帧落在接收窗口之外,则一律丢弃
- 工作过程:
- 发送端每接收到一个确认帧,发送窗口就向前滑动一个帧的位置
- 当发送窗口内没有可以发送的帧时,发送方就会停止发送
- 直到收到接收方发送的确认帧使窗口移动窗口内有可以发送的帧后,才开始继续发送
- 接收端收到数据帧后,将窗口向前移动一个位置,并发回确认帧,若收到的数据帧落在接收窗口之外,则一律丢弃
- 重要特性:
- 只有接收窗口向前滑动时,发送窗口才有可能向前滑动
- 停止-等待协议、后退N帧协议和选择重传协议只能在发送窗口大小与接收窗口大小上有所差别
- 停止-等待协议:发送窗口大小 = 1,接收窗口大小 = 1
- 后退N帧协议:发送窗口大小 > 1,接收窗口大小 = 1
- 选择重传协议:发送窗口大小 >1,接收窗口大小 > 1
- 接收窗口大小为1时,可保证帧的有序接收
- 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的
五、介质访问控制
六、局域网
七、广域网
八、数据链路层设备
一、基本概念
三、因特网的点对点协议PPP
PPP协议的格式
- 组成部分
- 一个将IP数据报封装到串行链路的方法
- 链路控制协议LCP
- 网络控制协议NCP
- 帧格式
- 透明传输问题:
- 当PPP协议用在同步传输链路SONET/SDH时,协议规定采用硬件来完成比特填充
- 当PPP协议用在异步传输时,就使用一种特殊得字符填充法
PPP协议的特点
- 现在全世界使用得最多得数据链路层协议
- 用户使用拨号电话线接入因特网时,一般都是使用PPP协议
- 优点:
- 透明性
- 支持多个网络层协议(IP、ARP、XNS、AppleTalk、DECnet)等
- 错误检测
- 网络层地址协商(IP地址、DNS地址)
- 简洁性
- 缺点:
- 无纠错功能
- 无流控制
- 无顺序保证
- 仅适用与点对点通信
PPP协议的工作状态
- 步骤:
- 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
- PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)
- 这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP给新接入的 PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机
- 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接
- 状态图:
- PPP认证处理:
- PAP:要求客户方主动将用户的帐号以明文形式填写在一定的数据包字段中,发送请求。要求认证的一方匹配用户帐号,响应认证成功或失败结果。
- CHAP:采用三次握手的方式,先由要求认证方发送认证请求,再由客户方根据该请求的数据(Request-Challenge)和用户帐号,利用MD5算法计算新数据(Response-Challenge),组织新的数据帧应答,最后,由要求认证方确认用户是否合法,返回应答数据
四、使用广播信道的数据链路层
局域网
- 特点:
- 网络为一个单位所拥有,且地理范围和站点数目均有限
- 优点:
- 能方便地共享昂贵的外部设备、主机以及软件、数据。从一个站点可访问全网
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
- 提高了系统的可靠性、可用性和残存性
- 拓扑结构:
- Mesh:
- 特征:
- 每两个通信的设备间都有一个专用链路
- 每个设备需要n-1个网络I/O端口
- n个设备完全互连需要n(n-1)/2条链路
- 优点:
- 可靠性好
- 可用性好
- 保密和安全
- 有利于错误检查和错误隔离
- 缺点:
- 链路数、网络I/O端口数太多,每个设备的安装和配置困难
- 线路占用较大空间
- 网络硬件增加,成本增加
- 应用:广域网,Internet骨干网
- 特征:
- Start:
- 特征:
- 每个设备都同一个中心控制器相连,这个控制器称为HUB
- 设备之间并不连接,不能直接通信
- 设备之间的通信必须通过HUB进行转接
- 优点:
- 成本比网状结构下降。因为链路数和端口数减少
- 网络容易配置和安装
- 相对的可靠性。如果一个链路出错,不会影响到其他链路。
- 缺点:
- 如果HUB出错,则网络通信全部中断
- 比其他方式如总线,需要更多的电缆
- 特征:
- Tree:
- 特征:
- 星型网络的变种,大多数设备连接到二级HUB上,而二级HUB则连到中央HUB上。
- 中央控制单元可以是SWITCH/HUB
- 优缺点:
- 单一HUB可以连接更多设备,增加信号传输距离。
- 可以隔离不同的计算机,并可提供优先通信。即连在一个HUB上的计算机通信速率最快。
- 特征:
- Bus:
- 特征:
- 一根电缆连接所有的设备。
- 设备通过连线同转发器相连,而转发器则连在线路上。线路两端用终端器封闭。
- 优点:
- 容易安装。可按最佳路径来铺设电缆。
- 使用较少的电缆。
- 缺点:
- 重新配置和错误隔离比较困难。
- 总线中的任何一处发生错误,都会使通信中断。
- 特征:
- Ring:
- 特征:
- 所有设备连接成一个环形。
- 每一个设备包含一个中继器,把收到的信息转发到下一个站点,直到目的地。
- 每个设备有两个端口,一个用作输入,另一个用作输出。
- 优点:
- 容易安装和重配置,每一个设备只同它的邻居相连,增加设备也方便。
- 错误检测比较方便。一旦设备没有收到信号,则它的输入链路会有问题。
- 缺点:
- 单向通信。用双向环来克服。
- 一个站点出错或关闭会中断通信,一个链路中断也会产生同样问题。
- 特征:
- Mesh:
- 信道分配策略:
CSMA/CD协议
-
定义:
- 即所谓“先听后说”
- 希望传输的站首先对信道进行监听以确定是否有别的站在传输。
- 若信道空闲,该站可以传输,否则,该站将按一定算法退避一段时间后再试。
-
分类:
- 1-坚持CSMA
- 非坚持CSMA
- P-坚持CSMA
-
重要特性:
- 发送的不确定性:
- 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性;
- 半双工通信:
- 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信);
- 整个以太网的平均通信量远小于以太网的最高数据率。
- 发送的不确定性:
-
1-坚持CSMA:
- 步骤:
- (1)监听信道,若信道空闲就发送;
- (2)若信道忙则继续坚持监听,直至检测到信道空闲后就立即(以概率1)发送;
- (3)若有冲突,则随机等待一段时间,重复步骤(1)。
- 优点:
- 只要信道空闲,数据就立即得到发送;
- 缺点:
- 若有两个或两个以上的站点等发送,冲突就不可避免。
- 步骤:
-
非坚持CSMA:
- 步骤:
- (1)监听信道,若信道空闲就发送;
- (2)若信道忙则放弃(不坚持)监听,随机等待一段时间,重复步骤(1);
- 优点:
- 采用随机的重发延迟时间可以减少冲突的可能性;
- 缺点:
- 即使有几个站有数据要传送,信道仍然可能处于空闲状态,信道利用率较低。
- 步骤:
-
P-坚持CSMA:
- 步骤:
- (1)监听信道,若信道空闲就以概率p发送数据,以概率1-p 延迟至下一个时间片;
- (2)若信道忙则继续坚持监听,直至下一个时间片;
- (3)至下一个时间片后重复步骤 (1)。
- 如何选择P的有效值:
- 设任一时刻平均有N个站有数据等待发送,则一旦当前的数据发送完毕,在下一个时间片里平均有Np个站发送数据。
- 若p过大,使Np > 1,表明有多个站试图发送,冲突不可避免,所以应使 Np < 1 ;
- 若 p 过小,信道利用率会大大降低。
- 步骤:
五、传统以太网
以太网的工作原理
- 两个标准:
- DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
- IEEE 的 802.3 标准。
- 区别:
- DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
- 严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
- 数据层的两个子层:
- 802 委员会就将局域网的数据链路层拆成两个子层:
- 逻辑链路控制(LLC)子层
- 与接入到传输媒体有关的内容都放在 MAC 子层
- 媒体接入控制(MAC)子层
- 而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的
- 逻辑链路控制(LLC)子层
- 好处:
- 不同的物理网络,物理层与MAC子层不同, 而LLC子层相同,网络的上层协议可运行于任何一种IEEE 802标准的局域网上,具有透明性。
- 这种分层方法也使得IEEE 802标准具有良好的可扩充性,可以很方便地接纳新的介质与介质访问控制方法。
- 802 委员会就将局域网的数据链路层拆成两个子层:
网卡的作用
- 网络接口板又称为通信适配器(adapter)或网络接口卡NIC (Network Interface Card),或“网卡”。
- 计算机通过适配器和局域网进行通信
- 重要功能:
- 进行串行/并行转换。
- 对数据进行缓存。
- 在计算机的操作系统安装设备驱动程序。
- 实现以太网协议。
CSMA/CD协议
- 最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
- 为了通信的简便以太网采取了两种重要的措施
- 无连接的工作方式:
- 不必先建立连接就可以直接发送数据
- 不可靠的交付,无差错控制
- 以太网对发送的数据帧不进行编号,也不要求对方发回确认
- 这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的
- 以太网发送的数据都使用曼彻斯特编码:
- 缺点:它所占的频带宽度比原始的基带信号增加了一倍
- 缺点:它所占的频带宽度比原始的基带信号增加了一倍
- 无连接的工作方式:
争用期/冲突检测时间
- 争用期(碰撞窗口):以太网的端到端往返时延 2τ
- 最先发送数据帧的站,在发送数据帧后至多经过时间 2τ(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞
- 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
- CSMA/CD的必要时间
- 帧的传输时间>=2τ
- 以太网取 51.2 μs 为争用期的长度
- 对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节
- 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突
- 凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧
截断的二进制指数退避算法
- 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据
- 确定基本退避时间,一般是取为争用期 2τ
- 定义参数 k ,k <= 10,即k = Min[重传次数, 10]
- 从整数集合[0,1,…, (2k -1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
强化碰撞
- 当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞
以太网的信道利用率
- 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。
- 参数a:
- 在以太网中定义了参数 a,它是以太网单程端到端时延 τ 与帧的发送时间 T0 之比:
- 信道利用率最大值
- 在理想化的情况下,以太网上的各站发送数据都不会产生碰撞(已不是 CSMA/CD),即总线一旦空闲就有某一个站立即发送数据
- 理想情况下的极限信道利用率:
作者:方知有
Motto: 热爱可抵岁月漫长
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
所有评论和私信都会在第一时间处理,如有问题或建议,请多多赐教!
支持博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!