计算机网络
前言
第一章 计算机网络概述
1. 计算机网络在信息时代的作用
- 网络(Network)由若干节点(Node)和连接这些节点的链路(Link)所组成. 网络中的节点可以是计算机,集线器,交换机或者路由器等.

- 多个网络还可以通过路由器互联起来,这样就构成了一个覆盖范围更大的计算机网络.这样的网络称为互联网(Internetwork或Internet)

- 当我们使用一朵云来表示网络时,可能会有两种不同的情况,一种情况如图1-1所示,用云表示的网络已经包含了和网络相连的计算机.但有时为了讨论问题的方便(例如,要讨论几个计算机之间如何进行通信),也可以把有关的计算机画在云的外面,如图1-3所示.习惯上,与网络相连的计算机常称为主机(host).这样,用云表示的互联网里面就只剩下许多路由器和连接这些路由器的链路了.

- **因特网(Internet)**是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)

- internet和Internet的区别

2. 因特网发展的三个阶段
因特网的基础结构大致经历了如下三个阶段的演进:

- **第一阶段: 1969年出现了美国军用计算机ARPANET(“阿帕网”),**也就是今天互联网的雏形.数据集中式处理,数据处理和通信处理都是通过主机完成.
- 当时的阿帕网仅连接四个结点,**传输速率低,**因为当时计算机图形界面没有发展起来,信息只能通过文字终端进行展示,没应用场景
- 1969年四个节点的分布位置.分别是
- 加州大学洛杉矶分校—UCLA
- 加州大学圣巴巴拉分校—UCSB
- 斯坦福研究院—SRI
- 犹他大学—Utah
1983年,TCP/IP协议称为ARPANET的标准协议,因此人们将1983年认为是Internet的诞生时间.
- 第二阶段:建成了三级结构的互联网.从1985年起.美国国家科学基金会NSF(National Science Foundation)就围绕六个大型计算机中心建设计算机网络,即国家科学基金网NSFNET,它是一个三级计算机网络,分为主干网,地区网和校园网(或企业网).这种三级计算机网络覆盖了全美国主要的大学和研究所,并且称为互联网中的主要组成部分.1991年,NSF和美国的其他政府机构开始认识到,互联网必将扩大其使用范围,不应仅限于大学和研究机构.世界上许多公司纷纷接入到互联网,网络上的通信量急剧增大,使互联网的容量已满足不了需要.于是美国政府决定将互联网的主干网转交给私人公司来经营,并开始对接入互联网的单位收费.1992年互联网上的主机超过100万台.1993年互联网主干网的速率提高到45Mbit/s
第三阶段: 逐渐形成了多层次ISP结构的互联网.从1993年开始,由美国政府资助的NSFNET逐渐被若千个商用的互联网主干替代,而政府不再负责互联网的运营.这样就出现了一个新的名词:互联网服务提供者ISP(Internet Service Provider).在许多情况下,ISP就是一个进行商业活动的公司,因此ISP又常译为互联网服务提供商.例如中国电信,中国联通和中国移动等公司都是我国最有名的ISP
互联网服务提供者ISP(Internet Service Provider)
- ISP可以从互联网管理机构申请到很多IP地址(互联网上的主机都必须有IP地址才能上网),同时拥有通信线路(大ISP自己建造通信线路,小ISP则向电信公司租用通信线路)以及路由器等联网设备,因此任何机构和个人只要向某个ISP缴纳规定的费用,就可从ISP获取所需IP地址的使用权,并可通过该ISP接入到互联网.
![]()
根据服务提供的覆盖面积大小以及所拥有的IP地址数目的不同,ISP也分为不同层次的ISP:主干ISP,地区ISP和本地ISP(从层次关系上我们也称为第一层ISP,第二层ISP,本地ISP).
- 主干ISP由几个专门的公司创建和维持,服务面积最大(一般都能覆盖国家范围),并且还拥有高速主干网(例如10Gbit/s或更高).有一些地区ISP网络也可直接与主干ISP相连
- 地区ISP是一些较小的ISP,这些地区ISP通过一个或者多个主干ISP连接起来.他们位于等级中的第二层,数据率也低一些
- 本地ISP给用户提供直接的服务,(这些用户有时也称为端用户,强调是末端的用户).本地ISP可以连接到地区ISP,也可直接连接到主干ISP.绝大多数的用户都是连接到本地ISP的.本地ISP可以是一个仅仅提供互联网服务的公司,也可以是一个拥有网络并向自己的雇员提供服务的企业,或者是一个运行自己的网络的非盈利机构(如学院或大学).本地ISP可以与地区ISP或主干ISP连接.
![]()
说明: 因特网发展到今天因为规模太大,已经很难对整个网络的结构给出细致的描述,上图所示的只是一个简单的示意图
3. 因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的命令.
因特网在制定其标准上的一个很大的特点是面向公众.
- 因特网所有的RFC(Request For Comments)技术文档都可以从因特网上免费下载;http://www.ietf.org/rfc.html
- 任何人都可以随时用电子邮件发表对某个文档的意见或建议.
因特网协会ISOC是一个国际性组织,他负责对因特网进行全面管理,以及在世界范围内促进其发展和使用
- 因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
- 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
- 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题
4. 因特网的组成
功能划分
因特网的拓扑结构虽然非常复杂,并且在地理上覆盖了全球,但从功能上看.可以划分为以下两部分
- 边缘部分:有所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信(传送数据,音频或视频)和资源共享
- 边缘部分中的主机,可以是台电脑或大型服务器,也可以是笔记本,平板电脑
- 可以是智能手机,智能手表
- 物联网智能硬件: 智能摄像头等
- 核心部分: 由大量网络和连接这些网络的路由器组成.这部分是为边缘部分提供服务的(提供连通性和交换)

