王艺霖的博客

虚拟网桥

在物理机环境中,我们通过交换机和路由器来连接不同的机器或者不同的子网,但是对于虚拟机环境或者容器环境中,同一台物理机器可能也会有很多个不同的网络环境,对于这些环境我们显然无法通过交换机来将它们连接起来,因此我们需要一个有一个功能来充当交换机的角色,将主机中的多个不同网络环境连接起来。 我们可以意识到

wangyilin wangyilin 发布于 2024-10-04

系统拷贝与零拷贝

我们知道,linux系统在读取数据的时候,并不是直接从磁盘或者网卡读取到用户进程中的,其中会经历过从设备到内核缓冲区,再由内核缓冲区到用户缓冲区的过程,这个过程最早是由CPU进行的,后来设计了DMA设备在这个过程中解放了CPU,但是仍然不能完全避免CPU的操作 低效的IO系统 在不存在DMA设备的时

wangyilin wangyilin 发布于 2024-09-16

水平触发与边缘触发

背景 我们知道epoll是对多路复用接口select/poll的一个更进一步的优化,它是真正基于事件驱动的IO模型,epoll的实现依赖于在IO的过程中当状态为可读或者不可读的时候发出信号,随后CPU执行中断,并根据先前注册的回调方法调用用户代码进行处理。 这里其实就衍生出一个问题,就是什么时间发送

wangyilin wangyilin 发布于 2023-03-02

PreRouting与PostRouting

我们知道NAT在家庭网络环境下通常用于转换出口IP地址,用于将私网IP的地址转换成公网IP,使得内部网络能够访问公网上的服务,这种NAT我们通常称之为SNAT,与之相对应的,一种在容器和云的环境下比较常用的服务是DNAT,它的作用与SNAT正相反,是将内部的服务暴露给公网,使得它可以被外网所访问。

wangyilin wangyilin 发布于 2022-06-04

透明大页

大页内存 随着应用对内存需求的不断增长,操作系统原本的虚拟内存机制所划分的4KB的分页机制显的有些小了,例如,当物理内存增长到GB甚至TB级别的时候,4KB的分页机制可能会产生很多的缺页中断。 例如,当应用需求的内存是2MB时,需要512个页面,进而在TLB中需要512个表项也就是说操作系统需要经历

wangyilin wangyilin 发布于 2022-03-12