基于GPRS和Internet的SCADA系统研究与实现(一)

发布时间:2010-11-25
分享到

第1 章绪论

1.1 前言

SCADA(Supervisory Control And Data Acquisition)系统,即数据采集与监视 控制系统。SCADA 系统的应用领域很广,它可以应用于电力系统、给水系统、 石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。

GPRS (General Packet Radio Service)通用分组无线业务是在现有的GSM 移动通信系统基础上发展起来的一种移动分组数据业务,GPRS 通过在GSM 数 字移动通信网络中引入分组交换的功能,以完成用分组方式进行的数据传输与 交换。GPRS 系统可以看作是对原有的GSM 电路交换系统进行的业务扩充,以 支持移动用户利用分组数据移动终端接入Internet 或其它分组数据网络的需求。 GPRS 的技术的引进,把电信网络和计算机网络有机地连接在一起,向未来的 全IP 网络平台发展迈了一大步。

Internet 是世界范围的国际互联网,它连接着全世界150 多个国家和地区。 由于它有着十分丰富的信息资源,因此,全世界各地的计算机用户几乎是以每 月大于百分之十五的增长速度加入它的行列。可见Internet 是无处不在,无时不 在,而基于Internet 的数据传输方式也越来越普及,越来越完善。因此采用基于 Internet 网络的数据传输方式具有很大的发展前景。

将 GPRS 和Internet 结合作为SCADA 系统的传输通道有着重要的意义,符 合第四代SCADA 系统网络化的特性。GPRS 技术的引入使得SCADA 系统的监 控范围得到了空前的扩大,使得一些地域范围广,监控点众多的系统成为了现 实。GPRS 的移动性也使得SCADA 系统对移动目标的监控成为了可能。极大 的扩展了SCADA 系统的应用范围。Internet 的引入极大的增强了SCADA 系统 的开放性,数据发布和共享变的容易。基于Internet 不但可以突破地域范围的限 制CONTROL ENGINEERING China版权所有,扩大数据传输的距离,而且可以增强数据传输的实时性,提高传输数据的 准确性。并且符合SCADA 系统的发展方向。

1.2 本文主要工作

本文以一个重点污染源监控项目为背景。GPRS 作为监控点和中心站之间的 数据通道,对GPRS 网络中的数据通信进行了研究并加以实现。以Internet 作为 传输通道,提出了树状结构的多级监控管理系统。并实现多个中心站向上级站 点汇总。

论文的主要工作集中在以下几个方面:

第二章 讨论了 SCADA 系统的历史、特点和发展方向,研究了GPRS 相关技 术,比较了多个无线传输方式,研究了网络通信中涉及到的相关协议 和技术。

第三章 提出整个监控系统的结构和实现方案,完成高性能TCP 服务程序的设 计和UDP 服务程序的设计。

第四章 提出了两种应用层协议:基于二进制的协议和基于 ASCII 码的协议, 设计了基于二进制的协议,并对两种应用层的协议进行了比较。

第五章 设计了基于 B/S 的监控系统。没有对常规的WEB 中数据查询报表统 计进行赘述,着重介绍了几个数据实时发布的方案,和一个基于Java applet 的历史趋势图程序。

第2 章 SCADA 及GPRS 技术

2.1 监视控制及数据采集系统概述

监视控制及数据采集系统又称 SCADA ( Supervisory Control And Data Acquisition )[1]系统。它是以计算机为基础的生产过程控制与调度管理自动化系 统。它可以对现场的运行设备进行监视和控制CONTROL ENGINEERING China版权所有,以实现数据采集、设备控制、 测量、参数调节以及各类信号报警等各项功能。该系统己广泛的应用到了电力 系统、市政公用、供水系统、石油、化工、环保等诸多领域。

2.1.1 SCADA 系统的发展历程

SCADA 系统自诞生之日起就与计算机技术的发展紧密相关。SCADA 系统 发展到今天己经经历了三代。

第一代是基于专用计算机和专用操作系统的 SCADA 系统。70 年代~80 年 代初主要采用第一代SCADA 系统。

第二代是基于通用计算机的 SCADA 系统,广泛的采用VAX 小型计算机以 及其它通用工作站,操作系统一般是通用的UNIX 操作系统。

第三代 SCADA 系统开始应用PC 机和网络技术,同时系统逐步从集中式结 构转向到客户机/服务器结构。

