协议栈

蓝牙5.0IN610/IN610L/IN612L替代NRF52832/NRF52840

為{幸葍}努か 提交于 2020-01-11 14:33:56
蓝牙5.0(1对4) IN610 对标型号是NRF52832 蓝牙5.0(1对25) IN610L 多点连接+远距离,(其他家没有这个feature) 对标型号是NRF52840 蓝牙5.0+2.4G IN612L 兼容IN610L,可以连300个点,对标型号NRF52840,主要应用于室内定位,AR游戏机和体感游戏,降低延迟点和更多连接点,体验感更好 对比NORDIC的NRF52832和NRF52840主要优势有: 1.拥有2.4G私有协议,延迟更低 2.INPLAY的连接点可以1对25个蓝牙外围从设备,NORDIC只有1对4-6个 3.IN612L的蓝牙5.0和SDR私有协议兼容 4.用户应用程序64K RAM,还剩有40KRAM用于用户连接 5.每个芯片有独立的ID 6.底层协议可供用户修改 IN612L是美国公司INPLAY的SOC产品系列之一,具有多模协同2.4G无线协议栈,支持2.4G私有协议栈以及蓝牙5.0全协议栈的SOC芯片; 如2mbps高数据速率模式,125kbps/500kbps编码物理速率支持,以及扩展的广告功能。 用户定义的SDR协议栈(2.4G协议栈)及其内置的Bluetooth 5协议栈可以同时运行,因此可以很好地解决和优化许多复杂的网络应用。 该芯片内置32bitARM Cortex-M4F CPU 支持浮点运算;内部包含256Krom,512K

2012年计划

梦想与她 提交于 2020-01-11 01:29:33
需要学习的方向: 1. Linux协议栈的彻底学习以及相关的协议栈漏洞的研究 2. 加强基础知识学习 (操作系统,算法,数据结构) 3. 加强英语学习 4. 加强逆向调试能力,开始加强对协议分析的理解, 5. 加强网络安全学习 (漏洞挖掘,漏洞利用) 6.加强内核的学习 需要动手的例子: 1.实际crackme的练习,每天都要练习一下,坚持下来 2.实际操作系统的编写,争取今年完成一个小型操作系统的编写 3.内核的分析,输出分析文档 4.协议分析,加强各类的学习分析 2012年重点在于对协议栈的理解,对逆向的理解,对漏洞的理解 来源: https://www.cnblogs.com/moonflow/archive/2012/02/03/2336583.html

[转帖]C1000k 新思路:用户态 TCP/IP 协议栈

不羁岁月 提交于 2020-01-09 22:55:27
C1000k 新思路:用户态 TCP/IP 协议栈 https://blog.csdn.net/Solstice/article/details/26363901 C1000k 新思路:用户态 TCP/IP 协议栈 现在的服务器支撑上百万个并发 TCP 连接已经不是新闻(余锋2010年的演讲,ideawu 的 iComet 开源项目,WhatsApp 做到了 2.5M)。实现 C1000k 的常规做法是调整内核参数,提高文件数,降低每个连接的内存消耗(参考 ideawu 的博客)。 在今年的 BSDCan2014 会议上, Patrick Kelsey 介绍了把 FreeBSD 9.x 的 TCP/IP 协议栈移植到了用户态(slides, github.com/pkelsey/libuinet),并用于 WANProxy 项目。在用户态运行 TCP/IP 协议栈意味着并发 TCP 连接不再占用系统文件数,只占内存,解决了 C1000k 的一大瓶颈,内核只要提供一个收发网络 packet 的接口就行(例如netmap)。 内核的网络协议栈强调通用性,主要是为吞吐量优化(性能指标通常是 MB/s 或 packets per second),顺带兼顾大量并发连接。为了支持 C1000k,要调整内核参数让每个连接少占资源,这与内核代码的设计初衷是违背的。 用户态协议栈捅破了这层窗户纸

阻塞与非阻塞的区别

