码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 高级架构之用户态网络协议栈TCP/IP设计


     目录 

    • 一、背景

    • 二、NtyTcp的微内核网络协议栈方案

      • 1. 网络协议栈

      • 2. NtyTCP架构图

      • 3. TCP传输

    • 二、用户态网络协议栈

      • 1. 什么是用户态网络协议栈

      • 2. TCP状态迁移图

    • 四、系列推荐

    一、背景

          现在的服务器支撑上百万个并发 TCP 连接已经不是新闻,实现 C1000k 的常规做法是调整内核参数,提高文件数,降低每个连接的内存消耗。在用户态运行 TCP/IP 协议栈意味着并发 TCP 连接不再占用系统文件数,只占内存,解决了 C1000k 的一大瓶颈,内核只要提供一个收发网络 packet 的接口就行。内核的网络协议栈强调通用性,主要是为吞吐量优化(性能指标通常是 MB/s 或 packets per second),顺带兼顾大量并发连接。为支持 C10k,要调整内核参数让每个连接少占资源,这与内核代码的设计初衷是违背的。用户态协议栈,可以根据应用的特点来剪裁协议栈功能。优化也更直接,不再是调黑盒参数组合,而是直接上 profiling,根据结果修改应用程序和协议栈的代码。用户态协议栈的吞吐量比不上内核,不过对 C1000k 的应用场合(例如 comet)应该不成问题。

  • 相关阅读:
    得物App订单配置类文案测试右移实践
    YOLOv7-PTQ量化部署
    数据库的备份和恢复
    nginx多文件组织
    HTML学生中秋节日网页设计模板 DIV布局大学生中秋节网页作业制作 八月十五中秋静态网页成品代码下载 中秋节日网页设计作品
    策略+枚举 优雅的消灭 if-else
    springboot海纳部门人事管理系统毕业设计源码
    Java认识异常(超级详细)
    【Hive】建表时的存储格式
    【元宇宙】未来已来,细节之中恰恰蕴藏着颠覆性的力量
  • 原文地址:https://blog.csdn.net/weixin_60043341/article/details/126347985
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号