2.1 数据通信概述

2.1.1 数据通信的特点

数据通信就是专门传送数据的通信;它以满足数据传送为基本出发点,而且正在不断向其他领域延伸与扩展。数据通信具有以下特点:

(1)准确传送。

与其他通信方式相比,实现“准确传送”是数据通信的第一目标。众所周知,网络在传送其他信号时可允许出现少量误码;如果传送的是语音信号,少量误码可能会使声音有些失真;如果传送的是图像信号,少量误码可能会导致图像出现雪花等,这些都是允许的。但如果传送的数据文件出现错误,则有可能导致严重失误甚至可能使整个文件作废,所以说实现“准确传送”始终是数据通信的最重要目标。数据通信一般会采取许多措施与手段(如纠错)来保证“准确传送”。当然并非所有的数据通信都要求进行“准确传送”,具体要求与业务的种类有关。

(2)突发性强与带宽可变。

突发性强与带宽可变这是数据通信的最大特点之一。数据通信业务往往具有突发性质,业务流量的随机性很强,其高峰与低谷难以预测,因此数据通信对带宽的需求不是固定而是动态可变;此外,不同的数据业务所要求提供的服务级别也有所不同。这就要求网络应具有动态分配带宽资源的功能,而且能根据业务等级提供不同级别的服务。此外为了防止网络发生拥塞,还应该具有流量控制功能,如均衡网络的负载、在业务高峰时降低低等级业务的流量、保证高等级业务的正常传送等。

(3)种类繁多、协议繁多。

数据通信的种类繁多,因为所有传送数据的通信都属于数据通信范畴,如局域网LAN、虚拟局域网VLAN、虚拟专用网VPN、互联网、异步传送模式ATM、帧中继FR、数字数据网DDN、多协议标签交换MPLS、数字图像传输与大型计算机站之间的专线传输等。业务种类的繁多必然带来信号格式与信号速率的种类繁多,可以说令人眼花缭乱。几乎每种数据通信都需要一个或几个专门的协议进行支持,所以数据通信涉及的通信协议非常多,如以太网的载波监听多路访问/冲突检测协议(CSMA/CD)、点到点协议(PPP)、GFP协议、IP协议、ATM协议、RPR协议、多协议标签交换MPLS协议,以及相关的一些路由协议、信令协议等,因此要学习数据通信必须了解相关的通信协议。

(4)信息传送路径复杂。

与语音通信不同,数据通信不仅是一点对一点、一点对多点的传送,还有多点对一点或多点对多点的传送,传送路径相当复杂。这就要求网络能支持多方向、多路径的信息传送。

(5)对时延及抖动的要求高。

早期的数据通信(包括互联网)虽然对传输的可靠性要求比较高,但对时延及抖动的要求则比较宽松;但伴随传输信息已从单纯的数据文本演变到丰富多采的多媒体信息,许多数据业务对时延、抖动、丢包率等提出了越来越严格的要求。

2.1.2 分组技术

1.分组技术简介

所谓分组(packet),就是把欲传送的数据信息流进行结构化处理,把连续的数据信息流划分成一个个的小段落,在这些小段落中再加上各种控制信息便形成了各个分组数据包,然后以分组为单位进行传送与交换。可以说,分组技术是数据通信的核心技术。每种分组都有固定格式,它不仅包括欲传送的数据,而且还包括许多控制信息如源地址、目的地址、纠错信息等;这样就可以确保在硬件配合下,分组能够准确、高效地传送到目的地。

2.分组技术的优点

1)具有差错控制能力

每种分组都具有发现错误的误码校验机制,即分组到达目的地之后可以采用不同的校验方法检查所传送的数据是否出现了错误;一旦发现错误则要求进行重传,以保证“准确传送”。这一点与传统的以电路交换为基础的语音通信不同,语音通信由于未进行信息的结构化处理,所以不具备误码校验能力。

有多种误码校验方法可以使用,如循环冗余码CRC校验、帧校验和FCS等。所谓校验和方法,就是把需要校验的信息的两个字节连在一起形成16位数值,然后把它们进行相加,如果相加值超过校验和的位数,则把应进位的二进制位数当作16位数值相加,即得到校验和。在发送端与接收端用同样的方法进行计算校验,如果二者相同则认为没产生误码;否则便认为在传送过程中发生了误码。

2)带宽利用率高

由于每个分组都具有寻找目的地的能力,它可以在全网范围内按一定的规则去选路,所以就没有必要为每个使用者都申请单独的带宽资源。可以允许一个有限的带宽资源被多个使用者共享使用,而且不会发生溢出,但使用者过多时会使传送速度变慢。

