-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.xml
158 lines (158 loc) · 56.9 KB
/
search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title><![CDATA[待学习]]></title>
<url>%2F2021%2F10%2F28%2F021-learning%2F</url>
<content type="text"><![CDATA[软件推荐根据九净在SDNLAB上的分享, 一个合格的运维工程师需要掌握一定的开发能力。这些工具都不复杂,可以在使用中跟踪学习(本质上是应用层的东西,而应用层的变动常常很频繁,不需要特别学习)。 技能清单 Django(把脚本变成服务) 设备交互: netmiko\requests\ncclient\pysnmp 模板解析: RE\jinja2\textfsm 表格处理: pandas 可视化: pyecharts 开源软件: Docker: 快速部署 Elk: 网络配置的存储 DB: 借助orm NGINX: 部署web应用 技能推荐可以参考知道创宇技能清单,整体上提供了一个框架性的说明;核心工作能力要随着自己的需求自行变动。]]></content>
<tags>
<tag>Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Modern Life]]></title>
<url>%2F2020%2F09%2F04%2F020-ModernCity%2F</url>
<content type="text"><![CDATA[ModernLife现代城市生活指南: 汇总现代城市生活的技巧、涵盖现代文明的种种成就 衣食城市中的衣食常常是放在一起的,构成“商业广场”、“商圈”。 TODO: 插入商业广场图片,分析北京、苏州的商圈、小的农贸/服装批发市场等。 住行居住和出行常常是紧密相关的,大家聚集在城市的核心就在于方便出行,所以常常面对居住和出行之间的矛盾。人有居住较大空间的欲望,也有方便出行的欲望;然而两个欲望在现实生活中常常会产生冲突。方便出行的地方人员聚集反而导致居住环境稍逊一筹。 TODO: 插入小区的图片,介绍居委会、村委会制度 娱乐景点景点主要分为自然景点和人文景点,自然风光就因地而异,人文景点则往往和历史传承相关。这里的景点是指那种某些城市特有的景点,诸如公园、体育馆之类的共有娱乐场所则不考虑在内。自然景点主要是:名山大川、特色风光;人文景点主要是:博物馆、名人故居、历史遗迹。这些地方往往可以进行打卡,而且 景点识别评价景点好坏、或者是挑选景点的一个重要核心在于,查看景点在国家旅游局的评级,所谓的4A 自然景点目录人文景点目录文娱体育艺术产业]]></content>
<tags>
<tag>Life</tag>
</tags>
</entry>
<entry>
<title><![CDATA[如何了解企业]]></title>
<url>%2F2020%2F05%2F27%2F017-Enterprise%2F</url>
<content type="text"><![CDATA[企业,是现代商业社会的基石;如何深入调查研究企业发展和相关信息,在现代社会是非常重要的基本技能。一般性的投资(尤其是投行和咨询公司)、商品品牌的选择(对于大件商品的购买决策、婴幼儿奶粉等非常重要的商品),了解企业的历史、法律纠纷记录、财务情况等非常重要。但是,很多信息见诸搜索引擎或新闻报道的时候,已经是比较落后推迟了。获得一手信息就显得非常重要。 最好的一手信息来自行业内的人,甚至就是企业的内部人员;当然这些信息往往都是颇费波折才能获取。 还可以使用专业的搜索引擎,如”天眼查”、”企查查”、”见微数据”、”启信宝”等。这些引擎集合了国家企业信用信息公示系统,中国裁判文书网,中国执行信息公开网,国家知识产权局,国家知识产权局商标局,国家版权局,各创投公司的公告说明,爱分析等资本管理/研究新闻平台,特别值得用来认识企业情况;尤其是在进行大额/重要交易(如租房、大件商品、重要食品之前,通过这些搜索引擎确认公司状况和风险,是非常有必要的)。当然,这种平台的缺点在于,需要付费(会员费也不便宜),可以使用淘宝进行临时查询。 Reference 知乎: 通过哪些渠道深入查询企业信息 知乎: 深入查询企业信息]]></content>
<tags>
<tag>Politics</tag>
</tags>
</entry>
<entry>
<title><![CDATA[ModSecurity]]></title>
<url>%2F2020%2F05%2F24%2F016-modSecurity%2F</url>
<content type="text"><![CDATA[ModSecurity是典型的开源WAF组件, 需要配合Apache HTTP server和Nginx使用, docker镜像可以找到一些link下载, 然后运行 12docker build -t owasp/modsecurity-crs .docker run -p 80:80 -ti -e PARANOIA=5 --rm owasp/modsecurity-crs 为了测试其性能, 可以安装Apache HTTP server benchmarking tool, 运行命令ab -n 10000 -c 100 (url) 即可。 可以找到ModSecurity的各种配置(屏蔽ip黑名单等配置), 其中重要的是CRS的规则说明。/usr/local/nginx/conf/modsec/rules/*.conf 目录下的 CRS 防御规则文件及相关说明如下所示 规则文件 规则说明REQUEST-900-EXCLUSION-RULES-BEFORE-CRS 定制化个人防护规则,调整规则防护场景REQUEST-901-INITIALIZATION CRS 配置初始化REQUEST-910-IP-REPUTATION IP 信誉库REQUEST-911-METHOD-ENFORCEMENT HTTP 请求方法检测REQUEST-912-DOS-PROTECTION 拒绝服务规则REQUEST-913-SCANNER-DETECTION 扫描器检测REQUEST-920-PROTOCOL-ENFORCEMENT URL Scheme 协议检测REQUEST-921-PROTOCOL-ATTACK HTTP 协议攻击检测REQUEST-930-APPLICATION-ATTACK-LFI LFI 本地文件包含漏洞检测REQUEST-931-APPLICATION-ATTACK-RFI RFI 远程文件包含检测REQUEST-932-APPLICATION-ATTACK-RCE RCE 远程命令执行检测REQUEST-933-APPLICATION-ATTACK-PHP PHP 攻击检测REQUEST-941-APPLICATION-ATTACK-XSS XSS 攻击检测REQUEST-942-APPLICATION-ATTACK-SQLI SQL 注入攻击检测REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION 会话固定攻击检测REQUEST-949-BLOCKING-EVALUATION 基于风险值检测入站请求RESPONSE-950-DATA-LEAKAGES 数据泄漏检测RESPONSE-951-DATA-LEAKAGES-SQL SQL 数据泄漏检测RESPONSE-952-DATA-LEAKAGES-JAVA JAVA 数据泄漏RESPONSE-953-DATA-LEAKAGES-PHP PHP 数据泄漏RESPONSE-954-DATA-LEAKAGES-IIS IIS 数据泄漏RESPONSE-959-BLOCKING-EVALUATION 基于风险值检测出站请求RESPONSE-980-CORRELATION 入站、出站风险值关联RESPONSE-999-EXCLUSION-RULES-AFTER-CRS 定制化个人防护规则,重载、更新、移除检测规则]]></content>
<tags>
<tag>IT, Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[NS3 安装与使用]]></title>
<url>%2F2020%2F04%2F20%2F014-NS3-Install%2F</url>
<content type="text"><![CDATA[TODO: Unfinished works 安装在NS-3的官网上有详细说明如何安装,下面简单说明一下(理论来说用bake或者waf也可以安装,但个人感觉反而更麻烦一些)。 安装依赖, 主要是gcc; 这里要求版本大于4.9, 而CentOS的默认版本是不够的。可以通过安装devtoolset-8-toolchain并通过shell命令启用scl enable devtoolset-8 bash 下载release版的ns源码: 使用wget xxx/ns-allinone-3.30.tar.bz2 * 并通过tar xjf*命令实现解压。 在解压后的ns源码中执行./build.py –enable-examples –enable-tests。 架构说明Reference NS-3的官网安装说明]]></content>
<tags>
<tag>Research</tag>
<tag>PacketScheduling</tag>
</tags>
</entry>
<entry>
<title><![CDATA[科研训练]]></title>
<url>%2F2020%2F04%2F10%2F013-SelfTraining%2F</url>
<content type="text"><![CDATA[读博士是非常珍贵的经历,虽然我目前只经历了1年半的时间,但各项科研技能都得到了一定的锻炼。 1. Research Find the key problem Read and summarize multiple materials Design the procedure to solve a problem Insist on one thing: 目前自己还不能做到这一点,换言之,只有当自己能够public长文之后才能说自己insist on one thing 2. Coding编程能力还需要很大的提高,是自己未来2年的重点工作,可以通过LeetCode和各项CTF比赛来提高! 目前各项都处于基本入门水平。 Coding Style Key Programming Language: C/C++, Python Web Knowledge, PHP, MySQL CTF Knowledge 3. Communication交流能力经过辅导员岗位的锻炼,得到了很好的提升。未来应该通过实习等方式继续提升。 Write common materials Write academic papers Make a good speech Design a good PPT 4. Other Qualities Confidence Optimism Adherence Changelog 2020/04/10, 根据自己博二上学期的情况作出总结]]></content>
<tags>
<tag>Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[NSM 介绍]]></title>
<url>%2F2020%2F04%2F09%2F012-NSM_Install%2F</url>
<content type="text"><![CDATA[TODO: NSM项目尚未能够完全成功运行! 需要通过Snort、ModSecurity等Docker做完善工作。 本文旨在介绍CNCF基金会下的Network Service Mesh的相关情况和使用方法总结。 Docker、Kubernetes、CNCFDocker,作为轻量级虚拟化–容器的一种解决方案,在开源社区从诞生之初就备受瞩目。Docker能轻到近似二进制文件大小(可以参考裁减镜像),占用极少的资源、同时保证isolation。但是在业务中部署容器却不是一件简单的事情,需要配置物理机和容器之间的交互,同时需要配置好各种监控以保证适时扩容。为了应对容器的这种问题,Kubernetes作为容器的编排工具出现了。Kubernetes是Google将其内部集群管理系统Borg(13年发布Omega)修改后于14年开源。2015年,谷歌和Linux基金会合作建立云原生计算基金会(CNCF),旨在建立可持续的生态系统。Google此举可认为是通过开源打击其他云厂商,既然我商业化进展不顺、通过开源项目来引发混战也是不错的。Kubernetes在Security方面天然有Certificate和PKI、在Scheduling和Scalability天然考虑分布式(谷歌的分布式系统实力还是非常强大的),加上虚拟化的一次开发到处部署,Restful API的现代化前端交互,Kubernetes集合了system设计的各种历史经验,对于云应用来说具有强大的吸引力。 随后,Kubernetes有了软件包管理系统Helm(类似Brew、apt或yum)、Minikube(本地可运行Kubernetes)、Prometheus(metric收集数据库)、OpenTracing(Debug工具)等等从2016年开始逐渐完善起来;到了2017年,Istio(微服务网络)发布,Kubernetes也在亚马逊、微软等开始推出商用,转眼到了2020年,Kubernetes可以说已经是System方向必须掌握的工具了。 目前围绕Kubernetes已有一系列的开源项目,相关信息都可以在CNCF的官网上找到。阿里、华为都有贡献开源项目。 NSM介绍k8s在网络方面有一个缺陷,就是不能配置L2/L3层的处理;对于应用来说,看到TCP层已经足够了(分布式系统直接就基于RPC设计系统),不需要L2/L3层的东西;k8s的访问安全性是通过Authentication实现的,因此不需要在意流量如何如何。但是如果想把k8s放到公网上,就不得不考虑更多的L2/L3层的网络功能,比如Middlebox(Firewall->DPI->VPN形成的基于安全的考虑设立的SFC),比如电信网的计费网关、QoS功能模块等。但是从纯Zero-Trust的角度,MB似乎是要尽量舍弃的? Network Service Mesh项目的设立之初就是为了应对这个问题,详细的说明介绍可以参考这个链接。有些重点内容挑出来如下 NSM并没有对Kubernetes的CNI模型进行扩展或者修改,而是采用了一套与CNI完全独立的新机制来以实现这些高级的网络需求。NSM参考了Kubernetes中Service的概念提出了Network Service。Network Service对外提供的是L2/L3层的网络服务,即对数据包进行处理和转发,而不会终结数据包。我们可以将NSM和SDN结合使用,可以通过NSM中的Network Service接入SDN提供的强大的网络服务。下图是在NSM中利用SDN为应用提供QoE(Quality of Experience)服务的一个例子。 NSM使用NSM的直接安装 安装k8s以及k8s的包管理器helm 通过helm增加repo和安装 12helm repo add nsm https://helm.nsm.dev/helm install nsm/nsm NSM的模拟使用 下载NSM代码和NSM example(在github中)到同一目录下 安装example给出的说明, 进行makefile的处理[^footnote-kind]。 安装 NSM在Github下载后 Reference 裁减Docker镜像大小 NFV走向云原生时代:Network Service Mesh项目介绍 CNCF网络研讨会:NSM网络服务网格 - 介绍(视频+PDF) CNCF 云原生容器生态系统概要 [^footnote-kind]: 主要是安装k8s本地模拟器: kind; 关于kind的简单说明可以查看ref。]]></content>
<tags>
<tag>Research</tag>
<tag>SecEdge</tag>
</tags>
</entry>
<entry>
<title><![CDATA[科研方法论, 以网包分类为例]]></title>
<url>%2F2020%2F03%2F31%2F010-ResearchMethods%2F</url>
<content type="text"><![CDATA[在整理自己以前杂七杂八的东西时, 发现自己之前写过Research method的一些内容, 杂乱在md文件、OneNote、Pocket和Youdao Note中, 这里做一个简单整理(自己的个人知识管理能力确实有待提高, 需要维护changelog和所有文件归档到一起)。 做科研就是在解决问题,是学习用逻辑和科学方法论去解决问题。当然,逻辑或者说理性是不能解决所有问题,宗教信仰自有其存在的必要(这一点也是《战争论》中提到的: 交战绝不仅是双方力量的对比、意志在其中会发挥作用)。但这一套方法不得不说能够解决绝大多数的问题,是优秀世界观的一个重要组成部分。所谓的科学的方法,抽象来说就是大家说的唯物辩证法,我觉得更加实用的是”7W”准则: What, When, Who, Why, Where, How, For Whom。当我们用着7W准则去思考一个问题时, 就会出现如下结果。 对问题的思考 What: 从辩证角度来看,问题是什么。具体来说, 问题的内涵和外延分别是什么。如, 网包分类问题。一般性的定义/内涵可以描述为, “给定一组规则和一个报文, 对该报文找到适配的最高优先级的规则”, 这里的一些关键形容词发生变化后就会对应不同的问题。如: “一个规则”启发我们设计BCAM硬件类型, “一组报文”启发我们去设计新的batch算法, “所有匹配规则”启发我们做遍历算法或对规则进行交集操作, “某一个匹配规则”启发我们对规则做并集操作。修改定义得到不同的问题,其实也能启发我们更加深入地思考问题。比如: 基于“所有匹配规则”设计出的算法肯定存在优化空间的,因为我们只需要最高优先级的匹配规则,所以Bit Vector类型的算法可以优化;比如: 基于“某一个匹配规则”设计出的算法其实可以作为“最高优先级的规则”问题的一个“预过滤”。当然,这些启发式信息最后能不能得到好的结果,就要因地制宜和进行相应的实验验证了。问题的外延就需要我们举例来理解问题,典型的“5元组”规则(src/dst*ip/port+protocol)的定义是什么样子的,是prefix和range,那它们是不是存在什么特殊性质?我们是不是可以用一些特殊方法?现在的规则还存在OpenFlow类型的11元组的规则,甚至是自定义包头的规则。挖掘问题的外延,我们就会把问题做的不断精细化。 When: 从时间维度来看,问题处在什么位置。我特别喜欢Gartner的Hyper技术曲线,也就是技术发展存在“起步”-“泡沫”-“幻灭”-“理性发展”,也就是事情存在高估期、低估期然后进入理性期(插一句,本朝对于太祖的看法也是如此,哈哈)。这一点在Research中尤其重要,因为你要创新就要尽量去做很少人考虑过/做成的事情。当一个所谓的“新领域”出现的时候,我们就能发现很多“很少人考虑过”的事情,比如:把ML泛滥到其他领域(笑)。至于“很少人做成”的事情,就要考虑两种情况:一是大概率做不成,比如“永动机”、NP问题等;一是比较困难,比如“更新与分类都性能良好的网包分类算法”。想要知道问题处在什么时间维度,就要知道该事物的过去、同时找到历史上的参照物以预测未来。以网包分类算法为例,做一下survey就知道,该问题在2000年左右的时候比较Hot,提出了各种各样的solution;在2005年已经出现了非常好的综述。当然,一项技术总是可以持续发展的(比如,发动机持续研究了好几个世纪),网包分类问题也可以持续研究下去,但该问题已经不属于“新领域”,不是那种很好挖的矿了(当问题的内涵、外延都比较清晰的时候,该问题也就常常到了平稳发展的时候了)。 Where: 从空间维度来看,问题处在什么位置。我们需要知道问题是在哪个位置、哪个领域,周围可利用的资源是什么。网包分类问题虽然可以泛化来思考,但一般就是用在网络中间设备上: 路由器、防火墙等;所以我们需要去了解路由器的架构、性能指标(特别是网络带宽的迅速增长)、供应链(整个产品从最上游到最下游是哪些公司一起造出来的)。很自然地我们就发现存在NPU(多核网络处理器)、TCAM、ASIC、MIPS指令集这种专业化硬件,自然就想基于这些硬件设计算法;扩展来想,我们就会思考FPGA、GPU能不能用上(能够发文章,但工业应用大概率不是很有用)。继续延伸发现Open vSwitch上面需要网包分类,自然就考虑到CPU平台(网络功能虚拟化领域等)上算法优化是很重要的。 Why: 从逻辑角度来看,问题处在什么位置;也就是为什么有这个问题。这一部分的问题就可能需要我们深入到数理基础部分了,比如:网包分类问题,从数理层面上和计算几何(1978年Shamos的博士论文而兴起的科学)中的点定位、数据库的查询等都有关系,然后需要返回到拓扑理论、算法设计上。更典型的问题,比如:网包调度问题,本质上和流量调度、工业工程里的调度都有相似之处,需要返回到诸如,网络微积分的数学基础上。当然,浅显地来看,trade-off在计算机领域到处存在,在网包分类问题中,内存空间占用和网包分类所需要的时间存在Trade-off、快速规则更新和快速网包分类之间也存在Trade-off。 How: 调研清楚问题已有的各种解决方案。这方面需要大量的专业知识和广泛的了解,读survey、读专业性期刊、参加讲座、读教材、工业实践,当然最最靠谱的方法是找到可靠的专业人士做咨询或委托。直接搜索Packet Classification,然后就能看到很多papers,根据citation数量就能分辨出那些文章好。根据经典的survey来说,网包分类问题的常见解决思路有四种:线性查找、决策树、哈希(TSS)和比特串(BitVector),其实从本质上来讲,后三种(树、哈希、比特串)基本就是高性能中常用的数据结构了(因为涉及到非线性,队列类型的数据结构并不适合)。 Who: 向谁去了解。这里推荐使用“微软学术”和“Aminer”、能够借助知识图谱自动帮助分析,免去手动查找的苦恼;初入领域的人也可以使用HistCite工具来分析。比如,我就发现了Washington University的PhD, David E. Taylor, 他博士期间研究高性能Router和Switch(刚好是那个时期的Hot研究);当然还有我导(毕竟我导带着实验室在PC领域呆了10年)。不过有趣的是Taylor博士毕业后短暂在学术界呆了9个月(做Visiting Assistant Professor),就投身了工业界了(笑),在Exegy公司做到现在(15年多,现任CTO,可以在Linked上看到他的简历)。Exegy这家公司也挺有趣,用FPGA加速为金融领域的人提供real-time data;果然是金融和信息不分家。 For Whom: 为了什么。这一点并不在传统的6W框架内,但做research很容易犯的一个错误是:漫无目的。纯粹从学术追求出发、为了满足自己的好奇心,四处查看无可厚非、只要记得多总结积累就好。但是如果是“为了他人”做项目或者“为了自己”发文章,都要适当功利一点,去思考、去聚焦在要做什么上面。 对领域的思考 What: 什么是热点?什么是学术领域内的关键问题?什么是工业领域的关键问题?未来2年、5年乃至10年什么东西会发展起来?(当然,未来10年谁也看不清,但这不妨碍去思考这个问题) When: 领域的发展历史是什么。比如: 计算机网络在从underlay走向overlay,云原生场景是网络的重要场景;而underlay的物理网络的管理从单机配置往SDN、IBN发展(华为、思科公司),应用从有线往无线延伸,从Internet向着IoT前进。 Who: 领域的大牛是谁。怼着中美的科学院、工程院的院士名单和研究领域的介绍去匹配就行。计算机网络领域就怼着Sigcomm Award的获得者去看就行: George Varghese(这位大佬是真的NB, 他在Sigcom’14获奖时的Slides对于做Research非常有价值), Nick McKeown, Sally Floyd, Scott Shenker, Van Jacobson, Raj Jain(大佬的主页对于Network新人非常友好)。哈,从这个角度来看,多路径传输(Multi-path TCP)很有前途啊,毕竟提出者Mark Handley 刚拿了奖(笑)。 Why: 领域内的principals有什么?一些经典设计的原理是什么? Where: 略。 How: 学习一些常用的技能。如: CS领域内的编程、一些工具、写作、英语等。 补充还有一个特别好用的是六顶思考帽。 陈述问题事实(白帽) 提出如何解决问题的建议, 头脑风暴(绿帽) 评估建议的优缺点:列举优点(黄帽);列举缺点(黑帽) 对各项选择方案进行直觉判断(红帽) 总结陈述,得出方案(蓝帽) 参考 6W1H原则 六顶思考帽(中科大·文献管理与信息分析·罗昭锋)]]></content>
<tags>
<tag>Research</tag>
<tag>三观</tag>
</tags>
</entry>
<entry>
<title><![CDATA[网包调度]]></title>
<url>%2F2020%2F02%2F24%2F011-PacketScheduler%2F</url>
<content type="text"><![CDATA[可能的想法网包调度问题经典算法 Fair Queuing Round Robin WRR GPS模型从Universl到PIFO继续改进]]></content>
<tags>
<tag>Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Research Pain]]></title>
<url>%2F2019%2F12%2F09%2F008-ResearchPain%2F</url>
<content type="text"><![CDATA[题目是科研痛苦,嗯,现在我感受到了科研的痛苦了。自己对于文章的态度也发生了不小转变,我个人经历的对于research的态度为: 这篇文章好出色,我怎么不知道这些事情;那篇文章也好出色。 我看看这篇CCF B的文章提了啥新东西,切,创新真少;还是SIGCOMM上的文章能看。 看起来有些SIGCOMM的文章也不是很好啊。 自己动手做,CCF-C级别文章我也做不出来;我要完了。 大四刚入研究生涯的时候,感觉自己是要做出来顶级科研,那些没有巨大创新、或者没有产生极大的学术或工业界影响力的工作都是不值得做的。一个人闷头搞1-2年,还写不出来top级的项目? 怀揣这种想法,我进入博士1年级,那时候自己主要在上课,上学期读paper、下学期写代码;两方面的进步还是有一些的;现在可以说自己不再是科研小白了,科研是怎么回事大致有了解。可惜的是没有抓紧时间继续进入自己的毕设工作(虽然中间参与Packet Classification项目有2个月,但自己时间还是足够的),自己是有机会完成Packet Scheduling深入的东西的。 到了博士2年级,自己立志上学期要完成Packet Scheduling的project,但是半路又拐去了Edge Computing。开始想的是1个月搞定,后来发现自己并不能顺利结束;中间又发生了题目的切换:原定的使用EC来更好地提供Network Security(如:DDoS Defense)的思路发现已经有了相关文章做过了;于是改做如何在EC场景下提供Network Security。磕磕绊绊做了2个月,匆匆忙忙想了一点东西就出手做,产出肯定是不怎样的,后续是要和付哲师兄继续合作、加强每周交流,深入把这个project好好地结束掉。 还是要记住“竞争”时要避免的4件事情,拼多多、抖音的发展都有点这种味道。 看不见:感觉自己没有什么对标的对手。 看不起:新产品出现时,没有看到其背后的前途。 看不懂:产品逐渐壮大,想不明白为什么发展起来。 跟不上:别人的商业模式已经起来后,没有及时跟进,错失最后的机会。]]></content>
<tags>
<tag>Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Research Area]]></title>
<url>%2F2019%2F11%2F19%2F007-ResearchIdea%2F</url>
<content type="text"><![CDATA[记录一下自己涉及的一些的科研方向 高性能网包处理网包分类(Packet Classification)这是网络设备的最最基本的要求! 狭义理解可以把一般性的网络转发:最长前缀匹配(LPM), 看作其子类。 输入: 输入5元组(ip,port,protocol)规则集, 或者是OpenFlow这种自定义协议 输出: 匹配的规则(可以是最高优先级、也可以是匹配的所有规则) 目标: 低时延、高吞吐(可能通过牺牲时延得到提升, 如batch)、更新响应快 理论: 计算几何和数据库查询 实验室背景: 实验室的老方向,进行了10年左右的research。 方案: TSS、HyperSplit、HiCuts等算法,为了高性能、一般使用树、哈希作为典型数据结构,利用分组、启发式进行决策树分割等方法进行优化。在硬件方向,一般会使用FPGA、TCAM进行硬件优化。 前沿: 优化或者使用混合方法。优化的典型是NeuroCuts,使用RL来优化决策树的构造; 混合方法的典型是CutSplit、TSS和树混合等。 正则匹配(Regular Expression)在网络检测中基本的功能 输入: 正则表达式规则集、字符串(流式) 输出: 命中的规则 目标: 低时延、高吞吐、更新(更新一般是个次要因素) 理论: 自动机理论、BDD优化等 实验室背景: 实验室之前的博士生研究了7年左右的方向。 方案: DFA和NFA是最基本的两种方法, 基于这两种方法衍生出来了Hybrid-FA、XFA(增加跳转优化)等, 核心解决DFA的内存爆炸和NFA的匹配过慢的问题, 其中还涉及到分组算法以及利用字符串匹配来做预过滤的工程优化。 前沿: Intel的Hyperscan库 网包调度(Packet Scheduling) 输入: 各种流量、人为定义的性能要求 输出: 按照一定顺序调度流量 理论: 微分方程(离散网包控制进行连续化–使用窗口)和各种调度理论(未来有可能使用ML优化,但其高性能的要求使得未必工作OK–需要考虑应用背景)。 实验室背景: 自己从大四开始陆陆续续做了大约1年的方向 方案: 典型的令牌桶(Token Bucket)、虚拟时钟(Virutal Clock),加上层级架构和典型的服务调度算法,从而诞生的HTB、WFQ等算法。在硬件方向,使用FPGA做优化(已经有2篇网络顶会Sigcomm/NSDI的文章了)。 前沿: PIFO引发的统一性的算法设计,这里存在问题的是TB能应对抖动保持高性能,但PIFO(或者说背后的Virtual Clock)应对burst存疑。 网络管理功能网络功能验证(Network Verification) 实验室背景: 跟随同事参与了解一些东西。 涵盖的内容有:数据平面的验证(针对网络拓扑和netflow)、控制平面的验证(针对网络功能,例如NFV和Protocol)。典型的算法有:HSA、Batfish等。现在最新的文章聚焦在使用SAT等形式化验证的PL常见内容来进行网络建模(Network Modelling)可以认为是网络验证的第一步]]></content>
<tags>
<tag>Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Birthday22]]></title>
<url>%2F2019%2F11%2F18%2F006-Birthday22%2F</url>
<content type="text"><![CDATA[我非常喜欢的网络小说作家“愤怒的香蕉”,喜欢在每年生日的时候写一下总结和随笔;我觉得这是一个很好的习惯,所以从今年开始我也尝试每年在生日的时候总结过去、展望未来,写写自己的想法和感悟。 日月如梭我现在是真真正正体会到什么叫做日月如梭,光阴似箭了。我竟然一眨眼已经到了22岁,研究生也已经迈入2年级,我忽然间觉得自己老了许多,总有种步入中年的感觉。 大学时期的我做事情基本不怎么着急,觉得自己有大把的时间,世界有很多值得探索的地方;但最近一段时间,自己越来越感觉到自己的一事无成、越来越焦躁和功利性、越来越难以专注地长时间学习。 但这一点我觉得也未必是坏事,毕竟“从长期看,我们都死了”。很多人会讲一些大道理,强调所谓的“后天很美好”,但是现实世界往往是“后年很美好”,乃至“10年后很美好”、“死后很美好”。我们把眼界放到整个社会,很多事情是有价值的、需要有人做的;但如果我们把眼界放到个人,可能所谓“实用性”、“功利性”更加重要。如何在个人发展中平衡“圣人”的“人性”、道德和“常人”的“兽性”、贪婪,是非常重要的事情。毕竟自己现在是入世之人,阳春白雪和饮食男女都是需要一定关注的事情。 缺乏坚持在过去的1年间,对于那些长时间投入的事情,自己半途而废的情形频繁出现:英语、健身、良好作息和良好时间管理。持续性混吃等死、间歇性踌躇满志,这句话对我来说真是扎心。 健身断断续续进行了半年,在腹肌初现的时候又暂停了1个月,体重迅速增加,逼近130斤;英语学习断断续续进行了2个月,英语口音还是没有改过来。我可以骄傲地说,贡献了健身房和流利说的盈利。 但自己也还是有收获的,健身找到了门路也起到了一定效果,英语阅读能力得到很好提升。后面自己要做的第1件事就是把这些事情的坚持常态化,坚持每天锻炼1小时、阅读1小时、课外学习1小时、睡眠9小时、工作8小时的节奏,坚持每日、每周和每月的总结。 三观的塑造自己的三观在这1年间渐渐走向定型,感谢我在过去的1年间了解一些康德的思想和“政事堂”的坚持追更。现在的我在世界观上推崇康德,对于所谓的政治、管理有了些认知。未来自己需要在这方面继续努力。]]></content>
<tags>
<tag>Life</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Management]]></title>
<url>%2F2019%2F11%2F03%2F005-management%2F</url>
<content type="text"><![CDATA[最近, 有三则新闻都非常火爆: 华为胡玲发文 清华学生的《浅谈清华学风、课程内卷、特奖》 山大的留学生又引起波澜 管理是门艺术当很多人聚集在一起后,就产生管理、政治。我现在越发感觉针对于人的“管理科学”与“政治科学”远比“自然科学”,对个人的发展来说,更加重要;当然,后者对于整个社会的扩大很重要。前者分蛋糕,后者做大蛋糕;分蛋糕的人管理着做蛋糕的人。对于一个时代的人来说,“不患寡而患不均”;而要实现整体的“跨越式发展”,有时候“让一部分富起来,先富带动后富”就更加重要。但是,很少有人能看清楚这一点,或者超越自己的屁股,无论是“先富”还是“先贫”。 管理,有两个方向:对内和对外;有两个维度:对上和对下。怎么平衡这些关系,是非常复杂的问题;更何况还要考虑到人的不理性的问题。 大人, 时代变了90后、00后正在崛起,这一代人明显与上一代人有较大的成长背景差异: 衣食无忧、崇尚独立、更加自信,这些人进入到社会以及成为社会主流后,会产生明显的不同。]]></content>
<tags>
<tag>Manage</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Wishlist]]></title>
<url>%2F2019%2F10%2F25%2F004-wishlist%2F</url>
<content type="text"><![CDATA[Patience, the ability to put your desires on hold for a time, is a presious and rare virtue. Cool thingsConsumer ElectronicsPersonal Desire 男士护肤: 养成用大宝、护手霜的习惯 男士香水: 知乎上有各种推荐, 用起来感觉不错~ 随身物品1. 文具类 笔(红、黑各一支+备用) 本子(日常使用的记录本、草稿纸) 瑞士军刀 安卓平板(划掉) 2. 生活类 垃圾袋 口香糖 雨伞 水杯 胃药 钱包(证件) 手套(冬) 护手霜 纸巾、湿巾]]></content>
<tags>
<tag>Life</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Anniversary Three Years]]></title>
<url>%2F2019%2F10%2F18%2F003-anniversary3%2F</url>
<content type="text"><![CDATA[有东西被加密了, 请输入8位数字(生日)查看. 1b3ee81bcedaa373bdb81abdd80a756482ec915e2b0e4509ea064a4fc074a5f8ef84c47e250f4fc06dacef55d9713bfcd693388154b43b937b5be1ea019fccff411d27ee779e0f114a232dfae5a8f09a0e961bb6888ffb7c1e776fe21c6f968ea9b7b761e48f406255c3df6da4fec25b12f7699b533dd5c299a7acfa9e2586087bc74a7b363a15fd7ebdc686a1f4e51630ea5e33e7dd904101cb2e89e2ec67eb4aee3f7be1042dd02031deaf1c6af1121e73b0764fe4e3a2d999dfb4999416efc7d30d5f062ed04cf5eeb2cdf8371f68e13511615a7ffd11f80d7d604983056ced3e2908b08b3474c98ae685230fe54ca4317d39f1be2d945fec024fd558394b37c061c0eb93c369f32176ec9d111ba922aa4d782052904d1a74e585171fa03d56820d9a3c05605204014840ef36c0b93bfe46efb9fa4894dc062f1ef0f9d73aaf0aec69514963e211f75b6112bf9c03ddc32a63055b1fdbdf3ba001b1681e7e2e8488480eeafc962995186eccecdd6478d689b59772b024738f1226223843ffa8551cdf99bd03014ad5c59165c49d64538441ab4284a00e9f21bf347fc4711091be6d5382fd1a9212ef7eed9955c41408fd0531adcf6bbff55131356e7c45fdff2b7aaf603e961b8d94e798950bb675e0504ce495ba4ab9c79d5e1833b1b282e2dcea06c0f6abd7e6b421e2a1bd4d4fdcca10ebec13a4d0326176551aba625b18a3a8b374bd3dbb9c3f66046e6e9fae9a6a1176a99d04c32fe59723f81c02093378be26683528e62b613d4dad773519879cae0a325d593fd05071f267f19ac0b51859541ef90bda14044b5951983f9186611fbdaa3576af2561f0362e1731b816af810a3c8ad0f02b1707c9d59887084d2c017ba03b02c11a15bb8b203bd1cdeb069f206f3721059c237067e01679946a1136f0f812fc627d4af800c00cb364e9461a926e88b47bcfbc8f95c652079389820e89bf647a7ba3c4614ee0f7eea16a77663647d7050f6b7c76499c06d9d4c7ae4f5198711ca5ea441956d742e6d5170b83598d911b8beb4c29b8553e8267265571145827629a65bd4ceb20eb5cdf076c8c870c7227394a67ef0dfb3133af5749b42e67364fbe8c6479744b451d8b7ac6ec7e1df174b071e67efcdb13d05fc0aa6fd624bb9ffc4bd20e9e933493a8d4b068e49f22253648e355d2019059e68260beead6e2291ed0926ee5f6b6589af1ecaa5c54df3fc58141f6545df95fed14edae3a34c44326c8ba09b479550f39335b68f016698ec172aa28ad48d4e4fcdee9668f8ed6ee85e9cd88068a058aa3463d197a51bf8a1e97c1b6f83c7f52c3f2e45f34f05ff77d14c48b6ffab05f64783e90e4c58d25612c3f9d34c38023a7bd7bd04be11333157fedb44b2a4ace0ba679d5fa8704ed00f0e8bf60bfd2341863a683387431b10c5215509abfa55680beb7e2f15a0b9616969894ebe09d41b9995fc83d79acbb4bd2caa993fbf70d81e8d0106b5f469976557ec5f483b2cef23c4d73a0a64e717ec3a8bf5c00eebcd7f0ad8cd3044ac93e3a068172add410d18efaef2e167e461f2ed2c74300e47bd18c7aec4c931c02fdea0bc14218da6a81739a1e777c885e262d9876c87c2a56c945092927f61814eab1363b8b15fc6adc13488c1ec5f70ab3f4025d448b743ccf11a98633b5fc3c22299ceb1ef777cd0a66daed53f03ef1b180976c71fbf67d3e68f4a8c36bdb69a704d79d472fc5a75cff22ce2ea7dc45aec5e1ae50a73b61157d3257d77c594dbb3669b08a34ac75b978f709c0ee4ff0466e990da827301d92e81a56f85e8cf2e5c2cccc04cef0b031b06c120afb729871fb244fdc4fed4b9ed8359d90d633a7a7cefa32b91fa3c6958c06807c7fc33ebf5a03108112b47a254df637413d72192174a56e433cbc5a6750821cd398ea56c5ac2fa6ed093775655616a0233fbdbc60a216a71c1cc9f30b5b06d2ed6426bde86b06a730894db36ca9ccd684e2638adc8311cb3ad3b5078d2c1ce7dc96c90c8213b37085fe9be0f985af66ae81378f23a24d75b60051c49a75f239a3c90747755fc6eb07669b2b9ef87dca3270a5c6755c234c1e9e7513fb598ca02576e8a42c581c2f09e4ae7e6cc380367bfb771c72f8829784fe045aa450c2619b62a3750fe2cb94298d75d8ccb0c9fb03a358df84a149ca56e5b1bd420bd02814aea7460725930ffad396ec587ffb3378c27ad34792984bf4a9fcfcda02b02970838466c62c06140ef344b7685e7e0d3ebe3048b279a717ef2c7abd62365cb0033866f4aed45978f8c079ffac6e43df695959caff0796acccf032ca6ebc4fe6c5cd7da9cfcdaef9a246ccaa7075f782f3e58c2540820a10ed41ad75e43a1cd9500aedea0539ec16bba87fe8b94ef49d710ab10b5ef4c24c7862ca8ddf9b1a58e0e06525c17257f2d304703bfce67a78972e6bc56275a34fd080f3a66f693e150316b8466921ea303d784cb405406fa02e1ee4ea66410bc388066ce98c09a4b5377d9f360a6f44f2b31991f600366873fd82dfae30a6994d5b78281d8a644cf010fcef1786a37a6f6959f135c8202af43cfb58ce16a1fba3f7f4602b1ff52de75936207344a6277d20ec68de3f522ac97d8532163d2fb00090e685c626314f32c898ed22ceaee4753a4d39f47fc4c56fc9576e64a50a07400c2bb4befb296087575fdc08c1c95671a533a5eb50737302862c0b9bae5bd41174775a44c7c9122196499ddef14ca68bdbc8d1bb4c701ee05b247fe48f4bdeb72bc32314b92a15e212d2daf04dbabddbe47c77a3a883cab77d42304ed3b1a1115c79351c5ee6174d1a2ccb70a58bdf75a05fc1caa2d09299e44c8a4c8416a7b9ae29f6685fd1bbb2ad39f5b1175835731b36f1d3547fa6ab82b0fc7b754ad76c4b20896d9fcbe709a0c872e5690dc67db354711f3afb39806c833057d9ec8ad4c9bb15b92afb7221ffd4542aeb239225fd71429aaeef703be65a692ca7182fe5965e07d6b35918de75ad3f330765b94e48e503ce4ceb7963a2a600715b17bae0dc6cbe70802f3a27954a2656444e589081e3dd15de40013c2702178743d88d3db2664e8c1ec246341ade0841e08c8b8ae1bc5345209044f53be7fe52c2ca4ae486524cc8d405aaee2d2a2680a63cc59e9c923e6a64ba29a41a2c8d0d1f0df513b6a612dbd5a013f9b99e752f4f403ff0aaf6268bfbbc78c0720f250299ec0e9e8090a03d4efd5ae01d934d64040cfe6b3d452d44afcc8fc3160be2c0a42f38ec5e7285decd1470d382537adece3cb9e98e83d1906bcce3db4c4978d3177f180a503885bb9f4a6ab3b5a390bce2bf69fde55d2963899defe75b8da76f3f263194975198f83eb39fda2fb6cb00a1919349844e2ce79c11b1e25c35c26304f0dcaea34b8bfdc5aaf87ea95e258da3aa4f84f9d0fd5192dd478cd774758ea8204487c2c70a03e98ff0be8cc12a9c411e58d4d4c2fae8a3f8b157d3613005107c767d1f27f6b380693176a2f1468fd29e6a879ec409bb6bd23fdf0c4068d0ad7ab7012a95e1132eba4e972c072e993860e3de8719eea4b04caa0fd2e79dd4143ae8f83292729b8749b23f71c05e234509bc06d35d46fdb8816705595aa9005c1a996c11d8cbd18358ac3e9919b3cb32fcda91ba83b69f0b016d1842f9bdbebc02d644feb920fc13d9e67f670339c5bd9dbddb15fbadca4013d19ca7df4ae4299209de66cfc6a411a9d0b58e8ddab6a0ba7dcc77271c515183c86ca986728d3d7d2b566e11fd4d2adf4e03229e3233632ae0bbab1bb261693114be9a95eeef3c8e698558d80e385d32373ebff53e02e356c81fc5ce257f69e37c1be34f88d4ca0645e10fdc641b58491c9921444ec114df760108ddf1701eda2c7b3bf7c5d4346267e43b2b8ffc89471c451dc83ddd97c5af11fa15670ed24a932096fb5032a9610b9dbfb92fe1d469d92998406f5c9a3b893f1fd1f5d9e34ebf05980348083f9ef46e985d20f4a3193192d39147e9d12ae2222815defcadbd0d35b817f210be616ea6b0da4e3ffbce11b90259f09fdcfb9f43564b73a45bdfd3942ac0e88f51b508be527b4162fd7507a045e5cf9c9f4f5fa62eadc404ebe3d07ca0914704659ac9c0f2ddf7058323d293af601a266767e38e1f111eb0b5b8f04d6f273085d79ff19d9001a02c6f5e0692c9c3acd662b78aabc0d18e3273c4df1117c884aa9aee79d6e9a49e29922fb5ddf418073dc14ba7a62281a5ed7d9d76caa9ae3888241927cca29a8b81dbc945e716b74baedf8d9990332228c45fb69567e1af61338352297ee82c22719f6d389466df0e7653dfe9b1500a6cad4177d5aa2aa6eec6fc27265edac09e1d6cfeb85b073154e6a0448997c9266a4612c5894750c2a2092551ff3bbb9000e34cb2bcedac7541fb1f6077d8e9c45025b7094c408b0822731f93eaf75053b9bddbe50a0b2c79fa89aa736d23fb99f4600fd29eb4f20a5825587ddee9e63f5611e027441cfcb04ed07dab68922a2d7337edd71651b24e54bfe0489e2a5dbdcaceae815810b26c8a54ff3e18c769522700a516b0d5a9a48ede2771de54ae1409c36602481e1213f7a2c519121d64b208444d82cc30b754e836679800276c66857be66bbac967d662e45ea96dadf7f5a3ad6e16a09d548ccef8e6f57bd1e0dac7378f8b981844cf8c1f216f5ec9418b94cbfd2b3ed62d695ba8fc95e213aa3e5ae2b2eb7d666799d11d596fea8ed95dbb8c059cb217bc27d46a94d69314f5e223737d253ff10b2d11384b4920b52b030391c5dcf44e17cea70e9ebf16c0dcad25533181e4d844ce78cea410fb7750fbe9e12dc30025baaff7bfab7081f9eade5f2ef3a2114e6cb0c9741224c577634ea68ef4e39cd9b4e2125d601c90d8f057b71a61cf9bdd52536dfd065a9b2e5a09a0a1d457f5a4da74b044ab1d2bc66506ee9ef64a94ef857ad594d07c404f021b5bb2db585fffa934c80e01585028ade16b82622ac8a176c02e784dd0e47bb0a7bba2bbbc9479e1b2939eeeef9336d9607bfdf2fa9f12ca8427f2d6a9b3f1e639fec065b7402f7c731b3466f5d26f2a456c9fb029ec899b7e286f9d33e0bf7bb2897e34528372bd28f351ef689fc20a49153e419efe7c9fabed0590fe2cf2b86f30d26b2c9500bdac6195d7417371faab7fda2219ce6f2e1fd0fd229dba6274094b070fe9b4ea7edeb8352b5ce7706e71a465e475ec695cdad3673c8c76b865598aaf194fab728a5ca3ff25b72539c55a416e09b876424f63a2a1c074869f2341e0b50ba8e41c355624c2046dba64f1622725333c76dbd9bf87a13c5dc93416fe5f54c60eb5dbd472a95d2281daf7bdffd244050cda22fdb8262da6d7bf57739e19671ad27f01c609b7349dc0efd5a33758ceecc8981b00f9e7cccb07d45a79cf6c359ac6c736c51e0240570a3a6522f325f2d9d3ce602a5b226bd45369e82279105661cb6021bcfa651b0f64fe22ed981609d3ae2c73f69ef7dce8fe589ac5a78f75cec73cf7fcf48a603abc4fd29133344869ec0ce2b3a9792e87957e9dbe70aa91b826de10508a07eb1282aa7143efec38ccbcbe21a329512484362710522a0908072c322d28f640246689631a8a162682ca1d849a59c3cd09f12a1aa4e24558ab86f621ccd66ed39c39aa71f7b187ad605e488debc9ae9285bf23617025b5edacd2a8425b8e8a3b66bb888ff14f222fc82ed2994d77169d778d2924a4c1bf65fe0c94352ca5386cf5211f99a41d8c47d3cf1ec378f318d2208a0636c771784255fe5c59be3bcfb72796a4d6f3274498699fa1b3233a05e2f00010b0943f161e3b409fc9719ad3e1a16437837a5033d1adb9a3e152eb02743f8e2eda5edac5a63dc1296ac304f34b9a4e1fba3853d0153c6fe3bf7dfcae4b0de2e8a193a2013618f490aca7d90a0ff71937ed2aed6240d0cd2522c5532d69b0975eb3c4169bbee50e1925bb2a34f08b3352c1d53544a1d3db4b28a026a3cc02d3140bf9949b0fdd749973788c21df3ced31159d51fb553d401b775a16b4a3cf537b3ca855e06681a04b0dedcf08c474636d942beb0b85580decd519a6c2da7cee62c52568d194dbeed0bcbf16345c5e12a981f29e9208f70a76f178d9e9053fd763e5c193b2c793f8d7e8481ea8eef532380d09c014ff7791a8cf69bdb3ceb86dcbda68f31323840927538b26d07b87f1aeb07613b6287b12139ea6a26e52eb773f89f15baf9d28ef1fcbad37d71a36f80ac0d261905def077aa22358dbe87b45f36c60a5d84acd8a774477281b017fcf71d11d8ba0227c6cf581981fff45431e9241dd30c5922b0ae02b38ac192c9f9f5f5db53ce43bd527b6e722eaff459989ef1698f04e783754898f95df59723cecccdb0dc302750fc52b2d503895f4875b5cf045d57be6f6a57ec82149749abf0521ed4a1641cddbf9c48e8fd280397e6d3bdcabe571a34fb7e12ed2d0ff4ddf902d38e37daf551fcfa82a862ebe94135cd188e7666d9879cf0328aa5ca7d476c223ff2925dd69394eb3a8f559cd8f34fa5a9dffd6aea27d6c35acd1a51e2935aaee1bc2f56da9b3232ca5770c3b138f3280610affd738651188628e0aecaab19b6c842e02d2eb797cf4f7b395c3b5fca580126c3c13b5a9e731e7bab0cd19729bd881cc3e788c5f2786425efd205cc9faa9bf82c37e059fdcfcd4700b4c46195f2a961d57b7f34c924056c16f27aa5bb6f696e1006572c59324e455848f995f672ab90870b1750dd3249485d8347e8fa4cac42b378d1a76f35586862d091716b3e568f4f8972fd3802747088191b6f821f99bffe39ce0fdad0987740066b1da01a0a14a3e4f497776082341fbd5d1b52d66989f66d0a33f1a]]></content>
<tags>
<tag>Love</tag>
</tags>
</entry>
<entry>
<title><![CDATA[V2RayConfigure]]></title>
<url>%2F2019%2F09%2F20%2F001-V2RayConfigure%2F</url>
<content type="text"><![CDATA[BackgroundIt is well known that the GFW makes it difficult to use Google which is necessary for research. With National Day coming, many IPs are blocked. However, the IPv6 address is not blocked, perhaps because the address is too long to be matched fast. Anyway, we can not connect to the VPS via IPv4, but via IPv6. It is reasonable for us to buy a VPS with IPv6 address and reach Google Scholar with it. Buy VPSThere are many merchants, providing VPS. You can find these merchants in many websites, such as VPS Recommend and Zhujiceping. What’s more, you can get similar information by searching in Github. I use the Ramnode for 2 years and it works well. How to choose oneIf we ignore the overselling problem, which is the main reason for bad performance under normal conditions, the main features we need to consider about are as follows. Latency. It is most important!!! However, because of the physical links and government regulation, the latency from mainland of China to VPS in Japan or Singapore is more than 100ms. HongKong, China is better, but still needs 50ms or more. As a result, if you want to play online games, VPS is not suitable for you but some other technologies. CPU and RAM. If you just install V2ray and other simple softwares, 128M RAM is enough. If you want your own blog on the VPS, better CPU and more RAM is necessary. Bandwidth. It is least important. Because even 500GB is enough for private use but if you would like to see many academic videos on Youtube, you need more bandwidth as 20-minutes HD video needs 1GB or more. To better understand the difference of VPS, some virtualization technologies are vital. There are three main virtualization technologies used in VPS: Xen, KVM and OpenVZ. You can get more information from this link. OpenVZ, in fact, is not virtualization technology but Linux-based containerization technology. You can not run Docker on it or modify kernel modules, but OpenVZ VPS is cheapest. Xen is an open-source virtualization platform that originally began as a research project in the University of Cambridge. It uses QEMU to provide complete hardware emulation. KVM is a kernel module, and reuses many functions of the Linux kernel for its purposes. It only runs on hardware that supports hardware-assisted virtualization, and is common. Buy Domain NameIt is necessary to buy a domain name because it is hard for us to remember 120.12.6.78 or 2340:234:be::12f. Besides, we can just change the DNS configuration without changing the configuration of our programs, which is very convenient. You can get a ‘.site’ domain for 10 year with about $30, which is not very expensive. Install V2rayYou can install v2ray buy run the go.sh from https://install.direct/go.sh and refer to the official doc. After installation, you need to configure the config.json. I recommend to use the mKCP or QUIC,which is faster, for the connection between client and VPS. You can get the configuration from Internet easily. The inbound configuration in VPS and the outbound configuration must be the same, for example: 12345678910111213141516171819202122232425262728"outbounds": [{ "protocol": "vmess", "settings": { "vnext": [ { "address": ["123::00"], "port": [123], "users":[ { "id": ["4684-4565"], "level": 1, "alterId": 64 } ] } ]}, "streamSettings": { "network": "mkcp", "kcpSettings": { "uplinkCapacity": 5, "downlinkCapacity": 100, "congestion": true, "header": { "type": "none" } } } }] The configuration of inbound in client can be personalized with socks or http, with authentication or without, for example: 1234567891011"inbounds": [{ "port": [123], "protocol": "socks", "sniffing":{ "enabled": true, "destOverride": ["http", "tls"] }, "settings": { "auth": "noauth" } }], The configuration of outbound in VPS needs to be as follows: 123456"outbounds": [ { "protocol": "freedom", "settings": {} } ] Configure IPv6 in AliyunIPv6 is supported by China Mobile and other Mobile Network Operators. However, we can not use IPv6 sometimes. So we may need another server in China: Client <– IPv4 –> China Server <– IPv6 –> Abroad Server The ‘China Server’ need to support both IPv4 and IPv6, but it is hard in China now. Aliyun, Tencent Cloud and some other Cloud provider do not support IPv6 directly. So we need to use tunnel: 6in4. We can use the tunnel broker of HE. Enable IPv6 in AliyunModify the /etc/sysctl.conf to support IPv6: 123net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0 Restart network to support IPv6, and check with ifconfig. Register Tunnel BrokerThe website is https://www.tunnelbroker.net/ and make a registeration. Create a regular tunnel and use the public IP of Aliyun server to generate a tunnel. After this, you can get an example configurations for Linux-route2, which is suitable for CentOS. You need to change the public IP into private IP in Aliyun. 123456modprobe ipv6ip tunnel add he-ipv6 mode sit remote 66.220.18.42 local [Private IP] ttl 255ip link set he-ipv6 upip addr add 2001:470:c:17cb::2/64 dev he-ipv6ip route add ::/0 dev he-ipv6ip -f inet6 addr Use ping6 command to check and try to ping your VPS abroad. And install V2ray in Aliyun too and make the inbound configuration as http or socks. You can use vmess or mKCP too if you would like. Finally, you get the following infrasturature and are able to reach Google Scholar. Client <– Socks –> China Server <– V2ray –> Abroad Server]]></content>
<tags>
<tag>IT</tag>
</tags>
</entry>
<entry>
<title><![CDATA[DPDK Learning(个人参考使用)]]></title>
<url>%2F2019%2F09%2F04%2F000-0-DPDK-Learning%2F</url>
<content type="text"><![CDATA[学习DPDK的相关知识,使用《深入浅出DPDK》这一本书和DPDK官网的document足够了。 安装 从DPDK官网下载LTS版本 安装依赖(主要是gcc\numa-dev\kernel-dev) 解压DPDK源码后进入tool文件夹下,执行对应安装的sh脚本,根据指示编译源码、安装驱动、绑定PCI网卡设备、配置大页 export RTE_SDK和RTE_TARGET 根据examples文件夹下的程序对应修改即可 代码使用注意事项 要理解mempool的概念(大页内存的使用)和rte_mbuf的申请、回收 要理解调用EAL做argv解析和examples给出的网卡初始化过程中的一系列事宜: 分配Queue给Rx、分配TxBuffer,设置端口性质等。可以参考博文 定义结构体的时候, 要通过attribute((packed)) 来说明结构体不进行Cache对齐,否则gcc优化会自动进行CacheLine对齐为4B整数倍。相关说明参考博文]]></content>
<tags>
<tag>Research</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Linux Learning(个人参考使用)]]></title>
<url>%2F2019%2F09%2F04%2F000-0-Linux-Learning%2F</url>
<content type="text"><![CDATA[常见命令 Command Usage Other Info uname 查看内核信息 fdisk 查看磁盘信息 blkid 更改磁盘信息 ln 建立软链接 dpkg deb包安装使用等 -i [.deb]安装; -r 删除 unzip zip解压 unzip [-x xlist] [-d exdir] env 查看环境变量 alias 重命名命令 alias ls=”ls -al” service 服务启动 /etc/init.d/ 或 /etc/init/下的脚本的执行 scp ssh传输文件 scp [-r] [-P port] 本地 user@ip:/home/. ssh ssh-keygen 产生ssh指纹 和ssh-copy-id user@host使用来免密登 文件位置说明 Location Usage Other Info /etc/fstab 磁盘开机挂载 UUID使用fdisk -l查看 /proc/version 当前系统的内核版本号及系统名称,uname命令就是这样执行的 /proc是系统内核映像,文件位于内存,可访问内核数据 /etc/rc.local 开机启动 ~/.bashrc bash加载前执行(interactive non-login shell) 注意alias, export等命令定义 ~/.bash_profile login shell执行 /usr/share/applications 增加dash快速启动内容 .desktop的定义参考目录下的其他文件 Grub引导Grub是一个linux引导程序 待办:grub的实际运行原理调研EFI,GPT问题问题解决参照 www.mintos.org/skill/rescue-efi-grub.html 123456789mount /dev/sda4 /mnt(注意先确认自己的 / 分区是 sdaX) mount /dev/sda1 /mnt/boot/efi mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys mount -o bind /dev /mnt/dev mount -t devpts pts /mnt/dev/pts/ chroot /mnt grub-install /dev/sda1 update-grub2 或者,先添加ubuntu启动项到efi中,再修复 123mount /dev/sdb4 /mnt/system mount /dev/sdb1 /mnt/system/boot/efi efibootmgr -c -d /dev/sdb -p 2 -w -L ubuntu 重启进入ubuntu后,grub-install /dev/sda1; update-grub2 Vim使用Command Normal状态下 Usage 0/$ 移动到行首/行尾 ^/g_ 到行首/行尾非blank字符 /pattern 搜索(n/N跳转) I/A 行首/行尾插入 o/O 插入一行在行后/前 a 光标后插入 p/P 粘贴当前位置后/前 yy 拷贝当前行,相当于ddP u/ C-r undo/redo [num]G 移动到第N行 gg/G 移动到第一行/最后一行 w/e 下一个单词开头/本单词结尾 W/E 以blank作为分割的下一个单词 % 匹配括号移动 */# 匹配当前单词,移动上一个/下一个 f/t [c] 到下一个c字符处或c字符前的一个位置 F/T [c] 相反方向 C-n/C-p 自动补全功能出现 r[c] 用c字符取代当前 ce change until end [num]+command:重复某个命令num次 [start postion]+command+[end postion]:dt”:删除所有字符直到” 块操作块操作,典型的操作: 0 C-v C-d I– [ESC]^ → 到行头C-v → 开始块操作C-d → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)I– [ESC] → I是插入,插入“–”,按ESC键来为每一行生效。 Setting files Command Usage :e [filename] 打开 :x/:wq/ ZZ 保存并关闭 :bn/:bp 前后一个文件 :set nu! 显示行号 :syntax on 高亮显示 :s/old/new/gc 取代字符,加g表示本行,加c表示确认 分屏 Command Usage :sp [filename] 上下分割,打开文件,空白则是当前文件 :vsp [filename] 左右分割,打开文件 C-w hjkl 光标在各个屏之间移动 C-w c 关闭屏幕 Reference https://coolshell.cn/articles/5426.html]]></content>
<tags>
<tag>IT</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Configure the Blog]]></title>
<url>%2F2019%2F09%2F04%2F000-hello-world%2F</url>
<content type="text"><![CDATA[Welcome to My Blog. This is my very first post. I hope that I can help someone. Blog InitailizationMy Blog is based on the Hexo, thanks to the Github Pages.To beautify my blog, I use the theme: next and modify some settings.We need to use git clone https://github.com/theme-next/hexo-theme-next themes/next to install.After the Installation, I modify the Personal Information and other configurations according to Instructions. PersonalizationI add ‘Blog Life’, ‘Visitor number’ and ‘Personal Information’.The key is to modify the _config.yml of Next and Hexo.And with the help of js codes, we can add some interesting functions. Menu Create the filesFiles are stored in ./source/: hexo new page “about”.We can create a markdown file in ./source/about and modify it. Btw, blog articles are in ./source/_posts.I add my CV in the about menu. Remember to modify the Next config of ‘menu’. 12345678910111213141516171819202122menu: home: / || home about: /about/ || user tags: /tags/ || tags categories: /categories/ || th archives: /archives/ || archive #schedule: /schedule/ || calendar #sitemap: /sitemap.xml || sitemap #commonweal: /404/ || heartbeat avatar: # in theme directory(source/images): /images/avatar.gif # in site directory(source/uploads): /uploads/avatar.gif # You can also use other linking images. - url: /images/avatar.gif + url: /images/header.jpg # Picture link # If true, the avatar would be dispalyed in circle. rounded: false # The value of opacity should be choose from 0 to 1 to set the opacity of the avatar. opacity: 1 # If true, the avatar would be rotated with the cursor. rotated: false Search To enable search function, run: npm install hexo-generator-searchdb –save Modify Hexo config of ‘search’.12345search: # add the search function path: search.xml field: post format: html limit: 10000 RSS Install the plugin, run: npm install –save hexo-generator-feed Modify the Hexo and Next config.12345# In Hexoplugins: hexo-generate-feed# In Nextrss: /atom.xml Count Install the plugin, run: npm install hexo-symbols-count-time –save Modify the Hexo config and Next.12345678910111213141516# In Hexosymbols_count_time: symbols: true time: true total_symbols: true total_time: true# In Nextbusuanzi_count: enable: true total_visitors: true total_visitors_icon: user total_views: true total_views_icon: eye post_views: true post_views_icon: eye Run time Modify /blog/themes/next/layout/_partials/footer.swig, add the codes: 1234567891011121314151617181920212223242526<div id="days"></div><script>function show_date_time(){ window.setTimeout("show_date_time()", 1000); BirthDay=new Date("04/17/2018 15:13:14");//修改为自己的blog建站时间 today=new Date(); timeold=(today.getTime()-BirthDay.getTime()); sectimeold=timeold/1000 secondsold=Math.floor(sectimeold); msPerDay=24*60*60*1000 e_daysold=timeold/msPerDay daysold=Math.floor(e_daysold); e_hrsold=(e_daysold-daysold)*24; hrsold=setzero(Math.floor(e_hrsold)); e_minsold=(e_hrsold-hrsold)*60; minsold=setzero(Math.floor((e_hrsold-hrsold)*60)); seconds=setzero(Math.floor((e_minsold-minsold)*60)); document.getElementById('days').innerHTML="本站已安全运行"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";}function setzero(i){ if (i<10) {i="0" + i}; return i;}show_date_time();</script> In the markdown files, we can add the js codes. For example, with girlfriend. 12345678910111213141516<div id="withGirlFriend"></div><script type="text/javascript">var now = new Date(); function createtime() { var grt= new Date("10/18/2016 22:30:00"); now.setTime(now.getTime()+250); days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} document.getElementById("withGirlFriend").innerHTML = "和女友在一起"+dnum+" 天 " + hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; }setInterval("createtime()",250);</script>]]></content>
<tags>
<tag>IT</tag>
</tags>
</entry>
</search>