type
date
slug
summary
tags
category
password
status
icon
一、计算机网络概述
1、计算机网络的概念
- 早期的一个最简单定义:互联、自治、计算机系统的集合
- 互连:指计算机之间可以通过有线或无线的方式进行数据通信
- 自治:指独立的计算机,它有自己的硬件和软件,可以单独运行使用
- 集合:指至少需要两台计算机
- 现阶段的一个较好的定义:
- 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)
- 这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
- internet (互连网) :
- 是一个通用名词,泛指由多个计算机网络互连而成的计算机网络
- 在这些网络之间可以使用任意的通信协议作为通信规则,不一定非要使用 TCP/IP 协议。
- Internet ( 互联网或因特网):
- 是一个专用名词,指当前全球最大的、开放的、由众多网络和路由器互连而成的特定计算机网络
- 采用 TCP/IP 协议族作为通信规则
2、计算机网络的组成
(1)从组成部分上
- 硬件:主要由主机(端系统)、通信链路(如双绞线、光纤)、交换设备(如路由器、交换机等) 和通信处理机(如网卡)等组成
- 软件:主要包括各种实现资源共享的软件和方便用户使用的各种工具软件(如网络操作系统、邮件收发程序、FTP 程序、聊天程序等)
- 协议:计算机网络的核心,规定了网络传输数据时所遵循的规范
(2)从工作方式上
- 边缘部分:
- 由所有连接到因特网上、供用户直接使用的主机组成
- 用来进行通信(如传输数据、音频或视频)和资源共享
- 核心部分:
- 由大量的网络和连接这些网络的路由器组成
- 为边缘部分提供连通性和交换服务

(4)从功能组成上
- 通信子网:
- 由各种传输介质、通信设备和相应的网络协议组成
- 使网络具有数据传输、交换、控制和存储的能力,实现联网计算机之间的数据通信
- 资源子网:
- 是实现资源共享功能的设备及其软件的集合
- 向网络用户提供共享其他计算机上的硬件资源、软件资源和数据资源的服务
3、计算机网络的功能
- 数据通信:最基本、最重要的功能
- 资源共享:包括软件共享、数据共享、硬件共享
- 分布式管理:当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而利用空闲计算机资源以提高整个系统的利用率。
- 提高可靠性:计算机网络中的各台计算机可以通过网络互为替代机。
- 负载均衡:将工作任务均衡的分配给计算机网络中的各台计算机。
4、电路、报文、分组交换
- 网络核心是计算机网络(特别是因特网)中最复杂的部分。
- 网络核心要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够与其他主机通信。
- 路由器 (Router) 是网络核心中最主要的设备,其主要功能是数据交换,即接收来自源主机系统的数据,并向目的主机系统转发。
- 在计算机网络中,路由器转发的数据称为数据分组(Packet Switching)。
(1)电路交换 (Circuit Switching)
- 电路交换:
- 电话交换机接通电话线的方式
- 交换的含义:转接——把一条电话线转接到另一条电话线,使它们连通起来
- 从通信资源分配角度来看:交换就是按照某种方式动态地分配传输线路的资源
- 电路交换的步骤
- 建立连接:分配通信资源
- 数据传输:一直占用通信资源
- 释放连接:归还通信资源
- 电路交换的关键点:用户始终占用着端到端的固定传输带宽

优点 | 缺点 |
通信时延小:通信线路为通信双方专用的,数据直达 | 建立连接时间长 |
有序传输:通信双方只有一条专用通信线路,数据只在这一线路上传输,不存在失序问题 | 线路独占,使用效率低 |
没有冲突:不同的通信双方拥有不同的信道,不会出现争用物理通道的问题 | 不便于差错控制:中间结点不具备存储和检验数据的能力,无法发现并纠正错误 |
适用范围广:适用于传输模拟信号,也适用于传输数字信号 | 难以规格化 |
实时性强:时延小所以实时性强 | 灵活性差 |
控制简单 | ㅤ |
(2)报文交换 (Message Switching)
- 信息拆分成小包(报文),大小无限制,有目的/源等信息
- 是分组交换的前身
- 报文被整个发送,数据交换的单位是报文
- 报文携带有目标地址、源地址等信息
- 报文交换在交换结点采用存储转发的传输方式
- 交换节点将报文整体接收完成后才能查找转发表,将整个报文转发到下一个节点
- 报文大小没有限制
优点 | 缺点 |
无需建立连接 | 引起转发时延:交换结点要将报文整体接收完后,才能查找转发表转发到下一个结点 |
动态分配线路 | 缓存开销大:报文大小没有限制,因此交换结点要有较大的缓存空间 |
提高线路可靠性:如果某条线路出现故障,会重新选择另一条线路 | 错误处理低效:报文较长时,发生错误的概率相对较大,重传整个报文的代价也很大 |
提高线路利用率:通信双方在不同的时间分段占用物理线路 | ㅤ |
提供多目标服务:一个报文可以同时发送给多个目的地址 | ㅤ |
(3)分组交换 (Packet Switching)
- 采用存储转发技术,解决了报文交换中报文过长的问题:
- 源结点在发送之前,先把较长的报文划分成若干较小的等长数据段
- 每个数据段前面添加一些由必要控制信息【源地址、目的地址和编号信息等】组成的首部,构成分组 (Packet)
- 分组交换还可以进一步分为面向连接的虚电路方式和无连接的数据报方式,这两种服务方式都由网络层提供

