• 《图解 Linux 文件系统》
  • 《Linux 内存管理之CMA》本站《Linux内存管理:CMA(连续内存分配)》
  • 《Memory Leak (and Growth) Flame Graphs》
  • 《Linux perf Examples.html》
  • 《Off-CPU Flame Graphs》
  • 《Brendan D. Gregg的个人网站》
  • 《VFIO(Virtual Function IO)研究》
  • 《The Internet of Everything (IoE)》
  • 《Xen:Network Throughput and Performance Guide》
  • 《eBPF-based Networking, Observability, and Security》
  • 《Why is the kernel community replacing iptables with BPF?》
  • 《Pid Namespace 详解》
  • 《User Namespace 详解》
  • 《Mnt Namespace 详解》
  • 《字节二面,让写一个LFU缓存策略算法,懵了》
  • 《计算机网络硬核指南|网络设计核心思想》
  • 《使用EBPF追踪LINUX内核》本站《使用eBPF追踪Linux内核》
  • 《华为:什么是VXLAN》
  • 《华为:VXLAN介绍》
  • 《计算机网络:VLAN和VXLAN》
  • 《计算机网络:overlay(VLAN,VxLAN)、underlay网络、大二层的介绍》
  • 《Overlay网络(VLAN,VXLAN)》
  • 《两种Overlay技术:NVGRE和VXLAN》
  • 《关于使用通用路由封装 (NVGRE) 实现网络虚拟化》
  • 《微软:网络驱动程序设计指南》
  • 《Underlay、Overlay、大二层介绍》
  • 《overlay网络与underlay网络的介绍区别》
  • 《Virtio: An I/O virtualization framework for Linux》本站《Virtio: An I/O virtualization framework for Linux | 原文》
  • 《MSI和MSI-X中断机制》
  • 《什么是死亡之 Ping 攻击?》
  • 《9 张图带你深入理解 Docker 架构!》本站《深入理解 Docker 架构 | 图文》
  • 《Linux虚拟化KVM-Qemu分析(十二)之ioeventfd与irqfd》
  • 《Ceph介绍及原理架构分享》
  • 《深入理解mmap 0拷贝技术》本站《Linux Zero-copy零拷贝技术:源码示例》
  • 《厉害了!把 HashMap 剖析的只剩渣了!》
  • 《一文读懂 HugePages(大内存页)的原理》本站《大页内存的使用:HugePages(大内存页)的原理与使用》
  • 《卸载校验和任务》
  • 《卸载大型 TCP 数据包的段》
  • 《TCP/IP 任务卸载》

目录

MSI和MSI-X中断机制

网络驱动程序设计指南

Why is the kernel community replacing iptables with BPF?

Off-CPU Flame Graphs

什么是死亡之 Ping 攻击?

Memory Leak (and Growth) Flame Graphs

perf Examples


MSI和MSI-X中断机制

https://developer.aliyun.com/article/48564

在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制。而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,而可以不支持INTx中断消息。

在PCIe总线中,MSI和MSI-X中断机制使用存储器写请求TLP向处理器提交中断请求,下文为简便起见将传递MSI/MSI-X中断消息的存储器写报文简称为MSI/MSI-X报文。不同的处理器使用了不同的机制处理这些MSI/MSI-X中断请求,如PowerPC处理器使用MPIC中断控制器处理MSI/MSI-X中断请求,本章将在第6.2节中介绍这种处理情况;而x86处理器使用FSB Interrupt Message方式处理MSI/MSI-X中断请求。

不同的处理器对PCIe设备发出的MSI报文的解释并不相同。但是PCIe设备在提交MSI中断请求时,都是向MSI/MSI-X Capability结构中的Message Address的地址写Message Data数据,从而组成一个存储器写TLP,向处理器提交中断请求。

有些PCIe设备还可以支持Legacy中断方式[1]。但是PCIe总线并不鼓励其设备使用Legacy中断方式,在绝大多数情况下,PCIe设备使用MSI或者MSI/X方式进行中断请求。

PCIe总线提供Legacy中断方式的主要原因是,在PCIe体系结构中,存在许多PCI设备,而这些设备通过PCIe桥连接到PCIe总线中。这些PCI设备可能并不支持MSI/MSI-X中断机制,因此必须使用INTx信号进行中断请求。

当PCIe桥收到PCI设备的INTx信号后,并不能将其直接转换为MSI/MSI-X中断报文,因为PCI设备使用INTx信号进行中断请求的机制与电平触发方式类似,而MSI/MSI-X中断机制与边沿触发方式类似。这两种中断触发方式不能直接进行转换。因此当PCI设备的INTx信号有效时,PCIe桥将该信号转换为Assert_INTx报文,当这些INTx信号无效时,PCIe桥将该信号转换为Deassert_INTx报文。

