2026-1-22-iocp的原理及其实现
什么是iocp: iocp(I/O Completion Port),它是一种在windows下实现的网络编程模型 reactor与iocp的区别: reactor是一种同步IO,是处理的异步的事件。 而iocp是异步IO,也是处理的异步的事件。 reactor通过给内核提供IO注册到IO多路复用上,内核返回这个就绪通知,再调用这些已就绪的IO函数去执行具体任务。 iocp通过投...
什么是iocp: iocp(I/O Completion Port),它是一种在windows下实现的网络编程模型 reactor与iocp的区别: reactor是一种同步IO,是处理的异步的事件。 而iocp是异步IO,也是处理的异步的事件。 reactor通过给内核提供IO注册到IO多路复用上,内核返回这个就绪通知,再调用这些已就绪的IO函数去执行具体任务。 iocp通过投...
io_uring的测试工具test_qps_tcpclient 通过编写命令行测试工具来对该io_uring服务器进行测试。要支持类似这样的效果: ./test_qps_tcp_client -s 127.0.0.1 -p 2048 -t 50 -c 100 -n 10000 -s:服务器地址 -p:端口号 -t:线程数量 -c:连接数量 -n:请求数量 test_context_t 结...
1. 三次握手与四次挥手 2. UDP并发如何做 3. TCP与UDP有哪些区别 tcp是基于连接,udp是基于数据报的。 分包与粘包的问题: tcp的解决方法有两种: 因为其基于顺序。 (1)在TCP数据包头部用两个字节定义长度。 (2)在数据包尾添加适当分隔符,如/r/n/r/n做到包的切割。 udp的解决方法: 在应用层添加数据包的id信息,根据id来重组信...
什么是异步IO 我们在对IO进行操作,如读写IO的时候,如有read,write,recv,send这四个函数都是同步的。意思是read(fd,buffer,length)函数执行时在读请求和返回数据是一起的,没有做到分开,write,recv,send同理。 异步IO就是要把这两个步骤拆开来做,io_uring就是这样的一个工具。 如何设计这样的异步IO 频繁copy在设计这样的...
为什么要有协程? 要用易于理解的同步方式的代码表达来表示异步的东西,并且其拥有异步的性能。 同步与异步的优缺点 异步:性能高,但是代码逻辑比较复杂。 同步:性能低,代码逻辑较人易于理解。 如何实现协程? 先举一个简单的例子,现在有如下代码: //同步,符合人类直觉 func(){ send(); recv(); } //异步,有三个线程调用以下代码,逻辑较复杂。 callb...
所有的homework在这里存储一下,有思路时可以先做 协程:(互联网产品)列举10个在某一页面上多个请求同时存在的功能,如果使用协程如何做? io_uring:自行总结epoll(reactor)与io_uring(proactor)的三点不一样。 windows自带远程桌面连接逻辑。
一. 如何做到可靠传输 在总的理解的可靠传输我们通常首先会想到TCP,但其建立连接的过程以及一些其他方面过于复杂,我们是否能够通过修改UDP的内容,借用TCP的部分思想来做到可靠传输呢。 实现可靠传输主要使用的以下四个机制: ACK机制:应答机制,我发送数据过去,对方有回应传回,保证数据可以到达对方。 重传机制 重传策略:在应答机制的基础上,在一个周期内进行检查是否受到应答,若没有应答...
待做的任务: IR层面: Type Conventer逻辑。 核心domi.for,domi.while的conversion逻辑。 从.mlir translate到.json文件 模型层面: 解析嵌套Actor,与生成嵌套的Actor的dot图。(parse与print) 模型完善...
2025-11-10: 左值和右值的区别 2025-11-13: 1.const的用法 const func() const{} // 解释后面这个const的作用 2.explicit的作用
无题 晦暗的宿舍透过一缕阳光,我呆坐在椅子上盯着电脑,今天又到了周末,想着今天有没有机会冲击一下S。“去吗?”,老王转过头,一脸兴奋地望着我这边;“强子问我们去不去吃饭,他有几个朋友一起”,我…