- 发送方:构建分组 ----> 发送分组
- 路由器:缓存分组 ----> 转发分组
- 接收方:接收分组 ----> 还原报文
优点 | 缺点 |
无建立时延 | 存在存储转发时延 |
线路利用率高 | 需要传输额外信息量(分组首部信息) |
简化存储管理:因为分组大小固定,管理起来就容易一些 | 当分组交换采用数据报服务,可能会出现失序、丢失、重复分组 |
加速传输:因为分组是逐个传输,这样前一个交换机的转发操作与后一个交换机的存储操作可同时进行【流水线方式】 | 当分组交换采用虚电路服务,虽然没有分组失序问题,但有呼叫建立,数据传输和虚电路释放三个过程 |
减小出错率和重复数据量:分组比报文小,因此出错概率也会比较小,即使出错也只需要重传出错的这一小部分即可 | ㅤ |
(4) 总结:三种交换对比
- 若要传送大量数据,并且数据传送时间远大于建立连接的时间,则使用电路交换效率高,然而计算机的数据传送往往是突发式的,采用电路交换时通信线路的利用率会很低
- 报文交换和分组交换都不需要建立连接(即预先分配通信资源),在传送计算机的突发数据时可以提高计算机通信线路的利用率
- 将报文构造成若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性

5、计算机网络的分类
- 按分布范围:
- 广域网 WAN:互联网的核心部分,采用交换技术
- 城域网 LAN:大多采用以太网技术
- 局域网 LAN:采用广播技术
- 个域网 PAN:采用无线技术
- 按传输技术:
- 广播式
- 点对点
- 按拓扑结构:
- 总线形
- 星形
- 环形
- 网状形

- 按交换技术:
- 电路交换
- 报文交换
- 分组交换
- 按使用者:
- 公用网
- 专用网
- 按传输介质:
- 有线网络
- 无线网络
- 注意:
- 广域网和局域网之间的差异在于:
- 所覆盖范围不同
- 所使用的协议和网络技术不同【广域网使用点对点技术,局域网使用广播技术】
- 广域网基本都属于点对点网络
- 点对点网络与广播式网络的重要区别:是否采用分组存储转发与路由器选择机制
- 若中央处理器之间的距离非常近(如仅 1 m 的数量级或更小),则一般称为多处理器系统,而不称为计算机网络
- 拓扑结构主要是指通信子网的拓扑结构
- 星形、总线型和环形网络多用于局域网
- 网状形网络多用于广域网
6、计算机网络的性能指标
- 性能指标可以从不同的方面来度量计算机网络的性能
(1)速率 Speed
- 比特:
- 计算机中的数据量的基本单位,也是信息论中信息量的单位
- 一个比特就是二进制数字中的一个 1 或 0
- 速率:
- 指连接到网络上的结点在数字信道上传送数据的速率【每秒传送多少个比特】
- 也称:数据传输速率,数据传输率、比特率或数据率
- 单位:b/s(比特/秒)
- 速率提高体现在单位时间内发送到链路上的比特数增多了,而并不是比特在链路上跑得更快了

(2)带宽 Bandwidth
- 带宽在模拟信号系统中的意义:
- 某个信号所包含的各种不同频率成分所占据的频率范围
- 单位:赫兹 Hz(kHz,MHz,GHz)`
- 带宽在计算机网络中的意义:
- 用来表示网络的通信线路所能传送数据的能力
- 即在单位时间内从网络中的某一点到另一点所能通过的最高数据率
- 单位:b/s(kb/s,Mb/s,Gb/s,Tb/s)`
- 数据传送速率 = min【主机接口速率,线路带宽,交换机或路由器的接口速率】