3)应用灵活

分组传送可以采用面向连接方式,也可以采用非连接方式。面向连接方式就是为源端与目的端之间建立专门的连接,它把通信分为建立连接、保持连接与拆除连接三个过程。面向连接的好处之一是通信过程容易控制,可以提高网络的效率;因为一旦建立了连接,分组选路就比较容易,它比每个分组都进行复杂的全局路由分析要简单得多。好处之二保证端到端的通信质量,因建立连接之后,该连接链路就被专用。ATM与现在兴起的多协议标签交换MPLS就是一种面向连接的技术。

但在数据通信中实现面向连接是比较复杂的,因为不同的应用需要不同的带宽与服务质量,它不能像语音通信那样只采用简单的64Kbps连接方式。无连接方式就是通信二者之间不需要建立专门的连接,因此就不需要经过建立、保持与拆除连接的复杂过程。它依靠路由技术与分组的寻址能力在全局范围内进行路由分析,从而可以找到该分组的目的地。无连接方式比较适合于简单的或对质量要求不是很高、更注重效率的应用,如TCP/IP就被设计成无连接网络。无连接方式的缺点是难以保证端到端的通信质量。

3.分组技术的缺点

1)采用非连接方式时,难以保证端到端的通信质量

共享带宽资源虽然提高了带宽利用率,但其负面影响是难以保证端到端的高通信质量。因为多个用户应用共享一个带宽资源时,有的分组传送速度快,有的分组传送速度慢;传送速度慢的会造成延时较长,通信质量难以得到保证。

2)具有安全隐患

数据通信的终端一般具有较强的智能能力,有可能以某种方式来控制通信过程,从而产生了不安全因素,如企业通过公共运营网络来传送内部数据时,有可能被窃听。

2.1.3 网络的分层模型

分层与模块化的概念是把复杂事物进行简单化处理的有效方法。同样,要想在庞大的网络中实现端到端通信,应该而且必须对网络进行分层。最典型的分层模型是OSI(开放系统互连)分层模型,即把网络分成应用层、表示层、会话层、传输层、网络层、数据链路层与物理层等7个层次结构。但当今世界上最流行的TCP/IP族协议的层次却不是完全按OSI参考模型来划分的,而是把上三层统一归为应用层,但与OSI分层模型有大致的对应关系,如图2-1所示。

图2-1 OSI与TCP/IP的分层模型的对应关系

网络的分层模型对理解网络的层次和设计思想具有重要意义,虽然在实际应用中,基本上没有完全按照上述模型实现通信的例子,但各种类型的网络却基本上按照与之相似的思路来实现。

1.物理层

简单地讲,物理层就是在两端系统之间提供用于传输信息比特流的通信介质连接。物理层的主要功能为:

(1)具有机械的、电气的或光方面的功能;能在两个通信实体之间,完成物理连接与传送通路的建立、维持与拆除等操作。

(2)在建立物理连接的两个通信实体之间提供透明的比特流传送。

(3)在传送比特流的过程中能对传送通路的工作情况进行监控。

2.数据链路层

所谓链路是指一条无源的点到点的物理线路,而数据链路则是在物理链路上加上必要的通信协议,从而可以实现端到端的数据传输,就像一个数字管道一样。数据链路层主要规定数据如何与物理介质打交道。一般来讲,它关心的是局部而非全网,即保证在局部范围把数据帧从源结点传送到目的结点。

1)MAC地址

在同一介质上可能会有多个通信设备,而介质访问控制MAC地址的作用就是鉴别、区分这些设备,它为同一介质上的每个设备定义一个唯一的物理地址,即所谓MAC地址,如MAC地址就是网卡的物理地址。有的设备在网络上可能只有一个物理连接,即一个设备只有一个MAC地址;而有的设备可能会拥有多个网络接口,则该类设备的每个网络接口都会拥有一个MAC地址。

MAC地址一般由48bit组成,用12位十六进制的数字表示,如08-00-60-01-2C-4A(H);前6位(24bit)用来确定单位的唯一性,即每个单位由IEEE分发一个唯一的6位十六进制数字,而后6位(24bit)则由单位自己确定,以用来区别不同的设备。

2)数据链路层的主要功能

链路层的最主要功能是解决数据的封装传送。

(1)成帧。

为了把庞大的数据流正确地进行传送,链路层需要对其进行结构化处理,即把冗长的数据流分成一个个小的段落,每个段落的头部再加上一些控制信息(如源地址、目的地址、校验信息等)形成所谓“帧”,并在保证帧同步的前提下,以帧为单位进行发送与接收(注意,帧中的地址是物理地址)。在链路层看来,其他层的报文都是链路层的数据。在实际通信中链路层数据的报头是经常变换的,如链路层的以太报文在经过路由器或其他三层设备之后,就会把网络层的报头去掉而换成链路层帧头继续进行传送。

