Page 1

TCP/IP VoIP

指導老師: 戴致禮 班級:UC104 學號:C1000415 姓名:郭雯琳 1


簡介 近年來,寬頻網路快速的普及已逐漸改變人們的通訊習慣,所帶動的相關網 路服務(如:Skype、MSN...等)也縮短人與人之間的距離。無論企業或個人需求,網 路電話 VoIP(Voice over Internet Protocol)所提供的便利性與低成本的設置皆具備相 當的吸引力。 本文針對 VoIP 部分所作的探討,主要可分為: 1. VoIP 定義及優勢 2. VoIP 相關應用 3. VoIP 相關通訊協定 4. 實際抓包及解釋

何謂 VoIP VoIP 是將原為類比的語音信號予以數位化,運用 TCP/IP 通訊協定將此數位 信號切成許多封包(Packet),由發送端透過 VoIP 設備經由網路傳送至接收端, 再由接收端的 VoIP 設備將此數位信號還原成類比的語音信號,達成通訊的目的。 換句話說,VoIP 是將聲音轉換成數位信號,並以硬體壓縮成封包,透過由網路上 各相關通訊協定,做點對點(end-to-end)的即時通訊功能。

圖一 VoIP 原理

2


VoIP 能廣泛地採用 Internet 和全球 IP 互連的環境。它的優勢包含: 1. 2. 3. 4.

使用 VoIP 網內點對點互打,完全免費。 完全依照傳統電話操作方式即可使用,不需改變撥號習慣。 以優惠、低廉的費率,輕鬆撥打國內、國際長途電話,可節省通話費用。 只要有網路全世界都可以使用,不像一般電話還要牽線。

相關應用 一般來說 VoIP 連線方式可以分為三種: 1. PC to PC 此種方式不僅是最多人所使用的,花費亦是最省的。發送端及接收端雙方都 需要具備電腦,且要同時連線在網際網路上,所以雙方必須先協調好同時上 網。除了支付雙方當地的網際網路服務提供者 ISP(Internet Service Provider) 連線費用外,不須任何費用。 2. PC to Phone( Phone to PC) 發送端一方必須具備電腦,接送端不需要任何電腦設備,而只要以當地市內 電話,或是行動電話即可接聽電話。因為要經過網際網路電話服務提供者 ITSP(Internet Telephone Service Provider) 公司的轉接服務,所以必須支付 轉接費用。 3. Phone to Phone 雙方都不需要使用任何電腦設備,只要以一般電話即可接通全世界任何電話, 亦可享有網路電話節費的優惠。

圖二 VoIP 連線方式 3


相關通訊協定 VoIP 與其它的網路服務一樣,必須遵循相同的通訊協定,才能順利通話。 目前常用的協定如 H.323、SIP、MEGACO 和 MGCP。而本文就 SIP、RTP、 RTCP 三個部分來討論。

圖三 VoIP 相關通訊協定 SIP 會議初始通訊協定 SIP (Session Initiation Protocol)是一個定義在應用層(Application Layer)的協定,主要是用來建立、修改,及終止多媒體會議,像是網路電話、網 路視訊會議等等。 SIP 定義六個訊息 : INVITE、ACK、BYE、CANCEL、OPTIONS、REGISTER。 相關的流程,將配合後面的實驗一併說明。

表一 SIP 訊息定義表 4


RTP

即時傳輸協定 RTP(Real-time Transport Protocol)是一個定義在傳輸層(Transport La yer)的協定,是用於 Internet 上針對多媒體資料流程的一種傳輸協定。RTP 被定義 為一對一或一對多的傳輸情形下工作,其目的是提供時間資訊以及實現串流同步。 RTP 的上層通常使用 UDP 來傳送資料,雖然沒有公認的 Port,但有一限制,即 Port 必須為偶數。

RTCP 即時傳輸控制協定 RTCP(Real-time Transport Control Protocol) 也是一個定義在傳 輸層(Transport Layer)的協定。RTCP 和 RTP 聯合工作,RTP 進行實際資料的傳輸, RTCP 則將控制封包傳至電話中的每個人。主要是提供資訊來輔助 RTP 傳輸資料, 以達到流量控制和擁塞控制,其包含的資料像是以發送封包的數量、遺失封包的 數量等統計資料。因此,伺服器可以利用這些動態資訊改變傳輸速率,甚至改變 有效負載類型。RTP 和 RTCP 配合使用,可以使傳輸效率最佳化,因此特別適合 傳送網路上的即時資料。RTCP 和 RTP 一樣沒有公認的 Port,但固定是 RTC 的 Port +1 (為奇數)。

圖四 H.323 與 SIP 通訊協定網路堆疊 UDP 雖然是屬於不可靠的封包傳輸服務,也可能發生資料封包遺失的可能性,若 犧牲了資料的重傳,即可換來較佳的傳輸速率,且語音資料較需要即時性,所以 才會選擇 UDP 協定來傳輸資料。 相反的,如果封包遺失時,TCP 則會啟動重傳機制,但是若網路頻寬擁塞,封包 接收將不穩定,TCP 則會再度發生封包重傳命令,如此將嚴重影響語音資料所需 要的即時性。 5


實際抓取封包及解釋 通訊軟體: Linephone 3.4.1 抓取封包軟體: Wireshark-win64-1.4.1.

圖五 接收端及發送端設定

圖六 Port 設定 預設 SIP(UDP)的 Port 為: 5060 預設 Auto RTP/UDP 的 Port 為: 7078 ,所以 RTCP 的 Port 為: 7079 6


過濾封包 : SIP

圖七 SIP 封包

圖八 SIP 流程

表二 SIP 狀態碼簡易說明

由上列流程圖(圖八)及表格(表二),可得知封包(圖七) (1)No21  先建立連線邀請 接收端 (* No22~26 連線中) (2)No33  Ringing 響鈴 (3)No44  接收端回應,連線 ok (4)No45  發送端開始傳送訊息給接收端 (5)No2837  接收端要求結束通話,bye~ (6)No2838  發送端回應 ok 7


過濾封包 : RTP

圖八 RTP 封包 這些 RTP 封包都是兩端通話的內容,其中可以看到 RTP 的 Port 是 7078(偶數)

過濾封包 : RCTP

圖九 RTCP 封包 可以看到 RTCP 的 Port 是 7079,即為 RTP Port 7078+1(奇數) 8


參考文獻 1. 2. 3. 4. 5. 6. 7. 8. 9.

Goole 搜尋 維基百科 戴致禮老師 VoIP 書面資料 D-Link 蔡惠雅 VoIP 技術與應用簡報檔.pdf 銘傳大學資訊工程系陳俊樺碩士論文 銘傳大學資訊工程系賴鑫偉碩士論文 網工班 81 期 TCP/IP 報告(VoIP)余振漢 網工班 82 期 TCP/IP 報告(VoIP)陳卉潔 網工班 82 期 TCP/IP 報告(VoIP)江孟展

9

VoIP  

TCP/IP VoIP

Read more
Read more
Similar to
Popular now
Just for you