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

    【JavaEE】——自定义协议方案、UDP协议

    一:自定义协议 程序员在调用操作系统提供的网络API写出来的代码都是属于应用层的(回顾五个层级:应用层,传输层,网络层,数据链路层,物理层),应用层自身就有许多已经创建好的协议,但多数情况下是需要程序员自定义协议的 1:自定义协议 主要约定好两方面的内容 (1)交互哪些信息 解释:服务器和客户端之间要交互哪些信息,由产品经理规定需要传输哪些信息 (2)数据的具体格式 解释:客户端按照约定构造、发送请求,解析返回的响应 服务器按照约定解析请求,构造、发送响应 2:(反)序列化 Client和Server之间交互的是“结构化数据”,网络传输的数据其实是“字符串”“二进制bit流”,约定协议的过程就是把 (0,2的16次方-1),在使用端口号的时候,[1,1024]都是属于系统保留的自用的端口号(知名端口号) 六:UDP协议 1:特点 回顾一下:无连接,不可靠传输,面向数据报,全双工, UDP数据报=报头 +载荷 UDP报头中4个字段,每个字段2个字节,共8个字节 协议中报头用2个字节表示端口号,能表示的范围为2^16-1=65535,即[0,65535], 换算一下为64KB——即UDP数据报最大长度为

    41510编辑于 2024-12-30
  • 来自专栏爱编码

    【Netty】自定义协议

    简介 Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对ByteBuf数据流进行处理,转换成http的对象。 步骤 制定协议(如表头,内容字节大小,内容,校验位等) 写好编码器Encoder,将数据进行编码的操作。 写好解码器Decoder,将数据进行解码的操作。 实现 1.制定协议(如表头,内容字节大小,内容,校验位等) 自定义传输的实体类,其实本质上你可以将它当做自定义协议。这里为了方便入门,就没有写正式的协议。 UavEntity{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", brand='" + brand + '\'' + '}'; } } 2. Netty客户端代码如下: 主要是添加编码器和处理Handler /** * 客户端 * 1.为初始化客户端,创建一个Bootstrap实例 * 2.为进行事件处理分配了一个NioEventLoopGroup

    1.2K40发布于 2019-07-03
  • 来自专栏linux驱动个人学习

    蓝牙协议分析(2)_协议架构

    前言 本文是蓝牙协议分析的第二篇文章,在“蓝牙协议分析(1)_基本概念”的基础上,从整体架构的角度,了解蓝牙协议的组成,以便加深对蓝牙的理解。 2. 蓝牙协议分为四个层次:物理层(Physical Layer)、逻辑层(Logical Layer)、L2CAP Layer和应用层(APP Layer)。 L2CAP层,L2CAP是逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol)的缩写,负责管理逻辑层提供的逻辑链路。 基于该协议,不同Application可共享同一个逻辑链路。类似TCP/IP中端口(port)的概念。 APP层,理解蓝牙协议中的应用层,基于L2CAP提供的channel,实现各种各样的应用功能。 2.3 L2CAP Channels L2CAP是Logical Link Control and Adaptation Protocol(逻辑链路控制和适配协议)的缩写,蓝牙协议到这个层次的时候,就清爽多了

    3.8K12发布于 2021-10-18
  • 来自专栏landv

    自定义URL Protocol 协议

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\fuck] @="fuck Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\fuck\DefaultIcon] @="C:\\Program Files (x86)\\VB精简版\\Vb6.exe,0" [HKEY_CLASSES_ROOT\fuck\shell] @="" [HKEY_CLASSES_ROOT\fuck\shell\open]

    1.9K30发布于 2019-03-22
  • 来自专栏漫流砂

    自定义协议 | Electron 安全

    0x01 简介 大家好,今天和大家讨论的是自定义协议,在很多应用中,除了支持 http(s)、file、ftp等开放的通用标准协议外,还会支持一些自定义协议自定义协议常被用于实现特殊功能,比如深度集成应用程序与特定的网络服务 ,欢迎大家留言讨论~ 这篇文章也提供了 PDF 版本及 Github ,见文末 0x02 程序内部注册自定义协议 1. 否则, 该协议将表现为 file 协议, 而且,这种文件协议将不能解析相对路径 例如, 当您使用自定义协议加载以下内容时,如果你不将其注册为标准scheme, 图片将不会被加载, 因为非标准scheme id=2 时 成功解析了我们的自定义 url 注册全局协议,主要使用app 模块的一些方法 2. app.setAsDefaultProtocolClient 将当前可执行文件的设置为协议(也就是 URI ,所以在做安全检查时,也需要根据实际情况,接下来列举几个曾经在注册自定义协议方面出现的问题 需要注意的是,外部引用的安全防护代码可能不会针对自定义协议进行防护,这也是造成很多漏洞的直接原因 CVE-2018

    1.6K10编辑于 2024-05-17
  • 来自专栏蛋蛋编程手记

    内容传输自定义协议

    在这种需求下,最好的方法就是自定义协议,发送方按照一定的格式将文件流和文件描述信息编码成字节流,接收方把收到的字节流在解析成文件流和文件描述信息。 这里蛋蛋给出一个简单的协议格式。 消息类型(1字节) 描述信息长度(4字节) 描述信息(描述信息长度) 文件流长度(4字节) 文件流(文件流长度) ​ 发送方按照上述协议进行编码。 接收方收到了字节流后按照上述协议解析。 1. 2. 然后读取4个字节数据转成数字得到描述信息长度 3. 然后根据第2步的长度读取描述信息 4. 读取4个字节的文件长度 5. 根据第4步的文件长度读取文件流 最后说一下,这个协议有几个很大的局限性。 首先长度信息限制在了4个字节的范围内,所以不能超过2^32次方,也就是说内容长度不能超过大概4个g。

    59410编辑于 2023-02-25
  • 来自专栏m0w3n

    wireshark插件开发 - 自定义协议

    虽然wireshark自带了很多知名协议的解析插件,譬如HTTP、DHCP等等,然而在实际应用环境中,有不少软件之间的通信协议都是私有的,如游戏客户端和服务器之间的交互协议通常都是私有的,wireshark 无法具体解析出各种字段之间的含义,只能显示接收到的二进制数据,给协议的分析和问题的排查带来了一定的困难,尤其是协议内容比较复杂时。 本文一个自定义的简单协议入手,分析如何基于wireshark开发自定义协议分析插件。 ? 1.1. 概述 本书使用Go语言来描述协议的交互过程。 协议描述 1 package packet 2 3 import ( 4 "bytes" 5 "encoding/binary" 6 "fmt" 7 "os 客户端 1 package main 2 3 import ( 4 "fmt" 5 "net" 6 ) 7 8 import "packet" 9 10 func

    1.8K30发布于 2021-06-21
  • 来自专栏捉虫大师

    聊聊dubbo协议2

    在《聊聊dubbo协议》中介绍了attachments在consumer和provider间的传递情况,有个疑问没有给出答案。 dubbo协议如何处理协议的兼容的? 从RmiProtocol类中能看到dubbo针对2.7.0、2.6.3两个边界进行了版本兼容 ? 版本信息从哪里来呢? [2.5.3, 2.6.3)版本中,dubbo版本与dubbo协议没有分开,都是用url上的dubbo参数,值是对应的版本号,取值范围是 >=2.0.0 && <=2.6.2 [2.6.3, 2.7.0 )版本,无法从provider注册的url上看出dubbo版本,dubbo协议版本是从url的dubbo参数获取,固定为2.0.2 2.7.0之后的版本,dubbo版本在provider的url release 参数上,dubbo协议版本在dubbo参数上,目前还是2.0.2 最后 通过这次分析知道了2.7.x的dubbo为什么provider不能带回隐式参数了,这应该是dubbo 2.7.x的一个bug。

    85121发布于 2021-03-03
  • 来自专栏猫头虎博客专区

    什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好?

    什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好? 通过阅读本文,您将能够清晰地了解A2A协议和MCP协议的区别,以及它们如何支持智能体协作、语言模型与外部系统的交互,以及在实际开发中如何选择更适合的协议来优化您的AI解决方案。 什么是A2A协议? A2A协议的技术原理 通信架构:A2A协议通常基于常见的Web标准技术,如HTTP和JSON-RPC,使智能体能够通过Web服务进行交互。 A2A协议的应用场景 A2A协议特别适用于需要多个智能体协同工作的场景,例如在智能制造、金融分析、客服机器人等行业中。通过A2A协议,多个智能体可以协调工作,共享信息并共同完成复杂任务。 A2A协议与MCP协议哪个更好? 选择哪个协议更好,取决于实际应用需求。

    2.6K10编辑于 2025-04-12
  • 来自专栏c++与qt学习

    Oauth2协议

    Oauth2简介 第三方认证技术方案最主要是解决认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的接口协议。 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。 fr=aladdin Oauth 协议:https://tools.ietf.org/html/rfc6749 下边分析一个Oauth2认证的例子,网站使用微信认证的过程: 1.用户进入网站的登录页面 ,造成各种实现的兼容性和互操作性差 ​ 不是一个认证协议,本身并不能告诉你任何用户信息。 Oauth2RestTemplate会报错,这个报错信息会被Oauth2ClientContextFilter捕获并重定向到认证服务器 认证服务器通过Authorization Endpoint进行授权 .authorizedGrantTypes("authorization_code","password"); } } 测试: 下面的认证输入的是用户id和秘钥 密码登录输入的就是我们自定义用户时

    1.9K10编辑于 2021-12-07
  • 来自专栏全栈程序员必看

    比特币p2p协议_协议栈p2p

    每个节点都参与验证并传播交易及区块信息,发现并维持与对等节点的连接 比特币主网络:大约5000-8000个运行着不同版本比特币核心客户端(Bitcoin Core)的监听节点 + 以及几百个运行着各类比特币P2P 协议的应用,一小部分节点也是挖矿节点,大型公司运行 着基于Bitcoin核心客户端的全节点客户端(它们具有区块链的完整拷贝及网络节点,但不具备挖矿及钱包功能),这些节点是网络中的边缘路由器(edgerouters 比特币P2P主网络上连接着许多矿池服务器以及协议网关,它们把运行其他协议的节点连接起来。这些节点通常都是矿池挖矿节点(参见挖矿章节)以及轻量级钱包客户端,它们通常不具备区块链的完整备份。 新的网络节点必须发现至少一个网络中存在的节点并建立连接 由于比特币网络的拓扑结构并不基于节点间的地理位置,因此各个节点之间的地理信息完全无关 节点通常采用TCP协议

    1.5K10编辑于 2022-09-27
  • 来自专栏游戏杂谈

    wireshark解析自定义的protobuf协议

    一个Lua插件的Dissector结构大致如下: do -- 协议名称为 m_MeteoricProto,在Packet Details窗格显示为 XXX Protocol local buffer, pinfo, tree) then else -- data 这个 dissector 几乎是必不可少的; 当发现不是我的协议时 注意的几个坑点: 1、wireshark自带lua版本是5.2,安装目录下有lua52.dll; 2、wireshark自带zlib库文件,名字叫zlib1.dll; 在编写插件时,将编译生成好的*.dll

    4.9K30发布于 2018-11-20
  • 来自专栏张泽旭的专栏

    springcloud gateway 自定义协议转化实现

    本文链接:https://blog.csdn.net/qq_17655941/article/details/103362115 这几天公司要求实现 springcloud gateway 自定义协议 需要对外统一提供http/https 的接口,但是后端有很多服务提供了不同的方式,包括dubbo 协议,和dubbo 上提供的各种访问协议等(dubbo服务上协议的支持),需要从网关直接代理去访问。 formatter:on } 上面的代码变量和编写方式都和框架使用了webflux 有关 大家可以学习一下就很容易理解了阿里JAVA架构师详解Spring5新特性之WebFlux 我也是看了这个视频学会的 2个小时 ,感觉讲的挺好的 2自定义代码实现 package com.neo.config; import com.alibaba.fastjson.JSONObject; import io.netty.buffer.UnpooledByteBufAllocator sink.complete(); })); })); } } 通过反射机制类完成除过gateway 自定义协议外的所有解析进行处理

    3.7K31发布于 2019-12-10
  • 来自专栏python基础文章

    网络安全协议2

    2.CC体系一共包括3大部分 分别是:信息技术安全性评价通用准则,信息技术安全评价通用方法,通用准则识别协议。 (2)保护轮廓(PP)。PP是一种TOE类型的安全需求的独立强制性描述。PP是用户对安全需求的明确表述。 ---- 2.一般模型 为了消除不正当的压力对评估的影响,CEM定义了4个角色:发起者、开发者、评估者和评估权威机构。 发起者负责请求和支持评估,负责建立评估协议(即委任评估),并且保证评估者提供评估证据。开发者开发TOE,并且对于提供的评估所需的证据负责(即培训,设计信息)。 ---- 六.通用准则识别协议 通用准则识别协议(CCRA)列出了有CC认证授权的参与者(Participant),例如美国国家安全局、加拿大国家通信安全机构、芬兰国家财政部、希腊内政部等,之后详细叙述了这些机构的权利

    74250编辑于 2023-10-15
  • 来自专栏python3

    python实现onvif协议2

    from suds.client import Client from suds.wsse import Security from suds_passworddigest.token import UsernameDigestToken url = 'file:///home/aphero/python/wsdl/media.wsdl' xadd='http://1.1.1.1/onvif/Media' client=Client(url,location=xadd) security = Security() token = UsernameDigestToken("admin", "12345") security.tokens.append(token) client.set_options(wsse=security) profiles=client.service.GetProfiles() for profile in profiles:     print profile._token,profile.Name     param={"StreamSetup":profile.Name,"ProfileToken":profile._token}     MediaUri=client.service.GetStreamUri(param)     print MediaUri.Uri

    2K20发布于 2020-01-03
  • 来自专栏大大刺猬

    主从连接协议(2)--GTID

    导读之前有讲MYSQL连接协议, 也有讲过主从连接协议. 并附有相关python测试代码. 但对于主从连接的时候, GTID获取还是借用的现有的, 也就是没有做解析. register_slave_on_masterdef register_slave(self):"""COM_FLAG: 1 (COM_REGISTER_SLAVE:21)server_id: 4host,user,password 0port: 2rpl_recovery_rank slave_uuid 算了bdata = b''if self.auto_position:"""COM_FLAG: 1 (COM_BINLOG_DUMP_GTID:30)binlog_flags: 2server_id self.bgtid)) + self.bgtidself.register_slave()else:"""COM_FLAG: 1 (COM_BINLOG_DUMP:18)binlog-pos: 4flags: 2server_id

    36310编辑于 2024-05-08
  • 来自专栏网络安全攻防

    UniswapV2协议解析

    文章前言 本篇文章主要对Uniswap V2协议的工作原理、项目构成、源码实现等部分进行详细解读。 协议简介 Uniswap V2是一个运行在以太坊区块链上的基于"恒定乘积"算法的"自动化流动性"协议,我们可以将其看做是一个建立在以太坊上的去中心化数字货币交易所(DEX),在该交易所上的所有交易(代币互换 协议特性 Uniswap V2是Uniswap V1的升级版本,它相比Uniswap V1主要有如下新特性: ERC-20 Pairs:Uniswap v1使用ETH作为过渡货币,每对都将ETH作为其资产之一 lock功能,它同时也阻止了Flash Swaps中用户自定义回调的重入。 交易都要缴纳与协议交易相同的统一费用,每一个对于提高价格的准确性和激励流动性都很重要。

    4K43发布于 2021-07-21
  • 来自专栏linux驱动个人学习

    I2S协议

    (二)I2S总线规范: I2S总线拥有三条数据信号线: 1、SCK: (continuous serial clock)  串行时钟:          对应数字音频的每一位数据,SCK都有1个脉冲。 SCK的频率=2×采样频率×采样位数。 2、WS: (word select)  字段(声道)选择:   用于切换左右声道的数据。WS的频率=采样频率。    I2S格式的信号无论有多少位有效数据,数据的最高位总是被最先传输(在WS变化(也就是一帧开始)后的第2个SCK脉冲处),因此最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。 当然,对I2S格式来说数据长度可以不同。 图2 I2S典型的接口时序 4、时序要求         在IIS总线中,任何设备都可以通过提供必需的时钟信号成为系统的主设备置,而从属设备通过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主设备和数据以及命令选择信号之间的传播延迟

    2.3K50发布于 2018-03-07
  • 来自专栏flutter开发者

    自定义View【2

    在前面的文章中我们学习了部分绘制的相关方法,在本篇文章中我们会继续再介绍一些常用的绘制方法。

    56920发布于 2018-11-20
  • 来自专栏InvQ的专栏

    如何利用 Netty 实现自定义协议通信?

    既然是网络编程,自然离不开通信协议,应用层之间通信需要实现各种各样的网络协议。在项目开发的过程中,我们就需要去构建满足自己业务场景的应用层协议。 之前我们介绍了如何使用网络协议解决 TCP 拆包/粘包的底层问题,这次我们将在此基础上继续讨论如何设计一个高效、可扩展、易维护的自定义通信协议,以及如何使用 Netty 实现自定义通信协议。 如果在满足业务场景以及性能需求的前提下,推荐采用通用协议的方案。相比通用协议自定义协议主要有以下优点。 极致性能:通用的通信协议考虑了很多兼容性的因素,必然在性能方面有所损失。 扩展性:自定义协议相比通用协议更好扩展,可以更好地满足自己的业务需求。 安全性:通用协议是公开的,很多漏洞已经很多被黑客攻破。 自定义协议更加安全,因为黑客需要先破解你的协议内容 那么如何设计自定义的通信协议呢?这个答案见仁见智,但是设计通信协议有经验方法可循。

    1.2K40发布于 2020-11-13
领券