P2P学习(三)网络传输基本知识

P2P学习(三)网络传输基本知识一:NAT(NetworkAddressTranslator)P2P技术详解(一):NAT详解——详细原理、P2P简介NAT的四种类型二:STUN(SimpleTraversalof

大家好,又见面了,我是你们的朋友全栈君。

一:NAT (Network Address Translator)

P2P技术详解(一):NAT详解——详细原理、P2P简介

NAT的四种类型

二:STUN(Simple Traversal of UDP Through NAT)

(一)简单了解

有了NAT之后,可以将内网地址转成公网地址,那两个公网之间是不是就可以通讯了呢?

那中间还是缺了一步的,他们虽然 都存在这个世界上,但是彼此并不认识,怎么办呢?那必须要有一个第三方的服务做一个介绍,这个就是STUN服务。 STUN服务说白了就是做一个中介,把各自的公网信息进行一下交换,让他们彼此进行认识,这个STUN服务也非常简单

(二)详解

P2P技术详解(四):P2P技术之STUN、TURN、ICE详解

STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through NATs,即简单的用UDP穿透NAT

STUN是个轻量级的协议,是基于UDP的完整的穿透NAT的解决方案。它允许应用程序发现它们与公共互联网之间存在的NAT和防火墙及其他类型。它也可以让应用程序确定NAT分配给它们的公网IP地址和端口号。STUN是一种Client/Server的协议,也是一种Request/Response的协议,默认端口号是3478。 

三:TURN(Traversal Using Relays around NAT)

(一)简单了解

经过介绍认识之后,A和B这两台主机就可以建立连接了,连接一旦建立完毕就可以传输数据,那光有STUN服务他们之间是不是就一定能够创建成功这个连接呢

其实不一定,在美国有一项数据表示在进行P2P穿越的时候,有70%是可以穿越成功的,但是实际上在国内来说就很难达到这个70%的成功率,50%可能都到不了。那在现实过程中,我又要实现浏览器之间的传输,那当P2P连接不成功的情况下,如何保证音视频还能互通呢?

这就引入了TURN服务,TURN 就是在云端架设一个服务器,这个服务器就负责之间双方流媒体数据的转发,让他们进入到同一个房间里之后呢,这个TURN就会给房间里的所有人进行转发,那么对端就能收到了,A 发送信息通过TURN到了B,同样的B发送信息通过TURN发送给A。这样就在P2P连接不成功的情况下 ,它有了一条路线可以进行音视频的传输。这就是TURN服务。

(二)详解

P2P技术详解(四):P2P技术之STUN、TURN、ICE详解

TURN,在RFC5766中定义,英文全称Traversal Using Relays around NAT(TURN):Relay Extensions to Session Traversal Utilities for NAT(STUN),即使用中继穿透NAT:STUN的中继扩展

TURN与STUN

共同点:都是通过修改应用层中的私网地址达到NAT穿透的效果,

不同点:是TURN是通过两方通讯的“中间人”方式实现穿透。突破了原先STUN协议无法在两台主机不能够点对点直接连接下提供作用的限制。

如果一个主机位于NAT的后面,在某些情况下它不能够与其他主机点对点直接连接。在这些情况下,它需要使用中间网点提供的中继连接服务。TURN协议就是用来允许主机控制中继的操作并且使用中继与对端交换数据。

TURN与其他中继控制协议不同的是它能够允许一个客户端使用一个中继地址与多个对端连接TURN协议被设计为ICE的一部分,用于NAT穿越,虽然如此,它也可以在没有ICE的地方单独使用。

四:ICE (Interactive Connectivity Establishment)

ICE的全称Interactive Connectivity Establishment(互动式连接建立),由IETF的MMUSIC工作组开发出来的,它所提供的是一种框架,使各种NAT穿透技术可以实现统一。ICE跟STUN和TURN不一样,ICE不是一种协议,而是一个框架(Framework),它整合了STUN和TURN

(一)简单了解

ICE就是将上面介绍的NAT、TURN等服务打包一起做一个最优的选择。

1.那它首先尝试进行P2P,P2P在你的主机上有可能有双网卡或者是多个端口,当其中有一个端口或者某一个网卡不通的时候,它可以换其他的,如果两条都是通的时候,它选择一条更高效的,也就是说哪个网卡性能更好它会使用哪个。

2.那当P2P不通的时候它又会选择TURN服务中转,TURN也不一定能通,尤其是中国,很有可能被拦掉,那怎么办呢?那有可能选择了多个节点,有可能是在上海一个节点,在日本东京一个节点,当上海的节点不通的时候还可以 选择东京的节点,ICE就是将这些所有的可能性都罗列好,会在这其中找到一条最优的路径,将数据传送过去。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154710.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea tomcat8.5乱码_启动tomcat乱码

    idea tomcat8.5乱码_启动tomcat乱码打开tomcat安装目录conf/logging.properties,将所有的GBK内容改为UTF-8修改IDEA配置属性HELP->EditCustomVMOptions->添加一行->重启IDEA-Dfile.encoding=UTF-8效果图帮助到你的话,点个赞,鼓励一下,欢迎加入我的置顶博客设置的技术交流群。…

    2022年10月17日
    0
  • 【转载】C#调用国家气象局天气预报接口

    【转载】C#调用国家气象局天气预报接口

    2021年11月18日
    40
  • mysql官方监控工具_mysql数据库监控

    mysql官方监控工具_mysql数据库监控spy.properties可以直接到http://my.oschina.net/zh119893/blog/272545复制.P6Spy监控JDBC详细配置说明http://blog.csdn.net/u010280007/article/details/88131401、解压出p6spy.jar和spy.properties两个文件2、将p6spy.jar放入应用程序的WEB-INF…

    2022年9月27日
    1
  • noip2014普及组复赛题解_noip2019普及组复赛试题

    noip2014普及组复赛题解_noip2019普及组复赛试题NOIP2012普及组解题报告            byRtPYH——————————————————————————————————————前言:作者是一个蒟蒻,如果对本文有建议,欢迎提出!鄙人将虚心接受。

    2022年8月22日
    5
  • s3c2440启动过程分析

    s3c2440启动过程分析2440启动过程分析作者:王辉 2440启动过程算是一个难点,不太容易理解,而对于2440启动过程的理解,影响了后面裸机代码执行流程的分析,从而看出2440启动过程的重要性。 1 2440启动方式和启动方式选择在S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中搜索map,可以在第5章中搜索到下图。 从此

    2022年6月11日
    25
  • SpringBoot整合JDBC、整合Druid数据源详解教程

    SpringBoot整合JDBC、整合Druid数据源详解教程目录一、整合JDBC1.环境准备1.创建数据库2.创建SpringBoot项目3.IDEA连接数据库2.编写数据库配置信息3.编写测试类测试4.CRUD操作数据库1.JDBCTemplate简介2.CRUD测试二、整合Druid数据源1.Druid简介2.部分基本配置参数3.使用Durid数据源1.导入依赖2.切换数据源3.设置数据源属性4.使添加属性生效5.配置Druid后台监控Servlet6.配置Druid监控过滤器filter一、整合JDBC1.环境准备.

    2022年7月23日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号