1、中华人民共和国国家标准信息处理系统数据通信多链路规程发布实施国家技术监督局发布中华人民共和国国家标准信息处理系统数据通信多链路规程国家技术监督局批准实施本标准等同采用国际标准信息处理系统数据通信多链路规程引言多链路规程涉及开放系统互连参考模型的层次特别是物理层数据链路层和网络层多链路规程位于数据链路层多链路规程提供的功能有从网络层接受数据单元在一组并行数据链路上调度数据单元的传输和重传以及把收到的数据单元重排序后交付给网络层多链路规程具有如下基本特性在两个数据站之间提供多条连接以使服务经济可靠允许增加或减少连接而不中断多条连接所提供的服务通过均衡负荷使一组连接的带宽利用最佳当有的连接发生故障时
2、连接组的服务质量适度下降向每一个多链路组提供一条通向网络层的单逻辑数据链路如果需要在将收到的数据单元交付给网络层之前可以进行重排序主题内容与适用范围本标准规定多链路规程在该规程中处于数据链路层的多条并行数据链路用来在网络层实体之间提供可变带宽的数据链路多链路规程作为数据链路层中一个新的较高的子层出现在网络层与数据链路层的多条单数据链路协议功能之间操作见图本标准不规定向指示多链路帧传输业已成功完成的方法多链路规程不排除利用具有不同时延特性和或线路速率的单链路规程构成一个多链路组当本标准所规定的规程在一条或多条并行数据链路上使用时数据链路两端在发送第一个多链路帧之前必须了解将要使用该规程这可通过下
3、述方法实现事先商定在该数据链路上的所有通信均采用该规程或通过之一协商使用该规程或者通过其他途径双方获得有关使用或不使用多链路规程共同理解的方法在本标准中未作规定图多链路规程功能结构单链路规程多链路规程定义和参数复位证实比特复位证实比特用来响应置比特以证实的所有状态变量均已复位在正常通信中比特置即未曾发起复位请求比特置用来响应比特置的多链路帧同时表示状态变量复位过程已完成在时多链路帧没有数据单元字段多链路规程在构成一组的一个或多个上传送数据所采用的协议多链路发送序号分配给多链路帧的多链路序号的值注可分配的编号值处于从到的范围内含和用于重排序在多链路规程数据接收站当需要重排序时在将数据单元交付给网
4、络层前可用编号进行重排序并可用来检测有无失踪或重复的多链路帧丢失多链路帧定时器在低通信量期间这个定时器的超时用来确定等于的多链路帧已丢失组忙定时器可选在接收这个定时器的超时用来确定在完成重排序之前因耗尽缓冲器而存在着的阻塞状态复位证实定时器定时器提供了一种识别传送了比特置的多链路帧之后还未收到所期望的比特置的多链路帧这一情况的手段多链路接收状态变量表示要传送到网络层的按序下一个多链路帧的注是接收窗口的下沿多链路发送状态变量表示将要分配给多链路帧的按序下一个该多链路帧将在多链路组上发送多链路帧确认状态变量表示等待从本地发回确认指示的最早的多链路帧的注是发送窗口的下沿多链路窗口大小对于一个给定的传
5、输方向发送均应使用相同的注发送窗口包括的序号范围从到含两端点接收窗口包括的序号范围从到含两端点是一个系统参数永远不能超过影响参数值的因素包括但不限于链路传输和传播时延链路数目多链路帧长度范围以及单链路参数重传次数响应时间以及未解决帧的数目接收窗口保护区值高于接收窗口上沿的固定大小的序号范围如果收到了处于该保护区的多链路帧则表示从到该接收到的范围内的未被收到的帧已丢失异常多链路帧的范围在正常工作时不应收到的序号范围注应丢弃在范围内接收的多链路帧重传尝试次数一个单链路规程数据站在通知之前尝试重传一个多链路帧的次数注的随后动作取决于的设计的随后动作应包括将多链路帧分配给原先的或其他的一个或多个传输复
6、位请求比特复位请求比特用于请求复位的状态变量在正常通信时比特应置为即无多链路复位请求比特置用来请求复位接收的状态变量在情况下多链路帧数据单元字段不包括有较高层的信息但可含有一个体现复位原因的可选的原因字段以说明复位的原因注在接口应用中规定了一个比特的原因字段该比特字段的编码有待于进一步研究参阅检验顺序选件比特比特只在时才有意义表示接收到的多链路帧不需要重排序意味着未分配号意味着已分配号因此虽然不需要重排序但可检验多链路帧的重复以及鉴别多链路帧的失踪单链路规程在单条数据链路上用于逻辑数据链路的建立保持传输数据和终止的数据链路协议不排序比特比特表示接收到的多链路帧是否受排序限制意味着不要求排序意味
7、着要求排序多链路帧格式为了允许数据单元例如包能重排序需要提供多链路控制字段这个字段被当作传输单元的信息字段前两个八位位组来传送图表示字段以及它与数据单元和头部尾部之间的关系注如果使用与编码有关的规程可能要求对格式进行一些修改两个八位位组的字段应紧随头部之后并对在网络层实体之间传送数据单元所用的数据链路层的包封进行扩充单链路和多链路控制字段仅在数据链路层上产生和使用不能转发到网络层多链路序号应由个比特组成提供模计数应如图所示分为和两个字段在字段中应备有四个控制比特用于提供附加的多链路控制特征图多链路帧格式比特多链路发送序号的第个至第个比特比特多链路发送序号的第个至第个比特不排序比特检验顺序选件比
8、特复位请求比特复位证实比特单链路规程不排序比特用来表示收到的数据单元在交付到网络层之前不需要重排序为收自网络层的顺序时数据单元不必重排序并且接收应立即将数据单元交付到网络层而不考虑它在接收顺序中的次序时接收到的数据单元在交付到网络层时应保持原序表示号存在检验顺序选件比特仅当表示不需要对多链路帧进行重排序时才有意义当时比特无意义当和时发送不应将值分配给多链路帧因而包括在该多链路帧中的数据单元应转发到网络层而不检验顺序完整性或重复当和时发送应将值分配给多链路帧以便于检验重复或失踪的多链路帧但不需要保证顺序的完整性重复的多链路帧的数据单元不应交付到网络层复位请求比特用来发起多链路复位过程复位证实比特
9、用来表示多链路复位过程的完成在正常数据交换期间复位请求比特和复位确认比特应置发送器操作概述发送负责控制从较高层例如网络层来的数据单元流进入多链路帧中然后再送到以便传输到远程接收的发送的功能有接受从网络层来的数据单元分配包含合适序号的多链路控制字段给数据单元确保分配的不超出发送窗口之外把最终形成的多链路帧传递给传输接受来自的成功传送确认的指示监视在子层中出现的传送失败或困难并从中恢复接受来自的流量控制指示并采取合适的动作传输多链路帧当发送从网络层接受数据单元时它应把该数据单元置于一个多链路帧中然后当需要时或和置并将加递增发送和接收状态变量是依照连续重复顺序序列即对模序列比高比高如果小于而且远程数
10、据站尚未在所有可用的数据链路上都指示出忙状态则发送应把尚未分配的最低的多链路帧分配给一个可用的当从远程接收到一个确认表明已成功地完成了多链路帧的传输时它应向发送作出指示然后发送可以删除已被确认的多链路帧当发送接收到来自的确认指示时应推进以指示尚未被确认的最低编号的多链路帧发送总是首先分配最低的多链路帧发送也可以把一个多链路帧分配给多个如果在多条数据链路上发送一个多链路帧时例如为提高成功交付的概率那么存在这样一种可能性即这些多链路帧之一即重复的多链路帧可能在较早的一个帧被确认后才交付给远程这一较早的多链路帧会使接收递增它的发送递增它的为了确保老的重复多链路帧不被接收误认为是新的多链路帧发送在所有
11、已成功地传送了多链路帧或重传该多链路帧达最大次数之前决不能发送等于或大于的新的多链路帧其中与在其他上传送的重复多链路帧有关另一种方法是在所有的或者成功地传送了多链路帧或者重传该帧达最大次数之前禁止递增图发送器流量控制发送器流量控制流量控制是利用窗口大小参数以及通过远程指示忙状态获得的发送不应给多链路帧分配大于的当下一个将要分配的多链路帧具有时发送应挂起该帧和后继的多链路帧直到收到了推进的确认指示在图中已变成等于此时发送在推进之前不再分配任何新的多链路帧接收通过在一个或多个上指示出忙状态而对发送进行流量控制出现忙状态的的数目决定可实现的发送器流量控制的程度当发送收到来自它的一个或多个的忙状态指示
12、时它应该重新分配曾分配给这些的任何未被确认的多链路帧发送应按照上述规定将包括最低的多链路帧分配给可以使用的重传当发送重传含有多链路帧的单链路帧达次以后仍未收到对该单链路帧的确认时发送将重新把该多链路帧分配给原先的或其他的传送除非其他对该多链路帧有了确认指示链路故障如果发送检测到数据链路故障那么该应向发送报告该数据链路不能用了所有未确认的多链路帧应由发送重新分配在该数据链路重新建立之前发送将不再向该分配任何多链路帧发送器再配置数据链路可能由于物理层或数据链路层的断开而不能提供服务发送应向发送指示此数据链路不能工作所有分配给该的未被确认的多链路帧应由发送进行再分配当数据链路恢复服务或首次提供服务时
13、应向发送指示发送就可以向该分配多链路帧接收器操作概述当从接收接收多链路帧时应当检查多链路控制字段的内容当时数据单元交付给网络层之前应按条所述重排序多链路帧万一接收未检测出传输差错或机器内部出错多链路帧都可能要丢失接收按条所述能检测出这种丢失的多链路帧可以设想较高层的恢复机制是能够从这种情况下恢复的若接收将要用完缓冲资源可采取条所述的流量控制方法接收多链路帧长度小于两个八位位组的多链路帧应由接收丢弃如果多链路帧应按条所述重排序如果且且小于或等于小于或等于又不是重复的则应立即将多链路帧所含的数据单元交付给网络层如果且则立即将多链路帧所含的数据单元交付给网络层图接收多链路帧用于控制接收多链路帧的接收
14、序号可分为三个区域如图所示是下一个按序的多链路帧的该帧的数据单元即将传递给网络层具有较高的多链路帧可能早已被收到并且在传递给网络层之前被挂起以等待所期望的多链路帧和有关的三个序号区域为接收窗口包括从到的序号保护区包括从到的序号异常区包含从到的序号当收到的多链路帧时不论它是否按照条而曾被挂起过其数据单元应交付给较高层例如网络层并且接收应递增重排序接收通过下述方法对多链路帧进行重排序即所有需要重排序且在至范围内的多链路帧在其数据单元交付给网络层之前被挂起的方法需要重排序的且序号小于的所有多链路帧应已完成重排序而且它们的数据单元已被交付给网络层检测丢失的多链路帧由于是收发双方均了解的固定参数且发送窗
15、口从尚未指示确认的最小多链路序号模开始因此接收除不接收重复帧之外还不接收处于接收窗口之外的多链路帧当接收接受并确认一个含有多链路帧的传输单元且发送向发送指示确认时发送可推进它的窗口允许向分配具有较高的多链路帧如果接收到的多链路帧随后丢失了那么接收的接收窗口不能推进接收应等待丢失的多链路帧直至收到一个在保护区内的的多链路帧或定时器超时当检测到一个丢失的多链路帧时可通知网络层当接收位于保护区的的多链路帧时可认为该帧有效从到接收到的减范围内的多链路帧若尚未收到则应认为已丢失若已收到则应传递到网络层接收窗口应如此旋转使等于接收到的减去然后继续进行条中所规定的多链路帧的正常处理见图保护区对接收要足够大以
16、便于接收识别在它的接收窗口之外的多链路帧丢失出现后可以合法接收的最高的不应大于例如在发送依次将个按顺序连续的多链路帧分配给第个的系统中应大于或等于所有之和其中等于所碰到的最小的在多链路组中有个的场合应大于或等于或在发送依次轮流给每一个分配个按顺序连续的多链路帧的系统中接收的应大于或等于其中是多链路组中的的数目图检测丢失的多链路帧若定时器超时可申报的多链路帧丢失接收窗口按前面所述那样旋转在收到一个大于并且需要重排序的多链路帧时应当启动定时器当接收到一个的多链路帧且在接收一个等于新的的多链路帧之前有其他多链路帧正等待交付时应再启动定时器否则应复位定时器当所有的均指示出忙状态时应当关闭定时器接收器流
17、量控制当需要对发送进行流量控制时一个或多个接收可指示出忙状态如果接收在完成重排序之前可能耗尽其接收缓冲容量可以安装定时器只要接收在所有上均指示出忙状态且接收上有多链路帧正等待重排序就应启动定时器当忙状态在一个或多个上清除时应复位定时器如果定时器超时则的多链路帧被阻塞并认为丢失应增加到下一个尚未收到的序号具有其间序号的多链路帧中所包含的数据单元应交付到网络层如果忙状态在所有上仍保持有效而且多个多链路帧正在等待重排序应重新启动定时器定时器的周期可由每个的实现者独立地设定初始化用第章所述的复位规程初始化和为复位多链路复位规程提供了一种机制旨在对互连的的多链路序号进行同步多链路复位规程成功之后每个方向
18、的多链路序号应从开始的多链路帧用来请求多链路复位的多链路帧证实多链路复位规程业已完成根据传送的多链路帧应将和复位到根据收到的多链路帧应将复位到当启动复位规程时它将移去在那个中和相关的中挂起的所有未确认的多链路帧并维持对这些帧的控制此后发起的不传送的多链路帧直到完成复位规程移去中多链路帧的一种方法是断开该的数据链路然后发起的将它的多链路发送状态变量和它的发送多链路帧确认状态变量复位到然后发起的在它的之一上传送的多链路帧作为复位请求并启动定时器帧中的字段的值可为任意值因为当时接收不理睬字段发起的应按条中所述的规程继续接收和处理来自远程的多链路帧直至它从远程收到的多链路帧在正常通信状态下收到来自发起
19、的的多链路帧复位请求的应按上述规程启动操作该不应接收来自发起的的多链路帧直至复位规程完成收到的任何这种多链路帧应予以丢弃在已启动自己的多链路复位规程并将的多链路帧传送到它的之一进行传送时那个在收到来自另一的的多链路帧时不重复上述操作收到的多链路帧复位请求引起接收的将业已收到的那些多链路帧的数据单元交付到较高一级并标识已分配给的但仍未确认的那些帧对于编号值位于从原有值开始到且包括所收到的多链路帧的最大编号值为止的区间内的任何多链路帧若没有被接收到则可向较高层报告这些帧的丢失然后接收将它的多链路接收状态变量复位到将的多链路帧分配给它的之一后它应从该接收传输是否成功的指示作为传送的多链路帧的前提条件
20、之一当发起随后收到的多链路帧并完成了上述多链路状态变量复位操作时发起应向另一传送的多链路帧复位证实当一个收到了的多链路帧传送了的多链路帧完成了上述多链路状态变量复位操作时假定传输的多链路帧成功与否的指示已经从该的中收到那么该应尽快向另一传送的多链路帧复位证实的多链路帧是对的多链路帧的回答上述的帧中字段的值可以为任意值因为当时接收不理睬字段多链路复位后每一方向上收到的多链路序号应从开始当只使用一个来发送的多链路帧和接收的多链路帧时它可以在传送的多链路帧之后立即传送的多链路帧无须等待传输完成的指示不应重发或的多链路帧除非定时器超时可以使用两个不同的一个用于发送的多链路帧另一个在收到的多链路帧成功或
21、不成功传输指示后用于发送的多链路帧决不能使用的多链路帧当接收到的多链路帧时应停止它的定时器将的多链路帧传送到远程和收到来自远程的的多链路帧完成一个的多链路复位规程对于所传送的第一个多链路帧其序号值应为向一个传送了的多链路帧后可以接收一个或多个的多链路帧收到的多链路帧后该可以传送一个或多个的多链路帧当在收到的多链路帧和传送的多链路帧之间附加地收到的一个或多个多链路帧时该应丢弃额外的的多链路帧当收到的多链路帧而该帧不是对的多链路帧的回答时该应丢弃该的多链路帧在它的之一上传送了的多链路帧之后该可接收来自另一的的多链路帧这个应将此的多链路帧看成新的复位请求并从头开始启动多链路复位规程当未收到的多链路帧
22、而传送了的多链路帧并因此收到了的多链路帧时该应从头开始重新启动复位规程当定时器超时时应从头开始重新启动多链路复位规程定时器的值要足够大以便包括的发送重传传播时延以及接收的多链路帧和用的多链路帧进行响应的的操作时间附录多链路复位规程的举例参考件引言下面举例介绍在下述情况下的多链路复位规程的使用由单个站发起复位和由两个站同时发起复位由单个站发起的复位注确认交付多链路帧的帧确认交付多链路帧的帧由两个站同时发起的复位注确认交付多链路帧的帧确认交付多链路帧的帧附加说明本标准由中华人民共和国机械电子工业部提出本标准由机械电子工业部电子标准化研究所归口本标准由上海交通大学电子工程系和机械电子工业部华北计算技术研究所负责起草本标准主要起草人诸鸿文张保栋钟声扬黄家英