(3)吞吐量 Throughput
- 吞吐量:单位时间内通过某个网络 (或信道、接口) 的数据量
- 吞吐量常用在对实际网络的测量中,受网络的带宽或额定速率的限制
(4)时延 Delay
- 指数据 (一个报文或分组) 从网络 (或链路) 的一端传送到另一端所需的总时间
- 包括:
- 发送时延(传输时延) = $\frac{分组长度(b)}{发送速率(b/s)}$,结点将分组的所有比特推向链路所需的时间
- 传播时延 = $\frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)}$,一个比特从链路一端传播到另一端所需的时间
- 处理时延:数据在交换结点为存储转发而进行的--些必要处理所花的时间
- 排队时延:分组在进入路由器后要先在输入队列中排队等待处理
总时延=发送时延+传播时延+处理时延+排队时延

例题


(5)时延带宽积
- 时延带宽积 = 传播时延 * 信道带宽
- 指发送端发送的第一个比特即将到达终点时,发送端已发出了多少比特
- 也称为以比特为单位的链路长度

(6)往返时间 RTT
- 指从发送端发送数据分组开始,到发送端收到接收端发来的相应确认分组为止,总共耗费的时间
(7)利用率
- 信道利用率:用来表示某链路有百分之几的时间是被利用的 (有数据通过)
- 网络利用率:全网络所有链路的链路利用率的加权平均
- 根据排队论,当某链路的利用率增大时,该信道引起的时延也会迅速增加,因此信道利用率不是越高越好
- 如果令 D0 表示网络空闲时的时延,D 表示网络当前的时延
- 在适当的假定条件下,可以用下面的简单公式来表示 D、$D_0$ 和利用率 U 之间的关系:$$D=\dfrac{D_0}{1-U}$$

- 当网络利用率 U 到 50% 时,时延急剧增大
- 当网络利用率接近 100% 时,时延趋于无穷大
- 但是也不能使信道利用率过低,这会使宝贵的通信资源被浪费
(8)丢包率
- 丢包率:即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率
- 具体可分为:接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等
- 分组丢失的两种情况
- 分组在传输过程中出现误码,被传输路径中的结点点交换机(例如路由器)或目的主机检测出误码而丢弃
- 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞
- 丢包率反映了网络的拥塞情况:
- 无拥塞时路径丢包率为 0
- 轻度拥塞时路径丢包率为 1%~4%
- 严重拥塞时路径丢包率为 5%~15%
二、计算机网络体系结构与参考模型
1、计算机网络分层结构
(1)基本概念
- 计算机网络的体系结构就是这个计算机网络及其所应完成的功能的精确定义,它是计算机网络中的层次、各层的协议及层间接口的集合
- 体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件
- 分层的基本原则:
- 各层之间相互独立,每层只实现一种相对独立的功能
- 每层之间界面自然清晰,易于理解,相互交流尽可能少
- 结构上可分割开,每层都采用最合适的技术来实现
- 保持下层对上层的独立性,上层单向使用下层提供的服务
- 整个分层结构能促进标准化工作
- 具体地,层次结构的含义包括:
- 第 n 层的实体不仅要使用第 n-1 层的服务来实现自身定义的功能,还要向第 n+1 层提供本层的服务,该服务是第 n 层及其下面各层提供的服务总和
- 最低层只提供服务,是整个层次结构的基础;最高层面向用户提供服务
- 上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务;下一层所提供服务的实现细节对上一层透明
- 两台主机通信时,对等层在逻辑上有一条直接信道,表现为不经过下层就把信息传送到对方

(2)专用术语
1)实体
- 指任何可以发送或接受信息的硬件或软件进程
- 对等实体:同一层的实体
- 第 n 层中的活动元素称为第 n 层实体
- 第 n 层实体实现的服务为第 n+1 层所利用
- 每一层还有自己传送的数据单位,其名称、大小、含义也各有不同

- 协议数据单元 PDU:对等层之间传送的数据单位
- 服务数据单元 SDU:同一系统内,层与层之间交换的数据包
- 协议控制信息 PCI:控制协议操作的信息
PDU=SDU+PCI
- 每层的 PDU 都有一个通俗的名称:
- 物理层的 PDU 称为比特
- 数据链路层的 PDU 称为帧
- 网络层的 PDU 称为分组
- 传输层的 PDU 称为报文段
- 在各层间传输数据时,把从第 n+1 层收到的 PDU 作为第 n 层的 SDU,加上第 n 层的 PCI,就变成了第 n 层的 PDU,交给第 n-1 层后作为 SDU 发送,接收方接收时做相反的处理
2)协议
- 控制两个对等实体在“水平方向” 进行“逻辑通信”的规则的集合
- 这种通信实际上不存在,只是便于我们考虑问题

