目录

1.P2P架构

2.P2P Discovery简述

3.P2P Discovery流程


1.P2P架构

什么是P2P?

P2P全称P2P网贷,是个人对个人的意思,是互联网金融的一种,P2P就是利用互联网平台,把一部分人的小额闲散资金,直接出借给急需要用钱的个人。。。

咦?好像跑偏了~

WIFI P2P是有Wi-FI联盟推出的一项技术规范,该规范可以允许WiFi设备在没有AP的情况下实现连接。该项技术可以实现视频数据的传输,例如Miracast技术就是基于P2P实现的。

P2P架构中定义了三个组件,分别为:

P2P Device:它是一个实体角色,可以把它认为成一个WIFI设备。

P2P Group Owner:Group Owner简称GO,是一个虚拟角色(会实际对应某个P2P Device),它类似于Infrastructure BSS中的AP。

P2P Client:与GO相对的一种虚拟角色,它类似于Infrastructure BSS中的STA。

P2P设备之间通过P2P协商后,可以协商出某个设备为GO,另外一个设备为GC。

一个常见的P2P Group拓扑结构如下图:

和一个Infrastructure BSS类似,一个P2P Group中只能有一个GO。一个GO可以支持1个或多个(即图中的1:n)Clients连接。

由于GO的功能类似于AP,所以周围那些不支持P2P功能的STA也能发现并关联到GO。这些STA被称之为Legacy Clients。

2.P2P Discovery简述

P2P Discovery是实现多个P2P Device能够相互发现并构建一个Group。根据P2P规范,它包含如下四个主要技术项:

Device Discovery:用于P2P设备发现周围的其他P2P设备。

Service Discovery:该技术项是可选的,是建立在Device Discovery的基础上的,用于搜索指定的服务。

Group Formation:用于协商出两个P2P Device谁来做GO,谁来做GC。

P2P Invitation:用于激活一个Persistent Group,或者用于邀请一个Device加入到当前的Group。

3.P2P Discovery流程

P2P Device Discovery利用Probe Request和Probe Respone帧来搜索周围的P2P设备。

Device Discovery定义了两个阶段和两个状态。

两个阶段分别为:

Scan Phase:扫描阶段。在该阶段,P2P Device会在各个频段上发送Probe Request帧(主动扫描)。P2P Device在这一阶段中不会处理来自其他设备的Probe Request帧。这一阶段过后,P2P Device将进入下一个阶段,即Find Phase。

Find Phase:在这一阶段中,P2P Device将在Search State和Listen State之间来回切换。Search State中,P2P Device将发送Probe Request帧,而Listen State中,它将接收其他设备的Probe Request帧并回复Probe Response帧。

两个状态分别为:

Search State:在此状态下,P2P Device将在2.4GHZ的1/6/11频段上分别发送Probe Request帧。为了与非P2P的Probe Requst帧进行区分,P2P的Probe Request帧中会包含P2P IE。

Listen State:在该状态下,P2P Device将随机选择在1/6/11频段中的一个频段来监听Probe Request帧并回复Probe Request帧。选定的频段被称为Listen Channel,在整个Discovery阶段都不会更改。

下图是一个P2P Device Discovery的流程示意图,我们以该图为例再来看一下流程。

(1)Discovery流程启动后,设备先进入Scan Phase阶段,在该阶段,P2P设备在其所支持的频段上发送Probe Request帧。

(2)Scan阶段完成后,Device进入Find Phase,在该阶段中,设备将在Listen和Search阶段之间进行切换。每个设备的Listen Channel在Discovery阶段是固定不变,例如本例,Device 1的Listen Channel为1,Device 2的Listen Channel是6。

处于Listen State的时间是不固定的,但是需要满足100TU的整数倍,这样做个目的是为了防止设备进入所谓的Lock-Step怪圈,即避免两个设备同时进入Listen State,等待相同的时间后又同时进入Search State。例如本例中,Device 1在Listen State阶段待了1个100TU,Device 2待在Listen State阶段待了3个100TU。

(3)P2P Device 1在进入Search时,先在ch1上发送Probe Request包,而此时的P2P Device 2虽然恰好进入了Listen State,但是其在ch1上接收数据包,所以设备之间无法进行互发现。

(4)而当Device 1在ch6上发送Probe Request包时,P2P Device 2可能会接收到该包,接收到了就知道了周围存在一个Device 1,然后就可以在ch6回复一个Probe Request,设备P2P Device 1接收到了Response包后就知道了Device 2的存在了。

持续关注本博客内容,请微信关注个人公众号:万物互联技术~

