1 计算机网络基础
¶ 1.1 计算机网络在信息时代的作用
网络是指“三网”,即电信网络、有线电视网络和计算机网络。
计算机网络向用户提供的最重要的功能 :
-
连通性——计算机网络使上网用户之间都可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。
-
共享——即资源共享。可以是信息共享、软件共享,也可以是硬件共享。
¶ 1.2 因特网概述
网络(network)
- 由若干结点(node)和连接这些结点的链路(link)组成。
- 互联网是“网络的网络”(network of networks)。
- 连接在因特网上的计算机都称为主机(host)。
“结点”
- 在网络中的 node 的标准译名是“结点”而不是“节点”。
- 但数据结构的树(tree)中的 node 应当译为“节点”。
网络与因特网
- 网络把许多计算机连接在一起。
- 因特网则把许多网络连接在一起。
因特网发展的三个阶段
- 第一阶段是从单个网络 ARPANET 向互联网发展的过程。 1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。人们把 1983 年作为因特网的诞生时间。 internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。 Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET。
- 第二阶段的特点是建成了三级结构的因特网。 三级计算机网络,分为主干网、地区网和校园网(或企业网)。
- 第三阶段的特点是逐渐形成了多层次 ISP 结构的因特网。出现了因特网服务提供者 ISP (Internet Service Provider)。
根据提供服务的覆盖面积大小以及所拥有的IP 地址数目的不同,ISP 也分成为不同的层次。
20 世纪 90 年代。由欧洲原子核研究组织 CERN 开发的万维网 WWW (World Wide Web)被广泛使用在因特网上,大大方便了广大非网络专业人员对网络的使用,成为因特网的这种指数级增长的主要驱动力。
¶ 1.3 因特网的组成
¶ 1.3.1 因特网的边缘部分
从因特网的工作方式上看,可以划分为以下的两大块:
- 边缘部分 由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
- 核心部分 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
处在因特网边缘的部分就是连接在因特网上的所有的主机。这些主机又称为端系统(end system)。
“主机 A 和主机 B 进行通信”,实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。
即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。或简称为“计算机之间通信”
两种通信方式
在网络边缘的端系统中运行的程序之间的通信方式通常可划分为两大类:
- 客户服务器方式(C/S 方式) 即Client/Server方式
- 对等方式(P2P 方式) 即 Peer-to-Peer方式
1. 客户服务器方式
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
客户软件的特点: + 被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。 + 不需要特殊的硬件和很复杂的操作系统。
服务器软件的特点: + 一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。 + 系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。 + 一般需要强大的硬件和高级的操作系统支持。
2. 对等连接方式
对等连接(peer-to-peer,简写为 P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
双方都可以下载对方已经存储在硬盘中的共享文档。
对等连接方式的特点: 对等连接方式从本质上看仍然是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器。
¶ 1.3.2 因特网的核心部分
网络核心部分是因特网中最复杂的部分。
网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。
在网络核心部分起特殊作用的是路由器(router)。
路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
“交换“的含义
在电路交换的角度看,“交换”(switching)的含义就是转接——把一条电话线转接到另一条电话线,使它们连通起来。 从通信资源的分配角度来看,“交换”就是按照某种方式动态地分配传输线路的资源。
分组交换的特点:
在发送端,先把较长的报文划分成较短的、固定长度的数据段。
每一个数据段前面添加上首部构成分组。
分组交换的传输单元
分组交换网以“分组”作为数据传输单元。
依次把各分组发送到接收端(假定接收端在左边)。
分组首部的重要性
每一个分组的首部都含有地址等控制信息。
分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。
用这样的存储转发方式,最后分组就能到达最终目的地。
接收端收到分组后剥去首部还原成报文。
最后,在接收端把收到的数据恢复成为原来的报文。
这里我们假定分组在传输过程中没有出现差错,在转发时也没有被丢弃。
因特网的核心部分总结
- 因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。
- 在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
- 主机的用途是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器的用途则是用来转发分组的,即进行分组交换的。
¶ 1.5 计算机网络的分类
不同作用范围的网络
- 广域网 WAN (Wide Area Network)
- 局域网 LAN (Local Area Network)
- 城域网 MAN (Metropolitan Area Network)
- 个人区域网 PAN (Personal Area Network)
从网络的使用者进行分类
- 公用网 (public network)
- 专用网 (private network)
接入网 AN (Access Network),它又称为本地接入网或居民接入网。
由 ISP 提供的接入网只是起到让用户能够与因特网连接的“桥梁”作用。
¶ 1.6 计算机网络的性能
1.速率
速率即数据率(data rate)或**比特率(bit rate)**是计算机网络中最重要的一个性能指标。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等
速率往往是指额定速率或标称速率。
2.带宽
“带宽”是数字信道所能传送的“最高数据率”的同义语,单位是“比特每秒”,或 b/s (bit/s)
在时间轴上信号的宽度随带宽的增大而变窄。
3.吞吐量
吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量受网络的带宽或网络的额定速率的限制。
4. 时延(delay 或 latency)
传输时延(发送时延 )数据块长度/信道带宽
发送数据时,数据块从结点进入到传输媒体所需要的时间。
也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延 信道长度/信号在信道的传输速率 电磁波在信道中需要传播一定的距离而花费的时间。
信号传输速率(即发送速率)和信号在信道上的传播速率是完全不同的概念。
处理时延 交换结点为存储转发而进行一些必要的处理所花费的时间。
排队时延 结点缓存队列中分组排队所经历的时延。
排队时延的长短往往取决于网络中当时的通信量。
每种时延产生的地方
5.时延带宽积
时延带宽积=传播时延*带宽
链路的时延带宽积也称为是以bit为单位的链路长度。
6. 利用率
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率则是全网络的信道利用率的加权平均值。
信道利用率并非越高越好。
时延与网络利用率的关系
根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。
若令 D0 表示网络空闲时的时延,D 表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示 D 和 D0之间的关系:
U 是网络的利用率,数值在 0 到 1 之间。
¶ 1.7 计算机网络的体系结构
相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。 (不容易实现)
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
¶ 1.7.1 划分层次的必要性
计算机网络中的数据交换必须遵守事先约定好的规则。
这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
网络协议的组成要素
- 语法 数据与控制信息的结构或格式 。
- 语义 需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步 事件实现顺序的详细说明。
计算机网络的体系结构
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。
体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
¶ 1.7.2 具有五层协议的体系结构
TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层(没有具体内容)。
和ISO折中之后,综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
- 应用层(application layer)
- 运输层(transport layer)
- 网络层(network layer)
- 数据链路层(data link layer)
- 物理层(physical layer)
¶ 1.7.3 实体、协议、服务和服务访问点
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
本层的服务用户只能看见服务而无法看见下面的协议。
下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
协议很复杂 协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。