- 三要素:
- 语法:数据与控制信息的格式
- 语义:规定了所要完成的功能,需要发出何种控制信息、完成何种动作及做出何种应答
- 同步:执行各种操作的条件、时序关系等,即事件实现顺序的详细说明
- 服务访问点 SAP:同一结点内相邻两层的实体交换信息的逻辑接口
- 服务通过 SAP 提供给上层使用
- 第 n 层的 SAP 就是第 n+1 层可以访问第 n 层服务的地方
- 数据链路层的 SAP 为帧的“类型”字段
- 网络层的 SAP 为 IP 数据报的“协议”字段
- 传输层的 SAP 为“端口号”字段
4)服务
- 在协议控制下,两个对等实体间的逻辑通信使得本层能够为上一层提供服务
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是"水平的",服务是"垂直的"
- 实体看得见相邻下层所提供的的服务,但是并不知道实现该服务的具体协议
- 只有那些能够被高一层实体看得见的功能才能称为服务

- 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令
- OSI 参考模型将原语划分为 4 类:
- 请求 (Requst):服务用户 ----> 服务提供者,请求完成某项工作
- 指示 (Indication):服务提供者 ----> 服务用户,指示用户做某件事情
- 响应 (Response):服务用户 ----> 服务提供者,作为对指示的响应
- 证实 (Confirmation):服务提供者 ----> 服务用户,作为对请求的证实

- 计算机网络提供的服务按以下三种方式分类:
- 面向连接服务和无连接服务
- 可靠服务与和不可靠服务
- 有应答服务和无应答服务
2、参考模型

(1)OSI 参考模型
- 低三层统称为通信子网,它是为了联网而附加的通信设备,完成数据的传输功能
- 高三层统称为资源子网,它相当于计算机系统,完成数据的处理等功能

1)物理层(Physical Layer)
- 物理层主要定义数据终端设备(DTE)和数据通信设备(DCE)的物理与逻辑连接方法
- 传输单位:比特
- 功能:在物理媒体上为数据端设备透明地传输原始比特流
- 接口标准:EIA-232 C、EIA/TIARS-449、CCITT 的X.21 等
- 主要研究内容:
- 规定了通信链路与通信结点的连接所需电路接口的一些参数
- 规定了通信链路上传输的信号的意义和电气特征
- 注意:
- 传输信息所利用的一些物理介质(双绞线、光缆、无线信道等),并不在物理层协议之内而在物理层协议下面
- 因此,有人把物理介质当作第 0 层
2)数据链路层(Data Link Layer)
- 传输单位:帧
- 任务:将网络层传来的 IP 分组封装成帧,并可靠地传输到相邻结点的网络层
- 功能概括为:物理寻址、封装成帧、差错控制、流量控制和传输管理
- 数据链路层协议:SDLC,HDLC,PPP,STP和帧中继
3)网络层(Network Layer)
- 传输单位:数据报
- 任务:把网络层的协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务
- 关键问题:对分组进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互连等功能
- 因特网是一个很大的互联网,它由大量异构网络通过路由器(Router)相互连接起来
- 因特网的主要网络层协议是无连接的网际协议 IP 和许多路由选择协议
- 因特网的网络层也称网际层或 IP 层
- 网络层的协议: IP、IPX、ICMP、IGMP、ARP、RARP 和 OSPF 等
4)传输层 (Transport Layer)
- 传输单位:报文段
- 功能:
- 负责主机中两个进程之间的通信
- 为端到端连接提供可靠的传输服务,即流量控制、差错控制、服务质量、数据传输管理等服务
- 一台主机可同时运行多个进程,具有复用和分用的功能
- 复用:多个应用层进程可同时使用下面传输层的服务
- 分用:传输层把收到的信息分别交付给上面应用层中相应的进程
- 数据链路层提供的是点到点的通信:
- 主机到主机之间的通信
- 一个点是指一个硬件地址或IP地址,网络中参与通信的主机是通过硬件地址或地址标识的
- 传输层提供的是端到端的通信:
- 运行在不同主机内的两个进程之间的通信
- 一个进程由一个端口来标识
- 传输层及以上各层的通信才能叫端到端
- 传输层的协议:TCP、UDP
5)会话层(Session Layer)
- 允许不同主机上的各个进程之间进行会话
- 利用传输层提供的端到端的服务,向表示层提供它的增值服务,主要为表示层实体或用户进程建立连接并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)
- 负责管理主机间的会话进程,包括建立、管理及终止进程间的会话
- 可以使用校验点使通信会话在通信失效时从校验点继续恢复通信,实现数据同步
6)表示层(Presentation Layer)
- 主要处理在两个通信系统中交换信息的表示方式
- 不同机器采用的编码和表示方法不同,使用的数据结构也不同
- 采用抽象的标准方法定义数据结构,并采用标准的编码形式,使不同表示方法的数据和信息之间能互相交换
- 实现数据压缩、加密和解密
7)应用层(Application Layer)
- 是 OSI 参考模型的最高层,是用户与网络的界面
- 为特定类型的网络应用提供访问 OSI 参考模型环境的手段
- 用户的实际应用多种多样,因此应用层协议最多、最复杂
- 典型的协议有用于文件传送的 FTP、用于电子邮件的 SMTP、用于万维网的 HTTP 等
(2)TCP/IP 参考模型

