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

本文涉及的产品
云防火墙,500元 1000GB
简介:

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有能力使用中转服务器,但是没有提供中转服务器的URIlibjingle包含中转服务的代码(relayserver.h)。应用程序可以自己创建和运行这个服务,使用方法是以中转服务器的IP地址做为BasicPortAllocator的构造函数的第三个参数。

 

 

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

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

目录
相关文章
|
4月前
|
C++ 开发者
C++一分钟之-概念(concepts):C++20的类型约束
【7月更文挑战第6天】C++20引入了Concepts,提升模板编程的精确性和可读性。概念允许设定模板参数的编译时约束。常见问题包括过度约束、不完整约束及重载决议复杂性。要避免这些问题,需适度约束、全面覆盖约束条件并理解重载决议。示例展示了如何定义和使用`Incrementable`概念约束函数模板。概念是C++模板编程的强大力量,但也需谨慎使用以优化效率和代码质量。
103 0
|
5月前
|
算法 程序员 编译器
C++一分钟之概念(concepts):C++20的类型约束
【6月更文挑战第30天】C++20的Concepts革新了模板编程,允许更清晰地表达类型要求,提升代码可读性和编译错误反馈。本文探讨Concepts基础、应用场景、易错点及避免策略,展示如何通过概念定义如Iterable、Addable,创建更健壮的泛型代码,强调了理解和利用编译器错误信息的重要性,以及概念与类型别名的区别。Concepts现已成为现代C++程序员的关键技能。
114 0
|
网络协议 物联网 智能硬件
【Matter】解密Matter协议(一)--- 关键概念及特性
本篇文章我们将介绍Matter的关键概念及特性。 Matter是一个基于IPV6的运行在TCP/IP上的应用层协议,Matter的底层可以工作在WiFi、Thread或者以太网协议上,而蓝牙是用来完成Matter的入网配置的。
2682 0
【Matter】解密Matter协议(一)--- 关键概念及特性
|
机器学习/深度学习 算法 算法框架/工具
传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
171 2
传输丰富的特征层次结构以实现稳健的视觉跟踪 Transferring Rich Feature Hierarchies for Robust Visual Tracking
|
算法 数据挖掘 Python
Machine Learning-L15-EM算法全解析(下)
Machine Learning-L15-EM算法全解析(下)
Machine Learning-L15-EM算法全解析(下)
|
机器学习/深度学习 算法 数据挖掘
Machine Learning-L15-EM算法全解析(上)
Machine Learning-L15-EM算法全解析
Machine Learning-L15-EM算法全解析(上)
【UCIe】UCIe 相关术语名词缩写释义
【UCIe】UCIe 相关术语名词缩写释义
201 0
【UCIe】UCIe 相关术语名词缩写释义
|
机器学习/深度学习 编解码 算法
Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
|
C++ 索引
Effective C++ 英中简繁术语对照
Effective C++ 英中简繁术语对照
173 0
Effective C++ 英中简繁术语对照
|
网络架构 Java Go
带你读《计算机体系结构:量化研究方法(英文版·原书第6版)》之一:Fundamentals of Quantitative Design and Analysis
本书堪称计算机系统结构学科的“圣经”,是计算机设计领域学生和实践者的必读经典。本书系统地介绍了计算机系统的设计基础、存储器层次结构设计、指令级并行及其开发、数据级并行、GPU体系结构、线程级并行和仓库级计算机等。本书内容丰富,既介绍了当今计算机体系结构的研究成果,也引述了许多计算机系统设计开发方面的实践经验。另外,各章结尾还附有大量的习题和参考文献。