(2)寻址。

为了保证每一帧信息能正确地传送到目的地,数据链路层具有寻址功能。由于每一帧中都包含有目的地址,而链路层上的设备也具有分析地址的能力,所以二者结合就可以保证正确的寻址。如设备会读取每一帧中的目的地址,若目的地址是本局站则把该帧接收下来;若目的地址不是本局站,则将该帧进行转发,直到找到正确的目的地为止。

(3)误码校验。

为了保证“准确传送”,接收端需要对收到的数据帧进行校验,若发现有差错则要求发送端重传。进行校验的方法有好几种,如CRC(循环冗余码)、FCS(帧校验和)等。

(4)流量控制。

为了保证在传送过程中不丢失数据,应对发送端的发送速率、发送量进行控制,即所谓流量控制。如若接收端来不及接收对端所发送的数据,则要求发送端降低发送速率或减少发送量等。

3)链路层协议

链路层的协议比较多,但基本上可以划分为两种类型,一种类型是争用物理介质的,如载波监听多路访问/冲突检测协议(CSMA/CD);另一种类型是点到点类型,如点到点协议(PPP)等。

CSMA/CD协议是用于用户争用通信介质的协议,其基本思路是冲突检测。即一个用户在发送数据之前必须检测通信介质是否被使用,若发现被使用即意味着发生了冲突,则停止发送,并不断检测通信介质直到通信介质空闲时再发送。

PPP协议是为在点到点链路上传输多协议数据报文而设计的,它是一个简化了的高级数据链路控制协议(HDLC,High Data Link Control),旨在为不同的主机、网桥、路由器之间的简单连接提供一种通用方法。PPP协议有一套验证、授权机制,既支持同步又支持异步方式,还可以支持许多高层协议。CSMA/CD与PPP协议是最常用的链路层协议之一。

3.网络层

网络层是一个全局的概念,其主要功能是在全网范围内选择路由,即寻找一条能经过多个中间结点、最后可以到达目的结点的传送路径,把数据报文沿该路径传送给接收方。传送路径上中间结点的作用是将数据包向下一个结点进行转发,直到目的结点为止。

1)网络层的主要功能

(1)统一编址。

数据链路层的基本传送单位是帧,而网络层的基本传送单位则称为数据报文,它们之间是有区别的。以IP数据报文为例,它虽然也是一个以报头开始后跟数据区的段落,其报头中也有源地址、目的地址与一些控制信息等,但数据报文中的地址是逻辑地址,而帧中的地址是物理地址。物理地址(如MAC地址)虽然能唯一识别网络中的某台主机,但物理地址不包含任何位置信息,另外不同网络中的主机有着不同的物理地址,其长度与格式也存在差异,所以对于大型的复杂网络来讲,单依靠物理地址进行寻址是非常困难的。为此在网络层通常采取统一编址的方式,统一编址后的网络层地址包括网络地址与主机地址两部分,网络地址用来确定是属于哪个网络,主机地址则指示某个网络中的一个具体主机,相当于一个具体电话号码,因此进行寻址比较简单可行。具体详见IP地址部分。

(2)选路。

所谓选路就是寻找一条将数据报文从源结点传送到目的结点的最佳传送路由,这是网络层需要解决的关键问题。实际上在数据报文的传输过程中,数据报文一次只经过一个结点(一跳),可能并不知道整个传送路径;但每个路由器都拥有一张路由表,表中记录了从该路由器到目的结点的下一个路由器的路径;因此路由选择就是通过当前路由器的路由表找出对应于目的结点的下一个路由器。路由表可由操作人员逐条录入,即所谓静态路由;但更多的是通过运行路由协议自动生成,如OSPF路由协议等,即所谓动态路由,它是通过接收路由器信息并进行周期性更新而生成的。

(3)校验。

同样是为了保证“准确传送”,网络层也具有误码校验功能。

(4)流量控制。

为了保证在传送过程中不丢失数据与不发生网络拥塞,网络层也具有流量控制功能。

(5)服务质量。

选择根据传输层的要求,网络层应该能够提供服务质量的选择。如IP数据报文中有3bit用来指示本数据报文的优先级(共8个级别),根据优先级的高低可以提供不同级别的服务。

2)网络层协议

网络层协议一般就是指IP协议。此外,帮助IP完成寻址的协议如地址解析协议(ARP)、尽向地址解析协议(RARP)、互联网控制报文协议(ICMP)等也被认为是网络层协议。

