🥎第一章——计算机网络体系结构
type
status
date
slug
summary
tags
category
icon
password
类别
内容
计算机网络概述
概念
计算机网络(简称网络)由若干节点和连接这些节点的链路组成。
- internet(互连网)
- 通用名词,泛指由多个计算机网络互连而成的计算机网络
- 网络之间可以使用任意的通信协议作为通信规则,不一定非要使用TCP/IP协议
- Internet(互联网)
- 专用名词,特指当前全球最大的、开放的、由众多网络和路由器互连而成的特定计算机网络
- 采用TCP/IP协议族作为通信规则
发展
- 从单个网络ARPANET向互联网发展
- 逐步建成三级结构的因特网
- 逐步形成多层次ISP结构的因特网
ISP:即“网络服务提供商
1983年为因特网诞生时间。
因特网正式标准的四个阶段
- 因特网草案
- 建议标准(称为RFC文档)
RFC:即”Request For Comments”
- 草案标准
- 因特网标准
并非所有RFC文档都是因特网标准
组成
- 从组成部分来看:
- 硬件:主机、通信链路、交换设备以及通信处理机等(后续详细讲解)
- 软件:各种实现资源共享的软件和方便用户使用的各种工具软件
- 协议:计算机网络的核心,规定了网络传输数据时所遵循的规范
- 从工作方式来看:
- 边缘部分:所有连接到互联网上的供用户直接使用的主机
- 进行通信与资源共享
- 核心部分:大量网络和连接这些网络的路由器
- 为边缘部分提供连通性和交换服务

- 从功能组成来看:
- 通信子网:各种传输介质、通信设备以及相应的网络协议
- 实现联网计算机之间的数据通信
- 资源子网:实现资源共享功能的设备及其软件的集合
- 向网络用户提供资源共享服务
功能
计算机网络主要有以下五个功能:
- 数据通信:计算机网络最基本和最重要的功能
- 资源共享:既可以是软件共享、数据共享,又可以是硬件共享
- 分布式处理:当计算机网络中的某个计算机系统负荷过重时,可以将其处理的某个复杂任务分配给网络中的其他计算机系统,从而提高空闲计算机资源来提高整个系统的利用率
- 提高可靠性:计算机网络中的各台计算机可以通过网络互为替代机
- 负载均衡:将工作任务均衡地分配到计算机网络中的各台计算机
三种交换
- 电路交换:最典型的电路交换网就是传统电话网,电路交换分为三步:
- 连接建立
- 数据传输
- 连接释放


- 报文交换
数据交换的单位是报文,用户数据加上源地址、目的地址等信息后,后封装成报文(message)。报文交换采用存储转发技术,整个报文先传送到相邻的结点,全部存储后查找转发表,转发到下一个结点,如此重复,直至到达目的结点。每个报文都可单独选择到达目的结点的路径。

- 分组交换
分组交换也采用存储转发技术,但解决了报文交换中报文过长的问题。若报文太长,则对交换结点的缓存容量就有很大的需求,在错误处理方面也比较低效。源结点在发送之前,先把较长的报文划分成若干较小的等长数据段,在每个数据段前面添加一些由必要控制信息(如源地址、目的地址和编号信息等)组成的首部,构成分组(Packet)。




三种数据交换方式的比较