与Legacy中断方式相比,PCIe设备使用MSI或者MSI-X中断机制,可以消除INTx这个边带信号,而且可以更加合理地处理PCIe总线的“序”。目前绝大多数PCIe设备使用MSI或者MSI-X中断机制提交中断请求。

MSI和MSI-X机制的基本原理相同,其中MSI中断机制最多只能支持32个中断请求,而且要求中断向量连续,而MSI-X中断机制可以支持更多的中断请求,而并不要求中断向量连续。与MSI中断机制相比,MSI-X中断机制更为合理。本章将首先介绍MSI/MSI-X Capability结构,之后分别以PowerPC处理器和x86处理器为例介绍MSI和MSI-X中断机制。

网络驱动程序设计指南

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/network/

2017/04/20

此网络驱动程序设计指南介绍了如何为从 Windows Vista 开始的 Windows 操作系统设计和创建网络设备驱动程序。

本指南包含以下部分:

  • 网络驱动程序简介
  • NDIS 版本指南
  • NDIS 核心功能
  • 可缩放网络
  • 虚拟化网络
  • 无线联网
  • 网络模块注册机构
  • Winsock 内核
  • IP 帮助程序
  • Windows 筛选平台标注驱动程序
  • 系统区域网络
  • 远程 NDIS (RNDIS)
  • 网络驱动程序的内核模式 SDK 主题
  • 旧版网络驱动程序

Why is the kernel community replacing iptables with BPF?

https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables

The Linux kernel community recently announced bpfilter, which will replace the long-standing in-kernel implementation of iptables with high-performance network filtering powered by Linux BPF, all while guaranteeing a non-disruptive transition for Linux users.

From humble roots as the packet filtering capability underlying popular tools like tcpdump and Wireshark, BPF has grown into a rich framework to extend the capabilities of Linux in a highly flexible manner without sacrificing key properties like performance and safety. This powerful combination has led forward-leaning users of Linux kernel technology like Google, Facebook, and Netflix to choose BPF for use cases ranging from network security and load-balancing to performance monitoring and troubleshooting. Brendan Gregg of Netflix first called BPF Superpowers for Linux. This post will cover how these “superpowers” render long-standing kernel sub-systems like iptables redundant while simultaneous enabling new in-kernel use cases that few would have previously imagined were possible.

Having spent the past 15 years in the Linux kernel community authoring code to many subsystems including the TCP/IP stack, iptables, and many more, allowed me to observe BPF developments up close. I soon realized that BPF was not simply yet another feature but instead represented a foundational technology shift that in time would change nearly every aspect of networking and security within Linux. I started contributing and became one of its biggest supporters along side with Alexei Starovoitov and Daniel Borkmann which are now maintaining BPF upstream. In this lens, the shift from iptables with bpfilter is just the next logical step in a BPF’s journey to revitalize the Linux networking stack for the modern area. To understand why this shift is so exciting, allow me to take you on a bit of a tour through the history of iptables in the kernel.

Off-CPU Flame Graphs

http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html


On-CPU performance issues can solved using CPU Flame Graphs. That leaves off-CPU issues: the time spent by processes and threads when they are not running on-CPU. If this time is spent during an application request, synchronously, then it directly and proportionally affects performance.

什么是死亡之 Ping 攻击?

https://mp.weixin.qq.com/s/SJ2ieOxj7qiIu5b2kFb0eQ

死亡之 Ping 攻击是一种拒绝服务 (DoS) 攻击,攻击者旨在通过发送大于最大允许大小的数据包来破坏目标计算机,从而导致目标计算机冻结或崩溃。原始的死亡之 Ping 攻击如今并不常见。称为 ICMP 洪水攻击的相关攻击更为普遍。

死亡之 Ping 如何工作?

Internet 控制消息协议 (ICMP) 回显回复消息或 “ping” 是用于测试网络连接的网络实用程序,其工作原理类似于声纳 – 发出“脉冲” 而该脉冲发出的“回显”告知操作员有关环境的信息。如果连接正常,则源计算机收到来自目标计算机的回复。

尽管某些 ping 数据包非常小,但 IPv4 ping 数据包要大得多,并且可以达到 65,535 字节的最大允许数据包大小。某些 TCP/IP 系统从未设计用于处理大于最大值的数据包,从而使其容易受到大于该大小的数据包的攻击。

当恶意大数据包从攻击者传输到该目标时,该数据包将分成多个分段,每个分段均低于最大大小限制。当目标计算机尝试将这些部分一起放回时,总数超出大小限制,并且可能发生缓冲区溢出,从而导致目标计算机冻结、崩溃或重启。

虽然 ICMP 回显可用于此攻击,但发送 IP 数据报的任何内容均可用于此漏洞。其中包括 TCP、UDP 和 IPX 传输。

如何防护死亡之 Ping DDoS 攻击?

阻止攻击的一种解决方案是向重组过程添加检查,以确保在数据包重组后不会超出最大数据包大小限制。另一个解决方案是创建具有足够空间来处理超出准则最大值的数据包的内存缓冲区。