1. 边缘部分
处在因特网边缘的部分就是连接在因特网上的所有的主机,这些主机又称为端系统(end system)
“主机A和主机B进行通信“,实际上是指:”运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信“.
即”主机A的某些进程和主机B上的另一个进程进行通信”.或简称为”计算机之间通信”
在网络边缘的端系统中运行的程序之间的通信方式通常可以划分为两大类:
客户服务器方式(C/S方式),即Client/Server方式
- 客户(client)和服务器(server)都是指通信中设计的两个应用进程
- 客户服务器方式所描述的是进程之间服务和被服务的关系
- 客户是服务的请求方,服务器是服务的提供方
- 客户程序必须知道服务器程序的IP地址,不需要特殊的硬件和很难的操作系统
- 服务器程序不需要知道客户程序的IP地址,但是系统需要不断的运行着,并且需要有强大的硬件和高级的操作系统支持
对等方式(P2P方式),即Peer-toPeer方式
- 对等连接(peer-topeer,简写为P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方
- 只要两个主机都运行了对等连接软件(P2P软甲),它们就可以进行平等的,对等连接通信
- 双方都可以下载对方已经存储在硬盘中的共享文档
- 对等连接方式从本质上看仍是使用客户服务器方式,只是对等连接中的每一个主机既是客户又同时是服务器.
- 例如主机C请求D的服务时,C是客户,D是服务器.但如果C又同时向F提供服务,那么C又同时起着服务器的作用.
- P2P网络技术的特点体现在以下几个方面:
- 非中心化:网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都是直接在节点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈
- 健壮性:P2P架构天生具有耐攻击,高容错的优点.由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小
- 高性价比: 性能又是是P2P被广泛关注的一个重要原因.采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上.利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的
- 隐私保护: 在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄露的可能性大大缩小
2. 核心部分
- 在网络核心部分起特殊作用的是路由器(router)

- 三种交换方式
- 电路交换(Circuit Switching):电话交换机接通电话线的方式称为电路交换;
电话交换机: 可以把电话交换机简单地看成是一个有多个开关的开关器,可以将需要通信的任意两部电话的电话线按需接通,从而大大减少了连通的电话线数量
从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
- 电路交换的三个步骤
- 建立连接(分配通信资源)
- 通话(一直占用通信资源)
- 释放连接(归还通信资源)
电路交换的缺点:当用户正在输入和编辑一份待传输的文件时,用户所与用的通信资源暂时未被利用,该通信资源也不能被其他用户利用,宝贵的线路资源就被白白浪费掉了,因此电路交换的传输效率非常低,不适用于计算机和计算机之间的通信.
交换分组(Packet Switching):路由器是实现交换分组交换(packet Switching)的关键构件,其任务是**转发收到的分组,这是网络核心部分最重要的功能
- 分组交换则是采用存储转发技术.如下图,把一个报文划分为几个分组后再进行传送.通常我们把要发送的整块数据称为一个报文(message),在发送报文之前,先把较长的报文划分称为一个个更小的等长数据段,例如,每个数据段为1024bit(比特).在每个数据段前面,加上一些由必要的控制信息组成的**首部(header)后,就构成了一个分组(packet).**分组又称为”包“,而分组的首部也可称为”包头“.分组是在互联网中栓送的数据单元.分组中的”首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点.
- 分组交换过程
- 分组交换的特点:构成原始报文的一个个分组在各节点路由器上进行存储转发,并且可以进行差错校验,保证报文的完整性和准确性
说明:分组交换过程中可能会出现分组丢失,重复等问题在后面的章节会详细介绍
报文交换(Message Switching)
整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点
对报文的大小不做限制,因此对接收报文的设备缓存空间有要求
三种交换方式的对比
5. 计算机网络的分类
5.1 按照网络的作用范围进行分类
**广域网WAN(Wide Area Network):**广域网的作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network).广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据.连接广域网各节点交换机的链路一般都是高速链路,具有较大的通信容量.
**城域网MAN(Metropolitan Area Network):**城域网的作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离约为5~50km.城域网可以为一个或者几个单位所拥有,但也可以是一种公用设施,用来将多个城域网进行互联.目前很多城域网采用的是以太网技术,因此有时也常并入局域网的范围进行讨论.
局域网LAN(Local Area Network):局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10Mbit/s以上),在局域网发展的初期,一个学校或公衡往往只用于拥有一个局域网,但现在局域网已非常广泛地使用,学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网).
个人区域网PAN(Personal Area Network): 个人区域网就是在个人工作的地方把属于个人使用的电子设备(如便携式电脑等)用无线技术连接起来,其范围很小,大约在10m左右.
5.2 按网络的线路结构进行分类
1. 星型
星型拓扑结构是目前局域网普遍采用的一种拓扑结构.
星型拓扑结构是用一个节点作为中心节点,其他节点直接与中心节点相连构成的网络.中心节点可以是文件服务器,也可以说连接设备.常见的中心节点为集线器或者路由器
星型拓扑结构的网络属于集中控制型网络,整个网络中心节点执行集中式通行控制管理,各节点的通信都要通过中心节点.每一个要发送数据的节点都将要发送的数据发送中心节点,再由中心节点负责将数据送到目的节点.因此中心节点相当复杂,而各个节点的通信处理负载都很小,只需要满足链路的简单通信要求.
优点:
- 控制简单.任何一站点纸盒中央节点相连接,因而介质访问控制方法简单,致使访问协议也十分简单,易于网络监控和管理
- 故障诊断和隔离容易.中央节点连接线路可以逐一隔离进行故障检测和定位,单个连接点的故障只影响一个设备,不会影响全网
- 方便服务,中央节点可以方便地对各个站点提供服务和网络重新配置
缺点:
- 需要耗费大量的电缆,安装,维护的工作也骤增
- 中央节点负担重,形成”瓶颈”,一旦发生故障,则全网受影响.
- 各站点的分布处理能力较低
2. 总线型
- 总线型网络拓扑结构中所有设备都直接与总线相连,它所采用的介质一般也是同轴电缆(包括粗缆和细缆),不过现在也有采用光缆作为总线型传输介质的
- 总线结构是指各工作站和服务器均挂在一条总线上,各工作站地位平等,无中心节点控制,公用总线上的信息多以基带形式串行传递,其传递方向总是从发送信息的节点开始向两端扩散,如同广播电台发射的信息一样,因此又称广播式计算机网络.各节点在接受信息时都进行地址检查,看是否与自己的工作站地址相符,相符则接收网上的信息
- 总线型结构的网络特点如下:
- **结构简单:**网络各接点通过简单的搭线器(T头)即可接入,施工类似接电视天线.
- **走线量小:**星型网络需要从中心集线器向每个网络接点单独甩线,如果不用线槽走线的话,地面上经常爬满一捆一捆的网线
- **成本较低:**总线型网络因用线量小,无需集线器等昂贵的网络设备,不用线槽,接线盒等解耦股华布局材料,成本要大大低于星型网络.
- **扩充灵活:**星型网络在增加节点数目时是一件及其痛苦的事,如果在网络最初规划时留的空间较小,可能会遇到下列情况,可能会因为只增加一个接点而必须购买一个交换机;而总线型网络只需增加一段电缆和一个T头就可增加一个接点
- **故障诊断和隔离比较困难:**当接点发生故障,隔离起来还比较方便,一旦传输介质出现故障时,就需要将整个总线切断
- 易于发生数据碰撞,线路争用现象比较严重
3. 环型
环型结构由网络中若干节点通过点到点的链路首尾相连形成一个闭合的环,这种结构使公共传输电缆组成环型连接,数据在环路中沿着一个方向在各个节点间传输,信息从一个节点传到另一个节点
这种结构的网络形式主要应用于令牌网中,在这种网络结构中各设备是直接通过电缆来串接的,最后形成一个闭环,整个网络发送的信息就是在这个环中传递,通常把这类网络称之为”令牌环网
实际上大多数情况下这种拓扑结构的网络不会是所有计算机真的要连接成物理上的环型,一般情况下,环的两端是通过一个阻抗匹配器来实现环的封闭的,因为在实际组网过程中因地理位置的限制不方便真的做到环的两端物理连接
什么是令牌环
- 令牌环的媒体接入控制机制采用的是分布式控制模式的循环方法,在令牌环网中有一个令牌(Token)沿着环型总线以逆时针方向在入网节点计算机间依次传递,令牌实际上是一个特殊格式的帧,本身并不包含信息,仅控制信道的使用,确保在同一时刻只有一个节点能够独占信道.当环上节点都空闲时,令牌绕环行进.节点计算机只有取得令牌后才能发送数据帧,因此不会发生碰撞.由于令牌在网环上是按顺序依次传递的,因此对所有入网计算机而言,访问权是公平的.
- 令牌在工作中有”闲”和”忙”两种状态.”闲”表示令牌没有被占用,即网中没有计算机在传送信息; “忙”表示令牌已被占用,即网中有信息正在传送.希望传送数据的计算机必须首先检测到”闲”令牌,将它置为”忙”的状态,然后在该令牌后面传送数据.当所传数据被目的节点计算机接收后,数据被从网中除去,令牌被重新置为”闲”
4.网状型

