IP電話的TCP和IP協(xié)議的實現(xiàn)方法_第1頁
IP電話的TCP和IP協(xié)議的實現(xiàn)方法_第2頁
IP電話的TCP和IP協(xié)議的實現(xiàn)方法_第3頁
IP電話的TCP和IP協(xié)議的實現(xiàn)方法_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、IP電話的TCP和IP協(xié)議的實現(xiàn)方法摘要:在介紹實現(xiàn)IP電話基本原理的基礎(chǔ)上,詳細闡述IP電話的TCP/IP協(xié)議的實現(xiàn)過程,并簡要描述1次通話的全過程。 引 言隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計算機通信系統(tǒng)已漸漸地與網(wǎng)絡(luò)連為一體了,個人計算機的功能得到了極大的增強;與此同時,人們的需求在不斷增加,網(wǎng)絡(luò)的應(yīng)用范圍也在不斷擴寬,網(wǎng)絡(luò)電話離人們的生活也越來越近了。尤其是當(dāng)人們正試圖將網(wǎng)絡(luò)改造成能進行實時通信的全球信息高速公路的雛形時,它作為一種新的話音業(yè)務(wù),已經(jīng)成為研究和開發(fā)的熱點。1 IP電話的實現(xiàn)原理普通電話通過信令來控制用戶的呼叫建立、連接、通話、釋放連接等過程。與此類似,IP電話也必須通過電話信令來

2、控制這些過程,即IP電話要傳送2類數(shù)據(jù):信令數(shù)據(jù)和語音數(shù)據(jù)。與傳統(tǒng)的PSTN電話所不同的是,IP電話是通過網(wǎng)絡(luò)進行傳輸?shù)?。它通過分組交換的方式來實現(xiàn),因此TCP/IP協(xié)議是其所應(yīng)遵守的基本協(xié)議。但是TCP/IP協(xié)議是一個龐大而復(fù)雜的體系結(jié)構(gòu),幾乎涵蓋了網(wǎng)絡(luò)上所有的應(yīng)用,對于IP電話這一特定的應(yīng)用,實現(xiàn)整個TCP/IP協(xié)議是完全沒有必要的。所以在實現(xiàn)的過程中,可以針對電話這一特定的要求簡化TCP/IP協(xié)議。圖1是一個簡化了的TCP/IP協(xié)議的分層結(jié)構(gòu)示意圖。圖1在遵循OSI的7層結(jié)構(gòu)的基礎(chǔ)上,對TCP/IP協(xié)議機制進行了適當(dāng)?shù)暮喕?。在網(wǎng)絡(luò)接口層,基于帶寬及接口復(fù)雜程度的考慮,我們選擇Ethern

3、et網(wǎng)卡作為接入網(wǎng)絡(luò)的接口,并采用ARP的方式對電話進行尋址。網(wǎng)絡(luò)層仍然用IP數(shù)據(jù)報的方式封裝從上層傳來的數(shù)據(jù)包,它包括傳輸層的UDP及ICMP兩種數(shù)據(jù)包,這兩種數(shù)據(jù)包分別傳送信令數(shù)據(jù)和語音數(shù)據(jù)。與TCP的傳輸方式相比,UDP的傳輸方式在網(wǎng)絡(luò)壓力不太大的情況下傳輸效率會更高。圖2是IP電話的實現(xiàn)框圖:以單片機為核心,包括存儲、輸入輸出、與網(wǎng)絡(luò)的接口及語音的編解碼部分。2 TCP/IP協(xié)議的設(shè)計根據(jù)IP電話實現(xiàn)的基本原理,可以將TCP/IP協(xié)議固件分為以下4個模塊來實現(xiàn)。(1)ARP模塊ARP模塊主要實現(xiàn)對電話的尋址功能。在網(wǎng)絡(luò)中,IP電話同計算機一樣,每個IP電話對應(yīng)1個IP地址,用戶每次建立

