本机网络IO之Unix Domain Socket与普通socket的性能对比 实验使用源码
大家好,我是飞哥!很多读者在看完《127.0.0.1 之本机网络通信过程知多少 ?》这一篇后,让我讲讲 Unix Domain Socket。好了,今天就安排!在本机网络 IO 中,我们讲到过基于普通 socket 的本机网络通信过程中,其实在内核工作流上并没有节约太多的开销。该走的系统调用、...
大家好,我是飞哥!很多读者在看完《127.0.0.1 之本机网络通信过程知多少 ?》这一篇后,让我讲讲 Unix Domain Socket。好了,今天就安排!在本机网络 IO 中,我们讲到过基于普通 socket 的本机网络通信过程中,其实在内核工作流上并没有节约太多的开销。该走的系统调用、...
相信绝大多数的人都了解内存对齐,都知道变量应该按8字节去对齐,这样性能高。但是其最最底层的原理是啥呢? 有的人可能会说,因为高速缓存是以8字节为单位进行的。读者你很聪明,这是原因之一。但我今天想挖的是更底层一点的原理,让我们去内存的物理构成里找找答案!内存物理结构前面我们说过内存是由chip构...
在网络开发模型中,有一种非常易于开发同学使用方式,那就是同步阻塞的网络 IO(在 Java 中习惯叫 BIO)。 例如我们想请求服务器上的一段数据,那么 C 语言的一段代码 demo 大概是下面这样:int main() { int sk = socket(AF_INET, SOCK...
大家好,我是飞哥!我们拆解完了 Linux 网络包的接收过程,也搞定了网络包的发送过程。内核收发网络包整体流程就算是摸清楚了。 正在飞哥对这两篇文章洋洋得意的时候,收到了一位读者的发来的提问:“飞哥, 127.0.0.1 本机网络 IO 是咋通信的”。额,,这题好像之前确实没讲到。。现在本机...
上一篇文章中《图解Linux网络包接收过程》,我们梳理了在Linux系统下一个数据包被接收的整个过程。Linux内核对网络包的接收过程大致可以分为接收到RingBuffer、硬中断处理、ksoftirqd软中断处理几个过程。其中在ksoftirqd软中断处理中,把数据包从RingBuffer中...