EncapLength、EncapData 针对 RFC1483Bridged、RFC1483Routed、ATMARP 等协议的规定进行相应初始化及数据填充,供底层驱动在封装、解封装时直接作为依据。
PCookie 是 muxBind 底层设备驱动后返回的设备索引号,以便系统卸载网络服务子层时可解除该绑定。
Ifp 是网络服务子层 Attach至协议栈时返回的子网接口索引号,以便系统卸载该 Service 时可解除绑定。
6.2.3 Service 协议数据收发流程
Service 正确绑定至协议栈后,就可以接收SAR END驱动层传入的该协议类型数据报文并对其处理,根据处理的结果选择转发或丢弃;对于协议栈下发的报文,也可以方便地进行相应协议封装,再交给 END驱动发送。其收发流程框图如图 6-1 所示。
图6-1 Service 收发流程示意图
接收流程(虚线箭头所示):
1)SAR 模块收到报文,产生中断,进入接收中断处理例程
2)调用END_RCV_RTN_CALL将报文返回给协议栈(reserved 中存放协议类型)
3)MUX层询问该报文的协议类型
4)SAR驱动层将 reserved 中的类型返回给MUX层
5)MUX层根据协议类型将报文提交给相应的 Service.
6)Service 解封装后,调用 do_protocol_with_type将报文提交给协议栈
发送流程(实线箭头所示):
1)协议栈通过MUX层发送报文
2)MUX 层将报文传给预先绑定的 Service
3)Service 对数据进行封装后,return False,将数据返回 MUX 层
4)MUX 层将数据发送到 SAR 模块相应的 PVC 接口
5)SAR 模块相应的 PVC 接口发送该报文。
6.3 RFC1483协议报文处理
由于 RFC1483数据报文的封装格式比较简单,我们将该类型报文的封装、解封装例程放在 END 驱动中实现,以提高系统对该类型报文的处理效率。
6.3.1 RFC1483 报文封装格式
RFC1483 标准描述了ATM网络上承载无连接网络互连业务(即路由和桥接的协议数据单元)的两种不同方法。第一种方法允许在一条 ATM 虚电路上复用多个协议,这是需要在所传送的 PDU 前加上 IEEE802.2 逻辑链路控制信头,以此来表示所传递的 PDU 的协议,这种方法称为 LLC 封装; 第二种方法是一个高层协议由一条ATM虚电路来承载,这种方法成为基于 VC 的复用。
6.3.1.1 LLC 封装
在 LLC 封装中,路由协议通过在 PDU 前加一个IEEE802.2 LLC 信头来进行标识, IEEE802.2 LLC 信头后接 IEEE802.1a 子网络附属点(SNAP)信头。在 LLC 类型 1 的操作中,LLC 信头包括 3 个字节,如下:
DSAP
SSAP
CTRL
在用于路由协议的LLC 封装中,LLC信头编码有两种格式:一种为 0xFE-FE-03, 用于说明后接的是 ISO 路由协议的 PDU;另一种为 0xAA-AA-03,用于说明后接的是非 ISO 路由协议。控制字段编码为 0x03,用于说明后接的是无编号信息的命令 PDU。
对于 ISO 路由协议PDU,其AAL5 CPCS-PDU 净荷字段的格式为
LLC 0xFE-FE-03
ISO PDU (up to 2^16 - 4 octets)
对于非 ISO 路由PDU (如 IP 协议),其封装格式为
LLC
0xAA-AA-03
OUI
00-00-00
Ethernet Type(2字节)
非ISO PDU (up to 2^16 - 4 octets)
(其中,如果是 IP 报文的话,Ethernet Type 值为 0x0800)
对于桥接协议报文,在 LLC 封装的 SNAP 信头中应标识出桥接媒体的类型。与非 ISO 路由协议的封装一样,LLC信头编码值 0xAA-AA-03 表示存在 SNAP 信头, SNAP 信头中的OUI值是 802.1组织编码 0x00-80-C2,桥接媒体的实际类型由2字节的 PID 来标识。此外, PID还标识是否在封装的桥接 PDU 中保留源帧校验序列(FCS)。以最常见的以太网/802.3为例,用于封装 802.3 PDU的AAL5 CPCS-PDU净荷帧格式如下
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典计算机ADSL接入及共享技术的实现(二)在线全文阅读。
相关推荐: