<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[blog]]></title><description><![CDATA[学习中....]]></description><link>https://blog.youkuaiyun.com/chwlfg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chwlfg]]></copyright><item><title><![CDATA[计算机网络面试知识点]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/104953913</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/104953913</guid><author>chwlfg</author><pubDate>Wed, 18 Mar 2020 21:18:51 +0800</pubDate><description><![CDATA[网络是计算机的基础之一，是程序员面试必问的题. 其中 tcp/udp、http、osi 、协议栈是常考的题.

tcp/udp
1. tcp/udp 协议
tcp/udp 是传输层协议. 是十分常用的网络协议.
1.1 tcp/udp 三次握手、四次挥手
tcp 通过三次握手建立连接，通过四次挥手断开连接. UDP 则是面向无连接的, 不需要建立连接.
1.2 tcp 流控制
连续 ARQ 协议...]]></description><category></category></item><item><title><![CDATA[golang 并发编程]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/104896769</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/104896769</guid><author>chwlfg</author><pubDate>Mon, 16 Mar 2020 12:41:06 +0800</pubDate><description><![CDATA[并发是 golang 的优势之一，使用关键字 go 可以很方便的开启一个协程. go 语言中，常常用 go、chan、select 及 sync 库完成并发操作，处理同步、异步、阻塞、非阻塞任务.

1. 概要
go 语言的并发编程，以下是需要了解的基础知识点，也是本文主要介绍的内容. 可以对照看看这些是否已经可以熟练运用了.
阻塞: 阻塞是进程(也可以是线程、协程)的状态之一（新建、就绪、运行...]]></description><category></category></item><item><title><![CDATA[golang runtime 简析]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/104692651</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/104692651</guid><author>chwlfg</author><pubDate>Fri, 06 Mar 2020 14:46:15 +0800</pubDate><description><![CDATA[Go Runtime 的总览
golang 的 runtime 在 golang 中的地位类似于 Java 的虚拟机，不过 go runtime 不是虚拟机. golang 程序生成可执行文件在指定平台上即可运行，效率很高， 它和 c/c++ 一样编译出来的是二进制可执行文件. 我们知道运行 golang 的程序并不需要主机安装有类似 Java 虚拟机之类的东西，那是因为在编译时，golang 会...]]></description><category></category></item><item><title><![CDATA[golang 基础知识]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/104543853</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/104543853</guid><author>chwlfg</author><pubDate>Thu, 27 Feb 2020 20:12:04 +0800</pubDate><description><![CDATA[写过一段时间 golang 后，业务开发应该游刃有余了，可以检查下这些基本的语法你都掌握了么？25 个关键字、37 个预定义标识符，41 个标准库是不是都很熟悉了? 独特的 interface、go、select 语法你都会用了么？
基础知识
正如大部分编程语言，了解基本的数据结构、关键字、语法、包引用、错误处理等，就可以进行简单的业务开发了. 本文主要梳理了 golang 这些基本的知识点，可以...]]></description><category></category></item><item><title><![CDATA[golang 中无处不在的反射 reflect]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/93523209</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/93523209</guid><author>chwlfg</author><pubDate>Mon, 24 Jun 2019 20:45:48 +0800</pubDate><description><![CDATA[golang 反射 reflect
reflect 是 golang 的一个标准库, 通过反射可以获取变量的类型、值、tag 等，它是实现 gorm、json、yaml 等库的基础. golang 语言通过反射可以在运行时动态的调用对象的方法和属性.
源码结构
golang reflect 反射的源码位于 golang/go/src/reflect 中，目录下包含以下文件

type.go
v...]]></description><category></category></item><item><title><![CDATA[docker 代码阅读记录 -- docker cli 组件]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/83478821</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/83478821</guid><author>chwlfg</author><pubDate>Sun, 04 Nov 2018 11:59:05 +0800</pubDate><description><![CDATA[docker 代码阅读之路 -- 命令行 cobradocker cli 组件代码结构编译使用Cobra 命令行库cli 目录结构如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出参考
docker ...]]></description><category></category></item><item><title><![CDATA[STP 生成树协议探究]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/80930404</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/80930404</guid><author>chwlfg</author><pubDate>Fri, 06 Jul 2018 16:50:19 +0800</pubDate><description><![CDATA[广播风暴：

stp 协议，端口有5种状态 
Disabled：不收发任何报文 
Blocking：   不接收或者转发数据，接收但不发送BPDU，不进行地址学习 
Listening：  不接收或者转发数据，接收并发送BPDU，不进行地址学习 
Learning：   不接收或者转发数据，接收并发送BPDU，开始进行地址学习 
Forwarding： 接收或者转发数据，接收并发送BPDU，进行地...]]></description><category></category></item><item><title><![CDATA[ovs-docker 原理及源码简析]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/80507080</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/80507080</guid><author>chwlfg</author><pubDate>Fri, 29 Jun 2018 14:55:02 +0800</pubDate><description><![CDATA[ovs 、 ovs-docker 、ip netns

ovs 是一个开源虚拟交换机。 
netns 是在linux中提供网络虚拟化的一个项目，使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境，目前netns在lxc容器中被用来为容器提供网络。 
ip netns 是 linux ip 命令的一个工具，它可以用来增加网络命名空间、操作虚拟网络环境，包括增改网络设备等。 
网络命名空间  ...]]></description><category></category></item><item><title><![CDATA[[内核源码]Linux 发送报文过程简析及网络杂谈]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/80797316</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/80797316</guid><author>chwlfg</author><pubDate>Thu, 28 Jun 2018 18:24:33 +0800</pubDate><description><![CDATA[sk_buff 数据结构



ip_output



ip_forward



Linux 邻居子系统



抓包程序层次


设备驱动前、后？




参考文章


https://www.cnblogs.com/newjiang/p/7428125.html
https://blog.youkuaiyun.com/one_clouder/article/details/52674706 
https...]]></description><category></category></item><item><title><![CDATA[linux kernel API 汇总]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/80814967</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/80814967</guid><author>chwlfg</author><pubDate>Tue, 26 Jun 2018 15:08:29 +0800</pubDate><description><![CDATA[Linux kernel API

Data Types



Doubly Linked Lists

void list_add(struct list_head * new, struct list_head * head) 
void list_add_tail(struct list_head * new, struct list_head * head) 
void __list_de...]]></description><category></category></item><item><title><![CDATA[native vlan 实验及抓包测试]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/80526152</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/80526152</guid><author>chwlfg</author><pubDate>Tue, 19 Jun 2018 17:51:17 +0800</pubDate><description><![CDATA[利用 docker 模拟终端机器，测试 ovs 给交换机设置的 tag 功能 
网络拓扑图：


ovs-vsctl show 
ovs-vsctl add-br br0
ovs-docker add-port br0 t1 container_id
ovs-vsctl set port port_name tag=
...]]></description><category></category></item><item><title><![CDATA[Ubuntu下安装并使用eCryptfs工具]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/25502253</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/25502253</guid><author>chwlfg</author><pubDate>Wed, 30 May 2018 10:58:29 +0800</pubDate><description><![CDATA[1、使用命令 sudo apt-get install ecryptfs-utils
安装ecryptfs



2、在终端输入 ecryptfs-unwrap-passphrase  [file] ，如果不输入这条命令，挂载加密文件夹最后会出错
报错：Error mounting eCryptfs: [-2] No such file or directory

  现在还不能清]]></description><category></category></item><item><title><![CDATA[C++常见面试题：虚函数实现原理]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/77197273</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/77197273</guid><author>chwlfg</author><pubDate>Tue, 15 Aug 2017 17:04:52 +0800</pubDate><description><![CDATA[转载地址：http://blog.youkuaiyun.com/wanghaobo920/article/details/7674631前言C++中的虚函数的作用主要是实现了多态的机制。关于多态，简而言之就是用父类型别的指针指向其子类的实例，然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”，这是一种泛型技术。所谓泛型技术，说白了就是试图使用不变的代码来实现可变的算法。比如：模板技]]></description><category></category></item><item><title><![CDATA[C++智能指针实例详解]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/76974085</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/76974085</guid><author>chwlfg</author><pubDate>Wed, 09 Aug 2017 10:42:39 +0800</pubDate><description><![CDATA[转自:http://www.jb51.net/article/52444.htm

本文通过实例详细阐述了C++关于智能指针的概念及用法，有助于读者加深对智能指针的理解。详情如下：

一、简介

由于 C++ 语言没有自动内存回收机制，程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete，流程太复杂，最终导致没有 delete，异常导致程序过早退出，没有执行 ]]></description><category></category></item><item><title><![CDATA[socket 建立连接与三次握手的对应关系]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/76674016</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/76674016</guid><author>chwlfg</author><pubDate>Fri, 04 Aug 2017 11:44:56 +0800</pubDate><description><![CDATA[Socket 与 TCP 协议socket 用于网络编程，通过 TCP/UDP 协议建立通信。而面试中也常常问及 Socket 和三次握手的对应关系。一般人都认为是这样的关系。(最初也是这样设计的)connect时，触发了连接请求，向服务器发送了SYN J包，这时connect进入阻塞状态；服务器监听到连接请求，即收到SYN J包，调用accept函数接收请求向客户端发送SYN K ，ACK J+1]]></description><category></category></item><item><title><![CDATA[PEP8 Python 编码规范整理]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/72953886</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/72953886</guid><author>chwlfg</author><pubDate>Fri, 09 Jun 2017 09:56:48 +0800</pubDate><description><![CDATA[代码布局


缩进

对于每一次缩进使用4个空格。使用括号、中括号、大括号进行垂直对齐，或者缩进对齐。


制表符还是空格?
永远不要将制表符与空格混合使用。Python最常用的缩进方式是只是用空格。
当调用Python命令行的 -t 选项时，它会检测并警告代码非法混合使用制表符和空格。当使用 -tt 选项时，警告变成了错误。



最大行长度
限制所有行最长为79个]]></description><category></category></item><item><title><![CDATA[Flask-SQLAlchemy 连接 MySQL ERROR 1045]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/60956051</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/60956051</guid><author>chwlfg</author><pubDate>Thu, 09 Mar 2017 10:45:52 +0800</pubDate><description><![CDATA[MySQL 的 1045 错误就是数据库帐号、密码错误了。一般来说，给 MySQL 设置一个提供指定机器可连接的帐号密码即可。 
但是，在使用 Flask-SQLAlchemy 时，还有另外一个坑，就是帐号、密码中有特殊字符，比如 ‘%’、 ‘@’等之类的。这个坑卡了几个小时，用其它方式连接数据库都没有问题，只有 基于 SQLAlchemy 的连接出现错误，以为是相关驱动依赖的坑。看来包含特殊字符的]]></description><category></category></item><item><title><![CDATA[Flask, Angularjs共存之道]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/56285744</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/56285744</guid><author>chwlfg</author><pubDate>Tue, 21 Feb 2017 15:51:17 +0800</pubDate><description><![CDATA[摘要: Flask有jinja模版，angularjs也有自己的模版系统，似乎这两家上个世纪结了什么怨，在一起的时候，常常出错。冤家宜解不宜结，文章提供了几种让他们合好的办法。觉得好不要忘记收藏啊。 
摘要举一个简单的应用例子, oschina上有python文件app.pyfrom flask import Flask, render_template
app = Flask(__name__)@]]></description><category></category></item><item><title><![CDATA[微信小程序 wx.uploadFile 的编码坑]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/53436222</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/53436222</guid><author>chwlfg</author><pubDate>Fri, 02 Dec 2016 16:38:01 +0800</pubDate><description><![CDATA[编写微信小程序时，用到 wx.uploadFile，用来上传图片＋文本信息．然而在编写过程中，由于官方的 demo 和文档描述很少，在几个坑上耗费了不少时间． 这里分享一个和编码有关的.]]></description><category></category></item><item><title><![CDATA[使用IPv6发布网站]]></title><link>https://blog.youkuaiyun.com/chwlfg/article/details/51554731</link><guid>https://blog.youkuaiyun.com/chwlfg/article/details/51554731</guid><author>chwlfg</author><pubDate>Thu, 02 Jun 2016 10:52:49 +0800</pubDate><description><![CDATA[使用IPv6发布网站  IPv4设计之初，认为32位，近43亿的地址完全足够，然而互联网出乎意料的迅速发展，不仅人人人使用互联网，而且一个人往往有多个联网设备（随着物联网的发展，这个数量还会增多），地址完全不够用。中国分配到的IPv4数量只有3亿多，个人几乎分不到IPv4地址，我们上网时在公网上的IP地址，一般都是多个人共用的地址，采用动态编址或者NAT技术，这个地址很难对应到个人。对于只是上网的人]]></description><category></category></item></channel></rss>