在linux的网络编程中,非常长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的优点在于它不会随着监听fd数目的增长而减少效率。由于在内核中的select实...
对于一个对象,其生命周期大致可以分为 创建 -> 使用 -> 销毁三大阶段,这个对象的时间是 T1(创建)+T2(使用)+T3(销毁),对于创建N个对象都需要这个步骤的话,肯定很耗时并且消耗性能的。 官方对于对象池的解释是:...
它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。 WebSocket是真正实现了全双工通信的服务器向客户端推送消息的互联网技术。 它是一种在单个TCP连接上进行全双工通讯协议。Webso...
(1)Netty提供了简单易用的API (2)基于事件驱动的编程方式来编写网络通信程序 (3)更高的吞吐量 (4)学习难度低
本文翻译自 Facebook 在 LPC 2021 大会上的一篇分享:《From XDP to Socket: Routing of packets beyond XDP with BPF[1]》。标题可直译为《从 XDP 到 Socket 的(全路径)流量路由:XDP 不够,BPF 来凑》,因为 XDP 运行在网卡...
零拷贝是老生常谈的问题啦,大厂非常喜欢问。比如Kafka为什么快,RocketMQ为什么快等,都涉及到零拷贝知识点。最近技术讨论群几个伙伴分享了阿里、虾皮的面试真题,也都涉及到零拷贝。因此本文将跟大家一起来学习零拷贝原理...
I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。
应用场景: 网站上的即时通讯是很常见的,比如网页的QQ,聊天系统等。按照以往的技术能力通常是采用轮询、Comet技术解决。
计算机网络的数据传输,是由N个离散的数据单元(IP包)组成的,再去回忆关于TCP连接的概念,TCP的面向连接,而数据单元IP包却是离散的,而TCP也是由IP包来承载的,那意味着TCP报文也是离散的,既然是离散的,又谈何连接呢?...
1.网卡发现 MAC 地址符合,就将包收进来;发现 IP 地址符合,根据 IP 头中协议项,知道上一层是 TCP 协议;