數(shù)據(jù)包如此流動?--揭開IP電話的奧秘

齊藤榮太郎 2002/06/12

  目前,Windows XP中已經(jīng)標(biāo)準(zhǔn)集成了連動態(tài)圖像都可傳送的IP電話軟件“Windows Messenger”。另外日本軟庫集團(tuán)也已經(jīng)開始提供名為“BB Phone”的IP電話服務(wù),最近有關(guān)IP電話有很多話題,但是IP電話究竟是如何進(jìn)行信息交換的呢?在此讓我們使用一下Windows Messenger的IP電話功能——“PC to Phone”,來考證IP電話是如何交換IP數(shù)據(jù)包的。

  在打電話的時候,Windows Messenger在所使用的控制協(xié)議(把它稱作呼叫控制協(xié)議)中使用了SIP(會話發(fā)起協(xié)議)。一使用IP電話,該協(xié)議就會首先傳送出去。說起IP電話,也許讀者已經(jīng)聽說過叫H.323的協(xié)議。它是基于因特網(wǎng)技術(shù),并用于交換文本信息。也就是說,如果要對打電話時的IP數(shù)據(jù)分組進(jìn)行分析,那么就必須讀解SIP。

  但是想了解打給自己家里的IP電話是如何交換數(shù)據(jù)分組的,則又不是很容易明白。對其內(nèi)容進(jìn)行仔細(xì)研究以后,就會知道在發(fā)送SIP信息的過程中,TCP(傳輸控制協(xié)議)上使用的是HTTPS(超文本傳輸通信安全協(xié)議)。當(dāng)然利用呼叫控制協(xié)議交換的是用于收取電話費(fèi)的重要信息。而如果直接發(fā)送SIP,那么第三者通過分析其內(nèi)容就有可能冒充用戶?梢哉f正是為了避免這種情況的發(fā)生才使用HTTPS來對信息進(jìn)行加密的。

  試驗中,在不同的Windows Messenger之間使用IP電話,結(jié)果發(fā)現(xiàn)SIP的信息并沒有被加密。而且可以清楚看到正在交換的各種信息,包括SIP的版本、打電話的用戶信息以及通話中使用端口等。

  接著筆者又進(jìn)行了實際通話?梢钥吹酱藭r的IP數(shù)據(jù)分組長度為200個字節(jié)。在IP的高層協(xié)議中使用的是處理量較小的UDP(用戶數(shù)據(jù)報協(xié)議)。IP報頭為20個字節(jié),UDP報頭為8個字節(jié)。而且在UDP的上層,使用的是在實時通信中使用的RTP(實時傳輸協(xié)議)。RTP報頭為12個字節(jié)。如果將這些報頭部分去除以后,算起來實際的語音數(shù)據(jù)部分為160個字節(jié)。

  在RTP報頭中記錄有將語音轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)的語音編碼方式相關(guān)信息。對此信息進(jìn)行確認(rèn)發(fā)現(xiàn),所指定的方式為速度為64kbit/秒的PCM(脈沖編碼調(diào)制)編碼方式。以64kbit/秒的PCM編碼方式,要生成160個字節(jié)的數(shù)字?jǐn)?shù)據(jù)需要花費(fèi)約20毫秒的時間。如果倒過來算一下,就會明白1秒鐘可以發(fā)送50個IP數(shù)據(jù)分組。不過,這個數(shù)字只是單向的分組數(shù)量。由于電話可以進(jìn)行雙向會話,因此在網(wǎng)絡(luò)上1秒鐘實際上可以恒定地傳輸100個IP數(shù)據(jù)分組。   如果只是使用Windows Messenger向自已家里打電話,那么傳輸?shù)腎P數(shù)據(jù)分組就只有這些。

  順便提一下,要想像上面所講的那樣使用PC to Phone功能拔打普通的NTT電話,就必須和提供這種服務(wù)的公司簽定合同。這一點(diǎn)請讀者注意!

日經(jīng)BP社