一、 P2P(peer to peer)

P2P是一个“点对点传输技术”,也就是2台计算机之间不需要第三台机器作为服务端就能实现数据的传输。每台计算机即是客户端又是服务端。如果每台计算机都有自己的独立的公网IP,那么P2P技术就比较好实现了,但是现实中由于NAT的存在,使得P2P技术最大的难点就在于穿越NAT的限制,俗称“打洞”。

二、 NAT(Network Address Translation)

2.1 NAT的产生背景

IPv4即网际网协议第4版——Internet Protocol Version 4的缩写。
如果我们把Internet比作一个邮政系统,那么IP地址的作用就等同于包含城市、街区、门牌编号在内的完整地址,可以准确的定位到某一台计算机。IPv4使用32bits整数表达一个地址,地址最大范围就是232 约为43亿。以IP创始时期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的设想,计算机网络在此后的几十年里迅速壮大,网络终端数量也呈爆炸性增长。

更为糟糕的是,为了路由和管理方便,43亿的地址空间被按照不同前缀长度划分为A,B,C,D类地址网络和保留地址。IANA向超大型企业/组织分配A类网络地址,一次一段。向中型企业或教育机构分配B类网络地址,一次一段。这样一种分配策略使得IP地址浪费很严重,很多被分配出去的地址没有真实被利用,地址消耗很快。以至于二十世纪90年代初,网络专家们意识到,这样大手大脚下去,IPv4地址很快就要耗光了。于是,人

WebRTC -- P2P及NAT穿越技术介绍相关推荐

  1. NAT 穿越技术(一)

    转自:https://g.hacking8.com/urlsa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&am ...

  2. 视频监控p2p android,网络视频监控P2P解决方案:NAT穿越

    NAT的穿越并非安防监控领域的技术,是目前VOIP以及即时通信等产品的基础性技术,目前来讲已经比较成熟,且有完整的技术标准RFC,同时也有众多的实现方案,包括许多已经得到广泛应用的开源项目. 简单来讲 ...

  3. SIP协议的NAT穿越技术

    作者: Diana Cionoiu 原文: http://freshmeat.net/articles/view/2079/ 翻译:Karl Ma NAT 指的是网络地址转换(Netword Addr ...

  4. P2P技术详解(三):P2P中的NAT穿越(打洞)方案详解(进阶分析篇)

    目录 1.NAT和NAPT 2.NAT带来的问题 3.P2P通信穿越NAT的技术.方法 4.NAT穿越技术1:应用层网关 4.1.原理 4.2.限制 5.NAT穿越技术2:中间件技术 5.1.原理 5 ...

  5. 环信即时通讯云技术博客——P2P实时音视频之NAT穿越

    在P2P实时音视频领域,NAT穿越是一个非常重要的技术.NAT穿越技术使得客户端和客户端直接进行通讯,从而减少了端到端的延迟,并大大减轻了服务器的压力,降低成本. NAT是什么 NAT的全称Netwo ...

  6. P2P之NAT穿透原理

    P2P之NAT穿透原理介绍 背景 一次项目中,对于主动协议接入的设备,客户希望能够设备端直接推送码流到客户端以此减少中心媒体的负载.所以对P2P这块方案做了了解,这里做下整理. 基本概念 P2P对等网 ...

  7. P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

    目录 1.内容概述 2.反向链接技术:一种特殊的P2P场景(通信双方中只有一方位于NAT设备之后) 3.基于UDP协议的P2P打洞技术详解 3.1.原理概述 3.2.典型P2P情景1: 两客户端位于同 ...

  8. p2p网络中的NAT穿透技术----常见NAT穿越解决方案

    p2p网络中的NAT穿透技术----常见NAT穿越解决方案 常见NA丁穿越解决方案 NAT技术在缓解IPv4地址紧缺问题.构建防火墙.保证网络安全等方面都发挥了重要 作用.然而,NAT设备的广一泛存在 ...

  9. 《Getting Started with WebRTC》第二章 WebRTC技术介绍

    <Getting Started with WebRTC>第二章 WebRTC技术介绍 本章作WebRTC的技术介绍,主要讲下面的概念:   .  怎样建立P2P的通信   .  有效的信 ...

最新文章

  1. React + Koa 实现服务端渲染(SSR)
  2. 智能车竞赛:提问与回答
  3. jQuery 标签切换----之选项卡的实现
  4. nyoj676小明的求助
  5. 无法加载模块:public_Lua模块与包
  6. batch lr替代关系_建立关系的替代方法
  7. PHPer的水平区分 (转)
  8. 所有的低谷,都是为了更上一层楼
  9. 中国家禽细菌学诊断行业市场供需与战略研究报告
  10. 利用Gabor变换法分析纹理图像 matlab代码实现
  11. 编写java程序手动挡car_阅读下列说明、图和Java代码,填补空缺。[说明] 已知对某载客车辆(Car)进行类建模,如图13-2所示,其 - 赏学吧...
  12. 在html中如何缩小图片,如何减小网页中图片的尺寸?
  13. 戴尔电脑重装win10系统
  14. 连载]第四讲 测量准确度、重复性、复现性及标准偏差
  15. 转载: WebKit介绍及总结(一)
  16. JVM线程本地分配缓冲区(Thread Local Allocation Buffer)TLAB详解
  17. UML之我做分析与设计时常用到的2种图
  18. xp系统更改计算机名c盘,XP系统怎么更改盘符卷标?修改盘符字母的方法
  19. C#修改图片尺寸,不改变原有图片比例
  20. JAVA桌面UI编程之布局管理器

热门文章

  1. 初次发现 ondblclick( ) 方法
  2. 如何锁定计算机硬盘e盘,手把手教你如何给硬盘加密
  3. 蔡依林不顾危险大玩吊环倒挂 低胸短裙弯腰走光
  4. 火山中文编程 -- 第一个windows程序
  5. Android客户端连接以太坊私链时发生遇到的问题
  6. 【翻译】CEDEC2013 BANDAI NAMCO 了解游戏格斗动画中的身体运动结构和原理
  7. 菜菜的机器学习sklearn实战-----sklearn入门与决策树
  8. 程序调试篇 | 如何在Pycharm中高效调试Python程序,高效找bug!!!
  9. Python+Excel+Word一秒制作百份合同
  10. Python网络爬虫实战:世纪佳缘爬取近6万条小姐姐数据后发现惊天秘密