Skip to content

Commit dae1832

Browse files
authored
feat(net): Add Internet protocol socket documents
feat(net): Add Internet protocol socket documents
2 parents 5b45de4 + 560e88d commit dae1832

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

docs/kernel/net/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ DragonOS 网络子系统
55
.. toctree::
66
:maxdepth: 1
77

8+
inet
89
unix

docs/kernel/net/inet.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Internet Protocol Socket
2+
3+
众所都周之,这个 Inet Socket 常用的分为 TCP, UDP 和 ICMP。基于实用性,目前实现的是 TCP 和 UDP。
4+
5+
整个 Inet 网络协议栈与网卡的交互基于 `smoltcp` crate 来实现。
6+
7+
## Roadmap
8+
9+
- [ ] TCP
10+
- [x] 接受连接
11+
- [ ] 发起连接
12+
- [ ] 半双工关闭
13+
- [x] UDP
14+
- [x] 传输数据
15+
- [ ] ICMP
16+
- [ ] ioctl
17+
- [ ] Misc
18+
- [ ] 硬中断转软中断的锁处理(避免死锁)
19+
- [ ] epoll_item 优化
20+
- [ ] 优化 `inet port` 资源管理
21+
22+
## TCP
23+
24+
根据 TCP 状态机来 TCP Socket 的几个状态类
25+
- `Init`: 裸状态
26+
- `Unbound`: 创建出来的状态
27+
- `Bound`: 绑定了地址
28+
- `Listening`: 监听状态
29+
- `Connecting`: 连接中状态
30+
- `Established`: 连接建立状态
31+
32+
## UDP
33+
34+
UDP 是无连接的,所以没有连接状态。UDP 的状态只有 `Unbound``Bound` 两种。
35+
36+
## BoundInner
37+
38+
另一个对于 Inet Socket 的抽象,用于处理绑定网卡的 `socket`,从而封装 `smoltcp` 的接口,提供统一的资源管理。

0 commit comments

Comments
 (0)