IP协议是一个无连接协议,即通信双方不需要进行握手、协商与连接等操作。所以大大简化了网络的实现,这是IP通信的最重要特点。但正是因为不进行握手、协商等,所以很难保证传送质量,故有人称IP协议为“尽力传送”的协议。但后来出现了一些技术来弥补这个缺点,如划分优先级、预留带宽等。

ICMP协议主要完成对报文的控制,如报文的用途、出现的差错与处理情况等。ICMP协议的作用是把IP地址转换成MAC物理地址,而RARP协议的作用则相反。

4.传输层

传输层的主要功能是在两个系统之间建立一条可靠的通信链路,即通过协商、握手等步骤建立可靠的连接,并在此基础上进行数据传送。

传输层是网络体系结构中的重要部分,起到承上启下的作用。传输层以下的各层(物理层、链路层、网络层)虽然提供了端到端的传送,但在通信质量、可靠性等方面不一定令人满意,而经过传输层的处理之后,都能成为可靠的服务,所以传输层是提供通信服务的最高层;另一方面,传输层又是向用户提供功能性服务的最低层,用户主机一般都需要利用这一层提供的服务。

1)传输层的主要功能

链路层主要解决的是数据封装,网络层主要解决的是传送路由,而其他一些问题如准确性、可靠性与可控性等则由传输层解决。

(1)分段与合并,即将应用层发往网络层的数据进行分段,或将网络层发往应用层的数据报进行合并;

(2)端到端连接的建立/拆除、数据传送,即通过复杂的协商、握手等步骤建立端到端的逻辑连接,并在此基础上进行数据传送;

(3)校验与流控,即为保证数据传送的正确性,在传送过程中采用校验方法进行纠错,通过流量控制方式保证数据不发生丢失、防止网络发生拥塞等。

2)传输层协议

传输层协议主要有传输控制协议(TCP)与用户报文协议(UDP)。

TCP(Tansmission Control Protocol)是一个面向连接的协议,它使用滑动窗口技术实现流量控制,通过序号与确认机制保证数据传输的可靠性,利用端口号表示承载的上层应用程序类型。所谓窗口就是发送端在未收到确认信号以前允许发送数据报文的个数,通过调整窗口大小就可以控制流量。所谓序号就是在TCP连接中可传输报文的序号(最大值为232),通过它可以实现数据报文的顺序装配,并与确认号一起实现丢失数据的重传等;所谓端口号就是与上层应用程序类型相对应的数字,通过它可以把收到的数据交给相应的应用程序进行处理,如21对应于FTP应用、69对应于TFTP应用等。

UDP(User Datagram Procotol)是无连接的协议,它没有TCP那样的复杂连接管理程序,适合于一些比较简单、允许丢包率较高的应用,如IP电话。

5.会话层、表示层与应用层

会话层负责会话的管理与数据传输的同步;表示层负责应用层数据格式的转化;而应用层则负责提供与用户进程的接口。在TCP/IP协议族中,会话层、表示层与应用层一起构成网络分层模型的应用层,它们与上面所讨论的低四层不同,低层主要提供可靠的端到端通信,而高层则与提供面向用户的服务有关,如E-mail、网页浏览等。应用层的协议相当多,它包括各种防火墙、AAA协议等。

2.1.4 对等层通信

一般来讲,只有同一层面上的设备,而且使用同样的协议才可能互相进行通信,即所谓对等层(peer)通信。为了避免混淆,把对等层之间通信的信息单位称为协议数据单元PDU(Protocol Data Unit),把上层发给相邻下层的信息称为业务数据单元SDU (Service Data Unit)。而且为了准确表示是在哪一层,通常在该层的PDU或SDU前面加一个表示该层的前缀,数据链路层加L(Link),网络层加N(Network)等。如数据链路层通过传送LPDU(Link PDU)与对等的数据链路层通信,网络层通过传送NPDU (Network PDU)与对等的网络层通信等,如图2-2所示。

图2-2 对等层之间的通信

为了实现对等层之间的通信,必须在每一层面上加上该层的一些控制信息即报头部分,以便接收方识别,其处理过程如图2-2所示。如当网络层从传输层接到一个待传的TPDU时,它在该TPDU的前面加上一些网络层的控制信息使之成为NPDU,即加上网络层报头NH(Network Header),包括网络层源地址、目的地址、校验信息等,网络层将为其选择一条最佳传送路径;该NPDU送到数据链路层时,链路层又加上链路层报头LH(Link Header)使之成为LPDU,LH包括链路层MAC源地址、宿地址、校验信息,然后发送出去。在接收端的处理过程与上述相反。