一、日常生活中的案例
案例
1
:因为工作关系,经常要坐飞机往返于京沪两地。我在飞机上喜欢听听音乐,看看航空公司的杂志。每家航空公司都会在杂志最后几页,详细介绍自己的航线网络,航空公司用“航线网路”把世界各地的城市连接在了一起。
一张海南航空航线网络图
案例
2
:我的夫人在电信运营商
“中国联通”工作,设计最新的“
5G
”网络商用方案。手机终端、固话、无线基站、骨干光纤网络节点、核心交换枢纽等等,都是需要考虑的事情。“
5G
”网络建成使用后,用户将能享受到更高品质的语音通话、视频通话、无线宽带上网服务。电信运营商用复杂的“电信网路”将世界各地的人们连接在了一起。
案例
3
:我们有一个开源项目
quantos
,已经有了数千的注册用户。为了方便为用户服务,我们建了两个微信群。用户有问题只要在群里反馈,我们的工程师就会第一时间去解答。对于比较复杂的问题,很多用户还会选择与我加个好友,一对一私聊。在微信上,我不但可以为
quantos
用户提供服务,还可以每天与我的家人、朋友、同事聊天,在朋友圈分享我的文章。微信是腾讯公司的核心产品,通过软件和互联网之上的“社交网络”,为全球超过
10
亿人提供服务。
“航线网络”、“电信网络”、“社交网络”都是生活中的网络,这样的例子还有很多。在大学有一门专业的课程“计算机网络”,讲解在计算机的世界里,网络是如何构成的,都能做些什么,这也是本文需要讲述的重点内容,不过我们不讲理论,只谈应用场景。
二、如何理解网络
先思考一下,网络的核心要素有哪些?我自己总结,一共有三个核心要素:
(
1
)参与网络的节点
(
2
)节点之间的连接关系
(
3
)在相互连接的节点之间能够传递的信息或服务
-
在“航线网络”中,节点是各大城市,连接关系是航线是否开通,节点之间传递的是航空运输服务。
-
在“电信网络”中,节点是各类电信设备,连接关系是设备间的连通,节点见传递的是电信服务,包括打电话、看视频、发短信等等。
-
在微信“社交网络”中,节点是微信客户端和微信的中心服务器,连接关系除了客户端和服务器之间的连接外,还包括微信提供的好友、朋友圈等虚拟的连接。节点间传递的就是微信提供的聊天、语音、视频、朋友圈等等服务。
可以说,我们每个人都生活在各种各样的网络中,享受着网络给我们带来的便利,也承受着网络带来的影响和冲击。我们无法离开网络而独立生存。
网络如此重要,那谁拥有网络、如何构建和运营一个网络?
-
“航空网络”是由航空公司建设和运营的。航空公司通过扩大航线把更多的城市加入到网络中,为客户提供更好的航空运输服务。
-
“电信网络”是由电信公司建设和运营的。电信公司通过设备扩容、新建基站、赠送手机和流量套餐等各种手段,扩大网络容量和用户数量,提高市场影响力。
-
“社交网络”微信是由腾讯公司建设和运营的。腾讯通过各种手段引导用户注册、下载和使用微信进行聊天和工作,在微信平台上开发支付、公众号、小程序等社区生态,不断扩大影响力,已成为世界上最大的“社交网络”之一。
网络从来都不是孤立运行的,网络之间的互联互通和融合是重要的网络扩张手段。
三、互联网
互联网已经成为人们日常生活的重要组成部分。这个网络有一些不同寻常的特点:
互联网是在国际社会共同的努力下发展起来的,没有一个国家、公司或组织可以控制或者主导互联网的发展,协议和技术标准是互联网的发展逻辑和推动力。
1
、
OSI
网络模型和
TCP/IP
协议族
这应该是互联网最基础的协议,是互联网的基石。
这里面,不同的参与者可以关注不同的层次,如:
2
、基础应用协议
(
1
)万维网协议
HTTP
、
HTTPS
(
2
)文件传输协议
FTP
,
SFTP
(
3
)域名解析协议
DNS
(
4
)邮件传输协议
SMTP
、
POP3
(
5
)远程访问协议
Telnet
、
SSH
Socket
套接字是建立在
TCP/UDP
上的抽象层,方便用户进行网络操作。
3
、高级应用协议
在基础应用协议上,为了适用特殊的应用场景,又开发出了很多高级应用协议。如:实时视频传输协议
RTP/ RTCP
等
除了这些通信协议外,在互联网发展的过程中,一些核心的公司和组织还制定了许多的技术标准,如
HTML5
、
JavaScript
。这里面最重要的软件就是浏览器,
Chrome
、
IE
、
Firefox
是最主流的三大浏览器,在技术标准上,也存在大量不兼容的情况。移动互联网上,则存在终端技术标准之争,有苹果公司
ios
和
google
的
android
两大阵营。
网络结构
互联网是一个大集合,里面有无穷无尽的应用,但应用的拓扑结构却非常精炼。
1
、星形拓扑,即客户端服务器模式。如下图所示:
-
网站
WWW
服务,就是一种典型的星形结构。处在中心的是
Web
服务器,用户通过浏览器连接到中心服务器获取信息和服务。
-
FTP
服务,也是星形结构,中心是
FTP
服务器,四周是
FTP
客户端
-
类似的例子还有:视频点播、电子商务、社交媒体,都是一种星形网络结构
星形拓扑的优点是:简单清晰,客户端只和服务器通信,客户端之间不通信,信息集中存储。缺点是:这种结构需要保障中心服务器的绝对稳定性,所以需要采取负载均衡、集群热备、容灾转移等技术手段。星形拓扑对中心服务器的资源和网络都有很高的要求。
2
、网状拓扑,如下图所示:
在网状拓扑中,没有明显的中心节点,每个节点都可以与另外的节点有连接和数据传输。使用这种拓扑的最典型的应用是“
P2P
对等网络”。在
P2P
网络中
,
每个参与的节点既是服务器又是客户端
,
既是信息的提供者又是信息的消费者。
P2P
网络一般包括信息查询和信息服务两个阶段,通过查询可以获取到所需信息的位置,然后再通过点对点信息服务获取。有一些
P2P
网络有中央的信息检索节点,只负责保存信息的位置,供其他节点检索使用。现在纯粹的
P2P
网络已经不需要中央信息检索节点了。
“
P2P
”网络典型的应用包括:
-
BitTorrent
文件下载。
BitTorrent
协议是架构于
TCP/IP
协议之上的一个
P2P
文件传输协议,处于
TCP/IP
结构的应用层。
BitTorrent
对于大型的视频、影音文件的传输,大大提高了效率,节省了中央服务器的带宽。
-
比特币账本区块的传播。比特币使用
P2P
作为底层的账本区块链同步技术,每个节点可以向其他节点请求或广播最新的区块信息,是一个无任何中心节点的纯
P2P
网络。为了保证网络的运行,比特币网络维护了一些长期稳定运行的节点(大约
10000
个左右),比特币客户端一般也会维护一个稳定运行的客户端列表。新客户端首先会去连接这些稳定的客户端获取最新的区块信息,然后再扩散到其它客户端。
P2P
网络是比特币运行的基础。
四、网络控制
虽然网络的精神是自由、开发、平等。但在现实中,对网络的控制永远都存在。
1
、在微信平台上,腾讯拥有绝对的主导权,可以在微信中屏蔽“淘宝网”的链接,虽然这是那么的不方便。作为回报,在支付宝上你也打不开微信的红包。
在微信里输入“天猫”网址的效果
2
、各国政府都会对互联网进行一定程度的干预和控制。包括但不限于过滤不健康的内容、反政府的言论、不真实的谣言,限制某些节点的访问等。
3
、互联网巨头牢牢控制着访问入口,为了自己的商业目的,对用户获取的内容进行干预。案例就太多了,比如搜索引擎通过竞价排名对搜索结果进行修改,电商网站通过付费广告对商品推荐进行干预等等。
虽然如此,我们还是坚信,互联网的明天应该会更加包容和开放。
P2P
网络就是一种方向,比特币就是一个很好的案例。