前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >P2P学习(三)网络传输基本知识

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

作者头像
全栈程序员站长
发布2022-09-07 11:10:45
7670
发布2022-09-07 11:10:45
举报
文章被收录于专栏:全栈程序员必看

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

一:NAT (Network Address Translator)

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

NAT的四种类型

二:STUN(Simple Traversal of UDP Through NAT)

(一)简单了解

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

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

(二)详解

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

代码语言:javascript
复制
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

代码语言:javascript
复制
共同点:都是通过修改应用层中的私网地址达到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.cn/154710.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:NAT (Network Address Translator)
    • P2P技术详解(一):NAT详解——详细原理、P2P简介
      • NAT的四种类型
      • 二:STUN(Simple Traversal of UDP Through NAT)
        • (一)简单了解
          • (二)详解
            • P2P技术详解(四):P2P技术之STUN、TURN、ICE详解
              • STUN是个轻量级的协议,是基于UDP的完整的穿透NAT的解决方案。它允许应用程序发现它们与公共互联网之间存在的NAT和防火墙及其他类型。它也可以让应用程序确定NAT分配给它们的公网IP地址和端口号。STUN是一种Client/Server的协议,也是一种Request/Response的协议,默认端口号是3478。
          • 三:TURN(Traversal Using Relays around NAT)
            • (一)简单了解
              • 经过介绍认识之后,A和B这两台主机就可以建立连接了,连接一旦建立完毕就可以传输数据,那光有STUN服务他们之间是不是就一定能够创建成功这个连接呢?
            • (二)详解
              • P2P技术详解(四):P2P技术之STUN、TURN、ICE详解
                • TURN与STUN
            • 四:ICE (Interactive Connectivity Establishment)
              • (一)简单了解
                • ICE就是将上面介绍的NAT、TURN等服务打包一起做一个最优的选择。
            相关产品与服务
            NAT 网关
            NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档