前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

1、计算机网络出现的背景

1.1、从独立模式到网络互连模式

起初,计算机以单机模式被广泛使用(这种方式也叫独立模式)。

然而随着计算机的不断发展,人们已不再局限于单机模式,而是将一个个计算机连接在一起,形成一个计算机网络。连接多台计算机可以实现信息共享,同时还能在两台物理位置较远的机器之间及时传递信息

1.1.1、以独立模式使用计算机

image-20211025204955826

1.1.2、以网络互联模式使用计算机

image-20211025205006777

1.1.3、计算机网络

计算机网络,根据规模分为 WANWide Area Network,广域网)和(Local Area Network,局域网)。

1.1.3.1、LAN

image-20211025205335711

1.1.3.2、WAN

image-20211025205351551

1.2、从计算机通信到信息通信

最初,由管理员将特定的几台计算机相连在一起形成计算机网络。例如,将同一公司、同一实验室所持有的计算机连接在一起,或是将有业务往来的企业之间的计算机相连在一起。总而言之,形成的是一种私有的网络。

随着这种私有网络的不断发展,人们开始尝试将多个私有网路相互连接组成更大的私有网络。这种网络又逐渐发展演变成为互联网为公众所使用,在这个过程中,网络环境俨然已发生了戏剧性的变化

连接到互联网以后,计算机之间的通信已不再局限于公司或部门内部,而是能够与互联网中的任何一台计算机进行通信。互联网作为一门新兴技术,极大地丰富了当时以电话、邮政以及传真为主的通信手段,逐渐被人们所接受。

此后,人们不断研发各种互联网接入技术,使用各种五花八门的通信终端都能够连接到互联网,使互联网成为了一个世界级规模的计算机网络,形成了现在这种综合通信环境。

2、计算机与网络发展的7个阶段

2.1、批处理

批处理操作系统就是把一系列需要操作的指令写下来,形成一个清单,一次性交给计算机。用户将多个需要执行的程序写在磁带上,然后交由计算机去读取并逐个执行这些程序,并将输出结果写在另一个磁带上。

当时这种计算机价格昂贵体积巨大,无法在一般的办公场所中使用。因此,通常放置于专门进行计算机管理与运维的计算机中心。而用户除了事先将程序和数据装入卡带或磁盘送到这样的中心运行之外别无选择。

image-20211025210605992

当时的计算机操作起来相当复杂,不是所有人都能够轻松自如地使用。因此在实际运行程序时通常会交给专门的操作员去处理。

有时程序处理时间较长,在用户较多的情况下,用户程序可能无法立即得到运行。这时用户只能将程序留给操作员,过些时日再来计算机中心取结果。

批处理时代的计算机主要用于大规模计算或处理,因此那时的计算机尚不是一个便于普通人使用的工具

2.2、分时系统

继批处理系统之后,20世纪60年代出现了分时系统(TSS)。它是指多个终端与同一个计算机连接。允许多个用户同时使用一台计算机的系统

当时计算机造价非常昂贵,一个一台专有计算机的费用对一般人来说可望不可即。然而分时系统的产生则实现了“一人一机”的目的,让用户感觉就好像“完全是自己在使用一台计算机一样”。这也体现了分时系统的一个重要特性——独占性

image-20211025210837294

此外,分时系统还促进了像 BASIC 这样能够与计算机实现交互的编程语言的发展。而在此之前的COBOLFORTRAN等计算机编程语言都必须以批处理系统为基础才能开发和运行。其实BASIC语言的发明是为了让更多的人学习如何编程,因此也可以说它是关注分时系统的初学者们必学的一门开发语言。

由于分时系统的独占性,使得装备一套用户可直接操作的计算机环境变得比以前简单。分时系统中每个终端与计算机之间使用通信线路连接形成一个星形结构。正是从这一时期开始,网络(通信)与计算机之间的关系逐渐浮出水面。小型机也随即产生,办公场所与工厂也逐渐引入计算机

2.3、计算机之间的通信

image-20211025211301163

上图中,计算机与每个终端之间用通信线路连接,这并不意味着计算机与计算之间已相互连接

