前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个字节的网络漫游故事独白

一个字节的网络漫游故事独白

作者头像
用户1260737
发布2019-10-14 14:41:47
3780
发布2019-10-14 14:41:47
举报
文章被收录于专栏:趣谈编程趣谈编程趣谈编程

来源:码农桃花源

作者:饶全成

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

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

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

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

诞生

我的主人是一个在西二旗知名互联网公司上班的程序猿,过着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会被拆解成三部分: httpswww.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.

涛声依旧注: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地址查找到它的下一站的IP地址。他看了一下车头上的IP地址,又看了一下表,很快就查到到下一站(路由器)的IP地址。

然后他借助一个叫ARP的东西查找出了下一站路由器的真实地址(物理地址),这个物理地址还和IP地址不同,IP地址是为了方便在网络层进行统一地进行通信而抽象出来得一个地址,而物理地址是真正的硬件地址(硬件的一个编号)。

拿到这个物理地址,列车长就知道该往哪开了,很快列车就到了下一个站,就这样,每到一个地方,列车长就拿出这个站的路由表,查看下一个站的IP地址。

最后我们顺利抵达到终点: 118.89.204.192.

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

3新生

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

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

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

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

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

4

归家

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

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

5

定格

Chrome老大哥终于等来了这些字节兄弟,在他们排好队后,老大哥看清了字节兄弟们代表的内容:话题 如何在西二旗地铁优雅地装逼,热度10w, 广告 上午植发,下午上班……

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

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

6

后记

第一次尝试这种题材的文章,供大家一乐!有写得不到位的地方,欢迎探讨!

另外,推荐大家去看《网络是怎样连接的》这本书,看完可以形成对网络的整体印象,写得非常好!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣谈编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 归家
  • 定格
  • 后记
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档