第1章 计算机网络概述
1.1为什么要学习计算机网络
在当前的互联网时代,计算机网络已经成为了我国的一项重要的通信基础设施,无论是你是在校的计算机专业大学生,还是正在从事网络相关工作的从业人员,计算机网络的学习都是十分重要的。
本人是一名Java开发工程师,在我参加各大公司的面试时,被问的很频繁的就是计算机网络相关的知识,尤其是TCP/IP这一块的知识。
在工作中,也会遇到因为网络原因导致的服务bug,如果不明白其中的原理,是很难排查出问题的。
因此,对于一名合格的程序员来说,计算机网络的学习是不能被忽视的,因为你所编写的代码,你所开发的功能大多数都是需要通过计算机与计算机之间的通信,对数据进行传输处理。
1.2什么是Internet?
在这里,我们想要了解Internet,就首先需要了解什么是网络。
网络:即计算机网络的简称,由若干结点和结点之间的链路组成。
因特网(internet):即网络的网络,是由多个路由器将多个网络连接组成的一个大范围的网络。
互联网(Internet):特指Internet,起源于美国,是目前全球范围最大的计算机网络,我们日常生活中所使用的网络就是Internet。
1.3计算机网络的分类
按照不同的划分方式,计算机网络可以分为不同的类别。
1)按照使用者分类
可以将计算机网络分为专用网和公用网,所谓的专用网就是指各个机关单位专用的网络(不共享,如军用网络、校园网等),公用网就是公共的网络(开放共享,如Internet)。
2)按照传输介质分类
可以将计算机分为有线网络和无线网络
3)按照覆盖范围分类
可以将网络分为,广域网(WAN),城域网(MAN),局域网(LAN),个域网(PAN)。
广域网:作用范围通常为几十到几千公里。
城域网:作用距离约为 5 ~ 50 公里。
局域网:局限在较小的范围(如 1 公里左右)。
个域网:范围很小,大约在 10 米左右。
注:若中央处理机之间的距离非常近(如仅1米的数量级甚至更小些),则一般就称之为多处理机系统,而不称它为计算机网络。
4)拓扑结构分类
网络的拓扑结构是指由网中结点(路由器、主机等)与通信线路(网线)之间的几何关系表示的网络结构。
可以将计算机网络分为总线形、星形、环形和网状等。
总线形网络:用单根传输线把计算机连接起来。
星形网络:每个终端或计算机都以单独的线路与中央设备相连。
环形网络:所有计算机接口设备连接成一个环。
网状网络:一般情况下,每个结点至少有两条路径与其他结点相连,多用在广域网中。
4)按照交换技术分类
可以将网络分为电路交换网,报文交换网以及分组交换网
该部分将在下面的网络核心部分进行详细介绍
1.4计算机网络的组成
知道了什么是Internet,以及计算机网络的分类后,我们就需要了解计算机网络到底是由什么组成的了。
一般地,我们将计算机网络分为边缘部分和核心部分。
1.4.1网络边缘部分
1.4.1.1 基本概念
边缘部分由所有连接到Internet上的供用户直接使用的网络主机设备(PC、智能手机、平板等)组成。主要作用是用来进行通信和资源共享。
在计算机网络中,我们经常称这些主机设备为端系统。在这里,我们需要明确一个概念,我们常说的“主机A和主机B进行通信”,指的就是“运行在主机A上的某个程序与运行在主机B上的另外一个程序进行通信”,即“主机A的某个进程和主机B上的另外一个进程之间的通信”,这种说法可以简称为“计算机之间的通信”。
1.4.1.2 端系统之间的通信方式
在端系统(主机)之间的通信方式通常被分为两种:客户-服务器方式(C/S方式,我们大多数开发的应用都是基于这种模式)、对等方式(P2P)。
1.4.1.2.1 C/S模式
C,指的是Client(客户端)。S,指的是Server(服务器)。
客户-服务器方式描述的是进程之间的服务和被服务的关系。其中客户是服务的请求方,服务器是提供服务的提供方。
举个栗子:你想搜索到笔者的这篇文章,你该怎么做?
你可能会打开CSDN网站,在搜索框中键入本篇文章的标题,点击查询,就可以看到包含本篇文章的一系列文章信息。在这个过程中,你的计算机为你默默的发起了请求(作为客户),向CSDN的服务器(作为服务器)请求与你键入的关键字相关的文章信息。在这个过程中,你的主机就是客户,是“根据关键字获取文章信息”这项服务的请求方,CSDN的服务器就是“根据关键字获取文章信息”这项服务的提供方。(当然这里简化了整个查询过程,只是为了讲解C/S方式的运作模式)。
下图是上述例子的示意图。
客户-服务器方式的特点:
-
客户程序
-
被用户调用后运行,在通信时主动向服务器发起通信,因此客户程序必须知道服务器程序的地址。
-
不需要特殊的硬件和很复杂的操作系统。
-
-
服务器程序
-
是一种专门用来提供某种服务的程序,可以同事处理多个请求。
-
系统启动后即自动调用并且一直不断的运行着,等待并接受客户程序的请求。
-
一般需要强大的硬件和高级的操作系统的支持。
-
由客户-服务器方式的特点,我们也可以看出,客户-服务器方式有一个致命的缺点,那就是,对于服务器的要求十分严格,一旦服务器宕机就会导致服务的不可用,并且如果短时间内请求的客户数量很大,也会导致服务器压力的激增,导致服务的响应很慢,甚至出现服务器的入队队列被占满,导致后面的用户请求被服务器拒绝。因此C/S架构的应用程序本质上来说是十分脆弱的(当然我们也有很多手段来增强服务器的可靠性,这些内容就不在本次讨论的范围之内了)。那么有没有一种通信方式,可以解决C/S方式的这个缺点呢?答案是肯定的,那就是P2P模式。
1.4.1.2.2 P2P模式
对等连接(peer-to-peer)是指两台主机在通讯时不区分哪一个是服务的提供方哪一个是服务的请求方。只要两台主机都运行了对等连接软件(P2P)软件,他们就可以进行平等的、对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。P2P工作方式可以支持大量对等用户同时工作,具体细节在这里不进行介绍,会在后续的应用层章节进行详细的介绍。
下图是P2P工作方式的示意图。
注:由上图可以看出,其实P2P工作方式的本质还是C/S方式,只不过在P2P工作方式中,每一台主机既是服务的请求方也是服务的提供方。
1.4.2网络核心部分
核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分的通信和资源共享提供服务。
那么,核心部分是怎样为边缘部分提供服务(数据传输)的呢?
计算机网络核心部分的数据交换方式分为三种
1)电路交换
在源结点和目的结点之间建立一条专用的通路用于传输数据。(电话网就是使用的电路交换)
电路交换的步骤:
- 建立连接
- 发送数据
- 拆除连接
优点:
- 通信时延小:通信线路是双方用户专用的,数据直达。
- 有序传输、没有冲突:通信双方通信时,按照发送顺序传送数据,不存在失序问题,每个信道都是双方专用的,不存在数据冲突。
- 实时性强:通信双方之间的物理通路一旦建立,双方就可以随时通信。
缺点:
- 建立连接时间长:电路交换的平均连接建立时间对于计算机通信来说太长了
- 当双方建立连接后,这条通信链路就无法被其他用户使用,即使此时在该链路上并没有数据推送。
- 灵活性差:只要双方之间的通信链路出现故障,就必须重新拨号连接。
- 难以规格化:电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互通信。
2)报文交换
在源结点将用户数据加上目的地址、源地址、校验数据等信息,封装成报文,整个报文传送到相邻的结点中,在该结点中把报文全部存储后,再转发给下一个结点,不断重复到这个过程,直至数据到达目的结点。其中,每个结点都可以单独的选择传输数据的路径。
报文交换网络也称为存储-转发网络,主要特点是将整个报文先传送到相邻结点,全部存储后再转发到下一个结点。
优点:
- 无需建立连接
- 可以动态分配线路
- 可以实现格式转换
- 可以实现差错控制
- 可以将同一份报文同时传输给不同的节点,实现一对多的数据传输
缺点:
- 由于每个报文除了用户数据外还要添加上额外的辅助信息,所以增加了资源开销
- 增加了缓冲时延
- 缓冲区难以管理(报文的大小不确定,接收方在接收到报文之前难以预留足够的缓冲区)
3)分组交换
相较于报文交换每次存储-转发的是完整的报文,分组交换是将用户数据分成较短的固定长度的数据块,加上控制信息后组成一个个分组,以分组-转发的方式传输到目的结点。
优点:
- 具备报文交换的优点
- 缓冲易于管理,因为分组的长度是固定的,所以缓冲区的大小也是固定的,相对而言更容易管理。
- 每个分组的平均时延更小
缺点:
- 相较于电路交换,存在冲突的可能
- 相较于电路交换,存在传输时延
- 相较于报文交换,增多了控制信息的大小,会传输更多的信息
三种交换方式的比较:
要传送的数据量很大且传送时间远大于呼叫时间时,采用电路交换比较合适。
端到端的通信由多段链路组成时,采用分组交换传送数据较为合适。(PS:报文交换主要在早期的电报通信网中使用,现在较少使用,通常被分组交换代替了)
1.5 计算机网络的性能指标
当我们使用网络下载某个文件、视频时,都会看到一个下载速度,这个速度的快慢一定程度上反应了当前网络的状态。(作为用户,我们当然希望网速越快越好)
那么除了这个指标,还有什么指标可以用来衡量网络的性能呢?
接下来,我将为你介绍,计算机网络中的常用性能指标。
1.5.1 速率
网络中的速率是指链接到计算机网络上的主机在数字信道上传送数据的速率,也称数据传输速率、数据率或者比特率,单位为b/s(比特/秒),有时也写作bit/s、bps。
注:在计算机网络中,通常把最高数据传输速率称为带宽。
我们通常下载文件时所看到的的下载速度,就是当前网络的速率。
1.5.2 带宽
带宽本来是指信号具有的频带宽度,其单位是赫(或千赫、兆赫、吉赫等)。
在计算机网络中,带宽用来表示网络中某通道传送数据的能力。表示在单位时间内网络中的某信道所能通过的“最高数据率”。单位是 bit/s ,即 “比特每秒”。
1.5.3 吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。
1.5.4 时延
时延指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。它由四个部分构成:发送时延、传播时延、处理时延和排队时延。
-
发送时延:也称为传输时延,结点将分组的所有比特传输到链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。
计算公式:发送时延 = 分组长度 / 发送速率
-
传播时延:电磁波在信道中需要传播一定的距离而花费的时间,即一个比特从链路的一端传播到另一端所需的时间。
计算公式:传播时延 = 信道长度 / 电磁波在信道上的传播速率
-
处理时延:数据在交换结点为存储转发而进行的必要的处理所花费的时间。例如,分析首部、提取数据、差错检验或查找路由等。
-
排队时延:分组在进入路由器后要现在输入队列中排队等待处理。路由器确定转发端口后,还需要在输出队列中排队等待转发,这就产生了排队时延。
数据在网络中经历的总时延就是发送时延、传播时延、处理时延和排队时延之和。
各个时延在网络运输中产生的位置如下图所示
注意:
高速网络链路指的是数据的发送速率高的链路而不是指比特在链路上的传播速率高的链路。
提高链路带宽减小了数据的发送时延。
1.5.5 时延带宽积
时延带宽积指发送端发送的第一个比特即将到达终点时,发送端已经发出了多少个比特,因此时延带宽积又被称为以比特为单位的链路长度。
时延带宽积 = 传播时延 * 信道带宽
1.5.6 往返时延(RTT)
往返时延(RTT)指从发送端发出一个短分组,到发送端收到该分组来自接收端的确认总共经历的时延。(接收端在收到数据后立刻发出确认)
1.5.7 信道利用率
信道利用率指信道有百分之多少的时间是有数据通过的
计算公式:信道利用率 = 有数据通过时间 / 总时间
1.6计算机网络的体系结构
1.6.1 协议、接口与服务
想要弄明白什么是计算机网络体系结构,我们就必须引入计算机网络中常用的术语:协议、接口、服务。
1.6.1.1 协议
在这里,如果直接给出计算机网络中的协议的概念,我想各位读者可能依旧很难十分深刻的理解其中的意思,那么我们不妨先类比一个生活中的例子(因为人类的日常活动中,无时无刻不在执行协议)。
考虑以下场景:你在餐厅吃饭,此时你的手机没快电了,但是你现在迫切的需要给手机充电以便付款,这时,你看见领桌的客人桌上有充电宝,你要向这位客人借用充电宝,你将会怎么做?人类的协议(礼貌的行为方式)中会要求一方先发起问候(例如,“你好”)用以开启双方的通信(对话),如果对方此时心情不错,那么他大概率会用“你好”,来回应你的第一句话“你好”,随后你就可以询问他是否可以借用一下充电宝了,对方对你的这一次询问,可能出现两种情况,一种就是借给你,另外一种就是不借给你了。当然如果对方心情较差,也可能会在你第一次问候“你好”时,回应你“别来烦我”,或者直接忽视你的问候,那么此时,你通常会放弃向这个人借用充电宝。示意图如下。
注意,在这个活动的过程中,你会发送特定的信息,并且根据收到的对方的响应进行或者其他事件(例如,对方直接无视了你)采取的动作。显然,你会发现,在这整个过程中,发送和接收的信息,以及这些信息发送和接收或其他事件岀现时所采取的动作,这些在一个人类协议中起到了核心作用,你们之所以能够正常的通话,是因为你们都受过良好的教育(其实人与人交往之间的礼仪等就是所谓的种种协议,比如有人向你问好的时候,你也需要回复他的问候)。设想一下,如果双方所使用的的协议不同(例如一个人讲中文,一个人讲英语),那么这场对话活动就无法顺利的展开,同样的,在计算机网络中,双方要想正常的进行通讯,那么对等层必须使用相同的协议,那么什么是计算机网络的协议呢?
协议:即规则的集合。在网络中要做到有条不紊地交换数据,就必须遵循一些事先约定好的规则,这些规则明确规定了要交换的数据的格式以及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或者约定被称为网络协议。
协议由语法、语义和同步三部分组成。
- 语法:规定了传输数据的格式。(类比上述举例,就是说中文还是说英文)
- 语义:规定了所要完成的功能,即需要发出何种控制信息、完成何种动作以及做出何种应答。(类比上述举例,就是当你听到你好时,礼貌性的也应该回复你好)
- 同步:规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。(类比上述举例,就是当邻桌的客人只有听到你要问他借用充电宝且他的心情不错时,他才会递给你充电宝)
注意:协议是控制两个或者多个对等实体进行通信的规则的集合,是水平的。
接下来,我会举例说明计算机网络中的协议是如何工作的
考虑一下以下场景:主机A要从主机B获取一个文件。
PS:这里的示意图,省略了TCP链接建立的细节。
1.6.1.2 接口
接口是同一结点内相邻两层之间交换信息的连接点,是一个系统内部的规定。
1.6.1.3 服务
服务是指下层为紧邻的上层提供的功能调用,它是垂直的。
协议和服务的区别
- 只有本层协议的实现才能保证向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议,即下层的协议对上层的服务用户是透明的。
- 协议是水平的,服务是垂直的。
1.6.2 什么是计算机网络的体系结构
两个系统中实体之间的通信时一个十分复杂的过程,为了降低协议设计和调试过程中的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以分层的方式进行建模。
计算机网络的体系结构:我们把计算机网络的各层以及其协议的集合称为计算机网络的体系结构。换句话来说,就是计算机网络的体系结构就是这个计算机网络以及所应该完成的功能的准确定义,它是计算机网络中的层次、各层的协议以及层间接口的集合。
计算机网络的体系结构分层的基本原则:
- 每层都实现一种相对独立的功能,降低系统的复杂度。
- 各层之间界面自然清晰,易于理解,相互交流尽可能少。
- 各层功能的精确定义独立于具体的实现方法,可以采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构应能促进标准化工作。
1.6.3 IOS/OSI参考模型
国际标准化组织(ISO)提出的计算机体系结构参考模型(OSI)一共有7层,实际上,OSI参考模型并非实际的因特网所使用的计算机网络体系结构,因此大概率了解一下即可,结构详情如下图所示。
1.6.4 TPC/IP模型
TCP/IP模型才是事实上的国际标准,结构图如下。
1.6.5 两种模型的比较
这两种模型有很多相似之处:
- 都采用了分层结构
- 都是基于独立的协议栈
- 都可以解决异构网络的互联,实现世界上不同厂家生产的计算机之间的通信。
区别:
- OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,而TCP/IP模型只适合于TCP/IP的协议栈。
- OSI参考模型在网络层支持无连接和面向连接的通信,但是在传输层仅有面向连接的通信,而TCP/IP模型在网际层仅提供了无连接的通信,在传输层支持无连接和面向连接的通信。
1.6.6 关于计算机网络体系结构我们要学习什么
读到这里,各位读者大概对于计算机网络的体系结构的国际标准有了一定的了解了,那么我们学习计算机网络体系结构应该学习什么呢?其实在我们学习计算机网络的时候,我们会综合OSI模型和TCP/IP模型的优点,采用5层结构的体系结构,即应用层、传输层、网络层、数据链路层以及物理层。
对于每层的作用是什么,在这里就不进行赘述了,在后续的章节我们会进行详细的介绍。
1.7 互联网的发展历史
本小节内容作为知识拓展,各位读者可凭兴趣了解一下即可。
1.7.1 互联网基础结构发展的三个阶段
-
阶段一
从单个网络 ARPANET 向互联网发展的过程
- 1983 年, TCP/IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP/IP 协议的计算机都能利用互连网相互通信。
- 人们把 1983 年作为互联网的诞生时间。
- 1990年,ARPANET 正式宣布关闭。
-
阶段二
建成了三级结构的互联网
它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。
-
阶段三
形成了多层次ISP结构的互联网,出现了互联网服务提供者 ISP (Internet Service Provider)。任何机构和个人只要向某个 ISP 交纳规定的费用,就可从该 ISP 获取所需 IP 地址的使用权,并可通过该 ISP 接入到互联网。
注:我们日常生活中所说的电信、移动以及联通就是我国三大ISP。
根据提供服务的覆盖面积大小以及所拥有的 IP 地址数目的不同,ISP 也分成为不同层次的 ISP:主干 ISP、地区 ISP 和 本地 ISP。
1.7.2 互联网在我国的发展
- 1980年,铁道部建设了专用计算机广域网,进行计算机联网实验。
- 1989年11月,我国第一个公用分组交换网CNPAC建成运行。
- 1994年4月20日,我国用64kbit/s专线正式接入互联网,从此,我国被国际上正式承认为接入互联网的国家。
- 1994年5月,中国科学院高能物理研究所设立了我国第一个万维网服务器。
- 1994年9月,中国公用计算机互联网CHINANET正式启动。
- 后续的,我国逐渐建造了更多的公用计算机网络,其中规模最大的是下列五个
1.中国电信互联网CHINANET(原来的中国公用计算机互联网) 2.中国联通互联网UNINET 3.中国移动互联网CMNET 4.中国教育和科研计算机网CERNET 5.中国科学技术网CSTNET
参考文献
《计算机网络:自顶向下方法第七版》- Kurose
《计算机网络(第7版)》-谢希仁
《2023年计算机网络考研复习指导》-王道论坛
如果这篇文章有帮助到你,不妨点赞、转发、收藏一下喽~
今天的文章计算机网络知识整理-计算机网络概述(计算机网络入门参考指南)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30730.html