这个是对腾讯开源组件spp 框架源码学习后的一个流程梳理。主要包括spp组成,以及各模块的函数调用流程 SPP(Serverbench Plus Plush)是一个高效、健壮的通用网络服务器运行框架。 它提供API给业务开发人员开发基于SPP的插件,插件开发人员只需要关心业务逻辑的处理,开发业务插件,然后简单加载业务so库就可以实现高效的业务服务器。 本篇为ppt,主要是对spp源码进行学习后,对其进行的一个梳理,主要包括spp个模块组成,以及相关代码调用。 其中着重的梳理了spp中proxy 和 worker 模块的调用逻辑 spp代码走读.ppt
-proto ricmp -listen 0.0.0.0 可以使用一条命令在不同端口监听不同协议 spp -type server -proto tcp -listen :8888 -proto 实战中只需要修改proxyproto参数就可以转换协议 正向代理端口 将vps的8999端口代理至本机8080 spp -name "test" -type proxy_client -server Server监听udp spp -type server -proto rudp -listen :8888 Client外部使用udp连接,内部封装tcp进行正向代理转发端口 spp -name ICMP+反向socks代理 Server spp -type server -proto ricmp -listen 0.0.0.0 Client . spp -type server -proto ricmp -listen 0.0.0.0 Client spp -name "test" -type proxy_client -server vps
作者:陈伟 导语: 关于SPP的解读已经很多,本文尝试从另外的角度解读SRF&SPP的源码。本文所涉及SRF代码皆以3.1.8版本,SPP代码皆以3.0.1版本为准。 spp_handle_init spp_handle_input spp_handle_route spp_handle_process spp_handle_fini 接下来深入到源码看看框架都帮我们做了什么事情 数据包路由 spp_handle_route方法实现了数据包路由,其实现在SRF中非常简单: extern "C" int spp_handle_route(unsigned flow, void* arg1 数据包处理 spp_handle_process方法是worker进程所调用的消息处理函数: extern "C" int spp_handle_process(unsigned flow, void* 业务终止 spp_handle_fini的代码很简单只是做一些对象的析构而已。
---- 内网隧道之spp 前言 本文研究支持多协议双向代理的一个工具,spp github:https://github.com/esrrhs/spp 一、概述 1、简介 2020年新鲜出炉,持续更新 /spp -type server -proto tcp -listen :8888 也可以同时监听其他类型的端口与协议 . /spp -type server -proto tcp -listen :8888 -proto rudp -listen :9999 -proto ricmp -listen 0.0.0.0 也可以使用 docker docker run --name my-server -d --restart=always --network host esrrhs/spp . /spp -type server -proto ricmp -listen 0.0.0.0 (2)客户端 .
作者:袁浩 导语 SPP框架的微线程模式在网络密集型Server开发中优势明显,用同步的方式写异步的代码真的很爽。QQ消息系统这边目前也有若干模块都在使用SPP框架,新增模块也首选SPP。 优化proxy路由函数spp_handle_route 一般来讲,proxy的路由函数只需随机选一个worker保持worker负载均衡即可。 可参考thomas同学的文章《一种SPP性能改良方法》 图:spp_handle_init启动监听微线程 图:监听函数处理收包,并创建微线程和msg处理请求 不过这种方式,有一个不爽的地方就是不能批量监听端口 ,SPP没有提供mt_select方法,因为微线程底层的就是用select来实现的。 但有以下几个问题: a. msg比较复杂,里面脏数据比较难以控制; b. msg是由用户创建,spp框架释放,我们怎么回收到对象池中?
所以SPP-Net需要一种算法,这种算法能够把不一致的输入产生统一的输出,这就SPP,即空间金字塔池化,由它替换R-CNN中的pooling层,除此之外,它和R-CNN就一样了。 上提取SPP特征,fc7层特征送入SVM做类别的预测,SPP特征送入bounding box做边界框的修正。 SPP-Net性能评价 上面这张图说明了下SPP-Net与R-CNN的性能对比,其中训练时间SPP-Net需要25个小时,而R-CNN需要84小时;单张图片的测试时间SPP-Net只需要2.3s, 而R-NN需要47s,这就是共享卷积计算带来的速度上的提升,也是SPP-Net最重要的贡献;最后一个指标,SPP-Net的mAP相比R-CNN反而更低了,这是因为SPP-Net的结构无法fintune卷积层 SPP-Net的问题 最后,通过上面的性能评价可以看到,SPP-Net在速度上有大幅的提升,其所提出的共享卷积计算的思想在后续的Fast R-CNN与Faster R-CNN中都在沿用,但是从SPP-Net
项目介绍 SPP是一款简单强大的网络代理工具,它可以满足我们在攻防演练过程中的打隧道的基本需求(除去DNS协议),它具备以下特点: 支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp /spp -type server -proto tcp -listen :8888 b、可以同时监听多种类型的端口与协议 . /spp -type server -proto tcp -listen :8888 -proto rudp -listen :9999 -proto ricmp -listen 0.0.0.0 c、同时可以使用 Docker docker run --name my-server -d --restart=always --network host esrrhs/spp . /spp -name "test" -type reverse_proxy_client -server www.server.com:8888 -fromaddr :8080 -toaddr :8080
SPP-Net训练与测试 SPP-Net的训练过程: 首先拿到在ImageNet预训练的AlexNet模型,用AlexNet计算Conv5层特征,根据ss生成的区域建议,从Conv5上提取到对应的SPP 上提取SPP特征,fc7层特征送入SVM做类别的预测,SPP特征送入bounding box做边界框的修正。 SPP-Net性能评价 上面这张图说明了下SPP-Net与R-CNN的性能对比,其中训练时间SPP-Net需要25个小时,而R-CNN需要84小时;单张图片的测试时间SPP-Net只需要2.3s,而R-NN 需要47s,这就是共享卷积计算带来的速度上的提升,也是SPP-Net最重要的贡献;最后一个指标,SPP-Net的mAP相比R-CNN反而更低了,这是因为SPP-Net的结构无法fintune卷积层。 SPP-Net的问题 最后,通过上面的性能评价可以看到,SPP-Net在速度上有大幅的提升,其所提出的共享卷积计算的思想在后续的Fast R-CNN与Faster R-CNN中都在沿用,但是从SPP-Net
本文为您解读SPP-net: Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Motivation Solution 因此突破口有两个, 让卷积层能为不同尺寸的输入产生相同尺寸的输出(SPP) 让全连接层能为不同尺寸的输入产生相同尺寸的输出(全卷积) 全卷积和卷积的区别在于最后不是用全连接层进行分类, Summary 严格来讲SPP-net不是为detection而生的模型,但是SPP-net为RCNN进化到Fast-RCNN起了很大的借鉴作用,值得一读。 SPP-net的想法很有意思,SPP(Spatial Pyramid Pooling)是对网络结构的一种改进,可能因为是华人写的论文,感觉很好读,含金量个人感觉没有RCNN或者DPM的论文高,但是实验很丰富 ,从分类任务和检测任务上的各种网络结构证明SPP的有效性
这一期的文章离不开上一期的R-CNN,因为SPP-Net是基于R-CNN进化而来的,建议先看上期R-CNN,上期链接如下: 目标检测的里程碑R-CNN通俗详解 SPP-Net全称Spatial Pyramid 为什么这里会插进来一个SPP-Net呢?因为SPP-Net对R-CNN的进化有着比较大的影响。主要改进有以下两点: 特征映射,只需要做一次卷积池化操作。 金字塔池化层,可以适应任意尺寸的输入。 那我们就一起来看一下SPP-Net是怎么做到的? 1. SPP-Net和R-CNN框架区别 SPP-Net的作者是何凯明。 SPP-Net通俗步骤 这里我们仅从SPP-Net的步骤以及与R-CNN不同的地方着手,重点学习下,其他跟R-CNN相同的地方还请移步上一期文章。 SPP-Net步骤 SPP-Net的大致步骤还是跟R-CNN比较类似, a. 首先也是通过SS算法进行候选框选取; b. 接着将原图进行卷积池化进行特征提取,得到特征图; c.
低功耗蓝牙(BLE) vs 经典蓝牙(SPP)区别项低功耗蓝牙(BLE)经典蓝牙(SPP 串行端口协议)蓝牙版本蓝牙版本 >= 4.0,又称蓝牙低功耗、蓝牙智能经典蓝牙2.0 或更早版本,经典配对模式在两台蓝牙设备之间建立虚拟串口数据连接 传输速率低带宽:BLE数据速率通常只有1Mbps或更低,主要用于低速度的控制类或监测类数据交换SPP可以达到3Mbps或更高。 而SPP适用于需要大容量数据传输的应用,例如音频设备、文件传输等。看功耗需求:如果你的应用对功耗有严格要求,需要长时间运行,并且传输的数据量较小,那么选择BLE是明智的。 如果你的应用对功耗要求不高,但需要高速数据传输,那么选择SPP可能更合适。看连接距离需求:如果你需要在较远距离进行通信,经典蓝牙通常具备更广泛的连接范围。 综上所述,BLE和SPP是两种不同的蓝牙通信协议,它们在功耗、数据传输速率和连接范围上存在区别。根据应用的需求,选择适合的协议以实现最佳的无线通信效果。
SPP-Net训练与测试 ? 上提取SPP特征,fc7层特征送入SVM做类别的预测,SPP特征送入bounding box做边界框的修正。 SPP-Net性能评价 ? ,也是SPP-Net最重要的贡献;最后一个指标,SPP-Net的mAP相比R-CNN反而更低了,这是因为SPP-Net的结构无法fintune卷积层。 SPP-Net的问题 最后,通过上面的性能评价可以看到,SPP-Net在速度上有大幅的提升,其所提出的共享卷积计算的思想在后续的Fast R-CNN与Faster R-CNN中都在沿用,但是从SPP-Net
exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 0.0.0.0 set LPORT 88 run 内网穿透-Spp -特殊协议-上线 https://github.com/esrrhs/spp 支持的协议:tcp、udp、udp、icmp、http、kcp、quic 支持的类型:正向代理、反向代理、socks5正向代理 /spp -type server -proto ricmp -listen 0.0.0.0 2、客户端: 将本地5555端口流量转发至47.94.236.117 80端口上(TCP封装成ICMP) spp -name “test” -type proxy_client -server 47.94.236.117 -fromaddr :5555 -toaddr :80 -proxyproto tcp
SPP-Net原理 设计思路 SPP-Net主要改进有下面两个: 共享卷积计算 空间金字塔池化 在SPP-Net中同样由这几个部分组成: 1.ss算法 2.CNN网络 3.SVM分类器 4.bounding 上提取SPP特征,fc7层特征送入SVM做类别的预测,SPP特征送入bounding box做边界框的修正。 SPP-Net性能评价 上面这张图说明了下SPP-Net与R-CNN的性能对比,其中训练时间SPP-Net需要25个小时,而R-CNN需要84小时;单张图片的测试时间SPP-Net只需要2.3s, 而R-NN需要47s,这就是共享卷积计算带来的速度上的提升,也是SPP-Net最重要的贡献;最后一个指标,SPP-Net的mAP相比R-CNN反而更低了,这是因为SPP-Net的结构无法fintune卷积层 SPP-Net的问题 最后,通过上面的性能评价可以看到,SPP-Net在速度上有大幅的提升,其所提出的共享卷积计算的思想在后续的Fast R-CNN与Faster R-CNN中都在沿用,但是从SPP-Net
编译运行yolov3 spp模型 ---- 关于spp与tiny的区别,请查看:https://pjreddie.com/darknet/ ,这里不详述。 /rknn_models/gf_yolov3_spp.rknn, time: 327.27s 总耗时327秒,编译耗时255秒,模型大了,耗时也是大大的增加。
这里我们在卷积层后面,全链接层之前加入一层 SPP,用于解决CNN输入固定尺寸的限制问题。 那么究竟SPP是怎么解决图像输入尺寸问题的了? ? 对于任意尺寸图像,卷积层都是可以接受的,多大尺寸进去,多大尺寸出来嘛,所以上面说卷积层对图像尺寸大小不敏感。 对于任何输入尺寸图像,经过卷积之后,再用 SPP层处理,我们都会得到这个固定维度的特征向量。这个向量维度固定之后,后面的全链接层就可以固定了,因为神经元个数固定下来了,就是这个向量维度。
yolov3-spp训练过程和yolov3完全一样,只是预训练模型在哪呢,网上都么有找到,可以用下面方法生成 . /darknet partial cfg/yolov3-spp.cfg Yolov3-spp.weight yolov3-spp.conv.15 15 更新说明:利用上面生成预训练模型只有3.6M,应该不行
想直接看公式的可跳至第三节 3.公式修正 一、为什么需要SPP 首先需要知道为什么会需要SPP。 综上,SPP的提出就是为了解决CNN输入图像大小必须固定的问题,从而可以使得输入图像高宽比和大小任意。 二、SPP原理 更加具体的原理可查阅原论文:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 我们看SPP的名字就是到了,是做池化操作,一般选择MAX Pooling,即对每一份进行最大池化。 三、SPP公式 理论应该理解了,那么如何实现呢?
什么是蓝牙透传芯片蓝牙透传芯片的BLE和SPP有什么区别?如何理解呢? 透传的概念理解蓝牙SPP也是属于蓝牙协议的子集,但是它和BLE不同,SPP的存在是在蓝牙协议初期的时候就已经有了,最早的蓝牙协议1.0版本,里面就包含了SPP的部分蓝牙SPP属于经典蓝牙的里面的子集。 他们是这样的一个从属关系蓝牙SPP的推出,至今也有小20年了,应用场景也是非常的广泛,但是基本上大部分的应有都在被BLE慢慢的替代,毕竟蓝牙协议以后的发展趋势,就是BLE。 但是安卓端的历史原因,很多的应用还是走的传统的SPP,不知道为啥很多的厂商不愿意改比如:蓝牙打印机、门禁等等,都还是SPP 。 除非SPP彻底的退出历史舞台,不得不改双模和单模如何理解首先,什么是单模:指有一种蓝牙版本,运行一种蓝牙协议栈的模块,常用在BLE模块时,是单模式模块,简称单模。
一、简介KT6368A双模蓝牙芯片BLE和SPP的速率、速度是多少,请详细描述一下细节关于速率详细说明关于速率,其实我们并没有系统性的测试,这里速率包含BLE ,和SPP两种速率区别很大BLE的速率,目前我们测试仅仅只有 设置mtu和串口波特率可以提高速率SPP的速率,理论上是可以达到60kbs,实际配合客户做项目,可以达到45kbs,也就是每秒45Kbyte当然这个还要考虑很多其他因素:比如信号稳定性、搭配晶振的频偏、 距离等等,因为参数不一样,丢包率不一样以上给的速率,还是理想环境下的速率需要高速率的应用,强烈建议如下:能选SPP,则不要选择ble,ble的速率不可能上得去。 但是spp用不了ios系统一定要把KT6368A的串口波特率调高,越高越好,比较串口接收发送,也要占用时间关于BLE的速率详细说明:关于BLE的速率,绕不开一个名词“MTU”,具体网上搜索学习一下BLE 关于SPP的速率详细说明:spp就没有那么多事,简单直接,因为spp还是属于经典蓝牙里面子协议,共享经典蓝牙的带宽以及跳频点,所以速率相对会快很多 。