4、連接之前首先要獲得電話的IP地址及物理地址。在局域網(wǎng)中,為了減輕單片機的負擔(dān),可以在服務(wù)器中給用戶建立電話號碼與IP地址及物理地址的對應(yīng)。用戶建立連接之前,主叫用戶首先給服務(wù)器發(fā)送1個ARP請求,與服務(wù)器取得聯(lián)系,進而再發(fā)送ICMP請求。服務(wù)器將用戶所需的對方的IP地址及物理地址放到ICMP包中,形成應(yīng)答發(fā)送給主叫用戶。ARP包的首部采用結(jié)構(gòu)的方式來封裝,一個ARP的頭結(jié)構(gòu)ARPKT如下:typedef structWORD hrd, /* 硬件類型 */pro; /* 協(xié)議類型 */BYTE hln, /*物理地址長度*/pln; /* IP地址長度*/WORD op; /* ARP操作字段

5、*/BYTE smacMACLEN; /*源物理地址*/LWORD sip; /* 源IP地址*/BYTE dmacMACLEN; /* 目的物理地址*/LWORD dip; /* 目的IP地址 */ ARPKT;(2)IP模塊IP模塊主要實現(xiàn)對電話信令和語音數(shù)據(jù)的傳輸。在一個物理網(wǎng)絡(luò)中,數(shù)據(jù)報可以直接從一個IP電話傳送到另一個IP電話,因此不必考慮間接投遞的問題。當(dāng)IP電話要傳送電話信令或語音數(shù)據(jù)時,IP層對ICMP或UDP包進行封裝,進而傳遞給物理層形成幀發(fā)送出去。當(dāng)IP數(shù)據(jù)報到達IP電話時,網(wǎng)絡(luò)接口軟件把它傳給IP軟件處理。如果其中的目的地址與自己的IP地址匹配,則接收該數(shù)據(jù)報并上傳給合

6、適的高層協(xié)議;如果不匹配,則丟棄該數(shù)據(jù)報。IP數(shù)據(jù)報的頭部采用結(jié)構(gòu)的形式進行封裝,一個IP數(shù)據(jù)報的頭部結(jié)構(gòu)如下:typedef structBYTE vhl, /*版本及首部長度*/service; /*IP服務(wù)類型*/WORD len, /*IP數(shù)據(jù)報總長度*/ident, /* 標(biāo)識 */frags; /*標(biāo)志 */BYTE ttl, /*生存時間*/pcol; /*數(shù)據(jù)區(qū)所用的協(xié)議*/WORD check; /*首部校驗和*/LWORD sip, /* IP源地址*/dip; /*IP 目的地址*/ IPHDR;(3)ICMP模塊ICMP模塊主要實現(xiàn)對電話信令的封裝。ICMP包可分為2種

7、:ICMP請求和ICMP應(yīng)答。ICMP請求包括2種情況:向服務(wù)器發(fā)送請求獲取對方用戶的IP地址及物理地址和向?qū)Χ擞脩舭l(fā)送請求進行通話連接。相應(yīng)的ICMP應(yīng)答也有2種:服務(wù)器發(fā)送的應(yīng)答和普通用戶的應(yīng)答。主叫用戶與服務(wù)器取得聯(lián)系后,向服務(wù)器發(fā)送1個ICMP請求并等待應(yīng)答,從服務(wù)器的應(yīng)答中獲取對方的IP地址和物理地址,然后再向?qū)Χ税l(fā)送1個ICMP請求包,從叫用戶收到主叫用戶的請求,做出應(yīng)答。ICMP包的格式如圖3所示。用數(shù)據(jù)區(qū)的第1個字節(jié)來標(biāo)識2種情況:若第1個字節(jié)全為零,則在后面的數(shù)據(jù)區(qū)域中可填入IP地址及物理地址。若不全為零,則第1個字節(jié)為電話信令。電話信令可以自己定義,按照程控交換機的技術(shù)規(guī)范

