Page 1

TCP/IP Report VoIP (Voice of Internet Protocol)

級:

UC104

名:

王瑋君

號:

C1000339

指導老師:

戴致禮


VoIP VoIP 是 Voice over Internet Protocol 的縮寫,指的是將模擬的聲音訊號經過壓縮與 封包後,以數據封包的形式 IP 網路的環境進行語音訊號的傳輸,也就是網路電 話、IP 電話的意思。 在音訊/視訊的即時互動中,人們可以即時與其他人通訊,而網路電話 VoIP 就是 這類應用最好的例子。 VoIP 的基本原理是:通過語音的壓縮算法,對語音數據編碼進行壓縮處理,然後 把這些語音數據按 TCP/IP 標準進行打包,經過 IP 網路把數據包送至接收地,再 把這些語音數據包串起來,經過解壓處理後,恢復成原來的語音信號,從而達到 互連傳送語音的目的。 關於即時互動之音訊/視訊在傳輸層的支援,TCP 並不適合即時傳輸,因為它沒 有作時間戳記,也不支援群播。而 TCP 所提供的序號排序的錯誤控制機制,也不 適合使用在即時傳輸,即時傳輸的封包不能因為遺失或損壞而有重送的情況發生, 在此系統中,封包遺失或損壞只能夠忽略掉,否則會因為重送而造成時間戳記與 播放的困擾。 因此,UDP 較適合即時傳輸,它支援群播,沒有重送的機制,沒有時間戳記、序 號或混合的機制。與 UDP 合併使用的 RTP,可在 Internet 上支援即時傳輸。

SIP Session Initiation Protocol, SIP 會議初始通訊協定,是一種應用層的通訊協定。用 來建立、管理與終止一個多媒體會議。SIP 可以用來建立雙方、多方、或群播士 的會議。又因 SIP 與傳輸層沒有相依性,所以 SIP 可以在 UDP、TCP 或 SCTP 上執 行。

RTP/RTCP RTP 是 Real-Time Transport Protocol 即時傳輸通訊協定的縮寫,是一種提供端對端 傳輸服務的即時傳輸協定,用來支援在單目標廣播和多目標廣播網路服務中傳輸 即時資料。RTP 定義在 RFC1889 中,資訊包的結構包含廣泛用於多媒體的若干區 域。RTP 可以看成是 Transport Layer 的子層,由多媒體應用程式生成的聲音和電


視資料塊,被封裝在 RTP 資訊包中,每個 RTP 資訊包被封裝在 UDP 區段中,然 後再封裝在 IP 資料包中。它的主要功能在於提供時間戳記、序號、及混合資料 串連等機制,UDP 合併 RTP 來做即時傳輸,可避免傳送封包之間延遲而造成困擾。 至於即時資料的傳輸則由 RTCP─Real-Time Transport Control Protocol 即時傳輸 控制通訊協定來監視和控制。

VoIP Lab 通訊軟體:Linphone-3.3.2 實驗環境:架設兩台 XP 虛擬主機 1. VoIPClient1:192.168.8.105 2. VoIPClient2:192.168.8.106 <圖 1>

從 Linphone 的 Setting 我們可以看到預設的 SIP(UDP) Port 為 5060 而 Audio RTP/UDP Port 為 7078。


<圖 2>

此為執行 Linphone 的通訊介面 上面的紅框為目的端 VoIPClient2 的帳號(IP) 而下面的紅框代表自己的帳號(IP)。

接著開始使用 Wireshark 擷取封包 在這裡我們要抓的是虛擬主機網卡的封包 選擇好之後就開始從 Clinet1 播打電話。 <圖 3>

此為 Client2 的擷取畫面 可以清楚的看見是由 Client1: 192.168.8.105 所撥打的 Incoming call。


<圖 4>

圖 4 為篩選過後的 SIP 封包。

<圖 5>

由 Client1 發出一個 Invite 通話連線要求給 Client2 可以發現 SIP Port 正是預設值 5060。

<圖 6>

SIP 代碼 100 表示:Client2(192.168.8.106)正在試圖完成要求。


<圖 7>

SIP 代碼 101 表示:Client2 接收到要求,並且與 Client1 建立連線。

<圖 8>

SIP 代碼 108 表示:建立連線後,Client2 發送出振鈴訊息給 Client1。

<圖 9>

SIP 代碼 200 表示:Client1 與 Client2 之間已成功連線。


<圖 10>

當其中一端結束通話時,SIP 會發出 BYE 的訊息給對方。

<圖 11>

圖 11 為篩選過後的 RTP 封包,可以看到 RTP Port 是預設值 7078。 而 Timestamp: 579840 則是 RTP 內的時間戳記 Sequence number : 906 指的應該是序號。


<圖 12>

圖 12 為篩選過後的 RTCP 封包,由此得知,RTCP Port 為 7079。 而 RTCP 是監視和控制及時通訊,因此封包資料也有包括 RTP 的時間戳記。

<圖 13>

圖 13 為 RTCP 內所標示的來源資料 Source description。


Experience 一開始覺得現代社會視訊及網路通話很普及,通訊軟體也是上網隨便查都有,於 是也把 VoIP 的抓封包實驗想得很容易,其實不然。 先是使用 Windows Live Messenger 開啟交談,發現抓到的不是 SIP、RTP…等封包 資料,而是一堆 UDP 封包。接著陸續使用了 SKYPE、YY 通訊、X-Lite3…等都無法 順利實作,最後參考前期學長使用 Linphone 來做實驗。 剛開始使用 Linphone 的結果不是很理想,想說在同個宿舍底下 IP 一樣就可以使 用此套軟體通話連線,結果卻發現無法連線,詢問了前期學長有關於 Linphone 的操作,學長的意思是只要在同網段能 Ping 的到對方就可以建立連線。回宿舍 後測試的結果是根本無法 Ping 到同學,後來才想出建立兩台虛擬主機,將 IP 設 定好之後,連線成功了! 附註:關於 SKYPE 無法抓到封包的原因有詢問 70 期學長,因為 SKYPE 有專屬的 SKYPE Proprietary Protocol 是屬於 SSL 加密的連線,所以 Wireshark 無法擷取到它 的封包。

Reference TCP/IP 通訊協定第三版 以 OSI 分析 VoIP-SKYPE,資策會網工班第六十四期報告 Life 知識管理系統 什麼是 VoIP,網路營銷教學網站

TCP  
TCP  

This is TCP/IP homework

Advertisement