目前,Windows XP中已经标准集成了连动态图像都可传送的IP电话软件“Windows Messenger”。另外日本软库集团也已经开始提供名为“BB Phone”的IP电话服务,最近有关IP电话有很多话题,但是IP电话究竟是如何进行信息交换的呢?在此让我们使用一下Windows Messenger的IP电话功能——“PC to Phone”,来考证IP电话是如何交换IP数据包的。
在打电话的时候,Windows Messenger在所使用的控制协议(把它称作呼叫控制协议)中使用了SIP(会话发起协议)。一使用IP电话,该协议就会首先传送出去。说起IP电话,也许读者已经听说过叫H.323的协议。它是基于因特网技术,并用于交换文本信息。也就是说,假如要对打电话时的IP数据分组进行分析,那么就必须读解SIP。
但是想了解打给自己家里的IP电话是如何交换数据分组的,则又不是很轻易明白。对其内容进行仔细研究以后,就会知道在发送SIP信息的过程中,TCP(传输控制协议)上使用的是HTTPS(超文本传输通信安全协议)。当然利用呼叫控制协议交换的是用于收取电话费的重要信息。而假如直接发送SIP,那么第三者通过分析其内容就有可能冒充用户。可以说正是为了避免这种情况的发生才使用HTTPS来对信息进行加密的。
试验中,在不同的Windows Messenger之间使用IP电话,结果发现SIP的信息并没有被加密。而且可以清楚看到正在交换的各种信息,包括SIP的版本、打电话的用户信息以及通话中使用端口等。
接着笔者又进行了实际通话。可以看到此时的IP数据分组长度为200个字节。在IP的高层协议中使用的是处理量较小的UDP(用户数据报协议)。IP报头为20个字节,UDP报头为8个字节。而且在UDP的上层,使用的是在实时通信中使用的RTP(实时传输协议)。RTP报头为12个字节。假如将这些报头部分去除以后,算起来实际的语音数据部分为160个字节。
在RTP报头中记录有将语音转换成数字数据的语音编码方式相关信息。对此信息进行确认发现,所指定的方式为速度为64kbit/秒的PCM(脉冲编码调制)编码方式。以64kbit/秒的PCM编码方式,要生成160个字节的数字数据需要花费约20毫秒的时间。假如倒过来算一下,就会明白1秒钟可以发送50个IP数据分组。不过,这个数字只是单向的分组数量。由于电话可以进行双向会话,因此在网络上1秒钟实际上可以恒定地传输100个IP数据分组。 假如只是使用Windows Messenger向自已家里打电话,那么传输的IP数据分组就只有这些。
顺便提一下,要想像上面所讲的那样使用PC to Phone功能拔打普通的NTT电话,就必须和提供这种服务的公司签定合同。这一点请读者注重!