50、虚拟机:如何成立子公司,让公司变集团?我们前面所有章节涉及的Linux操作系统原理,都是在一台Linux服务器上工作的。在前面的原理阐述中,我们一直把Linux当作一家外包公司的老板来看待。想要管理这么复杂、这么大的一个公司,需要配备咱们前面讲过的所有机制。 Linux很强大,Linux...2025-10-31
49、接收网络包(下):如何搞明白合作伙伴让我们做什么?上一节,我们解析了网络包接收的上半部分,从硬件网卡到IP层。这一节,我们接着来解析TCP层和Socket层都做了哪些事情。 网络协议栈的TCP层从tcp_v4_rcv函数开始,我们的处理逻辑就从IP层到了TCP层。 12345678910111213...2025-10-31
48、接收网络包(上):如何搞明白合作伙伴让我们做什么?前面两节,我们分析了发送网络包的整个过程。这一节,我们来解析接收网络包的过程。 如果说网络包的发送是从应用层开始,层层调用,一直到网卡驱动程序的话,网络包的结束过程,就是一个反过来的过程,我们不能从应用层的读取开始,而应该从网卡接收到一个网络包开始。...2025-10-31
47、发送网络包(下):如何表达我们想让合作伙伴做什么?上一节我们讲网络包的发送,讲了上半部分,也即从VFS层一直到IP层,这一节我们接着看下去,看IP层和MAC层是如何发送数据的。 解析ip_queue_xmit函数从ip_queue_xmit函数开始,我们就要进入IP层的发送逻辑了。 12345678...2025-10-31
46、发送网络包(上):如何表达我们想让合作伙伴做什么?上一节,我们通过socket函数、bind函数、listen函数、accept函数以及connect函数,在内核建立好了数据结构,并完成了TCP连接建立的三次握手过程。 这一节,我们接着来分析,发送一个网络包的过程。 解析socket的Write操作...2025-10-31