我的疑问是 linux 内核如何在内核级别处理套接字创建、发送和接收数据?我在哪里可以获得它们的源代码并学习内部编码?
最佳答案
Linux 通过 VSF(虚拟文件系统)处理套接字的功能,这就是为什么您可以使用带有套接字文件描述符的文件系统系统调用。在了解此内容之前,您应该熟悉 Linux 的文件系统和 VFS。
当您发出系统调用时,Linux 将在进程的task_struct
中分配一个文件描述符,并将其与一个套接字数据结构 相关联。 VFS 在某种程度上是面向对象 并且基本上是套接字结构扩展了一些功能以使用 Linux 堆栈上的网络协议(protocol)。在这个套接字数据结构上,还有信息和进一步的方法扩展,以套接字所属的协议(protocol)为条件。
背景发生了很多事情,阅读源代码肯定是最好的信息,还有关于这个主题的非常好的文献:O'Reilly Understanding Linux Network Internals .
希望这对您有所帮助!
关于c - 当我们在 c linux 中编写 socket(family, type, protocol) 时,内部到底发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591309/