Abstract
SIP是一種用來建立多媒體資料流的訊號控制協定,它能夠讓IP網路上的兩個甚至多個使用者相互協議他們想要建立的多媒體資料流的一些相關參數,繼而建立、維護和終止此多媒體資料流。這些參數包含多媒體封包收送的IP address、port、多媒體資料的形式和編碼方式等等。這個多媒體的資料流與訊號控制的資料流是各自獨立的,而且它們在網路上傳送的路徑可能也不相同。 像SIP這種通訊協定在本質上的設計是很難穿透NAT的,因為它的目的是為了建立一個多媒體資料流,所以往往會在訊息本身攜帶一些IP address的資訊,以做為訊號本身和建立其他資料流之用,而這正是穿透NAT的問題所在。所以我們要考慮的問題除了控制訊號本身對於NAT的穿透能力之外,還要考慮他們所建立的其他資料流如何穿透NAT的問題,因為建立多媒體資料流的相關資訊是寫在應用層訊息的本文之內,若使用者是在NAT之下,則SIP應用程式會將作業系統所認知的本地端IP:port的資訊填到相關的欄位之內,但是這個IP address卻是一個私有的IP address,這種IP address是無法在公眾網路上被路由的,所以當其他人要將資料送給此使用者時,勢必會造成資料無法送達的結果。 本篇論文的目的是要探討當我們利用SIP來建立網路電話的通訊時,我們能夠應用哪些技術來穿透NAT,讓通訊的雙方能夠正常的通話,而不受到NAT的影響。我們希望能夠整理出各種使用者可能會遇到的網路狀況,並且針對這些網路狀況,一一分析他們之間的問題,並且利用一些已知的方法或者是我們自己的想法,來為這些問題提供簡單又合理的解決方法。