第四代 SCADA 的雏形己经出现,它以智能化、网络化为标志。主要特征 是采用因特网技术、面向对象技术、模糊控制以及数据挖掘等技术,实现了 SCADA 系统与其它信息系统的增值集成,实现控制和管理过程的自动化。

2.1.2 SCADA 系统的组成

SCADA 系统主要包括:远程终端设备RTU ( Remote Terminal Unit )、通信网 络以及控制中心三大部分[2]。

2.1.2.1 远程终端设备(RTU )

SCADA 系统中在远端现场完成测控任务的设备叫远程终端设备(RTU ),又 称为从站或子站。主要作用是进行数据采集及本地控制CONTROL ENGINEERING China版权所有,进行数据采集时作为系统中一个独立的工作站,这时RTU 可以完成连锁控制、前馈控制、PID 控制 等工业上常用的控制调节功能:进行通信时作为一个远程数据通讯单元,完成或 响应子站与控制中心或其它子站的通讯和控制任务。

2.1.2.2 通信网络

主要用于从站与控制中心或从站与其它从站的通讯。链路种类有无线和有 线两种。通讯方式有控制中心触发的通讯方式,包括轮询方式、广播方式以及 控制命令下发方式等;从站触发的通讯方式,包括事件触发方式、突发传输方 式以及从站对从站的通讯等。

2.1.2.3 控制中心

主要由一个计算机局域网构成,可包括多个工作站和支持网络功能的设备, 以完成不同的工作。它通过控制中心软件管理系统数据库,可以通过主控软件 监测远端现场的工作状态和参数,下发控制命令进行控制CONTROL ENGINEERING China版权所有,并完成报表显示及 打印等功能。

2.1.3 SCADA 系统的基本功能[3]

遥控:对远端的研究对象和目标进行控制CONTROL ENGINEERING China版权所有,系统按照控制中心主控机上的 各项参数和控制目标来对远端执行机构进行控制。

遥测:对被测对象的参数进行远距离的间接测量,也就是系统具有实时获 取远程现场的各项模拟量参数的功能。

遥信:把被控对象的动作结果和故障信息送回到控制端,也就是系统具有 实时获取远程现场的各项开关量参数的功能。

数据处理:系统具有将RTU 采集到的实时数据处理加工成相应的报表,提 交给系统管理人员或上级管理机构的能力。

报警处理:系统具有根据 RTU 的采集量进行声光报警的功能。

2.1.4 SCADA 系统的特点

(1)分散测控、集中管理[4]。分散测控是SCADA 系统的特点决定的,分 散控制CONTROL ENGINEERING China版权所有,分散危险,提高了系统的可靠性;集中管理可以大大降低监控管理成本, 解决了人工巡检的困难,做到了及时响应,实时控制。

(2)RTU (Remote Terminal Unit)的智能化。RTU 是采用微处理器或DSP 的智能测控模块,完成各种远端现场的智能测控CONTROL ENGINEERING China版权所有,独立运行数据通信任务的智 能化模块。

(3)系统的环境适应能力强,可靠性高。针对不同的现场环境 SCADA 系 统可以采用不同的通信方式,来实现数据传输和通信。

(4)数据通信的多样化。随着通信技术的发展,目前SCADA 的通信方式 也日趋多样化。如:RS-485 现场总线、电力载波和PSTN 公用电话网、VHF / UHF 电台、ISM 扩频电台、GSM 移动电话网[5]以及卫星通信等。

(5)可扩展性和可维护性好。RTU 端主要由以微处理器和DSP 为核心的 智能模块化结构,易于添加和更换模块。由于工业现场总线的协议有通用的标 准,采用相同总线的模块在扩展时,不必考虑兼容性和电平转换问题,给系统 的扩展和维护带来了很大的好处。

2.2 GPRS 技术

2.2.1 移动互联网技术概述

2.2.1.1 发展历程

第一代移动电话网是由人工操作使移动用户和有线网用户相连接。它的终 端庞大、笨重而且昂贵,服务区域也仅限于单个发射台和接收站之间的覆盖范 围。由于它的可用频率很少,因而系统容量很小,并且很快出现饱和,服务质 量也随用户数量的增加而迅速下降,甚至达到死锁的状态。

20 世纪60 年代随着半导体技术的发展,无线系统发展为自动接续系统[5], 成本也开始降低,但其增加的容量与用户的需求相比仍然远远不够,公众无线 电话依然是一种奢侈品,只能被一小部分人使用。

