Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
examples/ | 12-May-2024 | - | 1,551 | 1,095 | ||
figures/ | 12-May-2024 | - | ||||
src/ | 12-May-2024 | - | 3,738 | 2,563 | ||
third_party/linux-5.10/ | 12-May-2024 | - | 13,937 | 9,594 | ||
tools/ | 12-May-2024 | - | 331 | 211 | ||
README_zh.md | D | 12-May-2024 | 4.5 KiB | 98 | 63 | |
apply_newip.sh | D | 12-May-2024 | 1.9 KiB | 51 | 31 |
README_zh.md
1# New IP内核协议栈 2 3## 简介 4 5New IP在现有[IPv4/IPv6](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-5.10.y)能力的基础上,以灵活轻量级报头和可变长多语义地址为基础,通过二三层协议融合,对协议去冗和压缩,减少冗余字节,实现高能效比,高净吞吐,提升通信效率。打造终端之间高效的横向通信,支撑超级终端的体验,实现异构网络的端到端互联。 6 7目前WiFi协议报文,三层报头和地址开销使得报文开销大,传输效率较低。 8 9![image-20220915162621809](figures/image-20220915162621809.png) 10 11``` 12IPv4地址长度固定4字节,IPv6地址长度固定16字节。 13IPv4网络层报头长度20~60字节,IPv6网络层报头长度40字节。 14``` 15 16New IP支持**可变长多语义地址(最短1字节)**,**可变长定制化报头封装(最短5字节)**,通过精简报文头开销,提升数据传输效率。 17 18New IP报头开销,相比IPv4节省25.9%,相比IPv6节省44.9%。 19 20New IP载荷传输效率,相比IPv4提高最少1%,相比IPv6提高最少2.33%。 21 22| 对比场景 | 报头开销 | 载荷传输效率(WiFi MTU=1500B,BT MTU=255B) | 23| --------------- | ------------ | ------------------------------------------- | 24| IPv4 for WiFi | 30+8+20=58 B | (1500-58)/1500=96.13% | 25| IPv6 for WiFi | 30+8+40=78 B | (1500-78)/1500=94.8% | 26| New IP for WiFi | 30+8+5=43 B | (1500-43)/1500=97.13% | 27 28## 系统架构 29 30New IP内核协议栈架构图如下,用户态应用程序调用Socket API创建New IP socket,采用New IP极简帧头封装进行收发包。 31 32![image-20220901152539801](figures/image-20220901152539801.png) 33 34## 目录 35 36New IP内核协议栈主要代码目录结构如下: 37 38``` 39# 代码路径 /kernel/linux/common_modules/newip 40├── examples # New IP 用户态样例代码 41├── src # New IP 自研代码 42│ ├── common # New IP 通用代码 43│ └── linux-5.10 # New IP Linux-5.10内核代码 44│ ├── net 45│ │ └── newip # New IP 功能代码 46│ └── drivers 47│ └── net 48│ └── bt # New IP 功能代码 49├── third_party # New IP 三方引用+增量开发代码 50│ └── linux-5.10 # New IP Linux-5.10内核代码 51│ ├── include # New IP 头文件 52│ │ ├── linux 53│ │ ├── net 54│ │ └── uapi 55│ └── net 56│ └── newip # New IP 功能代码 57├── figures # ReadMe 内嵌图例 58└── tools # New IP 配套工具 59``` 60 61## 编译构建 62 63详见“New IP内核协议栈开发手册-[配置指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/kernel/kernel-standard-newip.md#newip配置指导)”章节。 64 65## 说明 66 67### 可变长报头格式 68 69详见“New IP内核协议栈开发手册-[可变报头格式](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/kernel/kernel-standard-newip.md#可变长报头格式)”章节。 70 71### 可变长地址格式 72 73详见“New IP内核协议栈开发手册-[可变长地址格式](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/kernel/kernel-standard-newip.md#可变长地址格式)”章节。 74 75### 接口说明 76 77详见“New IP内核协议栈开发手册-[New IP相关接口](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/kernel/kernel-standard-newip.md#newip相关接口)”章节。 78 79### New IP收发包代码示例 80 81详见“New IP内核协议栈开发手册-[New IP收发包代码示例](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/kernel/kernel-standard-newip.md#newip收发包代码示例)”章节。 82 83### selinux规则说明 84 85详见“New IP内核协议栈开发手册-[selinux规则说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/kernel/kernel-standard-newip.md#selinux规则说明)”章节。 86 87## 相关仓 88 89[内核子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%86%85%E6%A0%B8%E5%AD%90%E7%B3%BB%E7%BB%9F.md) 90 91[kernel_linux_5.10](https://gitee.com/openharmony/kernel_linux_5.10) 92 93[kernel_linux_config](https://gitee.com/openharmony/kernel_linux_config) 94 95[kernel_linux_build](https://gitee.com/openharmony/kernel_linux_build) 96 97[device_board_hihope](https://gitee.com/openharmony/device_board_hihope) 98