<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mrtyxr的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mrtyxr</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mrtyxr]]></copyright><item><title><![CDATA[Go中的泛型编程和reflect(反射)]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/154531277</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/154531277</guid><author>mrtyxr</author><pubDate>Fri, 07 Nov 2025 15:09:59 +0800</pubDate><description><![CDATA[特性泛型反射时机编译时运行时性能高（零开销）较低类型安全编译时检查运行时检查适用场景类型已知的通用代码类型未知的动态处理代码可读性高较低。]]></description><category></category></item><item><title><![CDATA[VPP学习-VPP Node调度机制]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136046183</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136046183</guid><author>mrtyxr</author><pubDate>Fri, 07 Nov 2025 10:22:04 +0800</pubDate><description><![CDATA[此前博客讲述了VPP初始化流程，从今天开始和大家一起学习VPP Node调度机制，这里从Node类型、相关结构体、调度流程等几个方面介绍。]]></description><category></category></item><item><title><![CDATA[XDP学习笔记]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136526869</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136526869</guid><author>mrtyxr</author><pubDate>Sat, 16 Mar 2024 19:36:48 +0800</pubDate><description><![CDATA[XDP的使用与eBPF程序分不开，因此要了解学历XDP，须知道什么是eBPF、什么是XDP。]]></description><category></category></item><item><title><![CDATA[VPP-如何使用C-API]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136259603</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136259603</guid><author>mrtyxr</author><pubDate>Sat, 16 Mar 2024 15:14:46 +0800</pubDate><description><![CDATA[1）所有API函数都被在C 头文件中描述2）所有VPP API间的交互通过直接的C函数调用。]]></description><category></category></item><item><title><![CDATA[VXLAN学习笔记]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136622369</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136622369</guid><author>mrtyxr</author><pubDate>Tue, 12 Mar 2024 16:11:05 +0800</pubDate><description><![CDATA[VXLAN(Virtual Extensible LAN)即虚拟扩展局域网，是大二层网络中广泛使用的网络虚拟化技术。在源网络设备与目的网络设备之间建立一条逻辑VXLAN隧道，采用MAC in UDP的封装方式，即，将虚拟机发出的原始以太报文完整的封装在UDP报文中，然后在外层使用物理网络的IP报文头和以太报文头封装，这样，封装后的报文就像普通IP报文一样，可以通过路由网络转发，这就像给二层网络的虚拟机插上了路由的翅膀，使虚拟机彻底摆脱了二、三层网络的结构限制。]]></description><category></category></item><item><title><![CDATA[#pragma-学习笔记]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136453938</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136453938</guid><author>mrtyxr</author><pubDate>Mon, 04 Mar 2024 19:20:50 +0800</pubDate><description><![CDATA[因此，在使用 #pragma clang loop unroll(full) 指令时，应该根据具体情况仔细评估其对性能的影响，并确保不会导致不必要的代码膨胀和性能下降。循环展开是一种优化技术，它通过将循环体中的多次迭代展开成单独的语句，以减少循环的迭代次数和减少循环控制开销。完全展开循环意味着将循环中的所有迭代都展开成单独的语句，从而完全消除了循环的迭代次数和循环控制开销。这可以在一定程度上提高代码的性能，特别是对于迭代次数较少且迭代次数在编译时已知的循环来说，完全展开循环可能会更有效地利用计算资源。]]></description><category></category></item><item><title><![CDATA[VPP-API概念]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136254730</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136254730</guid><author>mrtyxr</author><pubDate>Fri, 23 Feb 2024 15:42:36 +0800</pubDate><description><![CDATA[Reply/Request方法： Request：nameReply：name+_replyDump/Detail方法： Request：namename+_detailsnamename+_reply。]]></description><category></category></item><item><title><![CDATA[C 编译生成静态库、动态库的方式]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136196893</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136196893</guid><author>mrtyxr</author><pubDate>Tue, 20 Feb 2024 19:20:20 +0800</pubDate><description><![CDATA[此前编程涉及到自定义编译生成静态库或动态库，为了方便以后查阅，在此记录一下，同时分享给大家。将C文件编译成静态库或动态库可以使用不同的工具和编译选项，取决于你的需求和平台；以下是使用GCC编译器的简单示例。]]></description><category></category></item><item><title><![CDATA[C __attribute__编译属性整理]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/136037384</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/136037384</guid><author>mrtyxr</author><pubDate>Mon, 05 Feb 2024 18:15:26 +0800</pubDate><description><![CDATA[最近在看VPP源码，很多变量、函数都设置了编译属性，编译属性的作用却不是很明确，为了增加记忆以及方便日后查阅，在此整理并分享给大家。]]></description><category></category></item><item><title><![CDATA[VPP学习-VPP初始化流程]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135978033</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135978033</guid><author>mrtyxr</author><pubDate>Mon, 05 Feb 2024 17:36:45 +0800</pubDate><description><![CDATA[VPP作为一个开源的、高性能的用户态网络协议栈，以进程的形式运行于Linux或（类unix）系统下，即VPP实际是一个用户进程，VPP启动后可通过"ps -ef | grep vpp"命令查看。]]></description><category></category></item><item><title><![CDATA[VPP学习-startup.conf配置文件]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135955497</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135955497</guid><author>mrtyxr</author><pubDate>Thu, 01 Feb 2024 16:36:09 +0800</pubDate><description><![CDATA[VPP（Vector Packet Processing，矢量报文处理），作为一个开源的高性能数据包处理框架，旨在提供可扩展、灵活且高效的网络数据包处理能力；由于传统Linux 内核协议栈整体网络吞吐性能的局限性，目前VPP已被广泛运用于路由器、防火墙等网络设备上，因此，作为网络开发工程师，在熟悉Linux内核协议栈的同时，有必要对VPP用户态协议栈有所了解，了解其实现原理、编码特点，报文处理方式以及通过何种方式实现性能提升，从今天开始希望和大家一起研究学习。]]></description><category></category></item><item><title><![CDATA[Linux 路由配置与使用]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135914720</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135914720</guid><author>mrtyxr</author><pubDate>Wed, 31 Jan 2024 17:56:05 +0800</pubDate><description><![CDATA[路由信息用于指导数据包从源地址查找到目的地址传输路径的信息；]]></description><category></category></item><item><title><![CDATA[Linux VLAN相关概念、转发原理及处理流程]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135528879</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135528879</guid><author>mrtyxr</author><pubDate>Mon, 29 Jan 2024 15:47:39 +0800</pubDate><description><![CDATA[二、三层转发是网络工程师经常接触到的一个问题，VLAN配置是二、三层转中一个很重要的概念，在配置VLAN的情况下，内核对报文是如何处理的呢？]]></description><category></category></item><item><title><![CDATA[Linux Netfilter框架实现及函数调用处理过程]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135047645</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135047645</guid><author>mrtyxr</author><pubDate>Fri, 26 Jan 2024 15:03:14 +0800</pubDate><description><![CDATA[本身从事网络安全工作，具体为防火墙产品的开发，对Linux 内核而言，Linux 防火墙功能由Netfilter框架实现，因此有了对Linux内核Netfilter实现逻辑的学习研究的兴趣，也想借此平台和大家一起交流学习。]]></description><category></category></item><item><title><![CDATA[GO-浅谈GO语言中的抽象及设计模式]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135764410</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135764410</guid><author>mrtyxr</author><pubDate>Tue, 23 Jan 2024 20:07:36 +0800</pubDate><description><![CDATA[最近用GO在写一个解析程序，将已知的安全规则、NAT规则解析为对应的xlb规则，安全规则、NAT规则本身有很多相似的字段，若每种规则解析按照面向过程的方法编程，有很多重复的地方，此外，若增加新的规则解析需要大段调整主程序，单纯的像C语言（本人起初一直是C开发）那样面向过程编程，不能很好的体现代码的架构性，且可扩展性差，因此借鉴了C++面向对象编程的思想；]]></description><category></category></item><item><title><![CDATA[Linux 内核下Bridge配置以及报文处理流程实现]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135273097</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135273097</guid><author>mrtyxr</author><pubDate>Tue, 23 Jan 2024 10:55:57 +0800</pubDate><description><![CDATA[作为网络工程师，对于报文二三层转发过程应该比较熟悉，那么对于常见的bridge接口转发、vlan报文转发在Linux内核中是如何实现的，却不是很清楚，希望就此问题能和大家一起了解学习，这里从概念、配置、报文处理几个方面先对Bridge进行了解学习。]]></description><category></category></item><item><title><![CDATA[GO-创建TUN/TAP接口并实现报文的收发]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135646200</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135646200</guid><author>mrtyxr</author><pubDate>Wed, 17 Jan 2024 15:40:32 +0800</pubDate><description><![CDATA[最近在学习Linux 内核二三层转发的知识，同时也在学习GO编程，于是有了如何通过Go实现创建TUN/TAP接口，并实现收发包的想法，通过查阅相关资料及不断调试终于实现，在此分享给大家，希望能共同学习交流。]]></description><category></category></item><item><title><![CDATA[GO - 数据库连接]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135486424</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135486424</guid><author>mrtyxr</author><pubDate>Wed, 10 Jan 2024 10:40:59 +0800</pubDate><description><![CDATA[在Web应用开发过程中，多数情况下涉及到连接、操作数据库的过程，最近在编程过程中打开数据库一直失败，后查阅资料解决，在此记录一下。]]></description><category></category></item><item><title><![CDATA[Go语言学习-类型断言、netlink]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135397780</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135397780</guid><author>mrtyxr</author><pubDate>Tue, 09 Jan 2024 17:33:11 +0800</pubDate><description><![CDATA[由于工作原因，开始接触GO语言，随着Go语言用的越来越多，因此开始了GO语言的学习之路，结合近期GO的使用，这里想讲解两个主题：GO 类型断言 和 GO 程序如何实现获取内核路由信息。]]></description><category></category></item><item><title><![CDATA[iptables规则下发的过程]]></title><link>https://blog.youkuaiyun.com/mrtyxr/article/details/135047566</link><guid>https://blog.youkuaiyun.com/mrtyxr/article/details/135047566</guid><author>mrtyxr</author><pubDate>Thu, 04 Jan 2024 22:25:00 +0800</pubDate><description><![CDATA[最近在学习研究Linux内核NAT处理逻辑（），发现要想理解NAT的处理必须弄清iptables规则在Linux 内核中是如何维护的，进而想要知道iptables规则配置从用户态到内核态，一步步是如何将iptables规则下发到内核的。]]></description><category></category></item></channel></rss>