1)网络接口层
- 类似于 OSI 的物理层和数据链路层
- 作用是从主机或结点接收IP分组,并把它们发送到指定的物理网络上
2)网际层
- 网际层(主机 - 主机)是TCP/IP 体系结构的关键部分
- 类似于 OSI 的网络层
- 网际层将分组发往任何网络,并为之独立地选择合适的路由,但它不保证各个分组有序地到达,各个分组的有序交付由高层负责
- 定义了标准的分组格式和协议
3)传输层
- 类似于 OSI 的传输层
4)应用层
- 应用层(用户 - 用户或进程 - 进程)包含所有的高层协议,如虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)
(3)TCP/IP 模型与 OSI 参考模型的比较

- 相似之处:
- 都采取分层的体系结构
- 都是基于独立的协议栈的概念
- 都可以解决异构网络的互连,实现世界上不同厂家生产的计算机之间的通信
- 不同之处:
- OSI 参考模型的最大贡献就是精确地定义了三个主要概念:服务、协议和接口;而TCP/IP 模型在这三个概念上却没有明确区分
- OSI 参考模型是 7 层模型,而 TCP/IP 模型是 4 层结构
- OSI 参考模型先有模型,后有协议规范,通用性良好,适合描述各种网络;TCP/IP 模型正好相反,即先有协议栈,后建立模型,因此不适合任何其他的非 TCP/IP 网络
- OSI 参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信;而 TCP/IP 模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式
(4)原理体系结构


基于通信协议栈进行通信的结点的数据传输过程

- 浏览器发送:
- 应用层:
- 按照
HTTP协议
的规定构建一个HTTP请求报文(请求要干什么) - 将
HTTP请求
的报文交给运输层处理 - 运输层:
- 给
HTTP请求
报文添加一个TCP首部(区分应用进程),使之成为TCP报文段
- 将
TCP报文段
交给网络层处理 - 网络层:
- 给
TCP报文段
添加一个IP首部(使之可以在互联网上传输),使之成为 `IP数据报 - 将
IP数据报
交付给数据链路层处理 - 数据链路层:
- 给
IP数据报
添加一个首部【让其能在一段链路上传输,能被相应主机接收】 和一个尾部【让目的主机检查所接收到的帧是否有误码】,使之成为帧
- 数据链路层将
帧
交给物理层 - 物理层:
- 将帧看作比特流,如果网络是以太网,它还会在帧上加前导码【让目的主机做好接收帧的准备】
- 接着将比特流变成相应信号发送到传输媒体
- 路由器转发:
- 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层【交付的实际是帧】
- 数据链路层将帧去掉首部和尾部后,将其交付给网络层【交付的实际是 IP 数据报】
- 网络层解析 IP 数据报首部,从中提取目的网络地址,然后查找自身路由表,确定转发端口,接着数据链路层封装,物理层再封装,将比特流变成信号发送出去
- 服务器接收:
- 物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层【交付的实际是帧】
- 数据链路层收到帧后,去除首部和尾部,将其交付给网络层【交付的实际是 IP 数据报】
- 网络层收到 IP 数据报后,去除 IP 首部,将其交付给运输层【交付的实际是 TCP 报文】
- 运输层收到 TCP 报文后,从中得知是与哪个端口上的进程通信,去除 TCP 头部后,交付给应用层【交付的实际是 HTTP 请求报文】
- 应用层收到 HTTP 请求报文后,将其解析给对应进程,并执行相关操作,返回 HTTP响应报文
- 作者:救赎之旅
- 链接:https://jiushuself.nyc.mn/article/6206b896-0515-44bc-9a3a-8c3a8a4e5c19
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。