《计算机网络》 谢希仁 笔记(一)
第1章 概述
1.1 计算机网络在信息时代中的作用
网络指“三网”,即:
- 电信网络: 提供电话,电报,传真等服务
- 有线电视网络 : 提供各种电视节目
- 计算机网络 : 迅速传送文件,从网络上查找获取各种资料
网络融合 : 电信网络和有线电视网络逐渐融入现代计算机网络,计算机网络不仅能传送数据,还能提供打电话,观看视频等服务;有非技术性的复杂问题亟待解决(如版权?垄断?各方利益协调?)
计算机网络向用户提供的两个最重要的功能:
- 连通性 : 用户可以交换信息,好像他们的计算机彼此连通一样
- 共享性 : 资源(信息,软件,硬件)共享
1.2 因特网概述
1.2.1 网络的网络
网络(network)由若干结点(node)和连接这些结点的链路(link)组成
结点:计算机,集线器,交换机,路由器等
图1-1(a) : 一个具有四个结点三条链路的网络。三台计算机通过三条链路连接到一个集线器上。
图1-1(b) : 网络和网络通过路由器互连,构成覆盖范围更大的网络,即互联网。因此互联网是网络的网络(network of networks)
因特网(Internet)是世界上最大的互连网络。连接在因特网上的计算机称为主机(host)
网络把许多计算机连接在一起,而因特网把许多网络连接在一起。
1.2.2 因特网发展的三个阶段
第一阶段:从单个网络ARPANET向互联网发展的过程。
1969年美国国防部创建第一个分组交换网ARPANET。
1983年,TCP/IP协议成为ARPANET上的标准协议,使所有使用该协议的计算机都能利用互联网互相通信,由此将83年记为因特网诞生时间。
1990年ARPANET关闭,因为其实验任务已完成
internet(互联/连网)是一个通用名词,泛指由多个计算机网络互连成的网络。这些网络间的通信协议是任意的。
Internet(因特网)是专用名词,指当前全球最大的,开放的,由众多网络相互连接而成的特定计算机网络,采用TCP/IP协议族作为通信规则,且前身是ARPANET。
第二阶段 : 建成了三级结构的因特网NSFNET(美国国家科学基金会,National Science Foundation),分为主干网,地区网和校园网(或企业网)。三级计算机网络覆盖全美主要的大学和研究所,成为因特网中的主要组成部分。91年因特网扩大使用范围,不仅限于大学和研究所,并将主干网转交给私人公司来经营,对接入因特网的单位收费。
第三阶段 : 逐渐形成了多层次ISP结构的因特网。93年起,NSFNET逐渐被若干个商用的因特网主干网替代。*不再运营因特网后,因特网服务提供商ISP(Internet Service Provider)出现,如中国电信,中国移动,中国联通。
ISP从因特网管理机构申请到很多IP地址,同时拥有通信线路(自己建造或向电信公司租用)以及路由器等联网设备。机构和个人只需向ISP交纳费用即可从ISP获取所需IP地址使用权,并通过该ISP接入因特网。
IP地址管理机构不将单一的IP地址分配给单个用户,而是把一批IP地址有偿租赁给ISP。
因特网由全世界大大小小的ISP所共有。
根据服务覆盖面积以及拥有的IP数量不同,ISP分为:
- 主干ISP : 几个专门公司创建和维持,服务面积最大(覆盖国家),拥有高速主干网(10GB+)
- 地区ISP : 通过一个或多个主干ISP连接起来,数据率低一些
- 本地ISP : 给端用户直接提供服务(提供因特网服务的公司,或是企业/校园)
为了更快转发分组,更有效地利用网络资源,因特网交换点IXP(Internet eXchange Point)应运而生。
IXP允许两个网络直接相连并交换分组,而不需要通过第三个网络来转发分组:如上图直接在两个地区ISP之间用高速链路对等地交换分组。使因特网上的数据流量分布更加合理,减少分组转发的迟延,降低分组转发的费用。
许多IXP在对等交换分组时互相不收费。但本地或地区ISP通过IXP向高层的IXP转发分组时,则需要缴纳一定的费用。
IXP由一个或多个网络交换机组成,许多ISP再连接到这些网络交换机的相关端口上。IXP常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互联起来。
1.2.3 因特网的标准化工作
制定因特网的正是标准要经过以下四个阶段:
- 因特网草案(Internet Draft) 此阶段还不是RFC文档
- 建议标准(proposed standard) 此阶段开始成为RFC文档
- 草案标准(draft standard)
- 因特网标准(Internet standard)
1.3 因特网的组成
因特网的拓扑结构从工作方式上可划分为两大块:
- 边缘部分 : 由所有连接在因特网上的主机组成。这部分被用户直接使用,进行通信和资源共享
- 核心部分 : 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务(连通性和交换)的
1.3.1 因特网的边缘部分
因特网的边缘部分是连接在因特网上的所有主机,这些主机又称为端系统(end system)。可以是PC,手机,网络摄像头,大型计算机等。
边缘部分利用核心部分所提供的服务,使众多主机之间能够互相通信并交换或共享信息。
两个主机间的通信实际上是这两个主机上的进程间的通信。
端系统之间的通信方式划分为两大类:
-
客户-服务器方式 : 上网发email或在网站上查资料时使用。客户(client)和服务器(server)通信中所涉及的两个应用进程。客户是服务请求方,服务器是服务提供方,他们都要使用网络核心部分所提供的服务。
客户程序 :
- 被用户调用后运行,通信时主动地向服务器发起通信。因此,客户程序需要知道服务器程序的地址。
- 不需要特殊的硬件和复杂的操作系统
服务器程序 :
- 专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求
- 系统启动后即自动调用且一直不断地运行,被动地等待并接受来自各地的客户的通信请求。
- 要有强大的硬件和高级的操作系统支持
客户与服务器的通信关系建立后,可以进行双向地通信,服务器和客户都可以发送或接受数据。
对等连接方式:对等连接(peer-to-peer,P2P)是指两个主机在通信时并不区分服务请求方和提供方,只要两个主机都运行了P2P软件,他们就可以进行平等的、对等连接通信。
P2P从本质上看还是C-S方式,只是每一个主机既是客户又同时是服务器。
1.3.2 因特网的核心部分
向网络边缘的大量主机提供连通性,使边缘部分中的任何一台主机都能够向其他主机通信。
关键设备是路由器:一种专用计算机(不是主机)。是实现分组交换(packet switching)的关键构件,任务是转发收到的分组,这是网络核心部分最重要的功能。
1. 电路交换的主要特点:
要将世界上所有电话两两相连是不现实的,于是将电话连接到很多彼此连接起来的交换机上,即可完成全网的交换任务。
电路交换特点:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
使用电路交换来传送计算机数据,线路的传输效率很低。因为计算机数据是突发式地出现在传输线路上的,线路上真正用来传输数据的时间往往不到10%甚至1%。已被用户占用的通信线路资源在绝大部分时间内是空闲的。
2. 分组交换的主要特点
分组交换采用存储转发技术。
报文(message):要发送的整块数据
发送报文前,把较长的报文划分成一个个更小的等长数据段,如每个数据段1024bit,在每个数据段前面加上一些必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为包,分组首部又称为包头。
分组:数据段加上分组首部,是因特网中传送的数据单元
分组首部: 包含如目的地址和源地址等重要控制信息,是分组正确传输的保证
路由器用来转发分组,进行分组交换,路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址找到合适的接口转发出去,把分组交给下一个路由器。
分组交换的问题:
- 分组在各路由器存储转发时需要排队,这会造成一定的时延
- 无法确保通信时端到端所需的带宽
- 各分组必须携带的控制信息造成了一定的开销(overhead)
-
分组交换网需要专门的管理和控制机制
邮政通信也使用存储转发方式
20世纪40年代的电报通信也采用基于存储转发的报文交换(message switching)。在报文交换中心,一份电报被接收下来,操作员以每份报文为单位,根据报文的目的站地址拿到相应的发报机转发出去
1.4 计算机网络在我国的发展
1.5 计算机网络的类别
1.5.1 计算机网络的定义
一些互相连接的,自治的计算机的集合
1.5.2 几种不同类别的网络
-
按网络的作用范围分类
- 广域网WAN(Wide Area Network):作用范围几十到几千公里,又称远程网(long haul network)。是因特网的核心部分
- 城域网MAN(Metropolitan Area Network):作用范围一般是一个城市,5~50km,采用以太网技术
- 局域网LAN(Local Area Network):用微型计算机或工作站通过高速通信线路相连,作用范围1km左右。学校或企业有多个互联的局域网,这样的网络称为校园网或企业网。
- 个人区域网PAN(Personal Area Network):在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络,范围10m左右
-
按网络的使用者进行分类
- 公用网(public network):电信公司出资建造的大型网络,缴费的人都可使用,如CHINANET
- 专用网(private network):不对外人提供服务的,如*,军队,银行,*等网络。
-
用来把用户接入到因特网的网络
接入网AN(Access Network):用户通过ISP才能接入到因特网,从用户家中接入到因特网可以使用的技术有多种。
1.6 计算机网络的性能
分为重要的性能指标和非性能特征(nonperformance characteristics)
1.6.1 计算机网络的性能指标
常用的七个性能指标:
-
速率
比特是计算机中数据量的单位,也是信息论中使用的信息量的单位速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,也称为数据率(data rate)或比特率(bit rate)
单位:b/s, Kb/s, Mb/s……
100M以太网指的是速率为100Mb/s的以太网
上述速率是指额定速率或标称速率
-
带宽
带宽(bandwidth)原指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成份所占据的频率范围在计算机网络中,带宽用来表示网络的通信线路传送数据的能力:单位时间内从网络的某一点到另一点所能通过的“最高数据率”。
单位:b/s, Kb/s, Mb/s……
-
吞吐量(throughput)
单位时间内通过某个网络(或信道,接口) 的数据量如额定速率100Mb/s的以太网,其吞吐量上限也是这个值
-
时延(delay,latency)
指数据(一个报文,分组,或比特)从网络(或链路)的一端传送到另一端所需的时间网络中时延的组成部分:
1.传输/发送时延(transmission delay):主机或路由器发送数据帧所需要的时间,即从发送数据帧的第一个比特算起,到该帧最后一个比特发送完毕所需的时间。计算公式: 传输时延 = 数据帧长度(b) / 发送速率 (b/s)
2.传播时延(propagation delay) : 电磁波在信道中传播一定距离需要花费的时间。
计算公式 : 传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)3.处理时延 :主机或路由器收到分组时需要花费时间来处理,如分析分组首部,提取分组数据,差错校验和查找路由等
4.排队时延 : 分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发接口后还要在输出队列中排队等待转发。
总时延 = 传输 + 传播 + 处理 + 排队
时延带宽积
时延带宽积 = 传播时延 * 带宽
以比特为单位的链路长度往返时间RTT
从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。-
利用率
利用率分为信道利用率和网络利用率信道利用率:某信道有百分之几的时间是被利用的(有数据通过)
网络利用率:全网络的信道利用率的加权平均值
信道利用率并非越高越好,某信道的利用率增大时,该信道引起的时延也迅速增加(如高速路上车流量大导致堵车,行车时间就会增长)
令D0表示网络空闲时的时延,D表示网络当前的时延,在适当的假定条件下,D,D0和网络利用率U的关系如公式:D = D0 / (1 - U)
信道或网络利用率过高会产生非常大的时延,ISP会控制他们的信道利用率不超过50%,若超过了就要准备扩容,增大线路的带宽
1.6.2 计算机网络的非性能特征
- 费用
- 质量
- 标准化
- 可靠性
- 可扩展性和可升级性
- 易于管理和维护
1.7 计算机网络体系结构
计算机网络的最基本概念:分层次的体系结构
1.7.1 计算机网络体系结构的形成
74年IBM宣布了系统网络体系结构SNA(system network architecture)
不久后其他公司也相继推出自己的体系结构
公司为了垄断,在产品中使用自己的体系结构;不同公司的不同体系结构间很难互相联通。
ISO推出开放系统互联基本参考模型OSI/RM(open systems interconnection reference model)
因特网并未使用OSI标准,OSI失败了
得到最广泛应用的是非国际标准TCP/IP
1.7.2 协议与划分层次
网络协议(network protocol),简称协议:为进行网络中数据交换而建立的规则、标准或约定
网络协议的三个组成要素:
- 语法:数据与控制信息的结构和格式
- 语义:需要发出何种控制信息,完成何种动作以及做出何种响应
- 同步:事件实现顺序的详细说明
网络的体系结构(architecture):计算机网络的各层及其协议的集合,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义
1.7.3 具有五层协议的体系结构
五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是TCP/IP四层体系结构
-
应用层(application)
任务:通过应用进程间的交互来完成特定网络应用应用层协议定义的是应用进程间通信和交互的规则
不同网络应用使用不同的应用层协议,如HTTP,SMTP,FTP
应用层交互的数据单元称为报文(message)
-
运输层(transport)
任务:向两个主机中的进程之间的通信提供通用的数据传输服务应用层利用运输层提供的服务来传送报文
一台主机有多个进程,所以运输层要实现复用和分用。复用是多个应用层进程同时使用运输层的服务;分用是运输层把收到的信息分别交付给应用层中的对应进程
运输层两种协议:
传输控制协议TCP(transmission control protocol):提供面向连接的、可靠的数据传输服务,其数据传输单位是报文段(segment)
用户数据报协议UDP(user datagram protocol):提供无连接的、尽最大努力的(best-effort)数据传输服务(不保证数据传输的可靠性),其数据传输单位是用户数据报 -
网络/网际/IP层(network)
任务:为分组交换网上的不同主机提供通信服务;选择合适的路由把运输层产生的报文段或用户数据报封装成分组/包(packet)/IP数据报/数据报(datagram)来传送
-
数据链路层(data link)
在两个相邻结点之间传送数据时,链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包含数据和必要的控制信息(同步信息,地址信息,差错控制……)控制信息使接收端知道一个帧的开始和结束的比特,由此接收端可以从帧中提取出数据部分,上交给网络层
若帧有差错,则丢弃,以免继续在网络中传送而浪费资源;复杂的可靠传输协议可以纠正差错
物理层(physical)
物理层上所传数据的单位是比特(0或1)
TCP和IP是两个协议,TCP/IP不是单指TCP和IP这两个具体的协议,而是因特网所使用的整个TCP/IP协议族(protocol suite)