菜菜博士

博士在网络的家

中国电信原生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转...

ubuntu 太反人类了

ubuntu 这个烂东西, 我本来不打算吐槽的, 反正烂东西我不触碰就是了. 但是啊, 烂东西呢, 你不过去招惹它, 它还是会过来招惹你, 不管你愿意还是不愿意. ubuntu 为啥烂 ? 怎么招惹我了? 因为咱用了 travis-ci . travis-ci 是个好东西啊, 每次你 git push , 它就默默的帮你编译一遍代码. 哪个 commit 没编译过, 一目了然. 问题...

也说 jitter

搞数字音频的,经常会提到 jitter。 什么是 jitter ? jitter 就是时钟的随机抖动。这个抖动啊,来自量子世界,是无法消除的,否则海森堡大人要从棺材里跳出来了。 jitter 只能减少,不能削除。 那么 jitter 对音频有啥影响呢? jitter 主要影响就是,经过 DAC 重建模拟信号的时候,时钟的不稳定导致重建信号偏离原来的位置。结果上看就是波形不再符合...

更高采样率,更低成本

在继续本文之前,容我提出一个摩尔定律的推论: 离摩尔定律越近,发展越快,成本越低;反之,离摩尔定律越远,发展就越缓慢,成本也难以下降。 [待续] === 2023 年 12月 21 日填坑 === 没想到,当年的一篇文章,我居然没完成。挖坑了这么久。 这次来回填。 在玄学HIFI领域,是反摩尔定律的。 数字音频,是个跨领域的行业。一方面,他是数字化的。一只脚在摩尔定律统治的...

超线程, 优先级和调度策略

这是 ck 的一篇文章,原始链接在此 (SMT/Hyperthreading, nice and scheduling policies)[http://ck-hack.blogspot.com/2014/08/smthyperthreading-nice-and-scheduling.html]