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

简介:

Connections(链接)

一个p2p的链接实际上由两个通道组成。

  session negotiation channel(也称作signaling channel),会话协商通道。是为数据链接服务的沟通通道。这个通道被用来回应取得一个链接的请求,交换候选,和协商会话的细节(比如:套接字地址,需要的编码方案,交换的文件,链接改变请求,终止请求)。这个通道是两个计算机之间建立的第一个链接,也只有这个链接成功之后,两个计算机之间的数据链接才能被建立。libjingle通过发送一个指定的前导协议节发出一次响铃并收到一个回应,数据链接则被建立(see Jingle and libjingle)。这个通道发送协议节是通过XMPP 服务器这一中间机构进行的,例子中的代码是把Google Talk服务器当作中间机构用的。

 data channel  (娄据通道,数据链接)这个通道传送的是p2p两端真正交换的数据(语音,视频,文件等),数据通道里的数据被TCPUDP包封装,到底是TCP还是UDP这要视协商的传送方式,这些包并没有经过XMPP服务器。

会话协商通道首先被建立,它作为计算机间协商建立数据通道细节的通道。数据通道被成功建立之后,在这个通道上将发生许多数据活动,除非碰到改变编码请求,新文件请求,重传请求,或终止请求。


 

注意:

1libjingle不时地发送出心跳包(STUN),来维持一个链接可写入,保持防火墙和NAT地址绑定处于活动态,并且还可用来检查潜在的链接。

2linjingle向链接端口分配用户名和密码。此举用来确定当前链接的数据通道就是在会话协商通道上协商好的数据通道。因为用户名和密码是被XMPP发出的,也许没有经过TLS的加密,心跳包中的用户名和密码只是身份的标识,并没有加密验证。

运行 file share 例子程序,可以看到发出的真实协议节。

目录
相关文章
|
4月前
|
C++ 开发者
C++一分钟之-概念(concepts):C++20的类型约束
【7月更文挑战第6天】C++20引入了Concepts,提升模板编程的精确性和可读性。概念允许设定模板参数的编译时约束。常见问题包括过度约束、不完整约束及重载决议复杂性。要避免这些问题,需适度约束、全面覆盖约束条件并理解重载决议。示例展示了如何定义和使用`Incrementable`概念约束函数模板。概念是C++模板编程的强大力量,但也需谨慎使用以优化效率和代码质量。
101 0
|
5月前
|
算法 程序员 编译器
C++一分钟之概念(concepts):C++20的类型约束
【6月更文挑战第30天】C++20的Concepts革新了模板编程,允许更清晰地表达类型要求,提升代码可读性和编译错误反馈。本文探讨Concepts基础、应用场景、易错点及避免策略,展示如何通过概念定义如Iterable、Addable,创建更健壮的泛型代码,强调了理解和利用编译器错误信息的重要性,以及概念与类型别名的区别。Concepts现已成为现代C++程序员的关键技能。
106 0
|
网络协议 物联网 智能硬件
【Matter】解密Matter协议(一)--- 关键概念及特性
本篇文章我们将介绍Matter的关键概念及特性。 Matter是一个基于IPV6的运行在TCP/IP上的应用层协议,Matter的底层可以工作在WiFi、Thread或者以太网协议上,而蓝牙是用来完成Matter的入网配置的。
2680 0
【Matter】解密Matter协议(一)--- 关键概念及特性
|
安全 网络协议 物联网
1. 【Matter】解密Matter协议(一)--- 什么是Matter协议
目前的智能家居行业使用解决方案众多,相互之间隔离严重,有WiFi、蓝牙、ZigBee、蜂窝或者有线等等不同通讯协议的设备。不仅不同协议之间的设备不能互通,而且连相同通讯协议之间的设备也不能互通。例如谷歌助手控制谷歌产品,亚马逊语音设备可以用于亚马逊的设备,苹果使用Siri来驱动其产品,而国内小米、阿里等物联网平台也都有自己的生态。而Matter协议就是为了解决这些兼容性问题而诞生的, 并且在2022年十月CSA(连接标准联盟)正式发布了Matter标准协议1.0版本。
1078 0
1. 【Matter】解密Matter协议(一)--- 什么是Matter协议
Knowledge of Network Building&Maintenance(网络组建与维护知识点)
CH1 计算机网络技术基础 一、Gap Filing1.编码是将模拟数据or数字数据变换成数字信号,以便于数据的传输和处理。信号必须进行编码,使得与传输介质相适应。(第一点存疑) 2.在数据传输系统中,主要采用以下3种数据编码技术:-数字数据的数字信号编码-模拟数据的数字信号编码-数字数据的模拟信号编码Knowledge Extension:数据传输方式有以下4类a.模拟数据的模拟信号编码 b.数字数据的数字信号编码c.数字数据的模拟信号编码 d.模拟数据的数字信号编码这4类中除了模拟数据的模拟信号编码之外,其他3类都属于数据编码技术。
2259 0
|
算法 数据库
线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
上一篇聊了聊构建分布式系统所面临的困难,这篇将着重讨论构建容错分布式系统的算法与协议。构建容错系统的最佳方法是使用通用抽象,允许应用程序忽略分布式系统中的一些问题。
1489 0
|
XML JSON 数据格式
编码与模式------《Designing Data-Intensive Applications》读书笔记5
进入到第四章了,本篇主要聊的点是编码(也就是序列化)与代码升级的一些场景,来梳理存储之中涉及到的编解码的流程。目前主流的编解码便是来自Apache的Avro,来自Facebook的Thrift与Google的Protocolbuf,在本篇之中,我们也会一一梳理各种编码的优点与痛点。
1310 0