DJYIP自主网络协议栈介绍

DJYOS 的 TCP/IP 网络协议栈:专业剖析与创新突破
admin 2024-06-30 操作系统 260 0


        在嵌入式操作系统领域,LWIP/UIP、NUTTX、RTEMS 等皆为经典之作,在各自的应用领域取得了斐然成就。然而,我们亦需正视这些嵌入式操作系统存在的某些局限性。正是基于对这些问题的深入探究,我们倾力打造出一款更为卓越的 TCP/IP 网络协议栈——基于DJYOS 的 TCP/IP 网络协议栈,旨在弥补现有协议栈的不足之处。


        伴随科技的持续演进,当下最低的 M0/M3 芯片均可提供数十 KB 的 RAM 以及数百 KB 的 ROM,此类片上资源为微内核的 RTOS 开发给予了充分支撑。故而,我们的 DJYOS 协议栈是面向操作系统(DJYOS)而设计的。


    我们所设计的 DJYOS 协议栈具备如下特性:


一、面向RTOS 的精心设计


        鉴于芯片技术的不断进步,片上系统的资源日渐丰富,数十 KB 的 RAM 与数百 KB 的 ROM 已成为最低标准。这些资源足以支撑微内核的 RTOS 方案,我们的协议栈正是依据这样的硬件环境予以精心规划的。


二、高度层次化与模块化架构


        协议栈采用高度层次化与模块化的设计理念,此举有利于达成协议栈的轻量化设计以及配置裁剪。譬如,协议栈可仅涵盖套接字层与传输层(接入硬件协议栈),便可进行套接字编程并实现与物联网的无缝连接。在当前互联网浪潮的大背景下,此种轻量化的设计彰显出显著的优势。


三、简洁高效的配置模式


        协议栈的配置呈现出简洁且高效的特质,BSP 的配置与协议栈属性的配置相互独立。如此一来,应用开发人员能够迅速且精准地为自身的方案进行“正确”、“精确”的配置操作。


四、完备的套接字层


        全球范围内广泛采用套接字编程,因而我们的协议栈务必配备完善的套接字层,且该层应为独立的层次,绝非仅仅是宏定义的兼容。如此,大规模的开源库(特别是物联网协议与工控协议)方能实现无缝接入,同时亦能使 PC 编程的习惯在嵌入式开发中得以延续,达成编程的统一性。


五、轻量化套接字数据设计


        我们采用了轻量化的套接字数据设计方案,能够将套接字纳入到统一的文件句柄管理之中,完全兼容 POSIX 的 IO 操作。


六、分层式设计理念


        协议栈采用自上而下的套接字层、传输层、网络层、链路层、设备抽象层的分层设计模式。此种设计不仅利于开发工作的开展,更便于后续的维护操作,使用户能够更加安心地使用。


七、插拔式模块设计策略


        各个层次的模块设计尽力实现插拔式的特性,例如传输层不仅支持通用的 TCP/UDP,还能够兼容硬件协议栈的硬件协议插入,真正践行了“socket 是插座”的理念。


八、轻量级包传输机制


        我们引入了简便而高效的轻量级包传输机制,提升了数据在层次之间传输的效率,降低了资源的消耗,力求实现真正意义上的“零拷贝”。


九、充分考量软硬件特性


        在层次之间的交互过程中,我们全面考量了上下层次之间的软件与硬件特性,最大程度地降低了系统负荷。例如,TCP 校验和不再是一个单纯的宏定义,而是依据实际情况进行精确计算,以支持多网卡的应用需求。


十、独立的路由模块


        协议栈中内置独立的路由模块,负责路由的匹配与更新,确保数据能够准确、迅速地进行传输。


十一、IPV4/IPV6 统一的追求


        实现 IPv4 和 IPv6 之间的统一,以顺应未来网络发展的趋势。




扫描二维码

手机扫一扫添加微信

13686873219 扫描微信 30961923