
网络协议
文章平均质量分 92
lanhuazui10
这个作者很懒,什么都没留下…
展开
-
蓝牙BLE详解
所谓协议,即将指定的字节按照一定的顺序排列起来,以便他人使用自己的设备时,能通过该协议同其他设备进行通信。协议一特点,就是有固定的帧格式,通过该格式发送,接收者通过解读帧格式,进而得到新息内容;转载 2024-12-03 01:16:10 · 808 阅读 · 0 评论 -
低功耗蓝牙ATT/GATT/Profile/Service/Characteristic规格解读
前面说过,每个蓝牙设备就是用来提供服务的,而服务就是众多数据的合集,这个合集可以称为数据库,数据库里面每个条目都是一个attribute。转载 2024-12-03 00:42:40 · 326 阅读 · 0 评论 -
蓝牙BLE: ATT协议层中属性(Attribute)
ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式。属性(Attribute)概念是ATT层的核心,ATT层定义了属性的内容,规定了访问属性的方法和权限。以编程的眼光来看,属性是一个数据结构,它包括了数据类型和数据值,就如同C语言结构体的概念,开发者可以设计独特的结构,来描述外部世界实体。属性包括三种类型:服务项、特征值和描述符。转载 2024-12-02 21:45:18 · 385 阅读 · 0 评论 -
BLE地址类型
也许关注BLE的同学都注意到了,BLE设备有多种类型的设备地址,如Public Device Address、Random Device Address、Static Device Address、Private Device Address等等。如果不了解内情,大家肯定会被它们绕晕。不过存在即合理,这样看似奇怪的设计,实际上反映了BLE的设计思路以及所针对的应用场景。让我们通过本文一窥究竟。转载 2024-12-02 20:36:48 · 105 阅读 · 0 评论 -
BLE协议分析2
蓝牙系统核心架构可分为三个方面:BLE Application和BLE Host 属于应用层APIHCI(Host Controller Interface)为中间层BLE Controller为底层蓝牙芯片其中在该协议将数据以属性(Attribute)的方式抽象出来,用UUID定义不同的属性,并提供一下方法以供远端设备读取、修改这些属性的值。需要注意的是,Handle是用于识别唯一属性的数字,而非UUID,因为。转载 2024-12-02 20:15:42 · 125 阅读 · 0 评论 -
深入浅出低功耗蓝牙(BLE)协议栈及蓝牙连接过程
advertiser。发出广播的设备observer或者scanner。可以扫描广播的设备initiator。能发起连接的设备master或者central。连接成功后的主设备,即主动发起packet的设备slave或者peripheral。连接成功后的从设备,即被动回传packet的设备图11通过时间把observer,initiator和central串起来了,其实这三个角色是相互独立的,也就是说一个设备可以只支持observer角色,而不支持initiator和central角色。转载 2024-12-02 18:44:52 · 3247 阅读 · 0 评论 -
硬件USB通信协议深入理解
一个【传输】(控制、批量、中断、等时):由多个【事务】组成;一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。转载 2024-12-01 21:49:18 · 326 阅读 · 0 评论 -
在不知道json格式的情况下如何使用cjson进行解析
假设我们只知道这是个json串,不知道这个json都有哪些对象,也不知道这些对象的名字和值,那么现在开始进行解析。假设我们有一个json字符串,但是我们不知道这个json的组织方式,那么如何进行解析呢,下面就给一个小例子。转载 2024-09-29 15:00:58 · 94 阅读 · 0 评论 -
json协议格式及struct cJSON库讲解
CJSON_免费高速下载|百度网盘-分享无限制使用cJSON的时候要注意,不要忘了用cJSON_Delete()释放JSON的内存,和用free()释放cJSON_Print()或者cJSON_PrintUnformatted()返回的内存,否则会造成内存混乱。cJSON.h因为头文件的内容不是很多,所以我将其全部罗列出来,其中的核心函数是解析函数和打印函数。只要清楚cJSON的数据结构后,看相应的代码才能比较简单。转载 2024-09-29 14:45:07 · 283 阅读 · 0 评论 -
jsoncpp封装和解析字符串、数字、布尔值和数组
使用jsoncpp进行字符串、数字、布尔值和数组的封装与解析。3)修改jsoncpp/src/main.cpp文件。4)在目录jsoncpp/ 下执行make命令。5)运行jsoncpp/下的main文件。2)解压缩文件 jsoncpp.rar。转载 2024-09-28 21:31:04 · 116 阅读 · 0 评论 -
TCP粘包问题及各方解决方案
TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。出现粘包现象的原因是多方面的,它既可能由发送方造成,也可能由接收方造成。什么时候需要考虑粘包问题?如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似于http协议)。关闭连接主要是要双方都发送close连接(参考tcp关闭协议)。转载 2023-10-20 13:49:12 · 454 阅读 · 0 评论 -
tcp状态/半关闭/端口复用
表示初始状态。该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。该状态表示接收到SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂。转载 2023-05-04 23:31:30 · 1302 阅读 · 0 评论 -
http长短连接概念
首先是怎么样就算是把HTTP变成长连接了,是不是只要设置Connection为keep-alive就算是了?如果是的话,那都说HTTP1.1默认是长连接,而观察我们平时开发的Web应用的HTTP头部,Connection也确实是keep-alive,那就是说我们大部分都是用的长连接,但是长连接不是一般用于交互比较频繁的应用吗?像我们这种普通的Web应用,比如博客园这种,或者我的个人博客这种,长连接有什么用?转载 2023-05-04 20:55:41 · 91 阅读 · 0 评论 -
IP协议报文头部解析
IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。 ...原创 2020-04-18 22:11:55 · 17460 阅读 · 1 评论 -
TCP三次握手手和四次分手过程分析
首先我们先来了解TCP报文段重要的标志我在图中也有标记,重点了解标志位ACK:确认序号有效,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。RST:重置连接,当RST=1时,表示出现严重错误,必须释放连接,然后再重新建立SYN:发起一个新连接,SYN=1而ACK=0,表明它是一个连接请求;SYN=1且ACK=1,则表示同意建立一个连接FIN:释放一个连接,...转载 2020-04-19 18:10:24 · 719 阅读 · 0 评论 -
TCP报文解析
TCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。当应用...原创 2020-04-18 22:21:24 · 6962 阅读 · 0 评论 -
[转载]DNS协议详解及报文格式分析
目录一. DNS协议理论知识 1.1. 域名结构 1.2. 域名服务器 1.3. 域名解析过程 二. DNS协议报文格式 2.1 头部 2.2 正文 三. Wireshark分析DNS协议 3.1 请求报文 3.2 响应报文 解BUG的过程中碰到了DNS相关的内容,折腾网站和域名邮箱时也对DNS做了一些配置,发现对一些细节有点记不清晰了,因此很有必要重新...转载 2020-04-19 17:26:48 · 645 阅读 · 0 评论 -
[转载]聊聊tcpdump与Wireshark抓包分析
1 tcpdump与Wireshark介绍#在解决网络问题时,经常需要通过监控网络流量和分析协议数据,进行定位问题。tcpdump是linux下一款抓包工具,wireshark是一款抓包和数据包分析工具。两者通常结合使用,tcdump抓取的数据包保存为可分析文件,然后在windows系统下通过wireshark进行分析。tcpdump命令需要使用-w保存文件。如果要使用tcpdump抓取其...转载 2020-04-19 16:32:11 · 1800 阅读 · 0 评论 -
ICMP网络控制报文简单分析
ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它...原创 2020-04-18 23:19:54 · 7747 阅读 · 0 评论 -
DHCP报文详解及抓包实例
DHCP协议简介DHCP,全称是DynamicHostConfigurationProtocol﹐中文名为动态主机配置协议,它的前身是BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议。DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器。DHCP为客户端分配地址的方法有三种:...原创 2020-04-18 22:58:33 · 16911 阅读 · 1 评论 -
UDP报文头部分析
UDP是一种不可靠的、无连接的数据报服务。源主机在传送数据前不需要和目标主机建立连接。数据被冠以源、目标端口号等UDP报头字段后直接发往目的主机。这时,每个数据段的可靠性依靠上层协议来保证。在传送数据较少、较小的情况下,UDP比TCP更加高效。UDP有两个字段:首部字段和数据字段(数据包数据部分)。图2-6 UDP数据包格式首部字段很简单,只有8个字节,由4...转载 2020-04-18 22:33:55 · 9540 阅读 · 0 评论 -
ARP的4种模式
除了最常用的ARP协议外,还有其他4种ARP模式,分别是翻转ARP、代理ARP、免费ARP、逆向ARP。代理ARP(proxy ARP)当局域网内部主机发起跨网段的ARP请求时,出口路由器/网关设备将自身MAC地址回复该请求时,实现MAC地址代理(善意的欺骗),最终使得主机能够通信(可以ping通跨网段的ip),则过程称为代理ARP。接收到的的ARP请求若不是发送给本接口的(de...转载 2020-04-18 21:53:37 · 2861 阅读 · 0 评论 -
网络协议之ARP协议解析
ARP协议简介 ARP (Address Resolution Protocol) 是个地址解析协议。最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。 OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layre interface). IP地址在第三层, MAC地址在第二层。协议在发生数据包时,首先要封装第三层...原创 2020-04-18 19:35:51 · 2557 阅读 · 1 评论 -
网络协议之以太网协议解析
Ethernet :以太网协议,用于实现链路层的数据传输和地址封装(MAC)封装原理:以太网的数据帧格式如下图所示:它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于标示封装在这个Frame、里面的数据的类型)。接下来是46-1500字节的数据和4字节的帧校验。 前同步码:8字节,前7个0,1交替的字节(10101010...原创 2020-04-18 18:03:34 · 14056 阅读 · 2 评论 -
OSI模型及TCP/IP4协议分层模型讲解
TCP/IP协议分层详解目录TCP/IP协议分层详解TCP/IP 和 ISO/OSITCP/IP分层模型数据的封装与分用其他相关概念TCP/IP 通信传输流负责传输的 IP 协议正文TCP/IP 和 ISO/OSI ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Referen...转载 2020-04-18 17:53:39 · 347 阅读 · 0 评论 -
wireshark显示过滤器语法实例分析
Wireshark显示过滤器语法使用例子分析1.过滤IP,如来源IP或者目标IP等于某个IP例子:ip.srceq192.168.1.107orip.dsteq192.168.1.107或者ip.addreq192.168.1.107//都能显示来源IP和目标IP提示: 在Filter编辑框中,收入过虑规则时,如果语法有误,框会显红色,如正确,会是绿色。...转载 2020-04-13 00:09:48 · 1339 阅读 · 0 评论 -
wireshark过滤器基本语法分析
Wireshark抓包过滤器语法设置1. 抓包过滤器BPF语法(Berkeley Packet Filter)——基于libpcap/wincap库,在抓包的过程中过滤掉某些类型的协议,不抓取过滤掉的协议。(建议在流量特别大的情况下使用)1.1 语法说明类型Type: host、net、port 方向Dir: src、dst 协议Proto: ether、ip、tcp、ud...原创 2020-04-13 00:03:32 · 3723 阅读 · 0 评论