⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 cnblogs.com/index-html/p/4344082.html 「EtherDream」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

刚上大学没多久,就遇到件头疼事。

富二代们刚来就带着笔记本电脑,这让咱们只能玩手机的屌丝辈们羡慕嫉妒恨。要命的事来了,晚上断电不断网,于是熄灯后笔记本仍然可以玩。

不巧的是,我们寝室也有个。常常熄灯后,非得把电池用干净才罢休。边游戏边语音,还放着音乐,备受煎熬。虽经劝说有所好改,但过不了几天又会复原。

为了迫切改变这个状况,但又不想和新认识的同学扯,于是决定用技术方案解决。


可当时的家当只有一部诺基亚滑盖手机,没有装备一切都是空谈。唯一可行的,只有偷偷在他电脑里设置个计划任务,晚上自动关机。但那样万一发现了更不好,根本没有技术含量。

无奈,只能把目光转移到电脑之外,网络上。如果不能上网,就算电脑能用,也不至于熬夜玩单机游戏吧。

既然刚来时他的网线插口就能用,想必我这儿的也有信号。上一届的肯定都开通过,总不至于走了以后还封掉。趁着有天寝室没人,我把那笔记本的网线拖到我这边一试,果然有信号!顿时来了精神,感觉有希望了!

也许你会说,总不可能把网线连到诺基亚上,然后用什么恶搞软件吧~ 当然不可能,那时的手机哪有这么先进。

事实上,我们不用任何软!件!,甚至可以不用硬!件!—— 除了一根网线之外。


要说如何玩转网线,还能从一年前安装机顶盒的那天说起。

曾有段时间,很多城市开始流行起数字电视。我们这也不例外,挨家挨户的赠送机顶盒,还免费上门安装。华数电视本来就和网通是一家,数字电视当然就是共享网通的宽带了。

由于之前已开通了网通,这次又要给机顶盒连网,我想至少得送个交换机才行吧。然而,安装的师傅一进来,既没掏出交换机、甚至连集线器也没有,反而一剪刀把网线给割了!

当时就惊呆了,这究竟是搞哪门子鬼。尽管那时对网络链路协议有些了解,还用 WinPCap 写过一些免费上网的小程序,但物理层上的却是一窍不通。那师傅不慌不忙地说,网线只要四个就够了,还有些就是备用的。于是从之前的线里,拆了四根给机顶盒。

这大出之前所料,居然没用任何设备就把机顶盒接上了!于是,又开始异想天开了。。。

这分出来的两股,在交换机来看是不是两个独立用户?如果把他们接在一起,效果和一线插两口相同吗?能一样短路局域网吗?

怀着兴奋的心情一测,果然可以!真把整个小区的网络搞挂了!

在恢复之后很长段时间里,一直拨不上号。在嗅探器里发现好多邻居们也在不断地拨号。显然,刚刚那接通两个 4 股线,把外部的 STP 包也转发了,导致小区网络被外部隔离了。

这一天,改变了之前的看法。原来只需一根网线,就可以来一次 VLAN 风暴!

为什么一根网线插交换机的两个口会产生风暴?因为交换机会把发往广播地址的包,转发到所有接口上。如果有两个接口回路了,一旦出现广播包,就会彼此不断循环发送,耗尽整个设备的带宽。别小看交换机,它天生就是为发包设计的,风暴能把每个接口都占满,打出背板带宽的流量。STP 协议就是为了解决这个问题,进行回路检测。


尽管了解了这个新技能,但物理层的知识基本派不上用场,也就淡忘了 —— 直到来到大学后,发现寝室座位下有信号的那天。

根据回忆,寝室之间还打过局域网游戏,显然这不是独立的网段,于是更加信心满满了!

立即找来一根网线,剪掉一边的水晶头,刮掉外皮,然后把对应的四股两两粘上。果然,附近的寝室开始传来 —— 不,先是寂静了几秒,接着陆续传来的尖叫声,吼声。“卡了!”,“谁掉了?“,什么情况?”,“靠,断网了~~~”。。。

跑出走廊一看,整栋楼都暴动了!原来这寝室楼根本就没划 VLAN,所有几百号寝室都是连在一起的!!!

这时既兴奋又担心。兴奋的是,以后有了电脑可以抓上千人的流量了。担心的是,现在只想恶搞自己寝室,不想牵扯所有人。

