详谈H.323协议的协议栈开发(1)


前面我们分析了一些协议,以及协议栈的内容。相信大家也都了解了H.323协议的内容了。那么这里我我们就针对这个协议栈开发内容进行一下讲解。开发H.323协议栈是通信设计过程中的一项极其艰巨的任务,难点主要在于:复杂的协议栈开发需要投入数年的工程设计资源,而且掌握这些复杂的标准还需要一个知识的积累和学习过程,本文将探讨开发H.323协议栈和VoIP应用系统遇到的问题、歧义、困难等。

利用基于原语(primitive)的H.323协议栈开发IP承载话音(VoIP)应用系统不是一项小任务,因为创建一个鲁棒的应用系统,需要花很多时间去研究含糊的标准和复杂的状态机。

本文用例子说明流程的实现以及原语(primitive)的定义,用以说明如何构建一个基于原语接口的应用系统和一个基于简单接口的替代方案。在开发协议栈之前,建议浏览一下H.323的基本标准。H.323是国际电信联盟(ITU)颁布的标准,由一系列特定协议组成,包括Q.931、H.225、H.245和ASN.1。为了提供呼叫信令功能,H.323部分融合了H.225和Q.931标准。H.245定义了多个流程,以便于进行能力信息互换(exchange capability)、主从判断(master-slave determination)和信道(channel)信令。最后,ASN.1规定了数据格式,使兼容H.323的端点能够互通。

基本概念

使用H.323时,正确理解原语和流程这两个术语很关键。原语用来描述应用层和H.323协议栈下层之间传递的结构或消息。H.323定义了多个原语,有四种类型:请求、指示、响应和确认。每个原语的参数的数量是可变的,这由相关流程决定。这些参数表示应用层和协议栈下层的通信信息。

在H.323协议族中的每个协议定义了一组流程。每个流程代表一个状态机,在大多数情况下,该状态机用原语的形式规定一组消息,这些消息以特定的顺序发送和接收。这些原语便于应用层和下层的通信。

流程提供具体的功能,可以异步启动或终止,或启动后在整个对话过程中保持激活状态。例如,H.245流程包括主从判断、能力信息互换、单向和双向信道信令。其中,只有信令信道在实际的对话过程中保持激活。其它只是激活后发送和接收数据,然后就终止了。Q.931/H.225流程包括呼叫建立和拆除。图1表示一个完整的H.323协议栈开发的实现。值得指出的是,该实现依赖于网络协议栈和实时操作系统(RTOS)。多数应用系统需要RTOS以便同时处理多个流程和/或呼叫。


相关内容

    暂无相关文章