TCP-BBR拥塞控制技术的简单分析及使用

TCP-BBR技术是Google实现的一项技术,在其正式生产环境通过后在ACM queue期刊发表: http://queue.acm.org/detail.cfm?id=3022184 并提交到了Linux主线中。
这项技术致力于实现在劣质网络下达到较高的稳定性和可用性。

相信大家对CUCN 和 EAC-C2C 两条丢包率丧心病狂的海底光缆深有感触,许多好盆友都使用了例如锐速或者finalspeed等暴力发包软件来解决这个问题,这类软件虽然自己用得爽了,但是会加剧海底光缆的拥堵,以及可能导致由于你懂得的原因把IP给ban掉。

在看了相关参考文章后,在这里来分析一下:
TCP-BBR技术呢,用了一种溢水原理的思想,来预判丢包率,调配发包速率。
假设你有一支较细的U形管,下面还有一堆不可溶的填塞物,你从一边开始大量灌水,如果另一边出水正常,你就可以继续加大灌水量,达到最大带宽。如果另一边发现水时断时有,就证明下面出现了随机拥堵,这时,你就要减小灌水量,等待水位落下。这时如果采用传统继续灌水时,也就会造成水溢出(丢包现象的产生)。所以这是真正的按需发包。当然,这一切是建立在系统预估的情况下。

以实际情况说,也就是应用程序在创立会话时,这项技术会增加额外少量的的会话,这些会话用于检测带宽和延迟,根据网路设备返回的情况来分析网路质量(确认延迟和带宽口径,以及回避不易确认丢包类型)。另外,这项技术中,BBR接管了TCP的控制权。

由于这项技术公布的时间也就一周左右,可能会出现许多不稳定和不科学的现象,期待更新以及Google更详细的doc。
知乎上的许多大牛也对这项内容进行了详细的分析 https://www.zhihu.com/question/53559433

这里是几份权威的文章,较为详细的说明了TCP-BBR技术
http://www.thequilt.net/wp-content/uploads/BBR-TCP-Opportunities.pdf
http://blog.cerowrt.org/post/bbrs_basic_beauty/

接下来是具体安装运用方面

mbxo 一款专为手机而生的hexo主题

在 mobi.css 发布后,就有了这个想法,能不能做一个非常简洁的博客手机端,即使在 GPRS 网也能以一个不错的速度访问。

于是乎, 8 月底,雏形完成啦,但是,第四次调试时老机器的硬盘出现了故障,就 gg 了。
于是开学了,于是军训,于是各种各样的事情,直到十月中,才用新电脑开始填坑(抽了两个晚自习写了出来 orz )

Github:https://github.com/Alleysakura/hexo-theme-mbxo
Demo:https://alleysakura.github.io/hexo-theme-mbxo/

利用代理隧道接入HE.net的IPv6网

IPv6正在成为因特网的主流,但是,很多时候,无论是IDC还是ISP都不一定支持IPv6网络。但是IPv6的地址数量非常多,HE.net家拥有全球最大的IPv6网络,同时他家为了推广IPv6网络,推出了一项非常任性的服务23333333——利用代理隧道接入他家的v6网。

你好 大学

终于被录了~好开心,第一志愿学校,第一志愿专业。耶耶耶!
不过好悬,今年湖工录取线暴涨……按前三年的计算可以说稳进,可是今年,差点被退档,比最低分只高两分。

进了想去的学校,进了想进的专业。会给我的计算机之路鼓足强大的信心~C,JAVA ,JS我会去攻略的(当然不会忘了Linux这个陪伴了我高中半数时光的好伙伴~)

光阴似箭,这一切像梦一样,但又十分真实,现在是时候泻药一下了

Caddy Server简易使用手册


Caddy Server是一个用golang写的优秀web server,国内用户相对偏少,但我非常喜欢这个东西,所以来做个简易的手册。
它有许多nginx和apache没有的功能,不仅具有特色而且非常实用,比如简洁的conf,http/2,markdown渲染等等
要说它的缺点,就是效率不如前两者。

本文会以下几块方面来介绍此服务器

  • caddy安装及配置文件基本写法
  • 基本组成模块
  • 传统php+mysql建站
  • caddy特色markdown建站
  • 反向代理引入更多后端系统

Gogs:一个不错的GitWeb服务器


网址 :htttps://gogs.io
Gogs作为一个Git服务器,就目前来说已经足够成熟了。它简单易用,极少的bug,所以特别适合小公司及个人使用。
相比较Gitlab来说,这个更加轻量,所以我们可以使用树莓派,废旧电脑,或者一台不低于512mb内存的vps上搭一个

相关安装文档官网已经写得非常清楚了,第三方的教程中,这有一篇比较优质的https://mynook.info/blog/post/host-your-own-git-server-using-gogs


在vps等机器跑gogs,需要我们使用screen或者tmux等工具来守护这个进程。

接下来是博主脑洞大开,想出的对于gogs的一些实验性(作死)玩法。

一个值得尝试的小型linux发行版-TinyCore

TinyCore,一个有名的linux系统,以体积小而著称,在体验过着这个可爱的系统后,我爱上了它,但我们彼此之间还需要磨合。

地址:http://www.tinycorelinux.net/

作者提供了三种版本的 Core,TinyCore,CorePlus

个人呢,更倾向于core版,非常轻量,无图形界面(果然还是Terminal最有爱)加载迅速(512mb,hdd虚拟机5s内完成启动)
tinycore则是,加了图形界面的core版,coreplus则加入了更多组件

使用core/tinycore的真正意义,则是用它来打造自己心目中最理想的Linux。它提供了最基本的功能,vi编辑器,make工具,gcc编译器,wget下载器等等,但多余的累赘根本没有。
它不像LFS一样,定制需要繁琐的交叉编译,也不像gentoo,虽然可定制化高,但毕竟已经有了自身的灵魂。

这个系统,值得尝试(但好像被设计了在虚拟机里跑,因此,引导方面还需我们自行定制)

Sphider搜索引擎的安装及Bug修复

Sphider呢,是一个极其简单易上手的搜索引擎,相比起Nutch之类的JAVA搜索引擎来说,降低了普通站长的使用难度,同时节省了对于机器的开销!
虽然这个搜索引擎比较简陋(尤其前端23333)各种bug,以及万年不更新(大雾)等等,但我还是选择了它
地址:http://www.sphider.eu/
别问为什么,你去GitHub上看看就知道,不得不承认,上面有些源码写得的确好,但却没告诉我怎么用QAQ!!
有些是解析json的,有些干脆把json当数据库用,有些还要重新编译php加入额外分词组件 etc.

好了以开始正题,如何去折腾这样一个搜索引擎~
首先,作者提供的Installation已经无法使用 http://www.sphider.eu/docs.php#installation
所以我来做一个具体的安装文档(我的运行环境 Nginx-1.11.1(SSL ON) Mysql5.5 PHP5.5)

我又回来啦!

原地满血复活2333333

这个假期,我将完整自己的linux知识体系,准备ccna考试,同时开始学习javascript.
对博客将会有一个全新的优化和界面的更改,请期待~

三个月内,发生了很多,我依然没有停止做死,而是尝试了一些新的机器prpr,也收获了一些经验.相关内容陆续会写的qaq

恩就这样吧~