本文是看谢钧老师《计算机网络教程》的读书笔记,若有侵权的地方,还望告知。
网络的网络
网络(network) 由若干个 结点(node) 和连接这些结点的 链路(link) 组成。网络中的结点可以是计算机、集线器、交换机或路由器等。如图1给出一个具有5个结点和4个链路的网络。很多情况下我们可以用一朵云表示一个网络(不用关心网络中的细节问题),从而集中精力研究网络互连有关的问题。
图1. 网络示意图( )
网络通过路由器连接起来,就构成一个覆盖范围更大的网络,退出互联网,如图2所示,互联网其实就是“ 网络的网络(network of networks) ”
图2. 互联网示意图( )
因特网(Internet) 是世界上最大的互连网络。习惯上,大家把连接在因特网上的计算机都称作 主机(host) 。路由器是一种特殊的计算机,它是连接不同网络的专用设备,用户并不直接使用路由器处理信息,因此路由器并不能称作主机。图3表示许多主机连在因特网上,而因特网也常常采用一朵云来表示,从而忽略网络内部的细节。
图3. 因特网与连接的主机( )
基本认识: 网络把许多计算机连接在一起,而互联网则把许多网络连接在一起。因特网是世界上最大的互联网 。有时为了避免意义上的不明确,我们把直接连在计算机上的网络称为 物理网络 ,而互联网是由物理网络集合构成的 逻辑网络 。
因特网发展的三个阶段
第一阶段:从单个的ARPANET向互联网发展。这个阶段中,1983年ARPANET把TCP/IP协议作为标准协议,使得所有使用TCP/IP协议的计算机都能利用互连网相互通信,因而人们把1983年作为因特网诞生的时间。在此,有两个意思差别很大的名词:internet和Internet。其中 internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互连而成的网络 ,而这些网络之间的通信协议(即通信规则)可以是任意的。I nternet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议簇作为通信的规则 ,且其前身是美国的ARPANET。
第二阶段:逐步建成了 三级结构的因特网 。主要分为 主干网 、 地区网 和 校园网 (或 企业网 )。这个阶段因特网上的主机数量急剧增加,其主干网的速率也大大提高。
第三阶段:逐渐形成了 多层次ISP结构的因特网 。ISP(Internet Service Provider)就是因特网服务提供者(因特网服务提供商)。图4说明了用户要通过ISP才能连接到因特网,ISP通过因特网管理机构申请成块的IP地址(主机必须有IP才能进行通信),同时拥有通信线路、路由器等连网通信设备。根据提供服务的覆盖面积大小及所拥有的IP地址数目的不同,ISP也分不同的层次,因特网也逐渐变成基于ISP的多层次结构网络。当然,一旦某个用户能够接入到因特网,那么他就能够成为一个ISP,只要购置如调制解调器或路由器这样的设备,让其他用户能够和他相连。
图 4. 用户通过ISP接入因特网( )
因特网的组成
从功能上看,因特网可以划分为两大块: 边缘部分 和 核心部分 。其中,边缘部分由所有连接在因特网上的主机组成,这部分 由用户直接使用 ;核心部分则由大量网络和连接这些网络的路由器组成,这部分是 为边缘部分提供服务的 (连通性和数据交换)。
因特网边缘的部分: 就是所有的主机,这些主机又称为 端系统 (End System)。明确一下,由于“进程”就是“运行着的程序“,因此” 计算机之间通信 “也就是” 主机A的某个进程和主机B上的另一个进行进行通信 “。
主机有时可以划分为: 客户机 (Client)和 服务器 (Server), 客户机是服务请求方,服务器则是服务提供方 。这种运行方式也就是通常据说的”Client/Server“(简称C/S)工作方式。但C/S并不是唯一工作方式,越来越多的网络应用开始采用对等(Peer-to-Peer,P2P)方式。这种方式没有固定的服务请求者和提供者,现在流行的BT(BitTorrent)或电驴(emule)都使用了P2P的工作方式。
因特网核心部分: 起特殊作用的是路由器(router),是 实现分组交换 (packet switching)的关键构建,任务是 转发收到的分组 ,这是网络核心部分最重要的功能。
电话机两两相连出现了电话交换机,其连通电话线的方式是一种称为 电路交换 (circuit switching)的方式。从通信资源的分配角度来看, 交换 (switching)就是按照某种方式动态地分配传输线路的资源。使用电路交换打电话之前,必须先拨号请求建立连接,而被叫用户同意接通后,从主叫端到被叫端就建立了一条连接,也就是一条专用的 物理通路 ;通话挂断后,交换机释放这条专用的物理通路。这种必须经过” 建立连接 (分配通信资源)、 通话 (一直占用通信资源)、 释放连接 (归还通信资源)“三个步骤的交换方式称为 电路交换 。显然,使用电路交换来传送计算机数据时,其 线路的传输效率往往很低 。
计算机网络通常采用 分组交换技术 。通常我们把要发送的整块数据称为一个 报文 (message),发送之前,先把较长的报划分成为一个个更小的等长数据段。在每一个数据段前面加上必要的控制信息(如目的地址、源地址等)组成的 首部 (header),这样就构成了一个 分组 (packet)。分组又称为“ 包 ”,而分组的首部也可称为“ 包头 ”。计算机将分组通过通信链路直接发送给 分组交换机 ,分组交换机收到一个分组则暂时存储下来,再检查其首部,按照首部中的目的地址查找转发表,找到合适的端口(就是分组交换机和外部连接的接口)转发出去,把分组交给下一个分组交换机,这样一步一步把分组转发到最终的目的计算机。由于每个分组交换机都是将收到的分组先存储下来再转发出去,因此该方法被称为 存储转发 方式。
因特网中最重要的分组交换机就是 路由器 (router)。在因特网核心部分的路由器之间一般采用高速链路相连接,而网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。位于网络边缘的主机和核心部分的路由器都是计算机,但 主机的用途是为用户进行信息处理 ,并且可以和其他主机通过网络交换信息,路 由器则负责转发分组的,即进行分组交换 。
分组交换的传输过程并非像电路交换那样,自始至终占用整个端到端的电路资源,而是逐渐地占用: 在哪段链路传输,就占用该链路的资源 ,这有利于整个网络资源的利用。总之, 分组交换在传送数据之前不必先占用一条端到端的通信资源,分组在哪段链路上传送才中用这段链路的通信资源。分组在传输时就这样一段接着一段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高 。
分组交换也带来一些新的问题,如路由器转发分组时造成的 时延 ,由于并非通过建立连接来保证通信时所需的各种资源,无法确保通信时端到端所需的带宽,通信量较大时可能造成 网络拥塞 。还有各分组必须携带的控制信息造成了一定的 开销 (overhead),而且整个分组交换网还需要专门的管理和控制机制。
图5表示电路交换、报文交换和分组交换的区别,图中A和D分别是源点和终点,而B和C是在A和D之间的中间结点。三种交换方式在数据传送阶段的主要特点:
电路交换:整个报文的比特流连续地从源点直达终点,好像一条物理的线路直接将源点和终点连接起来
报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换:单个分组(整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。注意,分组交换结点的输出接口和输入接口能够并行工作,当输出端口在发送一个分组时,其输入端口可以同时接收下一个分组。
图5. 电路交换、报文交换和分组交换,P1~P4表示4个分组( ) 计算机网络定义、分类与性能
计算机网络的定义: 一些互相连接的、自治的计算机的集合 。
从网络的作用范围进行分类:局域网(Local Area Network,LAN,通常限于校园网或企业网)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、个人区域网(Personal Area Network,PAN);从网络的使用者分类:公用网(public network)和专用网(private network)
计算机网络的一些性能指标:
速率: 数据传送的速率 ,也称为 数据率 (data rate)或 比特率 (bit rate)。比特(bit)是计算机中数据量的单位,源于 binary digit ,意思是一个“二进制数字”。速率的单位是bit/s(比特每秒)、Kbit/s()、Mbit/s(兆)、Gbit/s(吉)、Tbit/s(太)。一般采用更简单的记法,如100M以太网,其实是忽略了单位中的bit/s。
带宽(bandwidth):带宽本来指某个信号具有的频带宽度,信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围,这种带宽的单位是赫(或千赫、光赫、吉赫),而表示通信线路允许通过的信号频带范围就称为线路的带宽。而在计算机网络中的带宽用来表示网络的 通信线路 所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另外一点所能通过的“ 最高数据率 ”,这种意义的带宽单位是“ 比特每秒 ”,记为bit/s。
吞吐量(throughpu):也称为吞吐率,表示单位时间内通过草根个网络(或信道、接口)的数据量。显然,吞吐量受网络的带宽或网络的额定速率的限制。
时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需要的时间。时延有时也称作 延迟 或 迟延 。包括:发送时延(主机或路由器将分组发送到通信线路上所需要的时间)、传播时延(电磁波在信道中需要传播一定的距离而花费的时间)、处理时延(主机或路由器在收到分组时要花费一定的时间进行处理)、排队时延(由于分组在路由器的输入队列中排队等待处理需要的时间)。 对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率,而提高数据的发送速率只是减小了数据的发送延时 。我们通常据说的“光纤信道的传输速率高“是指向光纤信道发送数据的速率可以很高,而传播速率实际比铜线略低一点。
丢包率:即分组丢失率,是指在一定时间范围内,分组在传输过程中丢失的分组数量与总的分组数量的比。
利用率:信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好,因为信 道或网络利用率过高会产生非常大的时延 。
计算机网络体系结构
计算机网络的基本概念中,协议与分层的体系结构量重要。由于计算机网络的结点之间要有条不紊地交换数据,每个结点必须遵守一些事先约定好的规则。这些规则明确规定了 所交换的数据格式和时序 ,以及在 发送或接收数据时要采取的动作 等问题。这些 为进行网络中的数据交换而建立的规则、标准或约定 即称为 网络协议 (network protocol)。
网络协议主要由三个要素组成: 语法 (即数据与控制信息的结构或格式)、 语义 (各个控制信息的具体含义)、 同步 (或 时序 ,即事件实现顺序和时间的详细说明,数据应该何时发送出去,以什么样的速率发送)。
计算机网络是一个非常复杂的系统,需要利用模块化的思想进行处理和设计,而层次式的模块划分方法特别适合网络系统。我们将计算机网络的层次结构模型与各层协议的集合称为计算机网络的 体系结构 (architecture),也就是说, 计算机网络的体系结构就是这个计算机网络及其部件所应完成的功能的精确定义 。国际标准化组织(ISO)于1977年试图提出一种标准框架,开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称OSI。OSI的七层协议体系结构概念清晰,理论完整,但太复杂而且不实用。TCP/IP是一个四层的体系结构,包含应用层、运输层、网际层和网络接口层。一般采用折中的方法,采用一种五层协议的原理体系结构,自上而下分别为:
应用层(application layer)的任务是 如何通过应用进程间的交互来完成特定的网络应用 。应用层协议定义的是 应用进程间通信和交互的规则 。如支持万维网应用的HTTP协议、支持电子邮件的SMTP协议、支持文件传送的FTP协议等。应用层交互的数据单元称为 报文 (message)
运输层(transport layer)或传输层的任务是 向两台主机中进程之间的通信提供通用的数据传输服务 。应用进程利用该服务传送应用层报文,通用是指并不针对某个特定网络应用,多种应用可以使用同一种运输层服务。因特网中主要有两个运输层: 传输控制协议 (Transmission Control Protocol,TCP)提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment); 用户数据报协议 (User Datagram Protocol,UDP)提供无连接的、 尽最大努力 (best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是 用户数据报 。
网络层(network layer)网络层负责为分组交换网上的不同 主机 提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成 分组 或 包 进行发送。在TCP/IP协议体系中,网络层使用IP协议,因此分组也叫 IP数据报 ,或简称为 数据报 。网络层的一个重要任务就是选择合适的路由(route),将源主机运输层所传下来的分组,通过网络中的路由器的 转发 ,最后到达目的主机。因特网主要的网络层协议是无连接的网际协议(Internet Protocol,IP)和许多路由选择协议,因此因特网的网络层也叫做 网际层 或 IP层 。
数据链路层(data link layer)通常简称为 链路层 ,任务就是将分组从链路的一端传送到另一端。数据链路层传送的数据单元称为 帧 (frame)。因此数据链路层的任务就是在相邻结点之间(主机和路由器之间或两个路由器之间)的链路上传送以帧为单位的数据,而每一帧包括数据和必要的 控制信息 。
物理层(physical layer)是原理体系结构的最底层,完成计算机网络中最基础的任务,即在 传输媒体上传送比特流 ,将数据链路层帧中的每个比特从一个结点通过传输媒体传送到下一个结点。物理层传送数据的单位是 比特 。
人们经常提到的TCP/IP协议往往表示因特网所使用的整个TCP/IP协议簇(protocol suite)。有向个抽象名词说明一下。实体(entity)表示 任何可发送或接收信息的硬件或软件进程 。协议是 控制两个对等实体(或多个实体)进行通信的规则的集合 。协议的实现保证了能够向上一层提供服务,而 使用本层服务的实体只能看见服务而无法看见下面的协议,下面的协议对上面的实体是透明的 。”透明“表示 某个实际存在的事物看起来好像不存在一样 。其次,协议是” 水平的 “,即协议是控制对等实体之间通信的规则,但服务是” 垂直的 “,即服务是由下层向上层通过层间接口提供的。
标签:网络教程,因特网,概述