为了适应单片机系统对内存使用极度变态的苛刻要求,onps 协议栈在设计之初即考虑采用写时零复制(zero copy)技术 。用户层数据在向下层协议传递过程中,协议栈采用 buf list 链表技术将它们链接到一起,直至将其发送出去,均无须任何内存复制操作 。另外 , 协议栈采用 buddy 算法提供安全、可靠的动态内存管理功能,以期最大限度地提高协议栈运行过程中的内存利用率并尽可能地减少内存碎片 。
不同于本世纪 00 到 10 年代初 , 单片机的应用场景中 ucosii 等 rtos 尚未大规模普及,前后台系统还大行其道的时代,现如今大部分的应用场景下开发人员选择使用 rtos 已成为主流 。因此,协议栈在设计之初即不支持前后台模式 , 其架构设计建立在时下流行的 rtos(RT-Thread、ucosii/iii 等)之上 。协议栈移植的主要工作也就自然是针对不同 rtos 编写相关 os 适配层功能函数了 。当然,如果你有着极其特定的应用场景 , 需要将 onps 栈移植到采用前后台模式的单片机上,我的建议是保留 tcp/udp 之下协议层的通讯处理逻辑,调整上层的系统架构使其适应目标系统运行模式 。
其实 , 协议栈完成开发只是实现梦想的第一步 。用户在使用过程中遇到的各种问题,协议栈的改进建议,新版本的发布都需要一个平台 。于是我又在阿里云购买了一台云服务器 , 带宽1Mbps(资金有限,实在没办法),在上面部署了一个WEB服务器,作为onps栈的技术交流及官方资讯发布平台 。另外我还为onps栈注册了一个域名:onps.org.cn , 作为onps栈的官网访问地址 。onps栈的源码可以从码云或gihub上获取 。
历尽千辛万苦,onps栈如今已开源 。新莺初啼,总免不了会有诸多不尽如人意的地方 。期望各位多多使用 , 把使用过程中遇到的问题通过onps栈的技术交流社区提交给我,让onps栈能够快速迭代,早日比肩LwIP,为国产核心基础软件的进步贡献你我一份微薄的力量!
【开源网络协议栈onps诞生记】
推荐阅读
- 驱动开发:内核封装WSK网络通信接口
- 来啦来啦|开源 * 安全 * 赋能 - .NET Conf China
- 一 SIP会话发起协议 - 先知道是什么
- 【lwip】08-ARP协议一图笔记及源码实现
- 紫宸殿网络打不开 紫宸殿网络
- 网络不稳定老是掉线怎么办(网络不稳定如何解决)
- 网络不稳定怎么办(wifi网络不稳定怎么办)
- 网络非常不稳定怎么办(网络不稳定了怎么解决)
- 网络信号不稳定怎么解决(网络不稳定了怎么解决)
- 为什么手机数据网络不稳定(怎样让手机网络稳定)