20 世纪70 年代,大规模集成电路和微处理器件的发展使实现复杂系统成 为可能。由于覆盖区域受到发射功率的限制CONTROL ENGINEERING China版权所有,系统开始改由一个发射台和多个 中继接收站所组成,这种复杂配置扩展了系统的覆盖范围。真正的突破是蜂窝 系统的建立。蜂窝概念由贝尔实验室提出,美国第一个AMPS (Advanced Mobile Phone Service )蜂窝系统于1983 年在芝加哥开通。旨在覆盖整个北欧的 NMT系统,于1981 年在瑞典投入运行,并很快在挪威、芬兰和丹麦开通。20 世纪 80 年代中期,世界上出现了很多基于上述两种系统的移动通信系统。例如,从 AMPS 中派生的TACS 系统于1985 年在英国投入使用。这些蜂窝系统均是以模 拟语音信道传输,采用频率调制CONTROL ENGINEERING China版权所有,频率在450MHz 或900MHz,一般覆盖整个 国家。

自 90 年代以来,移动通信在全球范围内取得了飞速发展,各种不同类型的 系统提供了多种类型的服务。主要的移动通信系统有无绳电话系统、无线寻呼 系统、专用的或专业的移动通信和蜂窝移动通信系统。其中,以蜂窝移动通信 系统的发展最为突出,特别是随着国际数字标准如GSM 和IS-95 的出台,蜂窝 系统的发展更为迅猛。到1998 年末,欧洲地区的蜂窝已达到了7000 万(包括模 拟和数字)。目前,在整个移动通信界,第三代移动通信技术日趋成熟。在未来 几年基于第三代移动通讯的产品将出现在中国市场。不仅如此,在全球范围内, 对第四代移动通讯的研究也己经广泛地展开了。

2.2.1.2 蜂窝移动通讯技术

 

 

蜂窝移动通讯技术[6]是在移动通讯史上具有里程碑的意义。美国联邦通讯 委员会(FCC)是这样定义蜂窝移动通讯的:一个高容量的陆上移动通讯系统,分 配给系统中的频谱被划分为独立的信道,这些信道按组分配给各个地理小区, 这些小区覆盖了一个蜂窝地理服务区。独立的信道能够被服务区内不同的小区 复用。在该定义中有三个基本参量:高容量、小区和频率复用。

(1)高容量是指在理论上,一个蜂窝系统可以被规划和扩展,向无限多的用 户提供服务。

(2)小区定义为单独的服务区。每个小区分配一组独立的信道。用户可以在 某一小区内使用分配给此小区的信道进行通讯。

(3)频率复用使分配给某小区的独立信道又被令一小区使用,但必须保证两个小 区之间的距离足够远,以避免信号干扰。并且,一个信道可以被不断地重复使 用。

蜂窝移动通信系统可分三类:第一代模拟系统、第二代数字系统和第三代码 分多址数字系统(见表3-1 )。第三代系统仍然基于蜂窝技术并沿用了现有系统在 结构、功能和服务上的基本概念,流行的标准有WCDMA, CDMA2000 等。

2.2.1.3 GSM 系统简介

GSM 系统的全称是Global System for Mobile Communication,即全球移动通 信系统[7] [8]。GSM 系统在编码技术上采用前向纠错编码和交织编码技术,保证 在衰落环境中的可靠通讯。为了减小干扰,采用高效调制方式,以及调频、间 断传输及功率控制等措施。GSM 系统具有如下特点:

(1)每个载频提供8 个全速率的TDMA 信道;

(2)全速率数字话音信号为13kbps;

(3)加密措施保证用户通讯的保密性和防止非法接入;

(4)有选择地使用调频来提供分集并分散干扰的影响;

(5)全部传输时延小于80ms;

(6)在同信道干扰情况下GMSK 调制方式具有很好的性能;

(7)在传输中进行话音检测,采用间断传输(DTX)来减小干扰电平。

2.2.2 GPRS 网络

