• Home
Name Date Size #Lines LOC

..--

examples/12-May-2024-1,5511,095

figures/12-May-2024-

src/12-May-2024-3,7382,563

third_party/linux-5.10/12-May-2024-13,9379,594

tools/12-May-2024-331211

README_zh.mdD12-May-20244.5 KiB9863

apply_newip.shD12-May-20241.9 KiB5131

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