- 网状型拓扑结构,这种拓扑结构主要指各节点通过传输线互联起来,并且每一个节点至少与其他两个节点相连,网状拓扑结构具有较高的可靠性,但其结构复杂,实现起来费用较高,不易于管理,不常用与局域网
- 优点:
- 网络可靠性高,一般通信子网中任意两个节点交换机之间,存在着两条或两条以上的通信路径,这样,当一条路径发生故障时,还可以通过另一条路径把信息送至节点交换机.
- 网络可组建成各种形状,采用多种通信信道,多种传输速率
- 可选择最佳路径,传输延迟小
- 缺点:
- 控制复杂,软件复杂
- 线路费用高,不易扩充
- 在以太网中,如果设置不当,会造成广播风暴,严重时可以使网络完全瘫痪
6. 计算机网络的性能指标
常用的计算机网络的性能指标有7个: 速率,宽带,吞吐量, 时延, 往返时间, 利用率, 丢包率
6.1速率
计算机发送的信号是以二进制数字形式的
一个二进制数字就是一个比特(bit,binary digit)
字节:Byte,1Byte=8bit(1B=8b)
常用数据量单位:
速率:连接在计算机网络上的主机在数字信道上传送比特数据的速率,也称为比特率或数据率

思考:
6.2 宽带
- 在计算机网络中,宽带用来表示网络中某通道传送数据的能力,因此网络宽带表示在单位时间内网络中的某信道所能通过的”最高数据率”
- 单位:b/s(kbs,Mb/s,Gb/s,Tb/s)
- 宽带的带宽是100兆:出口网速最高100Mb/s
6.3吞吐量
- 吞吐量表示在单位时间内通过某个网络(或信道,接口)的数据量
- 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络
- 吞吐量受网络的带宽或额定速率的限制