折月煮酒 提交于 2020-01-04 05:01:27
简单点说: 阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声 我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你Copy过来的数据的话...这时候就体现出阻塞和非阻塞的不同之处了:对于阻塞模式的socket send函数将不返回直到系统缓冲区有足够的空间把你要发送的数据Copy过去以后才返回,而对于非阻塞的socket来说send会立即返回WSAEWOULDDBLOCK告诉调用者说:"发送操作被阻塞了!!!你想办法处理吧..." 对于recv函数,同样道理,该函数的内部工作机制其实是在等待TCP/IP协议栈的接收缓冲区通知它说:嗨,你的数据来了.对于阻塞模式的socket来说如果TCP/IP协议栈的接收缓冲区没有通知一个结果给它它就一直不返回:耗费着系统资源....对于非阻塞模式的socket该函数会马上返回,然后告诉你:WSAEWOULDDBLOCK---"现在没有数据,回头在来看看" 扩展: 在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。这些方式彼此概念并不好理解。下面是我对这些术语的理解。 同步

KVM虚拟化技术(一)虚拟化简介

谁说我不能喝 提交于 2019-12-29 22:03:14
一 、虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 虚拟化的类型:   全虚拟化   半虚拟化(涉及修改guestos内核,因此仅支持开源kernel的系统)   硬件辅助虚拟化(主板上开启虚拟化支持) 几种虚拟化软件简介 KVM 完全虚拟化 架构:寄居架构(linux内核);祼金属架构RHEV-H 特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳性能。 I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了最新的驱动和I/O协议栈的改进。 VmWare ESX 完全虚拟化 架构:裸金属架构 I/O协议栈:VMware选择性能,但是把I/O协议栈放到了hypervisor里面。不幸的是,VMware kernel是专有的,那就意味着VMware不得不开发和维护整个协议栈,会导致开发速度会减慢,你的硬件可能要等一段时间才会得到VMware的支持。 Citrix XenServer 半虚拟化(linux安装linux);全虚拟化(linux安装windows),硬件辅助虚拟化 架构

虚拟化技术(1)——介绍

只愿长相守 提交于 2019-12-29 22:02:03
什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 几种虚拟化软件介绍 RedHat KVM 虚拟化方式:完全虚拟化 架构:寄居架构(linux内核);祼金属架构RHEV-H 特点:祼金属架构RHEV-H或在关键的硬盘和网卡上支持半虚拟化VirtIO,达到最佳性能。 I/O协议栈:KVM重用了整个Linux I/O协议栈,所以KVM的用户就自然就获得了最新的驱动和I/O协议栈的改进。 架构图: VmWare ESX 虚拟化方式:完全虚拟化 架构:裸金属架构 I/O协议栈:VMware选择性能,但是把I/O协议栈放到了hypervisor里面。不幸的是,VMware kernel是专有的,那就意味着VMware不得不开发和维护整个协议栈,会导致开发速度会减慢,你的硬件可能要等一段时间才会得到VMware的支持。 架构图: Citrix XenServer 虚拟化方式:半虚拟化(linux安装linux);全虚拟化(linux安装windows),硬件辅助虚拟化 架构:裸金属架构 I/O协议栈:Xen选择了可维护这条道路,它将所有的I

Nordic的sdk和蓝牙协议栈的命名规则

眉间皱痕 提交于 2019-12-28 15:14:45
Softdevice命名规则一 Softdevice包括两种底层协议栈:BLE和ANT,BLE包括两种角色:central(又称master)和peripheral(又称slave),为此需要给这些不同类型的协议栈进行命名区分。协议栈命名格式为Sxyz,其中 x – 表示协议栈的类型,1表示BLE协议栈,2表示ANT协议栈,3表示同时支持BLE和ANT y – 表示BLE角色,1表示从设备,2表示主设备,3表示同时支持主设备和从设备 z – 表示芯片类型,0表示nRF51系列,2表示nRF52系列 比如S110,表示只支持从设备模式的nRF51 BLE协议栈 比如S130,表示既支持从设备模式又支持主设备模式的nRF51 BLE协议栈 比如S132,表示既支持从设备模式又支持主设备模式的nRF52 BLE协议栈 比如S212,表示nRF52 ANT协议栈 比如S332,表示nRF52既支持BLE协议栈又支持ANT协议栈,而且BLE协议栈既支持从设备模式又支持主设备模式 Softdevice命名规则二 大体上跟命名规则1相同,但是协议栈编号最后2位跟芯片型号一样,比如S140,代表这个协议栈专门用于nRF52840。由于52840 Flash空间很大,没有必要做各种细分的协议栈,S140协议栈是一个大而全的协议栈,包含蓝牙所有功能。 Softdevice版本编号,从1.0.0开始编号

