03 2022 档案

摘要:上一文介绍中,我们详述了网络数据包的接收和发送过程,并通过介绍5中IO模型了解了内核是如何读取网络数据并通知给用户线程的。 前面的内容都是以内核空间的视角来剖析网络数据的收发模型,本小节我们站在用户空间的视角来看一下如何对网络数据进行收发。 相对内核来讲,用户空间的IO线程模型相对简单一些。这些用户 阅读全文
posted @ 2022-03-20 16:49 钟齐峰 阅读(219) 评论(0) 推荐(0) 编辑
摘要:在进行网络IO操作时,用什么样的IO默写来读写数据将在很大程度上决定了网络框架的IO性能。所以IO模型的选择是构建一个高性能框架的基础。 在《Unix网络编程》一书中介绍了五种IO模型,阻塞IO,非阻塞IO,IO多路复用、信号驱动IO,异步IO,每一种IO模型的出现都是对前一种的升级优化。 下面分别 阅读全文
posted @ 2022-03-20 12:52 钟齐峰 阅读(314) 评论(0) 推荐(0) 编辑
摘要:在高性能网络架构笔记一中,我们聊完了网络数据的接收和发送。本章我们谈一下易混淆的概念:阻塞与同步,非阻塞与异步。 经过前面对网络数据包接收流程的介绍,在这里我们可以将整个流程总结为两个阶段: 数据准备阶段:在这个阶段,网络数据包到达网卡,通过DMA的方式将数据包拷贝到内存中,然后经过硬中断,软中断, 阅读全文
posted @ 2022-03-06 17:01 钟齐峰 阅读(196) 评论(0) 推荐(0) 编辑
摘要:一、网络收包流程 1、当网络数据帧通过网络传输到达网卡时,网卡会将网络数据帧通过DMA的方式放到缓冲区RingBuffer中。 RingBuffer时网卡启动的时候分配和初始化的环形缓冲队列。当RingBuffer满的时候,新来的数据包就会被丢弃。我们可通过ifconfig命令查看网卡收发数据包情况 阅读全文
posted @ 2022-03-06 13:02 钟齐峰 阅读(889) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示