File tree 2 files changed +39
-0
lines changed
2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -5,4 +5,5 @@ DragonOS 网络子系统
5
5
.. toctree ::
6
6
:maxdepth: 1
7
7
8
+ inet
8
9
unix
Original file line number Diff line number Diff line change
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 ` 的接口,提供统一的资源管理。
You can’t perform that action at this time.
0 commit comments