首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FreeBuf

    深入浅出低功耗蓝牙(BLE协议

    协议框架 一般而言,我们把某个协议的实现代码称为协议(protocol stack),BLE协议就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议的前提。 在深入BLE协议各个组成部分之前,我们先看一下BLE协议整体架构。 ? HCI是可选的(具体请参考文章:三种蓝牙架构实现方案(蓝牙协议方案)),HCI主要用于2颗芯片实现BLE协议的场合,用来规范两者之间的通信协议和通信命令等。 我相信很多人看了上面的介绍,还是不懂BLE协议的工作原理,以及每一层具体干什么的,为什么要这么分层。下面我以如何发送一个数据包为例来讲解BLE协议各层是如何紧密配合,以完成发送任务的。 2. 标签: ATT, GAP, Link layer, GATT, L2CAP, BLE stack, 广播, 连接, BLE协议, 链路层 3.

    6K43发布于 2020-12-08
  • 来自专栏FreeBuf

    深入浅出低功耗蓝牙(BLE)协议(实战篇)

    环境搭建 上面介绍了数据包和各层协议,接下来我们将使用Ubertooth One来捕获通信过程中的蓝牙数据包。 ? -09-R2.tar.gz tar xf libbtbb-2015-09-R2.tar.gz cd libbtbb-2015-09-R2 mkdir build cd build cmake .. make ubertooth-2015-09-R2.tar.xz -O ubertooth-2015-09-R2.tar.xz tar xf ubertooth-2015-09-R2.tar.xz cd ubertooth /configure make && make plugins sudo make suidinstall sudo make plugins-install (6)安装BLE解密工具crackle crackle capture occurs. ubertooth-btle -f -ctest.pcap抓包&保存到本地 使用这条命令我们可以把设备捕获到的数据包保存到本地,完成后可导入wireshark进行数据包、协议分析

    3.8K20发布于 2020-12-09
  • 来自专栏全栈程序员必看

    比特币p2p协议_协议p2p

    大家好,又见面了,我是你们的朋友全君 比特币网络节点具有所有四个功能(理论上的很多来自《精通比特币》): 钱包:用户钱包也可以作为全节点的一部分(桌面比特币客户端中比较常见);当前,越来越多的用户钱包都是 每个节点都参与验证并传播交易及区块信息,发现并维持与对等节点的连接 比特币主网络:大约5000-8000个运行着不同版本比特币核心客户端(Bitcoin Core)的监听节点 + 以及几百个运行着各类比特币P2P 比特币P2P主网络上连接着许多矿池服务器以及协议网关,它们把运行其他协议的节点连接起来。这些节点通常都是矿池挖矿节点(参见挖矿章节)以及轻量级钱包客户端,它们通常不具备区块链的完整备份。 新的网络节点必须发现至少一个网络中存在的节点并建立连接 由于比特币网络的拓扑结构并不基于节点间的地理位置,因此各个节点之间的地理信息完全无关 节点通常采用TCP协议 verack握手包: A=>B回一个verack握手包: 要求从peer节点批量获取指定区块HASH的区块头 B=>A请求的所有块头信息 在https://btc.com/查询进行验证: 发布者:全程序员

    1.5K10编辑于 2022-09-27
  • 来自专栏全栈程序员必看

    uIP协议分析_协议

    由于uIP协议专门为嵌进式系统而设计,因此还具有如下优越功能: (1) 代码非常少,其协议代码不到6K,很方便阅读和移植。 (2) 占用的内存数非常少,RAM占用仅几百字节。 由于uIP对资源的需求少和移植轻易,大部分的8位微控制器都使用过uIP协议, 而且很多的著名的嵌进式产品和项目(如卫星,Cisco路由器,无线传感器网络)中都在使用uIP协议。 uIP协议与系统底层和高层应用之间的关系如图2-1所示。 从上图可以看出,uIP协议主要提供了三个函数供系统底层调用。 uIP协议为C语言编写,编译过程中的题目比较少,并且轻易解决。 uIP的主控制循环 通过实际的代码说明uIP协议的主控制循环。 1.初始化uIP协议:uip_init() 2.处理输进包:uip_input() 3.处理周期计时势件:uip_periodic() 4.开始监听端口:uip_listen

    1.4K20编辑于 2022-09-27
  • 来自专栏全栈程序员必看

    ZigBee协议(一)–协议介绍

    协议协议的具体实现形式,通俗讲协议就是协议和用户之间的一个接口,开发人员通过使用协议来使用这个协议,进而实现无线数据收发。    图1 ZigBee无线网络协议层的架构图 2、如何理解Zigbee协议   协议协议的实现,可以理解为代码,库函数,供上层应用调用,协议较底下的层与应用是相互独立的。 每个厂家的协议是有区别的,比如TI的BLE协议和nordic的BLE协议就有很大的不同(多说一点,TI的BLE协议更像是安卓的BLE结构,所以会安卓蓝牙的人可能能看懂TI的代码)。 4、安装Zigbee协议   从我百度共享的所有本系列资料中下载004解压并安装: 图2 ZigBee协议下载路径 安装好之后在win7开始按钮下会有如下文件结构: 图3 图7 实验现象 7、基于协议的无线收发控制LED工程讲解(三) main code: 1 int main( void ) 2 { 3 osal_int_disable( INTS_ALL

    3.5K20编辑于 2022-09-01
  • 来自专栏蓝牙Ble/Mesh

    BLE安全之SM剖析(2)

    BLE安全之SM剖析(2)   上一章介绍了配对流程的第一阶段,剖析了配对第一阶段的配对请求包和配对响应包的各个字段的含义和使用。 机端和设备端分别生成一个随机数,LP_RAND_I 和 LP_RAND_R 2. 主机将LP_CONFIRM_I发送给设备端, 设备端将LP_CONFIRM_R值发送给主机端 2. 2. 双方收到对方公钥后,分别验证收到的公钥是否是合法的,双方根据ECDH算法可以计算出相同的共享密钥DHKey。 双方分别生成一个随机数Na和Nb 2.

    1.9K10编辑于 2023-02-28
  • 来自专栏全栈程序员必看

    zigbee协议应用(二)基础协议入门

    zigbee基础理论 1.协议 (1)协议定义 协议是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程: 由上层协议到底层协议,再由底层协议到上层协议协议协议的具体实现形式,通 俗点来理解就是协议协议和用户之间的一个接口,开发人员通过使用协议来使用这个 协议的,进而实现无线数据收发。 怎么使用协议 协议协议的实现,可以理解为代码,函数库,供上层应用调用, 用户实现一个简单的无线数据通信时的一般步骤 1、组网:调用协议的组网函数、加入网络函数,实现网络的建立与节点的加入。 2、发送:发送节点调用协议的无线数据发送函数,实现无线数据发送。 3、接收:接收节点调用协议的无线数据接收函数,实现无线数据接收。 协议很多都封装好了,下面我们大概看看无线发送函数: 1. afStatus_t AF_DataRequest( afAddrType_t *dstAddr, 2. endPointDesc_t *

    2.2K21编辑于 2022-09-02
  • 来自专栏建帅技术分享

    TCPIP协议

    图片

    73720编辑于 2022-08-24
  • 来自专栏全栈程序员必看

    Zigbee 协议

    Zigbee 协议 平台 协议对我们的作用 怎么使用协议 协议的安装、编译与下载 Components (部件) Documents (文件) Projects (项目例子) Tools (工具 OSAL :协议的操作系统。 TI ZStack-CC2530-2.5.1a 协议对我们的作用 协议协议的实现,可以理解为代码,函数库, 供上层应用调用,协议较底下的层与应用是相互独立的。 2、发送:发送节点调用协议的无线数据发送函数,实现无线数据发送。 3、接收:接收节点调用协议的无线数据接收函数,实现无线数据接收。 先别急还要先安装ZigBee协议才能进行开发调试呢,下面就动手安装ZigBee协议吧。

    1.9K41编辑于 2022-09-01
  • 来自专栏车联网/IoT安全

    BLE (低功耗蓝牙)协议入门-01-整体介绍

    本章介绍蓝牙协议(重点介绍:BLE)的基本特点、版本演进、协议的构成、等基础知识,本章重在了解,目的是对BLE协议有个大概的认知,即了解BLE协议的全貌。 BLE协议的实现方式采用分层的思想: 控制器部分包括:物理层(PHY)、链路层(LL)、控制接口层(HCI) 主机部分包括:裸机链路控制及自适应协议层(L2CAP)、安全管理层(SMP)、属性协议层( ATT)、通用访问配置文件层(GAP),通用属性配置文件层(GATT) 下图为一个经典BLE系统框架图,尔其中的  Host 、 Controller 就是BLE协议。 图片 03-链路层(LL) 低功耗蓝牙参考 《Core_v5.3.pdf》中 Part B: Link Layer Specification 章节部分,LL层是整个BLE协议的核心,也是BLE协议的难点和重点 没有GATT,BLE协议也能跑,但互联互通就会出问题。

    11.9K60编辑于 2023-10-13
  • Linux IO协议

     图片来源自网络,保持更新;更多内容请关注 cnblogs.com/xuyaowen 

    5.2K30发布于 2020-12-30
  • 来自专栏编程思想之路

    蓝牙协议初识

    于是在1998年2月,一个蓝牙兴趣小组SIG(Special Interest Group)诞生了,发起者为当时的IT行业的巨头:爱立信,Intel,IBM,东芝,诺基亚。 蓝牙协议共分为四类: 1,蓝牙核心协议:基带管理BB(baseBand),链路管理LMP(linkManagerProtocol),链路控制和适配L2CAP(LogicalLinkControlAndAdaptionProtocol 2,蓝牙电缆替代协议:RFCOMM协议 3,蓝牙电话控制协议:电话通信协议TCS协议,AT命令集 4,蓝牙选用协议:PPP,obex,Vcard(卡片传输),Vcal(日历传输)等等。 2,BB基带层模块:实现电路交换和分组交换(具体待分析) 3,LMP链路管理:管理蓝牙设备间的链路的建立和解除链接,以及传输链路的切换和传输过程中的安全加密。 AsychronousConnectionless面向无连接的异步链路,适用于发送数据)和SCO(Synchronous Connection Oriented面向连接的同步链路,适用于发送语音) 4,L2CAP

    1.9K00发布于 2019-07-11
  • 来自专栏wenzi嵌入式软件

    LwIP 协议之 udp 协议解析

    前言 之前在做一个关于数据传输的时候,使用到了 WiFi 传输数据,而在传输数据时使用到的协议就是 LwIP 协议中的 udp 协议。现在来回顾总结一下。 要叙述 LwIP 协议,那自然得明白 LwIP 协议具体是个啥。 上述所说便是关于 LwIP 协议的相关叙述。 当用户的进程使用 UDP 来传送数据的时候,会经历三个过程 (1)UDP 协议会在数据前加上首部组成 UDP 报文,并交给 IP 协议来发送 (2)IP 层将报文封装在 IP 数据报中并交给底层发送 ( 最后,需要注意的一点是,上述控制块中的最后两个字段的是用于用户和协议内核通信的纽带,反应再 udp 协议里,就是用来执行用户自定义的报文数据处理函数的。

    1.9K30发布于 2021-03-04
  • 来自专栏全栈程序员必看

    ZigBee协议简介

    文章目录 Zigbee协议简介 如何理解Zigbee协议 如何使用Zigbee协议 Zigbee协议简介 Zigbee协议分为2部分: IEEE 802.15.4定义了PHY(物理层)和MAC 如何理解Zigbee协议 TI推出的ZigBee 2007协议也称为Z-Stack,它是Chipcon推出其CC2430开发平台时,开发的一款商业级协议软件。 Chipcon公司为自己设计的Z-Stack协议中提供了一个名为操作系统抽象层OSAL的协议调度程序。    如何使用Zigbee协议   以简单的无线数据通信为例,其一般步骤为: 组网:调用协议组网函数、加入网络函数,实现网络的建立和节点的加入。 发送:发送节点调用协议的发送函数,实现数据无线发送。 2.

    1.8K40编辑于 2022-08-24
  • 来自专栏全栈程序员必看

    Zigbee协议应用(一)——Zigbee协议介绍及简单例子

    协议协议的具体实现形式,通俗讲协议就是协议和用户之间的一个接口,开发人员通过使用协议来使用这个协议,进而实现无线数据收发。    图1 ZigBee无线网络协议层的架构图 2、如何理解Zigbee协议   协议协议的实现,可以理解为代码,库函数,供上层应用调用,协议较底下的层与应用是相互独立的。 每个厂家的协议是有区别的,比如TI的BLE协议和nordic的BLE协议就有很大的不同(多说一点,TI的BLE协议更像是安卓的BLE结构,所以会安卓蓝牙的人可能能看懂TI的代码)。 4、安装Zigbee协议   从我百度共享的所有本系列资料中下载004解压并安装: 图2 ZigBee协议下载路径 安装好之后在win7开始按钮下会有如下文件结构: 图3 ZigBee 图7 实验现象 7、基于协议的无线收发控制LED工程讲解(三) main code: 1 int main( void ) 2 { 3 osal_int_disable( INTS_ALL )

    3.3K20编辑于 2022-09-01
  • 来自专栏全栈程序员必看

    ZigBee协议工作原理

    大家好,又见面了,我是你们的朋友全君。 ZigBee的任务轮询如下图:   打开协议文件夹Texas Instruments\Projects\zstack,里面包含了TI公司的例程和工具。 在这里我们选择SampleApp对协议的工作流程进行讲解。 用户不需考虑 */ nwk_init ( taskID++ ); /* nwk_init(1),用户不需考虑 */ Hal_Init ( taskID++ ); /* Hal_Init(2) osal_pwrmgr_powerconserve(); /* Put the processor/system into sleep */ } #endif } } 发布者:全程序员

    1K20编辑于 2022-09-01
  • 来自专栏JusterZhu

    2

    ,遇到数字时,将数字压入堆栈,遇到运算符时,弹出顶的两个数,用运算符对他们做相应的计算(顶元素和次顶元素),并将结果入;重复上述过程直到表达式最左端,最后运算得出的值即为表达式结果。 计算出3+4的值,得7,再将7入 接下来时*运算符,因此弹出7和5,计算出7 * 5 = 35,将35入 最后时 - 运算符,计算出35 - 6的值,即29,由此得出最终结果 中缀表达式 (1)中缀表达式就是常见的运算表达式 ,用运算符对他们做相应的计算(次顶元素和顶元素),并将结果入;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果 例如:(3+4)* 5 - 6 对应的前缀表达式就是3 4 + 5 * 6 -,针对后缀表达式求值步骤如下: (1)从左往右扫描,将3和4压入堆栈; (2)遇到+运算符,因此弹出4和3(4为顶元素,3为次顶元素),计算出3+4的值,得7,再将7入; (3)将5入; ( 4)接下来是*运算符,因此弹出5和7,计算出7 * 5 = 35,将35入; (5)将6入; (6)最后是 - 运算符,计算出35 - 6的值,即29,由此得出最终结果 接下来我们按照这个理论通过代码实现逆波兰计算器

    41200编辑于 2022-12-07
  • 来自专栏陶辉笔记

    NGINX网络协议优化

    首先从整体上来看一下 NGINX的协议如何进行优化。接着我们将按照 OSI七层网络模型,自上而下依次讨论HTTP协议、TLS/SSL协议以及TCP/IP协议。 首先要明确NGINX的优化方向。 HTTP3为了解决HTTP2的队头阻塞、连接迁移问题,改用内核中的UDP协议解决进程调度,而将TCP协议中的可靠传输功能放在了用户态的quic协议中。 HTTP协议优化 从互联网的整体发展,我们先来看看HTTP/1.1协议的优化点,再来看HTTP2和HTTP3解决了哪些问题。下面这张图是从上世纪80年代起,以太网网卡带宽的演进速度。 当然HTTP 2协议并不是完美的,它的最大问题在于“队头阻塞”,如下图所示: 上图a场景的HTTP 1 协议中,蓝色报文的丢失并不会影响红色、绿色请求,但到了b场景的HTTP2协议,由于红、蓝、绿请求都承载在同 这里简单解释下什么是软中断,如下图所示: 上图有6 个步骤,其中第1、2、3步是从网络中接收的报文复制到 sk_buffer 中,并发起硬中断通知操作系统;第4、5步则是操作系统收到软中断后,通过协议处理报文

    1.3K42编辑于 2023-10-18
  • 来自专栏小柔博客园

    协议——创建套接字

    theme: condensed-night-purple 前面几篇文章讲解的是应用程序使用Socket间接通知协议进行的连接,通信阶段,那么从现在开始讲解协议和网卡驱动的故事 回顾上篇文章,我们从第一阶段创建套接字 ,协议返回描述符讲起~~~ 协议结构 首先来看下协议的大致结构: 应用程序 代表客户端,浏览器,电子邮件等程序,这些程序发出请求委派给下一层的Socket Socket程序 解析器也是Socket 的一部分用于DNS服务查询域名的IP地址,其他部分就是委派操作系统的协议去处理数据了 操作系统 操作系统的协议分为两部分,上半部分为TCP/UDP协议;下半部分为IP协议;IP协议部分用于接受TCP 套接字 协议的内部会有一块记录通信对方的ip端口,通信状态,使用这块内存的应用pid的内存空间等,这个内存空间就是套接字存储的内容,这些内容叫做控制信息 协议需要根据套接字所存储的控制信息进行下一步的操作 ,协议会创建出一块内存并写入这个套接字刚创建完成的初始化状态,并将代表这个套接字的描述符返回给应用程序。

    91310编辑于 2022-10-09
  • 来自专栏全栈程序员必看

    zigbee协议OSAL分析

    大家好,又见面了,我是你们的朋友全君。 本文从源程序出发,分享本人学习zigbee协议的一些理解,介绍zigbee协议OSAL任务调度及用户自定义任务的调度处理过程。 发布者:全程序员长,转载请注明出处:https://javaforall.cn/144766.html原文链接:https://javaforall.cn

    1.8K10编辑于 2022-08-30
领券