文章目录
计算机网络概述
0. 学习目标
现代人已离不开计算机网络。计算机网络既是必修课,作为主要做Web应用软件的码农,更是要无时无刻和计算机网络打交道。学习/回顾计算机网络的基本原理,有助于我们获得一个更全面,更深入的视野。通过不断学习,逐渐形成更宏观,更细致的理解。
本文力求通过选择更易入门的教材,取其精华作笔记记录,从宏观的层面概述计算机网络的发展以及接下来我们要学习一些常见概念。
学习目标
- 了解计算机网络的由来
- 了解计算机网络的基本结构
- 了解因特网相关概念
总的来说,通过本文,我们的学习目标是:“计算机网络是怎么来的?”、“计算机网络长什么样?”、“日常接触最多的因特网都有哪些概念?”。
参考教程
- 《计算机网络》—— 谢希仁
- 哈工大Mooc——李全龙
注:本文出现的图片来源于参考教程,侵删
1. 计算机网络的发展
计算机网络是通信技术与计算机技术紧密结合的产物。计算机如今对全世界发展起的作用不用多说。但在正式开始学习计算机网络相关概念之前,我们先来了解一下计算机网络是如何发展而来的。
世界上很多高科技的诞生,一开始都是为军事服务的。因此在计算机网络发展的初始阶段,都和军事密不可分。而在计算机诞生并慢慢发展起来的年代,受历史事件影响,主导计算机发展的是美国,因此计算机网络的诞生于发展也源于美国并持续受深远影响。
如今,一些参考资料把计算机网络的发展分为四个阶段。
1.1 第一阶段——雏形
20世纪40年代,曼哈顿计划催生出世界上第一台通用电子计算机ENIAC。
20世纪50年代,美国和加拿大境内建立了一个半自动地面防空系统SAGE,是网络的雏形。
在这期间,范内瓦·布什(Vannevar Bush)发表了《As we may think》,指出数字化的到来以及搜索引擎的雏形。因此,范内瓦·布什被称为计算机网络的教父。
这个阶段的计算机技术与通信技术进行了初步的结合。
1.2 第二阶段——技术实现
20世纪六七十年代,冷战,为了应对古巴核弹危机,美国国防部高级研究计划署(ARPA)建立ARPANet。
刚开始ARPANet只有4个结点,分布在洛杉矶的加利福尼亚州大学洛杉矶分校、加州大学圣巴巴拉分校、斯坦福大学、犹他大学四所大学的4台大型计算机。后来逐步发展越来越多的节点。后来,逐步从单纯为军事服务演变成军民两用。
1.3 第三阶段——协议产生
随着计算机技术与通信技术的蓬勃发展,计算机越来越小,以至于可以被广泛用于个人的事件处理,信息分享的需求也逐步旺盛。
可是不同厂商生产的计算机产生的不同信源不一致,信息规格也不一致。若仅通过不同厂商制定的不同标准进行数据传输,不同厂商生产的机器数据传输兼容性也不一致。为了解决这些问题,需要指定一个大家都认可的规则来传输数据——
协议的需求应运而生。
ISO国际化标准组织经过十年的努力,建立了OSI开放式系统互联架构,确立了TCP/IP作为通用协议。TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
1.4 第四阶段——因特网
有了上面三个阶段的奠基,更大规模的网络逐步发展起来。
Internet 因特网 指的是当前全球最大的、开放的,由众多网络相互连接而成的特定计算机网络。
20世纪八十年代,NSF建立了国家科学基金网,实现了全美互联,并逐步实现了全球互联。
20世纪九十年代,因特网上的主机超过100广域网台。1993年开始,由美国政府资助的NSFNET逐渐被若干个商用因特网主干网替代,因特网也开始由各种ISP(Internet Service Provider)运营。
ISP 可以从因特网管理机构申请到成块IP地址,同时拥有通信线路,以及路由器等连网设备。用户通过ISP获取分配到的IP地址,并通过该ISP接入到因特网。
时至今日,因特网依然蓬勃发展,通过ISP接入因特网的运营模式也依然受用。
在中国,电信、联通、移动、广电等等著名的通信运营商企业就是ISP。
2. 基本概念
本小节我们先介绍一些关于计算机网络的一些基本概念。
网络
网络(network)由若干结点(node)和连接这些节点的链路(link)组成。
互联网
互联网是网络的网络(network of networks)。网络之间通过路由器互连起来。
Internet 因特网是世界上最大的互连网络。
主机
连接在因特网上的计算机都称为主机(host)
3. 计算机网络基本结构
上一节我们了解了计算机网络的由来,这一节我们一起了解一下计算机网络的基本结构。
计算机网络的基本结构可以分为:网络边缘、接入网、网络核心(核心网络)
3.1 网络边缘
网络边缘是指,在一个大型网络结构中,位于边缘的设备或程序。例如我们家里的计算机,一般情况下它并不参与分组转发,只参与信息的发送与接收,位于一个网络的边缘而非中间(可参考上文的图片),因此被称为网络边缘。
一般情况下,我们的汽车终端、计算机上的Web应用软件、我们的手机都可以视为网络边缘。
3.2 接入网络
接入网络是网络边缘要接入核心网络的中间层网络。例如,通过校园网访问外网,中间一层就是通过接入网络实现的。在用户的角度,需要关心的是接入网的带宽,是共享或独占。
关于接入网的具体实现形式,一个经典例子就是数字用户线路DSL。我们上网的时候需要一个modem, 即调制解调器,将信号进行处理,结合多路复用技术接入电话线,再通过电话线接入ISP,最终实现接入到因特网。
3.3 网络核心
互联的路由器网络。通过数据交换,实现数据从源主机通过网络核心送达目的主机。
关键功能:路由与转发
-
路由:通过路由算法,确定分组从源到目的路径
-
转发:将分组从路由器的输入端口交换至正确的输出端口
关于网络核心的一些较为细节的知识点,一些考试可能会考,以下稍微介绍,各位可酌情选读。
转发是通过数据交换实现的,而数据交换又存在以下问题:
数据交换的问题
若我们将设备都直接相连,则产生 N^2 路径问题
(即N台设备都直接相连,需要连接N*
(N-1) / 2次),成本巨大
解决方案
如图所示可进行解决:
而数据交换的类型,又分为电路交换、报文交换、分组交换几种,其中又用到多路复用技术,下面我们一一介绍。
3.3.1 电路交换
典型的电路交换是电话网络。
如图所示:
电话网络交换的过程与拨打电话的过程十分类似。
3.3.2 多路复用
从上面电路交换图中我们得知,使用电路交换的形式是独占资源。但显然,链路上的资源是有限的,此时,我们需要将同一个信道的资源进行划分,实现多路复用。简单来说,就是都走同一条道,但又互不干涉。但信号的传输远没有人走路那么简答,需要用一些技术以特定的方式实现多路复用:
典型的多路复用主要有以下几种方法:
- 频分多路复用( frequency
division multiplexing-FDM ) - 时分多路复用( time division
multiplexing-TDM ) - 波分多路复用(Wavelength
division multiplexing-WDM) - 码分多路复用( Code
division multiplexing-CDM )
频分多路复用
典型案例:电视频道。
频分多路复用的各用户占用不同的频率带宽
资源,即不同的信号频率(赫兹,Hz)是不一样的。在用户分配到一定的频率之后,通信过程中始终时使用这个频率。
时分多路复用
时分多路复用是将事件划分为一段段等长的时分复用帧(TDM帧),每个用户在每个TDM帧中占用固定序号的时隙。每个用户所占用的时隙是周期性出现,其周期为TDM帧的长度。
简单来说,就是大家把时间隔开,不同的时间交给不同的用户去处理。就好比同一个健身教练3个学生甲乙丙,甲每天早上上课跟练,乙中午,丙晚上,每天反复如此,每个学生都能由教练单独带练,互不冲突。
波分多路复用
波分多路复用即为光的频分复用。主要用于光纤信道,由光调制器、光调解器实现。
码分多路复用
广泛用于无线链路共享,如卫星通信。
码分多路复用用户使用相同的频率,也不划分时间,通过编码的方式进行区分。
码分多路复用给每一个用户分配一个特定的码片序列,即通过编码的方式,对每个用户进行不同的编码,通过接收方解码来识别不同的用户。而为了在传输过程中互不干涉,则需要通过相互正交来保证。
关于码分的具体规则,略微复杂,读者可通过上文提到的参考教程以及其它参考资料深入学习。
3.3.3 报文交换与分组交换
报文交换
报文交换起源于电报系统。
报文指的是一个信息整体,例如一个文件。报文交换与分组交换主要解决的是传输链路中,如何将一个报文一次性从一个节点转发到下一个节点。
但是,虽然将一个报文为整体作为传输,出发点是好的,但有时一个报文若太大,以及传输信道资源的问题,则容易产生传输上的不可靠问题。因此报文通常与分组交换结合在一起传输。
注意,虽然报文交换与分组交换的对象都是报文,但报文每次传输的是一个整体,分组则是将报文拆分,下面介绍分组交换。
分组交换
分组交换将一个报文切分成一个个小的分组。一个分组由一个头信息和报文数据组成。报文首先需要被拆分,通过统计多路复用链路传输后,再进行重组。
以下是来自参考教程课件的示意图:
统计多路复用
比较灵活的一种链路带宽复用方式,即有需要就占用带宽资源,没有需要就不使用,按需共享链路。
举一个例子,A 和 B 两个报文进行分组交换,两个报文被分别拆分成了 a[ ]
与 b[ ]
,统计多路复用可以根据 a[ ]
与 b[ ]
的传输需求进行带宽分配。假设某一时间片段 t1, a[ ]
与 b[ ]
都需要发送分组,此时可以将带宽平均分配,a[ ]
与 b[ ]
各占大约一半。而在下一时刻 t2,由于某些关系,b[ ]
剩余部分暂时不发送了,而 a[ ]
依然有需求发送,那么通过统计多路复用技术,a[ ]
在 t2 可以占据更多的带宽资源。
存储转发
存储转发是指,一段转发的数据到达下一个节点的时候先暂存起来,等到一定条件再转发到下一个节点,再根据一定条件存储起来,再转发…直到到达目的地
报文交换和分组交换均采用存储转发的方式。
4. 因特网概述
因特网是网络的网络,是世界上最大的互连网络。我们已经通过上文了解过因特网的发展渐进过程。由于因特网过于庞大,无法对其规模与指标进行估计,但我们可以通过了解它的结构实现方案来了解因特网结构的大致特点。
从上文中我们得知,我们的端系统要通过ISP才能接入到因特网,这意味着ISP之间也需要一定的结构实现互连。
以下是一个ISP三级结构示例:
-
一级ISP:也被称为因特网主干网(Internet backbone),直接与其它一级ISP相连。通常,一级ISP是国家级别的ISP。
-
二级ISP:二级ISP与一些大公司都是一级ISP的用户,而二级ISP通常具有区域性或国家性覆盖规模。
-
三级ISP:本地ISP,二级ISP的用户,通常,校园网或企业网都是三级ISP的用户。上面的示例图将三级ISP描述为接入ISP。
以上仅仅是一个示例,实际可能更复杂,但从这个角度我们得知,因特网已逐渐演变成基于ISP的多层次结构。