通信原理 第09章数据通信规程.ppt
第第9 9章章 数据通信规程数据通信规程 ISO-RM对数据数据链路的定路的定义为:按照信息的特:按照信息的特定方式定方式进行操作的两个或两个以上的行操作的两个或两个以上的终端装置端装置(DTE)与互与互连线路的一种路的一种组合体。所合体。所谓特定方式是特定方式是指信息速率和指信息速率和编码格式相同。数据格式相同。数据链路由数据路由数据电路路和两端的通信控制器和两端的通信控制器/传输控制器构成。数据控制器构成。数据链路路是在数据是在数据电路已建立的基路已建立的基础上,通上,通过两端的控制装两端的控制装置使收置使收发双方之双方之间交交换握手信号,双方确握手信号,双方确认后才可后才可开始开始传输数据。数据。在数据在数据链路路层上采取必要的控制手段上采取必要的控制手段对数据信息的数据信息的传输进行控制,使行控制,使DTE与网与网络或或DTE与与DTE之之间能能够有效、可靠地有效、可靠地传输数据信息。数据信息。数据数据链路控制路控制规程是程是实现链路控制、管理的相关路控制、管理的相关规范、范、约定和定和协议等,本章主要等,本章主要讲述常述常见的数据的数据链路路通信控制通信控制规程,包括异步通信控制程,包括异步通信控制规程,程,BSC、HDLC等。等。第第9 9章章 数据通信规程数据通信规程9.1 异步通信异步通信规程程9.2 面向字符的同步通信面向字符的同步通信规程程9.3 面向比特的同步通信面向比特的同步通信规程程HDLC9.4 其它数据其它数据链路控制路控制规程程本本 章章 小小 结结9.1 9.1 异步通信异步通信规程程 异步通信方式(异步通信方式(Asynchronous Transfer Mode,简称,简称ATM)是一种比)是一种比较常用的通信方式。在这种通信方式中,较常用的通信方式。在这种通信方式中,以字符为单位传输数据,字符可以一个以字符为单位传输数据,字符可以一个一个地连续发送,也可以单独地随机发一个地连续发送,也可以单独地随机发送,发送字符之间的时间间隔也可以是送,发送字符之间的时间间隔也可以是任意的。任意的。异步通信方式中,每发送、接收一异步通信方式中,每发送、接收一个字符,接收端和发送端都要重新校验个字符,接收端和发送端都要重新校验一次同步关系。因此,不要求发送端和一次同步关系。因此,不要求发送端和接收端的时钟严格保持同步,只需要在接收端的时钟严格保持同步,只需要在同一个字符的传输范围内保持同步即可。同一个字符的传输范围内保持同步即可。这就意味着,用于实现异步通信的硬件这就意味着,用于实现异步通信的硬件成本要低。但是异步通信每传送一个字成本要低。但是异步通信每传送一个字符都要附加起始位、校验位、停止位,符都要附加起始位、校验位、停止位,这要增加大约这要增加大约20%的信息位,且字符与的信息位,且字符与字符编码之间要加上不定长度的空闲位,字符编码之间要加上不定长度的空闲位,所以其传输效率比较低。所以其传输效率比较低。异步通信的好处是通信设备简单、便宜、异步通信的好处是通信设备简单、便宜、容易实现,常在低速的数据传输系统中容易实现,常在低速的数据传输系统中使用。使用。9.1.1 XMODEM协议 Ward Christiansen于于1979年年为了了实现个人个人计算机之算机之间利用利用电话线通信而通信而设计了名了名为“MODEM ASM”程序,后来程序,后来被称被称为XMODEM协议。目前,。目前,XMODEM协议是一种使用是一种使用拨号号调制解制解调器的个人器的个人计算机通信中广泛使用的异步算机通信中广泛使用的异步文件文件传输协议,这是一个半双工的等待是一个半双工的等待ARQ协议,已成,已成为事事实标准。其准。其帧格式格式如如图9-1所示。所示。图9-1 Xmodem协议数据帧格式 此协议中,每一帧以一个字节的头此协议中,每一帧以一个字节的头部开始字符(部开始字符(SOH)开始,接下来传送)开始,接下来传送2个字节的头部,头部包括个字节的头部,头部包括1个字节的本数个字节的本数据帧的编号和据帧的编号和1个字节的序号反码(用于个字节的序号反码(用于检验序号是否出错),接下来传送检验序号是否出错),接下来传送128个个字节的数据(可以是文本、二进制码、字节的数据(可以是文本、二进制码、ASCII码等等),最后传送循环冗余检验码等等),最后传送循环冗余检验码(码(CRC),它只校验),它只校验128个节的数据块个节的数据块差错。每一部分都有一个开始位和一个差错。每一部分都有一个开始位和一个停止位(图停止位(图9.3中灰色部分),其中数据中灰色部分),其中数据块中有多个起始和停止位。块中有多个起始和停止位。当将要传输数据时,接收方向发送当将要传输数据时,接收方向发送方发送一个否定贴(方发送一个否定贴(NAK)开始传输数)开始传输数据。发送方每发送一帧,就要等待应答据。发送方每发送一帧,就要等待应答帧(帧(ACK),当收到应答帧时才发送下),当收到应答帧时才发送下一帧。如果收到一个否定(一帧。如果收到一个否定(NAK)帧,)帧,就会重新发送刚才发送的一帧,如果在就会重新发送刚才发送的一帧,如果在一定的时间段内没有收到任何帧,那么一定的时间段内没有收到任何帧,那么也会重新发送刚才发送的一帧数据。发也会重新发送刚才发送的一帧数据。发送方除了能收到送方除了能收到NAK和和ACK外,也有可外,也有可能收到取消帧(能收到取消帧(CAN),如果发送方收到如果发送方收到接收方反馈的接收方反馈的CAN帧,则本次传输过程帧,则本次传输过程中止。中止。XMODEM协议由于由于发送方每送方每发送一送一个个帧之后就要等待接收方返回一个之后就要等待接收方返回一个帧,或在超或在超时之后重之后重发,所以其,所以其传输效率效率较低。如果是在低。如果是在传输延延迟比比较大的系大的系统(如(如卫星通信系星通信系统)中使用,)中使用,这种不足种不足会更加会更加严重。重。9.1.2 YMODEM协议 YMODEM协议是一个是一个类似于似于XMODEM的的协议,为了追求更大的了追求更大的传输效率效率YMODEM协议在数据在数据块中采用中采用1024个字个字节传输,其数据,其数据帧格式如格式如图9-2所示。所示。图9-2 YMODEM协议数据帧格式 YMODEM协议不同于不同于XMODEM协议的地方是,数据的地方是,数据块单元元长度度为1024个个字字节。其它数据。其它数据帧格式和格式和XMODEM协议一一样。和。和XMODEM协议的其它差异在于,的其它差异在于,在在YMODEM协议中中传输过程开始后,接程开始后,接收方接收成功的收方接收成功的帧并不向并不向发送方返回送方返回ACK,只,只对接收接收错误的的帧返回一个返回一个NCK,要求此,要求此帧重新重新发送。送。YMODEM协议提提供了一种批模式,在此模式下,只有用供了一种批模式,在此模式下,只有用一条命令就可以同一条命令就可以同时传输多个文件。多个文件。在在YMODEM协议传输过程中,程中,终止本次止本次传输过程需要接收端程需要接收端发送两次取消送两次取消帧(CAN););YMODEM协议中差中差错检验采采用的是用的是ITU-T的的CRC-16标准。准。9.1.3 ZMODEM协议 ZMODEM协议是一种是一种针对MODEM的的错误校校验协议,被广泛用于个人,被广泛用于个人计算算机之机之间的异步通信。它是的异步通信。它是XMODEM协议的一种增的一种增强形式,在可以形式,在可以传输大文件的大文件的同同时,可以有效降低,可以有效降低传输过程中的程中的错误率,使用此率,使用此协议使使计算机之算机之间用用MODEM进行文件的无行文件的无错误传输变得更容得更容易。易。在此协议中,可以在在此协议中,可以在MODEM上发送上发送512个字节的数据块,如果接收端检测到个字节的数据块,如果接收端检测到某个数据块在传输过程中发生错误,就某个数据块在传输过程中发生错误,就会向发送端发送一个会向发送端发送一个NCK帧,要求此数帧,要求此数据块重新传输。在文件开始传输时,据块重新传输。在文件开始传输时,ZMODEM协议先发送文件名、日期、文协议先发送文件名、日期、文件大小,可变长度的数据块和件大小,可变长度的数据块和CRC纠错纠错码。码。ZMODEM协议支持断点续传,如果协议支持断点续传,如果使用使用ZMODEM协议或协议或YMODEM协议下协议下载文件时意外中断,载文件时意外中断,ZMODEM在下次下载此文件时会尝试仅在下次下载此文件时会尝试仅传送文件的剩余部分,这种机制在传输传送文件的剩余部分,这种机制在传输大文件时就变得非常有用。大文件时就变得非常有用。9.1.4 KERMIT协议 KERMIT协议是在是在1981年开始由哥年开始由哥伦比比亚大学大学Kermit项目目组成成员设计的广的广泛用在泛用在计算机之算机之间(包括大型机和个人(包括大型机和个人计算机等众多机型)的算机等众多机型)的传输文本文件、文本文件、二二进制文件的制文件的协议。它不。它不仅仅是一种是一种协议,实际上它上它还是一种是一种终端仿真程序,端仿真程序,目前目前为止,它已止,它已经被移植在了众多的操被移植在了众多的操作系作系统中,包括中,包括Windows,UNIX,DOS,VMS,OS/2等操作系等操作系统。KERMIT协议是一个半双工的通信是一个半双工的通信协议,要在两台,要在两台计算机之算机之间进行文件的行文件的传输,必,必须在每台在每台计算机上都运行算机上都运行Kermit协议。PC用用户运行一些通信运行一些通信软件登件登录远程程计算机,如算机,如图9-3所示,一旦登所示,一旦登录成功,成功,用用户通通过输入名字入名字调用用Kermit,接着,接着键入命令:入命令:Receive myfile,此,此时,被登,被登录的的远程程计算机上运行的算机上运行的Kermit协议在在等待一个文件的到来。下来,用等待一个文件的到来。下来,用户在本在本地地计算机上算机上调用用Kermit协议,并并键入命令:入命令:Send FileName,这样就激就激活了本地活了本地计算机上的算机上的Kermit协议。这时,用用户做的工作就完成了,做的工作就完成了,Kermit完成剩完成剩余部分。它在本地余部分。它在本地计算机上算机上寻找一个名找一个名为“FileName”的文件,并分的文件,并分组,组的数的数量取决于文件的大小和每个分量取决于文件的大小和每个分组的大小。的大小。图9.3 Kermit文件的传输 在此协议中,以发送端向接收端发送一在此协议中,以发送端向接收端发送一初始化帧(初始化帧(S类型)来开始发送一个文件,类型)来开始发送一个文件,此帧通知接收端准备接收帧。此帧通知接收端准备接收帧。S类型的帧和类型的帧和它的最终确认帧包括了一些参数,如果两个它的最终确认帧包括了一些参数,如果两个计算机之间要交换文件,那第它们必须按顺计算机之间要交换文件,那第它们必须按顺序同意这些参数,从而使协议能正常工作。序同意这些参数,从而使协议能正常工作。它支持传输它支持传输7位的位的ASCII字符,数据块能以字符,数据块能以长达长达96字节的可变长度的分组形式传输,对字节的可变长度的分组形式传输,对每个被传送的分组需要一个确认帧,每个被传送的分组需要一个确认帧,Kermit协议支持批量文件的传输。协议支持批量文件的传输。Kermit协议的帧协议的帧格式如图格式如图9-4所示。所示。图9-4 Kermit协议帧(分组)格式KERMIT部分帧类型如下表9-1所示。表9-1 Kermit协议帧(分组)类型 一个典型的一个典型的Kermit交换如图交换如图9-5所示,所示,A站发送一个含有初始信息的站发送一个含有初始信息的S帧,帧,B站站发送一个发送一个Y帧确认,帧确认,Y帧中也有初始信息,帧中也有初始信息,这个过程允许每一个站通知其它站自己这个过程允许每一个站通知其它站自己需要的是什么。然后,需要的是什么。然后,A发送一个发送一个F帧来帧来指出它将发送的文件的名字。指出它将发送的文件的名字。B再一次发再一次发送另外一个送另外一个Y帧来确认帧来确认F帧。然后,就象帧。然后,就象前几节中描述的那样,传输数据,前几节中描述的那样,传输数据,B收到收到帧后,发送确认信息,当帧损坏了,它帧后,发送确认信息,当帧损坏了,它将发送一个将发送一个N A K。当最后一个帧发送出。当最后一个帧发送出去时,去时,A发送一个发送一个Z帧,表示整个文件已经发送帧,表示整个文件已经发送了,了,B再一次发送一个确认。最后,如果再一次发送一个确认。最后,如果无东西要传输了,无东西要传输了,A就发送一个就发送一个B帧,表帧,表示要断连了,示要断连了,B确认后,断连。确认后,断连。图9-5 发送文件的Kermit协议过程9.2 9.2 面向字符的同步通信面向字符的同步通信规程程 BSC(Binary Synchronous Communication)是由)是由IBM公司在公司在1964年年开开发的一种典型的面向字符的数据的一种典型的面向字符的数据链路路协议(DLCP),该协议可以在点到点和多点可以在点到点和多点线路配置中使用,支持采用停等路配置中使用,支持采用停等ARQ流量控流量控制和差制和差错控制的半双工控制的半双工传输,不支持全双,不支持全双工工传输或滑或滑动窗口窗口协议。该协议于于1968年年开始用于开始用于IBM Computer System,主要目,主要目的将的将远程批程批处理理终端和端和视频显示示终端集中端集中控制的控制的连接到接到IBM主机上。主机上。9.2.1 BSC控制字符控制字符 BSC是一种字符控制是一种字符控制规程,程,对代代码很敏感,使用很敏感,使用ASCII或或EBCDIC等等编码字字符符进行行链路控制,并且采用特殊字符分路控制,并且采用特殊字符分隔各种信息段,通隔各种信息段,通过BSC信道信道传送的每送的每个字符都要在接受端个字符都要在接受端译码,以判,以判别它是它是一个控制一个控制/用用户数据。任何数据数据。任何数据链路路层规程均可由程均可由链路建立、数据路建立、数据传输和和链路拆路拆除三个部分除三个部分组成。成。为了了实现链路建立、路建立、拆除等拆除等链路管理及同步等功能,除了正路管理及同步等功能,除了正常常传输的数据的数据报之外,之外,BSC还需要一些控制字符。需要一些控制字符。BSC使用的使用的控制字符如表控制字符如表9-2所示,所示,CCITT建建议用用ASCII/IA5表示。表示。表9-2 二进制同步通信(BSC)的控制字符1.BSC常用控制字符常用控制字符SOH(Start of heading)标题开始:开始:标题是信息是信息报文中正文之前的字符序列,它由文中正文之前的字符序列,它由表示路由、表示路由、优先先权、保密措施和、保密措施和报文文编号号等等组成,成,SOH不允不允许出出现在正文中。在正文中。STX(Start of Text)信息)信息报文正文开始:文正文开始:报文分成若干文分成若干码组时,每,每组均以均以STX开始。开始。ETX(End of Text)信息)信息报文文结束:由束:由发送送端端发送,送,报文被分文被分组时,只有最后一,只有最后一组报文使用文使用ETX结束。束。EOT(End of Transmission)表示数据)表示数据传输的的结束:束:EOT由由发送端送端发出。出。ENQ(Enquiry)询问:用来:用来请求求远程站程站给出出应答。答。ACK(Acknowledge)确)确认:由接受端由接受端发往往发送端,作送端,作为对状状态询问及及报文的肯定文的肯定应答。答。NAK(Negative Acknowledge):由接受端):由接受端发往往发送端,作送端,作为对状状态询问及及报文的否定文的否定应答。答。DLE(Data Linking Escape)数据)数据链路路转义:用来改用来改变后后续一定数目字符的意一定数目字符的意义,组成成转义序列(其只能使用序列(其只能使用图形字符和形字符和传输控制字控制字符)。符)。SYN(Synchronous Idle)同步:用于建)同步:用于建立和保持收立和保持收发两端的同步,两端的同步,SYN不能放不能放在在DLE之后和与校之后和与校验码有关系的控制字有关系的控制字符中符中间。ETB(End of Transmission Block)数)数据分据分组块传输结束:束:仅由由发送端送出,送端送出,但校但校验码(BCC)仅随其后,但最后一随其后,但最后一个信息个信息码组的的结束必束必须使用使用ETX。2.BSC其他控制字符其他控制字符RVI(Receive Information)接收方)接收方紧急急消息消息:用以申用以申请中断(当中断(当发送端有送端有紧急任急任务要要发送送时)。)。TTD(Temporary Text Delay):):发送方送方暂停但未拆除停但未拆除连接。接。WACK(Wait and Acknowledge)等待)等待应答答:接收方已接收方已经接收完好接收完好帧但不能再接但不能再接收前一收前一帧已接收好但不能再接收下一已接收好但不能再接收下一帧,RNR报文。文。扩充序列:以充序列:以DLE开开头的一些双字符控制的一些双字符控制序列。序列。DLE EOT要求拆要求拆线:表示要求拆除通信:表示要求拆除通信线路的路的传输控制字符序列。控制字符序列。DLE0/DLE1编号确号确认:由接收站到:由接收站到发送站送站表示肯定表示肯定应答的答的传输控制字符序列,用控制字符序列,用于于编号号应答方式中。答方式中。DLE3/12或或DLE7/12站中断:从站同步字站中断:从站同步字符序列代替正常的肯定符序列代替正常的肯定应答,表示从站答,表示从站要求主站尽快停止要求主站尽快停止现行行传输的控制字符的控制字符序列,与序列,与RVI有相同的功能。有相同的功能。DLE3/11或或DLE3/15要求要求暂停停发送,表示送,表示从站从站暂停停时不能接收数据信息,要求主不能接收数据信息,要求主站站暂停停发送,与送,与TTD功能相同。功能相同。DLE3/13反向拐入通道:表示接收站有反向拐入通道:表示接收站有优先先级高的信息高的信息报文要求文要求发送,送,为接收方接收方获取取发送送权。STX ENQ延延时发送:当送:当发送站未准送站未准备好好发送送时即可即可发出的序列。出的序列。9.2.2 BSC帧格式格式 BSC协议将将传输分割成分割成帧,如果一,如果一帧只能只能严格地用于控制目的,就叫做控格地用于控制目的,就叫做控制制帧。控制。控制帧被用来在通信被用来在通信设备之之间交交换信息例如,建立初始信息例如,建立初始连接,控制接,控制传输流,流,进行行请求求纠错,以及在会,以及在会话结束束时在在设备之之间断开断开连接。如果一接。如果一帧中中还有有报文数据自身的部分或全部信息,它就文数据自身的部分或全部信息,它就称称为数据数据帧。数据。数据帧用来用来传输信息,但信息,但也可以包含可以也可以包含可以应用到用到该信息上的控制信息上的控制信息。信息。1.数据数据帧 帧开头是两个或多个同步字符(帧开头是两个或多个同步字符(SYN),),这些字符通知接收方有新的帧到来并为接收这些字符通知接收方有新的帧到来并为接收设备提供一种可以用来与发送设备进行时钟设备提供一种可以用来与发送设备进行时钟同步的比特模式。在两个同步字符之后是文同步的比特模式。在两个同步字符之后是文本开始符(本开始符(STX),这个字符通知接收方控),这个字符通知接收方控制信息结束,下一字节将是数据。数据或文制信息结束,下一字节将是数据。数据或文本可以由不同数目的字符组成。一个文本结本可以由不同数目的字符组成。一个文本结束符(束符(ETX)指明了文本和进一步的控制字)指明了文本和进一步的控制字符之间的转换。最后,是用于检错的纵向冗符之间的转换。最后,是用于检错的纵向冗余校验码(余校验码(LRC)或者是两个字符的循环冗)或者是两个字符的循环冗余校验码(余校验码(CRC)。一个简单的)。一个简单的BSC数据帧数据帧格式如图格式如图9-6所示。所示。图9-6 简单的BSC数据帧 常见的常见的BSC数据帧有如下四种类型:数据帧有如下四种类型:(1)头部数据字段头部数据字段 信息报文由标题(报头)和正文组信息报文由标题(报头)和正文组成。正文包含要传输的有用数据信息,成。正文包含要传输的有用数据信息,标题标题/报头是与报文的正文段的传送和处报头是与报文的正文段的传送和处理相关的一些辅助信息的字符序列,如理相关的一些辅助信息的字符序列,如发信地址、收信地址、信息报文名称、发信地址、收信地址、信息报文名称、报文级别、编号、传送路径等。带有头报文级别、编号、传送路径等。带有头部的部的BSC帧如图帧如图9-7。图9-7 带有头部的BSC帧 报文头在报文头在SOH字符之后和字符之后和STX字符之字符之前。文本开始符前。文本开始符STX有两个作用,一个是表有两个作用,一个是表示报文头结束,另一个表示数据报文开始。示报文头结束,另一个表示数据报文开始。数据和文本可以由不同数目的字符组成。文数据和文本可以由不同数目的字符组成。文本结束符(本结束符(ETX)指明了文本和下一个控)指明了文本和下一个控制符之间的转换。最后,是错误检测字符制符之间的转换。最后,是错误检测字符(BCC),一个),一个BCC域是一个字节长度的域是一个字节长度的纵向冗余校验码(纵向冗余校验码(LRC,Longitudinal Redundancy Check)或是两个字节的循)或是两个字节的循环冗余校验码(环冗余校验码(CRC)。)。(2)多多块帧 随着帧长度的增加,文本块出错的随着帧长度的增加,文本块出错的可能性随之增大。帧中的比特数越多,可能性随之增大。帧中的比特数越多,在传输中发生差错的可能性就越大,并在传输中发生差错的可能性就越大,并且出现多个互相对消的差错从而使检错且出现多个互相对消的差错从而使检错变得困难的可能性也越大。因此,在一变得困难的可能性也越大。因此,在一个报文中的文本经常被分成几块。除最个报文中的文本经常被分成几块。除最后一块外,每一块都由一个后一块外,每一块都由一个STX字符开字符开始并由一个中间文本块字符(始并由一个中间文本块字符(ETB)结)结束。最后一块由束。最后一块由STX字符开始,结束却字符开始,结束却是是ETX字符。紧跟在每个字符。紧跟在每个ETB或或ETX字字符之后的是一个符之后的是一个BCC字段。字段。通过这种方式,接收方可以对每一块单通过这种方式,接收方可以对每一块单独进行检错,从而增加了检测出差错的独进行检错,从而增加了检测出差错的可能性。但是,如果任何一个数据块有可能性。但是,如果任何一个数据块有错,整个帧被重新传输。在接收到错,整个帧被重新传输。在接收到ETX字符并校验了最后一个字符并校验了最后一个BCC字段后,接字段后,接收方对整个帧发送一个确认帧。一个多收方对整个帧发送一个确认帧。一个多块帧的结构如图块帧的结构如图9-8。图9-8 BSC多块帧(3)多多帧传输 在多块帧中,一帧包含了整个报文。在多块帧中,一帧包含了整个报文。在每一帧之后,报文就结束了并且线路在每一帧之后,报文就结束了并且线路的控制权就交给第二个设备(半双工模的控制权就交给第二个设备(半双工模式下)。但有些报文可能太长,以到于式下)。但有些报文可能太长,以到于不能容纳在一帧中。在这种情况下,发不能容纳在一帧中。在这种情况下,发送方不仅可以将报文分在各数据块中,送方不仅可以将报文分在各数据块中,还可以将它分在不同帧中。可以用几帧还可以将它分在不同帧中。可以用几帧来连续传输一个报文。来连续传输一个报文。为使接收方知道帧的结束不是报文的结为使接收方知道帧的结束不是报文的结束,除了最后一帧外其他帧中的文本结束,除了最后一帧外其他帧中的文本结束符(束符(ETX)都被传输块结束符)都被传输块结束符(ETB)所代替。接收方可以分别对各)所代替。接收方可以分别对各帧进行确认,但只有在最后一帧中接收帧进行确认,但只有在最后一帧中接收到到ETX符后才能接管链路控制,多帧传符后才能接管链路控制,多帧传输如图输如图9-9所示。所示。图9-6 多帧传输(4)多多报文文头帧 多多报文文头帧方式中,由于方式中,由于报文文头太太长仿照多仿照多帧传输将将报文文头分分为m组,每,每组报文的开文的开头都用都用标题开始被符开始被符SOH,而每而每组报文的文的结尾使用尾使用ETX,中,中间的的报文文组都使用都使用ETB界定,如界定,如图9-10所示,所示,是多是多报文文头帧传输的格式。的格式。图9-10 多报文头帧2.控制控制帧 控制帧是一个设备用来向另一个设备发控制帧是一个设备用来向另一个设备发送命令或索取信息的消息。控制帧分为正向送命令或索取信息的消息。控制帧分为正向控制帧和反向控制帧两种。正向控制帧指的控制帧和反向控制帧两种。正向控制帧指的是由主站发送到从站去的控制序列,主要用是由主站发送到从站去的控制序列,主要用于通信双方间的呼叫应答,以确保信息报文于通信双方间的呼叫应答,以确保信息报文的正常可靠传输;反向控制帧是由从站发送的正常可靠传输;反向控制帧是由从站发送到主站去的控制序列,主要用于对询问的应到主站去的控制序列,主要用于对询问的应答和数据链路的控制。一个控制帧包含有控答和数据链路的控制。一个控制帧包含有控制字符但没有数据,它携带特定的数据链路制字符但没有数据,它携带特定的数据链路层自身功能的信息,其基本格式如图层自身功能的信息,其基本格式如图9-11所所示。示。图9-11 BSC协议控制帧 控制帧主要用来完成建立连接,在控制帧主要用来完成建立连接,在数据传输过程中维护流量和差错控制,数据传输过程中维护流量和差错控制,以及终止连接三种服务。以及终止连接三种服务。BSC所采用的所采用的线路控制编码有:线路控制编码有:ACK0、ACK1、WACK、RVI、DISC、TTD,BSC控制控制序列的双重含义取决于主站序列的双重含义取决于主站/从站发出和从站发出和线路处于控制方式线路处于控制方式/报文方式。报文方式。BSC控制控制序列的双重含义如表序列的双重含义如表9-3。表9-3 BSC控制序列的双重含义3.多点多点结构构BSC轮询/选择传输过程程 在在BSC的多点结构中,为确保所有的多点结构中,为确保所有从站处于控制方式,并准备好接受来自从站处于控制方式,并准备好接受来自控制站的轮询或选择,由控制站发送控制站的轮询或选择,由控制站发送SYN SYN EOT PAD SYN SYN(地址)(地址)ENQ序列,轮询或选择地址由序列,轮询或选择地址由17个字个字符组成,后跟符组成,后跟ENQ。轮询帧的地址序列。轮询帧的地址序列用大写字母表示;选择帧的地址序列用用大写字母表示;选择帧的地址序列用小写字母表示。小写字母表示。一个被轮询的从站可能回答:一个被轮询的从站可能回答:报头数据:报头数据:SYN SYN SOH;正文数据:正文数据:SYN SYN STX正文;正文;透明正文数据:透明正文数据:SYN SYN DLE STX透明透明正文;正文;否定否定(当站没有东西要发送当站没有东西要发送):SYN SYN EOT;暂时正文推迟:暂时正文推迟:SYN SYN STX ENQ;一个被选择的从站可能回答:一个被选择的从站可能回答:肯定,表明从站准备好接收肯定,表明从站准备好接收SYN SYN ACK0;否定,表明从站不准备接;否定,表明从站不准备接收收SYN SYN NAK;表明从站暂时不准备;表明从站暂时不准备接收:接收:SYN SYN WACK9.2.3 BSC数据透明性和同步数据透明性和同步 BSC规程原本是程原本是为传输纯文本消息文本消息设计的;但是用的;但是用户希望它具有一定的兼希望它具有一定的兼容性,使得能容性,使得能够传输类似程序和似程序和图画等画等非文本信息和命令的二非文本信息和命令的二进制序列。不幸制序列。不幸的是,的是,这种种报文可能文可能给BSC传输带来来问题:传输中文本信息中可能包括一个看中文本信息中可能包括一个看来与来与BSC规程的控制字符一程的控制字符一样的的8比特字比特字符模式。符模式。1.BSC数据透明性数据透明性 数据通信中的数据透明性意味着必数据通信中的数据透明性意味着必须能够把任何比特组合在不被错认是控须能够把任何比特组合在不被错认是控制字符的前提下当作数据传送。制字符的前提下当作数据传送。BSC规规程中的数据透明性实现过程:字节填充,程中的数据透明性实现过程:字节填充,通过数据链路转义(通过数据链路转义(DLE)字符定义透)字符定义透明文本区域以及在透明文本区域内的明文本区域以及在透明文本区域内的DLE字符之前加上一个附加的字符之前加上一个附加的DLE字符。字符。为定义透明区域,需要在文本字段开始为定义透明区域,需要在文本字段开始的的STX字符之前插入一个字符之前插入一个DLE字符,字符,并且在文本字段结束的并且在文本字段结束的ETX字符前也插字符前也插入一个入一个DLE字符。第一个字符。第一个DLE字符告诉字符告诉接收方透明区域结束了。如果透明区域接收方透明区域结束了。如果透明区域内含有一个作为文本的转义符内含有一个作为文本的转义符DLE,那,那么仍然会出现问题。在这种情况下,就么仍然会出现问题。在这种情况下,就在文本中的每个在文本中的每个DLE字符前插入一个字符前插入一个DLE字符。如图字符。如图9-12为透明帧的一个例为透明帧的一个例子。子。图9-12 字节填充2.数据同步数据同步 BSC是同步是同步规程,数据以字符程,数据以字符块方方式式传送。送。BSC同步在每个数据同步在每个数据报文的开文的开头进行,以两个行,以两个SYN字符开始,字符开始,SYN是是接口硬件能接口硬件能识别的用以的用以识别字符同步的字符同步的唯一模式。同步唯一模式。同步过程:程:BSC采用两个采用两个连续的的PAD字符(交字符(交替的替的0、1)实现位同步,接收方位同步,接收方识别两两个个连续的的SYN字符建立字符同步;每个字符建立字符同步;每个1秒秒时间间隔自隔自动在在头和正文数据中插入和正文数据中插入同步空同步空转序列;非透明数据采用序列;非透明数据采用SYN SYN序列,透明数据采用序列,透明数据采用DLE SYN序列。序列。9.3 9.3 面向比特的同步通信面向比特的同步通信规程程HDLCHDLC HDLC(HDLC-High Data Link Control)高)高级链路控制路控制规程,是面向二程,是面向二进制位的数据制位的数据链路控制路控制规程,使数据程,使数据传输更可靠,效率更高,它可以支持任意更可靠,效率更高,它可以支持任意二二进制数据的制数据的传输。HDLC来源于来源于IBM公司的公司的SDLC,1975年,年,IBM首先研究开首先研究开发了面向比特了面向比特的的规程同步数据程同步数据链路控制(路控制(SDLC)。)。1979年,年,ISO在在SDLC基基础上提出了高上提出了高级数据数据链路控制路控制规程(程(ISO3009,ISO4335)并逐)并逐渐被其他被其他组织所接受和所接受和采用。采用。ITU-T是最早接受是最早接受HDLC规程的程的组织之一。从之一。从1981年开始,年开始,ITU-T开开发了一了一系列基于系列基于HDLC规程的程的规程,叫做程,叫做链路路访问协议,如,如LAPB协议,LAPD协议,LAPM协议,LAPX协议等。其他由等。其他由ITU-T和和ANSI研制的研制的协议,如,如帧中中继,PPP协议等也是从等也是从HDLC规程程发展而来的,大展而来的,大多数局域网多数局域网访问控制控制协议也是如此。也是如此。9.3.1 HDLC帧格式格式 HDLC在在链路上以路上以帧作作为传输信息的信息的基本基本单位(位(Frame),无无论是信息是信息报文文还是控制是控制报文都必文都必须符合符合帧的格式。的格式。HDLC的的帧由六个字段由六个字段组成,成,这六个字段可以六个字段可以分分为五中五中类型,即型,即标志序列(志序列(F)、地址)、地址字段(字段(A)、控制字段()、控制字段(C)、信息字段)、信息字段(I)、)、帧校校验字段(字段(FCS)。在)。在帧结构构中允中允许不包含信息字段不包含信息字段I。位于信息字段前面的位于信息字段前面的标志字段、地址字志字段、地址字段、以及控制字段段、以及控制字段统称称为首部)首部)(heard),而跟在信息字段后面的而跟在信息字段后面的FCS和和标志字段称做尾部(志字段称做尾部(tailer)。基本的)。基本的hdlc帧格式如格式如图9-13所示。所示。图9-13 HDLC的帧格式1.标志字段(志字段(F)标志字段以惟一的标志字段以惟一的01111110模式在模式在帧的两端起定界作用。要求所有的帧必帧的两端起定界作用。要求所有的帧必须以须以F标志为帧的开始和结束标志,也是标志为帧的开始和结束标志,也是下一帧的起始标志。在用户网络接口的下一帧的起始标志。在用户网络接口的两侧,接收设备不断地搜寻两侧,接收设备不断地搜寻F标志,用于标志,用于一个帧起始时的同步。当接收到一个帧一个帧起始时的同步。当接收到一个帧之后,站点继续搜索这个标志序列,用之后,站点继续搜索这个标志序列,用以判断该帧的结束。以判断该帧的结束。如图如图9-14(a)所示。从而保证接收部分)所示。从而保证接收部分对后续字段的正确识别。另外,在帧与对后续字段的正确识别。另外,在帧与帧的空载期间,可以连续发送帧的空载期间,可以连续发送F,用来作,用来作时间填充。如图时间填充。如图9-14(b)所示。所示。(a)同步作用(b)F作时间填充图9-14 标志字段F的作用 然而,二进制数然而,二进制数01111110有可能出有可能出现在帧中间的某个地方,因而破坏了帧现在帧中间的某个地方,因而破坏了帧一级的同步。为了防止这种情况产生,一级的同步。为了防止这种情况产生,保证对数据的透明传输,采取了比特插保证对数据的透明传输,采取了比特插入、删除技术。在一个帧的传输起始位入、删除技术。在一个帧的传输起始位置和结束标志之前,每当出现置和结束标志之前,每当出现5个连续二个连续二进制进制“1”以后,发送器就会插入一个以后,发送器就会插入一个“0”。这就保证了除标志帧以外,所有。这就保证了除标志帧以外,所有的帧均不会有多于五个连续的帧均不会有多于五个连续“1”的比特的比特帧出现。接收方在检测到起始标志后,帧出现。接收方在检测到起始标志后,会时刻注意检查会时刻注意检查5个连续个连续“1”之后的比之后的比特,特,如为如为“0”,则删除,则删除5个个“1”以后的以后的“0”,恢复原来的数据序列,如为,恢复原来的数据序列,如为“1”,再检查下一个比特。如果第,再检查下一个比特。如果第7个个比特是比特是“0”,那么这一组合被认为是标,那么这一组合被认为是标志字段。如果第志字段。如果第7个比特是个比特是“1”,那么,那么表示是错误序列,接收端拒绝接收此帧。表示是错误序列,接收端拒绝接收此帧。比特填充技术的采用排除了在信息流中比特填充技术的采用排除了在信息流中出现的标志字段的可能性,保证了对数出现的标志字段的可能性,保证了对数据信息的透明传输。当暂时没有信息传据信息的透明传输。当暂时没有信息传送时,可以连续发送标志字段,使接收送时,可以连续发送标志字段,使接收端可以一直保持与发送端同步。端可以一直保持与发送端同步。使用位填充后,在帧的信息字段中使用位填充后,在帧的信息字段中可以插入任意的比特模式。这种性质称可以插入任意的比特模式。这种性质称为数据的透明性,该传输方式称为透明为数据的透明性,该传输方式称为透明传输报文交换方式。传输报文交换方式。例如,传送的数据流为例如,传送的数据流为1111100010010111111001111110,为了,为了能使传输透明,发送方将在发送前进行能使传输透明,发送方将在发送前进行比特填充,上述数据流将变成比特填充,上述数据流将变成1111100001001011111010011111010,字字符串中的三个