8、,只需要以下一些基本信令即可:Req-ID 請求對應(yīng)IP地址 Ethernet ID號;Req-conn 請求連接;Conn-In 連接指示;Req-lease 請求釋放;Lease-In 釋放指示;Acknowledge 應(yīng)答;ID_In ID 指示。(4)UDP 模塊UDP模塊主要實現(xiàn)對語音數(shù)據(jù)的封裝。在用戶已經(jīng)確定建立連接之后,將編碼后的語音數(shù)據(jù)放在UDP的數(shù)據(jù)區(qū)域中進行傳送。一個UDP的數(shù)據(jù)包格式如圖4所示。它包括16bit的源地址、16bit的目的地址、16bit的報文長度及16bit的校驗和。為了保證語音數(shù)據(jù)的質(zhì)量及傳輸效率,數(shù)據(jù)區(qū)域的長度應(yīng)適當(dāng)選擇,不宜過大或過小。3 IP電話的

9、呼叫過程整個IP電話的呼叫流程可分為3部分:連接階段、通話階段、拆線階段。(1)建立連接階段在空閑狀態(tài)下,CPU一直循環(huán)檢測是否有摘機或其它用戶呼入的信號。用戶摘機時, CPU檢測到摘機信號,就發(fā)送撥號音給用戶并準(zhǔn)備接收用戶所撥的電話號碼。待號碼收齊后,CPU給服務(wù)器發(fā)送ARP請求,收到服務(wù)器的應(yīng)答后再發(fā)送ICMP請求,從服務(wù)器的ICMP應(yīng)答中獲取對端的IP地址及物理地址,然后開始發(fā)起呼叫。通過ICMP包送到Ethernet,等待被叫用戶回應(yīng),如果等待一段時間,用戶未回應(yīng),說明用戶不在或線路故障,給用戶送忙音;如果被叫用戶回應(yīng),就給話筒送回鈴音,同時被叫用戶一方振鈴;若被叫久不摘機,被叫停止振

10、鈴,并發(fā)ICMP消息給主叫用戶拆線,主叫用戶收到此消息,送忙音,等待主叫用戶掛機;如果被叫用戶在規(guī)定時間內(nèi)摘機,則停止送振鈴音,并用ICMP應(yīng)答信號,通知主叫用戶,被叫已應(yīng)答,主叫用戶收到此消息,停止送鈴音,通話開始。(2)通話階段進入通話階段,主叫用戶就開始發(fā)送話音數(shù)據(jù)的IP包。具體過程如下:首先,將編碼后的語音數(shù)據(jù)進行接收,并按照UDP進行封裝,再封裝成IP包送往Ethernet;同時,將Ethernet Card接收到的語音IP包進行拆包,并按一定節(jié)拍將解封語音數(shù)據(jù)進行解碼,從而將被叫用戶的話音送到聽筒,將話筒的話音送到被叫方。被叫用戶在通話階段與主叫用戶通話階段所處理的過程完全相同。(3)拆線階段當(dāng)雙方通話階段結(jié)束時,如果主叫先掛機,CPU檢測了掛機信號,就經(jīng)被叫方送拆線信號ICMP。被叫方收到此拆線信號,就給被叫方送忙音,提醒被叫方掛機。如果被叫方掛機,就經(jīng)主叫方送1個釋放應(yīng)答信號,并停止送忙音,這次通話就宣告結(jié)束。相反地,如果被叫方先掛機,其處理過程與上面是相同的。1次通話過程結(jié)束后,雙方進入空閑狀態(tài),CPU再進行循環(huán)檢測是否有摘機以及其它用戶呼入的信號,然后重復(fù)上面的處理過程。結(jié)束語本設(shè)計方案將傳統(tǒng)電話的實現(xiàn)方式與網(wǎng)絡(luò)結(jié)合起來,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論