
图解Linux网络包接收过程
前面和大家分享了我在 CPU、内存、磁盘上的一点浅薄的思考。今天开始我们讨论 Linux 里最重要的一个模块-网络模块。还是按照惯例来,让我们从一段最简单的代码开始思考。为了简单起见,我们用udp来举例,如下:int main(){ int serverSocketFd = socke...
前面和大家分享了我在 CPU、内存、磁盘上的一点浅薄的思考。今天开始我们讨论 Linux 里最重要的一个模块-网络模块。还是按照惯例来,让我们从一段最简单的代码开始思考。为了简单起见,我们用udp来举例,如下:int main(){ int serverSocketFd = socke...
大家好,我是飞哥!在 Linux 中,进程是我们非常熟悉的东东了,哪怕是只写过一天代码的人也都用过它。但是你确定它不是你最熟悉的陌生人?我们今天通过深度剖析进程的创建过程,帮助你提高对进程的理解深度。在这篇文章中,我会用 Nginx 创建 worker 进程的例子作为引入,然后带大家了解一些进...
在网络开发模型中,有一种非常易于开发同学使用方式,那就是同步阻塞的网络 IO(在 Java 中习惯叫 BIO)。 例如我们想请求服务器上的一段数据,那么 C 语言的一段代码 demo 大概是下面这样:int main() { int sk = socket(AF_INET, SOCK...
大家好,我是飞哥!最近帮咱们的读者朋友做了一些字节的内推,其中这两位朋友履历都还可以,但目前内推都没啥进展。所以结合这个事情,想给大家一些参加面试的个人建议。这两位朋友中朋友A是北邮的硕士,在新浪、高德、滴滴等大厂都工作过,并且职级上级别也还不错。但是在内推一直就没啥进展。其中朋友B的情况也类...
大家好,我是飞哥!在开始今天的分享之前,我先给大家看两个 1R * 8 的内存条。现在的 CPU 都是 64 位的,每次和内存通信都要传输 64 比特的数据。1R * 8 类型的内存中的 1R 指的是该内存条只有一个 rank,8 指的是在每一次 64 比特的内存 IO 过程中,每个内存颗粒分...