GPRS 是通用分组无线业务((General Packet Radio Service)的简称,它是一种 以GSM 为基础的数据传输技术,是GSM 的延续[9]。GPRS 突破了GSM 网只能 提供电路交换的思维方式,通过增加相应的功能实体和对现有的GSM 基站系 统进行部分改造来实现分组交换,这种改造的投入并不大,但用户数据速率却对得到了很大的提高。

2.2.3 GPRS 的重要概念[10]

GPRS 采用分组交换技术,高效传输高速或低速数据和信令,优化了对网 络资源和无线资源的利用。GPRS 支持3 种MS 操作模式:①在A 类(class-A)模 式下,一个MS 可以同时运行GPRS 和其它GSM 业务;②在B 类(class-B)模式 下,一个MS 可同时检测GPRS 和其它GSM 业务,但同一时刻只能运行一个业 务;③在C 类(class-C)模式下,一个MS 只能运行GPRS 业务。

GPRS 支持多种传输类型。GPRS 最多为每个用户分配8 个时隙来传输数据, 这8 个时隙又分下行和上行,根据下行和上行时隙的不同组合,常用的传输类 型有:① class-2,下行时隙数为2,上行时隙数为1;②class-4,下行时隙数为3, 上行时隙数为1;③class-8,下行时隙数为4,上行时隙数为1;④class-10,下行 时隙数为4,上行时隙数为2。

GPRS 支持基于标准数据通信协议的应用,可以和IP 网、X.25 网互联。

GPRS 既能支持间断的爆发式数据传输,又能支持偶尔的大量数据传输, 因此,GPRS 一般按照流量计费。

2.3 常见的几种远程无线通讯方式的比较

近年来,无线通讯技术发展迅速,特别是随着移动通讯技术的日新月异, 许多较新的移动通讯技术也逐步被用于数据的远程通讯应用中。

2.3.1 数传电台方式

这种无线通讯方式在以往大的监控系统中应用较多。采用无线电台方式的 监控系统,系统必须配备相应的调制解调器,即无线Modem。中央管理计算机 与各子站之间的通讯的实现是通过发送端的数传电台按照一定的频率发送信 号,接收端收到信号进行解调后,数据通过总线进入系统接收端的计算机。

虽然这种方法具有造价低、安装方便等优点,在目前应用较为广泛,但是 由于电台天线的架设高度及其增益直接影响着通信的质量和距离,地理环境易 造成无线数据通讯的多径干扰,因此这种通讯方式的一些固有缺点无法避免:

(1)对地势情况要求较高:尤其适用于地势较为平坦的地区,对于地势起伏较 大的地区通讯质量会受到较大影响。

(2)数传可靠性低:数传电台都工作在固定单一频点,电磁环境恶劣,使得数 传可靠性较低,另外基于数传协议的缺陷等问题也是导致可靠性低的一个重要 因素。

2.3.2 GSM 短消息方式

GSM 短消息服务,也称作GSM SMS (GSM Short Message Service),是移动 通信部门利用GSM 网络在提供电路交换的各种电信业务和承载业务之外提供 的第三种业务,是基于数据分组交换的一项重要业务。它占用GSM 网络的控 制信道,而不是业务信道,因此与GSM 的语音业务、数据业务互不干扰。GSM 的短消息业务分为两种:点对点短消息业务和短消息小区广播业务[11]。

点对点短消息业务能够使 GSM 数字移动通信网的两个用户之间,发出或 接收长度为160 个字符(即不超过140 字节)的数字或文字消息,还可以从GSM 网络外发送短消息给一个移动站。短消息通过设在移动通信部门的短消息中心 用GSM 系统的信令信道传送,即使移动终端处在通话状态下也可进行传送。 短消息在整个传送过程中,没有呼叫连接建立和释放的过程,短消息中心 具有短消息的存储功能,利用网络端可以知道被叫方是否已经收到短消息,如 果传送失败,或者在终端设备关机时,被叫方没有回答确切消息,网络一侧会 保留所传的消息,一旦网络发现被叫方能被叫通时,消息能被重发以确保被叫 方能收到。这样可以保持消息不丢失,传输的可靠性大为提高。利用其双向传 输的性能,可方便地实现对于各类电气设备的远程控制和信息采集,即实现遥 控和遥测。

但是作为监控系统的数据传输方式,有明显的不足:实时性差,发送一条 短消息需要6 秒以上,有时由于GSM 基站的问题延时更长。费用相对较高, 只能适合用于通讯数量较少的监控系统。

2.3.3 GPRS 方式

GRPS (General Packet Radio Service)也叫通用分组无线业务,是GSMPhase2+阶段引入的内容之一,是GSM 网络向第三代移动通信演进的第一步[12]。 其中,基于GSM 的移动分组数据业务就是GSM Phase2+规范定义实现的主要 内容之一[13]。由于数据通信具有较强的突发性,且数据终端对传输速率的要求 相差很大,基于上述两方面考虑,GPRS 提供的分组数据业务,核心就采用基 于分组交换模式的IP 技术来传送不同速率的数据及信令。

与原来 GSM 拨号方式的电路交换数据传送方式相比,GPRS 是分组交换技 术,具有“高速”和“永远在线”的优点。

电路交换数据业务,速率为每秒 9.6K 比特,因此电路交换数据业务(简称 CSD)与GPRS 的关系就像是9.6K Modem 和33.6K, 56K Modem 的区别一样CONTROL ENGINEERING China版权所有, GPRS 的最高速率可达每秒115K 比特。

除了速度上的优势,GPRS 还有“永远在线”的特点,即用户随时与网络 保持联系。比如,用户访问互联网时,点击一个超级链接,手机就在无线信道 上发送和接收数据,主页下载到本地后,没有数据传送,手机就进入一种“准 休眠”状态,手机释放所用的无线频道给其他用户使用,这时网络与用户之间 还保持一种逻辑上的连接,当用户再次点击链接,手机立即向网络请求无线频 道用以传送数据,而不像普通拨号上网那样断线后还得重新拨号才能再次上网。 基于 GPRS 通讯方式和其他无线通讯方式相比具有较多优点:

(1)GPRS 建立在GSM 上属于公用网,只要有GSM 信号(手机可用)的地方 就可以使用这种通讯方式,比起专网频率资源缺乏、容量有限,GPRS 网络覆 盖范围大。

(2)永远在线,一旦拨号登陆网络后就会被分配一个IP 地址,可随时与网络 保持联系。按流量计费,移动终端可长时间保持在线,并不产生通信费用。

(3)无需架设天线,无需另建基站,先期投资小,周期短,而且免去无线电 频率资源审批手续;

(4)开发性强,具有良好的兼容性,与IP 网络具有很好的互通性,且目前 GPRS 技术成熟、先进,各种技术不断推出,如:MMS, WAP 等,因此构筑在 GPRS 网络上的管理开发平台必然能与移动通信技术相同步,在技术上有较强 的生命力。

(5)组网简单,费用低廉,市场推广潜力大。

因此,这种通讯方式虽然比传统的集群系统在无线网络覆盖上具有其无法 比拟的优势,特别适合于点多、面广、离散数据(如水、电、汽等计量数据)的 采集和统计分析。

2.4 网络通信中的协议和技术

网络中不同的工作站,服务器之间之所以能通过网络传输数据,源于协议 的存在。协议定义了在传输数据前数据应该如何被打成包以及在接收数据时接 收主机如何解包。确切来说是开发严格的标准定义主机之间的每个包中每个字 中的每一位。目前流行的网络协议有很多种,虽然每种网络协议都有其各自的 优点,但是只有TCP/IP[14] [15]能允许与Internet 完全的连接,它更侧重于互联设 备间的数据传输。TCP/IP 是在60 年代由麻省理工学院和一些商业组织为美国 国防部开发的,使整个网络即便遭到核攻击破坏了大部分网络结构,TCP/IP 仍 然能够维持有效的通信。同时TCP/IP 具备了可扩展性和可靠性的需求,成为网 络传输技术中最通行的协议标准。正因为TCP/IP 协议所具有的完善、成熟及通 用的特点,符合本系统数据传输的技术要求,因此通信协议采用TCP/IP 协议, TCP 和IP 是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet 上的传输。二者使用专门的报文头定义每个报文的内容,TCP 负责和远程主机 的连接。而IP 负责寻址,使报文被送到其该去的地方。

TCP/IP 这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络 接口层[15]。

(1)应用层协议提供远程访问和资源共享,同样需要在网络上要求通信的任 何应用(包括用户自己开发的和在商店买来的软件)也属于应用层。

(2)传输层的功能包括:对传输的应用数据进行分段,执行数学检查来保证所 收数据的完整性;为多个应用同时传输数据,即多路复用数据流(传输和接收), 也就是可以识别特殊应用;对收到的乱序数据可以重新排序。

(3)互联层的作用是为数据报提供寻址和路由选择及管理。

(4)网络接口层的作用是实现物理连接。

当应用程序用 TCP 传送数据时,数据被送入协议中,然后逐个通过每一层 直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些信息首部,TCP 传给互联层的数据单元称作TCP 报文段,而传输层传给网络接口层 的数据单元称作IP 数据报:接口层把数据传输到传输线上,根据路由协议选择 路由,传输数据报到目的端,而目的端接收到数据报时,把数据从底向上传输 经过各协议层,同时去掉各层协议加上的报文首部,每层协议都要去检查报文 首部中的协议标识,以确定接收数据的上层协议,直到把数据传给目的端各自 对应的应用程序。

2.4.1 TCP 协议

传输控制协议(TCP)属于传输层协议[16] [17]当TCP 收到应用信息时会给 数据添加个TCP 报文头,以力一便控制信息包实现它的作用。TCP 报文头格式 如下:

 

图2-1TCP报头格式

1.源端口:用于指示进行TCP 连接时发送端所使用的TCP 端口的数值。

2.目的端口:用于指示进行TCP 连接时接收端所使用的TCP 端口的数值。

3.序号:用于指出在接收端数据报被重组的次序。在三步握手方式期间也 用于同步序列号。

4.确认号:给发送主机指出目的主机期待接收的下一个顺序号。

5.数据偏移:这个数指示数据的开始位置。

6.保留域:保留给将来使用,它全被置0。

7.码元比特:6 个比特,从左到右分别如下:

紧急控制位(URG):如果这一位为1,紧急指针字段将是重要的并且被阅读。

确认控制位(ACK):如果这一位为1,确认字段将是重要的并且被阅读。

推入控制位(PSH ):如果这一位为1,则数据段要求执行推入功能,应用程序不是等待传输缓冲区全满之后再发送数据而是立刻发送数据流。

重新启动控制位(RST):如果这一位为1,则TCP 包请求连接重新启动。

同步控制位(SYN):这一位用来指出顺序号将同步,在TCP 连接建立期间 这个事件将发生。

结束控制位(FIN):如果这一位为1,则发送主机没有数据继续发送了。

8.窗口:用来指定一次可以有多少个发送端的八位分组将被接收。

9.校验和:用来保证TCP 数据报在传输中不被损坏。

10.紧急指针:如果紧急控制位字段为1,这个字段将被阅读。

11.选项:用于不同阶段对TC 时及文的补充。

12.填充:保证TCP 头在第32 位结束,填充全部都设置为0。

13.数据:包含在TCP 段中的实际数据。

而 TCP 协议在整个数据传输过程中具有以下作用:

.建立TCP 连接实现两台计算机通信

.多路复用多种应用数据

.测试数据的完整性

.对乱序数据进行排序

.流量控制

.计时器机制

.TCP 连接的终止

2.4.1.1 建立TCP 连接

在进行数据传输前首先要根据 IP 地址发送TCP 信息包建立两台计算机的连 接,这个过程被称为TCP 的三步握手[3],见图2-2

 

图2-2TCP三次握手模式

(1)发送端发送一个同步(SYN)标志设置为1 的TCP 信息包,指明发送端打 算连接接收端,并且表示发送主机想和目的主机同步序列号码,并且把它当前 的序列号码发送给目的主机,这个TCP 信息包为报文段1,一个SYN 占用一个 序号。

(2)接收端如果同意建立通信会话,则回复一个确认(把ACK 标志设置为1, 表示回复是确认)同时,将确认序号设置为发送端的seq 加1。这就在一个方向 上建立了TCP 连接,为了在另一个方向上建立连接,接收端发送包含它的当前 序列号码y,SYN 标志为1 的TCP 信息包,这两个部分组成了报文段2。

(3)发送端必须将确认序号设置为接受端的seq 加1 以对接收端发来的TCP 信息包进行确认。

这样双方向的连接就被建立了,两台主机之间就可以通信了。应用程序传 输数据流给TCP, TCP 接收到数据流并且把它们分解成段。如果数据流不能被分 成一段,那么就分成数段,每一段都分配一个序列号。

2.4.1.2 多路复用数据流

在发送数据报时,由于 TCP 并不是只服务于一个应用程序,所以TCP 可 以同时接收多个应用程序数据CONTROL ENGINEERING China版权所有,把它们打包到数据段中之后传给互联层。同样 的,TCP 也能同时接收多个应用的数据,并且根据到达的数据报所包含的端口 号的数值把报文转发到各自对应的应用程序,因为每个应用程序都有其对应的 端口号,而TCP 段中既有源端口号又有目的端口号,并且构成了套接字地址(套 接字由驻留在主机上的特定应用端口号和机器IP 地址联合构成),这些都保证 了把相应的数据报发送到目的端相应的应用程序。

2.4.1.3 测试数据的完整性

封装在 TCP 段中的数据经过TCP 执行的数学计算,并把结果放在TCP 头 的校验和域中。一旦数据到达目的地,对接收数据执行相同的数学计算,产生 的结果应该和TCP 头中存储的结果相同。如果二者相同,则说明数据没被改变 过。否则,就要向源主机发送一个请求,要求其重发一份数据拷贝。

2.4.1.4 对乱序数据进行排序

通常到达目的端的报文段是乱序的,导致这样的结果有很多原因。例如, 在一个利用率非常高的网络中,路由协议很可能在传输报文时选择不同的路径通过网络,从而导致数据段乱序到达;或者报文在传输过程中丢失或损坏,导致 接收端应用程序所需的用来给数据报文进行排序的数据序列被丢弃。因此目的 端的TCP 协议会缓冲接收到的数据段,然后通过查看TCP 头中的序列号域对 接收的数据段重新排序,直到排序正确为止。

2.4.1.5 流量控制

TCP 会话中的发送端和接收端称为对等实体。每一对等实体对流向其物理 缓冲的数据流有控制能力。流量控制使用的是 TCP 窗口大小。发送端和接收端 的窗口大小通过TCP 头进行通信。如果其中任何一方的缓冲将被接收数据淹没 时,会减小发送端发送数据的速率,这可以通过通知发送端新的窗口大小来实 现。如果机器的缓冲完全被填满,它就会发送一个有关最后收到数据的应答报 文,其中包括接收端新的窗口大小为0,这样就可以有效地使发送停止。直到 拥塞的机器能清理掉其缓冲,在清理缓冲的过程中所处理的数据每一段必须有 应答,当重新设置大于0 的窗口尺寸时,通过应答来通知发送端启动发送。 虽然这个机制能有效地调整两台机器之间的数据流,但是它只能保证通信 端系统不会被接收的数据所淹没。窗口尺寸自身不会考虑网络上存在的拥塞情 况。网络拥塞意味着报文到达目的地的时间比通常情况长,因此拥塞管理是网 络上时间的函数,TCP 中的计时器机制就是解决网络拥塞实现拥塞管理的。

2.4.1.6 计时器机制

TCP 协议采用计时器机制来减少数据传输过程中产生的拥塞现象,利用四 个计时器进行控制。

(1)重传计时器

每次传输一个数据段时,发送端都会设置一个重传计时器。假如重传计时 器在接到应答之前停止,也就是说重传计时器时间减少到0,那么数据段就被 认定为已丢失,发送端会重传数据。

(2)坚持定时器

由于数据发送停止时,通过确认通知接收端非 0 的窗口大小从而让发送端 重新启动发送,如果那个确认丢失了,则双方就有可能因为等待对方而使连接 终止:接收方等待接收数据(因为它已经向发送方通告了一个非0 的窗口),而发 送方在等待允许它继续发送数据的窗口更新。为防止这种死锁情况的发生,就需要用到坚持计时器,发送方使用坚持定时器(persist timer)来周期性地向接收 方询问窗口,以便发现窗口是否己增大。如果查询仍不能得到窗口大小,TCP 协议会重新设置连接。

(3)保活定时器

由于 TCP 连接有这样的性质:当一个TCP 连接被成功建立以后,发送端由 于某种原因可能离去数小时、数天、数个星期或者数月,在此期间双方没有任 何数据传输,这样TCP 连接就成为了一个空闲连接;而此时如果连接两个端系统 的网络出现临时故障:如中间路由器可能崩溃和重启,电话线可以被挂断再连 通,但是只要两端的主机没有被重启,则连接依然保持。这样就会导致接收端 处于永久等待状态,从而浪费资源。所以在连接建立后接收端会启动保活定时 器检测另一端何时崩溃或重启启动,定时器会定时发送保活探查(保活定时器发 送的报文称为保活探查)如果一个中间路由器崩溃并重新启动时对保活探查进 行响应,那么接收端TCP 收到这个不正常的响应后会认为发送端的主机已经崩 溃,或者接收端在保活时间段内没收到任何正常保活报文响应,接收端就会终 止连接,从而不浪费接收端的资源。

(4)最大段生存时间定时器

最大段生存时间(Maximum Segment Lifetime, MSI.)是指任何报文段被丢 弃前在网络内所存在的最长时间。这个时间是有限的,因为TCP 报文段是以IP 数据报的形式在网络内传输,而IP 数据报则有限制其生存时间的TTI 字段。因 此在网络中传输的时间超过MSL 的报文都会被丢弃从而减少传输过程中的拥 塞现象。

2.4.1.7 TCP 连接的终止

当数据传输完毕后计算机双方就要终止 TCP 连接,建立一个连接需要三次 握手,而终止一个连接要经过四次握手[5]。这是由TCP 的半关闭造成的,所谓 半关闭就是指连接的一端在结束它的发送后还能接收来自另一端数据的能力。 既然一个TCP 连接是全双工(即数据在两个方向上能同时传递),因此每个方向 必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一 个FIN 来终止这个方向连接。当一端收到一个FIN,它必须通知应用层另一端 已经终止了那个方向的数据传送。发送FIN 通常是应用层执行关闭后的结果。 收到一个FIN 只意味着在这一方向上没有数据流动。一个TCP 连接在收到一个 FIN 后仍能发送数据。因此必须双方都发送FIN,并且都要得到各自的ACK, TCP 连接才能真正结束。

 

图2-3TCP四次握手示意图

发送端首先发送一个FIN 标志被设定的报文端给接收端,当接收端收到这 个FIN,它发回一个ACK,确认序号为收到的包含FIN 标志的报文的序号加1。 和SYN 一样,一个FIN 将占用一个序号。这时接收端向应用程序传送一个文件 结束符EOF,接着这个应用程序就关闭它的连接,导致它的TCP 端发送一个 FIN 给发送端,发送端也必须发回一个确认,并将确认序号设置为收到序号加1。 这样就结束了TCP 连接。

2.4.2 UDP 协议

用户数据报协议[16]是IP 的另一个主机到主机层协议(对应于OSI 参考模型的 传输层)。UDP 提供了一种基本的、低延时的称为数据报的传输。UDP 的简单性 使UDP 不适合于一些应用,但对另一些更复杂的、自身提供面向链接功能的应 用却很适合。其他可能使用UDP 的情况包括:转发路由表数据交换、系统信息、 网络监控数据等的交换。这些类型的交换不需要流控、应答、重排序或任何TCP 提供的功能。

UDP 头结构和各域的大小,如图2-4 示出了:

 

图2-4UDP结头构

UDP 协议头有以下结构:

(1)UDP 源端口号—16 位的源端口是源计算机上的连接号。源端口和源IP 地址作为报文的返回地址之用。

(2)UDP 目的端口号—16 位的目的端口号是目的主机上的连接号。目的端口 号用于把到达目的机的报文转发到正确的应用。

(3)UDP 校验和—校验和是一个16 位的错误检查域,基于报文的内容计算得 到。目的计算机执行和源主机上相同的数学计算。两个计算值的不同表明报文 在传输过程中出现了错误。

(4)UDP 信息长度—信息长度域16 位长,告诉目的计算机信息的大小。这一 域为目的计算机提供了另一机制CONTROL ENGINEERING China版权所有,验证信息的有效性。

UDP 被设计成一个有效的和最小的传输协议。这一点直接反映在其头结构 中。它只包括用于转发数据报至合适应用(端口号)的足够信息,并且执行一定 的错误检查。UDP 不提供任何TCP 支持的更先进的功能。所以UDP 具有响应速 度快实时性好的特点。

2.4.3 IP 协议

IP 协议[16]是驻留在互联层中的,它提供无连接的、无保证的信息传输。当 信息从传输层到达时,IP 协议给报文段添加IP 信息包,使TCP 报文段变为IP 数据报。这个信息包包含以下信息:

源IP 地址:这是分配给发送主机的IP 地址。

目的 IP 地址:这是分配给目的主机的IP 地址。

传输协议:传输层使用的协议被存储在IP 信息包内,通过这个方式可以知道 是用哪种传输协议来传输数据的。

校验和:用来保证到达这一层的数据在传输过程中没被损坏。

生存期(TTL):数据报每一次穿过路由器时,TTL 的值至少要减1。当TTL的值减少到0 时,数据报将被丢弃。 而这些信息对实现如下功能非常重要:

收藏
赞一下
0