Issuu on Google+

指導老師:戴致禮老師 班

級:UC104

名:江孟展

號:C1000328


簡 介 VoIP(Voice over IP)網路電話,是將語音訊號壓縮成數據資料封包後,透過開放性 的網際網路(Internet)傳送語音的電信服務。利用 Internet 不僅做到了可即時提供 語音服務,更可連接至世界各地,讓使用者可以不需再透過傳統的公眾電話網路 (PSTN)進行遠距離電話交談。

使用的通訊協定 VoIP 和其他網路服務一樣,雙方通訊必須依循相同的協定,才能順利溝通。目 前市面上常見的 VoIP 通訊協定有 3 種,分別是 H.323(有 v1 與 v2 版本) 、MGCP 與 SIP。 本文所討論的通訊協定部分是以後面實驗軟體使用的 SIP 及 RTP、RTCP 為主。

SIP SIP 會議初始通訊協定 (Session Initiation Protocol),可以在 UDP、TCP 或 SCTP 上執行,主要是來用建立、管理與終止一個多媒體會議。以 OSI 定義的網路七 層來看,它應該是屬於第五層-會談層,但也有人將其歸類為廣義的第七層-應用 層。 SIP 定義了 6 種訊息,INVITE、ACK、BYE、CANCEL、OPTIONS、REGISTER。

簡單的說明,呼叫者傳送一個初始訊息(INVITE)來初始化一個會議,被呼叫者傳 送一個回覆訊息,表示願意開始進行會議。為了確認此回覆訊息有傳回呼叫者,


呼叫者會再傳送一個回應訊息(ACK)給被呼叫者。會議建立後,呼叫者與被呼叫 者任何一方可以送出再見訊息(BYE)終止會議。

RTP RTP 即時傳輸通訊協定(Real-time Transport Protocol) ,是用於 Internet 上針對多 媒體資料流程的一種傳輸協定。RTP 被定義為一對一或一對多的傳輸情形下工 作,其目的是提供時間資訊以及實現串流同步。RTP 的上層通常使用 UDP 來傳 送資料。 RTP 的 Port 號是依需求而選,而且必須是偶數。

RTCP RTCP 即時傳輸控制通訊協定(Real-time Transport Control Protocol) ,和 RTP 一起 提供流量控制和擁塞控制服務。在 RTP 對話其間,各參與者週期性的傳送 RTCP 封包。RTCP 封包中含有已發送的資料封包、丟失的資料封包數量等統計資料。 因此,伺服器可以利用這些資訊動態低改變傳輸速率,甚至改變有效負載類型。 RTP 和 RTCP 配合使用,能以有效的回饋和最小的頻寬開銷,使傳輸效率最佳化, 因而特別適合傳送網路上的即時資料。 RTCP 的 Port 號為 RTP 的 Port 號加 1,必為奇數。

實際測試 VoIP 軟體為 linphone-3.3.2 版本 封包抓取軟體為 wireshark-win32-1.2.9 發話端 A IP:192.168.168.11 收話端 B IP:192.168.168.22 以 wireshark 抓取封包,結果如下


過濾條件:SIP

從圖中可以看出 SIP 通訊協定的訊息 No.8 No.9 No.10 No.12 No.15 No.16

發話端 A 發出建立連線的要求(INVITE)給收話端 B B 回應狀態 100 給 A,正在嘗試連線 B 回應狀態 101 給 A Ringing 響鈴中 B 接通電話,回應狀態 200 OK,會議建立完成 A 回應 ACK,告知 B 收到會議建立完成通知

接下來有許多 RTP 的通話音訊封包 No.1159 A 要求掛斷電話,送出訊息 BYE No.1160 B 回應 OK 之後通話就結束


過濾條件:RTP

這些封包都是 A 與 B 的通話內容,其中我們可以看到 RTP 的 Port 號是 7078(偶 數)

過濾條件:RTCP

我們可以看到 RTP 的 Port 號是 7079 (7078+1)


TCP/IP(VoIP)