- 注意吞吐量和带宽的区别:带宽指的是最大的传输速度,而吞吐量指的是实际传输速度

6.4 时延
- 时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间.时延是个很重要的性能指标,它有时也称为延迟或迟延.

网络中的时延是由以下几个不同的部分组成的:
发送时延
- 主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间
- 发送时延的计算公式为
- 主机的发送速率和网卡的发送速率,信道的带宽,接口速率有关
传播时延
- 电磁波在信道中传播一定的距离需要花费的时间
- 传播时延的计算公式:
处理时延
- 处理时延指的是主机或者路由器在收到分组信息时花费的时间.例如分析分组的首部,从分组中提取数据部分,查找适当的路由等
思考:现在我们暂时忽略处理时延.假定有一个长度为100MB的数据块(这里的M显然不是指10 ^ 6而是2 ^ 20. B是字节,1字节=8比特).在带宽为1Mbits的信道上(这里的M显然是10^6)连续发送(即发送速率为1Mbit/s),其发送时延是多少?
现在把这个数据块用光纤传送到1000km远的计算机,由于在1000km的光纤上的传播时延约为5ms,因此在这种情况下,发送100MB的数据块的总时延=838.9s+0.005s=838.9005s,课件对于这种情况,发送时延决定了总时延的数值,如果我们把发送速率提高100倍,即提高到100Mbits,那么总时延就变为8.389+0.005=8.394s,缩小到原有数值的1/100
6.5 往返时间
- RTT(Round-Trip Time)往返时间在计算机网络中它是一个重要的性能指标.表示从发送端将数据发送到传输媒介开始,到发送端收到来自接收端的确认总共经历的时间(不包括发送时延).
- RTT由三个部分决定:链路的传播时间,末端系统的处理时间,路由器的缓存中的排队和处理时间.其中前两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化,所以RTT的变化在一定程度上反映了网络拥塞程度的变化
- 例如,A向B发送数据,如果数据长度是100MB,发送速率是100Mbit/s,那么
- 如果B正确收完100MB的数据后,就立即向A发送确认.再假定A只有在收到B的确认信息后,才能向B发送数据.显然,这需要等待一个往返时间RTT(这里假定确认信息很短,可忽略B发送确认的时间).如果返回时间=2s,那么可以算出A向B发送数据的有效数据率为80Mbit/s.比原来的数据率100Mbit/s小很多
6.6利用率
- 利用率有信道利用率和网络利用率两种
- 根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加
- 如果零Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D,Do和利用率U之间的关系为:
- 这里的U是网络的利用率,数值在0到1之间:
- 当网络的利用率达到50%时,时延就要加倍;当网络的利用率超过50%时,时延急剧增大;
- 当网络的利用率接近100%时,时延就趋于无穷大;
- 因此,一些拥有较大主干网ISP通常会控制他们的信道利用率不超过50%.如果超过了,就要准备扩容,增大线路的带宽
- 因此,信道利用率并非越高越好
6.7 丢包率
丢包率即分组丢失率,是指在一定的时间范围内,传输过程汇总丢失的分组数量与总分组数量的比率
丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包
分组丢失主要有两种情况:
- 分组在传输过程中出现误码,被节点丢弃
- 主机发送的分组在传输过程中出现了误码,当分组进入传输路径中的节点交换机后,被节点交换机检测出了误码.进而被丢弃.
- 分组到达一台队列已满的分组交换机时被丢弃;在通信量较大时就可能造成网络拥塞
假设路由器R5当前的输入缓冲区已满,此时主机发送的分组到达该路由器.路由器没有存储空间暂存该分组,只能将其丢弃.实际上.路由器会根据自身的拥塞控制方法,在输入缓存还未满的时候就主动丢弃分组
因此,丢包率反映了网络的拥塞情况:无拥塞时路径丢包率为0
轻度拥塞时路径丢包率为1%~4%
严重拥塞时路径丢包率为5%~15%