不过不管怎样,行动还是继续。


这时技术上已无大碍,就差实施了。如何从容而又隐蔽地操作呢?

为了不暴露没电脑还插着根网线那么荒唐,于是尽量沿着有遮挡的柜子布线,从衣柜后一直拖到床铺。剩下的水平部分就埋在床边的缝隙里,并用席子盖着。

整个布局不凑近仔细看,根本发现不了~

当晚熄灯后,夜猫子们又开始蠢蠢欲动了,我也迫不及待地开始试验。和其他几个同学一样,假装在玩手机,实际已开始悄悄地接线,颇有地下情报员的感觉。

当搭上最后一股时,流畅的游戏声立即出现了卡顿。毕竟整栋楼都在这个 LAN 里,广播包的数量是相当多的。

只听得游戏剩背景音乐,却没有音效了!

想着 100Mbps 的流量从手中捏着的网线穿过,仿佛看见密密麻麻的 ARP、NetBIOS 在黑暗中闪过 —— 还有那少得可怜的、被挤掉的游戏数据包。

下午的骚动又一次爆发了。尽管熄灯后少得多,但在夜晚的环境里,显然越发清晰。

被断开的大多不甘心,还想继续玩。这一次,不打算这么暴力了,万一触发了回路检测,说不定整楼就被封了。

于是,改成搭上几秒,断开。再搭上、断开。。。游戏虽能运行,但不断陷于卡顿之中。没多久,传来一阵阵温馨的关机声,纷纷洗洗睡了。

首战告捷!终于睡了个好觉。


改良 v1

刚开始的几天里,效果非常理想,大家都乖乖的提前睡觉了。

不过没多久他们就发现,网络过会就会恢复的。原因很简单,哥睡着前就把线放开了,于是他们又开始了疯狂。

在迷迷糊糊睡梦中,要把网线重新搭上会困难得多。经常把不相干的也缠在了一起,结果就没效果了。

于是,需要一次用户体验上的改进。

事实上,其中三股线都是事先粘好的,实际就控制一股而已。不如把那三股都提前隐藏起来,只留一股在身旁,这样就不会搭错了。

换了根网线重新制作。这次,直接把其中 3 股用胶布粘好,藏在衣柜后面,只留一股拖上来。线路也细了不少。

这样,就和电路开关一样了。总共就两根线,碰上或分开就行。

即使在睡梦中,也只需动动手指,就能轻松自如地集体断网了!


改良 v2

不过这么简陋的设备,总会有操作失误的时候。

在一个周末的半夜,被通宵的吵醒后,狠狠地搭上了网线,然后继续睡。没想到这一次太困,直接沉睡了过去。直到早上 10 点多,才被一阵急促的敲门声惊醒。

原以为是隔壁同学故意骚扰,但一直持续不断,只好无奈起床开门。打开后,发现进来一个背着工具包的大叔。这时,才猛然意识到,搭着的网线忘了断开了!!!整整断了一晚,都查上门来了!

这时也来不及收拾了,心想这回终于要露馅了。不过那师傅一眼扫去,发现我们桌子上都是干干净净的,啥也没有。唯独敞着个笔记本,而且还没关机。于是上前拔掉了网线,然后走了。

侥幸躲过了这一劫,迫切需要改进了。

如果能睡前开启,睡着后自动关闭,那就十分理想了。再也不用睡梦中用意念去断开了。

于是打算做一个有弹性的开关,必须按着才会开启,松开就关闭。这样睡着后身体放松就自动断开了。

经过一番改进,把开关做得无比隐蔽:把两根线塞到一个袜子中,里面塞了棉布等等有弹性的东西。正常情况线路是分开的,但轻轻往下压就会搭住,放开后又恢复正常。

不过袜子捏手里也怪怪的,于是就藏到脚后头。至此,每当夜晚吵闹时,只要脚趾头稍稍踮一下,周围的气氛就立即变得格外安静。

到此,总共花了两块钱打造的装备,能让脚趾来控制上千人的网络状态,简直太有成就感了:)

没多久,大家似乎发现了规律,只要声音太响网就会卡,但无奈又找不到原因。于是都变得乖乖的安静上网了。


当然,这装置只投入使用了半年。第二个学期大家都装了电脑,于是一起愉快地通宵上网了。

文章目录
  1. 1. 改良 v1
  2. 2. 改良 v2