An implementation of TCP/IP network stack in user space. DNet stands for DisconNet, inspired by diaoda and Cierra.
- Linux 下虚拟网卡的创建与配置
- Ethernet II 帧的解析
- ICMP Echo Request / Reply
- ARP Resulotion / ARP Reply
- IPv4 Packet 的解析与构造
- UDP 包的接收与发送 (简易的 UDP Echo)
- driver
Linux TAP 设备初始化 & 读取写入相关代码
- layers
TCP/IP 协议栈各层相关的代码
- util
实现的一些通用工具函数
- docs
相关配置方法的说明文档
经过测试的系统环境: Ubuntu 22.04 LTS, 其他系统应该也可以运行。
# 安装相关依赖
sudo apt install build-essential git cmake
# Clone 项目
git clone https://github.com/lyc8503/DNet-core
# 使用 CMake 编译
cd DNet-core && mkdir build && cd build && cmake .. && make
# 创建 /dev/net/tap
sudo mknod /dev/net/tap c 10 200
# 运行 DNet
sudo ./DNet
运行后会创建 TAP 设备, 可使用 ifconfig 或 ip a 查看, 默认会使用 10.0.0.0/24 段, 可以测试 arping/ping/UDP Echo, 如和局域网有冲突可修改 main.cpp 中的 IP 段.
- 关于 Web 前端的部分将在 https://github.com/NJU-uFFFD/DNet-webui 中实现。
from https://github.com/lyc8503/DNet-core
No comments:
Post a Comment