采用配电线载波的配电自动化
第4-32部分:数据通信协议
数据链路层一逻辑链路控制
1总则
1.1范围和目的
本部分描述了数据通信协议(DCP)逻辑链路控制(LLC)子层实体与应用层和MAC子层在逻辑接口上应实现的服务。
通常,一个层(或一个子层)的服务是它提供给下一层用户的能力。一个层(或一个子层)通过调用低层提供的服务来构建本层的服务.
通过描:述应用层和MAC子层之间的信息流来说明服务,即对表征各个服务的服务原语和参数进行描述,
这些原语与无连接传输有关.
注1:本标准参照IEC61334-4-I中描述的三层参考模型(如图l所示),但可以制定相应的规定以适应将来模型扩展至超过3层。
注2:为了将来扩展到面向连接的传输,本标准也作出了相应规定.
在本部分中,参考了GB/T9387的OSI参考模型。
图1参考模型关系
1.2规范性引用文件
下列文件中的条款通过本部分的引用而成为本部分的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分。然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分.
1334-4-1.1996)。GB/T9387信息处理系统—开放系统互连—基本参考模型(IDTISO/IEC 7498)。
2 LLC服务规范
本条描述了应用层所要求由LLC子层提供的服务。这些服务允许本地应用层实体通过使用DCPLLC操作,在逻辑链路控制子层和远程对等应用层实体交换数据包。下面是这些服务的抽象描述.
2.1交互概述(hrerⅥew)
2.基本服务
为了进行数据传输,OSI模型中的三种基本服务如下。
-DL_Data.reqmst
-DL- Dataconfirm
-DL.Data.indication
这些服务无应答,用在无连接模式下.无应答发送数据模式如图2所示,
图2无应答发送数据
2.1.2主动服务
为了在远方应用层实体和本地应用层实体之间主动传输L_SDU提出了6种服务-
-DL_Reply request
-DL_Reply.indication
-DL_Reply.confirm
DL_ Reply服务的目的是请求远方LLC予层实体发送事先已准备好的L-SDU.
-DL_Update_Reply,request
-DL_Update_lkply.indic:Uion
-DL_Update_Reply.confirm
-DL_UpdUe_Reply服务的目的是准备DL_Rcply服务,
更新一响应如图3所示,请求响应数据如图4所示,传输例子如图5所示.
图4请求响应数据
图5传输例子
2.1.3管理服务
提供了一个服务用于管理:
-DL_ Broadcast.request
这个服务使用了MAC子层实体的广播功能.该服务用于向所有对等LLC子层实体传输很少的数据.
2.2 DLJDatarequest
2.2.1功能
通过使用LLC传输过程.DL_Data.ttquest原语被传递给LLC子层实体以请求发送一个L_SDU给一个或多个远方LLC子层实体。
2.2.2结构
该原语的语义如下:
DL_Data.request(
Destination_LSAP,
Source LSAP,
Destination_address,
L_SDU,
Link_ class
)
Source_LSAP和DestinatiorvLSAP参数描述了数据单元传输中本地和远方的LSAP.
Destination_address参致描述了数据单元传输中的远方工作站的地址。
L_SDU描述了LLC子层实体传输给一个或多个对等LLC子层实体的链路数据单元.
Link_claas参数保留,用于将来扩展DL-_ Data传输服务。
2.2.3使用
当传输数据到一个对等应用层实体或多个对等应用层实体时,该原语由应用层实体产生.
当接收到该原语时,UC子层实体填充所有LLC特定的域,并将组成的LPDU传递给协议的frf;层,用于传输给对等的一个或多个LLC子层实体,
该原语的接收将产生一个MA_Data_requelst原语,用于传递给MAC子层实体.
23 DLDat&eonflrm
2. 3.1功能
DL_Data.confirm对传输的LJ'DU发出一个本地确认。这个原语只在本地才有意义。该原语给发出DL_Data request原语的应用层实体提供一个恰当的响应来指示请求在本地是成功还是失败,请求的成功或失败由协议的低层指明.
2.3.2结构
该原语的语义如下:
DL_Data confinn(
DestinatioILLSAP,
Source_LSAP,
Destination_address,
rransmission-StauS
)
Source_LSAP和Destination_ LSAP参数表示数据单元传输中的本地和远方LSAP.Source_LSAP
参数表示先前发出DL_Data requst原语以及接收确认信息的LSAP.
Destination address参数表示数据单元传输中远方工作站的地址.
Transmission_Status参数给本地发出请求的应用层实体回传状态信息,用于指示先前相关的
DL_Data.n:qucst原语的成功或失败信息。
2.3.3使用
生成该J贰语来把对一个DL_Data request原语的响应回传给本地应用层实体。该原语在本地MAC子层实体发出的一个MA_Data.confum服务到来时产生。
假定应用层实体可获得足够信息以适当的请求与响应关联.
2.4 DL_Datajndtcatfon
2.4.1功能
DLJ)ata.indication原语从LLC子层传递给应用层的一个或多个实体,指示一个L_PDU的到达.
该原语定义了从LLC子层实体到单个或多个应用层实体的数据传输。
2.4.2结构
该原语的语义如下:
DL- Data.indication(
Destination_LSAP,
SoutceJ.SAP,
Destination_address,
Source_address,
L_SDU,
Link class
)
Destination_LSAP和Source_LSAP参数表示数据单元传输中的本地和远方LSAP.Destinafion_LSAP可以是到来的L_PDU中所指定的单地址或一个组地址。
Destination_address和Sourcc_ address参数表示数据单元传输中的本地址和远方工作站的地址.Destination address可以是一个单地址或一个组地址。
L-- SDU参数指明了.LLC子层实体接收到的链接服务数据单元。
Link_class参数保留,以便将来扩展DL.Data传输服务。
2.4.3使用
DL.I Data.indication从LLC子层实体传递给单个或多个应用层实体,指示一个MA_Data.indication从远程数据链接用户实体到达本地LLC子层实体。
只有当Destination_address用一个组地址或单地址指定其中一个本地LSAP,才会上报L-PDU.
2.5 DL_Reply.request
2.5.1功能
DL_Reply.requcst原语被传递给LLC子层实体以请求从一个远程工作站返回一个已经准备好的L_SDU。
2.5.2结构
该原语的语义如下:
DL_Replyrequest(
DestinatioU_LSAP,
Source_LSAP,
DestinatioILaddress,
Length_allowed
)
Source_LSAP和Destination_address参数表示数据单元信息交换中的本地和远程LSAPs.
Destination- address不应是一个组地址.
Destination_ addres8参数指明了数据单元传输中的远程上作站地址。Destination_address不应为一个组地址.
Lengthjllowed参数表示远方LLC用户允许返回的L--SDU的最大长度。
2.5.3使用
当该原语产生时,该原语从本地LLC子层实体传送给远方LLC子层实体,请求传输先前形成的L_SDU。L_SDU的长度不应超过参数Length_allowed。
该原语的接收(如果有效)将产生一个MAJ)aca.request原语传输给对等LLC子层实体。
2.6 DL_Reply.conflrm
2.6.1功能
DL_Reply.confum原语从LLC子层传递给一个或多个应用层实体,指示已经用Dk且eply.confirm原语请求的一个L_PDU的到来。DL_Reply.confinn原语定义了从LLC子层实体到应用层实体的数据传输.
2.6.2结构
该原语的语义如下:
DL_Reply.confirm(
Destination_LSAP,
Source_LSAP.
Destination_address,
Source_address,
rransmissiOlLStatus,
L_SDU,
)
Destination_LSAP和Source_LSAP参数规定数据单元传输中的本地和远程LSAP。DestinatiorLLSAP和Source1.LSAP不应是一个组地址。
Destination address和Source_address参数表示数据单元传输中的本地址和远程工作站的地址.Destination,_address和Source-address都应是单地址。
lYansmissiarl_Status参数用于给先前发出DL_Reply*request原语的本地应用层实体回传状态信息.它用于指示先前相关的DL_Rcply.request原语的成功或失败。
L_SDU参数指明了由LLC子层实体接收的链路数据单元。
2.6.3使用
DL_Rcpjy.confirm由LLC子层实体传递给一个或多个应用层实体,用于指示在传输了一个DL_Reply.request原语之后,由一个远程数据链路用户实体到本地LLC子层实体到达了一个MA_Data indication。这个服务原语传递给应用层实体接收到的L_SDU或失败的原因(Transmission_ Status).
只有Destination- address指定一个本地的LSAP,L_.PDU才会上报。
2.7 DL_Replyjnmcation
2.7.1功能
DL风|ply.indicac:ion原语被传递给应用层,用于指示本地LLC子层实体已成功发送一个先前准备好的、由远程LLC用户请求的一个L_SDU。同时它也指示了远程LLC用户启动了一个DL_Reply reqUe或并且传输了一个响应。
2.7.2结构
该原语的语义如下:
DL_Reply.indication(
Destinatiolr_l。SAP,
Source—LSAP,
Source_address,
Ilmnsmissum_Status,
L_SDU
)
DesMation_LSAP参数指定了先前发出一个DI,_Updatc_Rcply.requeBt原语和指示要发送到的LSAP。这个LSAP不应是一个组地址。
Source_address参数指定了发出DL_Rcply request原语的工作站的地址.
TransmissioLStatus参数用于给先前发出请求的应用层实体回传状态信息。它指示先前的L_SDU传输成功或失败。
L_ SDU参数指明在响应中发送的链路数据单元。这个L_SDU必须和DL_Update_Repjy. request原语先前准备的L-- SDU -样(见第4章)。
2.7.3使用
接收到由远程LLC子层实体发出的DL_Reply.requc8t,本地LLC子层实体用一个MA_Data.request发起对所请求的L,..SDU的传输。这个DL_Rqply.indication蠢语在接收到相应的MA』a饥confrm时产生,然后该原语指示先前被发送的L_SDU的传输.
这里假定应用层实体可以获得足够的信息,将DL_Reply.imhcat:io:a和有关的DL_Updatc_Reply.request关联。
2.8 DL_UpdateJteplyrequest
2.8.1功能
DL_Update_ReldY.request原语和一个L=SDU一起传递蝓LLC子层。这个L_SDU将由LLC子层实体保持,在其他工作站请求发送对,被发送.
2.8.2结构
该原语的语义如下:
DL_Update_Reply.Muest(
Source_LSAP,
L_SDU
)
Source_LSAP参数指定了与数据单元的准备相关的本地LSAP.它指示是哪—个LSAP发出了该请求。
注:没有定义Dcstination_addtra8.每个远方工作站可以请求本地LLC子层传送正处于等待状态的LSDU.
L_SDU参数指明了将出LLC保持的链路服务数据单元,该数据单元为收到请求时被传输而做准备。I_SDU可以为空。
2.8.3使用
这个原语由应用层实体传递给LLC子层实体,将..SDU与本地LSAP相关联.它给远程用户指示了该L_SDU的存在。
注1l通过将所有即将发出的UDU的Reply域设置成—个非零值,向远方工作站报告存在一个等待中的L_SDU.
这个值规定了该等待中的L_SDU的长度.
注2一应用层实体必须管理传递给u£子层实体的DLUpdate_Replyr辨瓯原语,从而避免不希望的重写.LLC予层实体并不检验是否存在一个先前被发送给本地LSAP的LJDU.
2.9 DL_Update_Reply.conflrm
2.9.1功能
DL_Update_Rcply.confinn服务从LLC子层实体传送到应用层实体,以传递先前相关的DL_Update_Reply request原语的结果。
2.9.2结构
该原语的语义如下:
DL_Updatc_Reply.confirm(
Source_LSAP,
Status,
OldJL.SDU
Source LSAP参数指明与链路服务数据单元的准各相关的本地LSAP。
Sratus参数指示先前相关的数据单元准备请求是成功威失败。
Old_L_SDU参数指定当前由LLC保持的链路服务数据单元。这个参数向应用层指示了先前的为稍后收到请求时被传输而准各的L_SDU的值.
2,9.3使用
这个原语由LLC子层实体传递给数据链路层用户,表示先前数据单元准备请求是否成功.
如果状态是成功的,这个原语向应用层实体指示LIL子层实体拥有由和本地LSAP相关的DL_Updatc_Reply.request所提交的L_SDU。所有即将发送的L._PDU.如果是由该LSAP发出的DL_Dara.rcquest而产生的,都会包含一个非零的Reply予域.这个子域向一个或多个对等LLC实体指示存在一个等待的L_SDU,直到接收到.个新的带有空的L.:SDU的DL_Update_Reply.confirm为止.
失败状态指示与本地LSAP相关的L_SDU不可保持和失败原因.
注:同一时刻,在一个LSAP上,只有一个L_SDU可以等待传输,一个DL_Update_ReplyRquest原语将重写一个先前设定的LSDU.
为了使DL_Update_Reply.confjrm原语能传递有用信息,要求在DL_Updatc_Reply.request及DL_Updatc_Reply.confirm中传递足够的隐含上下文信息,以便数据链路用户知道先前请求的状态.
2.10 DL_Update_Replyjndication
2.10.1功能
DL_Update_Reply.indication原语从LLC子层传递给应用层实体,指示在对等数据链路层存在一个等待L,.PDU,这个原语请求应用层肩动一个DL_Reply服务过程.
2.10.2结构
该原语的语义如下:
DL_Update_Reply.indication(
Destmation-LSAP,
Source_LSAP,
Dcstination_address,
Source_address,
Length jequested
)
Destination_LSAP和Source-LSAP参数指定了数据单元传输中的本地和远方LSAP.
DcstinationjLSAP应是到来的L_PDU中所指定的那个单地址。
Destination_addn:ss和Soutce_addtess参数指定了数据单元传输中本地和远方工作站的地址.Destination_ address应是一个单地址。
Length_requested参数指示在远方工作站上存在一个等待传输的L_SDU及其长度.
2.10.3使用
DL_Data.indiC砒ion从LI—C子层实体传递给应用层实体以指示来自于一个远程数据链路用户实体帕一个MA_Data.indication已经到达。到达帧的限定域的第一个比特指示在远方数据链路实体有一个等待的L_PDU。
只有Destination_address指定一个本地LSAP的单地址时,L_PDU才会上报.
2.11 DL_Broadcast.request
2.11.1功能
本原语定义了从一个本地系统管理应用实体到所有对等系统管理应用实体的数据传输。可能的寻址方式只能是广播。本服务为管理而设计。
2.11.2结构
该原语的语义如下:
D.Boadcast,request(
Source_LSAP,
L_SDU,
Service-class
)
Source_LSAP参数指明数据单元传输中本地LSAP。这个LSAP必须特指一个应用实体.
L_SDU参数指明由LLC子层实体传输给对等LLC子层实体的链路数据单元。
Senice class参数指明MAC子层实体用于传输L_PDU的帧类型。SeⅣice_class参数值可以等于或大于0。
这表示一个广播传输。
2.11.3使用
当管理命令应在广播模式下传递到所有应用实体时,由超级用户应用实体产生这个原语.
这个原语的接收将使LLC实体添加所有LLC特定的域,并将形成的L_PDU传递给协议的低层以传输给对等LLC予层。
3 LLC与MAC子层接口
本条描述了逻辑链路控制(LLC)子层操作要求介质访问控制(MAC)子层需提供的服务,这些服务允许本地LLC子层实体与对等LLC子层实体交换LLC数据单元.下面是服务的抽象描述.
3.1概述
如常见的OSI模型,提出了3种基本服务,
-MA__ Data.request
-MA_D ata.canfinn
-MA_Data.indication
3.2 MA_Data,request
3.2.1功能
该原语定义了从一个本地LLC子层实体到一个对等LLC子层实体或组地址情况下多个对等LLC实体的数据传输。
3.2.2结构
该原语的语义如下:
MAJData.rcquest(
DestinaT:ion_addrcss,
M_SDU,
Service_class
)
DestinatiorL_address参数可指定一个或…组MAC实体地址。它必须包含足够的信息来创建目的地址(DA),该目的地址被本地MAC子层实体包含在帧头中。
注。源地址没有指定.因为它是一个本地参数.MAC予层会自动添加.
M_SDU (MAC服务数据单元)参数指定由MAC予层实体传输的MAC服务数据单元.有足够的与M_SDU相关的信息可用于MAC子层实体确定数据单元长度。
Service- class参数指明MAC子层实体用于传输M_SDU的服务级别。
3.2.3使用
当需要传输数据到一个或多个对等LLC实体时,LLC子层实体产生该原语。它可作为对来自离层协议的请求响应。
接收该原语将引起MAC实体添加所有MAC特定的域(DCP MAC描述中的状态),并将形成的帧传递给协议的低层,以实现和对等MAC子层一个或多个实体的数据传输.
3.3 MA_Data.confirm
3.3.1功能
该原语只在本地有意义,它向发起MA_Data,confirm J泉语的LLC予层实体返回一个相应的响应.MA_Data.con矗nn原语告诉LLC子层实体先前MA_Data.request原语的M_PDU是否由物理层成功发送.
3.3.2结构
该原语的语义如下,
MA Data.confrm (lYansmission_Status)
参数Transmi路ion_Status用于给本地发出请求的LLC子层实体回传状态信息。它表示先前相关的MA_Data.request是成功或失败。
3. 3.3使用
产生该原语用于响应一个本地LLC子层实体发出的MA_Data,requesr原语。
这里1笈定LLC子层可以获得足够的信息,将适当的请求与确认相关联。
3.4 MADatajndlcation
3.4.1功能
该原语定义了从MAC子层实体到LLC子层实体的数据传输。
3.4.2结构
该原语的语义如下。
MA_Data.indication(
Destinatiorl_address,
Source_address,
M_SDU
)
Destination _address参数可以是到来帧的DA域中指定的一个单地址或一个组地址.
Source address参数是到来帧的SA域指定的一个单地址.
M_SDU参数指明由本地MAC子层实体接收到的MAC服务数据单元.
3.4.3使用
MA_Data.indic:ation从MAC子层实体传递给LLC子层一个或多个实体,用于表示本地MAC子层实体收到了一个帧。
4 LLC协议数据单元结构(LLC_PDU)
4,1概述
本条为使用DCP LLC过程的数据通信系统详细定义了逻辑链路控制(LLC)协议数据单元(PDU)的结构。LLC_PDU也称作L_PDU,本条定义了PDU各种组成部分的相对位置,也定义了表示数据链路层服务访问点地址的方法。
4.2 LLC_PDU格式
LLC_PDU的格式如图6所示,所有LLC_PDU必须遵循下列格式l
——控制域(Control field):
——目地服务访问点(DSAP)*
——源服务访问点(SSAP);
-数据,
控制域和地址域各包含一个字节。数据域长度是字节的整数倍,介于0和MAX_LPDU_LcnSth之间。
图6 LLC_PDU格式
4.3控制域
控制域包含1个字节(如图7所示),用于定义接收到的L-_ PDU的类型.控制域规定了所需处理的命令或响应,若有必要,还应规定所需的限定域(qualifier)。
控制域包含下列位:
-lbit的“l”;
-2bit的命令子域;
-Ibit的命令,响应(C/R)域;
-4bit的限定子域。
1 |
命令子域 |
C/R |
限定子域 |
1bit |
2bit |
3bit |
4bit |
7控制域
4.3.1 0R位
在控制域中,C/R位用于标识L_PDU的类型。L_PDU可以是一个命令或一个响应.该位称为命令,响应位(C/R位).如果这位是“l”,表示该L_PDU是一个命令。若该位是“0一,表明该L_PDU是一个响应。
4.3.2命令子域
命令子域2bit指定所请求的服务原语。
DL_Data request原语调用该无应答(NA)命令.本地LLC子层实体使用它传输一个L_PDU给一个或多个远方工作站,而不需要任何响应或应答。在命令子域,该NA命令的编码为。∞”。
DL- Broadcast.request原语调用该无应答(NA)命令。本地LLC子层实体使用它传输一个L_PDU给远方工作站而不需要任何响应或应答。在命令子域,该NA命令的编码为。01”.
DL_Reply.request原语调用该应答(AC)命令。本地LLC子层实体使用它向—个远方工作站传递一个数据请求。在命令子域,该AC命令的编码为“10一。
DL_Reply.response原语调用这个对DLJleply.request的响应.在命令子域,响应编码为“1l一“
4,3.3限定子域
限定子域给命令或响应提供附加信息。限定子域的结构取决于L_PDU的类型,根据C/R和命令位的值,定义了3种类型限定子域。
4.3.3.1 NA命令
如果L_PDU包含一个无应答命令,限定子域称为应答(reply)子域.响应子域的目的是指示在远方工作站上有主动数据等待传送.
响应子域的第1位(最高位)表示等待的L_- PDU是否已经被传送。“1”表示一个L_SDU在等待,且没有被传送;“0”表示等待的L..SDU已经被传送。
该子域的最后3位(最低位)定义了等待的L_SDU的长度,长度为0表示目前没有LSDU等特传输。
4.3.3.2 AC命令
在一个AC命令中,限定子域的目的是用于定义允许远方工作站返回的L一SDU的长度.
该子域的最后3位(最低位)规定L_SDU的允许长度。
限定子域的第1位(最高位)设置为“0”。
4.3.3.3 AC响应
一在一个AC响应中,限定域的日的是用于定义接收方先前发出的AC命令被成功接收或失败的原因.
可能的值定义如下:
——十六进制0-OK,没有检测到错误.
——十六进制l=长度不足,检测出有一个错误。AC响应L_PDU中保留的长度太小不足以容纳等待的L_SDU。启动RDR的IU:实体必须重试。
——十六进制2-无等待L_SDU,发出AC响应的工作站在LSAP上没有L_SDU等待传输.着想获取更多信息,参见第5章。
4.4地址域
每个L_PDU包含一个目的LSAP (DSAP)和一个源LSAP (SSAP)选择器域,每个都是一个字节,如图8所示。每个LSAP仅包含一个单一选择器。DSAP地址域标识LLC数据域将送往的服务访问点-通过组地址,寻址几个I SAP也是可能的。SSAP地址域标识由此发出数据域的特定服务访问点。
每个地址包含8bit的实际地址。
8bit地址(组/单位) |
8bit地址(单) |
目的LSAP域 |
源LSAP |
4.4.1 单地址和组地址目的LSAP
在DSAP地址域中,使用最高位的2bit来标识该DSAP地址是一个单地址还是一个组地址,这两位称为地址类型指定位。如果这些位的值是“00”、“01”、“10”,表示该地址是一个单地址,如果是吖11一,
表示地址是一个组DSAP地址,它标识无、一个或多个由LLC子层实体进行服的服务访问点. 一个单地址可用作一个SSAP或一个DSAP地址,一个组地址仅可用作一个DSAP地址。因此,在SSAP地址域,最高位的2bit通常设置为指示一个单地址的值。
4.4.2预定义地址
DSAP地址中的全“l”被预定义为’个全局DSAP地址。这个DSAP地址指定了包含所有正在被底层MAC地址所服务的DSAP的组。
许多其他地址也被预先定义,参见DIJT 790.41。
4,5无效LLC- PDU
无效的L_PDU至少满足下列条件之…:
—其长度不是字节的整数倍:
——没有包含具有年确格式的两个地址域:-个控制域,一个数据域(可选)l
——长度小于3个字节.
无效L-- PDU的内容不会上传给上层。无效L_PDU的出现叮以通知给管理应用程序。
5 LLC过程描述
5.1概述
5.1.1寻址过程
地址域用于指示LLC_PDU的源(SSAP)和}={的(DSAP)。
发送和接收服务访问点是隐含成对的。发送方应保持关于接收服务访问点的瞬时状态信息,以便允许本地确认.这个成对信息由MAC地址(Destination_adckess/S ourcejddress)和LLC地址
(Destination_LSAP/Saurce_LSAP)的逻辑连接组成。这个成对信息在DL/T790.41-2002第4章中有描述.
5.1.2信息传输
从一个启动站到一个响应站的信息传输是通过发送控制域中的NA或AC命令来完成的。
如果一个DL_Data request原语来自数据链路层的用户,ILC发送一个包含指定的L_SDU的NA命令PDU.该NA命令中的命令子域比特设置成“00”。如果…个DL_Reply.request原语来自数据链路层的用户,LLC发送一个包含指定L_SDU (NULL)的AC命令,该AC命令的命令子域被设置成”10”.
当启动一个针对AC命令(响应服务)的响应时,控制域的C/R位设置为“O”(响应).命令子域设置为"11”。
5.1.3信息接收
如果接收的L.- PDU控制域中的CIR位被设置为“1”(命令),则LLC检查命令子域,从而知道它是一个AC命令或NA命令。
如果命令子域指定一个AC命令(响应服务),则LLC子层实体检查相应L,SDU的可访问性,如果L_SDU可访问,则启动针对AC命令的响应。一接收到相应的本地确认,发出DL_Replyindiartion原语给本地数据链路用户,指示对该等待L_SDU的传输,
如果命令子域指定一个NA命令(数据服务).则LI.c子层实体给目的LSAP发出相应DLJ)ataindication原语.
5.1.4LLC参数
所定义的逻辑链路控制参数的值域由用户根据各系统实际情况在网络初始化时确定.
5.1.4.1 PDU的长度
L.- PDU的最大和最小长度值包含在管理信息库中。最大长度由MAC帧限定.
有效的L_PDU最小长度必须确切包含一个控制域,两个地址域。因此1个有效LPDU的最小字节数必须是3。
5.2发送方和接收方状态表
发送方使用的过程的抽象描述如下:状态转移表使用了几个状态、函数和事件,描述了后续动作.
接收方主要负责接收远方工作站的命令,并返回相应的响应,
接收方使用的过程的抽象描述如下:状态转移表使用了几个状态、函数和事件,并描述了后续的动作.
5.2.1 发送方状态转移表
发送方状态转移表见表l。
表1发送方状态转移表
初始态 |
事 件 |
动 作 |
量终状态 |
Conng |
LocaI=Status () =OK |
无 |
IDLB |
IDLE |
DLJ)ara request |
Update_Context () |
SDN |
IDLE
|
DL_Broadcast.reqU嘁
|
Conaouct_Contcxt () UlxWe_Ctmtext () |
BRO
|
皿崛 |
DL_Rqply requcst |
Updatz_Context() |
RDR |
耶忱 |
Loc__5诅us()oOK |
无 |
Conflg |
SDN
|
Check () -VALID
|
Build_PDU ( P_SSAP-L_SSAP, P_DSAP-L_DSAP, Data-L_SDU, Cmd- NA, C R:C. QuerI=Reply_Req (》 MA_Dloutqrest ( L_DA =C_RA M_SDU=IJDU, sc=o) |
SDN.W
|
SDN
|
Chedc()<>VAUD
|
DL.Data.ccmfirm ( Extract_Ccmtext L_D:SAP-C_RSAP, L_SSAP-C_LSAP, L_DA =C_RA
L_TStat-Oux:k (》 |
IDLE
|
BRO
|
Ch∞k()=VALID
|
BuildJDU ( SSAP-SSAP, DSAP=Dsap (sc), Daua =L_SDU, Quald=NA, C/R=C, Qual=0) MA_Dtua.request ( MLDA-ALL, M_SDU =L_PDU, sc-sc) |
SDN.W
|
表1(续)
页码,18/25
DL/T 790.432 - 2004
初始态 |
事 件 |
动 作 |
最终状杏 |
BRO
|
Clwck () oVALID
|
Elxtraci_Contcxt ( LDSAP -CJLSAP, L_SSAP-C_LSAP, L_PA - C_RA L TStat=Check ()) |
IDU!
|
SDN.W
|
MA—Dataconfirm
|
DL_Data confim ( Extract_Context L_DSAP=CJISAP, L_SSAP-C_LSAP, L.DA - C_RA, L TSM_Tstat,) |
IDLE
|
RDR
|
Check()—VALID
|
Build_PDU ( P_SSAP -L_SSAP, PJ)SAP=L_DSAP, Data- NULL, Cmd - AC, OR=C, Qual-Length_allowed) MA_Dataurequost ( M_DA-L_RA, M_SDU=L_PDU, sc=o) |
RDILW
|
RDR
|
Chcck () oVALID
|
DL_Replyconftrm ( ExtracLContext L_DSAP-C_LSAP, L_SSAP=C_RSAP, L_DA= C_LA, L_SA = C_RA, L_SDU-NULL L TStat-Check ()) |
IDLE
|
RDR.W |
MA_Data.confitm (M_TStat=OK) |
Nonc |
IDLE |
RDRW
|
MA-__ Data.confirm( (M_TStatoOK)
|
DL_Rcply.confirm ( Exr:ract_Contcxt L_DSAP=C_LSAP, L_SSAP = C_RSAP, LDA = C_IA, L_SA=CJIA, L_TStat-M_TStat L_SDU=NULL) |
IDLB
|
ⅡILE
|
MAJ)ata,indication ( type =n:sp - AC ) md Receive_St咖s () -OK
|
DL_Rcply,confirrm ( L_SSAP =P_SSAP, L_DSAP -P_DSAP, L_SA-M_SA, L_DA=M_DA, L_TStrtt= Qual, L_SDU = L_SDU) |
IDLB
|
5.2.2接收方状态转移表
接收方状态转移表见表2。
表2接收方状态转移表
初状态 |
事 件 |
动 作 |
最终状态 |
Confg |
LocaL_states()=OK |
Naae |
Ⅱ)LE |
ⅡⅡ卫 |
Local_ Sratus () oQK |
None |
Cmfig |
Ⅱ珏甩
|
MA_Data.indication and Receive_Status () oQK |
None
|
IDUI
|
IDLE
|
DL_Update_Reply request andAccess()"OK
|
DL_Updatc_Reply.confirm ( L_SSAP=L_SSAP (Req), Srat - OK, OldLSDU-SAVED_ISDU) SAVID.,LSDU:-LSDU |
田峨
|
Ⅱ)LE
|
DL_Updm_Reply request and Access () OOK
|
DL_Update reply.confirm ( L_SSAP=L_SSAP (Req), Stat=At,cers ()r L}DU=NULL) |
Ⅱ)LE
|
IDLE
|
MAJDataindication( type= cmd -NA IUld Reply bit=0) and Rceive_Status()-OK
|
DI_Datrjndicrdon ( L_SSAP=P_SSAP, L_PSAP=P_PSAP, L_SA=MSA, LDAM=DA, L_;SDU =L_SDU) |
IDLE
|
IDLE
|
MA_Datahdicariw ( type-cmd-NA and Reply bit=l) andReceiv_states () -OK
|
DL_Data.indicatum ( L_SSAP=P_SSAP, L_DSAP=P_DSAP, L_SA=M;SA, L_IDA =M_DA, L=SDU=L_SDIJ) DL_Updatt_Replymdicatian ( L_SSAP-P_SSAP, L_DSAP=P_DSAP, LSA-M_SA. L_DA= M_DA, Len = Qual) |
IDIE
|
16
表2(续)
初状态 |
事 件 |
动 作 |
鼍终状右 |
IDLB
|
MA_Data,indication ( type=cmd-AC) andRece;wUStatus () -OK andAcccss () =OK
|
Updconkxt () Buildj.PDU ( P_SSAP=P_DSAP (imL), P_DSAP=P_SSAP (ind ), Cmd =AC, C/R=R, Qual=OK, L_SDU =SAVED_LSDU) MA.J)ara.requcst ( M_DA=M_SA, M_SDU =L_PDU |
RESPW
|
IDLE
|
MA_Daf:a.indication( typc =cmd _AC) and Receice_Sratus()=OK and Access()=OK
|
Update_Context () Build_PDU ( P_SSAP=P_DSAP (ind ), P_DSAP=P_iSSAP (ind.) Cmd =AC, C/R=R, (lual=Accesa (), L_SDU=NULL) MA_Data.request ( MDA=NLSA (ind.), M_SDU=L_PDU Sc=o) |
RBSP.W
|
RHSPW
|
MA_Dat&confum Iu:td Access()一OK
|
DL_Rcply.indication ( Em尬LContext LDSAP=L_LSAP, L_SSAP=L_RSAP, L_DA = LJ A, L_SA = L_RA, Stat= M_TStat, L_SDU=L_SDU) |
IDLE
|
RESPW
|
MA.Dakconfitm andAcccss()oOK
|
DL_R印ly.indication ( Extract_Conttxt L_PSAP=L_LSAP, L_SSAP=LdRSAP, LJ)A = L_IA, L_SA = L_RA , Stat=Acccss (), L SDU=NULL) |
IDLE
|
5.3转移表描述
5.3.1 发送方状态描述
发送方定义了六种状态:
-IDLE;
-SDN,无应答发送数据过程;
-BRO,广播传输:
-SDN.W.发出一个NA命令后等待本地确认;
-RDR,AC命令请求返回数据的过程;
-RDR.W,发送一个AC命令后等待本地确认。
在I=DLE状态.LLC子层实体准备接收和处理将要收到的原语。
在SDN状态,LLC子层实体校验提交的DL_Data.request能否被处理,它特别要检查原语中提交的参数及所需资源。SDN状态图如图9所示。
图9 SDN状态图
在BRO状态,LLC子层实体检验提交的DL.- BroadcasLrequest能否被处理,它特别要检查原语中提交的参数及所需资源。
在SDN.W状态,LLC子层实体等待对先前发山的MA_Data.request的本地确认。
在RDR状态,LLC子层实体检验提交的DL_Reply.request能否被处理,它特别要检查原语中提交的参数及所需资源.RDR状态图如图10所示。
在RDRW状态,LLC子层实体等待对先前MA_Reply.request的本地确认。
图10 RDR状态图
增加一个第七状态是离线状态以取得一致性,这里称作Config状态.
5.3.2接收方状态描述
接收方定义了三种状态:
-IDLE;
-UPD,更新过程;
-RESPW.AC命令的响应过程。
在IDLE状态,LLC子层实体准备接收和处理到达的多个L_:PDU。在UPD状态,LLC予层实体验证DL_Update_Reply.request能否被处理。它特别要检查与LSAP相关的,存贮等待L_SDU的缓冲区能否访问,在RESPW状态,LLC子层实体等待即将发出的响应的一个本地确认。
增加第四状态是离线状态以取得一致性,这里称作Config状态。
5.3.3状态表中使用的符号
5.3.3.1数据链路原语使用的符号
本条款定义了在状态表中使用的、传递给LLC用户的数据链路原语参数的缩略语。
-L_SSAP,数据链路原语中源用户服务访问点参数;
-L DSAP,数据链路原语中目的用户服务访问点参数;
-L_SA,数据链路原语中源物理地址;
-L_DA,数据链路原语中目的物理地址:
-L.Tstat,数据链路原语中Transmission_Status;
-L_SDU,数据链路原语中传递给LLC用户的L_SDU。
图11接收方状态图
5.3.3.2数据链路协议数据单元使用的符号
本条款定义在状态表中使用的、传递给MAC子层实体的数据链路协议数据单元的参数缩略语.
-P_SSAP,LJ'DU的SSAP域;
-P_DSAP,LPDU的DSAP域;
-OR,L--PDU控制域的命令,响应位:
-Cmb.L_PDU控制域的命令子域;
—lual,L_PDU控制域的限定子域;
-L_SDU,L_PDU的数据域.
5.3,3.3介质访问原语中使用的符号
本条款定义了状态表中使用的、传递给LLC用户的介质访问原语的缩略语.
-M_SA,MA原语中的源物理地址;
-MJ)A,MA原语中的目的物理地址:
-M_TStat,MA原语中的TransmislsiorLStatus;
-M_SDU.MA原语中传递给LLC用户的M_SDU;
-sc.与MA_Data.request相关的服务级别.
为清楚表示状态袭,可以在上述列表中增加L_PDU参数。这些参数是从MA原语中的M_SDU域中抽取的。
5.3.4状态变量
5.3.4.1 Context
对于本地LLC状态机的每次调用,都有特定Context变量与之对应。
Context变量按次序包含;c__RSAP.CJ.SAP, C_RA以及可能的由当前LLC调用所处理请求的C-LA。
5.3.4.2 SAVEDJ,SDU
SAVED_LSDU变量是—个抽象变量,依附于每个LSAP.等待传输的J;_SDU存储在SAVEDJ.SDU变量中.SAVED_LSDU变量可设置为空,表示在一个特定的LSAP没有L_SDU在等待.
5,3.5状态函数
5.3.5.1 LocaI_Status()
如果有关的SSAP的一个或多个服务是可用的.LocaLStatus函数返回VALID.否则LocaLSttLtua函数返回INVALID。
这个函数检查由管理应用层处理过的管理变量.
5.3.5.2 Check()
Check函数返回一个指示,表明参数域的处理是成功还是失败,脐需资源是否可用.
可能的返回值是:
-OK.参数域被成功处理,资源可用;
-LLm,请求的服务在本地LLC子层实体未实现;
-LL_TU,本地链路资源暂不可用;
-LL_SE,提交的原语中有语法错误
-LL HF,硬件故障
-LL_TE.执行出错.
5.3.5.3 Receive~tatus()
Receiw_Status函数返回一个指示,表明接收到的L_PDU数据域的处理是成功还是失败.这里假定,任何时候当MA_Data.indication原语传递给LLC时,LLC的头肯定已经成功接收.
可能的返回值是
-OK.信息域被成功处理;
-RL TU,对数据域而亩,资源暂时不可用l
-RLNl,数据接收未实现或未启动;
-RL_HF,硬件故障,信息未能传到用户;
-RL_IE.执行出错;
-RL_SBJ到达的L_PDU中有语法错误.
5.3.5.4 Aeees:()
Access函数返回一个指示,表明与接收到的命令LJ:,DU中指定的DSAP相关的一个等待L_SDU
是否能够被包含到—个响应L_PDU中。
可能的返回值是下列全局值之一;
-OK,L_SDU存在,并且可被快速访问,以便将它包含在一个响应PDU中;
-RL TU,访问L_SDU的资源暂时不可用;
-RL_M,数据接收未实现或未启动
-RL_HF,’硬件故障阻碍从用户传输信息
-RL_IE,L_SDU的返回未实现或未启动(实现出错);
-RL_SE.到达的LJ'DU有语法错误.
或与应答服务相关的某个特定出错返回值:
-RL__ LE,允许的长度与L_SDU长度不匹配
-RLJNS,用户没有提交响应L-SDU。
5.3.6动作描述
5..3.6.1 Update_Context()
这个函数将目前进程的所有Context变量的参数保存起来.这些参数是CRSAP、C_LSAP、C_RA以及可能存在的C_LA。
5.3.6.2 Construct_Context()
该函数返回用于建立一个DL_Broadcast,requdst原语Context变量的参数,这些参数是DSAP及Remote- address.DSAP被设置成对应于Secvice_clan参数的L_SAP组地址.RemoteAldress被设置成ALL.
5.3.6.3 Extract_C岫舱t()
该函数返回Context变量的参数。这些参数依次是C_RSAP.C_LSAP、C_RA以及可能存在的CLA.
5.3.6.4 Reply_Req()
这个函数返回一个限定域,它包含应答比特和传输SAYE变量中的等待L_rSDU所需的长度.如果没有L_SDU处于等待,返回空值。如果一个L;SI)U处于等待且没有对它读取,则应答比特设置为1.
5.3.6.5 SAVE_LSDU, =LSDU
与相关DL_Update_Rcp.Jy rrquest原语一起给出的I_SDU保存在一个抽象位置SAVE_ LSDU处等待传输。SAVE_LSDU位置与琢语中特定的LSAP相关。新的LSDU取代LSAP先前存储的任何L_SDU.新的L- SDU的长度与先前DL_Update_Replyindication原语中的请求长度由LLC用户协调一致.
2539