到了20世纪70年代,计算机性能有了飞速发展,体积也趋于小型化,同时价格急剧下降。于是计算机不再仅仅局限于在研究机关使用,一般的企业也逐渐开始使用计算机。因为企业内部对使用计算机处理日常事务的呼声越来越高。为了提高效率,人们开始研究计算机与计算机之间通信的技术。

在计算机间的通信技术诞生之前,想要将一台计算机中的数据转移到另一台计算机中是相当繁琐的。那时,得将数据保存到磁盘、软盘等外部存储介质中,再将这些介质送到目的计算机才能实现数据存储。然而有了计算机间的通信技术(计算机与计算机之间由通信线路连接),人们能够很轻松地即时读取另一台计算机中的数据,从而极大地缩短了传送数据的时间。

计算机间的通信显著地提高了计算机的可用性。人们不再局限于仅使用一台计算机进行处理,而是逐渐使用多台计算机分布式处理,最终一并得到返回结果。这一趋势打破了一家公司仅购入一台计算机进行业务处理的局面,使每家公司内部能够以部门为单位引入计算机,来处理部门内部的数据。每个部门处理完本部门内的数据以后,经由通信线路传送到总部的计算机,再由总部计算机处理并得出最终的数据结果。

从此,计算机的发展又进入一个崭新的历史阶段。在这一阶段计算机更侧重于满足使用者的需求、架构更灵活的系统,且操作比以往更加人性化。

2.4、计算机网络的诞生

image-20211025211814740

20世纪70年代初期,人们开始实验基于分组交换技术的计算机网络,并着手研究不同厂商的计算机之间相互通信的技术

到了80年代,一种能够互连多种计算机的网络随之诞生。它能够让各式各样的计算机相互连接,从大型的超级计算机或主机到小型的个人电脑

计算机的发展与普及使人们对网络不再陌生。其中窗口系统的发明,更是拉近了人们与网络之间的距离,使用户更加体会到了网络的便捷之处。有了窗口系统,用户不仅可以同时执行多个程序,还能在这些程序之间自由地切换作业。例如,在工作站上创建一个文档的同时,可以登录到主机执行其他程序,也可以从数据库服务器下载必要的数据,还可以通过电子邮件联系朋友。随着窗口系统与网络的紧密结合,我们已经可以在自己的电脑上自由地进行网上冲浪,享受网上的丰富资源。

image-20211025212205704

2.5、互联网的普及

进入20世纪90年代,那些专注于信息处理的公司和大学已成为每一位员工或研究人员分配了一台计算机,形成了“一人一机”的环境。

然而这种环境的搭建不仅成本不菲,在使用过程中也会遇到很多新的问题。这也是为什么后来人们打响了“瘦身”与“多供应商连接“(异构型计算机之间的连接)这两个口号的原因。

其目的在于通过连接不同厂商的计算机建立一个成本更低的网络环境。而连接异构型计算机的通信网络技术就是现在我们所看到的互联网技术。

与此同时,诸如电子邮件(E-mail)、万维网等信息传播方式如雨后春笋般迎来了前所未有的发展,使得互联网从大到整个公司范围小到每个家庭内部,都得以广泛普及。

面对这样一种趋势,各家厂商不仅力图保证自家产品的互联性,还着力于让自己的网络技术不断与互联网技术兼容。这些厂商也不再只着眼于大企业,而是针对每一个家庭或SOHO也陆续推出了特定的网络服务及网络产品

现在,像互联网、E-mail、Web、主页等已成为了人们再熟悉不过的名词。这也足以说明信息网络、互联网已经渗透到我们的生活中。个人电脑在诞生之初可以说主要是一种单机模式的工具,而现在它则被更广泛地应用于互联网的访问。而且,无论相距多远,世界各地的人们只要接入互联网,就可以通过个人电脑实现即时沟通和交流。

image-20211025212506308

2.6、以互联网技术为中心的时代

互联网的普及和发展对通信领域产生了巨大的影响。

许多发展道路各不相同的网络技术 也向互联网靠拢,例如曾经作为通信基础设施、支撑通信网络的电话网,随着互联网的发展也被IP网所取代。通过IP网,人们不仅可以实现电话通信、、电视播放,还能实现计算机、手机、家用电器、游戏机等诸多产品的通信。

image-20211027202958384

