一个字节的奇幻之旅

大家好,给大家介绍一下,我是一个字节。相比于你们人类据说即将达到的百岁人生的寿命,我的一生简直不直一提(我只能存活零点几个毫秒)。

也许只有那些码农才会了解我,而且也只有一部分码农。那些整天做业务的猿们想来也不会真正的了解我,更别提人类其他行业的人了。

我不甘心,虽然我微不足道,但是我对人类的贡献实在是太大了。没有我的世界根本无法想像:不能开微信,不能刷微博,不能听网易云音乐,不能刷抖音,不能上天猫,所有和网络相关的活动都无法进行。

所以,今天我要讲讲我的一生,让更多的人知道我的存在,知道我的故事,也为证明自己曾经存在过吧。

1、诞生

我的主人是一个在西二旗知名互联网公司上班的程序猿,过着 1095(注:早 10 点晚 9 点,一周 5 天工作)的生活,很少能在晚霞中回家,自然也说不出 “落霞与孤鹜齐飞” 那样的句子。

这一天,他 9 点半到家,第一件事打开电脑,熟练地启动 chrome 浏览器,在地址栏敲下一个 z 字符,我所有的故事就从这里开始。

当主人按下键盘上的 z 键时,系统了产生一个中断信号,通知 CPU 过来读取键盘输入,CPU 读取到 z 后,将 z 发送给 chrome 浏览器, chrome 收到后,将 z 显示到浏览器的地址栏上,同时后台搜索主人平时访问过的地址,排名第一的 https://www.zhihu.com 被快速补全了。

这时主人熟练地按下了回车键,chrome 收到指令后,进行了一顿操作,在这电光火石之间,我诞生了,同时诞生的还有我的字节兄弟们。

2、上路

话说 Chorme 老大哥接收到了 URL 后,首先拆解成自己能看懂的东西。 https://www.zhihu.com 会被拆解成三部分: https、 www.zhihu.com、 /。

https 表示协议类型,通过这个 Chorme 老大哥知道他接下来该如何与远方的网站服务器通信; www.zhihu.com 表示主机名,就是 Chorme 老大哥要通信的对象了;第三部分则是它要向服务器要的内容(注:这里表明是空,实际上隐含的表示主目录文件的概念)。

有了这三项, Chorme 老大哥就能从服务器那里获取它想要的内容了,从而展示给我的主人。

Chorme 老大哥跑到 HTTP 数据包生产车间,哼哧哼哧地倒腾半天,生产出了一个 HTTP 数据包(注:忽略 https, 简单起见当成 http),这个数据包实际上就是我和我的一群字节兄弟们,我们挤在一个集装箱内,熙熙攘攘。

我们马上就要搭乘 IP 列车到远方的服务器,见识外面的世界了。集装箱被装上了 TCP 专车,它将带我们来到列车站。 TCP 专车很安全也很舒适,我从集装箱的缝隙中看到车前贴上了车牌: 80.

到了车站, TCP 专车直接开到了列车上。这样也好, IP 列车上很脏,我们坐在专车上更好。 只是列车还不知道具体要去哪,所以我们就只能先在列车上等着了。

不对啊,列车应该去 www.zhihu.com 这个网站,不是已经知道了吗?对的,但是 IP 列车挺笨的,也挺古板的,不认识这些字母。它只认识数字,人类称之为 ip.

Chorme 老大哥也有点抱怨,人类真是笨,连个 ip 都记不住,非得用域名来上网。害我还得拿着这个域名去问 DNS 老大爷,它知道所有域名对应的 ip.

这不, Chorme 老大哥又跑到另外一个车间—— DNS 数据包生产车间里倒腾出了一个 DNS 数据包,当然还是一群字节兄弟们,不过这里的兄弟就少一些了。它们在集装箱里叽叽喳喳,被装上了 UDP 敞篷车,车虽然很快,但不太安全,我这些兄弟们坐在上面,提心吊胆,生怕掉下去,因为掉下去,就永远消失了。

UDP 敞篷车也直接开到了 IP 列车上,车前贴了车牌:53.

这回 Chrome 老大哥直接从 操作系统大佬那要到了 DNS 老大爷的 ip, 贴到了 IP 列车的车头, IP 列车马上全速启动,载着我这些字节兄弟,赶到了 DNS 老大爷的城堡, UDP 敞篷车开下列车,按照车牌号 53 找到了 DNS 老大爷的住处。从它那拿到了 www.zhihu.com 对应的 ip.

