4 Star 3 Fork 44

OpenHarmony / kernel_linux_common_modules

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_zh.md 4.47 KB
一键复制 编辑 原始数据 按行查看 历史
YangYanJun 提交于 2023-04-21 16:20 . newip开源合规评审问题修改

New IP内核协议栈

简介

New IP在现有IPv4/IPv6能力的基础上,以灵活轻量级报头和可变长多语义地址为基础,通过二三层协议融合,对协议去冗和压缩,减少冗余字节,实现高能效比,高净吞吐,提升通信效率。打造终端之间高效的横向通信,支撑超级终端的体验,实现异构网络的端到端互联。

目前WiFi协议报文,三层报头和地址开销使得报文开销大,传输效率较低。

image-20220915162621809

IPv4地址长度固定4字节,IPv6地址长度固定16字节。
IPv4网络层报头长度20~60字节,IPv6网络层报头长度40字节。

New IP支持可变长多语义地址(最短1字节)可变长定制化报头封装(最短5字节),通过精简报文头开销,提升数据传输效率。

New IP报头开销,相比IPv4节省25.9%,相比IPv6节省44.9%。

New IP载荷传输效率,相比IPv4提高最少1%,相比IPv6提高最少2.33%。

对比场景 报头开销 载荷传输效率(WiFi MTU=1500B,BT MTU=255B)
IPv4 for WiFi 30+8+20=58 B (1500-58)/1500=96.13%
IPv6 for WiFi 30+8+40=78 B (1500-78)/1500=94.8%
New IP for WiFi 30+8+5=43 B (1500-43)/1500=97.13%

系统架构

New IP内核协议栈架构图如下,用户态应用程序调用Socket API创建New IP socket,采用New IP极简帧头封装进行收发包。

image-20220901152539801

目录

New IP内核协议栈主要代码目录结构如下:

# 代码路径 /kernel/linux/common_modules/newip
├── examples              # New IP 用户态样例代码
├── src                   # New IP 自研代码
│   ├── common            # New IP 通用代码
│   └── linux-5.10        # New IP Linux-5.10内核代码
│       ├── net
│       │   └── newip     # New IP 功能代码
│       └── drivers
│           └── net
│               └── bt    # New IP 功能代码
├── third_party           # New IP 三方引用+增量开发代码
│   └── linux-5.10        # New IP Linux-5.10内核代码
│       ├── include       # New IP 头文件
│       │   ├── linux
│       │   ├── net
│       │   └── uapi
│       └── net
│           └── newip     # New IP 功能代码
├── figures               # ReadMe 内嵌图例
└── tools                 # New IP 配套工具

编译构建

详见“New IP内核协议栈开发手册-配置指导”章节。

说明

可变长报头格式

详见“New IP内核协议栈开发手册-可变报头格式”章节。

可变长地址格式

详见“New IP内核协议栈开发手册-可变长地址格式”章节。

接口说明

详见“New IP内核协议栈开发手册-New IP相关接口”章节。

New IP收发包代码示例

详见“New IP内核协议栈开发手册-New IP收发包代码示例”章节。

selinux规则说明

详见“New IP内核协议栈开发手册-selinux规则说明”章节。

相关仓

内核子系统

kernel_linux_5.10

kernel_linux_config

kernel_linux_build

device_board_hihope

1
https://gitee.com/openharmony/kernel_linux_common_modules.git
git@gitee.com:openharmony/kernel_linux_common_modules.git
openharmony
kernel_linux_common_modules
kernel_linux_common_modules
master

搜索帮助