第2章 H248协议组成
定时器超时后,应该重新发送TransactionRequest。当接收到TransactionReply 后,就应该取消定时器。当接收到TransactionPending 消息后,就应该重新启动定时器。该定时器被称为最大重传定时器。
2.5.3 通信方式
H248的传送机制应该支持对在MG 和MGC 之间的所有Transaction的可靠传输。传输应当与协议中需要传输的特定命令无关,并且可适用于所有的应用程序状态。如果是在IP 上传输H248协议,MG 应当实现TCP 或者UDP/ALF,或者同时支持两者。在IP/TCP/UDP上传输H.248应当为MG 预先提供一个首选MGC 以及0 到多个备选MGC 的名字或地址(如DNS 域名或IP 地址),用于MG 向MGC 发送消息的目的地址。如果传输层协议采用的是TCP 或者UDP,而由于某种原因不知道应将初始的ServiceChange 请求发送到哪个端口,则消息发送方就应当将这个请求发送到缺省的协议端口。无论是TCP 还是UDP,对于文本编码的消息,缺省的协议端口为2944;而对于二进制编码的消息,缺省的协议端口为2945。MGC 接收到来自MG 的包含ServiceChange 请求的消息后,应当能够从中判断出MG 的地址。同时,MG 和MGC 都可以在ServiceChangeAddress 参数中提供一个地址,以便后续的TransactionRequest 都发送到这个地址。但是,所有请求的响应(包括对初始的ServiceChange 请求的响应)必须发送给相应请求的源地址。例如,在IP 网中,这个地址应该是IP 头中的源地址及TCP/UDP/SCTP 头中的源端口号。
H.248协议的传输输机制能够支持在MG和MGC之间的事务处理的可靠传输采用三次握手机制。如图 2.5-1:
27
SS_010030_C H248协议原理
通信方式SoftswitchH.248TCP/UDPIPThree-way HandshakeH.248MGPort 2944: Text-encodedPort 2945: Binary-encoded36 图 2.5-1 H.248的可靠传输
2.5.4 “重启雪崩”保护
大量的MG同时加电重新启动时,将同时发起大量的ServiceChange 注册流程。此时,由于大量的ServiceChange 命令同时到达很可能会使MGC消息处理流程发生崩溃,从而导致在业务重启期间引起消息丢失和网络拥塞。因此,H248协议建议采用以下规则预防MGC 发生这种重启雪崩,如图 2.5-2所示:
28
第2章 H248协议组成
“重启雪崩”保护MGCServiceChange?每个MG都需要重启计时器来防止“重启雪崩”?定时器的值随机初始化MGMGMGMGRestart Avalanche37 图 2.5-2 预防重启雪崩
29
第3章 呼叫流程分析
? 知识点
? 本章例举了H248中在一些特定环境中的呼叫流程,例如AG-AG,TG-TG。
本章主要内容: 网关注册注销流程分析 呼叫建立流程分析 呼叫解除流程分析
3.1 MG向MGC注册注销流程
网关注册注销IADSSMEGACO/1 [10.66.100.12]:2944 Transaction = 9998 {Context = -{ServiceChange = ROOT {Services {MEGACO/1 [10.66.100.1]:2944 Reply = 9998 {Context = -{ServiceChange = ROOT {Services {ServiceChangeAddress=2944, Profile=ResGW/1} } }}}}Method=Restart,ServiceChangeAddress=2944, Profile=ResGW/1}}SVC_CHG_REQSVC_CHG_REPLY40 31