2007年10月23日 星期二

IPTV 如何穿越NAT

在我們的IP網路中部署的大量NAT和防火牆設備。這帶來IPTV 這類串流應用極大的困擾,另外內容分發網路(CDN)也必須要穿越NAT和防火牆設備,如何確保不影響IPTV播放的穩定?我們需要一種穿越NAT的方法,已經有很多被提出如何穿越NAT的方法,大致可分類如下數種:

  • l 需要修改NAT設備(ALG)
  • l 需要修改client(STUNTURNICE)
  • l 需要修改Server(SBC)
  • l 需要修改NAT client(RSIPNSIS)
  • l 需要修改NATServer(Midcom)
  • l 需要修改client和增加設備(代理)

  在這些方法中,我們需要注意到的是,IPTV串流穿越NAT的需求是不可預知的,因此,需要修改NAT的方法就不可行了,而IPTV軟體的Server端也是不統一的,僅修改Server也無法達到目的,另外增加代理設備穿越NAT的方法需要預知網路拓撲,因此不適合於IPTV的動態網路,可見剩下的就只有修改Client的方法了。

  在IPTV的應用中,RTSP通信要穿越NAT/FW有下麵幾點考慮:,以在NAT/FW上建立映射關係;當IPTV STBStreaming請求服務時,可採用ICE的方式確定最佳路徑。

假設有兩台分別處於各自的私有網路中的主機:ABN1N2是兩個NAT設備;STUN Server是一個使用了一個眾所周知的、從全球任何地方都能訪問得到的IP地址的公共伺服器

步驟一:AB分別和STUN Server建立UDP連接;NAT設備N1N2創建UDP轉換狀態並分配臨時的外部埠號

步驟二:STUN Server將這些埠號傳回AB

步驟三:AB通過轉換好的埠直接聯繫到對方的NAT設備;NAT設備則利用先前創建的轉換狀態將分組發往AB

什麼是NAT?

NAT 最初的目的是為使用內網IP位址的電腦提供通過少數幾台具有公網的IP位址的電腦訪問外部網路的功能。NAT 負責將某些內網IP位址的電腦向外部網路發出的IP資料包的源IP位址轉換為NAT自己的公網的IP位址,目的IP位址不變, 並將IP資料包轉發給路由器,最終到達外部的電腦。同時負責將外部的電腦返回的IP資料包的目的IP位址轉換為內網的IP位址,源IP位址不變,並最終送達到內網中的電腦。

什麽是STUN伺服器?

STUN(用戶資料報協定[UDP]簡單穿越網路位址轉換器[NAT])伺服器允許所有的NAT客戶終端(如防火牆後邊的電腦)與位於局區域網以外的VOIP服務商實現電話通話。

通過STUN伺服器,客戶終端可以瞭解他們的公共位址、擋在他們前面的NAT類型和通過NAT與特定局部埠相連的因特網方埠。這些資訊將被用於建立客戶終端與VOIP服務商之間的UDP通信,以便實現通話。STUN協定在RFC 3489中予以定義。雖然是在UDP 3478連接STUN伺服器,但會暗示客戶終端在另外一個IP和埠號上實施測試(STUN伺服器有兩個IP位址)。RFC 規定這個埠和IP是隨意的。

沒有留言: