数据链路层逻辑链路控制.docx
《数据链路层逻辑链路控制.docx》由会员分享,可在线阅读,更多相关《数据链路层逻辑链路控制.docx(46页珍藏版)》请在冰点文库上搜索。
数据链路层逻辑链路控制
目 次
前言
1 总则
1.1 范围和目的
1.2 规范性引用文件
2 LLC服务规范
2.1 交互概述(OverView)
2.2 DL_Data.request
2.3 DL_Data.confirm
2.4 DL_Data.indication
2.5 DL_Reply.request
2.6 DL_Reply.confirm
2.7 DL_Reply.indication
2.8 DL_Update_Reply.request
2.9 DL_Update_Reply.confirm
2.10 DL_Update_Reply.indication
2.11 DL_Broadcast.request
3 LLC与MAC子层接口
3.1 概述
3.2 MA_Data.request
3.3 MA_Data.confirm
3.4 MA_Data.indication
4 LLC协议数据单元结构(LLC_PDU)
4.1 概述
4.2 LLC_PDU格式
4.3 控制域
4.4 地址域
4.5 无效LLC_PDU
5 LLC过程描述
5.1 概述
5.2 发送方和接收方状态表
5.3 转移表描述
前 言
随着我国城乡电网改造事业的发展,对配电自动化的要求已日益迫切。
与传输配电自动化信息的其他通信方式相比,配电线载波可以降低建设投资和运行费用,便于管理,是一种经济实用的通信方式。
但配电网结构复杂,信号传输衰减大,采用配电线载波在技术上有一定难度。
国外在20世纪70年代开展了这方面的研究工作,有相关产品问世。
我国在20世纪90年代也开展了这方面工作,在一些城市进行了试点。
从1995年起,国际电工委员会陆续发布了IEC61334系列的国际标准或技术报告。
将这些文件采用为我国的标准文件对于我国这方面工作的开展有很好的指导意义,便于和国际接轨。
IEC61334《采用配电线载波的配电自动化》是一个标准文件系列,包含以下5部分:
IEC61334–1 第1部分:
总则
IEC61334–3 第3部分:
配电线载波信号传输要求
IEC61334–4 第4部分:
数据通信协议
IEC61334–5 第5部分:
低层协议集
IEC61334–6 第6部分:
A-XDR编码规则
每一部分又包含若干部分,到制订本标准时止,有20余部分已发布。
这些文件将逐步被采用为我国电力行业标准或标准化指导性技术文件。
第4部分包含以下8部分,本部分描述的数据通信协议不仅适用于配电线载波,也可用于其他通信介质。
IEC61334–4–1:
1996 第4–1部分 通信系统的参考模型
IEC61334–4–32:
1998 第4–32部分 数据链路层—逻辑链路控制
IEC61334–4–33:
1998 第4–33部分 数据链路层—定向连接规约
IEC61334–4–41:
1996 第4–41部分 应用协议—配电网报文规范
IEC61334–4–42:
1996 第4–42部分 应用协议—应用层
IEC61334–4–61:
1998 第4–61部分 网络层—无连接规约
IEC61334–4–511:
1999 第4–511部分 系统管理—CIASE规约
IEC61334–4–512:
1999 第4–512部分 采用61334–5–1文件的系统管理MIB
本部分等同采用IEC61334–4–32:
1996《采用配电线载波的配电自动化第4–32部分:
数据通信协议 数据链路层—逻辑链路控制》(英文版)。
本部分由中国电力企业联合会提出。
本部分由全国电力系统控制及其通信标准化技术委员会归口。
本部分由国家电力公司电力自动化研究院负责起草,中国电力科学研究院、北京哈德威四方公司参加起草。
本部分主要起草人:
于跃海、吴福保、任雁铭、刘佩娟、谭文恕。
采用配电线载波的配电自动化
第4–32部分:
数据通信协议
数据链路层—逻辑链路控制
1 总则
1.1 范围和目的
本部分描述了数据通信协议(DCP)逻辑链路控制(LLC)子层实体与应用层和MAC子层在逻辑接口上应实现的服务。
通常,一个层(或一个子层)的服务是它提供给下一层用户的能力。
一个层(或一个子层)通过调用低层提供的服务来构建本层的服务。
通过描述应用层和MAC子层之间的信息流来说明服务,即对表征各个服务的服务原语和参数进行描述。
这些原语与无连接传输有关。
注1:
本标准参照IEC61334–4–1中描述的三层参考模型(如图1所示),但可以制定相应的规定以适应将来模型扩展至超过3层。
注2:
为了将来扩展到面向连接的传输,本标准也作出了相应规定。
在本部分中,参考了GB/T9387的OSI参考模型。
图1 参考模型关系
1.2 规范性引用文件
下列文件中的条款通过本部分的引用而成为本部分的条款。
凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分。
然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。
凡是不注日期的引用文件,其最新版本适用于本部分。
DL/T790.41—2002 采用配电线载波的配电自动化第4部分 数据通信协议第1篇 通信系统参考模型(idtIEC61334–4–1:
1996)。
GB/T9387信息处理系统—开放系统互连—基本参考模型(IDTISO/IEC7498)。
2 LLC服务规范
本条描述了应用层所要求由LLC子层提供的服务。
这些服务允许本地应用层实体通过使用DCPLLC操作,在逻辑链路控制子层和远程对等应用层实体交换数据包。
下面是这些服务的抽象描述。
2.1 交互概述(OverView)
2.1.1 基本服务
为了进行数据传输,OSI模型中的三种基本服务如下:
——DL_Data.request
——DL_Data.confirm
——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_Reply.indication
——DL_Update_Reply.confirm
——DL_Update_Reply服务的目的是准备DL_Reply服务。
更新—响应如图3所示,请求响应数据如图4所示,传输例子如图5所示。
图3 更新—响应
图4 请求响应数据
图5 传输例子
2.1.3 管理服务
提供了一个服务用于管理:
——DL_Broadcast.request
这个服务使用了MAC子层实体的广播功能。
该服务用于向所有对等LLC子层实体传输很少的数据。
2.2 DL_Data.request
2.2.1 功能
通过使用LLC传输过程,DL_Data.request原语被传递给LLC子层实体以请求发送一个L_SDU给一个或多个远方LLC子层实体。
2.2.2 结构
该原语的语义如下:
DL_Data.request(
Destination_LSAP,
Source_LSAP,
Destination_address,
L_SDU,
Link_class
)
Source_LSAP和Destination_LSAP参数描述了数据单元传输中本地和远方的LSAP。
Destination_address参数描述了数据单元传输中的远方工作站的地址。
L_SDU描述了LLC子层实体传输给一个或多个对等LLC子层实体的链路数据单元。
Link_class参数保留,用于将来扩展DL_Data传输服务。
2.2.3 使用
当传输数据到一个对等应用层实体或多个对等应用层实体时,该原语由应用层实体产生。
当接收到该原语时,LLC子层实体填充所有LLC特定的域,并将组成的L_PDU传递给协议的低层,用于传输给对等的一个或多个LLC子层实体。
该原语的接收将产生一个MA_Data_request原语,用于传递给MAC子层实体。
2.3 DL_Data.confirm
2.3.1 功能
DL_Data.confirm对传输的L_PDU发出一个本地确认。
这个原语只在本地才有意义。
该原语给发出DL_Data.request原语的应用层实体提供一个恰当的响应来指示请求在本地是成功还是失败,请求的成功或失败由协议的低层指明。
2.3.2 结构
该原语的语义如下:
DL_Data.confirm(
Destination_LSAP,
Source_LSAP,
Destination_address,
Transmission_Status
)
Source_LSAP和Destination_LSAP参数表示数据单元传输中的本地和远方LSAP。
Source_LSAP参数表示先前发出DL_Data.requst原语以及接收确认信息的LSAP。
Destination_address参数表示数据单元传输中远方工作站的地址。
Transmission_Status参数给本地发出请求的应用层实体回传状态信息,用于指示先前相关的DL_Data.request原语的成功或失败信息。
2.3.3 使用
生成该原语来把对一个DL_Data.request原语的响应回传给本地应用层实体。
该原语在本地MAC子层实体发出的一个MA_Data.confirm服务到来时产生。
假定应用层实体可获得足够信息以适当的请求与响应关联。
2.4 DL_Data.indication
2.4.1 功能
DL_Data.indication原语从LLC子层传递给应用层的一个或多个实体,指示一个L_PDU的到达。
该原语定义了从LLC子层实体到单个或多个应用层实体的数据传输。
2.4.2 结构
该原语的语义如下:
DL_Data.indication(
Destination_LSAP,
Source_LSAP,
Destination_address,
Source_address,
L_SDU,
Link_class
)
Destination_LSAP和Source_LSAP参数表示数据单元传输中的本地和远方LSAP。
Destination_LSAP可以是到来的L_PDU中所指定的单地址或一个组地址。
Destination_address和Source_address参数表示数据单元传输中的本地址和远方工作站的地址。
Destination_address可以是一个单地址或一个组地址。
L_SDU参数指明了LLC子层实体接收到的链接服务数据单元。
Link_class参数保留,以便将来扩展DL_Data传输服务。
2.4.3 使用
DL_Data.indication从LLC子层实体传递给单个或多个应用层实体,指示一个MA_Data.indication从远程数据链接用户实体到达本地LLC子层实体。
只有当Destination_address用一个组地址或单地址指定其中一个本地LSAP,才会上报L_PDU。
2.5 DL_Reply.request
2.5.1 功能
DL_Reply.request原语被传递给LLC子层实体以请求从一个远程工作站返回一个已经准备好的L_SDU。
2.5.2 结构
该原语的语义如下:
DL_Reply.request(
Destination_LSAP,
Source_LSAP,
Destination_address,
Length_allowed
)
Source_LSAP和Destination_address参数表示数据单元信息交换中的本地和远程LSAPs。
Destination_address不应是一个组地址。
Destination_address参数指明了数据单元传输中的远程工作站地址。
Destination_address不应为一个组地址。
Length_allowed参数表示远方LLC用户允许返回的L_SDU的最大长度。
2.5.3 使用
当该原语产生时,该原语从本地LLC子层实体传送给远方LLC子层实体,请求传输先前形成的L_SDU。
L_SDU的长度不应超过参数Length_allowed。
该原语的接收(如果有效)将产生一个MA_Data.request原语传输给对等LLC子层实体。
2.6 DL_Reply.confirm
2.6.1 功能
DL_Reply.confirm原语从LLC子层传递给一个或多个应用层实体,指示已经用DL_Reply.confirm原语请求的一个L_PDU的到来。
DL_Reply.confirm原语定义了从LLC子层实体到应用层实体的数据传输。
2.6.2 结构
该原语的语义如下:
DL_Reply.confirm(
Destination_LSAP,
Source_LSAP,
Destination_address,
Source_address,
Transmission_Status,
L_SDU,
)
Destination_LSAP和Source_LSAP参数规定数据单元传输中的本地和远程LSAP。
Destination_LSAP和Source_LSAP不应是一个组地址。
Destination_address和Source_address参数表示数据单元传输中的本地址和远程工作站的地址。
Destination_address和Source_address都应是单地址。
Transmission_Status参数用于给先前发出DL_Reply.request原语的本地应用层实体回传状态信息。
它用于指示先前相关的DL_Reply.request原语的成功或失败。
L_SDU参数指明了由LLC子层实体接收的链路数据单元。
2.6.3 使用
DL_Reply.confirm由LLC子层实体传递给一个或多个应用层实体,用于指示在传输了一个DL_Reply.request原语之后,由一个远程数据链路用户实体到本地LLC子层实体到达了一个MA_Data.indication。
这个服务原语传递给应用层实体接收到的L_SDU或失败的原因(Transmission_Status)。
只有Destination_address指定一个本地的LSAP,L_PDU才会上报。
2.7 DL_Reply.indication
2.7.1 功能
DL_Reply.indication原语被传递给应用层,用于指示本地LLC子层实体已成功发送一个先前准备好的、由远程LLC用户请求的一个L_SDU。
同时它也指示了远程LLC用户启动了一个DL_Reply.request并且传输了一个响应。
2.7.2 结构
该原语的语义如下:
DL_Reply.indication(
Destination_LSAP,
Source_LSAP,
Source_address,
Transmission_Status,
L_SDU
)
Destination_LSAP参数指定了先前发出一个DL_Update_Reply.request原语和指示要发送到的LSAP。
这个LSAP不应是一个组地址。
Source_address参数指定了发出DL_Reply.request原语的工作站的地址。
Transmission_Status参数用于给先前发出请求的应用层实体回传状态信息。
它指示先前的L_SDU传输成功或失败。
L_SDU参数指明在响应中发送的链路数据单元。
这个L_SDU必须和DL_Update_Reply.request原语先前准备的L_SDU一样(见第4章)。
2.7.3 使用
接收到由远程LLC子层实体发出的DL_Reply.request,本地LLC子层实体用一个MA_Data.request发起对所请求的L_SDU的传输。
这个DL_Reply.indication原语在接收到相应的MA_Data.confirm时产生,然后该原语指示先前被发送的L_SDU的传输。
这里假定应用层实体可以获得足够的信息,将DL_Reply.indication和有关的DL_Update_Reply.request关联。
2.8 DL_Update_Reply.request
2.8.1 功能
DL_Update_Reply.request原语和一个L_SDU一起传递给LLC子层。
这个L_SDU将由LLC子层实体保持,在其他工作站请求发送时,被发送。
2.8.2 结构
该原语的语义如下:
DL_Update_Reply.request(
Source_LSAP,
L_SDU
)
Source_LSAP参数指定了与数据单元的准备相关的本地LSAP。
它指示是哪一个LSAP发出了该请求。
注:
没有定义Destination_address。
每个远方工作站可以请求本地LLC子层传送正处于等待状态的L_SDU。
L_SDU参数指明了将由LLC保持的链路服务数据单元,该数据单元为收到请求时被传输而做准备。
L_SDU可以为空。
2.8.3 使用
这个原语由应用层实体传递给LLC子层实体,将L_SDU与本地LSAP相关联。
它给远程用户指示了该L_SDU的存在。
注1:
通过将所有即将发出的L_PDU的Reply域设置成一个非零值,向远方工作站报告存在一个等待中的L_SDU。
这个值规定了该等待中的L_SDU的长度。
注2:
应用层实体必须管理传递给LLC子层实体的DL_Update_Reply.request原语,从而避免不希望的重写。
LLC子层实体并不检验是否存在一个先前被发送给本地LSAP的L_SDU。
2.9 DL_Update_Reply.confirm
2.9.1 功能
DL_Update_Reply.confirm服务从LLC子层实体传送到应用层实体,以传递先前相关的DL_Update_Reply.request原语的结果。
2.9.2 结构
该原语的语义如下:
DL_Update_Reply.confirm(
Source_LSAP,
Status,
Old_L_SDU
)
Source_LSAP参数指明与链路服务数据单元的准备相关的本地LSAP。
Status参数指示先前相关的数据单元准备请求是成功或失败。
Old_L_SDU参数指定当前由LLC保持的链路服务数据单元。
这个参数向应用层指示了先前的为稍后收到请求时被传输而准备的L_SDU的值。
2.9.3 使用
这个原语由LLC子层实体传递给数据链路层用户,表示先前数据单元准备请求是否成功。
如果状态是成功的,这个原语向应用层实体指示LLC子层实体拥有由和本地LSAP相关的DL_Update_Reply.request所提交的L_SDU。
所有即将发送的L_PDU,如果是由该LSAP发出的DL_Data.request而产生的,都会包含一个非零的Reply子域。
这个子域向一个或多个对等LLC实体指示存在一个等待的L_SDU,直到接收到一个新的带有空的L_SDU的DL_Update_Reply.confirm为止。
失败状态指示与本地LSAP相关的L_SDU不可保持和失败原因。
注:
同一时刻,在一个LSAP上,只有一个L_SDU可以等待传输。
一个DL_Update_Reply.request原语将重写一个先前设定的L_SDU。
为了使DL_Update_Reply.confirm原语能传递有用信息,要求在DL_Update_Reply.request及DL_Update_Reply.confirm中传递足够的隐含上下文信息,以便数据链路用户知道先前请求的状态。
2.10 DL_Update_Reply.indication
2.10.1 功能
DL_Update_Reply.indication原语从LLC子层传递给应用层实体,指示在对等数据链路层存在一个等待L_PDU,这个原语请求应用层启动一个DL_Reply服务过程。
2.10.2 结构
该原语的语义如下:
DL_Update_Reply.indication(
Destination_LSAP,
Source_LSAP,
Destination_address,
Source_address,
Length_requested
)
Destination_LSAP和Source_LSAP参数指定了数据单元传输中的本地和远方LSAP。
Destination_LSAP应是到来的L_PDU中所指定的那个单地址。
Destination_address和Source_address参数指定了数据单元传输中本地和远方工作站的地址。
Destination_address应是一个单地址。
Length_requested参数指示在远方工作站上存在一个等待传输的L_SDU及其长度。
2.10.3 使用
DL_Data.indication从LLC子层实体传递给应用层实体以指示来自于一个远程数据链路用户实体的一个MA_Data.indication已经到达。
到达帧的限定域的第一个比特指示在远方数据链路实体有一个等待的L_PDU。
只有Destination_address指定一个本地LSAP的单地址时,L_PDU才会上报。
2.11 DL_Broadcast.request
2.11.1 功能
本原语定义了从一个本地系统管理应用实体到所有对等系统管理应用实体的数据传输。
可能的寻址方式只能是广播。
本服务为管理而设计。
2.11.2 结构
该原语的语义如下:
DL_Broadcast.request(
Source_LSAP,
L_SDU,
Service_class
)
Source_LSAP参数指明数据单元传输中本地LSAP。
这个LSAP必须特指一个应用实体。
L_SDU参数指明由LLC子层实体传输给对等LLC子层实体的链路数据单元。
Service_class参数指明MAC子层实体用于传输L_PDU的帧类型。
Service_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_Data.confirm
——MA_Data.indication
3.2 MA_Data.request
3.2.1 功能
该原语定义了从一个本地LLC子层实体到一个对等LLC子层实体或组地址情况下多个对等LLC实体的数据传输。
3.2.2 结构
该原语的语义如下:
MA_Data.request(
Des