中文翻譯:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment簡介


  1:pjsip教程(一)之PJNATH簡介

  2:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment簡介

  3:pjsip教程(三)之ICE stream transport的使用

  4:pjsip文檔(四)之ICE Session的使用方法

原文地址:http://www.pjsip.org/docs/latest/pjnath/docs/html/group__PJNATH__ICE.htm

Introduction to ICE

  ICE是提供客戶端穿越能力的有力武器,只要在兩個客戶端之間確實存在一條可以通信的路徑,ICE肯定就能找到該路徑,並且該路徑是兩個客戶端之間通信路徑中最高效的最節省資源的(在兩個客戶端之間經ICE探測后,可能存在多條路徑,而ICE保證從它那里獲取的路徑是最高效的).

  ICE把幾個協議結合在一起,在兩個客戶端之間能提供幾條候選路徑,這在最大程度上保證了兩端通信成功的幾率。並且它還提供了在幾條通信路徑中給出優先順序的能力,讓使用中繼(中繼的方式代價比較昂貴)的傳輸方式的優先級降到最低,只有在其他路徑都行不通的情況下,才會啟用該路徑。具體的ICE協商的過程包括以下幾個幾步:

  • 1:候選地址的收集:ICE客戶端收集本地所有可能用於通信的地址。所收集的地址類型分3種:主機候選地址(host candidate),這個地址其實就是本地物理網卡的地址;服務器反射候選地址(server reflexive candidate,其實就是在NAT上關於本地ip的映射地址),這個地址通過STUN服務器獲取;中轉/中繼候選地址(relay candidate),這個地址是在使用中繼(relay)的傳輸方式時,在中繼服務器(或者稱為TURN服務器)上為本地機器所分配的地址。
  • 2:候選地址的優先策略:一般情況下,使用中繼方式而產生的中繼候選地址的優先權最低,因為它的代價最昂貴。
  • 3:將本地候選地址編碼,把編碼后的候選地址傳送至對端,雙方通過報告/應答的方式進行協商。
  • 4:為候選地址配對兒:將本端的地址與對端的地址一一進行配對。此時應該已經通過某種方式得到了對端的候選地址。
  • 5:為每對兒地址做連接測試。
  • 6:得到結果:由於已經對所有候選地址一一配對,並一一進行連接測試,所以,如果確實存在一個可以通信的路徑,ICE肯定會找到他。

Using ICE transport

  ICE stream transport 是一個現成可用的對象,可以使用它來進行ICE操作,而且它為應用程序提供了數據發送與接受的接口,而數據收發的路徑,正是經ICE協商過后的高效的路徑。

Creating custom ICE transport

  如果ICE stream transport 還是不能滿足您的需求,那么您還可以通過使用本軟件包提供的ICE Session以及自己的數據傳輸策略去實現自己的運輸層,ICE stream transport 在這方面為您提供了很好的借鑒。

  轉載請注明:

  名稱:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment簡介

  作者:大雪先生

  鏈接:http://www.cnblogs.com/ishang/p/3413241.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM