自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SSS

这个人很懒,什么都没留下

  • 博客(133)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据中心网络实现梳理

前面分析了Kubernetes基本概念,Kubernetes网络等内容,其可能主要属于paas层,而对于其实际依赖的物理上的基础设施的拓扑结构,并没有进行讨论,因此本文将针对参考文章中的相关内容进行阅读学习,对数据中心网络相关内容进行简单梳理。

2025-08-31 16:15:54 1050

原创 Kubernetes网络与容器网络接口CNI

本文内容结合参考文章章节的课程及资源撰写完成。

2025-08-23 01:20:23 1073

原创 网络虚拟化:Veth,Bridge,Network Namespace与Docker网络

以报文发送为例,在TCP/IP实现浅析中一节分析过ip_queue_xmit,其查找路由的调用为ip_route_output_ports->ip_route_output_flow->__ip_route_output_key->ip_route_output_key_hash->ip_route_output_key_hash_rcu->fib_lookup。在rtnl_newlink调用中,会先间接调用rtnl_create_link,其中调用了alloc_netdev_mqs,

2025-07-27 22:49:55 448

原创 高性能网络DPDK、RDMA、XDP初探

本文部分内容参考《linux高性能网络详解 从DKDP、RDMA到XDP》一书的内容完成。

2025-07-26 15:22:43 1659

原创 TCP/IP协议栈实现浅析(下) 报文接收相关函数及流程分析

上节中按照报文发送经过的顺序即:socect层,传输层,网络层,路由子系统,邻居子系统,设备子系统,网络设备驱动层等各层梳理了报文发送过程,这节梳理报文接收流程,但是报文接收流程就是倒着来的顺序,即从网卡到用户态了。

2025-07-06 22:56:21 776

原创 TCP/IP协议栈实现浅析(中) 报文发送相关函数及流程分析

如果发送的网络包非常大,要进行分段。在内核协议栈里面,网络包的数据都是由 struct sk_buff 维护的,因而第一件事情就是找到一个空闲的内存空间,将用户要写入的数据,拷贝到 struct sk_buff 的管辖范围内。如果使用这种模式,网络包的数据就不会放在连续的数据区域,而是放在 struct skb_shared_info 结构里面指向的离散数据,skb_shared_info 的成员变量 skb_frag_t frags[MAX_SKB_FRAGS],会指向一个数组的页面,就不能保证连续了。

2025-06-18 01:30:47 602 1

原创 TCP/IP协议栈实现浅析(上) socket实现及连接建立相关函数和过程分析

以陆运运送货物为例子,类比网络分层的作用,此处片面的描述作用范围。经过三层转发时,每次源目的mac全部会变更,而源目的ip是肯定不会变的。首先货物要包装好,然后发件人填写发件人的名字和收件人的名字(源目的端口号),填写收件人和发件人的地址(源目的ip),查看离自己最近的网点(比如某xx驿站)的地址把货物送出(默认路由和目的mac),货物会从网点出发,经过一个个中转站,最终把货物送达最后一个中转站,然后由中转站又到达了某某网点,快递员配送到收件人手中。//code。

2024-07-17 23:16:19 1374

原创 内核调试方法

会接管所有的线程,如果你从一个线程切换到另外一个线程, gdb 会马上把原先的线程暂停。一般用 gdb 进行多线程调试,需要注意两个参数: follow-fork-mode 和detach-on-fork。但是在wsl2上尝试全部成功。这步是在编译内核之后进行的,因为有些特性需要在内核编译时就指定,比如kgdb。可以使用串口连接,或者使用socat实现远程gdb连接kgdb,另外还有agent-proxy小工具可用。在用 gdb 来调试内核的时候,由于内核在初始化的时候,会创建很多子线程。

2024-07-11 00:41:54 1611

原创 eBPF学习

先看ebpf.io的介绍,可以设置中文。这里摘录一些我觉得有必要记录的:如何编写 eBPF 程序?在很多情况下,eBPF不是直接使用,而是通过像 Cilium、bcc 或 bpftrace 这样的项目间接使用,这些项目提供了 eBPF 之上的抽象,不需要直接编写程序,而是提供了指定基于意图的来定义实现的能力,然后用 eBPF 实现。如果不存在更高层次的抽象,则需要直接编写程序。Linux 内核期望 eBPF 程序以字节码的形式加载。

2024-01-11 23:33:27 1589

原创 《Learning eBPF》读书笔记

相关章节,标黑的是准备看下的:第1章:介绍第2章:hello world例子以及ebpf程序和ebpf map概念的介绍第3章:ebpf程序以及他们是如何运行在内核中的第4章:探索用户态进程和ebpf程序之间的接口第5章:介绍co-re,即一次编译,任何地方运行第6章:ebpf验证器第7章:介绍许多不同类型的ebpf程序和他们的挂载点第8章:网络特性的ebpf程序介绍第9章:ebpf安全特性应用第10章:许多编程语言应用的概览,用户态进程和epbf程序交互使用的库和框架。第11章:展望。

2024-01-07 17:37:50 3073

原创 uboot学习及内核更换&&设备树及rootfs学习

在前面可以自己编译内核并且可以使用uboot之后,下面就研究下怎么能够快捷的更换版本,而不是把sd卡从树莓派一次次插拔,顺便学习下uboot常见命令。

2023-12-29 23:22:41 1975

原创 树莓派编译uboot及内核&&整体启动流程

为了实验ebpf,需要自己编译内核开启相关选项,正好手头有树莓派的板子,所以正好用上。

2023-12-26 00:37:45 1990

翻译 Kernel Build System中文手册

- ...每个条目都拥有自己的依赖。这些依赖用来决定一个条目的可见性。任何子条目只有在他的父条目可见时才可见。

2022-11-20 16:03:45 430

翻译 automake中文手册(部分翻译)

automake是一个根据Makefile.am文件自动生成Makefile.in的工具。每个Makefile.am文件都基本上是由一系列make变量定义组成(偶尔可能也会夹杂规则)。由Makefile.am生成的Makefile.in文件与GNUMakefile标准兼容。Gun的Make标准文档很长,很复杂,又容易变化,而Automake的目标就是将Makefile维护的负担从GNU维护人员身上移除(把他放在automake维护者身上)。最典型的automake输入文件就仅仅是一系列变量定义。......

2022-07-14 23:30:18 1992

原创 makefile学习笔记

makefile文件,见了不少,但自己不会写,在这里学习一下,看的是一位程序员前辈的博客,好像是2004年写的了,不过对我这种以入门为目的的人来说应该已经足够了。另外贴一下他的新站的网址。这里针对阅读内容做下记录。...............

2022-04-10 15:55:46 1250 1

原创 release版本core推导与相应工具学习

readelfobjdumpobj文件段结构

2021-05-20 10:38:00 1822 1

原创 gdb使用

GDB: The GNU Project Debuggergdb能够在程序运行时看到程序里面发生了什么,还能看到程序挂掉的时候在干嘛。。。所以说当你在找bug时是很有用的。。。官方说gdb可以主要做下面四种事情来帮助你找bug:启动你的程序,指定任何可能导致bug的内容使你的程序在特定的条件停下来当你的程序停下后,检查发生了什么在你的程序里改变一些东西,用于去尝试修正一些错误的影...

2019-03-22 15:52:54 2417 1

原创 云原生、容器及数据中心网络相关名词记录

使用Calico、Flannel、Weave和Cilium的终极指南_cilium和calico-CSDN博客Flannel,Calico 和 Cilium 之间有哪些优缺点和差别? - 知乎云原生 | Kubernetes 之常用 CNI 网络插件简述与对比 - 知乎Kubernetes 网络方案全解析:Flannel、Calico 与 Cilium 对比与选择_flannel、calico、cilium-CSDN博客阿里云云原生容器ACP认证培训课程不是技术也能看懂云原生不是技术也能看懂云计算,大数

2025-08-23 15:44:41 1076

原创 ip地址简述

ABCDE五类。

2025-07-10 00:47:20 778

原创 内核通信机制总结

Netlink消息的结构主要包含三个部分:Netlink消息头部(Netlink Header)、消息负载(Message Payload)、Netlink消息属性(Netlink Attributes)。需要注意的是,消息的具体结构和使用可能会根据不同的Netlink族(如NETLINK_ROUTE、NETLINK_SOCKETS等)以及消息类型而有所不同。nlmsg_flags:消息的标志,如NLM_F_REQUEST(请求消息)或NLM_F_ACK(需要确认)等。第二个参数是设备相关的请求码。

2025-07-10 00:47:00 848

原创 进程间通信机制研究

(1) 无名管道(pipe):管道允许一个进程和另一个与它有共同祖先的进程之间进行通信。(2)命名管道(FIFO):类似于管道,但是它可以用于任何两个进程之间通信,命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。(3)信号(signal):信号是比较复杂的通信方式,用于通知接收进程有某种事情发生。除了用于进程间通信外,进程还可以发送信号给进程本身;

2025-07-10 00:46:29 373

原创 读书语句摘录

最好的学习方式就是自己要产生一些问题,然后带着这些问题去寻找答案–深入理解Linux网络。理解内核某部分的捷径就是对他做些修改–linux内核设计与实现。

2025-07-10 00:45:40 197

原创 树莓派镜像制作与备份

目标:将树莓派的rootfs备份,用于今后反复使用。

2025-07-10 00:44:35 537

原创 mermaid图学习

节点,链接,箭头都可以定义样式fill:#333;color:#333;color:#333;fill:none;StartStop。

2025-07-10 00:43:31 1123

原创 汇编基础知识

以上代码中的ip_route_command数组是不定长的数组,在x86和arm64的汇编中,是通过扩展栈顶指针实现的,而一般来说gcc的栈保护机制是在栈底保留一块内存canary来检测栈溢出操作,因此如果是这种不定长的数组,更不容易检测到栈溢出。wzr 32位,xzr 64位,这两个寄存器中都是存储的0,用来清零操作,如指针和其它类型的变量清零。lr(Link Register),也就是x30,它的作用就是存储着函数的返回地址。运算符表示使用更新的方式,即在存储操作之后,sp 的值将被更新为。

2025-07-10 00:42:06 401

原创 svn命令行基础操作

svn merge -c -<版本号> . 在本地撤销某次修改的内容,但不更改当前 SVN 的版本号.反向合并(撤销)指定的某个版本的修改,即把该版本的更改“还原”到当前工作副本。svn changelist <changelist名> <文件1> [文件2 …git diff 9da876b 0b0eb5e ./ 比较 9da876b 和 0b0eb5e 这两个提交之间,当前目录下文件的差异。git log 9b0bd4d…--oneline ./ 以简洁格式(每行一条,显示提交哈希和说明)输出。

2025-06-22 12:49:15 432

原创 kbuild system学习

CROSS_COMPILE=执行相关工具时的进程名前缀。M=指定外部模块(比如内核模块)编译目录。ARCH=指定target架构类型。V=指定日志输出级别。

2025-04-30 11:08:48 448

原创 cmake学习_incomplete

老规矩,先放官方文档以下是一些零散判断的整理,等以后有空了再慢慢优化。

2025-01-01 17:57:20 1166

原创 linux通用知识学习

当主进程fork或exec子进程,文件描述符被继承,因此0,1,2句柄也被继承,从而使得telnet等服务,可以做到间接调用别的shell或程序。比如如果是远程登录使用的zsh,那么其会重定向到相应的pts进程在转为守护进程时,可以经0,1,2句柄重定向到/dev/null,做到不输出任何信息。备注:STDOUT_FILENO、STDIN_FILENO是int型的文件描述符,是非负整数,属于没有buffer的I/O;一般定义为0, 1, 2 ,在定义。012。

2024-07-06 16:07:40 459

原创 shell编程进阶

本文部分内容转载自skywind3000大佬的,转侵删。

2023-12-30 22:03:28 510

原创 函数调用图生成

虽然之前就知道有生成调用图的工具,但是没见过这种,我目前分析代码,都是用的流程图,横向表示调用,纵向表示顺序流程。但是一看上面这种,感觉更清晰一点,然后就去研究了。。2023/12/29 去问了作者本人,他说这个是自己手动整理的。。。。

2023-12-29 23:24:24 1030

原创 VsCode备忘

上次简单学习了一下vscode的使用,结果好长时间没用,今天打开又全忘了。。。再记录一下吧Ctrl+Shift+P 命令面板,查找命令,设置等等Ctrl+` 打开集成终端,监视生成输出Ctrl+,打开设置

2023-09-08 00:13:34 1011 1

原创 英语语法学习_incomplete

在语言学中,自然语言的语法是说话者或作者在从句、短语和单词的构成上的一套结构约束。1「语法」实际上有两个概念,一是「语法」(也叫「文法」),二是「语法学」。一、语法:客观存在的语言结构规律(词的变化和组词成句规则)。语法研究包括句法、语义、语用三方面。句法包括传统句法及词法。语义包括句法结构隐含的语义成分、语义指向、语义特征。语用包括语境和句调、语气以及句法结构的变化。二、语法学:对语法系统和语法规律的理论总结和说明。包括普通语法学、描写语法学、历史语法学(语法史)、比较语法学、规范语法学、程序语法学

2023-07-02 11:20:01 482

原创 go语言学习_incomplete

rust没咋整明白,再来了解下go语言基础知识,参考资料为菜鸟教程以及go程序设计语言。go语言与google关系匪浅,且发明人之一还是c语言的发明人之一,可以说是很神奇了。

2023-06-22 13:46:14 1072 2

原创 rust语言学习_incomplete

我看的是rust官方教程的翻译版(感谢翻译的大佬们),这里记录下学习的过程。cargo是rust的构建系统和包管理器创建项目的过程感觉很新奇,使用cargo new后,会自动创建目录结构,而且还自动创建了git仓库。src里面新建了一个打印helloworld的rs文件看下Cargo.toml里的内容,这里面连版本号都有。编译命令是cargo build,这个看起来没啥,但是好处是开发环境的统一,checkout一个仓库,直接就可以build(甚至不限定目录)。虽然./configure&&make也差

2023-06-22 09:18:13 1055

原创 路由转发相关下内核知识整理

netlink可以提供了接口可以向内核增加,删除,查找与接口、地址、路由、arp等相关信息。通过system函数直接下发net-tools或iproute2相关命令下内核。与路由相关的netlink协议族为NETLINK_ROUTE。第二个参数是设备相关的请求码。SIOCSIFVLAN 设置vlan虚接口。SIOCSIFFLAGS 设置接口标志。SIOCGIFFLAGS 获取接口标志。SIOCSIFADDR 设置接口地址。SIOCGIFADDR 获取接口地址。

2023-06-03 09:11:46 562

原创 GNU编码标准(七)发布过程 相关内容摘录

仅对第7章The Release Process的内容进行摘录。

2023-05-02 19:22:49 765

原创 交叉编译相关知识整理

因为嵌入式设备的特殊性,比如其内存,性能可能相比与通用设备较弱,或者设备上缺少编译工具链等等原因,很多时候想要在嵌入式设备上使用某些程序时,需要在 在通用机器上编译好,而在嵌入式设备上运行,而这两者的cpu架构是不同的,因而需要好好整理下交叉编译。

2023-05-02 17:21:44 1754

原创 源码安装工具checkinstall使用

每当从源码包编译程序时,安装过程很愉快,但当你想删除时,就很费脑筋了,你可能要去找你当时编译的目录执行make unistall,当然更可能的是,你早就把源码包给删除了,对于强迫症来说,这显然不能忍。执行后会交互的让你确定一些信息,默认配置是从 /etc/checkinstallrc 读取的。–addso 把共享库加到/etc/ld.so.conf。-R 生成RPM package.–include 强制包含文件或目录。–inspect 检查包的文件列表。至此,安装的文件可以较好的管理了。

2023-05-02 02:04:39 1506 2

原创 linux开发环境记录

编程语言/环境类:pythonrubynodejs

2023-05-01 14:14:07 119

ctb通信库libctb-0.16

2020.11.20 csdn好像会自动把所需积分提高?搞不懂 ------ 此源码包被我编译好用于wxwidgets的通讯库用,因为其本身没有封装好的通信类库;libctb不是wxctb,wxctb是将libctb进行了针对wxwidgets的修改,而且wxctb好像很早之前已经不维护更新了,此通信库经过我自己测试,能够正常使用

2017-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除