21世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
“三网融合”:电信网络、有线电视网络和计算机网络。按照最初的服务分工,电信网络向用户提供电话、电报及传真等服务;有线电视网络向用户传送各种电视节目;计算机网络则使用户能够在计算机之间传送数据文件。
互联网具有的两个重要基本特点,即连通性和共享。
所谓(1)连通性(connectivity),就是互联网使上网用户之间,不管相距多远(例如,相距数千公里),都可以非常便捷、非常经济地(在很多情况下甚至是免费的)交换各种信息(数据、以及各种音频、视频),(2)好像这些用户终端都彼此直接连通一样。
所谓共享就是指资源共享。资源共享的含义是多方面的,可以是信息共享、软件共享,也可以是硬件共享。
计算机网络(简称为网络)由若干节点(node)和连接这些节点的链路(link)组成。
有多个网络通过一些路由器相互连接起来,构成了一个覆盖范围更大的计算机网络。这样的网络称为互连网(internetwork或internet)。因此互连网是“网络的网络”(network of networks)。
互连网==通信子网
基本概念:网络把许多计算机连接在一起,而互联网则把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机。
第一阶段是从单个网络ARPANET向互连网发展的过程。
1969年美国国防部创建的第一个分组交换网ARPANET最初只是一个单个的分组交换网(并不是一个互连的网络)。
1983年TCP/IP协议成为ARPANET上的标准协议,使得所有TCP/IP协议的计算机都能够利用互连网相互通信,因而人们就把1983年作为互联网的诞生时间。
1990年ARPANET正式宣布关闭,因为它的实验任务已经完成。
请读者注意以下两个意思相差很大的名词internet和Internet[RFC 1208]:
以小写字母i开始的internet(互联网)是一个通用名词,它泛指由多个计算机网络互相连接而成的计算机网络。
以大写字母I开始的Internet(互联网,或因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则,且前身是美国的ARPANET。
第二个阶段的特点是建成了三级结构的互联网。
从1985年起,美国国家科学基金会NSF(National Science Foundation)就围绕六个大型计算机中心建设计算机网络,即国家科学基金会网NSFNET。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。
1993年互联网主干网的速率提高到45Mbit/s(T3速率)。
第三阶段的特点是逐渐形成了全球范围多层次ISP结构的互联网。
从1993年开始(NII计划),由美国政府资助的NSFNET逐渐被若干个商用的互联网主干网替代,而政府机构不在负责互联网的运营。这样就出现了一个新的名词:互联网服务提供者ISP(Internet Service Provider)。在许多情况下,互联网服务提供者ISP就是一个进行商业活动的公司,因此ISP又常被译为互联网服务提供商。例如,中国电信、中国联通和中国移动等公司都是我国最有名的ISP。
随着互联网上数据流量的急剧增长,人们开始研究如何更快地转发分组,以及如何更有效和更加经济地利用网络资源。于是,互联网交换点IXP(Internet eXchang Point)就应运而生了,主要作用就是允许两个网络直接相连并交换分组,而不需要通过第三个网络来转发分组。
20世纪90年代,由欧洲原子核研究组织CERN开发的万维网WWW(World Wide Web)被广泛使用在互联网上。
1992年由于互联网不再归美国政府管辖,因此成立了一个国际性组织叫做互联网协会(Internet Society,简称ISOC)[W-ISOC],以便对互联网进行全面管理以及在世界范围内促进其发展和使用。ISOC下面有一个技术组织叫做互联网体系结构委员会IAB(Internet Architecture Board),负责管理互联网有关协议的开发。IAB下面又设有两个工程部:
(1)互联网工程部IETF(Internet Engineering Task Force)
IETF是由一些工作组WG(Working Group)组成的论坛(forum),具体工作由互联网工程指导小组IESG(Internet Engineering Steering Group)管理。这些工作组划分为若干领域(area),每个领域集中研究某一特定的短期和中期的工程问题,主要针对协议的开发和标准化。
(2)互联网研究部IRTF(Internet Research Task Force)
IRTF是由一些研究组RG(Research Group)组成的论坛(forum),具体工作由互联网研究指导小组IRSG(Internet Research Steering Group)管理。IRTF的任务是研究一些需要长期考虑的问题,包括互联网的一些协议、应用、体系结构等。
所有的互联网标准都是以RFC文档的形式在互联网上发表的,RFC(Request For Comments)的意思就是“请求评论”。
制定互联网的正式标准要经过以下三个阶段:
(1)互联网草案(Internet Draft)——互联网草案的有效期只有六个月。在这个阶段还不能算是RFC文档。
(2)建议标准(Proposed Standard)——从这个阶段开始就成为RFC文档。
(3)互联网标准(Internet Standard)——如果经过长期的检验,证明了某个建议标准可以成为互联网标准时,就给它分配一个标准编号,记为STDxx,这里STD是“Standard”的英文缩写,而“xx”是标准的编号(有时也写出4位数编号,如STD0005)。一个互联网标准可以和多个RFC文档关联。
除了建议标准和互联网标准这两种RFC文档,还有三种RFC文档,即历史的、实验的和提供信息的RFC文档。历史的RFC文档或者是被后来的规约所取代,或者是从未达必要的成熟等级因而始终未变成为互联网标准。实验的RFC文档表示其工作处于正在实验的情况,而不能够在任何实用的互联网服务中进行实现。提供信息的RFC文档包括与互联网有关的一般的、历史的或指导的信息。
互联网的拓扑结构虽然非常复杂,并且在地理上覆盖了全球,但从其工作方式上看,可以划分为以下两大块:
(1)边缘部分(资源子网) 由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
(2)核心部分(通信子网) 由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
图1-1给出了这两部分的示意图。下面讨论这两部分的作用和工作方式。
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统(end system),“端”就是“末端”的意思(即互联网的末端)。端系统在功能上可能有很大的差别,小的端系统可以是一台普通个人电脑和具有上网功能的智能手机等设备,而大的端系统则可以说一台非常昂贵的大型计算机(这样的计算机通常称为服务器server)。
明确概念:我们说“主机A和主机B进行通信”,实际上是指:“运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信”。由于“进程”就是“运行着的程序”,因此这也就是指:“主机A的某个进程和主机B上的另一个进程进行通信”。这种比较严密的说法通常可以简称为“计算机之间通信”。
在网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。下面分别对这两种方式进行介绍。
客户-服务器方式
这种方式在互联网上是最常用的,也是传统的方式。
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客服-服务器方式描述的是进程之间服务和被服务的关系。
客户是服务请求方,服务器是服务提供方。
对等连接方式
对等连接(peer-to-peer,简写为P2P。这里使用数字2是因为英文的2是two,其读音与to同,因此英文的to常写为数字2)是指两台主机在通信时,并不区分哪一个是服务请求方和哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。
网络核心部分要向网络边缘部分中的大量主机提供连通性,使边缘部分中的任何一台主机都能够与其他主机通信。
路由器(router)是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组。
为了弄清分组交换,下面先介绍电路交换的基本概念。
电路交换的主要特点
这种必须经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)“三个步骤的交换方式称为电路交换。
重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,因此线路上真正用来传输数据的时间往往不到10%甚至1%,已被用户占用的通信线路资源在绝大部分时间里都是空闲的。
分组交换的主要特点
分组交换则采用存储转发技术。图1-4表示把一个报文划分为几个分组后再进行传送。通常我们把要发送的整块数据称为一个报文(message)。在发送报文之前,先把较长的报文划分为一个个更小等长数据段,例如,每个数据段为1024bit。在每个数据段前面,加上一些必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为“包”,而分组的首部也可称为“包头”。
主机是为用户进行信息处理的,并且可以和其它主机通过网络交换信息。路由器则用来转发分组,即进行分组交换。
分组交换的主要优点:
高效:在分组传输的过程中动态分配传输带宽,对通信链路逐段占用
灵活:为每一个分组独立地选择最合适的转发路由
迅速:以分组为传送单位,不先建立连接就能向其它主机发送分组
可靠:保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性
分组交换带来的问题:
分组在各路由器存储转发时需要排队,这就会造成一定的时延。此外,由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽。
各分组必须携带的控制信息也造成了一定的开销(overhead)。整个分组交换网还需要专门的管理和控制机制。
电路交换、报文交换、分组交换在数据传送阶段的主要区别:
电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
报文交换——整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。
分组交换——单个分组(这只是整个报文的一部分)传送到相邻节点,存储下来后查找转发表,转发到下一个节点。
1989年11月我国第一个公用分组交换网CNPAC建成运行。
1994年4月20日我国用64kbit/s专线正式连入互联网。从此,我国被国际上正式承认为接入互联网的国家。
同年9月中国公用计算机互联网CHINANET正式启动。到目前为止,我国陆续建造了基于互联网技术并能够和互联网互连的多个全国范围的公用计算机网络,其中规模最大的就是下面这五个:
中国电信互联网CHINANET(也就是原来的中国公用计算机互联网)
中国联通互联网UNINET
中国移动互联网CMNET
中国教育和科研计算机网CERNET
中国科学技术网CSTNET
2004年2月,我国的第一个下一代互联网CNGI的主干网CERNET2试验网正式开通,并提供服务。
中国互联网络信息中心CNNIC(China Network Information Center)每年两次公布我国互联网的发展情况。
计算机网络的精确定义并未统一。
”可编程的硬件“表明这种硬件一定包含有中央处理器CPU。
按照网络的作用范围进行分类
广域网WAN(Wide Area Network) 作用范围通常几十到几千公里,因而有时也称为远程网(long haul network)。
城域网MAN(metropolitan Area Network) 作用范围一般是一个城市,可跨越几个街区甚至几个城市,其作用距离约为5~50km。
局域网LAN(Local Area Network) 一般用于微型计算机或工作站通过高速通信线路相连(速率通常在10Mbit/s以上),但地理上则局限在较小的范围(如1km左右)。
个人区域网PAN(Personal Area Network) 在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络,因此也常称为无线个人局域网WPAN(Wireless PAN),其范围很小,大约在10m左右)。
按照网络的使用者进行分类
公用网(public network)
专用网(private network)
用来把用户接入到互联网的网络
这种网络就是接入网AN(Access Network),它又称为本地接入网或居民接入网。
用户必须通过本地ISP才能接入到互联网。
接入网实际上就是本地ISP所拥有的网络,它既不是互联网的核心部分,也不是互联网的边缘部分。
速率
网络技术中的速率指的是数据的传送速率,它也称为数据率(data rate)或比特率(bit rate)。速率的单位是bit/s(比特每秒)(或b/s,有时也写为bps,即bit per second)。
当提到网络的速率时,往往指的是额定速率或标称速率,而并非网络实际上运行的速率。
带宽
”带宽“(bandwidth)有以下两种不同的意义:
带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。这种意义的带宽的单位是赫(或千赫、兆赫、吉赫等)。在过去很长的一段时间,通信的主干线路传送的是模拟信号(即连续变化的信号)。因此,表示某信道允许通过的信号频带范围就称为该信道的带宽(或通频带)。
在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示单位时间内网络中的某信道所能通过的”最高数据率“。这种意义的带宽的单位就是数据率的单位bit/s,是”比特每秒“。
前者为频域称谓,而后者为时域称谓,其本质是相同的。
吞吐量
吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的实际数据量。
时延
时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间,有时也称为延迟或迟延。
需要注意的是,网络中的时延是由以下几个不同的部分组成的:
发送时延 发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此也叫做传输时延。发送时延的计算公式是:
传播时延 传播时延(propagation delay)是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
电磁波在自由空间的传播速率是光速,即。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为,在光纤中约为。
发送时延发生在机器内部的发送器中(一般就是发生在网络适配器中),与传输信道的长度(或信号传送的距离)没有任何关系。但传播时延则发生在机器外部的传输信道媒体上,而与信号的发送速率无关。信号传送的距离越远,传播时延就越大。
下面还有两种时延也需要考虑,
处理时延 主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找转发表等,这就产生了处理时延。
排队时延 排队时延是指分组在经过网络传输时,要经过许多的路由器。 但分组在进入路由器后要在输入队列中排队等待处理。 在路由器确定了转发接口后,还要在输出队列中排队等待转发。 排队延迟是指分组在所排队列中等待被发送到出链路的时间;某个特定分组的排队延迟取决于等待通过同一个出链路转发出去的分组的数目。
这样,数据在网络中经历的总时延就是以上四种时延之和:
对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。
提高数据的发送速率只是减小了数据的发送时延。
时延带宽积
把以上讨论的网络性能的两个度量——传播时延和带宽——相乘,就得到了另一个很有用的度量:传播时延带宽积,即
链路的时延带宽积又称为以比特为单位的链路长度。
往返时间RTT
往返时间RTT(Round-Trip Time)也是一个很重要的性能指标。
在互联网中,往返时间还包括各中间节点的处理时延、排队时延以及转发数据时的发送时延。
利用率
利用率有信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。如果令表示网络空闲时的时延,D表示网络当前的时延(设现在的网络利用率为U),那么在适当的假定条件下,可以用下面的简单公式来表示D和及网络利用率U之间的关系:
概念:信道利用率或网络利用率过高就会产生非常大的时延。
结论:设计的网络利用率不是越大越好!!!利用率<=50%
费用
质量
标准化
可靠性
可扩展性和可升级性
易于管理和维护
国际标准化组织ISO于1977年成立了专门机构研究不同体系结构的计算机网络互连这个问题。他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM(Open System Interconnection Reference Model),简称为OSI。
得到最广泛应用的不是法律上的国际标准OSI,而是非国际标准TCP/IP。这样,TCP/IP就常被称为是事实上的国际标准。
TCP/IP:异构网络互连
在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先规定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的(即同频或者同频同相),而是广义的,即在一定的条件下应当发生什么事件,因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则,标准或约定称为网络协议(network protocol)。网络协议也可简称为协议,更进一步讲,主要由以下三个要素组成:
(1)语法,即数据与控制信息的结构或格式;
(2)语义,即需要发出何种控制信息,完成何种动作以及做出何种响应;
(3)同步,即事件实现顺序的详细说明。
计算机网络分层可以带来以下好处:
各层之间是独立的:某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。
灵活性好:当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,也可以将这层取消。
结构上可分割开:各层都可以采用最合适的技术来实现。
易于实现和维护:这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。
能促进标准化工作:因为每一层的功能及其所提供的服务都已有了精确的说明。
差错控制
流量控制
分段和重装
复用和分用
连接建立和释放
计算机网络的各层及其协议的集合就是网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义[GREE82](不涉及实现)。总之,体系结构是抽象的,而实现是具体的,是真正在运行的计算机硬件和软件。
OSI的七层协议体系结构(如图1-4(a)所示)的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP是一个四层的体系结构(如图1-4(b)所示)。在讲授计算机网络原理时往往采取五层协议体系结构(如图1-4(c)所示),即综合OSI和TCP/IP的优点。
现在结合互联网的情况,自上而下地、非常简要地介绍一下各层地主要功能:
应用层(application layer)
应用层是体系结构的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。我们把应用层交互的数据单元称为报文(message)。
运输层(transport layer)
运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。
运输层主要使用以下两种协议:
传输控制协议TCP(Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
用户数据报协议UDP(User Datagram Protocol)——提供面向无连接的尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输单位是用户数据报。
也有人把运输层称为传输层。
网络层(network layer)
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
分组==数据报
请注意:无论在哪一层传送的数据单元,都可笼统地用”分组“来表示。
数据链路层(data link layer)
数据链路层常简称为链路层。在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
物理层(physical layer)
物理层任务是实现比特流的透明传输。在物理层上所传数据的单位是比特。
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU(Protocol Data Unit)。
当研究开放系统中的信息交换时,往往使用实体(entity)这一较为抽象的名词表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
一定要弄清楚,协议和服务在概念上是很不一样的。
首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能够看见服务而无法看见下面的协议。也就是说,下面的协议对上面的实体是透明的。
其次,协议是“水平的",即协议是控制对等实体之间通信的规则。但服务是"垂直的", 即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称为 服务,只有那些能够被高一层实体“看得见”的功能才能称之为“服务”。
在同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP(Service Access Point)。OSI把层与层之间交换的数据的单位称为数据服务单元SDU(Service Data Unit),它可以与PDU不一样。
在服务提供者的上一层的实体又被称为“服务用户”,因为它使用下层服务提供者所提供的服务。
前面已经说过,TCP/IP的体系结构比较简单,它只有四层。
互联网现在采用的存储转发的分组交换技术以及三层ISP结构。
五层协议的体系结构由应用层、运输层、网络层(或网际层)、数据链路层和物理层组成。运输层最重要的协议是TCP和UDP协议,而网络层最重要的协议是IP协议。