另一个现实世界,网路是如何运作的?

前言

在这个系列中我所想要写的,是把一般人会接触到的资讯产品,背後讯息沟通的原理用比较简单(或许吧)的方式呈现出来。

刚开始会把整个网路的架构梳理一遍、介绍常见的通讯设备如路由器和交换器等等,再来才回涉及到一些比较技术的细节,像是网路协定、封包的组成等等。同时也会挑一些我觉得许多人会好奇的网路相关问题,例如不能上网的原因、密码的安全性及如何保存等等。

好吧,让我来轻松聊聊和网路通讯相关的有趣(希望是)知识。

网路中的讯息传递

你有没有想过,当你拿出手机准备打开 Instagram 看看朋友的即时动态时,这些琳琅满目的资讯是要如何跑进手机里的呢?

可以先试着想像一下,如果在一个没有网路的世界中想了解朋友的近况,一家古老的 Instagram 会怎麽经营?

或许,这间古老的公司会招募许许多多的邮差,骑着马到他们的客户家中守着。

有一天,客户小明认养了一只吉娃娃,兴奋的画下他们之间的互动,写了几句感想在纸上。接着邮差便把这幅画和纸张装在包裹中,骑着马回到公司。

小美想关心一下小明的近况,於是找了邮差帮忙。邮差也骑着马回到公司,请同事迅速临摹了一份小明的吉娃娃绘画,抄了小明的感想,装在包裹中交给邮差带回给小美。小美看了後痴痴的笑,比了个爱心给邮差。

其实,网际网路也是如此运作的,只是速度快的多,把几天几夜的行程缩短到秒的等级、邮差变成电讯号、包裹变成网路封包。这家公司,也变成网路中的一个节点。

动态发布与查看路径
*动态发布与查看路径

为什麽网路要被叫做网路?

从小明到小美家要经过大小巷弄,穿过条条大路,到达目的地的方法可以有百百种,就像是一张网,每个路口是一个节点,两个节点间由一条路来连接。

网路也如同现实世界一般,差别在於节点是一台台路由器(Router),两个节点间则由一条网路线来连接。而现实中的邮差走到路口(节点),会看地图或凭记忆选择往哪条路走;但网路中的路由器(节点),则会解析封包的目的地为何,帮封包选择路径,往下一个节点丢。

由於这些节点和路径交织在一起构成网状的结构,网路(Computer network)这个名称也就这样出现了。

许多节点和路互相交织,但节点(路由器)会帮我们的资料选择一条路径(红色的路径)
*许多节点和路互相交织,但节点(路由器)会帮我们的资料选择一条路径(红色的路径)

什麽又是网际网路 Internet?

要谈到 Internet 的定义,我们需要先了解通讯协定 (Protocol)。

就像是秦始皇所推行的「车同轨,书同文」政策,让不同地区的人不会因为跨地区,而让车子就无法使用、文字就看不懂了。通讯协定做的也是一样的事,业内的人讨论出一套统一的协定,让不同人做的设备能够基於这套通讯协定互相沟通,不至於无法相容。

而网际网路 Internet,就是基於一套叫做 TCP/IP 的协定所组成的网路,只要你的设备开发时采用的是 TCP/IP 这个协定,连接上网路中的任一节点,那麽恭喜你,你的设备就登上 Internet 了!

参考资料

  1. Wiki - 网际网路

<<:  2D transform Continued

>>:  Day10 Lab说明

WebPack安装与打包教学

Webpack安装说明 以前传统开发,我们会用到许多大大小小的Js/Css/img,通常是各自存放在...

Excelize 释出 2.6.0 版本,功能强大的 Excel 档案基础库

Excelize 是 Go 语言编写的用於操作 Office Excel 档案基础库,基於 ECM...

[备忘录] 我的DVD备份SOP

家里有很多以前买的DVD电影 居住环境比较潮湿,光碟的表面竟然有一些发霉。 於是开始着手测试了一些拷...

【第十四天 - Flutter 官方 CodeLab Get-To-Know 活动报名教学(上)】

前言 今日的程序码 => GITHUB 我很喜欢这篇 CodeLab,我自己认为,如果这篇的内...

[Golang]恢复panic(recover、defer)-心智图总结

1. 如何让panic,包含一个值 在呼叫panic函数时,把某个值做为参数传给该函数就可以了。pa...