IP電話的TCP和IP協議的實現方法
發布時間:2008/5/27 0:00:00 訪問次數:567
     范莉莉 劉 武 黃光明
     華中科技大學 陳建文
     來源:《單片機與嵌入式系統應用》
     摘要:在介紹實現ip電話基本原理的基礎上,詳細闡述ip電話的tcp/ip協議的實現過程,并簡要描述1次通話的全過程。
    
    
     關鍵詞:ip電話
     tcp/ip協議 icmp udp arp
    
    引 言
    
     隨著網絡技術的不斷發展,計算機通信系統已漸漸地與網絡連為一體了,個人計算機的功能得到了極大的增強;與此同時,人們的需求在不斷增加,網絡的應用范圍也在不斷擴寬,網絡電話離人們的生活也越來越近了。尤其是當人們正試圖將網絡改造成能進行實時通信的全球信息高速公路的雛形時,它作為一種新的話音業務,已經成為研究和開發的熱點。
    
    1 ip電話的實現原理
    
     普通電話通過信令來控制用戶的呼叫建立、連接、通話、釋放連接等過程。與此類似,ip電話也必須通過電話信令來控制這些過程,即ip電話要傳送2類數據:信令數據和語音數據。與傳統的pstn電話所不同的是,ip電話是通過網絡進行傳輸的。它通過分組交換的方式來實現,因此tcp/ip協議是其所應遵守的基本協議。但是tcp/ip協議是一個龐大而復雜的體系結構,幾乎涵蓋了網絡上所有的應用,對于ip電話這一特定的應用,實現整個tcp/ip協議是完全沒有必要的。所以在實現的過程中,可以針對電話這一特定的要求簡化tcp/ip協議。圖1是一個簡化了的tcp/ip協議的分層結構示意圖。
    
     圖1在遵循osi的7層結構的基礎上,對tcp/ip協議機制進行了適當的簡化。在網絡接口層,基于帶寬及接口復雜程度的考慮,我們選擇ethernet網卡作為接入網絡的接口,并采用arp的方式對電話進行尋址。網絡層仍然用ip數據報的方式封裝從上層傳來的數據包,它包括傳輸層的udp及icmp兩種數據包,這兩種數據包分別傳送信令數據和語音數據。與tcp的傳輸方式相比,udp的傳輸方式在網絡壓力不太大的情況下傳輸效率會更高。
    
     圖2是ip電話的實現框圖:以單片機為核心,包括存儲、輸入輸出、與網絡的接口及語音的編解碼部分。
    
    2 tcp/ip協議的設計
    
     根據ip電話實現的基本原理,可以將tcp/ip協議固件分為以下4個模塊來實現。
     (1)arp模塊
    
     arp模塊主要實現對電話的尋址功能。在網絡中,ip電話同計算機一樣,每個ip電話對應1個ip地址,用戶每次建立連接之前首先要獲得電話的ip地址及物理地址。在局域網中,為了減輕單片機的負擔,可以在服務器中給用戶建立電話號碼與ip地址及物理地址的對應。用戶建立連接之前,主叫用戶首先給服務器發送1個arp請求,與服務器取得聯系,進而再發送icmp請求。服務器將用戶所需的對方的ip地址及物理地址放到icmp包中,形成應答發送給主叫用戶。
    
     arp包的首部采用結構的方式來封裝,一個arp的頭結構arpkt如下:
     typedef struct{
     word hrd, /* 硬件類型 */
     pro; /* 協議類型 */
     byte hln, /*物理地址長度*/
     pln; /* ip地址長度*/
     word op; /* arp操作字段*/
     byte smac[maclen]; /*源物理地址*/
     lword sip; /* 源ip地址*/
     byte dmac[maclen]; /* 目的物理地址*/
    
     范莉莉 劉 武 黃光明
     華中科技大學 陳建文
     來源:《單片機與嵌入式系統應用》
     摘要:在介紹實現ip電話基本原理的基礎上,詳細闡述ip電話的tcp/ip協議的實現過程,并簡要描述1次通話的全過程。
    
    
     關鍵詞:ip電話
     tcp/ip協議 icmp udp arp
    
    引 言
    
     隨著網絡技術的不斷發展,計算機通信系統已漸漸地與網絡連為一體了,個人計算機的功能得到了極大的增強;與此同時,人們的需求在不斷增加,網絡的應用范圍也在不斷擴寬,網絡電話離人們的生活也越來越近了。尤其是當人們正試圖將網絡改造成能進行實時通信的全球信息高速公路的雛形時,它作為一種新的話音業務,已經成為研究和開發的熱點。
    
    1 ip電話的實現原理
    
     普通電話通過信令來控制用戶的呼叫建立、連接、通話、釋放連接等過程。與此類似,ip電話也必須通過電話信令來控制這些過程,即ip電話要傳送2類數據:信令數據和語音數據。與傳統的pstn電話所不同的是,ip電話是通過網絡進行傳輸的。它通過分組交換的方式來實現,因此tcp/ip協議是其所應遵守的基本協議。但是tcp/ip協議是一個龐大而復雜的體系結構,幾乎涵蓋了網絡上所有的應用,對于ip電話這一特定的應用,實現整個tcp/ip協議是完全沒有必要的。所以在實現的過程中,可以針對電話這一特定的要求簡化tcp/ip協議。圖1是一個簡化了的tcp/ip協議的分層結構示意圖。
    
     圖1在遵循osi的7層結構的基礎上,對tcp/ip協議機制進行了適當的簡化。在網絡接口層,基于帶寬及接口復雜程度的考慮,我們選擇ethernet網卡作為接入網絡的接口,并采用arp的方式對電話進行尋址。網絡層仍然用ip數據報的方式封裝從上層傳來的數據包,它包括傳輸層的udp及icmp兩種數據包,這兩種數據包分別傳送信令數據和語音數據。與tcp的傳輸方式相比,udp的傳輸方式在網絡壓力不太大的情況下傳輸效率會更高。
    
     圖2是ip電話的實現框圖:以單片機為核心,包括存儲、輸入輸出、與網絡的接口及語音的編解碼部分。
    
    2 tcp/ip協議的設計
    
     根據ip電話實現的基本原理,可以將tcp/ip協議固件分為以下4個模塊來實現。
     (1)arp模塊
    
     arp模塊主要實現對電話的尋址功能。在網絡中,ip電話同計算機一樣,每個ip電話對應1個ip地址,用戶每次建立連接之前首先要獲得電話的ip地址及物理地址。在局域網中,為了減輕單片機的負擔,可以在服務器中給用戶建立電話號碼與ip地址及物理地址的對應。用戶建立連接之前,主叫用戶首先給服務器發送1個arp請求,與服務器取得聯系,進而再發送icmp請求。服務器將用戶所需的對方的ip地址及物理地址放到icmp包中,形成應答發送給主叫用戶。
    
     arp包的首部采用結構的方式來封裝,一個arp的頭結構arpkt如下:
     typedef struct{
     word hrd, /* 硬件類型 */
     pro; /* 協議類型 */
     byte hln, /*物理地址長度*/
     pln; /* ip地址長度*/
     word op; /* arp操作字段*/
     byte smac[maclen]; /*源物理地址*/
     lword sip; /* 源ip地址*/
     byte dmac[maclen]; /* 目的物理地址*/
    
上一篇:網格數據傳輸協議探討