- 当传送数据量很大且其传送时间远大于呼叫时间时,采用电路交换较为合适
- 当端到端的通路由多段链路组成时,采用分组交换传送数据较为合适
- 要提高整个网络的信道利用率,分组交换>报文交换>电路交换
分类
- 按分布范围分:
- 广域网(WAN)
- 提供长距离通信
- 覆盖范围通常是直径为几十到几千千米的区域
- 是互联网的核心部分
- 连接广域网的各节点交换机的链路一般都是高速链路
- 城域网(MAN)
- 覆盖区域的直径为5~50km
- 大多采用以太网技术
- 局域网(LAN)
- 一般用主机通过高速线路相连
- 覆盖范围较小,通常直径为几十到几千米的区域
- 传统上,局域网使用广播技术,而广域网使用交换技术
- 个人区域网(PAN)
- 用无线技术连接起来的网络
- 也称为“无线个人局域网”(WPAN)
- 按传输技术分类
- 广播式网络
- 所有联网计算机都共享一个公共通信信道
- 局域网基本都采用广播式通信技术,广域网中的无线、卫星通信网络也采用广播式通信技术
- 点对点网络
- 每条物理线路连接一对计算机
- 按拓扑结构分类
- 总线形网络
- 单根传输线把计算机连接起来
- 总线任意一处对故障敏感
- 星形网络
- 每个终端或计算机都以单独的线路与中央设备相连
- 中央设备对故障敏感
- 环形网络
- 所有计算机接口设备连接成一个环
- 环中信号是单向传输的
- 网状网络
- 一般情况下,每个节点至少由两条路径与其他节点相连
- 多用在广域网
- 控制复杂、线路成本高
- 按使用者分:
- 公用网
- 专用网
- 按传输介质分类:
- 有线网络
- 双绞线网络
- 同轴电缆网络等
- 无线
- 蓝牙
- 微波
- 无线电

性能指标
- 速率:指连接到网络上的结点在数字信道上传送数据的速率,也称数据传输速率、数据传输率、数据率或比特率,单位为b/s(比特/秒)或bits(有时也写为bps)。当数据率较高时,可用kb/s(k=10²)、Mb/s(M=10°)或Gb/s(G=10°)表示。
数据量单位与数据率单位的辨析

- 数据单位中:1T = 2^10G = 2^20M = 2^30K = 2^40B(1B = 8b)
- 数据率单位中:1T = 10^3G = 10^6M = 10^9K = 10^12B
- 实际问题1:固态硬盘容量偏差:商家出售250GB容量硬盘,电脑显示232GB。

- 实际问题2:文件传输时间计算:文件大小为100MB,传输速率为100Mbps

- 带宽(Bandwidth)。带宽原本表示通信线路允许通过的信号频率范围,单位是赫兹(Hz)。但在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据传输速率”的同义语,单位是比特/秒(b/s)。
- 吞吐量(Throughput)。指单位时间内通过某个网络(或信道、接口)的实际数据量。吞吐量常用在对实际网络的测量中,受网络带宽的限制。
- 时延(Delay)。指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需的总时间,它由4部分构成:发送时延、传播时延、处理时延和排队时延。
- 发送时延,也称传输时延。结点将分组的所有比特推向链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。
- 发送时延=分组长度/发送速率
- 传播时延。电磁波在信道(传输介质)中传播一定的距离所花的时间,即一个比特从链路的一端传播到另一端所需的时间。
- 传播时延=信道长度/电磁波在信道上的传播速率
- 处理时延。数据在交换结点为存储转发而进行的一些必要处理所花的时间。例如,分析分组的首部、从分组中提取数据、差错检验或查找合适的路由等。
- 排队时延。分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发。这就产生了排队时延。
处理时延和排队时延通常可以忽略不记,除非另有说明
常见的传播速率:
自由空间:3 * 10^8m/s
铜线:2.3 * 10^8m/s
光纤:2.3 * 10^8m/s
- 时延带宽积。指发送端发送的第一个比特即将到达终点时,发送端已发出了多少比特,又称以比特为单位的链路长度,即时延带宽积=传播时延x信道带宽。如下图所示,考虑一个代表链路的圆柱形管道,其长度表示链路的传播时延,横截面积表示链路带宽,则时延带宽积表示该管道可以容纳的比特数量。

- 往返时延(Round-TripTime,RTT)。指从发送端发出一个短分组,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认)总共经历的时延。在互联网中,往返时延还包括各中间结点的处理时延、排队时延及转发数据时的发送时延。
- 信道利用率。用以指出某个信道有百分之多少的时间是有数据通过的。
- 信道利用率=有数据通过时间/(有+无)数据通过时间
信道利用率的增长问题:
- 根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加,因此信道利用率并非越高越好
- D = D0/(1 - u) (D表示时延,u表示信道利用率)

