菜菜博士

博士在网络的家

通知到轮询线程

在腐都工作也有大半个月了。工作过程中,遇到了一个轮询+通知的消息模式。所以要轮询,是因为通知是不可靠的。 所以要通知,是因为轮询是不及时的。既要保证及时,又要保证可靠,就只能轮询和异步通知一起上。 因为异步通知的时候,会把轮询需要获得的状态一并携带上了。所以,获得通知后只是取消定时器,让轮询线程立即唤醒干活肯定是。。。 可以的但是有点浪费。如果在异步通知线程里直接调用处理呢,就要把处理的东...

Yaoi-city-here-I-come

腐都我来啦!

使用邻居的CMCC宽带加速

基于某些特殊原因,我知道邻居家的wifi密码。 但是他家信号在我家虽然能收到,但是比较弱。所以一直没用。最近从newbie获赠了一个叫 Ubnt AirMAX 的山寨产品,有个定向天线。 这使得我可以在家接收邻居家的信号了。于是就开始用啦! 先上图。 这是在阳台装好的效果。这货还支持 POE 供电,非常不错,网线到就可以干活了。 邻居家使用的是CMCC的网络,这是我要连上他家网络...

错误配置的路由器

企业专线宽带通常会分配多个固定IP,一般是 4 个。也有的是 8 个。如何使用这多个IP地址也是一门学问。 我见过的多数企业,对于多个IP的使用基本上就2个模式。 模式1:只使用一个。(通常负责人还会抱怨给那么多地址干嘛,一个就够了,多的不要了,给降价吧!) 模式2:作为NAT地址池。提高大并发下的NAT效率。(这个负责人通常遇到上面那种人会觉得对方没文化,企业上网人数多,NAT端口不...

中国电信原生IPv6配置

目前电信已经商用 ipv6 网络了,ipv6 的好处你懂得。 在继续之前,首先讲下,ipv6 同 ipv4 在配置上的不同。 对于家庭宽带,ipv4 是 pppoe 拨号的时候自动配置的。isp 给且仅给一个 ipv4 地址。 如果有多台设备需要上网,就需要使用一种叫 NAT 的技术进行网址共享。 但是 ipv6 地址有 128位那么长,世上每一粒沙子都能分配一个 ipv6 地址,意思...

高速转发是如何实现的

以太网发展到如今,已经出现了 400Gbps 的传输速度了。在这个传输速度下,实现无阻塞转发,需要达到的转发性能要达到 579.2Mpps x 端口数,要实现无阻塞转发所需要的背部带宽达到 800Gbps x 端口数。没有任何已知的系统总线能提供如此大的带宽。 那么,高速转发是如何实现的呢? 首先,将问题分解,一次转发分解成多个动作,然后看这些动作如何实现。 第一,网络接口收到数据包。...

死在以太网发展道路上的网们

记得 Robert Metcalf(以太网的发明者)说过如果有技术最终替代了以太网,那么它还是会被叫做“以太网” ,所以以太网永远不会消亡。 以太网,诚如它所言,真的像火凤凰一样,不断的涅槃重生,从最初的 3Mbps DIX 以太网到最新的 400Gbps 以太网。历经 10Mbps 100Mbps 1000Mbps 10Gbps 40Gbps 100Gbps 的磨练,一次次的幻化重生。...

脑洞:可编程网卡

很久以前,网卡就只是个物理协议转换装置。各种数据的处理都是靠的 CPU。随着网卡支持的速率的提升,还有人们对效率的追求,网卡开始支持将一些操作给 offload 到网卡上执行。比如checksum的计算。再后来,连 TCP 这样的协议都可以直接交给网卡处理。叫 TCP offload。 网卡能 offload 的东西越多,高网络负载下的 cpu 使用率就越低。数据处理也就越有效率。 既然连...

路由口和交换口

很久以前,我买路由器非常关心路由器有几个口。但是我最终发现,其实路由器都只有2个口。 一个 WAN 口一个LAN口。哪怕是一些双WAN的路由器,其实也只有3个口,2个WAN口一个LAN口而已。 至于你看到的4个LAN口,那不是口,那只是内置了一个交换机。 说道这,就得科普一下 路由口和交换口 的区别。 所谓交换口,就是一个2层可以通的RJ45口。而路由口,才是可以配置 IP 地址的口,...

soho路由器是单臂路由器

用 VLAN 划分局域网后,2个局域网之间就不能通信了。如果要让这2个网络能互访,就需要路由器。如果VLAN只是用来做端口隔离,那它本身就毫无意义,买多台独立的口少点的交换机更便宜。VLAN所以那么有用,完全是因为 vlan trunk 端口的存在。使得以太网在交换机上变成了一种隧道。一个二层的隧道。于是只有一个接口的路由器在这种隧道的帮助下能访问被 VLAN 隔离的网络。这种路由器,就是单...

Linux多WAN负载均衡原理

玩了一段时间 EdgeRouter , 对他的负载均衡的可玩性非常着迷。仔细研究后发现,他的实现原理是 iptables 标记数据包,然后对标记的数据包使用使用特定的路由表实现的。 Linux 默认有一个路由表。这张路由表叫 main 路由表。但是可以用 ip route 命令添加其他路由表。非默认路由表可以用一个数字编号。并且 ip rule fwmark 命令可以设定让被标记的数据使用...

家庭wifi覆盖建议

私以为,目前民用 wifi 路由器市场已经完全走上了邪路。天线越来越大,发射功率越做越高。都敢冒着法律的风险使用大大超过 100mW 的发射功率了。且不论巨大的发射功率可能对人体造成的影响,就从技术上说wifi的特点,为什么wifi不适合大功率发射吧。 第一点,空口带宽是个共享带宽。 共享范围是无线可达的地方,取决于发射功率和损耗。频率越高损耗越大。发射功率越大,意味着越多的设备进入这个...

新的路由器

上文说到,我使用无线网桥衔接了2个家庭,组成了一个局域网,共享了宽带。 但是,局域网和局域网还是太过开放,网桥又是一段不怎么可靠的网线。因此2个局域网最好能隔离开来,隔离广播域,又能通过IP地址直连。 经过研究发现家里宽带还可以多拨。虽然多拨并不叠加带宽,但是可以多获得一个公网ip。有多一个 ip 对 NAT 来说,也是可以极大的提升网络性能的。 于是找啊找,找发现了一个利器 “ubnt...

远程共享宽带

最近姐姐搬迁到了新家。在我家屋顶能直接看到她的新家。所谓目视可达。我就开始思考,是不是可以无线直连,然后共享网络呢。 于是淘宝上搜了一圈,最后弄了对山寨 UBNT 无线网桥。然后买了一箱网线,从家里一直沿着电信的光纤一路跟随布线到了楼顶。 架设好后,姐姐家同理。也是室外放个网桥,然后线走进屋内。 在屋内,2个网桥都分别和各自的无线路由器连接。 无线网桥就相当于一段网线。 把2个路...

IELTS essay test 1

I couldn’t believe that some people just refused to admire the huge advantage that internet has bought us especially when it was utilized as a source of information. They made the assumption that i...

UDP and congestion control

TCP is good, good for nearly everything. It’s a general purpose abstraction for networking applications. But TCP is bad for one thing: it’s general. If you have some special need, setsockopt(2) can...

ASIO 腾空出世 (那些年我们追过的网络库.PartII)

这是上篇 那些年我们追过的网络库(PartI) 的后续, ASIO 腾空出世 在地球最大的岛上,另一位少年开始拜读 ACE 的大作。那时候,没有 libuv 没有 libev 更没有 libevent . 有的只是 ACE. 然而这个南方小国的少年没有跟风陷入 ACE 崇拜,他以敏锐的目光察觉到了 ACE 的弊病。 ACE 哪里做的不好?又哪里是值得借鉴的? 少年在给 c++ ...

那些年我们追过的网络库(PartI)

#为什么要用 C++ 编写服务端程序? 如果说答案是性能,那么肯定有人会满不在乎。觉得性能不够的话, 只要加机器就可以了。 然而更少的机器,意味着更低的能耗,更少的硬件投入,更少的人力资源投入去维护机器。总而言之,更低的成本。 肯定会有人说,C++的开发速度太慢了。然而这并不是绝对的。C++也可以做到非常快速的开发。有句俗语 * “脚本一时爽,重构火葬场” * 说的正是脚本语言开发的项目进...

自我意识和物质

现代的科学认为物质是不生不灭的. 至少在宇宙的寿命内是这样. 物质的诞生意味着宇宙的开端, 物质的消失意味着宇宙的灭亡. 在宇宙中, 意识并没有特殊的地位. 它不过是地球40亿年进化史的一个副产品. 真的是这样的吗? 我始终坚信的一个宇宙真理就是, 万物平等. 伽利略给了运动和静止一个平等的地位. 爱因斯坦给了所有惯性参考系平等的地位. 物理学的发展, 就是不断的消除特例, 不断的将原本...

GLSL加速 YUV 显示

通常来说,视频都是使用 YUV 格式编码的。YUV 最符合人眼的结构,因为人眼对亮度要比对颜色敏感的多。 YUV 将颜色分成一个 亮度信号和2个色差信号。于是就可以使用更多的bit数去编码亮度信号。在同样的每像素比特位数下,YUV 能比 RGB 保留更多的信息。 But YUV 要在 PC 屏幕上显示,不那么友好。需要转成 RGB 格式。网上一搜一大把,这里就不贴转换公式了。 将YUV转...