DNS 老大爷学问渊博,他也很仗义,从自己城堡里的 DNS 数据包生产车间造出了 DNS 响应包,包里也是我这些字节兄弟们,它们拿着重要的资料数据—— www.zhihu.com 对应的 ip, 坐上了另一趟返程的 IP 列车,而列车的终点就是我现在所在的地方。当然了,他们是由另一辆 UDP 敞篷车载着他们回来的。

Chorme 老大哥在车间接见了这些兄弟,非常感动。因为他们带回了 www.zhihu.com 对应的 ip. 那些兄弟争先恐后的报告自己知道的东西,有些兄弟报告 1, 有些兄弟报告 0, Chorme 老大哥非常有经验,它把这些消息合并起来了,最终得到了它想要的 ip: 118.89.204.192.

Chorme 老大哥拿着这个 ip 来到了我所在的列车前面,我激动地要叫起来了:终于我要出发了!它熟练地把 118.89.204.192 贴到了列车的前面,马上列车就开动了,我上路了。

IP 列车的列车长在掌管着车头的方向,决定着我们的命运走向。路网非常复杂,而车头上只有一个 ip 地址,根本没告诉列车长应该走哪条路。这不难,富有经验的列车长根据车头的 ip 地址查到了下一个大站(路由器)的地址,之后再根据这个大站地址查到(ARP 协议)途经的下一个小站(交换机或集线器)应该走的轨道。在每个小站,对照这个大站地址,列车长就知道该走哪条路。搞定!

经过了很多的小站,我们终于到了下一个大站了。站点的工作人员看着我们车头前的 ip 地址,查了下表(路由表)告诉我们下一个大站的地址,并且告诉我们途径的下一个小站应该走哪条轨道。列车长就这样,一路拿这张表,顺利地把我们带到了终点: 118.89.204.192.

不过,刚刚就在到终点的前一刻,列车被拦住了,一群荷枪实弹的警卫冲上来了,一些胆小的字节兄弟们都哭了,我也是屏气凝声。他们先是查看了车头的 ip 地址,再查看了列车长手里的表,还看了下我们的 TCP 专车的车牌。很快就放行了,虚惊一场!

3、新生

到了终点站后,列车首先停下接受工作人员的检查。列车长出示了他手里的表,对了一下表上标注的下一站地址确实是:知乎。接着又看了下列车头部标注的 ip 地址,就算检查通过了,第一关很轻松。

接下来,我们坐的 TCP 专车开下列车了。进了一个 TCP 车牌检查站,工作人员看了下车牌号 80, 也挥手示意我们通过。

接着我们都下车走进了 主页车间,进去后,我们先按我们身上的标号排好了位置,工作人员将我们每个人所代表的信息进行了聚拢。得到了各种关于主人的信息,比如他所用的浏览器的版本,cookie 等等信息,我知道,我们的使命完成了。果然,一道光闪过,我们都消失了,完成了我们光荣的一生。

主页车间领导马上下达生产命令:1 组去仓库拉取最新话题,2 组去商业中心获取今天的广告主信息……

很快,各组都完成了任务,车间在一阵轰鸣过后,新的一批字节兄弟诞生了,他们带着这些话题、广告信息,和我们当年出生的时候一样,熙熙攘攘。但是我知道,我获得了新生。

4、归家

像我们当年一样,这些新出生的字节兄弟依次坐上了 TCP 专车, IP 列车一路跋涉,去往我出发的地方,那是我梦开始的地方。

我所经历的,他们未曾少过一分。

5、定格

Chrome 老大哥终于等来了这些字节兄弟,在他们排好队后,老大哥看清了字节兄弟们代表的内容:话题2020魔幻剧连载,川建国变形记,切尔诺贝利再现危机,全球化面临的挑战,植发广告……

这些是 Chrome 老大哥最擅长的事情,分分钟将他们显示在了网页上。字节兄弟们终于完成了使命,定格在了 retina 屏幕上。

我的主人点开第一话题后,看了一会儿。然后瞅到了植发广告,他偷偷地开启了隐身模式,仔细地研究了起来……

请我喝杯咖啡吧~

支付宝
微信