3.4 链路控制协议示例 一.面向字符的控制规程-- BSC 控制字符: 在面向字符的控制规程(BISYNC),规定了大约十个控制字符。使用比较普遍的IBM公司的双同步通信规程BISYNC(Binary Synchronous Communication)中规定了下列控制字符: SYN 同步字符(BISYNC采用二个或多个同步字符); ENQ 查询,用于:①建立数据链路;②主站查询次站有无发送请求(询问对方是否就绪)。 SOH 报头开始 STX 报文开始 ETX 文本结束 ITB 中间块(组)结束 ETB 块(组)发送结束 DLE 转义字符 ACK 确认响应 NAK 否定回答
BSC协议的数据报文格式
透明与非透明数据 数据和控制字符在同一条链路中传送,因此一般要求被传送的数据中不包含控制字符,不包含控制字符的数据称为非透明数据。如果采用特殊的措施允许数据中包含所有的字符,即也包括控制字符在内,这种数据称为透明数据。传输透明数据的方式称为透明传输方式。 为了能进行透明传输(只对报文进行透明传输,报头总是不透明),在控制字符之前加上一个DLE字符。例如用DLE•STX表示透明数据开始;DLE•ETX表示透明正文结束;DLE•SYN表示数据暂停期间的SYN等等。透明数据的传输结构如下:
发送序列 DLE STX A DLE B STX C DLE STX DLE ETX 传输序列 DLE STX A DLE DLE B STX C DLE DLE STX DLE ETX (其中DLE为填充的字符) 接收序列
二、面向比特的控制规程-- HDLC 面向字符型数据链路层协议的缺点: 报文格式不一样; 传输透明性不好; 等待发送方式,传输效率低。 面向比特型协议的设计目标: 以比特作为传输控制信息的基本单元; 数据帧与控制 帧格式相同; 传输透明性好; 连续发送,传输效率高。
1974年,IBM 公司推出了面向比特的规程SDLC (Synchronous Data Link Control)。 后来 ISO 把 SDLC 修改后称为 HDLC (High-level Data Link Control),译为高级数据链路控制,作为国际标准ISO 3309。 CCITT 则将 HDLC 再修改后称为链路接入规程 LAP (Link Access Procedure)。不久,HDLC 的新版本又把 LAP 修改为 LAPB,“B”表示平衡型(Balanced),所以 LAPB 叫做链路接入规程(平衡型)。
HDLC的组成 HDLC的适用范围 帧结构 规程元素 规程类型 语义 使用HDLC的语法可以定义多种具有不同操作特点的链路层协议。 规程类型 语义 使用HDLC的语法可以定义多种具有不同操作特点的链路层协议。 HDLC的适用范围 计算机 —— 计算机 计算机 —— 终端 终端 —— 终端
数据站(简称站 station),由计算机和终端组成,负责发送和接收帧。HDLC涉及三种类型的站: 主站(primary station):主要功能是发送命令(包括数据),接收响应,负责整个链路的控制(如系统的初始、流控、差错恢复等); 次站(secondary station):主要功能是接收命令,发送响应,配合主站完成链路的控制; 组合站(combined station):同时具有主、次站功能,既发送又接收命令和响应,并负责整个链路的控制。
HDLC适用的链路构型 1)非平衡型 点 — 点式 多点式 主站 次站 主站 次站
2)平衡型 主站 — 次站式 组合式 主站 次站 组合站
HDLC的基本操作模式 正常响应模式 NRM(Normal Response Mode) 适用于点 — 点式和多点式两种非平衡构型。只有当主站向次站发出探询后,次站才能获得传输帧的许可。 异步响应模式 ARM(Asynchronous Response Mode) 适用于点 — 点式非平衡构型和主站 — 次站式平衡构型。次站可以随时传输帧,不必等待主站的探询。 异步平衡模式 ABM(Asynchronous Balanced Mode) 适用于通信双方都是组合站的平衡构型,也采用异步响应,双方具有同等能力。
HDLC 的帧结构 比特 8 可变 16 信息 Info 标志 F 地址 A 控制 C 帧检验序列 FCS 透明传输区间 FCS 检验区间 实际中,帧与帧可首尾相接,连续发送
标志字段 F (Flag) :为 6 个连续 1 加上两边各一个 0 共 8 bit(7EH)。在接收端只要找到标志字段就可确定一个帧的位置。 HDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。 在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个 0。 在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流。 发送端在 5 个连 1 之后 填入 0 比特再发送出去 填入 0 比特 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 在接收端将 5 个连 1 之后 的 0 比特删除,恢复原样 在此位置删除填入的 0 比特 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
地址域(Address) 数据域(Data) 校验和(Checksum) 多终端线路,用来区分终端; 点到点线路,有时用来区分命令和响应。 若帧中的地址是接收该帧的站的地址,则该帧是命令帧; 若帧中的地址是发送该帧的站的地址,则该帧是响应帧。 数据域(Data) 任意信息(上层协议SDU有上限) 校验和(Checksum) CRC校验 生成多项式:CRC-CCITT
控制域(Control) 信息帧 信息帧(Information)完成信息的传送。 监控帧(Supervisory)差错控制和流量控制。 无序号帧(Unnumbered)链路管理。 信息帧 N(S): 当前发送的信息帧的序号 N(R): 所期望收到的信息帧的序号。它带有确认[N(R)-1]( mod 8)的帧以及在这以前的帧都已正确接收到了. 捎带确认 P/F:询问/终止 N(S) N(R) P/F
11—SREJ 选择拒绝,只拒绝序号为N(R) 的帧 监督帧 S位域 00—RR 接收就绪 10—RNR 接收求就绪 01—REJ 拒绝,拒绝N(R)起的所有帧 11—SREJ 选择拒绝,只拒绝序号为N(R) 的帧 P/F:NAM方式 主站发P=1,要求从站响应 从站发F=1,表示终止;发F=0,表示尚有后续 1 S N(R) P/F
无编号帧 可以用来传控制信息,也可在不可靠无连接服务中传数据 无编号帧 可以用来传控制信息,也可在不可靠无连接服务中传数据 M位域 1100。010 —— DISC(DISConnect) 1111。110 ——SNRM(Set Normal Response Mode) 1111。000 —— SARM(Set Asynchronous Response Mode) 1111。100 ——SABM(Set Asynchronous Balanced Mode) 1110。001 —— FRMR(FRaMe Reject) 。。。 1 M P/F
HDLC链路控制规程的评价 数据报文透明传输——“0”插入/删除的首尾界符法 较高的链路效率——滑动窗口,捎带确认 流量差错控制能力强——编号传输、确认,防止丢失、重复、乱序。 功能丰富,适用面广——目前多数链路控制层的采用的方法。 X.25的帧格式与HDLC完全相同
三、点到点协议 PPP —— Point-to-Point Protocol RFC 1661,RFC 1662,RFC 1663 与SLIP(早期INTERNENT多用)相比,PPP有很大的提高,提供差错校验、支持多种协议、允许动态分配IP地址、支持认证等。 以帧为单位发送,而不是原始IP包; 包括两部分 链路控制协议LCP(Link Control Protocol) 可使用多种物理层服务:modem,HDLC串线,SDH/SONET等 网络控制协议NCP(Network Control Protocol) 可支持多种网络层协议 帧格式与HDLC相似,区别在于PPP是面向字符的,采用字符填充技术
F是标志字段,1字节,固定为0x7E,首尾各有一个。 A是地址字段,1字节,固定为0xFF。 C是控制字段,1字节,固定为0x03。 协议 FCS 信息部分 IP 数据报 首部 尾部 字节数 1 2 不超过1500字节 PPP帧 F是标志字段,1字节,固定为0x7E,首尾各有一个。 A是地址字段,1字节,固定为0xFF。 C是控制字段,1字节,固定为0x03。 协议字段,2字节,当协议字段值为0x0021时,表示信息字段就是IP数据报;为0xC021时,表示信息字段是链路控制数据;为0x8021时,表示信息字段是网络控制数据。 FCS是帧校验序列字段,2字节,当信息字段中出现和标志字段一样的数据(0x7E)时,就要将该字节转变为2字节序列(0x7D,0x5E);若信息中出现一个0x7D字节,则将其转变为2字节序列(0x7D,0x5D)。
PPP链路 up / down 过程(简单状态图)
当用户拨号接入ISP时,路由器的Modem对拨号作出应答,并建立一条物理连接。这时,PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。这些分组及其响应选择了将要使用的一些PPP参数。接着进行网络配置,NCP给新接入的PC机分配一个临时的IP地址,这样,PC机就成为Internet上的一个主机了。通信完毕,NCP释放网络层的连接,收回原来分配出去的IP地址;接着LCP释放数据链路层连接;最后释放的是物理层的连接。 总结:PPP具有多协议成帧机制,可以在modem, HDLC bit-serial lines, SDH/SONET等物理层上运行,支持差错检测、选项协商和包头压缩功能,并具有利用HDLC帧进行可靠传输的可选功能。
小结(HDLC为例) (1) 链路管理——设置链路模式,建立/解除链路 (2) 帧定界——带填充位的首尾界符法,确定的帧格式 (3) 流量控制——滑动窗口 (4) 差错控制——滑动窗口,捎带应答 (5) 将数据和控制信息区分开——帧格式 (6) 透明传输——带填充位的首尾界符法 (7) 寻址——地址域