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

简介:

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

每个p2pTransportChannel代表了本地机与远程机的数据通道。这个通道实际上包含着(隐藏着)一个设计复杂而健壮的体系。P2PTransportChannel管理着大量的不同的Connection对象,每个对象代表了一个不同种类的链接(UDPTCP等)。一个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子类的实例。

目录
相关文章
|
4月前
|
存储 数据库
PACS(Picture Archiving and Communications System)图像存储与传输系统源码
PACS(Picture Archiving and Communications System)图像存储与传输系统源码
34 0
|
4月前
|
数据安全/隐私保护
ACK Acknowledgement 确认 AES Advanced Encryption Standard 高级加密标准 ATM Asynchronous Transfer Mode异步传输模式
ACK Acknowledgement 确认 AES Advanced Encryption Standard 高级加密标准 ATM Asynchronous Transfer Mode异步传输模式
23 0
|
11月前
|
机器学习/深度学习 计算机视觉 网络架构
【即插即用】Triplet Attention机制让Channel和Spatial交互更加丰富(附开源代码)
【即插即用】Triplet Attention机制让Channel和Spatial交互更加丰富(附开源代码)
113 0
|
网络协议 物联网 智能硬件
【Matter】解密Matter协议(一)--- 关键概念及特性
本篇文章我们将介绍Matter的关键概念及特性。 Matter是一个基于IPV6的运行在TCP/IP上的应用层协议,Matter的底层可以工作在WiFi、Thread或者以太网协议上,而蓝牙是用来完成Matter的入网配置的。
1985 0
【Matter】解密Matter协议(一)--- 关键概念及特性
|
安全 网络协议 物联网
1. 【Matter】解密Matter协议(一)--- 什么是Matter协议
目前的智能家居行业使用解决方案众多,相互之间隔离严重,有WiFi、蓝牙、ZigBee、蜂窝或者有线等等不同通讯协议的设备。不仅不同协议之间的设备不能互通,而且连相同通讯协议之间的设备也不能互通。例如谷歌助手控制谷歌产品,亚马逊语音设备可以用于亚马逊的设备,苹果使用Siri来驱动其产品,而国内小米、阿里等物联网平台也都有自己的生态。而Matter协议就是为了解决这些兼容性问题而诞生的, 并且在2022年十月CSA(连接标准联盟)正式发布了Matter标准协议1.0版本。
867 0
1. 【Matter】解密Matter协议(一)--- 什么是Matter协议
|
存储 监控 算法
多媒体信息处理学习笔记-Chap 4. Text Processing and Information Retrieval
多媒体信息处理学习笔记-Chap 4. Text Processing and Information Retrieval
66 0
多媒体信息处理学习笔记-Chap 4. Text Processing and Information Retrieval
|
存储 算法 数据挖掘
多媒体信息处理学习笔记-Chap 5. Audio Retrieval(上篇)
多媒体信息处理学习笔记-Chap 5. Audio Retrieval(上篇)
80 0
|
机器学习/深度学习 存储 自然语言处理
多媒体信息处理学习笔记-Chap 5. Audio Retrieval(下篇)
多媒体信息处理学习笔记-Chap 5. Audio Retrieval(下篇)
86 0
多媒体信息处理学习笔记-Chap 5. Audio Retrieval(下篇)
|
算法 数据库
线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
上一篇聊了聊构建分布式系统所面临的困难,这篇将着重讨论构建容错分布式系统的算法与协议。构建容错系统的最佳方法是使用通用抽象,允许应用程序忽略分布式系统中的一些问题。
1427 0
|
XML JSON 数据格式
编码与模式------《Designing Data-Intensive Applications》读书笔记5
进入到第四章了,本篇主要聊的点是编码(也就是序列化)与代码升级的一些场景,来梳理存储之中涉及到的编解码的流程。目前主流的编解码便是来自Apache的Avro,来自Facebook的Thrift与Google的Protocolbuf,在本篇之中,我们也会一一梳理各种编码的优点与痛点。
1280 0

热门文章

最新文章