首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏陶辉笔记

    高性能网络编程3—-TCP消息的接收

    这篇文章将试图说明应用程序如何接收网络上发送过来的TCP消息流,由于篇幅所限,暂时忽略ACK报文的回复和接收窗口的滑动。 3、应用程序开始收取TCP消息,与程序所在的机器网卡上接收到网络里发来的TCP消息,这是两个独立的流程。它们之间是如何互相影响的? )           ... ...   }   图1第1步里,我们从网络上收到了序号为S1-S2的包。 3、通过tcp_recvmsg方法来完成接收工作。先锁住socket,避免并发进程读取同一socket的同时,也在告诉内核网络软中断处理到这一socket时要有不同行为,如第6步。 10、此时,由于S2是连接上正要接收的序号,同时,有一个用户进程正在休眠等待接收数据中,且它要等待的数据起始序号正是S2,于是,这种种条件下,使得这一步同时也是网络软中断执行上下文中,把S2-S3报文直接拷贝进用户内存

    1.7K51发布于 2019-06-21
  • 来自专栏用户2442861的专栏

    高性能网络编程3----TCP消息的接收

    这篇文章将试图说明应用程序如何接收网络上发送过来的TCP消息流,由于篇幅所限,暂时忽略ACK报文的回复和接收窗口的滑动。 3、应用程序开始收取TCP消息,与程序所在的机器网卡上接收到网络里发来的TCP消息,这是两个独立的流程。它们之间是如何互相影响的? )         ... ...   }   图1第1步里,我们从网络上收到了序号为S1-S2的包。 3、通过tcp_recvmsg方法来完成接收工作。先锁住socket,避免并发进程读取同一socket的同时,也在告诉内核网络软中断处理到这一socket时要有不同行为,如第6步。 10、此时,由于S2是连接上正要接收的序号,同时,有一个用户进程正在休眠等待接收数据中,且它要等待的数据起始序号正是S2,于是,这种种条件下,使得这一步同时也是网络软中断执行上下文中,把S2-S3报文直接拷贝进用户内存

    1.6K11发布于 2018-09-20
  • 来自专栏DPU

    libfabric_ofa_简介_指南_设计思想_高性能网络3

    例如,如果针对不同的对等点,发送的消息可能会乱序复制到网络。 在默认情况下,OFI 定义了排序语义,使得来自发送者的消息 1、2、3 等在目标处以相同的顺序接收。 它旨在易于用于简单的应用程序,但可扩展性足以配置网络以获得最佳性能。 它有几个目的。 首先,它抽象出网络实现和寻址细节。 其次,它允许应用程序指定他们需要网络的哪些功能。 高性能网络提供程序列在更通用的提供程序之前,例如套接字或 UDP 提供程序。 辅助功能主要处理高度可扩展的高性能应用程序所需的功能。例如,FI_MULTI_RECV 辅助功能指示提供程序是否可以支持上述多接收缓冲区功能。 只有一个可能代表连接到系统的高性能网络。 其他是通用提供程序,可以在任何系统上使用,例如 TCP 套接字和 UDP 提供程序。 Fabric 字段用于帮助应用程序管理开放的 Fabric 资源。

    57410编辑于 2025-06-13
  • 来自专栏迁移内容

    高性能MySQL(3)——创建高性能索引

    三、高性能的索引策略 3.1、独立的列 索引列不能是表达式的一部分,也不能是函数的参数。 例如:LELECT COUNT(DISTINCT city)/COUNT() AS sel1, COUNT(DISTINCT LEFT(city, 3))/COUNT() AS sel2, …; 如果前缀的选择性接近 例如:key(col1, col2, col3); MySQL5.0之后的版本引入了“索引合并”的策略,一定程度上可以使用表上的多个单列索引来定位表中的行; 索引合并策略有时候是一种优化后的结果,但实际上更说明表上的索引建得很糟糕 参考: 《高性能 MySQL 第三版》 聚簇索引和非聚簇索引 mysql-覆盖索引 创建高性能的索引

    1.8K20编辑于 2022-12-01
  • 来自专栏3D视觉从入门到精通

    Voxel RCNN:高性能3D目标检测网络(AAAI2021)

    作者的核心观点是:高性能3D检测器并不需要精确的定位信息。 因此,全文的关键模块是如何为voxel-based methods提取3D结构信息。那么,之前的网络是怎么做的呢? 5. SECOND vs. PV-RCNN。 作者选取了两个性能差异较大的网络作为对比,得出两个结论: a)3D结构信息对3D目标检测非常重要。PV-RCNN增加了keypoint模块补充了3D结构信息,由此取得了更好的性能。 Voxel R-CNN 网络框架 整体网络挺简单的,这里只记录一下要点。 Voxel RoI pooling是怎么做的? 读完后的想法: 本质上讲,其实是一个two-stage的网络,利用BEV提取initial proposals ,再将其映射到3D 点云中提取结构信息,通过加速模块在提升精度的前提下保证检测效率。

    1.3K40发布于 2021-07-27
  • 来自专栏杰哥技术分享

    高性能网络通讯原理

    本篇主要探讨高性能网络通讯框架的一些必要知识和底层操作系统相关的原理。在探讨如何做之前,我们先讨论下为什么要做。 随着互联网的高速发展,用户量呈指数形式递增,从原来的PC普及到现在的移动设备普及。 一个高性能网络通讯框架从硬件设备到操作系统内核以及用户模式都需要精心设计。只要有任何地方有疏漏都会出现短板效应。 因此如何使得单机网络并发连接数达到10K成为通讯开发者热门的讨论话题。 总结 本文通过I/O访问方式,I/O模型,线程模型三个方面解释了操作系统为实现高性能I/O做了哪些事情,通过提高CPU使用效率,减少内存复制是提高性能的关键点。 参考文档 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 高性能网络编程(二):上一个10年,著名的C10K并发连接问题 NIO的epoll空轮询bug 两种高效的服务器设计模型:Reactor

    79120发布于 2019-12-16
  • 来自专栏喔家ArchiSelf

    微秒级高性能网络初探

    如果我们的预期是将网络延时从10ms 降低到1ms,那么应该先分析这些时延的具体构成,很有可能瓶颈并不是网络传输;如果目标是将网络延时降低到微秒级或者百微秒级,那么我们才可能使用到高性能网络,例如RDMA 高性能IB网络高性能计算集群中,网络协议一般不是Ethernet+TCP/IP,而是Infiniband(IB)协议,是从物理层到传输层的一整套协议栈。 自此,IB网络和以太网正式发生交叠,RDMA技术开始进入一般数据中心,为即将到来的AI计算和云计算的爆发式增长提供了关键支持。 3. 4 小结 对于高性能网络而言,通过kernel bypass和zero copy,RDMA实现了网络传输的低时延、高带宽与低CPU消耗。 一般地,应用程序需要通过特殊的API来使用RDMA,而RDMA则需要底层网络具备无丢包配置,其主要应用场景包括了高性能计算以及计算存储分离。

    79310编辑于 2025-01-07
  • 来自专栏程序人生 阅读快乐

    高性能MySQL(第3版)

    高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。 第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。 《高性能mysql(第3版)》不但适合数据库管理员(dba)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。

    1.1K20发布于 2018-10-10
  • 来自专栏冷环渊的全栈工程师历程

    Netty高性能网络通信:NIO

    认识Netty Netty 网络编程框架 他可以做到什么? 自定义通信协议 自定义编码/解码字节流 没有netty之前我们是用什么的? java.net + java .io java.nio Mina /Grizzly Netty的特点 并发高 基于 NIO网络通信框架,比较BIO性能得到了提升 传输快 NIO的特性之一, FileChannel 文件管道的数据 Pipe.SinkChannel Pipe.SourceChannel 线程间通信的管道 ServerSocketChannel SocketChannel 用于TCP网络通信的管道 DatagramChannel 用于UDP网络通信的管道 Buffer capacity 总体容量大小 limit 存储容量的大小,是可读写和不可读写的界线 position 已读容量的大小,

    86620发布于 2021-11-15
  • 来自专栏6G

    高性能网络的基础知识

    本文将探讨高性能网络的组成部分、可用的传输技术以及使其真正实现高速运行的“秘诀”。 高性能网络由哪些部分组成? 从这里开始,我们的数据包需要依次经过L1(极快)、L2(非常快)和L3(较快)缓存、主内存(速度较慢)以及PCI总线,最终到达NIC以传输到另一台设备。 带宽 带宽需求不断增长。 目前,高性能网络的最低要求是400Gbps,预计在未来两年内将跃升至800Gbps至1600Gbps。 标准数据中心网络的“尽力而为”服务等级协议(SLA)是不够的。这就是高性能网络中“高性能”部分的体现。 那么,什么是高性能网络呢? 定义高性能网络的问题并非仅仅是延迟或带宽的问题,尽管这两者都是因素。 虽然InfiniBand的规范允许构建非常大的网络结构,但在面对大型故障域时可能会出现一些复杂情况。InfiniBand没有Layer 3选项。 何时使用每种技术?

    60710编辑于 2025-02-12
  • 来自专栏人工智能应用

    使用asyncio构建高性能网络爬虫

    引言 在当今数据驱动的时代,高效获取网络数据已成为开发者必备技能。

    32810编辑于 2025-08-01
  • 来自专栏小徐学爬虫

    使用Golang构建高性能网络爬虫

    所谓的高性能网络爬虫就是一种能够快速、高效地从互联网上抓取大量网页数据的程序。网络爬虫通常被用于搜索引擎、数据挖掘、信息检索等领域,用于收集和分析互联网上的信息。 使用Golang构建高性能网络爬虫可以充分利用Golang的并发特性和高效的网络库,实现快速、高效地爬取网页数据。 以下是一个简单的示例,展示如何使用Golang构建一个基本的网络爬虫:package mainimport ("fmt""net/http""golang.org/x/net/html""sync")func urls := []string{"https://example.com/page1", "https://example.com/page2", "https://example.com/page3" 当然,实际的网络爬虫可能需要更复杂的处理,比如处理页面解析错误、限制并发数量、处理重定向、处理异常情况等。但是这个简单的示例可以帮助你了解如何使用Golang构建一个基本的网络爬虫。

    50910编辑于 2023-11-29
  • 来自专栏Rainbond开源「容器云平台」

    ​Kubernetes集群中的高性能网络策略

    本文针对K8s的网络策略进行介绍并对网络性能进行测试。 网络策略 K8s的网络策略应用于通过常用标签标识的pod组。 但是,它需要一个能够应用策略的网络后端。例如,简单路由网络或常用的 [flannel](https://github.com/coreos/flannel) 网络程序本身不能应用网络策略。 Red Hat的OpenShift还包括网络策略功能。 我们选择Romana作为这些测试的后端,因为它将pod配置为在完整L3配置中使用本地可路由的IP地址。 因此,网络策略可以直接由Linux内核中的主机使用iptables规则应用。这个结果是一个高性能,易于管理的网络。 测试网络策略的性能影响 在应用网络策略之后,需要根据这些策略来检查网络分组,以验证这种类型的业务是允许的。但是,对每个数据包应用网络策略的性能损失是多少?

    1.1K30发布于 2018-05-31
  • 来自专栏小工匠聊架构

    高性能网络编程 - select、 poll 、epoll 、libevent

    概述 Select(选择): Select 是一种传统的 I/O 多路复用机制,用于在类 Unix 操作系统(如 Linux)中同时管理多个文件描述符(如网络套接字或文件)。 与 select 和 poll 不同,epoll 专为高性能 I/O 事件处理而设计。它可以有效地管理大量文件描述符而不会显著降低性能。 Epoll 特别适用于构建可扩展和高性能网络服务器和应用程序。 Epoll 优点: 高性能:Epoll 针对大规模并发连接进行了优化,性能较高。 有效地管理大量文件描述符,不会随连接数增加而降低性能。 在性能方面,可以利用底层高性能机制,如Epoll,以提高性能。 缺点: 与直接使用底层机制相比,可能引入轻微的性能开销。 需要学习Libevent的API和概念。

    1.1K81编辑于 2023-11-09
  • 来自专栏星融元

    高性能私有云网络解决方案

    在1RU的标准空间内,Asterfusion CX3系列下一代云交换机可以提供48个10G或25G以太网接口,向下接入服务器,同时提供6个100G/40G高速以太网接口,向上连接到骨干层的Spine交换机 在本案例中主要用到了CX306支持的以下高级功能: 最大支持64路基于权重的ECMP(实现流量的负载均衡,保证网络转发的高性能)。 服务器4台部署Openstack云平台,2台做INT网络监测方面的测试,1台做Firewall、其余3台做裸金属。 通过将L2/L3网络功能(网络overlay)卸载至CX交换机上,提高云环境下计算节点的性能。插件依赖于AFC软件,通过该软件所提供接口配置CX交换机。 与云计算无缝融合的云网络 运行在每一台CX系列云交换机上的 AsterNOS 是基于纯粹的 SDN 理念为云计算时代设计开发的一款开放、智能、易用、高性能网络操作系统。

    11.1K20编辑于 2023-07-04
  • 来自专栏JavaEdge

    Java NIO高性能网络编程(三)-Channel

    DatagramChannel 通过UDP读写网络中的数据。 SocketChannel 通过TCP读写网络中的数据。

    71120发布于 2021-02-22
  • 来自专栏IT大咖说

    Golang 高性能网络库 evio 源码解析

    evio 是一个基于事件驱动的网络框架,它非常轻量而且相比 Go net 标准库更快。其底层使用epoll 和 kqueue 系统调度实现。 当然,我们都知道 fd 为 0 是标准输入,所以此处并不是真的去处理 fd 为 0 的文件描述符(注册到 epoll 的文件描述 >= 3)。 关于这边的更多细节,可以看我的另一篇文章 【Golang 网络库 evio 一些问题/bug和思考】(https://note.mogutou.xyz/articles/2019/08/15/1565876205121 但是其实关于 loopWrite 和 loopRead 的处理是会有 bug 的,详细可以看另一篇文章 【Golang 网络库 evio 一些问题/bug和思考】(https://note.mogutou.xyz

    1.9K40发布于 2021-04-08
  • 来自专栏Python每日一库

    netius:功能丰富的高性能网络

    netius 是一个基于 Python 的高性能网络库,它为网络应用提供了丰富的功能,包括 HTTP 客户端和服务器、WebSocket 支持、FTP 客户端和服务器以及其他多种协议的支持。 netius 的特点如下:高性能:采用异步事件循环机制,能够处理大量并发连接。易用性:API 设计简洁明了,易于理解和使用。多协议支持:支持 HTTP、WebSocket、FTP 等多种网络协议。 Netius 是一个基于 Python 编写的网络库,用于创建和维护各种网络连接。 return response.read()url = "http://example.com"html_content = fetch_page(url)print(html_content)3. 3. 实现网络爬虫Netius 也适用于实现网络爬虫,通过使用 HTTP 客户端,可以轻松地发送请求并获取网页数据。

    27600编辑于 2025-01-29
  • 来自专栏用户2442861的专栏

    高性能网络编程(一)—-ACCEPT建立连接

    高性能网络编程(一)—-ACCEPT建立连接 高性能网络编程(一)—-ACCEPT建立连接 2016年1月25日  陶辉 Comments 1条评论 最近在部门内做了个高性能网络编程的培训,近日整理了下 掌握高性能网络编程,涉及到对网络、操作系统协议栈、进程与线程、常见的网络组件等知识点,需要有丰富的项目开发经验,能够权衡服务器运行效率与项目开发效率。以下图来谈谈我个人对高性能网络编程的理解。 ? 如上图红色文字所示,我认为编写高性能服务器的关注点有3个: 1、如果基于通用组件编程,关注点多是在组件如何封装套接字编程细节。 使用tcpdump等抓包工具分析各网络分组。 一般掌握以上3点,就可以挥洒自如的实现高性能网络服务器了。 下面具体谈谈如何做到高性能网络编程。 当然,TCP层为了可靠性,还额外需要解决3个大问题:丢包(网络分组在传输中存在的丢失)、重复(协议层异常引发的多个相同网络分组)、延迟(很久后网络分组才到达目的地)。

    1.1K10发布于 2018-09-19
  • 来自专栏golang与云原生

    【笔记】Linux高性能网络详解之DPDK

    内核态:Linux 网络协议栈和以太网卡驱动程序运行在内核态。Linux 网络协议栈是连接应用和驱动程序的中间层,负责按照应用程序的要求建立网络连接和封装(发送时)、解析(接收时)数据包。 以太网卡驱动程序是和特定的网卡绑定的,负责操控硬件,将协议栈封装好的数据包发送到外部网络中,或将网卡从外部网络接收到的数据包转发给协议栈。 这避免了中断开销,是高性能的关键5. 当驱动通过轮询发现某个描述符的 DD 位为 1,它就知道一个新的数据包已经到了。驱动通过描述符的索引,从 sw_ring 中找到对应的 mbuf 指针。 其中的 7,用 8 位二进制数表示为 0b00000111,它的低 3 位为 1,表示本次运行将使用编号最小的 3 个核,即核 0、核 1 和核 2。 ReferenceLinux 高性能网络详解:从 DPDK、RDMA 到 XDPLinux 系统如何收发网络包_linux 网络编程的数据收发接口-CSDN 博客DPDK 收发包流程分析_dpdk 开发流程

    6.2K13编辑于 2025-08-29
领券