1.1 计算机网络定义
什么是计算机网络?
计算机网络将各种计算机通过通信线路和网络设备互联起来,以方便用户共享资源和相互通信。
- 电话网?有线电视网?---特定应用
- 计算机网络---通用性,支持广泛的,不断出现的新型应用,能承载各种不同类型的数据。
- 因特网术语"主机":指计算机网络中传统的和非传统的计算机。或称"端系统".
- 计算机网络中的"计算机"是自治的。
- 网络(network)由若干结点(node)和连接这些结点的链路(link)组成。
- 构成网络的所有实体可抽象为两种基本构件:
- 结点(node):计算设备(端系统、中间节点)
-
链路(link):物理媒体(路径、跳)
- 构建网络的三种方式:
- 直接连接(适合少量端系统联网)
- 网络云(适合大量端系统联网)
- 网络云互联(适合大量端系统联网)
- 直接连接的网络:由某种物理媒体直接连接所有端系统而组成
- 直接连接的网络的分类
2.多结点共享同一物理链路:多路访问链路(multiple access)
-
网络云
- 每个端系统都通过通信链路与交换结点(能够将一条链路接收到的数据转发盗铃一条链路上的连接设备(中间结点))相连。
- 交换节点(switching node)形成了交换网(采用分组交换技术),交换网可视为一朵网络云。
- 网络云抽象将网络云内部结点和网络云外部结点分开。
- 网络云互联
- 使用路由器可以把两个或多个网络云互联起来。
- 网络云互相连接,构成网络的网络(network of networks),即互联网internet.
- 互联网也可以用一朵云来表示
- 因特网(Internet)是世界上最大的互联网
- Internet采用TCP/IP协议族,前身是ARPANET。
- 什么是网络服务
- 联网的端系统中的网络应用程序通过相互协作,向用户提供有用的网络功能--网络服务。
- 网路应用向用户提供的服务是网络的价值所在!
- 应用程序运行在哪里?应用程序运行在端系统上,而不运行在交换机和路由器上。
- 网络服务
- 网络为端系统提供了通信基础设施
- 更准确的说法:网络为运行在端系统中的应用程序进程提供了通信基础设施。
因特网成功的重要因素:
网络上的众多功能是有运行在端系统上的网络应用软件实现的,通过软件编写即可方便地增加新的网络应用功能。
为了支持因特网应用程序的开发,端系统中的现代操作系统通常都定义了两种编程接口。
1.2 因特网的结构
因特网的结构
- 网络边缘(edge):端系统(与其上的应用)
- 网络核心(core):路由器(网络的网络)
- 接入网(access network):连接两者的通信链路
因特网的结构特点
这种结构遵循"端到端原则(end-to-end arguments)" 边缘智能,核心简单
- 将复杂的网络处理功能(如差错处理、流量控制功能、安全保障和应用等)置于网络边缘
- 相对简单的分组交付功能(如分组的选路和转发功能)置于网络核心
遵循"端到端原则(end-to-end arguments)"的好处:
核心---发展高速通信技术
边缘---利用TCP/IP的API,方便地在端系统中设计开发各种各样的新型网络应用。
因特网边缘
由所有连接在因特网上的端系统组成。这部分是用户直接使用的。
在网络边缘的端系统中运行的程序之间的通信方式通常可划分为两大类:
- 客户服务器方式(C/S方式):即Client/Server方式
- 对等方式(P2P方式):即Peer-to-Peer方式
C/S方式
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户服务器方式所描述的是进程之间服务器和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
客户软件的特点:
- 主动方
- 客户程序必须知道服务器程序的地址
- 不需要特殊的硬件和很复杂的操作系统
- 一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
- 一直不断地运行着,被动地等待客户的通信请求。不需要知道客户程序的地址。
- 一般需要强大的硬件和高级的操作系统支持。
P2P方式
- 两个主机都运行对等连接软件(P2P软件);
- 双方都可以下载对方已经存储在硬盘中的共享文档。
- 端系统中的程序起着客户和服务的双重作用
- P2P网络一个重要的目标就是让所有的客户都能提供资源,包括带宽、存储空间和计算能力等。
- 当有结点加入且对系统请求增多时,整个系统的容量也增大。这是具有一组固定服务器的C/S结构所不能实现的(用户越多服务会越慢)。
P2P方式vsC/S方式
P2P方式---举例:Napster原理
因特网核心
这部分是为边缘部分提供连通性和交换服务。由大量网络和连接这些网络的路由器组成。
- 路由器的任务:接收分组,路由选择,转发分组
- 路由器采用分组交换
- 端系统通常经过接入(DSL,CATV,FTTH)某个因特网服务提供者ISP(拥有IP,通信线路,联网设备),与因特网相连。
因特网是网络的网络,大致为分层的ISP等级结构。
-
在中心:"第一层"ISP(tier-1 ISP)(如Level 3 Communications,Sprint,AT&T,NTT)覆盖国际区域。
在ISP的结构中,某个ISP与其他ISP(无论它是上级、下级或同级)的连接点,被称为IXP(Internet eXchange Point),它可以是一个或多个交换设备,用来交换Internet流量。
全球已经有91个国家拥有IXP,其中拥有10个以上IXP的国家仅有9个,而仅拥有一个IXP的有48个国家。
- "第二层"ISP:覆盖一个国家或地区的规模,如中国电信、中国移动等。向上与一个或更多的第一层ISP相连,或与其他第二层ISP相连
- "第三层"ISP:本地ISP
最后一跳("接入")网络(最靠近端系统)
多层次ISP结构小结
- 第一层ISP:主干ISP(覆盖国际)---只有十多个
- 第二层ISP:区域ISP(区域性覆盖)---数以万机
1.一个二层ISP是其所连接的第一层ISP的客户,第一层ISP是第二层ISP的提供商。
2.第二层ISP之间如果直接连接,它们彼此是对等的(peer),这时流量能在二层网络间流动,可以不必经过第一层ISP,无需向第一层ISP付费。
3.一些大公司、机构、内容提供商将它们的企业网直接与第一层或第二层ISP连接,成为该ISP的客户。
-
较底层的ISP:本地ISP(为端用户提供直接的服务)(一个ISP可以方便地在因特网拓扑上添加新的层次和分支,该等级结构的底部,被称为本地ISP)
接入网
连接两者的通信链路
将端系统连接到其边缘路由器(edge router)的物理链路及设备的集合---将端系统接入核心网的部分。
网络指向用户方向:最后一公里(last mail)
用户指向网络方向:最初一公里(first mail)
注意:"一公里"是个形象化的称呼,并非实际距离。
拨号接入
DSL接入
混合光纤同轴电缆
光纤接入
无线接入
以太网接入
1.3 协议分层与服务模型
问题的提出:
网络系统非常复杂,包含大量的硬件和软件,而相互通信的计算机系统必须高度协调才能正常工作。
对付复杂系统最为有效的方法:"分而治之"
可以将问题转化为若干较小的易处理的局部问题。
网络中如何"分而治之":
1.找出相对独立的重要功能
2.梳理功能间关系,使一个功能为另一个功能提供服务
3.相近功能仅在一个层次中实现,并尽可能在较高层实现
分层的好处:
- 一个分层的体系结构允许我们讨论一个大而复杂的系统的一个明确、特定的部分。
- 对于大而复杂且需要不断更新的系统,某个层次改变了服务的实现,不会影响给系统其他部分。即:各层之间相对独立,易于实现和维护(只要这个层次对其上提供相同的服务,并且使用来自下面层次的相同服务,当这个层次改变服务的实现时,该系统的其余部分保持不变) 注:改变服务的实现 不等于 改变服务本身
- 能促进标准化工作
协议
为进行网络中的数据交换而建立的规则、标准或约定即称为网络协议。一个网络协议主要由以下三个要素组成:
(1)语法,即数据与控制信息的结构或格式;即:协议的语法方面的规则定义了所交换的信息的格式。
(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种相应;即:协议的语义方面的规则定义了发送者或接受者所要完成的操作。
(3)同步,即事件实现顺序的详细说明。
体系结构
- 计算机网络的各层及其协议的集合称为网络的体系结构(architecture),即计算机网络及其部件所应完成的功能的精确定义。
- 实现(implementation)是指遵循这种体系结构的前提下,用何种硬件或软件实现这些功能。
- 体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
OSI环境
数据传输路线
实体
实体(entity):表示任何可发送或接收信息的硬件或软件进程。
协议与服务
(N)层如何提供(N)服务:
1.在(N)层中执行的某些功能
2.与(N)层的对等层进行交互得到的功能
3.使用(N-1)层提供的服务
并非在(N)层内完成的全部功能都被称为服务。只有那些能够被(N+1)层看得见的功能才被称为"服务"
(N)服务的的用户只能看见(N)服务,看不见(N)协议。即:(N)协议对上面的(N+1)实体是透明的。
- 协议与服务之服务访问点SAP和服务原语
在同一系统中上下相邻两层的实体进行交互(即交换信息)的地方,通常称为Service Access Point
协议数据单元
协议数据单元PDU
指在不同端点中的各层对等实体之间,为实现该层协议交换的数据单元。
服务数据单元SDU
指(N)实体为完成(N+1)实体所请求的功能,所需要的数据单元。上下层之间交换的数据单元。
体系结构的两种国际标准
1.法律上的(dejure)国际标准OSI并没有得到市场的认可。
2.是非国际标准TCP/IP现在获得了最广泛的应用。
3.TCP/IP常被称为事实上的(defacto)国际标准。
TCP/IP模型
TCP/IP一开始就考虑到多种异构网的互连问题。
TCP/IP一开始就对面向连接服务和无连接服务并重。
TCP/IP有较好的网络管理功能。
TCP/IP协议桟
其实:TCP/IP并没有严格分层。有不少跨越分层规定的设计。
各层数据传送单位
再说"端到端原则"
问题:将网络某个特定功能如"路由选择""数据可靠传输"等放在那个层次的模块中比较好?
基本原则是:在网络核心实现某个网络功能,会增加网络的复杂性,如果将该功能放在端系统也能实现的话,就将其放在网络边缘,从而简化网络核心的实现。
边缘智能,核心简单!
举例说明该原则的意义:
两种文件可靠传输方案比较
- 方案一 依靠网络实现
保证文件在每两个结点之间都能可靠传输,从而最终到达接收方
- 方案二 依靠端系统实现
只进行发送方到接收方的端到端检查,如果有必要则再重传该文件
端到端原则:如果在较高层能够完善地实现某种功能,就无需再由较底层提供这种功能
因特网管理机构
- ISOC(Internet Society):1992年成立,是一个非营利,非*,国际性,专业会员制的组织,对因特网进行全面的管理以及在世界范围内促进其发展和使用。通过支持其他一些因特网管理机构来实现上述目标。
- IAB(Internet Architecture Board):主要任务是保证 TCP/IP协议族的持续发展及通过技术咨询向因特网的研究人员提供服务。负责任命各种与因特网相关的组织,如IANA、IESG和IRSG。IAB由ISOC的理事进行任命。
- IETF(Internet Engineering Task Force):有许多工作组WG(Working Group)组成的论坛,具体工作有因特网工程指导小组IESG管理。工作组划分为若干个领域,每个领域集中研究某一特定的短期和中期的工程问题,主要针对协议的开发和标准化
- IRTF(Internet Research Task Force):是一个有IAB授权对一些长期的互联网问题进行理论研究的组织。同IETF一样,IRTF有很多研究小组,分别针对不同的研究题目进行讨论和研究。
因特网的标准化工作
- 所有的因特网标准属于开放的标准,且全部免费都是以RFC(Request For Comments)的形式在因特网上发表。
- RFC文件是有ISOC审核后给定编号并发行。
- 一个RFC文档更新后就使用一个新的编号,并在文档中注明以前某个编号的RFC文档已陈旧。
有一个不断被更新的文件rfc-index.txt---按照RFC的编号来索引所有的文件。http://www.ietf.org/download/rfc-index.txt
根据具体内容RFC可以分为三类:
- 标准跟踪(Standards Track)RFC
标准跟踪RFC通常是指定义协议和协议补充的技术文档。根据协议的成熟程度,有三级不同的标准跟踪RFC,依次为建议标准(Proposed Standard),草案标准(Draft Standard)和因特网标准(Internet Standard)。
制定因特网的正式标准要经过以下四个阶段:
- 因特网草案(Internet Draft)---在这个阶段还不是RFC文档。
- 建议标准(Proposed Standard)基本成熟,但还需要进一步的实验证实其可行性。
- 草案标准(Draft Standard)至少要实现两个独立版本,并且已经通过了互操作性测试。
- 因特网标准(Internet Standard)最终的Internet标准,同时赋予一个STD编号。
- 非标准跟踪RFC
- 实验类RFC(Status:EXPERIMENTAL)不能够在任何实用的因特网服务中实现;
- 提供信息类RFC(Status:INFORMATIONAL)反映与Internet标准有关的一般性或有指导意义的信息;
-
历史类RFC(Status:HISTORIC)是一些被新的RFC取代或者是已经过时废弃不用的标准。
- 当前最好实践RFC(Status:BEST CURRENT PRACTICE)
1.4 分组交换网的性能指标
计算机网络的性能指标--速率
比特(bit)信息论中使用的信息量的单位,表示信息的最小单位。一个比特就是二进制数字中的一个1或0.
速率即数据率(data rate)或比特率(bit rate),单位是b/s(或者bit/s,有时也写为bps,即bit per second)。
千兆每秒,即Kb/s(10^3b/s)
兆比每秒,即Mb/s(10^6b/s)
吉比每秒,即Gb/s(10^9b/s)
太比每秒,即Tb/s(10^12b/s)
计算机中的数据量通常用字节为单位:千字节,即KB(2^10B);兆字节,即MB(2^20B);吉字节,即GB(2^30B)
计算机网络的性能指标--带宽
- 原本的含义
信号带宽:信号所包含的各种不同频率成份所占据的频率范围,即:信号具有的频带宽度。
信道带宽:通信线路允许通过的信号频带范围。单位是赫(Hz)(或kHz、MHz、GHz等)。
- 计算机网络中,"带宽"指链路在一定的时段内所能传输的比特数的额定值。习惯上作为数据通过网络传送的最高速率的同义语。单位是"比特每秒"(b/s)(或Kb/s,Mb/s,Gb/s,Tb/s)。
提高带宽是指提高了一个时间段内发送到信道上的比特量。
由此,带宽是指数据在信道上的发送速率。同义语:数字信道所能传输的数据率,数据在信道上的传输速率。
计算机网络的性能指标---吞吐量
- 吞吐量(throughput)表示在单位时间内,无差错地通过某个网络(或信道、接口)的数据量。
- 吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
- 吞吐量受网络的带宽或网络的额定速率的限制。
- 瓶颈链路:路径中可用带宽最小的链路
-
可用带宽:带宽与干扰流量之差
吞吐量不仅取决于沿途各路径的可用带宽,而且还会受到干扰流量的影响,取决于端到端路径上的最小可用带宽。
计算机网络的性能指标---时延
- 单向时延:定义为一个分组从网络的一端传到另一端所需要的时间。
- 往返时延RTT(Round-Trip Time):指一个分组从网络路径的一端传到另一端,并返回确认所需要的时间。或者说从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。
分组从源结点出发,经过一系列中间结点,到达目的端,分组在沿途的每个结点都经历了以下几种类型的时延:
- 传播时延(propagation delay)
- 传输时延(transmission delay)
- 处理时延(processing delay)
- 排队时延(queuing delay)
1.传播时延
电磁波在信道中传播一定的距离而花费的时间
2.发送时延(也称传输时延)
数据块从结点进入到传输媒体所需要的时间。或者说从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需的时间。
传播时延与发送时延没有联系
在高带宽链路上,比特应该跑得更快些!(对吗?)
不对!
- 高带宽意味着提高了数据的发送速率而不是比特在链路上的传播速率。
- 承载信息的电磁波在链路上的传播速率与数据的发送速率无关。当带宽或发送速率提高后,比特在链路上向前传播的速率并没有提高,只是每秒种注入到链路的比特数增加了。
- 用户感觉传输用的时间少了,是因为带宽越高,数据的发送时延越小。
- 常说的"速率提高"就体现在单位时间内发送到链路上的比特数增多了,而并不是比特在链路上跑得更快。
3.处理时延(通常几个微妙或更少)
路由器在收到分组时要花费一定的时间进行处理:
- 分析分组的首部
- 提取分组的数据部分
- 差错检验
- 查找路由
4.排队时延(微妙级到毫秒级)
- 排队时延指结点缓存队列中分组排队所经历的时延。
- 排队时延的长短往往取决于网络中当时的通信量。
分组在路由器缓存中排队
- 分组到达链路的速率超过输出链路能力将导致分组排队
- 分组在缓存中排队等待交换,排队过多则丢包。
L代表分组长度(bit)
a代表分组到达队列的平均速率(pkt/s),则,到达队列的平均比特速率为L*a(bit/s)
R标识从队列中送出比特的平均速率(bit/s)
流量强度:L*a/R
若La/R>1,则导致排队时延趋向无穷大(当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延无穷大.)
总时延=发送时延+传播时延+处理时延+排队时延
时延计算图示(通常忽略处理时延和排队时延)
计算机网络的性能指标---时延带宽积
时延带宽积=传播时延x带宽
表示发送端连续发送数据,当在发送的第一个比特即将到达终点时,发送端已经发送到链路上的比特量,代表某一链路所能容纳的比特数。链路的时延带宽积又称为以比特为单位的链路长度。
例如,某链路的时延带宽积为100万比特,这意味着第一个比特到达目的端时,源端已发送了100万比特。
相同的圆柱长度,截面越大,体积越大
即:相同的传播时延,带宽越大,该链路上所能容纳的比特数越多。
计算机网络的性能指标---丢包率
丢包率是指在一定的时段内,在两结点之间传输过程中丢失分组的数量与总的分组发送数量的比率。
无拥塞时为0%,轻度拥塞为1~4%,严重拥塞为5~15%
网络丢包主要原因:路由器无法容纳到达的分组,只能丢弃(drop)。
注:在基于光纤的现代网络中通常可以忽略因其他情况引起的丢包。
计算机网路的性能指标---跳与路径
- 路径可以定义为形式为<h0,I1,h1,...,In,hn>的序列,是单向的
- 每个hi是一个结点
- 每个Ii是一条hi-1到hi之间的链路
- 对于端到端路径而言,h0和hn是端系统,而h1...hn-1是路由器。每个<Ii,hi>二元组被称为一"跳"
补充:计算机网络的性能指标---利用率
- 信道利用率指出信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
- 网络利用率则是全网络的信道利用率的加权平均值。
- 信道利用率并非越高越好
- 根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。
- 若令D0表示网络空闲时的时延,D表示网络当前的时延,则在适当的假定条件下,可以用下面的简单公式表示D和D0之间的关系:
U是网络的利用率,数值在0到1之间。