【LLC】逻辑链路控制

概述

逻辑链路控制(logical link control,LLC)层位于OSI网络模型的数据链路层,由IEEE802.2标准定义,用户的数据链路服务通过LLC子层为上层(IP层)提供统一的接口,提供给其他802协议(e.g. 802.3, 802.11,etc)使用。MAC可以在LLC层的支持下执行寻址方式和网络层协议识别功能,然后进行封装。

通过LLC层,可以实现不同类型网络的数据交互。比如以太网、无线网等的相互转换。

【LLC】逻辑链路控制_第1张图片

 802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet II(ARPA)发展而来。它将Ethernet II帧头的(上层)协议类型字段替换为帧长度字段(取值为0000 05dc;十进制的1500);因此相比Ethernet II,缺少协议类型指示。故加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Control字段,但是能表示的协议类型数量有限。

802.3/802.2 SNAP:这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3Bytes的OUI字段用于代表不同的组织。

LLC封装方式

封装LLC 数据的方式有两种。

  • RFC 1042(又称IETF封装)
  • 802.1h(又称隧道式封装(tunnel encapsulation))

RFC 1042 与802.1h 均衍生自802.2 的SNAP(sub-network access protocol),SNAP作为逻辑链路控制标准的一部分,主要用来在 IEEE 802 网络上封装IP数据包、地址解析协议(ARP)的请求和答复。802.11h 与RFC 1042 之间的唯一差异,在于使用的OUI。

有些产品可以让使用者在两种封装标准间进行切换,虽然这种功能并不常见。以Microsoft操作系统而言,AppleTalk 与IPX 协议组预设使用802.1h,其他协议则使用RFC 1042。目前大部分基站均依循Microsoft 的做法,不再提供封装方式的切换选项。事实上,由于Microsoft所采用的封装方式得到广泛的支持,因此Wi-Fi 联盟的认证测试计划亦将它包含在内。

【备注】因此实现时可以在处理AppleTalk时采用802.1h,而其他时候采用RFC 1042

帧格式

L3数据到达LLC层会添加LLC子字段和SNAP子字段。

LLC层封装成802.2头,其中:

  • 802.2 header = LLC + SNAP
  • LLC = DSAP + SSAP +CTRL
  • SNAP = OUI + ETHER_TYPE

对于SNAP封装而言,DSAP和SSAP字段值通常均为0xAA;Control字段值通常为0x03;RFC1042封装的OUI通常为0x0000,而802.1h封装该字段则为0xF800;ETHER_TYPE则从以太网帧类型复制而来。

【LLC】逻辑链路控制_第2张图片

fileds

Bytes

description

DSAP

1

指示目的服务访问点(Destination Service Access Point, DSAP)。

DSAP的格式(I/G|D|D|D|D|D|D|D),I/G位表示地址类型,I/G=0表示Individual地址,I/G=1表示是group地址。

常见SAP

编码

IBM SNA

0x04

IP

0x06

3Com

0x80

SNAP

0xAA

Banyan

0xBC

Novell

0xEC

Lan Manager FE -CLNS

F4

对于SNAP封装而言,该字段通常为0xAA

SSAP

1

指示源服务访问点(Source Service Access Point, SSAP)。

SSAP格式为(C/R|S|S|S|S|S|S|S),C/R=0表示Command,C/R=1表示response。

对于SNAP封装而言,该字段通常为0xAA

Control

1or2

指示LLC帧类型。高2位指示帧类型。

LLC定义了三种帧:Information帧(I帧)、Supervisory帧(S帧)和Unnumbered帧(U帧)。不同帧类型其控制字段的长度不一样。

LLC帧类型

对应控制字段长度

适用场景

Information帧(I帧)

2bytes

用于面向连接的应用

【LLC】逻辑链路控制_第3张图片

Supervisory帧(S帧)

2bytes

用于在LLC层中进行管理监督

【LLC】逻辑链路控制_第4张图片

Unnumbered帧(U帧)

1bytes

特别用于无连接的应用,用于以太网

【LLC】逻辑链路控制_第5张图片

其中只有U帧被广泛使用。该字段通常为0x03

OUI

3

指示标准组织代码(organizationally unique Identifier, OUI)。

IP 以RFC 1042 标准封装于LLC;RFC1042规定使用OUI 0x00-00-00。(有些厂商或许会使用特定的OUI 作为专属系统传输之用。)

Type

2

指示后续数据的协议类型。通常对应Ethernet的类型代码。

例如0x0800用于封装IPv4或者0x86DD来支持IPv6。

 注:DSAP和SSAP是逻辑地址,标识数据链路层的服务访问点,以指示LLC通讯信息所属的服务。

【LLC】逻辑链路控制_第6张图片

LLC通信操作类型

LLC 是在高级数据链路控制(High-Level Data-Link Control, HDLC)的基础上发展起来的,并使用了 HDLC 规范子集。LLC 定义了三种数据通信操作类型:

数据通信操作类型

说明

类型1

无连接。该方式对信息的发送通常无法保证接收。

类型2

面向连接。该方式提供了四种服务:连接的建立、确认和承认响应、差错恢复(通过请求重发接收到的错误数据实现)以及滑动窗口(系数:128)。通过改变滑动窗口可以提高数据传输速率。

类型3

无连接承认响应服务。

其中:

类型1的 LLC 无连接服务中规定了一种静态帧格式,并支持运行网络协议。有关传输层网络协议通常是使用服务类型1方式。

类型2的 LLC 面向连接服务支持可靠数据传输,运用于不需要调用网络层和传输层协议的局域网环境。

其他

对于802.11,LLC层利用MAC传送LLC PDU。MAC层则利用以下三种基础命令来提供服务。LLC三种基础命令如下:

命令

说明

MA-UNITDATA request

LLC利用MA-UNITDATA request来要求MAC将一个PDU传送给一个或多个指定的LLC。

MA-UNITDATA indication

接收端的MAC收到一个PDU后,通过MA-UNITDATA indication来通知上层的LLC

MA-UNITDATA-STATUS indication

接收端的LLC的响应返回后,发送端的MAC利用MA-UNITDATA-STATUS indication来提供该请求的结果(成功/失败)

你可能感兴趣的:(通信原理,网络,网络协议)