- 信道利用率也不能太低,否则宝贵的通信资源会被白白浪费
- 信道利用率应动态调整,保持在一个合理范围
计算机网络体系结构
计算机网络的各层及其协议的集合称为网络的体系结构(Architecture)。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
计算机网络体系结构通常都具有可分层的特性,它将复杂的大系统分成若干较容易实现的层次。
分层结构
分层的基本原则如下:
- 每层都实现一种相对独立的功能,降低大系统的复杂度。
- 各层之间的接口自然清晰,易于理解,相互交流尽可能少。
- 各层功能的精确定义独立于具体的实现方法,可以采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构应能促进标准化工作。
分层结构中的基本概念:
- 实体:在计算机网络分层结构中,第n层中的活动元素通常称为第n层实体。具体来说,实体指任何可发送或接收信息的硬件或软件进程,通常是某个特定的软件模块。
- 对等层:不同机器上的同一层称为对等层,同一层的实体称为对等实体。第n层实体实现的服务为第n+1层所用。在这种情况下,第n层称为服务提供者,第n+1层则服务于用户。
- 协议数据单元(PDU):在计算机网络体系结构中,对等层之间传送的数据单位称为该层的协议数据单元(PDU),第n层的PDU记为n-PDU。各层的PDU都分为数据和控制信息两部分。
- 服务数据单元(SDU):为完成用户所要求的功能而传送的数据。第n层的SDU记为n-SDU。
- 协议控制信息(PCI):控制协议操作的信息。第n层的PCI记为n-PCI。
每层的协议数据单元(PDU)都有一个通俗的各称
物理层的PDU称为比特流
数据链路层的PDU称为帧
网络层的PDU称为分组
传输层的PDU称为报文段
- 当在各层之间传输数据时,将从第n+1层收到的PDU作为第n层的SDU,加上第n层的PCI,就封装成了第n层的PDU,交给第n-1层后作为SDU发送,接收方接收时做相反的处理,因此可知三者的关系为
- n-SDU+n-PCI=n-PDU=(n-1)-SDU

层次结构的含义包括如下几方面:
- 第n层的实体不仅要使用第n-1层的服务来实现自身定义的功能,而且要向第n+1层提供本层的服务,该服务是第n层及其下面各层提供的服务总和。
- 最低层只提供服务,是整个层次结构的基础;最高层面向用户提供服务。
- 上一层只能通过相邻层间的接口使用下一层的服务,而不能调用其他层的服务。
- 当两台主机通信时,对等层在逻辑上有一个直接信道,表现为能直接将信息传送到对方。
协议、接口、服务
协议
- 为了在网络中进行数据交换而建立的这些规则、标准或约定称为网络协议(NetworkProtocol),是控制在对等实体之间进行通信的规则的集合,是水平的。
- 不对等实体之间是没有协议的,如用TCP/IP协议栈通信的两个结点A和结点B,结点A的传输层和结点B的传输层之间存在协议,但结点A的传输层和结点B的网络层之间不存在协议。
- 协议由语法、语义和同步三部分组成
- 语法。数据与控制信息的格式。例如,TCP报文段格式就是由TCP协议的语法定义的。
- 语义。即需要发出何种控制信息、完成何种动作及做出何种应答。例如,在建立TCP连接的三次握手时所执行的操作就是由TCP协议的语义定义的。
- 同步(或时序)。执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。例如,建立TCP连接的三次握手操作的时序关系就是由TCP协议的同步定义的。
接口
- 同一结点内相邻两层的实体交换信息的逻辑接口称为服务访问点(ServiceAccessPoint,SAP)。
- 每层只能为紧邻的层之间定义接口,而不能跨层定义接口。
- 服务是通过SAP提供给上层使用的,第n层的SAP就是第n+1层可以访问第n层服务的地方。
例如,在5层体系结构中:
数据链路层的服务访问点为帧的“类型”字段
网络层的服务访问点为IP数据报的“协议”字段
传输层的服务访问点为“端口号”字段
服务
- 服务是指下层为紧邻的上层提供的功能调用,是垂直的。
- 对等实体在协议的控制下,使得本层能为上层提供服务,但要实现本层协议,还需要使用下层提供的服务。
- 当上层使用下层提供的服务时,必须与下层交换一些命令,这些命令称为服务原语
OSI参考模型将原语划分为四类:
1)请求(Request)。由服务用户发往服务提供者,请求完成某项工作。
2)指示(Indication)。由服务提供者发往服务用户,指示用户做某件事情。
3)响应(Response)。由服务用户发往服务提供者,作为对指示的响应。
4)证实(Confirmation)。由服务提供者发往服务用户,作为对请求的证实。


