libjingle翻译之《Important Concepts(重要概念)之Candidates(候选)》

Candidates(候选)

libjingle一个主要的好处就是它可以穿透防火墙和NAT设备进行链接协商。libjingle使用ICE机制穿透防火墙。libjingle应用程序第一步要做的就是在试图协商一个链接时为其它计算机的链入创建一个潜在的本地端口地址链表。链表中的每个潜在的地址就称作一个候选。候选就是“IP地址:端口”对应对,这些对应对使应用程序和其它计算机互联(技术上,这些对应对只在本地机上监听)。libjingle提供了强壮的机制在本地链接上发现候选供其它计算机进入,甚至穿透防火墙或NAT设备。

为了向其它计算机提供尽可能多的候选链接地址,libjingle生成三种本地候选:

● Local IP addresses 一种候选是计算机上的本地IP地址。与它共同在一个网络中的其它计算机能够通过这个候选进入。

● Global addresses第二种候选是两个计算机之间的NAT或防火墙设备的对外地址。如果这个候选是NAT设备对外地址,libjingle使用心跳包使NAT端口与本地机绑定起来并对外公布这个全局地址。这个全局地址被作为从NAT对外地址链接进入的候选。

(A second candidate is an external address on a NAT or firewall device between the two computers. If this

is outside a NAT device, libjingle uses STUN to cause the NAT to bind to your computer and expose a global address.

This address is used as a candidate to connect from outside the NAT device.)

● Relay server addresses 大约有8%的链接尝试在穿越防火墙时,上述方法失败。第三种方法就是在两个防火墙之间进行服务器中转。尽管libjingle有能力使用中转服务器,但是没有提供中转服务器的URI。libjingle包含中转服务的代码(relayserver.h)。应用程序可以自己创建和运行这个服务,使用方法是以中转服务器的IP地址做为BasicPortAllocator的构造函数的第三个参数。

 

 

libjingle以链表的形式储存着全部的候选,这样可以做到在链接建立后,libjingle能够在当前链接迟缓或中断后很快地切换到新的链接上。

libjingle包支持多种传输方式,实现了Jingle的<transport>元素表现出来的精神。一个transport元素能够包含比简单的候选地址更多的信息:例如:ICE标签支持像优先权,密码,用户碎片(user fragments)的特殊ICE。尽管这是协商链接的首选方法,为了向下兼容的正规考虑,libjingle仍然支持客户继续使用老式的<candidate>节。请查看Jingle ICE Transport Specification 里的transport详细说明。(对这一段的翻译无自信,把原文附出,请高手指教。)

时间: 2025-01-19 17:33:10

libjingle翻译之《Important Concepts(重要概念)之Candidates(候选)》的相关文章

libjingle翻译之《Important Concepts(重要概念)之Signals (信号)》

Important Concepts(重要概念) 你应该理解libjingle中以下的重要概念: ● Signals                                          (信号) ● Threads and Messages                     (线程.消息) ● Naming Conventions                        (命名约定) ● SSL Support                              

libjingle Important Concepts

Important Concepts You should understand the following important concepts about libjingle: Signals Threads and Messages Naming Conventions SSL Support Connections Transports, Channels, and Connections Candidates Data Packets Signals libjingle uses th

libjingle翻译之《Important Concepts(重要概念)之Transports, Channels, and Connections(传输、通道、链接)》

Transports, Channels, and Connections(传输.通道.链接) 每个p2pTransportChannel代表了本地机与远程机的数据通道.这个通道实际上包含着(隐藏着)一个设计复杂而健壮的体系.P2PTransportChannel管理着大量的不同的Connection对象,每个对象代表了一个不同种类的链接(UDP,TCP等).一个Connection对象实际上封装了一对对象:一个Port子类,代表了本地链接,和一个代表远程机的地址.如果一个链接无效,P2pTra

libjingle翻译之《Important Concepts(重要概念)之Connections(链接)》

Connections(链接) 一个p2p的链接实际上由两个通道组成. ●  session negotiation channel(也称作signaling channel),会话协商通道.是为数据链接服务的沟通通道.这个通道被用来回应取得一个链接的请求,交换候选,和协商会话的细节(比如:套接字地址,需要的编码方案,交换的文件,链接改变请求,终止请求).这个通道是两个计算机之间建立的第一个链接,也只有这个链接成功之后,两个计算机之间的数据链接才能被建立.libjingle通过发送一个指定的前导

C++内存管理学习笔记(5)

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com  /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/details/9112123 /************************

Device Tree Usage 【转】

转自:http://blog.chinaunix.net/uid-20522771-id-3457184.html   原文链接:http://devicetree.org/Device_Tree_Usage#How_Interrupts_Work   Device Tree Usage 设备树使用手册 This page walks through how to write a device tree for a new machine. It is intended to provide a

gatling官方文档翻译

第一篇 http://gatling.io/docs/2.2.1/index.html Gatling is a highly capable load testing tool. It is designed for ease of use, maintainability and high performance. Out of the box, Gatling comes with excellent support of the HTTP protocol that makes it a

网站优化之谷歌切词研究

在平时我们使用搜索引擎的时候,我们通常都是输入一个词语进行搜索,比如我们要去南部旅游,通常输入有名的旅游胜地的名字,如垦丁公园,西子湾,四重溪等这些名字,对要去的地点搜索了解,这些我们常用来搜索的字词称之为搜索关键字.很少人输入一句完整的话进行搜索. 所以很多的SEO就研究什麽样的词语会是线上浏览者经常用来搜索的,然后针对目标关键字对网站进行优化,还有一件事情是SEO们对网站进行优化时是必须要做的,就是研究一个网页包括网页标题,网页内容描述,网页段落的组织,关键字的密度的分析等这个工作对一个网页

Redesign再设计

一个网站的核心是它的功能和内容,而设计则决定了这些功能.内容如何被组织和展现出来. 对已成功的网站进行再设计--重新构造它的组织和展现形式是具有挑战性的.偏偏有设计师喜欢迎难而上,尝试对facebook.google这些著名网站进行概念设计.他们通常有两条思路,一是对现有问题挖掘然后改进,二是提出完全创新的想法. 下面收集整理+翻译了一些设计师的概念设计成果,其中各有优劣,有的交互让人眼前一亮,有的视觉表现优秀,有的缺乏实现的可能性,希望这些设计以及设计思路能给各位带来一些灵感. Faceboo