zigbee协议栈的系统相关函数的使用

风格不统一 提交于 2019-12-26 23:49:09
文章目录 1.osal_set_event函数的使用 2.osal_start_timerEx函数,数码管变成c,两秒钟以后,灯点亮。 3.我们能不能自己添加一个事件而不用GENERICAPP_SEND_MSG_EVT事件。 哎,我早知道在实验过程中写总结了,我是先截完图然后实验做完才写的总结,这就导致很多步骤比较凌乱,因为写总结时候我才发现有很多截图我忘了当时为什么截了。。。 主要就是通过这个实验知道了: 怎么在初始化时候干一些事情 那些函数的参数是和什么有关的 怎么仿照协议栈自己写一个事件 1.osal_set_event函数的使用 修改事物,点亮p0_1 修改代码GenericApp.c的如下代码: if ( events & GENERICAPP_SEND_MSG_EVT ) { // Send "the" message GenericApp_SendTheMessage ( ) ; // Setup to send message again osal_start_timerEx ( GenericApp_TaskID , GENERICAPP_SEND_MSG_EVT , GENERICAPP_SEND_MSG_TIMEOUT ) ; // return unprocessed events return ( events ^ GENERICAPP_SEND_MSG

Asterisk 1.8 sip 协议栈分析

余生颓废 提交于 2019-12-25 16:34:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 引用自:http://blog.csdn.net/z1623866465/archive/2011/01/02/6113057.aspx 看了一下 asterisk 1.8 ,chan_sip 更新了许多内容,下面结合asterisk 1.4 asterisk 1.6 分析一下sip协议栈。 此笔记为本人学习记录,有些地方描述其他人可能看不懂,望见谅。 分析路线 sipsock_read->parse_request->find_call->handle_inconming->handle_request_方法名。。。。 协议栈初始化:load_module() 函数加载SIP配置信息,解析sip.conf挂载到全局变量中。 首先初始化user,peer,register全局链表(1.6 版本中已经改为hash存储 估计性能提高不少),这三个链表分别存储用户,peer,register三个实体。 接下来创建 调度器,IO管理器,这里IO即监听socket fd句柄上的IO事件,chan_sip用poll异步IO实现此功能,io_context 结构封装了此功能。 创建IO调度器后注册各种app, load_module()最后调用restart_monitor()函数创建一个线程(do_monitor()

vxworks下gmac调试的总结

こ雲淡風輕ζ 提交于 2019-12-25 05:28:21
1:3280芯片手册详解过程: MAC 控制器支持 DMA 接收和发送,内部在接收和发送方向各有一个 2048 字节的 FIFO作为缓存。由于 FIFO 深度所限,MAC 控制器不支持硬件自动流控机制。 模式和带宽的切换 1:在做 MII 和 RMII 之间的切换前,应该先掉电 2:上电后软件重新配置芯片系统控制模块中MAC 的工作接口模式寄存器,之后再启动 MAC 控制器 3:需要注意的是,在收发功能开启的状态下不能对双工模式或速率进行改变(先关掉Mac收发,这样可以避免出现大量的错包的情况) 1:所有的发送中断和接收中断触发的条件都是dma操作完成(dma完成数据搬运的操作); 2:较早发送和接收中断说明数据帧较大不是一个buffer发送; 芯片的寄存器空间: MAC 模块支持以太网 PHY 的 MII 接口和 RMII 接口。 CSR(Control & Status 寄存器)共占有 8KB 地址空间,分为两段:DMA CSR 和 MAC CSR。 AHB Master 接口为 DMA 模块与系统主机的接口。 APB 接口即 CSR 接口,用于读写访问 DMA CSR 和 MAC CSR。 DMA 模块有独立的发送和接收引擎,进行系统内存与 MAC 间的数据搬运,将 CPU 的 干预最小化,只在帧发送或接收结束以及其他一些条件(如发生错误)下中断 CPU。 DMA