计算机网络提供的服务可按以下三种方式分类
- 面向连接服务与无连接服务
- 在面向连接服务中,通信前双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信能正常进行,传输结束后释放连接和占用的资源。因此这种服务可分为连接建立、数据传输和连接释放三个阶段。
- TCP就是一种面向连接服务的协议。
- 在无连接服务中,通信前双方不需要先建立连接,需要发送数据时可直接发送,将每个带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。这种服务常被描述为“尽最大努力交付”,是一种不可靠的服务。
- IP、UDP就是一种无连接服务的协议。
- 可靠服务和不可靠服务
- 可靠服务是指网络具有纠错、检错、应答机制,能保证数据正确、可靠地传送到目的地。
- 不可靠服务是指网络只是尽量让数据正确、可靠地传送到目的地,是一种尽力而为的服务。对于提供不可靠服务的网络,其网络的正确性、可靠性要由应用或用户来保障。
- 用户收到信息后要判断信息的正确性,若不正确,则用户就要把出错信息报告给信息的发送者,以便发送者采取纠正措施。通过用户的这些措施,可将不可靠服务变成可靠服务。
- 有应答服务和无应答服务
- 有应答服务是指接收方在收到数据后向发送方给出相应的应答,该应答由传输系统内部自动实现,而不由用户实现。发送的应答既可以是肯定应答,又可以是否定应答,通常在接收到的数据有错误时发送否定应答。
- 文件传输服务就是一种有应答服务。
- 无应答服务是指接收方收到数据后不自动给出应答。若需要应答,则由高层实现。
- WWW服务,客户端收到服务器发送的页面文件后不给出应答。
协议、接口、服务三者之间的关系如下图所示:

注意:
1. 下面的协议对上层的服务用户是透明的
2. 并非在一层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才称为服务。
ISO/OSI模型(法律上的国际标准)
国际标准化组织(ISO)提出的网络体系结构模型称为开放系统互连参考模型(OSI/RM),通常简称为OSI参考模型。OSI参考模型有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。低三层统称通信子网,是为联网而附加的通信设备,完成数据的传输功能;高三层统称资源子网,相当于计算机系统,完成数据的处理等功能。传输层承上启下。

