470 likes | 920 Views
第 4 章 数据链路层. 2005 年 8 月 计算机系网络教研室 田华. 了解 1 数据链路层概述 帧的定界方法 2 HDLC HDLC 的中英文名称 链路非平衡、平衡工作控制模式 主站、从站、复合站的概念 HDLC 帧的组成部分 , 各组成部分的功能和使用 3 PPP PPP 的中英文名称 PPP 的功能和使用 PPP 的帧格式和工作过程 4 网桥的概念. 理解 1 数据链路层概述 数据链路层功能 数据链路的概念 帧的概念 2 差错控制实现 停止等待协议 连续 ARQ 协议工作原理 3 流量控制 窗口技术工作原理 HDLC
E N D
第4章 数据链路层 2005年8月 计算机系网络教研室 田华
了解 1数据链路层概述 帧的定界方法 2 HDLC HDLC的中英文名称 链路非平衡、平衡工作控制模式 主站、从站、复合站的概念 HDLC帧的组成部分,各组成部分的功能和使用 3 PPP PPP的中英文名称 PPP的功能和使用 PPP的帧格式和工作过程 4 网桥的概念 理解 1 数据链路层概述 数据链路层功能 数据链路的概念 帧的概念 2 差错控制实现 停止等待协议 连续ARQ协议工作原理 3 流量控制 窗口技术工作原理 HDLC HDLC通信过程 学习目标
数据链路层概述 • 物理层 • 链路 • 任何相邻节点间 点到点的物理线路 • 节点间没有其他任何节点存在(因此数据肯定是顺序发送和接收的) • 数据链路 • 物理线路+通信控制规程(差错/流量等) 差错控制 等处理电路 链路 差错控制 等处理电路 数据链路
帧与报文 • 报文 • 用户传输的数据。 • 帧 • 发送端和接收端之间通过链路传送的一个完整的信息组的信息单位。 帧 帧 起始标志 接收站标识 控制段 数据 帧校验序列
数据链路层的目的 • 在网络实体间提供功能和手段: • 建立 • 维持 • 释放 • 传输数据链路服务数据单元 • 在物理连接上建立数据链路连接 数据链路连接
数据链路连接 无应答、无连接服务 有应答、无连接服务 正向应答 双向应答 负向应答 面向连接服务 有链路建立、数据帧传送、拆除链路的阶段 也就是双方在通信前后要进行协商,都准备好的情况下才进行通信。 和网络层交换数据 接收本地网络层递交的数据 将接收的数据提交给网络层 提供数据链路端点标识符,即地址 在将报文分帧的情况下保证帧的顺序 差错检测、纠正、报告 流量控制 发送/接收端数据速率相同 服务质量参数商定 链路层为网络层提供的服务
链路管理 发送/接收是否准备好 定界与同步 帧何处起始、何处中止 字符计数 首尾分界字符 首尾分界标志序列 物理编码违例 流量控制 发送和接收之间协调。 *不是保证物理层的通信线路速率相同,而是发送/接收端链路层处理能力协调。 差错控制 差错控制编码 透明传输 能正确区分控制信息和数据 寻址 多点连接时如何确定发送/接收端 链路层的功能
数据链路控制规程种类 • 面向字符 • 数据和控制信息都被编码成字符(例如ASCII),使用特定的字符表示控制信息来和数据区分。 • 面向比特
time_out=1 (data_r= NAK) (data_r=ACK) 发送方 vs=0 发送序号初始化 4.2停等协议算法 取得上层数据data data=get_host() data_s= vs+data+CRC 数据帧编码 发送数据帧 Send(data_s) 启动超时计数器 Call time_out() 接收数据帧 data_r=receive() 判断数据帧 否为空 并且 超时计数是否还未溢出 yes (data_r=null) and (time_out()=0) no yes 判断是否 收到确认信息 no vs=vs+1 yes 判断对方是否 要求重发 no yes 判断是否已经超时
接收方 vr=0 4.2停等协议算法 data_r=receive() yes (data_r=null) no yes CRC(data_r) send(NAK) data_r=null no yes ns!=vr data_r=null no (data_r!=null) yes send_host(data_r),vr=vr+1 send(ACK)
4.2停等协议特点 • 优点:简单 • 在数据帧当中只需设置一个序号,表示当前帧的序号 • 在发送/接收端只需要1个计数器 • 发送缓冲区中只需要保存1帧数据 • 缺点:等待时间长 • 只有收到确认信息后才能发送下一帧
发送方 time_out=1 发送序号初始化, 发送缓冲区大小初始化,发送窗口初始化 发送缓冲区初始化, 应答序号初始化。 vs_n=0, vs_buff=8,vs_c=5 buff_s()=0, vs_ack=0 4.3连续ARQ算法 判断是否发送缓冲区已满, 而还未收到应答帧 yes (vs_n>vs_c) and (vs_ack<(vs_n-1)) Call time_out() 从上层获取数据, 写入发送缓冲区当前位置 no buff_s(vs_n)=get_host() data_r=receive() … vs_ack=data_r(ACKm) 组装发送帧编码 data_s=vs+buff_s(vs_n)+CRC 发送帧,并将 发送序号加1 no send(data_s) vs_n=(vs_n+1) mod 8 接收帧,取得接收方希望接收的帧编号 yes vs_n = vs_ack data_r=receive() … vs_ack=data_r(ACKm)
vr=0 4.3连续ARQ算法 data_r=receive() yes (data_r=null) no yes CRC(data_r) send(NAK) data_r=null no yes ns!=vr data_r=null no (data_r!=null) yes send_host(data_r) vr=(vr+1) mod 8 send(ACK,vr+1)
连续ARQ的特点 • 优点: • 不需要等待每一帧的确认信息 • 缺点: • 需要在发送方保存多帧信息,所需缓存大。 • 重传的方式 • 回退N步重传 • 出错帧后所有帧也需要重传。 • 网络开销大。 • 选择重传 • 只重传出错帧。 • 需要接收端保存多帧,等待出错帧重传后组装。
4.4流量控制 • 窗口机制 • 连续ARQ • ARQ • Wt =1 • Wr =1 • 回退n步ARQ • 1< Wt <=2n-1 • Wr =1 • 选择重传ARQ • 1< Wt <=2n-1 • 1< Wr <= 2n-1 • Wt > Wr
数据链路控制规程举例 • 局域网内常用的链路层规程 • IEEE802 • 广域网上的数据链路层协议 • HDLC • PPP(拨号连接网络) • PPPOE(ADSL)
电话拨号上网 … … … … 电话网 通信标准 PPP 电话网 通信标准 PPP RS-232C RS-232C RS-232C RS-232C modem modem 局域网连入广域网 … … 路由器 DCE 网络层 网络层 网络层 IEEE802/… IEEE802/… HDLC/PPP/… 以太网物理层 以太网物理层 RS-232C/V.35/… … … 路由器 DCE 网络层 网络层 网络层 IEEE802/… IEEE802/… HDLC/PPP/… 以太网物理层 以太网物理层 RS-232C/V.35等
数据链路规程 链路种类 • 非平衡型 • 主站发送命令控制整个链路通信,从站只能接受命令,对其响应。 • 异步平衡相应方式 • 各站都可以发起命令 • 平衡型 • 链路两端的节点都可以发出命令 • 正常响应方式 • 主站发起命令,从站响应 • 异步响应方式 • 从站也可以发起传送数据的命令
4.5 HDLC • 标志:帧定界标志 • 地址:次站/应答站地址 • 帧校验:CRC校验
监控帧 S • 用于信息帧的差错控制、流量控制 32位 8位 8位 8位 16位 8位 FLAG Address Control FCS FLAG 01111110 00000011 N(R) P/F SS 01 … 01111110 8 7 6 5 4 32 1 00000001 探询响应位 控制编码 监控帧标志
监控帧 S-----SS • 由SS两位编码定义了三个监控帧 SS 帧名称 00 RR 接收准备好 01 RNR 接收未准备好 10 REJ 拒绝帧
RR----接收准备好 • 初始好 • 不忙 • 以前正确 • 对方是否也好?
RNR----接收未准备好 • 用于流量控制 • 忙
REJ----拒绝帧 • 用于差错控制 • 编号不正确时,要求重发 • 用于忙状态解除
无编号帧 U • 用于链路的建立、拆除及多种控制功能 32位 8位 8位 8位 16位 8位 FLAG Address Control FCS FLAG 01111110 00000011 MMM P/F MM 01 … 01111110 8 7 6 5 4 32 1 00000001 帧编码
MM----帧编码 • 8 7 6 5 4 3 • MMM P/F MM 帧名称 • 0 0 1 P=1 1 1 SABM 置异步平衡方式 • 0 1 1 P=1 1 1 SABME 置扩充异步平 衡方式(模128) • 0 1 1 F=1 0 0 UA 无编号确认 • 0 0 0 F=1 1 1 DM 已断开方式 • 0 1 0 P=1 0 0 DISC 断开连接 • 1 0 0 F=1 0 1 FRMR 帧拒绝
SABM/SABME 置异步平衡方式(扩充) • SABM使对方建立异步平衡的通信方式,根据接受并确认的此命令,把发送V(S)和接收V(R)状态变量置成0。 • SABME使对方建立扩充异步平衡的通信方式,根据接受并确认的此命令,把发送V(S)和接收V(R)状态变量置成0。
UA无编号确认应答 • 用来确认置方式、初始化、复位、断开命令的接收和执行。
DM断开方式应答 • 对置方式命令SABM/SABME是一种请求。如果重复使用置方式命令,那么DM应答表示此时置方式命令无作用。
DISC断开命令 • 用在逻辑上结束以前所建立的操作方式。
FRMR帧拒收应答 • 用来标明所收到的命令帧或应答帧存在错误,而且在一定程度上重发同一帧也不能得到恢复。 • 例如: • 所接受到的控制字段非法或不能实现 • 所接受帧(附有信息字段)的信息超过了已确定的最大长度。 • 所接受的N(R)不是指已被发送和确认的I帧,就是指并未被发送的I帧和不适等待发送的一个顺序好的I帧。
LAPB链路操作规程 • 链路的建立 • 数据传送阶段 • 链路拆除阶段
F B SABM,P FCS F F B 0100 … FCS F F B UA,F FCS F F A 0000 … FCS F F B 0010 … FCS F F A 0110 … FCS F F B 1020 … FCS F F A RR2,F FCS F LAPB链路操作规程 A方 B方 S=0 R=0 P=1 S=0 R=0 S=1 R=0 S=1 R=0 P=1 S=2 R=1 S=2 R=2 F B RR2,F FCS F S=2 R=3 S=3 R=2 F B RR3 FCS F
F B DISC,P FCS F F B 2030 … FCS F F B UA,F FCS F F F A A 4030 3120 … … FCS FCS F F F A RNR4,F FCS F LAPB链路操作规程 A方 B方 S=3 R=2 S=2 R=3 P=1 S=4 R=4 S=3 R=4
4.6 Internet链路层协议-PPP • PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。 • 提供全双工操作,并按照顺序传递数据包。 • 设计PPP的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
PPP • PPP由3部分协议构成。包括: • 链路控制协议LCP(Link Control Protocol) • LCP负责创建,维护或终止一次物理连接。 • 网络控制协议NCP(Network Control Protocol) • NCP是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。 • 认证协议 • 口令验证协议PAP(Password Authentication Protocol) • 发送用户名和口令(明文传输) • 挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。 • 发送用户名和口令摘要,通过比对口令摘用进行用户认证
PPP帧格式 • 标志字段:7E(01111110) • 地址字段:FF(11111111) • 控制字段:03(00000011) • 协议字段 • 两个字节 • 协议字段值: • 0021,PPP帧的信息是IP数据报。 • C021,信息字段是PPP链路控制数据。 • 8021,表示是网络控制数据。 • 帧校验序列FCS与HDLC的相同。 • PPP不是面向比特的,因此帧的长度应为整数个字节。 固定不变
PPPOE … … ADSL MODEM 网络层 PPPOE IEEE802 IEEE802 PPPOE->PPP 以太网物理层 以太网物理层 物理层