什么是网络?计算机网络?
一、计算机网络是什么?
网络是一组彼此连接并能够相互发送数据的主机。
网络很像一个人类社会的圈子,一群互相认识、定期交换信息并共同协调活动的人。
在网络中最最重要的两部分是:
- 节点(Nodes),也就是主机,比如常见的电脑、手机、智能设备、路由器等
- 连接(Links),可以理解为网线、无线网 WIFI、光纤等
网络有大、有小,小到一个家庭里的网络,比如家庭网络拓扑图:

更大一些的网络,比如学校的校园网:

更大的网络,比如一个城市的网络。
二、计算机网络如何运作?
2.1 网络的构成
前面我们说网络最核心两部分是: 节点和连接。
节点一般是计算机硬件设备,连接一般是指物理传输媒介,比如网线、光纤、无线 WIFI 等。
计算机(节点)通过线缆、无线电波以及其他类型的网络基础设施相互连接,形成网络。
在这里,节点需要进一步分为端节点和中间路由节点,端节点就是我们日常使用的电脑、手机等网络最边缘设备。
中间路由节点也叫分组交换机(packetswitch),比较常见的分组交换机包括:路由器(router)和集线器(hub)等链路层交换机(link-layer switch),它们的作用是起到中继、转发、路由数据包的作用。
节点和连接是描述网络的物理构成。
在无数的节点和网线之间,最核心**“软件”便是 数据包和协议**,它们共同约束了在主机和线缆之间传输的数据格式,以及如何传输。
经由网络传输的所有数据都会被转化为光或电脉冲(也被称为 “位”),随后被接收计算机进行解读。
线缆和无线电波以光速来传输这些位。一次能够跨越这些线缆的位数越多,互联网的运行速度也就越快。
2.2 数据包
在计算机网络中,当一台计算机要向另一台计算机传输数据时,发送方主机会将数据进行分段,并为每段添加头部信息,由此形成的数据包在术语中被称为 “分组(packet)”。
数据包是较大消息的一个组成部分,每个数据包都由数据和与之相关的控制信息组成。
其中,控制信息被称为 “标头”(header),它位于数据包的起始位置,使接收方主机能够明确如何处理该数据包;而其余部分则是数据本身,即 “负载(payload)”。
当数据经由互联网发送时,会首先被分解为较小的数据包,然后再转换为位。
这些数据包会通过各种网络设备(如路由器和交换机)被路由至目的地。
当数据包抵达目的地后,接收设备会按顺序将它们重新组合,并提取出其中传递的数据部分,随后计算机便可对数据进行使用或显示。
数据包是通过名为 “分组交换” 的技术在互联网上传输的。
中间的路由器和交换机能够各自独立地处理数据包,而无需考虑它们的来源或目的地。
这是一种特意的设计,因为如果没有数据包交换,一次在计算机之间发送数据时,两台计算机之间的连接可能会在数分钟内占用多条线缆以及多台路由器和交换机。
2.3 分组交换
我们平常浏览网页、刷视频,需要传输大量的网络数据包,这些数据包会被分割为一个个更小的数据包,叫做分组或者报文。
计算机会在每一个报文的头部,加上发送数据的源主机和接收数据的目的主机的地址信息(IP 地址、端口号等),这些加起来就好比是快递包裹上的贴的单子,我们把它叫做 “报文首部”。
这些头部信息会在网络链路中被路由器、交换机等识别,然后不断的向目的地转发,就像快递公司根据包裹上的单子分发包裹一样。
假如有一个很大的数据,就好比是一个大包裹,我们要把它分成好几个小包裹(分组)来运输。
为了知道这些小包裹分别是大包裹的哪个部分,我们就在每个小包裹上写上序号。等收到这些小包裹的时候,接收的一方就按照序号把小包裹重新组合起来,还原成原来的大包裹(原始数据)。

报文在网络中传输:

而协议就是规定了这个 “报文首部” 应该写上哪些内容,还有收到这些内容后要怎么处理。
以及每台参与通信的计算机都要知道怎么去写这个 “单子”(构建报文首部),也要知道怎么去看这个 “单子”(读取首部内容)。
为了保证发送方和接收方能够顺利地交流信息,双方对于这个 “单子”(报文首部)和包裹里的东西(内容)的理解和处理方式必须是一样的。
2.4 什么是协议?
那么什么是协议? 简单来说就是事先约定的一些规则。
而**网络协议(network protocol)**定义了在两个或多个主机之间交换的数据包的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作,比如 TCP/IP、HTTP、FTP 等协议。
就像人类社会中,我们都需要说同一套语言,并且按照约定俗成的一些沟通方式,互相之间才能舒畅沟通。
如果没有这些协议,就可能会出现混乱和误解、鸡同鸭讲。
在网络通信中如果没有明确的协议,数据包的传输就会变得杂乱无章,无法实现有效的数据交换。

在 OSI 模型的每一层都定义了不同的网络协议:

比如,TCP负责提供可靠的数据传输服务,确保数据能够准确无误地到达目的地;
**IP(网际协议)**则负责在网络中对数据包进行寻址和路由;
UDP提供了一种无连接的、快速的数据传输方式;
**ARP(网络地址解析协议)**用于将网络层的 IP 地址转换为数据链路层的 MAC 地址;
**DHCP(动态主机配置协议)**负责为网络中的设备动态分配 IP 地址等网络参数;
**FTP(文件传输协议)**则主要用于在网络上进行文件的传输。
在端节点、分组交换机和其它网络设备都要运行一系列协议(protocol),这些协议控制了网络中数据包的接收和发送。
TCP 和IP协议,是网络中两个最为重要的协议。
值得一提的是,全世界的网络协议能够达成统一,这确实是一件非常了不起的事情。正是因为有了这种统一,才极大地降低了全球互联互通的成本,使得信息能够在全球范围内快速、高效地传递。
而与之形成鲜明对比的是,全球的火车轨道却有着不同的标准,存在宽距和窄距之分。就像中国的火车无法直接开到俄罗斯去,必须在交界处停留下来更换车轮。这种差异在一定程度上增加了交通运输的成本和复杂性。
想象一下,如果网络协议各不相同的话,在中美海底光缆之间还需要有一个网络协议转换器,将各自的数据包拆包、重新按对方的协议组装。。。。。
三、什么是互联网?
3.1 互联网和英特网
当众多大小不一的局域网彼此相互连接,形成规模宏大且连绵不断的相互连接的网络时,互联网便应运而生了。
可以说互联网就是网络的网络。
而在全世界范围内,最大的互联网被称为 “因特网”,我们平时所说的互联网通常也特指这个全球互联的网络,如下图:

小知识: 英特网(Internet)最早起源于美国国防部的 ARPAnet 网络。Internet 最早来源于美国国防部高级研究计划局建立的一个名为 ARPANet 的计算机网络,ARPANet 的一项非常重要的成果就是网际协议(IP)和传输控制协议(TCP)这两个协议。
由于在单个网络内部,主机彼此相互连接,而且这些网络彼此之间也相互连通,所以借助互联网,一台计算机始终能够寻找到一条路径来与远在大洋彼岸网络中的另一台主机进行通信。
跨洋网络通信一般是走固定的一些海底光缆,比如中美之间的主要海底光缆分布下如图:

(PS: 全球海缆分布可以在 https://www.submarinecablemap.com/ 查看。
3.2 分布式互联网
互联网除了互联,还有一个最大的特点便是不存在控制中心,它天然是分布式的系统,不依赖任何单一计算机。
只要能以正确方式发送和接收数据的计算机或硬件,都可自由加入成为其一部分,这太像人类社会了,只要会语言、沟通,你都可以融入一个个小圈子,从而融入整个人类社会。
互联网的这种分布式特点使其具有弹性,计算机、服务器等网络硬件可随时连入或断开,不会影响互联网的核心功能;而计算机缺少组件可能无法运行。
更多关于互联网的定义可以浏览维基百科: 互联网