OSI模型各层的功能
- 物理层
- 物理层的传输单位是比特,功能是在物理介质上为数据端设备透明地传输原始比特流。物理层主要定义数据终端设备(DTE)和数据通信设备(DCE)的物理与逻辑连接方法。物理层接口标准很多,如ELA-232C、EIA/TLARS-449、CCITT的X21等
- 通信链路与通信结点的连接需要一些电路接口,物理层规定了这些接口的一些参数,如机械形状和尺寸、交换电路的数量和排列等,例如笔记本电脑上的网线接口。
- 物理层规定了通信链路上所传输的信号的意义和电气特征。例如,若规定信号X代表数字0,则当结点传输0时就发出信号X,而当结点接收到信号X时就知道收到的是0。
注意: 传输信息所用的一些物理介质(如双绞线、光缆、无线信道等)并不在物理层协议之内,而在物理层协议下面。因此,有人将物理介质当作第0层。
- 数据链路层
- 数据链路层的传输单位是帧。两台主机之间的数据传输总是在一段一段的链路上传送的,这就需要使用专门的链路层协议。
- 数据链路层将网络层交来的IP分组封装成帧,并且可靠地传输到相邻结点的网络层。
- 主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
- 典型的数据链路层协议有SDLC、HDLC、PPP、STP和帧中继等。
- 网络层/网际层/IP层
- 网络层的传输单位是数据报。它关心的是通信子网的运行控制,主要任务是将网络层的协议数据单元(分组)从源结点传输到目的结点,为分组交换网上的不同主机提供通信服务。
- 关键问题是对分组进行路由选择实现流量控制、拥塞控制、差错控制和网际互连(与TCP/IP模型的不同之处)等功能。
- 网络层的协议有IP、IPX、ICMP、IGMP、ARP、RARP、RIP和OSPF等。
- 传输层/运输层
- 传输层负责主机中两个进程之间的通信,功能是为端到端连接提供可靠的传输服务(与TCP/IP模型的不同之处),即为端到端连接提供流量控制、差错控制、服务质量、数据传输管理等服务。
- 数据链路层提供的是点到点通信,传输层提供的是端到端通信,两者不同。通俗地说,点到点可理解为主机和主机之间的通信一个点是指一个硬件地址或IP地址,网络中参与通信的主机是通过硬件地址或IP地址来标识的:端到端通信是指运行在不同主机内的两个进程之间的通信一个进程由一个端口来标识,所以称为端到端通信。
- 通过传输层的屏蔽,高层用户看不到通信子网的交替和变化。因为一台主机可同时运行多个进程,所以传输层具有复用和分用的功能。复用是指多个应用层进程可同时使用下面传输层的服务,分用是指传输层将收到的信息分别交付给上面应用层中相应的进程。
- 传输层的协议有TCP、UDP。
- 会话层(
- 会话层允许不同主机上的各个进程之间进行会话。这种服务主要为表示层实体或用户进程建立连接,并在连接上有序地传输数据,这就是会话,也称建立同步(SYN)。
- 会适层负责管理主机间的会话进程,包括建立、管理和终止进程间的会话。会话层包含一种称为检查点的机制来维持可靠会话,使通信会话在通信失效时从检查点继续恢复通信,即断点下载的原理。
- 表示层
- 表示层主要处理在两个通信系统中交换信息的表示方式。不同机器采用的编码和表示方法不同,为了使不同表示方法的数据和信息之间能够互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的编码形式。此外,数据压缩、加密和解密也是表示层的功能。
- 应用层
- 应用层是OSI参考模型的最高层,是用户与网络的接口。应用层为特定类型的网络应用提供访问OSI参考模型环境的手段。用户的实际应用多种多样,这就要求应用层采用不同的应用协议来解决不同类型的应用要求,因此应用层是最复杂的一层,使用的协议也最多。典型的协议有用于文件传送的FTP、用于电子邮件的SMTP、用于万维网的HTTP等。
因为外界噪声的干扰,所以原始的物理连接在传输比特流时可能发生错误。 结点A想向结点B传输数字0,于是发出信号X;但在传输过程中受到干扰,信号X变成了信号Y,而信号Y又刚好代表1,结点B接收到信号Y时,误以为结点A传送了数字1,从而发生差错。数据链路层协议应能检测出这些差错,然后将收到的错误信息丢弃。 在两个相邻结点之间传送数据时,结点A的发送速率可能比结点B的接收速率快,若不加以控制,则结点B就会丢弃很多来不及接收的正确数据,造成传输线路效率下降。流量控制可以协调两个结点的速率,使结点A的发送速率刚好是结点B的接收速率。 广播式网络在数据链路层还要处理新的问题,即如何控制对共享信道的访问。数据链路层的一个特殊子层——介质访向子层就是专门处理这个问题的。
TCP/IP模型(事实上的国际标准)
TCP/IP模型从低到高依次为网络接口层(对应OSI参考模型的物理层和数据链路层)、网际层、传输层和应用层(对应OSI参考模型的会话层、表示层和应用层)。TCP/IP因为得到广泛应用而成为事实上的国际标准。

TCP/IP模型各层功能
- 网络接口层
- 网络接口层的功能类似于OSI参考模型的物理层和数据链路层。它表示与物理网络的接口,但实际上TCP/IP本身并未真正描述这一部分,只是指出主机必须使用某种协议与网络连接,以便在其上传输IP分组。具体的物理网络既可是各种类型的局域网,如以太网、令牌环网、令牌总线网等,又可是诸如电话网、SDH、X.25、顿中继和ATM等公共数据网络。
- 网络接口层的作用是从主机或结点接收IP分组,并将它们发送到指定的物理网络上。
- 网际层
- 网际层(主机-主机)是TCP/IP体系结构的关键部分,功能上它与OSI参考模型的网络层非常相似。网际层将分组发往任何网络,并为其独立地选择合适的路由,但不保证各个分组有序地到达,各个分组的有序和可靠交付由高层负责。网际层定义了标准的分组格式和协议,即IP。当前采用的IP是第4版,即IPv4,它的下一版本是IPv6。
- 传输层
- 传输层(应用-应用或进程-进程)的功能同样与OSI参考模型中的传输层类似,即使得发送端和目的端主机上的对等实体进行会话。
- 传输层主要使用以下两种协议:
- 传输控制协议(TransmissionControlProtocol,TCP)。它是面向连接的,传输数据之前必须先建立连接,能够提供可靠的交付。数据传输的单位是报文段。
- 用户数据报协议(UserDatagramProtocol,UDP)。它是无连接的,不保证提供可靠的交付,只能提供“尽最大努力交付”。数据传输的单位是用户数据报。
- 应用层
- 应用层(用户-用户)包含所有的高层协议,如虚拟终端协议(Telnet)、文件传输协议(FTP)、域名解析服务(DNS)、电子邮件协议(SMTP)和超文本传输协议(HTTP)。
IP是互联网中的核心协议;TCP/IP可为各式各样的应用提供服务(所谓everythingoverIP),TCP/IP还允许IP在由各种网络构成的互联网上运行(所谓IPovereverything)。因此,互联网才会发展到今天的规模。
OSI模型与TCP/IP模型的比较
相似之处
- 二者都采取分层的体系结构,且分层的功能也大体相似。
- 二者都是基于独立的协议栈的概念。
- 二者都可解决异构网络的互连,实现不同厂家生产的计算机之间的通信。
差别
- OSI参考模型的最大贡献是精确定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。而TCP/IP模型在这三个概念上没有明确区分。
- OSI参考模型是7层模型,而TCP/IP模型是4层结构。TCP/IP模型将OSI参考模型的表示层和会话层的功能合并到了应用层,还将数据链路层和物理层合并为网络接口层。
- OSI参考模型先有模型,后有协议规范,通用性良好,适合描述各种网络。TCP/IP模型正好相反,即先有协议栈,后建立模型,因此不适合任何其他的非TCP/IP网络。
- OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式。

总结
OSI参考模型和TCP/IP模型都不是完美的,对二者的批评都很多。
OSI参考模型的设计者从一开始就试图建立一个全世界的计算机网络都要遵循的统一标准。从技术角度看,他们追求一种完美的理想状态,导致基于OSI参考模型的软件效率极低。OSI参考模型缺乏市场与商业动力,结构复杂,运行效率低,这是它未能达到预期目标的重要原因。
学习计算机网络时,我们往往采取折中的办法,即综合OSI参考模型和TCP/IP模型的优点,采用一种如下图所示的只有5层协议的体系结构。


Last update: 2024-06-26
🎉此博客仅为本人记录生活,技术交流所用🎉
-- 如有侵权,请与我联系 ---
-- 感谢您的支持😁 ---