网络架构实战课
15
15
1.0x
00:00/00:00
登录|注册

09|纵向扩展(中):网络模型和协议调优

你好,我是谢友鹏。
在上一节课中,我们从应用层代码的角度探讨了如何提升单机性能,今天我们将进入单机性能优化的第二个层面,从网络模型和协议的角度进一步提升性能。
打个比方,网络作为数据传输通道,扮演着类似运输货物的角色。发送方和接收方各自有一个“仓库”。网络模型的作用在于如何最大化利用这些仓库空间:发送方能及时发现“发送仓库”有空间,并用数据将其填满,同时在接收方准备好处理数据时,及时从“接收仓库”取出数据,以腾出空间接收更多的数据。
而网络协议优化则着眼于让仓库空间和运输速度尽可能匹配,并在数据丢失时,尽快恢复丢失的数据,确保数据传输的高效与稳定。

网络模型

网络模型是用户态与内核态进程交互的模型。
想要弄明白这些交互过程,需要我们先熟悉一下阻塞、非阻塞以及同步、异步,系统调用的概念。
阻塞和非阻塞是描述系统调用时“等待数据准备好”的方式。在阻塞模式下,应用进程会一直等待直到数据准备好;而在非阻塞模式下,应用进程不会等待,而是立即返回,做其他事情。
同步和异步则涉及“数据从内核到用户空间的复制”。同步模式,内核将数据准备好后,通知应用进程,应用进程随后调用系统函数来读取数据;而异步模式,内核在将数据拷贝到用户空间后,直接通知应用进程,应用进程可以直接使用数据。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 网络模型包括阻塞、非阻塞、同步和异步的概念,以及五种网络I/O模型的工作方式。 2. I/O模型详解包括阻塞式I/O模型、非阻塞式I/O模型、I/O复用模型、信号驱动式I/O模型和异步I/O模型,其中Reactor模型和Proactor模型是最常用的高效I/O模型。 3. TCP窗口对性能的影响主要体现在流量控制的滑动窗口和拥塞控制的拥塞窗口。 4. TCP实现了流量控制机制,发送方和接收方各自维护一个缓冲区,接收方在每次返回ACK时告诉发送方它的缓冲区剩余空间大小。 5. TCP引入了窗口扩展(TCP Window Scaling)机制以满足现代网络高带宽的需求。 6. TCP还有一个全局的内存使用限制,可以通过sysctl命令查看和调整。 7. 在高BDP场景下,可以根据机器规格适当调高内存使用限制阈值,来提升性能。 8. 拥塞控制是TCP的负反馈机制,通过调整拥塞窗口和慢启动阈值来避免网络拥塞。 9. BBR(Bottleneck Bandwidth and RTT)拥塞控制算法不依赖丢包来判断拥塞,而是通过交替测量网络的带宽和时延,并计算带宽-时延积(BDP)来控制数据包的发送速率,适用于带宽大且延迟高的网络环境。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《网络架构实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部