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

Transports, Channels, and Connections(传输、通道、链接)

每个p2pTransportChannel代表了本地机与远程机的数据通道。这个通道实际上包含着(隐藏着)一个设计复杂而健壮的体系。P2PTransportChannel管理着大量的不同的Connection对象,每个对象代表了一个不同种类的链接(UDP,TCP等)。一个Connection对象实际上封装了一对对象:一个Port子类,代表了本地链接,和一个代表远程机的地址。如果一个链接无效,P2pTransportChannel会立即切换到下个最佳的链接上(即从候选链接中选一个最佳的)。

 

当libjingle和远程机协商一个链接时,libjingle就会在本地创建一个链表,用来储存所有潜在链接点,这潜在的链接点称作“candidates”(候选),本地的每个候选被一个Port对象封装,此Port对象被PortAllocator子类分配。本地的Port对象是在发起方在发送链接请求之前被创建,或接收方收到一个链接请求后被创建(如果Port对象链表己经被生成,不论这个链表是怎么创建的,只要有就行)。当P2PTransportChannel收到另外一个计算机的链接请求,它就会创建一个Connection对象来封装每个“远程候选/本地Port对象”对。

libjingle还定义了一个RawTransport类,此类支持UDP两端的直接链接(在不使用ICE的情况下)。这样的传输方式(链接方式)也许在能够创建UDP直连条件下或UDP的任何一方不支持ICE机制下被使用。

P2PTtransportChannel 创建和管理多个Connection对象。P2PtransportChannel根据可写入性和优先级(比如:UDP的优级先比中转链接的高)来选择最佳的Connection对象使用。

当链接异常中断或性能低下时,上述情况就会随之发生,P2PTransportChannel立刻会切换到下一个Connection对象上,并且这种切换对上层是透明的。

P2PTransport(图中未显示)是p2p数据体系上的抽象度较高的创建者和管理者。它创建和管理P2PTransportChannel,并且监视它的性能,但是实际上P2PTransport不处理数据;数据的真正进入点是P2PTransportChannelVoiceChannelPseudoTcpChannel都关联到了P2PTransportChannel进行数据的读取和写入。

Session对象掌管着P2PTransport对象,所以可以要求P2PTransport创建数据通道。尽管Session对象有掌管多个TransportTransport子类实例的潜力,但是当前版本的代码只定义和使用了一个P2PTransport子类的实例。

时间: 2024-09-22 19:23:55

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

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(重要概念)之Candidates(候选)》

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

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