目录
前言
相信很多同学在学习《计算机网络》这门课的时候会感觉到云里雾里(也有可能只是作者自己的感受),虽然这门课涉及到很多抽象的概念,但是内容却是和我们的生活息息相关。例如,为什么路由器要接三根颜色不同的线,它们的作用是什么;为什么我们在浏览器中输入相应关键词就会搜索到我们想要的内容,这其中的工作原理又是什么等等。而这些问题的答案都可以在《计算机网络》中找到答案。当我们把这些抽象的知识同生活的实际联系在一起,我们会发现其实这门课也没有那么难以理解。因此本文(当然或许也包括以后的很多篇文章)会在整理知识点的过程中适当地添加一些作者自己的理解,如果发现作者的言语表述不当或者文章有错误,欢迎各位同学多多指点。希望我的文章可以对大家有所帮助、有所启发。
鉴于作者只是一只普普通通的小菜鸟,本文只讨论一些比较基础的计算机网络知识, 适合零基础的同学们阅读。本文的内容参考自b站湖科大教书匠的《计算机网络微课堂》,感兴趣的同学可以学习学习。
1、互联网概述
-
1.1 互联网基本特点
◼连通性
◼共享
-
1.2 网络、互联网、因特网
◼计算机网络(为了方便,以下简称网络)由若干结点(node)和连接(link)这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机或路由器等。如下图(a)就是一个最简单的网络。
◼有了网络的定义,我们就可以很好地理解互联网。从字面意思上看,互就是相互,因此互联网就可以理解为把多个网络用路由器互连起来形成的一个覆盖范围更大的计算机网络,也就是“网络的网络”。如下图(b)就是一个互联网。
◼因特网(Internet)是世界上最大的互联网络,仿照我们对互联网的定义,我们也可以大致将因特网理解为互联网的互联网。
◼Internet和internet的区别:internet泛指有多个计算机网络互连而形成的网络,是一个通用名词,即互连网。Internet特指全球最大的计算机网络,是一个专有名词,即互联网。
-
1.3 互联网发展的三个阶段
下图来源于湖科大教书匠的《计算机微课堂》,感兴趣的同学可以了解一下。
◼ ISP
当互联网发展到第三阶段时,政府机构不再负责互联网的运营,因此出现了一个新的名词:互联网服务提供者ISP(Internet Service Provider)。ISP拥有成块的IP地址以及一系列复杂的联网设备。任何用户及个人只需要向ISP缴纳相应的费用就可以得到IP地址从而连接因特网。我国主要的ISP是我们日常生活中耳熟能详的中国电信、中国移动以及中国联通。
◼基于ISP的三层结构因特网
由大到小依次分为主干ISP、地区ISP、本地ISP。
1、主干ISP:服务面积最大,一般能覆盖国家范围,属于第三层。
2、地区ISP:服务面积较小,属于第二层。
3、本地ISP:直接为用户提供服务,属于第三层。
-
1.4 互联网的标准化工作
◼ISOC
这是一个国际性组织,全称为互联网协会。其下面有一个技术组织叫做互联网体系结构委员会 IAB。IAB又下设两个工程部,分别是互联网工程部 IETF和互联网研究部 IRTF
◼指定因特网的正式标准
1、因特网草案(不是RFC文档)
2、建议标准(从这个阶段开始成为RFC文档)
3、草案标准
4、因特网标准
2、互联网的组成
◼边缘部分
由所有链接在物联网上的主机组成,这些主机又称为端系统。这部分是用户直接使用,用来通信和资源共享。例如,我们生活中经常使用的智能手机、笔记本电脑、平板等。
◼核心部分
有大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务。其中起到特殊作用的是路由器,这是一种专用计算机,是实现分组交换的关键构建,其任务是转发收到的分组,这是网络核心部分最重要的功能。
-
2.1 边缘部分端系统之间的通信方式
◼客户-服务器方式
客户和服务器都是指通信中涉及到的两个应用进程,客户-服务器方式描述的是进程中服务与被服务的关系。在QQ出现之前,人们上网聊天一般是通过聊天室,信息传递方式为“用户A——服务器——用户B”,这种通信需要服务器的参与,是典型的客户-服务器模式。QQ出现后,用户之间的信息传递不再需要服务器的参与,这就是接下来我们要说的对等连接方式。
◼对等连接方式
对等连接可以简写为P2P(peer-to-peer,由于2的英文two和to的读音相同,因此将英文单词to缩写为2),对等连接方式弱化了服务请求方和服务提供方的概念,也就是说当两台主机都运行了对等连接软件,两者之间就可以建立平等的、对等的连接通信,可以理解为一台主机一方面扮演着客户,另一方面扮演着服务器。例如我们经常使用的迅雷、百度网盘就是一种P2P软件。
-
2.2 核心部分的三种交换方式
1、电路交换
设想一下,如果将世界上所有的电话机都两两相连,那么会发生什么?首先,必然是对空间资源的浪费,其次,这种想法是根本不可能实现的。因此,为了方便电话之间的通信,就应当用电话交换机把这些电话连接起来,当电话机数量增多时,就要使用很多彼此连接起来的交换机来完成交换任务。这样的方法就构成了覆盖全世界的电信网。
从通信资源的分配角度来看,交换就是按照某种方式动态地分配传输线路的资源。下图中用户线归用户专用,而交换机之间大量的中继线则是多个用户共享的。
电路交换分为以下三个步骤:
1、建立连接:在我们打电话之前,首先需要做的就是拨号请求建立连接。当被叫用户听到交换机送来的振铃音并摘机(或者是接听)后,从主叫端到被叫端就建立起了一条专用的物理通路。这个过程需要占用通信资源。
2、通话:双方通话的过程中,申请到的通信资源不会被其他用户占用,因此这个过程需要一直占用通信资源。
3、释放连接:通话完毕挂断后,交换机释放刚才占用的所有通信资源归还给电信网。
如果我们使用这种方式传送计算机数据,其线路的传输效率往往很低,因为计算机的数据传输并不像我们打电话一样需要一直传递信息,计算机数据是突发式地出现在线路上的,因此用户占用的通信资源在绝大部分时是空闲的。例如,计算机正在处理而结果尚未返回时,通信资源并未被利用而是被白白浪费了。因此,我们需要涉及到下一种交换方式——分组交换。
2、分组交换
分组交换采用存储转发技术,其中起到关键作用的就是我们日常生活中非常常见的路由器(也称为交换机)。下图表示把一个报文分组后发送,这就是分组交换传输的方式。通常我们将要发送的整块数据称为一个报文,在计算机中,报文往往是一长串数字0和1组成的序列。在发送报文前,我们把较长的报文划分为一个个更小的等长数据段,并在每段数据段前加上一些由必要控制信息(诸如目的地址和源地址等)组成的首部,这样就构成了一个分组,也可以称为“包”,分组首部也可以称为“包头”。
需要注意,“包”在网络核心部分传输的过程中,会自行选择空闲的路段,这也就意味着接收方收到的分组顺序有可能与发送方发出的分组顺序不同。
整个分组交换过程中,发送方需要完成构造分组、发送分组,路由器需要完成缓存分组、转发分组(存储转发),接收方需要完成接受分组、还原报文。
分组交换的优点可归纳为下表
优点 | 所采用的手段 |
高效 | 在分组传输的过程中动态分配传输宽带,对通信链路是逐段作用 |
灵活 | 为每个分组独立选择最合适的转发路由 |
迅速 | 以分组为单位传输,不用建立和释放连接 |
可靠 | 保证可靠性的网络协议;分布式多路由器的分组交换网,有很好的生存性 |
3、报文交换
报文交换主要用于早期的电报通信网,现在已经较少使用。相比于分组交换,报文交换没有将报文分组的过程,而是将整个报文传送到相邻结点,全部储存后经过解析转发到下一个结点。
4、三种交换的比较
主要特点 | 优点 | 缺点 | |
电路交换 | 整个报文的比特流连续地从源头到达终点,好像在一个管道中传输。 | 1、通信时延小 2、有序传播 3、没有冲突 4、适用范围广 5、实时性强 6、控制简单 | 1、建立连接时间长 2、线路独占,使用效率低 3、灵活性差(如果链路中一个节点出现故障必须重新拨号建立连接) 4、难以规格化(数据直达导致不同规格、不同类型、不同速率的终端之间难以通信) |
报文交换 | 整个报文先传送到相邻结点,全部储存下来后查找转发表,转发到下一个结点。 | 1、无需建立连接 2、动态分配线路 3、提高线路可靠性(较灵活) 4、提高线路利用率 5、提供多目标服务(可以向多个目标发送报文) | 1、引起了转发时延 2、需要较大储存缓存空间 3、需要传输额外信息量 |
分组交换 | 单个分组传送到相邻结点,存储下来后查找转发表,转发到下一个结点。 | 1、无需建立连接 2、提高线路利用率 3、简化储存管理 4、加速传输 5、减小出错概率和重发数据量 | 1、引起了转发时延 2、需要传输额外信息量 3、存在丢包、失序等问题 |
3、计算机网络的定义和分类
-
3.1计算机网络的定义
◼计算机网络的精确定义并未统一。
◼最简单的定义:计算机网络是一些相互连接的、自治的计算机集合。
相互连接:计算机之间可以通过有线或无线的方式数据通信。
自治:指计算机有自己的软件和硬件,可以单独运行。
集合:至少有两台计算机。
◼较好的定义:计算机网络主要是由一些通用的、可编程的硬件互连组成,而这些硬件并非专门用来实现某一特定的目的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
-
3.2计算机网络的分类
1、按照网络的作用范围分类
◼广域网WAN(Wide Area Network):作用范围通常为几十到几千公里,有时也被称为远程网。广域网是互联网的核心部分,其任务是长距离传输数据。连接广域网各节点交换机的链路一般都是高速链路,具有较大的通信容量。
◼城域网MAN(Metropolitan Area Network):作用范围通常是一座城市,城域网可以为一个或几个单位所拥有,但也可以是一种公用设施,用来将多个局域网进行互连。目前很多城域网采用的是以太网技术。
◼局域网LAN(Local Area Network):局域网一般用微型计算机或工作站通过高速通信线路相连,但地理上局限在较小的范围(如1km左右)。现在很多学校或企业都拥有许多个互连的局域网(这样的网络通常称为校园网或企业网)。
◼个人区域网PAN(Personal Area Network):个人区域网就是在个人工作的地方把属于个人使用的电子设备用无线技术连起来的网络,因此也成为无线个人区域网WPAN,起作用范围很小,只在10m左右。
2、按照网络的使用者分类
◼公用网:电信公司出资建设的大型网络,所有按电信公司规定缴纳费用的人都可以使用这种网络。
◼专用网:某个部门为满足本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。如军队、铁路、银行、电力等系统均有本系统的专用网。
3、按交换技术分类
◼电路交换网
◼报文交换网
◼分组交换网
4、按传输介质分类
◼有线网络
◼无线网络
5、按拓扑结构分类
◼总线型网络
◼星型网络
◼环形网络
◼网状型网络
4、计算机网络的性能
-
4.1计算机网络的性能指标
1、速率
计算机发出的信号都是一串有0和1组成的数字,而每一个二进制数字中的0或1就是一个比特(bit)。比特是信息论中使用的信息量的单位。网络技术中速率指数据的传送速率,也称为数据率或比特率。速率单位是bit/s。(4*10^10 = 40Gbit/s ; 40G = 40GB = 40*1024^3*8bit )
2、带宽
◼原本指某个信号具有的频带宽度,也就是指该信号所包含的各种不同频率成分所占据的频率范围(通频带),这种意义上的带宽单位是赫兹。
◼在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某种信道所能通过的“最高数据率”。这种意义上带宽的单位是数据率的单位bit/s。
3、吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的实际的数据量。吞吐量受网络带宽或额定速率的限制。例如,一个1Gbit/s的以太网,其额定速率是1Gbit/s,其实际的吞吐量可能只有100Mbit/s。
4、时延
◼发送时延:指主机或路由器发送数据帧所需要的时间,也就是从发送数据的第一个比特算起,到最后一个比特发送完毕所需要的时间。
发送时延 = 数据帧长度(bit)/ 发送速率(bit/s)
◼传播时延:指数据(电磁波)在信道中传播一定距离所需要的时间。
传播时延 = 信道长度(m)/ 传播速率(m/s)
◼处理时延:主机或路由器收到分组时进行处理所花费的时间。
◼排队时延:分组在进入路由器之后排队等待处理所花费的时间。
5、时延带宽积
传播时延和带宽的乘积,称为以比特为单位的链路长度,表示信道内的总比特数。
6、往返时间RTT
指一次双向交互需要的时间
有效数据率 = 数据长度 /(发送时间+RTT)
7、利用率
◼信道利用率:指某信道有百分之几的时间是被利用的。
◼网络利用率:指全网络的信道利用率的加权平均值。
◼信道利用率并不是越高越好,当信道利用率增大时,该信道引起的排队时延会迅速增加。(所以说为什么校园网那么卡)
-
4.2计算机网络的非性能特征
1、费用
2、质量
3、标准化
4、可靠性
5、可拓展性和可升级性
6、易于管理和维护
5、计算机网络体系结构
-
5.1协议与划分层次
◼协议
想要在计算机网络中有条不紊地交换数据,就必须遵守一些约定好的规则。这些规则明确规定了所交换的数据格式以及有关的同步问题,这里的同步是指在一定的条件下应该发生什么事件(比如发送一个应答信息)。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。
协议三要素:
- 语法,指数据与控制信息的结构或格式。(怎么讲)
- 语义,指需要发出何种控制信息,完成何种动作以及做出何种响应。(讲什么)
- 同步,指事件实现顺序的详细说明。(什么时候讲)
◼分层
我们在编写代码的时候,为了方便差错以及避免主函数太过于复杂,会编写不同功能的函数来实现整段代码。在计算机网络中,为了避免数据传输模块过于复杂,也采用了分层的处理办法,令不同的层次解决不同的问题。
◼ 分层的好处:
- 各层之间是独立的。各层只需要知道该层通过层间的接口所提供的服务即可,每一层只实现相对独立的功能。
- 灵活性好。任何一层的技术发生变化时,只要层间接口关系不变,各层之间不会受到影响。
- 结构上可分割开。
- 易于实现和维护。这种结构使原本需要实现和调试一个庞大而复杂的系统转变为只需要实现和调试相对简单的若干子系统。
- 促进标准化工作。因为每一层的功能极其服务都有准确的说明。
◼各层需要完成的功能(可以包括一种,也可以包括很多种):
- 差错控制
- 流量控制
- 分段和重装
- 复用和分用
- 建立连接和释放
-
5.2具有五层协议的体系结构
◼计算机网络的各层及其协议的集合就是网络的体系结构。体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件。
◼OSI的七层协议体系结构的概念清楚,理论完整,但是它既复杂又不实用。而TCP/IP体系结构得到了非常广泛的应用。TCP/IP是一个四层的体系结构。在学习过程中采用折中的方法,综合两者的优点,采用一种只有五层协议的体系结构。
五层体系结构中各层的具体实现以及其细节在此不过多阐述。这是之后各章的主要内容。
◼在计算机网络中,数据在各层之间的传输过程所经历的变化可见下图
-
5.3实体、协议、服务和服务访问点
1、实体及协议
表示任何可发送或接收信息的硬件或软件进程。协议是控制两个或以上对等实体进行通信的规则的集合。协议是“水平的”,它控制对等实体间通信的规则。
2、服务
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下一层所提供的服务。服务是“垂直的”,它由下层向上层通过层间接口提供。层与层之间交换的数据的单位称为服务数据单元SDU。
3、服务访问点
同一系统中相邻两层的实体进行交互的地方称为服务访问点SAP。
结语
本篇文章只是大概地说明了一下计算机网络的主要内容,但是计算机网络还有很多复杂的内容以及细节没有涉及到,在之后可能会对各层进行说明。(这么写文章实在太累了,之后可能只挑一些重点的知识写)