2.7、从“单纯建立连接”到“安全建立连接”

互联网的便捷也给人们的生活带来了负面问题,例如病毒侵害、信息泄露、网络欺诈等犯罪行为日益增多。由于设备故障导致无法联网可能会直接影响公司的业务开展或个人的日常生活,这些负面影响带来的巨大损失也不容小觑。

互联网的初期,人们只关注单纯的连接性,以不受任何限制的建立互联网连接为最终目的,而现在,已经转变为追求“安全建立连接”的目标。理解通信网络的机制、充分考虑联网后的日常运维流程以及自我防卫手段,以及成为了安全生产不可或缺的组成部分。

2.8、手握金刚钻的 TCP/IP

互联网是由许多独立发展的网络通信技术融合而成。能够使他们之间不断融合并统一的正是TCP/IP 技术

那么 TCP/IP 的机制是什么呢?TCP/IP 是通信协议的统称,了解其核心机制之前,需要理清“协议”的概念

image-20211027204119040

3、协议

2.1、随处可见的协议

计算机网络和信息通信领域里,协议经常出现。互联网中常用的具有代表性的协议由IPTCPHTTP等,LAN常用的协议由IPX/SPX等。

计算机网络体系结构将协议进行了系统的归纳,TCP/IP 就是 IPTCPHTTP等协议的集合。除此之外,还有很多其他类型的网络体系结构。如下图

image-20211027204943144

2.2、协议的必要性

简单来说,协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU已经不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。反之,如果所使用的协议不同,就无法实现通信。

⬤ 一台计算机中可运行的指令,因其CPU、操作系统的不同而有所差异。因此,如果将针对某些特定的CPU或操作系统设计的程序直接复制到具有其他类型CPU或操作系统的计算机中,就不一定能够直接运行。

⬤ 计算机中存储的数据也因CPU和操作系统的差异而有所不同。因此,若在CPU和操作系统不同的计算机之间实现通信,则需要一个各方支持的协议,并遵循这个协议进行数据读取。

2.3、分组交换协议

分组交换是指将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。如下图所示:分组交换就是讲大数据拆分成一个个的小包交给对方

1、计算机通信时会在每一个分组中附加上源主机地址和目标主机地址送到通信线路。这些发送端地址、接收端地址以及分组序号写入的部分称为“报文首部”

2、一个较大的数据被分为多个分组时,为了标明是原数据中的哪一部分,就有必要将分组的序号写入包中。接收端会根据这个序号,再将每个分组按照序号重新装配为原始数据。

3、通信协议中,通常会规定报文首部应该写入哪些信息、应该如何处理这些信息。相互通信的每一台计算机则根据协议构造报文首部、读取首部内容等。

4、为了双方能正确通信,分组的发送方和接收方有必要对报文首部和内容保持一致的定义和解释

image-20211027205728617

4、协议由谁规定

4.1、计算机通信的诞生和其标准化

在计算机通信诞生之初,系统化和标准化并未得到足够的重视。因此不同厂商的设备,由于支持的协议不同,仍然无法实现正常的通信。

image-20211027210448549

4.2、协议的标准化

为了解决上述问题,ISO 组织制定了一个国际标准 OSI对通信系统进行标准化。**现在,OSI所定义的协议虽然并没有得到普及,但是在 OSI 协议设计之初作为其指导方针的 OSI 参考模型却常被用于网络协议的制定当中。 **

TCP/IP并非是 ISO 定制的国际标准,而是由 IETF 所致力与推进标准化作业的一种协议。现在也作为业界标准,俨然已成为全世界所广泛应用的通信协议。

协议的标准化使得所有遵循标准协议的设备不再因计算机硬件或操作系统的差异而无法通信。因此,协议的标准化推动了计算机网络的普及。

4.2.1、IETF 是什么组织

国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF)是一个公开性质的大型民间国际团体,汇集了与互联网架构和互联网顺利运作相关的网络设计者、运营者、投资人和研究人员,并欢迎所有对此行业感兴趣的人士参与

4.2.2、ISO

国际标准化组织(International Organization for Standardization,简称为ISO)是标准化领域中的一个国际性非政府组织

5、协议分层和OSI参考模型

5.1、协议的分层

ContactAuthor