Your First Internet Mission: Sending a Secret Dinosaur Drawing to Your Best Friend
你指尖的“发送”按钮刚按下去,那架印着彩虹的小纸飞机图标就在屏幕左上角滴溜溜转了起来——1圈,2圈,还没到第3圈,绿色的小对勾就“啪”地跳了出来,紧接着Mia的消息像小炮弹一样蹦出来:“OMG这霸王龙也太帅了!尖刺上的亮片我都要用放大镜看!我要设成壁纸!!” 你是Lila,8岁,住在俄亥俄州的小红房子里,上个月你最好的朋友Mia因为爸爸的工作搬去了500英里外的科罗拉多州。你们以前每天放学都凑在你家后院画画,你画霸王龙踩坏花盆,她画三角龙啃仙人掌,现在隔得这么远,你昨天花了整整3个小时画的新霸王龙——头顶还有一只偷偷停着的小蝴蝶,尾巴尖特意涂了你最爱的镭射亮片——居然只用了1.8秒就飞到了Mia手里。 你是不是觉得超级神奇?500英里啊,你坐爸爸的车去科罗拉多要开7个小时,霸王龙居然比爸爸的车还快?其实这不是魔法,是互联网在帮你跑腿。你可以把互联网当成一个全世界最大的超级快递邮政系统,你平时在网上发 memes、看猫视频、和表姐视频通话、玩在线小游戏,本质上都是这个邮政系统在帮你送 tiny tiny 的小数据包裹,我们叫它们数据包(Packets)。 ::: tip 纸书插图提示 页边插图:你的霸王龙被剪成了12个小方块,每个方块上都画着数字邮递员的小卡车,写着编号和地址,其中一个方块上还偷偷画了小蝴蝶,旁边配字:“我的秘密小尾巴,只有Mia能看见!” :::
数据包是什么?就是把你的画剪成小拼图
你寄过手绘的明信片给爷爷奶奶吗?你不会把整个画架都寄过去吧?只会把画好的明信片折好,塞进信封,写清楚地址,贴好邮票,交给邮递员就行。互联网送东西的逻辑一模一样,只不过它送的“信”是你画的画、说的话、甚至你唱歌的声音,而且它会把所有要送的东西都剪成特别小的小碎片,每个碎片就是一个数据包。 你画的这张霸王龙有10MB大——哦对,10MB是什么意思?就是你平板里能存大概2000张你在公园拍的蒲公英照片,你的霸王龙就是其中一张的大小,不算大也不算小。互联网不会把整张10MB的图一次性扔到500英里外,而是会把它剪成120个小小的数据包,每个数据包只有不到100KB大,比你写的一句“我想你”还要小,每个数据包都会装进一个“数字信封”,上面清清楚楚写着4件事: 1. 发件人地址:Lila的平板,数字门牌号是192.168.1.105 2. 收件人地址:Mia的平板,数字门牌号是192.168.3.22 3. 包裹编号:我是第7块,总共有120块 4. 内容说明:第7块是霸王龙尾巴尖的镭射亮片像素 而且每个数据包上还会偷偷多写一句你加的小备注:“别告诉妈妈我画了霸王龙踩坏她的花盆!”——对,你要发的话、加的emoji,甚至你打错的错别字,都会跟着数据包一起走,所以Mia不仅收到了你的画,还收到了你上次不小心打错的“秘蜜”,笑得在沙发上打滚,说你是不是想给霸王龙加蜂蜜。 ::: tip 电子版交互 点击数据包图标可以查看完整的数据包结构,还能看到你打错的“秘蜜”是怎么跟着数据包一起飞到Mia的平板上的哦! :::
数据包怎么跑500英里?靠的是百万个数字邮递员
120个装着霸王龙碎片的数字信封从你的平板出发,不会直接“嗖”地一下飞到科罗拉多,而是会像接力跑一样,一站一站地往前传,每一站的负责送信的“邮递员”都叫路由器,它不需要知道从你家到Mia家要经过哪些城市、哪些高速公路,只需要知道下一站该把信送到哪就行。 我们来跟着第7块数据包跑一次全程吧: 1. 第一站:你家的WiFi路由器:你点发送之后,第一个收到数据包的就是你家的WiFi小盒子,它就是第一个数字邮递员,看了一眼信封上的地址,知道要送到小区的电信总局,就把数据包交给了下一个邮递员。 2. 第二站:小区电信节点:这个小邮递员在小区地下室的小机房里,它一看地址是科罗拉多的,就把数据包扔进了州际光纤高速公路——这是埋在地下和架在电线杆上的玻璃丝,光在里面跑的速度是每秒30万公里,比飞机快1000倍,绕地球赤道一圈只要0.13秒,数据包在玻璃丝里“嗖”地一下就跑得没影了。 3. 第三站:州际光纤干线:这个阶段的邮递员是超级大块头,负责把数据包从俄亥俄州送到科罗拉多州,它会选最快的路走:有的数据包走北边的光纤,有的走南边的,哪个路不堵走哪个,完全不用挤在一起。 4. 第四站:科罗拉多电信节点:数据包跑到科罗拉多之后,这里的邮递员看了一眼地址,知道是送到Mia家的小区,就把数据包转交给了小区里的WiFi邮递员。 5. 第五站:Mia家的WiFi路由器:最后一个邮递员把数据包送到了Mia的平板上,Mia的平板收到第7块之后,会发个“我收到啦”的回执给TCP队长(哦对,TCP就是那个超级负责的邮递员队长,我们后面会详细讲),队长收到回执就知道这块安全到达了,继续等剩下的119块。 等120块数据包全部到齐之后,Mia的平板就会像拼拼图一样,按照编号把120个小碎片拼回原来的霸王龙,你看到的Mia发过来的“超帅!”的消息,就是这么来的。 ```mermaid graph LR A[Lila的平板<br>(120个霸王龙数据包)] -->|第1站| B[家里WiFi路由器<br>(小区邮递员)] B -->|第2站| C[小区电信节点<br>(城市邮递员)] C -->|第3站| D[州际光纤干线<br>(超级高速邮递员)] D -->|第4站| E[科罗拉多电信节点<br>(州级邮递员)] E -->|第5站| F[Mia家WiFi路由器<br>(小区邮递员)] F -->|第6站| G[Mia的平板<br>(拼好完整霸王龙!)] class A,B,C,D,E,F,G fill:#f9f,stroke:#333,stroke-width:2px ``` ::: tip 纸书插图提示 跨页大图:沿着上面的流程图画一条从俄亥俄到科罗拉多的路线,每个节点上都画着可爱的数字邮递员,数据包小方块沿着路线飞,其中一个方块上画着小蝴蝶,旁边配字:“我的秘密小尾巴,不会在半路丢的!” :::
为什么要把画剪成小碎片?3个理由让你秒懂
你可能会问:干嘛这么麻烦?直接把整张霸王龙一次性发过去不行吗?当然可以,但剪成小碎片有3个超厉害的好处,小朋友一下就能懂:
1. 不怕丢,丢了一块补一块就行
想象你要把100块乐高从一个房间送到另一个房间,你要是把100块乐高全塞在一个大盒子里,抱着盒子跑的时候不小心摔了,所有乐高都散在地上,你得一个个捡,还得确认有没有丢,超级麻烦。但你要是把100块乐高分成10个小盒子,每个装10块,就算一个盒子摔了,也只有10块丢了,你只要重新发那个小盒子就行,不用把所有乐高都再送一遍。 数据包也是一样:如果整张霸王龙在半路丢了,你得重新发10MB的数据,超级费时间;但如果只是第7块丢了,TCP队长只要让邮递员重新发第7块就行,几毫秒就搞定了,根本不影响你收到完整的画。
2. 可以同时跑,更快
你上学的时候,要是让你一个人把全班的作业本送到老师的办公室,你得跑好多趟;但要是你把作业本分给10个同学,每个人送10本,同时跑,1趟就送完了,是不是快10倍? 数据包也是一样:120个数据包可以同时走不同的路,有的走北边的光纤,有的走南边的,有的甚至走海底的光缆(哦对,跨洋的数据包是走埋在海底的玻璃丝,比卫星快10倍,全世界有超过400条海底光缆,总长度能绕地球25圈呢!),不用挤在同一条路上,肯定比整张图一次跑快多了。
3. 不怕堵,灵活绕路
上次你给Mia发你跳街舞的15秒小视频,转圈圈转了10秒才发出去,你问爸爸为什么,爸爸说那天是晚饭时间,全小区的人都在刷网飞、打游戏,光纤高速公路上挤满了数据包,你的霸王龙碎片就排在后面等了一会儿,这就是网络拥堵,就像下班的高峰期,路上车太多,跑不快。 但如果你的数据包是小的,就可以灵活绕路:这条光纤堵了,就走那条,不用像整张大图一样,堵在路上只能等着。要是你发的是整张10MB的图,堵一次可能要等1分钟,但小数据包只要等几秒就能绕路跑掉。 ::: tip 小知识 互联网每秒要发送超过3000亿个数据包,加起来的总重量比全世界一年生产的纸张还重,但它们跑得超级快,跨半个地球只要0.1秒! :::
为什么有时候会卡?因为邮递员也会累
当然,互联网邮政系统也不是永远 perfect 的,你肯定遇到过这些情况:
- 你在地铁里刷视频,突然变成PPT,一卡一卡的:因为地铁里的WiFi信号不好,数据包在半路丢了好多,TCP队长一直在让邮递员补发,所以视频就卡了。
- 你给Mia发高清的圣诞合照,转圈圈转了1分钟才发出去:因为那张合照有50MB大,要剪成600个数据包,那天刚好是圣诞前夜,全美国的人都在发照片,光纤高速公路堵得水泄不通,你的数据包只能排队慢慢走。
- 你和Mia视频通话,她说话你过了2秒才听到:因为你们的视频数据包走了海底光缆,虽然很快,但光在玻璃丝里跑还是需要一点时间的,而且如果中间有节点堵了一下,就会延迟,就像你和朋友打电话,如果信号不好,也会有一秒的延迟。
不过不用担心,TCP队长超级负责,只要有一个数据包没送到,它就会让邮递员重新发,直到所有包都到齐了才会拼起来给你,所以你收到的画永远不会少一块,视频永远不会缺一帧,最多就是慢一点