一、相關協議簡介·XMPP協議(核心協議): 全稱:The Extensible Messaging and Presence Protocol,即可擴充通訊和表示協議。說白了,就是規定基於XML流傳輸指定節點資料的協議。這麼做的好處就是統一(peakflys註:大家都按照這個定義,做的東西就可以相互連訊、交流,這個應該很有發展前景!)。它是一個開放並且可擴充的協議,包括Jingle協議 都是XMPP協議的擴充。(peakflys註:使用Wireshark抓包時,早期的版本可能找不到這個協議,這時候可以選擇Jabber,它是XMPP協議的前身)。現在很多的IM都是基於XMPP協議開發的,包括gtalk等。 ·Jingle協議(重要的協議): Jingle協議是XMPP協議上的擴充協議,它著手解決在XMPP協議架構下的點對點的串連問題,也即P2P串連。在Jingle架構下,即使使用者在防火牆或是NAT網路保護之下,也能夠建立串連,從而提供檔案傳送、視頻、音頻服務等。綱領性檔案是XEP-0166 ·TURN協議: 全稱:Traversal Using Relays around NAT,顧名思義,就是通過轉送伺服器來傳輸資料的協議。 ·STUN協議: 全稱:Simple Traversal of UDP over NATs,即NAT 的UDP簡單穿越,它允許位於NAT(或多重NAT)後的用戶端找出自己的公網地址,查出自己位於哪種類型的NAT之後以及NAT為某一個本地連接埠所綁定的Internet端連接埠。知道NAT類型並且有了公網IP和port,P2P就方便多了。 ·ICE協議: 全稱:Interactive Connectivity Establishment,即 互動式串連建立,說白了,它就是利用STUN和TURN等協議找到最適合的串連。 二、Libjingle和各協議的關係 Jingle協議的發起方是Google,而libjingle庫也是Google公司實現,ICE協議又基本包含在Jingle協議裡,所以只需要知道libjingle和Jingle協議的區別即可。www.2cto.com 曆史:Libjingle大概和jingle XMPP 擴充在同一時間被建立。Libjingle的團隊建立了他們自己的協議去處理回話協商,後來和使用標準化的jingle(基於XMPP的標準)一起工作。儘管,jingle和libjingle是非常相似的,但是它們是不一樣的,而且不能共同使用。現在libjingle的源碼版本依然使用原始的網路通訊協定,跟以前的稍微有些不同,而且無法相容jingle的規範。不過它還是足夠的接近jingle,所以學習jingle的說明書是值得的。類似的“接近但不是一樣”,libjingle的視頻內容描述(早期的jingle的視頻內容描述格式XEP-0167),ICE的傳輸描述(早期的jingle的ICE傳輸XEP-0176),以及流的UDP描述(早期的jingle流UDP的傳輸描述XEP-0177) 三、相關文檔: RFC3921(下載: RFC3921) XMPP協議的樞紐文件 RFC3489(STUN)(下載:RFC3489) STUN協議的草案 rfc5245(ICE) (下載:RFC5245) ICE協議的草案 xep-0166(Jingle)(下載:XEP-0166) Jingle協議的官方主體文檔 xep-0176(Jingle ICE-UDP)(下載:XEP-0176) 定義Jingle和ICE結合的官方文檔(主要就是用XMPP作為ICE通道來重新描述ICE協議)
http://www.bkjia.com/PHPjc/477774.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477774.htmlTechArticle一、相關協議簡介 XMPP協議(核心協議): 全稱:The Extensible Messaging and Presence Protocol,即可擴充通訊和表示協議。說白了,就是規定基於...