原始死亡之 Ping 攻击大多已经灭绝;1998 年后生产的设备通常都会防止此类攻击。部分旧设备可能仍易受攻击。最近发现了针对 Microsoft Windows IPv6 数据包的新型死亡之 Ping 攻击,并于 2013 年年中进行修补。Cloudflare DDoS 防护通过在格式错误的数据包到达目标主机计算机之前丢弃它们来缓解死亡之 Ping 攻击。

Memory Leak (and Growth) Flame Graphs

http://www.brendangregg.com/FlameGraphs/memoryflamegraphs.html


perf Examples

http://www.brendangregg.com/perf.html

2021年四月中旬推荐文章相关推荐

  1. 2021年六月中旬推荐文章

    目录 <内存泄漏一网打尽> <coredump 瘦身风云> <面向敏捷开发团队的 7 个开源项目管理工具> <30 Years Of Linux - An I ...

  2. 2021年五月中旬推荐文章

    目录 <一文读懂 Linux 内存分配全过程> <Linux Page Cache> <Linux Kernel 2.4 Internals> <linux ...

  3. 2021年四月上旬推荐文章

    <37张图详解MAC地址.以太网.二层转发.VLAN> <955 互联网公司白名单>本站<955.WLB> <bcc 用法和原理初探之 kprobes 注入& ...

  4. 2021年三月中旬推荐阅读文章

    coreboot:https://www.coreboot.org/ coreboot是扩展的固件平台,可在现代计算机和嵌入式系统上提供闪电般快速,安全的启动体验.作为一个开源项目,它提供可审核性和对 ...

  5. 2021年五月下旬推荐文章

    <硬核文章:编译器都做了哪些优化?> <HTTPS 为什么安全> <计算机系统启动过程> <Exploring USDT Probes on Linux> ...

  6. 2021年五月下旬推荐文章(2)

    bpf-examples:https://github.com/xdp-project/bpf-examples xdp-tutorial:https://github.com/xdp-project ...

  7. 2020级大学生计算机,2021年大学生笔记本电脑推荐

    如果你是一名学生,你会想要一台最好的大学笔记本电脑.但是有这么多不同价格的选择,找到最好的笔记本电脑本身就是一项家庭作业.下面是小编整理的详细内容,一起来看看吧! 2021年大学生笔记本电脑推荐 1. ...

  8. Django博客系统(推荐文章数据展示)

    1. 添加文章浏览量数据 1.每次请求文章详情时给浏览量+1 try:article=Article.objects.get(id=id) except Article.DoesNotExist:re ...

  9. DayDayUp:三观一致必将取代血缘关系,成为新的人际纽带(博主推荐文章)

    DayDayUp:三观一致必将取代血缘关系,成为新的人际纽带(博主推荐文章) 导读 考察一个人的判断力,主要考察他信息来源的多样性. 有无数的可怜人,长期生活在单一的信息里,而且是一种完全被扭曲的,颠 ...

最新文章

  1. day22 time模块
  2. dp凸优化/wqs二分学习笔记(洛谷4383 [八省联考2018]林克卡特树lct)
  3. 基于阿里的Node全栈之路(二)阿里负载均衡的HTTPS优化方案
  4. VC6中使用高版本系统API的方法
  5. python字符串 切片_用于切片字符串的Python程序
  6. SQL Server2000企业管理器在Win7中新建表错误的解决方法
  7. Python 提交表单数的一点简单介绍How to submit a web form
  8. 机器人搬运礼盒程序_机器人搬运程序.doc
  9. docker学习(1) 安装
  10. 软考网络工程师教程第五版(2018年最新版)
  11. xboxone硬盘坏的表现_移动硬盘打不开认不到以后的数据恢复所需要涉及到知识与恢复过程...
  12. python如何打开npy文件_操作python如何实现npy格式文件转换为txt文件
  13. 你租的房子遇 “坑” 了么?
  14. ios 通过代码调整焦距
  15. telegram 新增 删除 联系人
  16. 排列宝石问题C++实现
  17. 10个打开了我新世界大门的 WebAPI
  18. java教程 电子工业出版社_Java程序设计实用教程
  19. 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ
  20. 韦一之内存控制器,2440地址空间,NOR flash和SDRAM(012课)

热门文章

  1. 标准单元测试步骤:A -B-C-D-E-F
  2. Java关键字static
  3. ssm当用户登录成功显示用户名_从零到企业级SSM电商项目实战教程(十八)用户登录功能开发...
  4. 【Spring中使用MongoTemplate查询数据】
  5. Jenkins 自动化部署上线
  6. (后端)SpringMVC提交数组时不能超过256个值(转)
  7. css中的一些问题及解决方法
  8. Android 关于在Activity中监听ListView
  9. vue-router(2.0)
  10. SQL 中操作XML类型数据