H.248/Megaco协议在全IP网络中的应用
2 TCP/UDP协议的区别及运用场合
H.248/Megaco定义的各种协议消息既可以在TCP上传输,也可以在UDP上传输,TCP和UDP之间的主要区别是可靠性和复杂度。
TCP协议可以提供端到端可靠的数据传输。TCP协议采用了多项提高可靠性的技术以克服底层IP网络传输的不可靠性,它并不区分结构化的数据流,只支持数据流的传输。应用程序必须在连接之前了解数据流的内容,并对其格式进行协商,对数据流的进一步处理完全留给应用程序本身来完成。TCP也允许用户指定连接的安全性和优先级,这两个功能并非是现在所有的TCP产品中都有,但在TCP标准中作了定义。TCP协议还提供了全双工联接、向应用进程提供PUSH功能和流量控制。
UDP协议面向应用程序提供数据传输服务,并且支持组播。与IP层相比,IP层只负责互联网上的一对主机之间的数据传输,实现主机间的通信;而UDP层通过端口机制标识同一主机上运行的多个进程,完成进程间通信。与TCP协议相比,它们同属于传输层,都是完成面向进程的数据传输服务。不同之处在于,TCP协议提供的是面向连接的、可靠的数据传输服务,而UDP提供的是面向无连接的、不可靠的数据传输服务。
所以,对广播或多播应用程序必须使用UDP。此时任何期望的错误控制必须加入到应用程序中。UDP也可以用于较简单的请求一应答式应用程序,但是应用程序内部必须有检查错误的功能,至少涉及确认、超时和重传。UDP不适用大量数据的传输,因为大量数据的传输要求将窗口式流控、拥塞避免和慢启动等特性在应用程序中实现,这也意味着要在应用程序中重建TCP。
利用UDP传输H.248/Megaco消息时,如果对等实体没有提供相应的通信端口,各种指令应当被送到默认端口上:对于文本编码的操作,端口号应当使用2944;对于二进制编码操作;则端口号应当使用2945。在UDP上传输消息可能会发生丢失,如果没有及时响应的话,命令就会重复,从而导致MG状态的不可预料性,所以,传输进程必须能够提供一种“At-Most-Once”功能,以防止命令的重复执行。
利用TCP传输H.248/Megaco消息时,如果对方没有提供端口的话,各种指令应当被送到默认端口上。TCP是一个基于流的协议,使用TPKT来描述TCP流中的各种消息。在面向事务的协议中,事务请求与响应消息仍然有可能由于这样那样的原因而丢失。因此,建议各种实体使用TCP传输机制作为每一次请求和响应过程实现应用层的定时器,这一点与对UDP上应用层帧结构的描述是类似的。
虽然在TCP上传输的水洗步会发生传输丢失,但是事务请求或其响应消息的丢失在实际实现中仍然有可能发生。如果没有及时响应的话,指令就会重复。大多数指令的操作要求是不一样的。因此,MG的状态是无法预料的,所以,在使用TCP时也应该提供“At-Most-Once”功能。
另外,在协议中还加入了三次握手机制和计算重传机制来进一步提高协议的可靠性。
3 协议传输安全与加密
由于IP网络是一个开放的网络,极易受到非法攻击。为了防止未经授权的实体利用媒体网关控制协议建立非法呼叫,或者干涉合法呼叫,应当建立一整套严密的安全机制,对此协议的传输进行保护。目前提出了两种方案来解决在IP网络上传输H.248/Megaco协议的安全问题:一种是采用IPsec对协议传输进行安全保护;另一种是采用过渡性AH方案。
利用Ipsec对H.248/Megaco消息的传输主要包括封装安全载荷协议ESP(Encapsulating Security Payload)、网络认证协议AH(Authentication Header)和密钥管理协议IKE(Internet Key Exchange)三部分。它规定了如何在对等层之间选择完全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。
封装安全载荷协议ESP对媒体网关/终端设备和软交换设备之间传送的消息提供加密,为IP数据包提供完整性检查、认证和加密,在MGC向MG传送会话密钥SK(Session Key)时用于加密包含密钥的会话描述信息。
网络认证协议AH对在媒体网关/终端设备和软交换设备之间传送的消息提供数据源认证、无连接完整性保护和可选的抗重发保护。此协议还提供了数据完整性和反重插保证,能保证通信免受篡改,但不能防止窃听,用于保护媒体网关控制器MGC和媒体网关之间的协议连接。
密钥管理协议IKE提供媒体网关/终端设备和软交换设备之间进行密钥协商的机制,以保证密钥的安全性。
如果底层协议不支持IPsec,则应建议采用过渡性AH方案。由于IPSec要求AH头或ESP头紧跟在IP包头后面,这在应用层上的实现有一定难度,所以H.248/Megaco定义了一种折衷的AH头,调整了数据完整性检查的范围,作为在底层操作系统或传输网络不支持IPSec时的一种临时解决方案。过渡性AH方案是在H.248/Megaco协议头中定义可选的AH头来实现对协议连接的保护,过渡性AH方案只能提供一定程序的保护,例如该方案不能提供防窃听保护。同时,为了保护在媒体网关之间传输的媒体流免受由非法实体发起恶意攻击,媒体网关控制器也可以通过媒体网关控制协议向媒体网关提供会话密钥,用来对音频消息进行加密。
由于IPSes工作在网