P2P原理之设备发现相关推荐

  1. android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...

    ! 我正在开发一个Android应用程序,允许与附近已安装此应用程序的设备聊天.为了做到这一点,我使用Wi-Fi P2P API和网络服务发现来搜索附近的设备. 我已经编写了用于在服务启动的线程中搜索 ...

  2. 局域网设备发现之Bonjour协议

    局域网设备发现之Bonjour协议 2016年09月28日 23:37:43 吴跃前 阅读数 14979 标签: 局域网 设备发现 Bonjour协议 mDNS协议 DNS-SD协议 更多 个人分类: ...

  3. Onvif备忘录(2)----客户端端设备发现

    续上篇,框架代码生成之后,就可以进行基于Onvif的开发了,先实现一个简单的设备发现的例子. VisualStudio中新建一个空白工程,将上篇中生成的框架代码添加进来,但soapServer.c文件 ...

  4. Onvif之设备发现-基于gsoap2.8.27

    Onvif之设备发现-基于gsoap2.8.27 工具及平台: Gsoap版本:gsoap2.8.27 Onvif :WSDL文档,(2015.12.15最新文档) 框架代码生成:windows下ws ...

  5. onvif 模拟摄像头_ONVIF 设备发现(网络摄像头)——实例笔记

    相关配置 ONVIF官网:http://www.onvif.org/ gSOAP安装配置:gSOAP安装配置+使用案例参考+参考链接 操作系统:CentOS7 资料参考: 许振坪的ONVIF专栏:传送 ...

  6. 路缘石滑模机实现快速施工的原理以及设备结构

    路缘石滑模机进行公路的连续施工建设是通过原材料的不间断供应,并沿着设置好的标识线进行自动校准潜行作业,通过搭载的模具频率的振捣作业将成型的构造通过出口进行连续的实处进行的, 设备的核心需求就在于原材料 ...

  7. ONVIF系列笔记-设备发现机制

    ONVIF系列笔记-设备发现机制 ONVIF系列笔记-功能接口地址的获取 ONVIF系列笔记-流地址的获取 ONVIF系列笔记-PTZ的控制 ONVIF系列笔记-调焦切换及背光控制 SFX流媒体解决方 ...

  8. onvif服务器篇之设备发现(onvif discover)

    一.设备发现的机制 从ONVIF的官方文档中可以了解到,客户端在UDP协议下,向网段内的组播地址239.255.255.250,端口3702,不断地向四周发送Probe消息探针,而网段内的服务器在接收 ...

  9. Matter协议特性解析(三) 设备发现,认证和配网

    聚焦:芯产品,芯市场,芯资讯 本文是Matter专题第6篇文章: 设备发现,认证和配网,是网络构建流程的重要部分:Matter入网流程,为了保证安全,设计偏复杂,为了方便理解,本文从3个不同的维度进行 ...

  10. 思科服务器查看生成树协议,生成树协议、CDP思科设备发现协议、SSH协议

    线路冗余->交换机成环 交换机成环导致: 1 广播风暴 2 mac地址表震荡 一个mac在一台交换机上只能对应一个接口,但一个接口可以对应多个mac 3 重复帧拷贝 生成树协议: 802.1D. ...

最新文章

  1. java多线程编程同步方法_实践【Java多线程编程核心技术】系列:同步方法造成的无限等待...
  2. python小游戏代码大全-python贪吃蛇游戏代码
  3. BZOJ 1924 [Sdoi2010]所驼门王的宝藏
  4. jQuery给输入框绑定键盘事件
  5. 【抓包工具】Wireshark(详细介绍与TCP三次握手数据分析)
  6. c#通过app.manifest使程序以管理员身份运行
  7. docker导入镜像 liunx_docker扫盲?面试连这都不会就等着挂吧
  8. java中线程存活和线程执行的问题!
  9. pcl点云PCD文件
  10. 微信小程序选择框问题 小程序picker点击显示object range-key=这里写要显示的字段
  11. oracle 联表求和不重复_糊涂了10年,这个Excel公式到底是怎么不重复计数的?
  12. Emgu.CV.CvInvoke的类型初始值设定项引发异常
  13. 【VB6】如何用纯VB代码写个五子棋程序?(一)
  14. 软件库App源码+后端源码
  15. SpringCloud OpenFeign调用第三方服务
  16. 微积分基本公式-牛顿莱布尼兹公式
  17. 天池案例-贷款违约预测(lgb)
  18. Linux下安装新世纪五笔输入法(附表)(for 小白)
  19. 写论文需要哪些软件?用迅读PDF大师,PDF转换编辑压缩
  20. POJ 1265 Area(Pick定理)

热门文章

  1. python经济统计学论文_Python商务与经济统计学-1
  2. 腔体缝隙天线[搬运]
  3. 蛋白工厂(rRNA)和物流系统(tRNA)的识别鉴定-Barrnap,Infernal和tRNA-scan-SE
  4. win10装inventor哪个版本_超详细!高效电脑装系统教程
  5. 神经网络的过拟合是什么,神经网络过拟合的表现
  6. 如何删除我的计算机里的搜索记录,计算机里搜索栏的历史记录怎么删除?
  7. 2020中青杯B题股指与国家经济数学建模全过程文档及程序
  8. 会员卡管理系统从哪些方面解决门店会员营销困扰?
  9. “私域”和“会员制”有什么区别?
  10. 佳能Canon Pixma MX420 打印机驱动