第1章 概述
1.1 计算机网络在信息时代中的作用
21世纪的一些重要特征就是数字化,网络化和信息化,它是一个以网络为核心的信息时代,网络现在已经成为信息社会的命脉和发展知识经济的重要基础。
三大类网络
电信网络,有线电视网络和计算机网络,其中发展最快并起着核心作用的则是计算机网络
互联网的发展
20世纪90年代以后,以Internet为代表的计算机网络得到了飞速的发展,已从最初的仅供美国人使用的免费教育科研网络逐步发展成为供全球使用的商业网络,成为全球最大的和最重要的计算机网络。
Internet是人类子印刷术发明以来在存储和交换信息领域的最大变革,现在人们的生活,工作,学习和交往都已离不开互联网
Internet的两种中文译名:
- 因特网(未得到推广)
- 互联网(Internet是由数量极大的各种计算机网络互连起来的)
互联网的两个重要基本特点
- 连通性:互联网使上网用户之间,不管相距多远,都可以非常便捷,非常经济地交换各种信息,好像这些用户终端都彼此直接连通一样。
- 共享:所谓共享就是指资源共享,可以是信息共享,软件共享,也可以是硬件共享。
1.2 互联网概述
1.2.1 网络的网络
起源于美国的互联网现已发展成为世界上最大的覆盖全球的计算机网络。
计算机网络由若干节点和连接这些节点的链路组成。
如下图所示,三台计算机通过三条链路连接到一个集线器上,组成一个非常简单的计算机网络。
多个网络通过路由器相互连接起来,构成一个覆盖范围更大的计算机网络。这样的网络成为互连网,如下图所示,因此互连网是“网络的网络”
与互连网相连的计算机常称为主机(host),路由器是一种特殊的计算机,不能称为主机
这样,我们就初步建立了下面的基本概念:
网络把许多计算机连接在一起,而互连网则把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机
1.2.2 互联网基础结构发展的三个阶段
-
从单个网络ARPANET向互连网发展的过程。
1969年美国国防部创建的ARPANET是互联网的雏形,1983年TCP/IP协议成为ARPANET上的标准协议,所有使用TCP/IP协议的计算机都能相互通信,人们把1983年作为互联网的诞生时间。internet 和 Internet 的区别:
- 以小写字母 i 开始的internet是一个通用名词,泛指由多个计算机网络互连而成的计算机网络
- 以大写字母 I 开始的Internet则是一个专有名词,指当前全球最大的,开放的,由众多网络相互连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则,且其前身是美国的ARPANET
-
三级结构的互联网的建成
三级结构网络,分为主干网,地区网和校园网(或企业网),这种三级结构网络扩大了互联网的使用范围,地区网可以完成本地区管辖内各校园网或企业网之间的相互通信,而主干网可以使不同地区之间的用户相互通信。 -
全球范围的多层次ISP结构的互联网的形成
名词解释:互联网服务提供者ISP(Internet Service Provider),又译为互联网服务提供商
ISP申请大量IP地址,同时拥有通信链路和联网设备,用户只需向ISP缴纳规定的费用,获取IP地址的租用权,并可以通过该ISP接入互联网。
ISP分为主干ISP,地区ISP,本地ISP
名词解释:互联网交换点IXP(Internet eXchange Point),主要作用是允许两个ISP网络直接相连并交换分组,而不需要再通过第三个网络来转发分组
万维网WWW
互联网已经成为世界上规模最大和增长速度最快的计算机网络,没有人能够准确说出互联网究竟有多大。互联网的迅猛发展始于20世纪90年代。由欧洲原子核研究组织CERN开发的万维网WWW(World Wide Web)被广泛使用在互联网上,大大方便了非网络专业人员对网络的使用,成为互联网指数级增长的主要驱动力。
1.2.3 互联网的标准化工作
(1) 互联网草案
(2) 建议标准
(3) 互联网标准
1.3 互联网的组成
边缘部分:有所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据,音频或视频)和资源共享。
核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
1.3.1 互联网的边缘部分
处在互联网边缘部分就是连接在互联网上的所有主机。这些主机又称为端系统(end system),端系统可以是个人笔记本,也可以是网络摄像头,或者是某个ISP。
我们所说的“主机A和主机B进行通信”是指:主机A的某个进程和主机B上的另一个进程进行通信,简称为"计算机之间通信"。
端系统之间的通信方式:**客户-服务器方式(C/S方式)**和 对等方式(P2P方式)
客户-服务器方式
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。主要的特征是:客户是服务请求方,服务器是服务提供方。
客户程序:
- 被用户调用后执行,在通信时主动地向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
- 不需要特殊的硬件和很复杂的操作系统。
服务器程序:
- 是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
- 系统启动后即一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
- 一般需要有强大的硬件和高级的操作系统支持。
对等连接方式(P2P)
对等连接方式是指两台主机在通信时,并不区分哪一个是服务请求方和哪一个服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通信。双方都可以下载对方已经存储在硬盘中的共享文档。
对等连接方式的特点:对等连接方式从本质上看仍然使用客户-服务器方式,只是对等连接中的每一台主机既是客户又是服务器。
1.3.2 互联网的核心部分
网络核心部分是互联网中最复杂的部分网络核心部分要向网络边缘部分的大量主机提供连通性,使边缘部分中的任何一台主机都能与其他主机通信。
在网络核心部分起特殊作用的是路由器(Router),路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
1. 电路交换的主要特点
两部电话只需要用一对电线就能够互相连接起来。若N部电话要两两相连,就需要N*(N-1)/2条电线,当电话机的数量增多时,就需要交换机来完成全网的交换任务。
电路交换的过程:建立连接 ----> 通话 —> 释放连接
电路交换的一个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的。
2. 分组交换的特点
分组交换采用分组转发技术,把一个报文划分成几个分组后再进行传送。
在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,在每个数据段前面,加上一些必要的控制信息组成的首部后,就构成了一个分组。
分组中的”首部“是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点。
互联网的核心部分是由许多网络和它们互连起来的路由器组成的,而主机处在互联网的边缘部分。在互联网核心部分的路由器之间用高速链路相连接,而在网络边缘部分的主机接入核心部分则通常以相对较低速率的链路相连接。主机为用户进行信息处理,路由器则用来转发分组,即进行分组交换
路由器转发分组的过程:
- 路由器收到分组,进行暂存
- 检查首部,查找转发表,按照首部的目的地址,选择合适的端口进行转发
- 把分组交给下一个路由器
- 重复第2步,以存储转发的方式,把分组交付给最终的目的主机
分组交换的优点:
分组交换的问题:
- 分组在个路由器存储转发时需要排队,这就会造成一定的时延。
- 各分组必须携带的首部控制信息造成了一定的开销。
三种交换方式在数据传送阶段的主要特点:
电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
报文交换:整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。
分组交换:单个分组(报文的一部分)传送到相邻节点,存储下来后查找转发表,转发到下一个节点。
1.4 计算机网络在我国的发展
(1)中国电信互联网CHINANET(也就是原来的中国公用计算机互联网)
(2)中国联通互联网UNINET
(3)中国移动互联网CMNET
(4)中国教育和科研计算机网 CERNET
(5)中国科学技术网CSTNET
1.5 计算机网络的类别
1.5.1 计算机网络的定义
计算机网络主要是由一些通用的,可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的
1.5.2 几种不同类别的计算机网络
- 按照网络的作用范围进行分类
(1)广域网WAN(Wide Area Network)
(2)城域网MAN(Metropolitan Area Network):用来将多个局域网互连
(3)局域网LAN(Local Area Network)
(4)个人局域网PAN(Personal Area Network) - 按照网络的使用者进行分类
(1)公用网(public network),也称为公众网。
(2)专用网(private network):不对外使用,例如军队,银行,铁路,电力等 - 用来把用户接入到互联网的网络
接入网AN(Access Network),又称为本地接入网或居民接入网。
接入网实际上就是本地ISP所拥有的网络,既不是网络核心部分,也不是边缘部分。接入网由某个端系统连接到本地ISP的第一个路由器(也称为边缘路由器)之间的一些物理链路所组成。
1.6 计算机网络的性能
1.6.1 计算机网络的性能指标
速率
网络技术中的速率指的是数据的传输速率。它也称为数据率(data rate)或比特率(bit rate)。速率是计算机网络中最重要的一个性能指标。
速率的单位是bit/s(比特每秒)
相关的单位转化:
k = 10^3 = 千
M = 10^6 = 兆
G = 10^9 = 吉
T = 10^12 = 太
P = 10^15 = 拍
E = 10^18 = 艾
Z = 10^21 = 泽
Y = 10^24 = 尧
带宽
(1)频域称谓:某信道允许通过的信号频带范围就称为该信道的带宽(或通频带)
(2)时域称谓:单位时间内网络中的某信道所能通过的“最高数据率”,这种意义上的带宽的单位就是数据率的单位bit/s,是“比特每秒”。
吞吐量
吞吐量(throughput)表示在单位时间内通过某个网络(或信道,接口)的实际数据量。吞吐量更经常用于对现实世界中的网络的一种测量。
时延
时延(delay或latency)是指数据(一个报文或者一个分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。
-
发送时延:发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间。
-
传播时延:传播时延(propogation delay)是电磁波在信道中传播一定的距离需要花费的时间
常用的一些电磁波传播速率:
自由空间:3.0 x 10^5 km/s
铜线电缆:2.3 x 10^5 km/s
光纤: 2.0 x 10^5 km/s -
处理时延:主机或路由器收到分组后进行处理所花费的时间,比如分析首部,从分组中提取数据部分,进行差错检验或查找转发表等。
-
排队时延:分组进入路由器在输入队列等待处理,路由器确定转发接口,分组还要在输出队列等待转发,当网络的通信量很大时还会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。 哪一种时延占主导地位,必须具体分析。
时延带宽积
时延带宽积 = 传播时延 x 带宽
管道的长度是链路的传播时延(以时间作为单位来表示链路长度),管道的截面积是链路的带宽。因此时延带宽积表示这样的链路可以容纳多少个比特。
往返时间 RTT
网络上的信息不仅仅是单方向传输而是双向交互的。RTT 是指 从发送方(A) 开始发送数据的时刻 到接收到接收方(B)返回的确认信息的时刻 之间的时间差。
它是一个 连续的时间间隔(起点是数据发送的开始,终点是确认接收的结束)
利用率
- 信道利用率:某信道有百分之几的时间是被利用的(有数据通过)。
- 网络利用率:全网络的信道利用率的加权平均值。
信道利用率并非越大越好。
解释:当信道利用率非常高的时候,网络利用率会很大,即全网络上有大量分组在进行通信,由于路由器或节点交换机的存在,会有很多分组在排队,如果利用率还在上升会造成严重的时延或者分组丢失的情况。
D表示当前的网络时延,U表示当前的网络利用率,D0表示网络空闲时的时延。
信道利用率或网络利用率过高就会产生非常大的时延。
1.6.2 计算机网络的非性能特征
费用
质量
标准化
可靠性
可扩展性和可升级性
易于管理和维护
1.7 计算机网络体系结构
1.7.1 计算机网络体系结构的形成
在早期,不同公司推出了自己公司的具有不同名称的网络体系结构,但为了防止公司垄断市场,国际标准化组织ISO提出了开放系统互连基本参考模型OSI/RM,并于1983年形成正式文件,即著名的ISO 7498 国际标准,也就是所谓的七层协议的体系结构。
OSI失败的原因:
(1)OSI 的专家们缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力;
(2)OSI的协议实现起来过分复杂,而且运行效率很低;
(3)OSI 标准的制定周期太长,因而使得按OSI标准生产的设备无法及时进入市场;
(4)OSI的层次划分不太合理,有些功能在多个层次中重复出现。
得到最广泛应用的不是法律上的国际标准OSI,而是非国际标准TCP/IP。TCP/IP被称为事实上的国际标准。
1.7.2 协议与划分层次
协议
计算机网络交换数据,必须遵守事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题,这里所说的同步是广义的,即在一定条件下应当发生什么事情。这些为进行网络中的数据交换而建立的规则,标准或约定称为网络协议,简称为协议。
网络协议的组成
- 语法:数据与控制信息的结构或格式
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应
- 同步:事件实现顺序的详细说明
划分层次
划分层次的好处
- 各层之间是独立的。某一层不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口所提供的服务。
- 灵活性好。
- 结构上可以分割开。
- 易于实现和维护。
- 能促进标准化工作。
各层所要完成的功能(可以只完成一种,也可以完成多种)
① 差错控制: 使相应层次对等方的通信更加可靠。
② 流量控制: 发送端的发送速率必须使接收端来得及接收,不要太快。
③分段和重装:发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
④复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
⑤连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
计算机网络的各层及其协议的集合就是网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
1.7.3 具有五层协议的体系结构
TCP/IP是一个四层的体系结构,它包含 应用层、运输层、网际层和链路层(网络接口层)。
网际层强调本层解决不同网络的互联问题。
从实质上讲,TCP/IP只有最上面的三层,因为最下面的链路层并没有属于TCP/IP体系的具体协议。因此采用综合OSI和TCP/IP的五层协议的体系结构。
(1)应用层(application layer):
主要为用户提供各种网络服务,比如浏览网页,接受电子邮件,微信聊天。应用层交互的数据单元称为报文
(2)运输层(transport layer):
实现用户报文端到端的传输,即实现主机A的某一个特定网络程序到主机B某一个特定的网络程序之间的通信,利用端口号(port)进行区分。
运输层主要使用以下两种协议:
- 传输控制协议 TCP(Transmission Control Protocol) 提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
- 用户数据报协议UDP(User Datagram Protocol)提供无连接的尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
(3) 网络层(network layer):
给运输层传递下来的报文段或者用户数据报使用IP协议,封装成分组或者包,实现不同网络之间的数据传输,主要是通过一定算法生成用来路由器转发分组的转发表。
(4)数据链路层(data link layer):
对网络层的分组或者包封装成帧,每一帧都包含必要的控制信息(如差错控制,MAC地址),数据链路层还会检测收到的帧是否有差错,如果有差错会直接丢弃这个帧。如果需要纠正差错,就需要采用可靠传输协议来纠正差错。
(5)物理层(physical layer):
在物理层所传输的数据单位是比特。只负责在物理介质(如电线、光纤、空气)上传输最原始的信号(0 和 1 的电信号 / 光信号 / 无线电波)。
数据在各层之间的传递过程
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU。
1.7.4 实体 协议 服务 服务访问点
实体
实体(entity)表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
协议
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。
协议是水平的。
服务
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务 (比如数据链路层进行差错检验,检验没有差错再向上一层传递)。
要实现本层协议,还需要使用下层所提供的服务。只有实现本层协议才能为上一层提供服务。
使用本层服务的实体只能看见下层提供的服务,而无法看见下层的协议,因此,下层的协议对上层的实体是透明的。
(请读者仔细理解上面提到的三句对服务的叙述)
服务是垂直的。
服务访问点
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点
SAP(Servicc Access Point)。
PDU和SDU的区别:
服务数据单元(SDU):上层实体向下层传递的原始数据(未加本层协议控制信息)。
协议数据单元(PDU):下层实体接收 SDU 后,** 添加本层协议首部(或尾部)** 后形成的传输单元。
1.7.5 TCP/IP 体系结构
TCP/IP 的体系结构比较简单,它只有四层。(链路层 网际层 运输层 应用层)