From 055c1448e373b6e2beb3c0fdfda9f04eed03e1be Mon Sep 17 00:00:00 2001 From: Cai Junyuan <121806694+smallcjy@users.noreply.github.com> Date: Wed, 30 Oct 2024 14:46:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(doc)=EF=BC=9A=E6=B7=BB=E5=8A=A0=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E5=AD=90=E7=B3=BB=E7=BB=9F=E6=A8=A1=E5=9D=97=20(#1020?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(doc): 添加网络子系统文档 * make fmt --- docs/index.rst | 1 + docs/kernel/net/index.rst | 8 ++++++++ docs/kernel/net/unix.md | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 docs/kernel/net/index.rst create mode 100644 docs/kernel/net/unix.md diff --git a/docs/index.rst b/docs/index.rst index be25163d..a79123fc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -31,6 +31,7 @@ kernel/ktest/index kernel/cpu_arch/index kernel/libs/index + kernel/net/index .. toctree:: diff --git a/docs/kernel/net/index.rst b/docs/kernel/net/index.rst new file mode 100644 index 00000000..d1c37e10 --- /dev/null +++ b/docs/kernel/net/index.rst @@ -0,0 +1,8 @@ +网络子系统 +==================================== +DragonOS 网络子系统 + +.. toctree:: + :maxdepth: 1 + + unix \ No newline at end of file diff --git a/docs/kernel/net/unix.md b/docs/kernel/net/unix.md new file mode 100644 index 00000000..5de22e15 --- /dev/null +++ b/docs/kernel/net/unix.md @@ -0,0 +1,22 @@ +# UNIX + +## unix socket + +unix - 用于进程间通信的socket + + +## 描述 + +AF_UNIX socket family 用于在同一台机器中的不同进程之间的通信(IPC)。unix socket地址现支持绑定文件地址,未支持绑定abstract namespace抽象命名空间。 + +目前unix 域中合法的socket type有:SOCK_STREAM, 提供stream-oriented socket,可靠有序传输消息;SOCK_SEQPACKET,提供connection-oriented,消息边界和按发送顺序交付消息保证的socket。 + +### unix stream socket 进程通信描述 + +unix stream socket 提供进程间流式传输消息的功能。假设对端进程作为服务端,本端进程作为客户端。进程间使用stream socket通信过程如下: + +分别在对端进程和本端进程创建socket,服务端需要bind地址,客户端不必须bind地址。通信过程类似tcp三次握手流程:服务端调用listen系统调用进入监听状态,监听服务端bind的地址;客户端调用connect系统调用连接服务端地址;服务端调用accept系统调用接受来自客户端的连接,返回建立连接的新的socket。成功建立连接后可以调用write\send\sendto\sendmsg进行写操作,调用read\recv\recvfrom\recvmsg进行读操作。目前尚未支持非阻塞式读写,默认为阻塞式读写。读写完毕后调用close系统调用关闭socket连接。 + +### unix seqpacket socket 进程通信描述 + +