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

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

    一:自定义协议 程序员在调用操作系统提供的网络API写出来的代码都是属于应用层的(回顾五个层级:应用层,传输层,网络层,数据链路层,物理层),应用层自身就有许多已经创建好的协议,但多数情况下是需要程序员自定义协议的 1:自定义协议 主要约定好两方面的内容 (1)交互哪些信息 解释:服务器和客户端之间要交互哪些信息,由产品经理规定需要传输哪些信息 (2)数据的具体格式 解释:客户端按照约定构造、发送请求,解析返回的响应 结构化数据”转化为“二进制bit流”的过程 结构化数据———转化———>字符串/二进制bit流 叫做“序列化” 字符串/二进制bit流———还原———>结构化数据 叫做“反序列化” 3: 1)可读性好 key对数据起到解释说明 (2)占用空间更小 相比较于xml中需要开始和结束两个标签,json只用了一个key,更节省网络带宽(这里的节省是相对的,json中的key也会被多次创建) (3) CRC算法 4:md5算法特点 (1)定长 无论原始数据有多长,算出来的md5最终值都是固定长度 (2)分散 计算md5的过程中,原始数据只要变化一点点,最后得到的md5值就会差异很大 (3)不可逆 给定一个

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

    【Netty】自定义协议

    简介 Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对ByteBuf数据流进行处理,转换成http的对象。 步骤 制定协议(如表头,内容字节大小,内容,校验位等) 写好编码器Encoder,将数据进行编码的操作。 写好解码器Decoder,将数据进行解码的操作。 实现 1.制定协议(如表头,内容字节大小,内容,校验位等) 自定义传输的实体类,其实本质上你可以将它当做自定义协议。这里为了方便入门,就没有写正式的协议。 byte[] datas = ByteObjConverter.ObjectToByte(msg); out.writeBytes(datas); ctx.flush(); } } 3. 客户端 * 1.为初始化客户端,创建一个Bootstrap实例 * 2.为进行事件处理分配了一个NioEventLoopGroup实例,其中事件处理包括创建新的连接以及处理入站和出站数据; * 3.

    1.2K40发布于 2019-07-03
  • 来自专栏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. 0x03 全局注册自定义协议 程序内部协议只能在程序内部使用,如果我们注册一个 nopteam 协议,希望在浏览器里输入 nopteam://index? ,所以在做安全检查时,也需要根据实际情况,接下来列举几个曾经在注册自定义协议方面出现的问题 需要注意的是,外部引用的安全防护代码可能不会针对自定义协议进行防护,这也是造成很多漏洞的直接原因 CVE-2018 time__1311=n4%2Bxni0QDQdYqDvPBKDsL3ObDcBIKKriTo4D&alichlgref=https%3A%2F%2Fwww.google.com%2F https://

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

    内容传输自定义协议

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

    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
  • 来自专栏全栈程序员必看

    什么是igmp协议_igmpv3协议

    文章目录 IGMP协议 定义 功能 IGMPv1 主机加入 主机离开 查询器选举 成员报告抑制机制 IGMPv2 主机加入 主机离开 查询器选举 成员报告抑制机制 IGMPv3 主机上维护的组播信息 路由器维护的组播信息 IRF形成的必要条件 配置步骤 相关命令 IGMP协议 定义 组播组管理协议 功能 管理主机加入和离开组播组 维护本地组播组信息表 IGMPv1 主机加入 路由器向开启了IGMP的端口发送查询报文,询问该接口下有没有组播接收者 ]igmp //进入IGMP视图 [h3c]igmp version 'version' //配置IGMP版本 [h3c-GigabitEthernet0/0]igmp enable / 堆叠组内的所有交换机会自动同步配置文件,但是成员交换机允许过程中产生缓存表项并不包含在配置文件中 热备份机制会自动吧运行过程中的缓存表项进行同步,比如邻居表、协议路由表、ARP表等。 [h3c]irf member 'member-id' renumber 'new-member-id'//更改IRF设备ID [h3c]irf-port-configuration active

    1.5K40编辑于 2022-10-05
  • 来自专栏全栈程序员必看

    IGMP协议_igmp协议常用3种报文

    三、IGMP的版本 到目前为止,IGMP 有三个版本:IGMPv1、IGMPv2、IGMPv3 IGMPv1 :主机可以加入组播组。没有离开信息(leave messages)。 IGMPv3 :与以上两种协议相比,该协议的主要改动为:允许主机指定它要接收通信流量的主机对象。来自网络中其它主机的流量是被隔离的。 IGMPv3 也支持主机阻止那些来自于非要求的主机发送的网络数据包。 所有版本的IGMP 都支持ASM(Any-Source Multicast,任意信源组播)模型;IGMPv3 可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型 在交换机上部署了组播VLAN功能后,上游路由器不必在每个用户VLAN(VLAN2和VLAN3)内都复制一份组播流,而是数据流在组播VLAN(VLAN4)内复制一份后发送给二层设备。

    3.6K20编辑于 2022-10-05
  • 来自专栏游戏杂谈

    wireshark解析自定义的protobuf协议

    一个Lua插件的Dissector结构大致如下: do -- 协议名称为 m_MeteoricProto,在Packet Details窗格显示为 XXX Protocol local buffer, pinfo, tree) then else -- data 这个 dissector 几乎是必不可少的; 当发现不是我的协议

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

    springcloud gateway 自定义协议转化实现

    本文链接:https://blog.csdn.net/qq_17655941/article/details/103362115 这几天公司要求实现 springcloud gateway 自定义协议 需要对外统一提供http/https 的接口,但是后端有很多服务提供了不同的方式,包括dubbo 协议,和dubbo 上提供的各种访问协议等(dubbo服务上协议的支持),需要从网关直接代理去访问。 org.springframework.cloud.gateway.filter.GlobalFilter 全局网关过滤器,是一个接口,自定义需要实现此接口(下面说明的类都实现此接口,并在同一个包中) sink.complete(); })); })); } } 通过反射机制类完成除过gateway 自定义协议外的所有解析进行处理 这就完了,简单把 具体协议插件实现可以下载源代码 完整项目下载 github

    3.7K31发布于 2019-12-10
  • 来自专栏后端码事

    proto3 协议指引

    二、下面以一个简单地示例开始: proto3 文件:.proto syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3; } 第一行声明当前使用的proto3版本协议语法(proto编译器默认使用proto2版本协议语法),声明必须为文件的第一行 2、字段约束 singular:更直观的可以用optional来释义,可选字段,0个或1个,proto3中未默认约束。 repeated:列表集合字段类型,可以包含 >=0 个字段元素。 3、int32, uint32, int64, uint64及bool是相互兼容的,只不过转换过程会产生值域变更。 4、sint32 和 sint64 是相互兼容的。 5、byte3存储值为有效UTF-8编码内容时与string相互兼容。 七、未知字段 未能对应解析的字段会存储于未知字段中。此机制在proto3中最初抛弃,v3.5版本重新引入。

    2.6K10发布于 2021-02-25
  • 来自专栏python基础文章

    网络安全协议3

    这方面的例子如国内的安胜3.0操作系统、作为基于Linux核心的安全增强操作系统、达到国标GB17859的第3级标准。 评估等级分为EAL1、EAL2、EAL3、EAL4、EAL5、EAL6EAL7共七个等级。 EAL4是系统设计,测试和复查级。 ---- 3.国产操作系统的安全等级 相对来说,中国的安全操作系统研究起步较晚,但也开展了一系列工作。 (3)Asianux操作系统  2008年,红旗软件(中国)、MiracleLinux公司(日本)和韩软公司(韩国)联合签署了安全Asianux操作系统联合开发协议,宣称Asianux将成为最先进的安全

    57330编辑于 2023-10-15
  • 来自专栏InvQ的专栏

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

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

    1.2K40发布于 2020-11-13
  • 来自专栏我的博客

    【Linux网络】应用层自定义协议

    应用层协议就是应用程序之间通信的规则和格式约定,让不同的程序能够理解彼此发送的数据含义。 再谈 “协议协议是一种 “约定”。 这种约定就是 应用层协议 但是,为了让我们深刻理解协议,我们打算自定义实现一下协议的过程。 我们采用方案2,我们也要体现协议定制的细节 我们要引入序列化和反序列化,只不过我们直接采用现成的方案 – jsoncpp库 我们要对socket进行字节流的读取处理 不过我们会在下篇文章中自定义实现一下协议 3. Jsoncpp 下面我们来介绍一个序列化方案Jsoncpp Jsoncpp 是一个用于处理 JSON 数据的 C++ 库。 “precision”:设置浮点数输出精度(小数位数),例如 writerBuilder[“precision”] = 3 会保留 3 位小数。

    18710编辑于 2025-12-22
  • 来自专栏python3

    初学思科指令(3)CDP协议

    CDP协议 show cdp :显示更新时间及保持时间; show cdp neighbors :  显示每个接口的邻居信息; show cdp interface :  显示每个启用

    83130发布于 2020-01-14
  • 来自专栏陶辉笔记

    深入剖析HTTP3协议

    自2017年起HTTP3协议已发布了34个Draft,推出在即,Chrome、Nginx等软件都在跟进实现最新的草案。本文将介绍HTTP3协议规范、应用场景及实现原理。 HTTP3协议解决了这些问题: HTTP3基于UDP协议重新定义了连接,在QUIC层实现了无序、并发字节流的传输,解决了队头阻塞问题(包括基于QPACK解决了动态表的队头阻塞); HTTP3重新定义了TLS 本文也是我在2020年8月3号Nginx中文社区与QCON共同组织的QCON公开课中部分内容的文字总结。 HTTP3协议到底是什么? 就像HTTP2协议一样,HTTP3并没有改变HTTP1的语义。 ,例如Nginx与上游的默认协议还是1.0版本),即将面世的HTTP3协议的加入,将会进一步增加协议适配的复杂度 。 接下来,我们将深入HTTP3协议的细节。 连接迁移功能是怎样实现的?

    3.7K32编辑于 2023-10-18
  • 来自专栏悟空聊架构 | 公众号

    不惧面试:HTTP协议(3) - Cookie

    v博客前言 先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用这些协议更好地工作 ★ 不是,浏览器通常只向每个站点发送2~3个cookie。原因如下: (1)对所有这些cookie字节进行传输会严重降低性能。 (3)将所有的cookie发送给所有站点会引发潜在的隐私问题,那些你并不信任的站点也会获得你只想发给其他站点的信息。 7.cookie与缓存怎么取舍? Cookie: Name1=Tom; Name2=Jerry 不惧面试:HTTP协议(1) - 基础扫盲 不惧面试:HTTP协议(2) - 网关、隧道和中继 不惧面试:HTTP协议(3) - Cookie 不惧面试:HTTP协议(4) - 安全HTTP 不惧面试:HTTP协议(5) - 基本认证机制 持续更新中... 

    51920发布于 2018-06-26
  • 来自专栏网优小兵玩Python

    3GPP协议查看教程

    一、3GPP介绍 3GPP,3rd GenerationPartnership Project,即第三代合作伙伴计划。 二、3GPP协议查询 3GPP存在一个对全球开方的FTP服务器(境外站点,下载速度相当慢):http://www.3gpp.org/ftp/用于3GPP各种类型协议以及会议记录。 3GPP FTP的主目录如下图,FTP的目录结构基本与3GPP的组织架构吻合。 Specs文件夹存放的则是3GPP各个系列的协议文档: ? SA组网模式下,NR2L要切换的话就得5GC有N26接口才行,但这是为什么呢?因为标准是这样制定的。 我们就以SA-N26接口和EPS fallback为例进行3Gpp标准协议查看,首先我们要知道该内容在3GPP协议的23501中,进入2020-06/Rel-15/23_series(对应协议日期/协议版本

    3.7K21发布于 2020-08-10
  • 来自专栏悟空聊架构 | 公众号

    不惧面试:HTTP协议(3) - Cookie

    v博客前言 先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用这些协议更好地工作 ★☆   3.Cookie是怎么分类的?★☆   4.Cookie的工作原理?★★★   5.Cookie是怎么存储的?★☆   6.每次访问网站时,是不是将所有的cookie都发送所有的站点? 3.Cookie是怎么分类的?★☆ (1)会话cookie。临时cookie,记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie就被删除了。 (2)持久cookie。 ★ 不是,浏览器通常只向每个站点发送2~3个cookie。原因如下: (1)对所有这些cookie字节进行传输会严重降低性能。 (3)将所有的cookie发送给所有站点会引发潜在的隐私问题,那些你并不信任的站点也会获得你只想发给其他站点的信息。 7.cookie与缓存怎么取舍?

    649100发布于 2018-05-18
  • 来自专栏人生代码

    Vue 3 自定义事件

    自定义事件 除了系统自带的原生 DOM 自带的事件之外,有时候我们需要用到这些自带的事件之外,我们就必须要自定义事件了。 事件名 不同于组件和 prop,事件名不存在任何自动化的大小写转换。 定义自定义事件 继续上面的代码,可以通过 emits 选项在组件上定义已经发出的事件: <template>

    {{ title }}

    1.6K10发布于 2020-11-03
领券