TCP模式

2024-06-27

TCP模式(共7篇)

TCP模式 篇1

随着信息技术和工业现场控制技术的发展,电能优化管理系统将融合多种学科、结合多种技术。在电能优化管理系统中,各种智能模块和现场设备互连成通信网络,以便最大限度的进行集中监控,因此网络通信和通信协议的运用是工业控制不可或缺的重要组成部分[1]。Modbus通信协议作为工业控制领域最为流行的协议,可以使用在电能优化管理系统集成之中。

目前常用的Modbus通信分为两种物理接口方式,一种是经由RS-232C兼容串行接口(或通过RS-232/485转换器转换成RS-485接口)组成Modbus网络进行通信,另一种通过以太网结合TCP/IP协议组成Modbus TCP网络进行通信[2]。在Modbus协议运用于电能优化管理系统中,需要实现串行链路通信模式向以太网模式的转换。现结合电能优化管理系统的通信需求,分别实现了RTU和TCP模式的通信,并完成了RTU与TCP模式的通信转换,成功将Modbus协议应用于电能优化管理系统中。随着工业以太网传输效率的不断提高、技术的不断完善,Modbus协议在电能管理领域的应用也将更加突出。

1 Modbus通信模式

Modbus协议是由Modicon公司在1979年开发出来的网络协议,是第一个真正意义上用于工业现场的总线协议。它定义了设备与设备之间的信息传输方式,使控制器之间、控制器和其它设备之间可以进行通信和传输数据[3]。

1.1 Modbus RTU模式

Modbus串行链路通信分RTU和ASCII两种协议传输模式[4]。ASCII是早期的模式,现在已经很少使用。由于RTU模式在相同通信速率下具有更大的数据流量,所以现在几乎所有工业仪表都采用RTU模式。RTU模式规定了消息、数据的结构、命令和应答的方式,在校验上,RTU模式采用16位CRC校验。表1为Modbus RTU信息帧结构。

RTU模式采用主-从方式进行通信,即主机发出查询命令数据帧,而从机响应查询命令数据帧作为对主机的响应信息。主机可单独和从机进行通信,在通信过程中,从机将返回一个消息帧。若主机采用广播方式进行查询,则从机对主机不作回应。主从设备查询、响应通信过程如图1所示。

1.2 Modbus TCP模式

Modbus TCP协议是基于Modbus协议的一种工业现场总线的自动化标准,是运行在TCP/IP上的用于控制和监督自动化设备的Modbus报文传输协议,该协议定义了在一个使用TCP/IP协议中如何对Modbus消息进行传输。通过此协议,主机和从机相互之间通过以太网等网络和其它设备进行通信。

Modbus TCP模式是将Modbus帧嵌入到TCP帧,其数据帧格式如图2所示。MBAP报文头由传输标志、协议标志、长度和单元标志组成。Modbus协议TCP模式相比RTU模式报文格式,多了前缀,少了后面的CRC校验,它是采用TCP/IP和链路层(以太网)校验和机制来校验分组交换的准确性[5]。

在Modbus TCP通信系统中可以包含两种不同类型的主机和从机:一种为连接至TCP/IP网络的Modbus TCP/IP主机和从机设备;另一种为互联设备,如TCP/IP网络和串行链路子网之间互联的路由器、网桥或网关等,该子网允许将Modbus串行链路的主机和从机连接起来。Modbus TCP/IP通信结构如图3所示。

2 Modbus RTU模式的实现

在电能优化管理系统中,各种EOMS-Station以及能源监测Station等都是以串行链路的形式挂接在厂级Sever上,由厂级Server对EOMS-Station和能源监测Station进行监控以及通信控制。本节将通过RS232串口连接两台计算机构成所需的硬件平台,利用Modbus Poll和Modbus Slave软件模拟主从机来实现RTU模式通信的实现。

由电能优化管理系统的通信机制和需求可知,其实现主要包括两个部分:RTU模式主设备端程序和从设备端程序开发。程序开发的具体过程为:首先为Modbus RTU模式主设备编写串口通信程序,另一台计算机运行Modbus Slave软件作为RTU模式从设备;其次为RTU模式从设备编写串口通信程序,另一台计算机运行Modbus Poll软件作为RTU模式主设备;最后,脱离Modbus Slave和Modbus Poll软件来进行Modbus RTU串口通信的实现,从而完成电能优化管理系统的Modbus RTU模式的通信实现。

在使用Modbus Slave软件模拟RTU模式从设备时,应对其做出一些设置。在进行通信前,还要设置Modbus Slave的相关串口参数以及功能码的选取。主设备则对应从设备的相关参数进行设置,如:数据位、停止位、波特率、奇偶校验位以及功能码的选取等。在本通信实现中,主机的参数设置是直接通过编程语言来进行设置,相关参数设置如表2所示。

当编写好Modbus主设备的参数设置后,首先运行Modbus Slave从机模拟软件,使其处于监听的状态。然后运行Modbus RTU主设备端串口通信程序,程序将根据设置好的参数,发送相应请求帧,从机接收到主机发送的请求帧后,根据请求帧的请求内容,向主机发送相应的响应帧。在主机和从机通信过程中,Modbus RTU通信协议中的CRC校验能保证数据传输的准确性,可以根据主机请求帧中的功能码和从机响应帧中的功能码来确定串口通信内容是否正确[6]。图4为RTU模式主设备端程序运行显示的数据。

完成以上通信后即可得到RTU模式主设备端串口通信程序。然后为RTU模式从设备编写串口通信程序,另一台计算机运行Modbus Poll主机模拟软件作为RTU模式主设备来验证从机串口程序的正确性。以上工作完成后,可得到RTU模式主、从设备串口程序,从而实现电能优化管理系统中RTU模式的通信。

3 Modbus TCP模式的实现

在电能优化管理系统中,各种服务器(集团Server、监管部门Server、厂级Server等)都挂接在以太网上,通过以太网来实现服务器之间的通信。本节将通过两台计算机组成一个小型局域网来构成协议实现所需的硬件平台,利用Modbus Poll和Modbus Slave软件模拟主从机设备来实现Modbus TCP模式通信的实现。

与RTU模式通信的实现一样,TCP模式通信的实现也主要包括两个部分:TCP模式主机程序和从机程序开发。在Modbus Slave模拟从机的通信实现过程中,先对Modbus Slave进行设置,使其工作在Modbus TCP协议下,运行Modbus Slave的计算机即为Modbus TCP模式的从机。然后在另一台计算机运行Modbus TCP模式主机程序,所运行的主机程序应设置好被访问的从机的IP地址和端口号,这样两台计算机就可以分别当作主机和从机进行Modbus TCP模式的通信。图5为TCP模式主机端程序运行显示的数据。

由主机请求帧中的功能码和从机响应帧中的功能码等分析可得:Modbus TCP模式主机端通信程序运行正确,Modbus TCP主机可以和Modbus Slave从机模拟器进行通信。下面将对Modbus TCP模式从机通信程序的实现进行研究和分析。

在进行Modbus TCP模式从机通信程序实现过程中,需设置Modbus TCP模式从机的相关参数,然后运行Modbus TCP从机程序,等待Modbus TCP主机的访问。Modbus TCP主机通过Modbus Poll主机模拟器来实现,在Modbus Poll运行之前应对Modbus Poll进行设置,使其工作在Modbus TCP模式下,并且在从机上设置好IP和相应的通信端口号。这样两台计算机分别作为基于Modbus TP模式的从机和主机进行通信,验证Modbus TCP模式从机通信程序正确性,从而实现电能优化管理系统中TCP模式的通信。

4 Modbus RTU与TCP模式的通信转换的实现

如何使各种智能模块和现场设备互连成通信网络,最大限度的进行集中监控,成为电能优化管理系统中关键技术难题。所以必须将工业以太网在工业控制中发挥主干线网络作用,使其对串行链路通信集中控制。本节对Modbus RTU串行链路模式向TCP模式通信转换的研究也就可以解决上面这个问题,从而使电能优化管理系统中各种智能模块和现场设备互连成通信网络等难题得到解决[7]。

电能优化管理系统中Modbus协议RTU模式与TCP模式的通信转换,目的要让RS—232/485等串口设备转化成具有TCP/IP网络界面的网络外设。在其实现过程中,本文使用了ZNE—300T/TI模块,它是周立功公司开发的一款全功能嵌入式以太网串口数据转换模块,内部集成了TCP/IP协议栈,可以完成嵌入式设备的网络功能,具有TCP Server、TCP Client、UDP和Real COM driver等多种工作模式,在本协议通信转换过程中主要运用到了TCP Server工作模式。图6为协议转换硬件连接图。

连接好设备和模块后,通过ZNetCom软件对ZNE—300T/TI的IP地址信息、网络参数、串口参等进行设置。在Modbus通信协议转换实现前,应进一步确认整个连接环境的通信是否处于正常状态,以避免在通信协议转换实现的过程中带来不必要的困扰。

在Modbus协议TCP模式与RTU模式通信转换的实现过程中,其原理是将Modbus通信协议与以太网和串行链路分离。Modbus主机在TCP上传输至中间模块ZNE—300T/TI,然后ZNE—300T/TI将获得的信息帧通过串行链路透明传输给Modbus从机,从机接收到Modbus TCP信息帧进行解析,并将响应的信息帧返回给ZNE—300T/TI模块,ZNE—300T/TI模块将获得的串行链路的帧透明传输给Modbus主机,最后Modbus主机通过协议解析,将获得的Modbus RTU串行链路的信息帧解析为Modbus TCP信息帧。这样,就完成了整个Modbus TCP与Modbus RTU模式通信的实现。图7为Modbus RTU模式从机数据显示图,图8为Modbus主机发送和接收数据显示图。

由图8可知,主机基于Modbus TCP模式发送的命令帧为0,179,0,0,0,6,1,3,0,0,0,10。由Modbus TCP的信息帧格式可以得出主机将向地址为1的从机设备读保持寄存器,读取起始地址为02,连续读取10个数据。并且读取的数据分别为21,22,23,24,25,26,27,28,29,30。对照图8从机数据可知读取数据正确。对照从机接收、发送的数据帧界面可知基于Modbus RTU模式接收和发送的数据帧正确。由此可知该通信正常,达到通信的预期效果,实现了Modbus TCP模式和RTU模式之间的通信。

5 结束语

在满足对电能优化管理系统通信需求的情况下,结合硬件设备和仿真软件,设计并实现了Modbus RTU模式、Modbus TCP模式的通信,并完成了Modbus协议RTU与TCP模式的通信转换。从而可以解决电能优化管理系统中各种智能模块和现场设备互连成通信网络、最大限度进行集中监控等关键技术难题。随着工业以太网传输效率的不断提高、技术的不断完善,相信Modbus在电能管理领域的应用也将更加突出。

摘要:Modbus通信协议运用于电能优化管理系统中,需要将串行链路通信模式转换为以太网通信模式。在详细分析Mod-bus串行链路通信协议的基础上,分别实现了Modbus RTU模式和Modbus TCP模式的通信,然后完成了Modbus RTU与Modb-us TCP模式的通信转换。该方法为电能优化管理系统的通信和系统集中控制提供了良好的技术支持。

关键词:Modbus通信协议,电能优化管理系统,RTU模式,TCP模式

参考文献

[1]贾东耀,汪仁煌.工业控制网络结构的发展趋势.工业仪表与自动化装置,2002;(5):12-14

[2]刘沛津,谷立臣,韩行,等.基于Modbus/TCP的火电厂实时数据集成及网络通信控制器研制.电力自动化设备,2009;29(8):128-131

[3]中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.基于Modbus协议的工业自动化网络规范GB/Z19582.1-2004.北京:中国标准出版社,2004

[4]彭道刚,张浩,李辉,等.基于Modbus协议的ARM嵌入式监测平台设计与实现.电力自动化设备,2009;29(1):115-120

[5]R W Stevens.TCP/IP详解卷1:协议.北京:机械工业出版社,2000

[6]刘生辉,王克英,廖颜深.智能开关柜操控装置Modbus-RTU通讯协议的设计.电测与仪器,2010;47(7):77-80

[7]邹红利,葛洲.简化的Modbus通讯协议在实时通讯控制中的应用.武汉工业学院学报,2009;28(4):90-93

TCP模式 篇2

2015年3月5日,李克强总理在政府工作报告中首次提出制定“‘互联网+’行动计划”,推动移动互联网、云计算、大数据、物联网等与现代制造业结合,促进电子商务、工业互联网和互联网金融健康发展,引导互联网企业拓展国际市场[1]。在互联网技术飞速发展的今天,高校大学生只有不断与时俱进,充实自己,全面提升综合素质,才能在将来就业中具有竞争力,在社会中有生存资本。《TCP/IP协议分析》课程是网络工程专业的一门专业课,目的是让学生掌握TCP/IP协议族中协议的基础原理和技术,对网络互联的原理有更深入的了解[2]。但该课程理论性较强,内容抽象,不易理解,已有实验资源匮乏、难以及时更新、升级,学生学习效果受到了一定程度的影响。

2. 课程教学现状

2.1 内容抽象,理论性较强,实践学时太少。

《TCP/IP协议分析》主要内容是TCP/IP协议栈四层模型中所涉及到协议原理与核心技术介绍[3],比如TCP协议以及网络地址分配等,但这些教学内容比较枯燥、抽象、理论性较强、不易理解,部分学生对这门课程缺乏学习热情,教学效果不是很理想。而该课程只有8个实践学时,远远不能满足学生将理论知识运用于实践中学时需求。《TCP/IP协议分析》实践环节内容主要包括协议分析、网络互连两个内容,每个实验4学时,所采用的实验设备都是学校统一购置,有配套的实验手册,教师只需花2个学时讲解实验设备和软件程序如何使用,学生就可以按照实验手册进行验证性实验。在教学过程中,发现大部分学生都能自主完成实验项目,得出正确的实验结果,但对于学有余力的学生,纯粹的验证性实验难以满足他们自主创新、探索新知识的需求。

2.2 实验设备匮乏、不能及时更新、升级。

实验设备是学校统一购置,费用昂贵,质量不高。在教学过程中发现,每次实验结束后有部分实验设备损坏,实验设备维护困难,软件不能及时更新、升级。

3.“互联网+”《TCP/IP协议分析》课程教学新模式

淮阴工学院为了积极响应李克强总理2015年3月5日提出的“互联网+”行动计划,目前正在积极推广精品课程、优秀课程平台建设,《TCP/IP协议分析》课程是淮阴工学院2015年新立项的优秀课程建设,该平台主要功能模块包括:教学空间、课程建设、课程教学和教学门户。

3.1 线上学习和线下学习深度融合。

针对上述该课程内容抽象、不易理解、理论性较强的问题,教师可以充分利用优秀课程建设平台,提高学生学习热情。在该课程课堂教学中应该允许手机、IPAD等智能终端进入课堂,学生可以直接扫描该课程的二维码进入课程学习,学生可以下载课程资源,或在线观看微视频、微课等。在课堂教学中,尽量避免传统的教师主讲,学生听讲的局面,更多的应该是教师与学生的互动交流。当然,在线学习时,可以通过互联网、微信、QQ等工具及时交流沟通、分享学习心得体会、解决遇到的问题。笔者认为这些新型教学模式都是激发学生学习热情很好途径。课堂教学中教师通过该平台还可以进行章节内容测验考察学生对知识点掌握程度,及时掌握学生学习动态;如果部分学生对于课堂所学内容没有完全理解和掌握还可以利用线下时间进一步学习,实现线上和线下深度融合,随时随地学习,满足学生学习个性化需求。

3.2 将“创客空间”融入课程教学。

针对该课程实验教学学时较少,实验资源匮乏、实验设备难以及时更新、升级问题,提出将“创客空间”引入该课程实践教学环节。“创客空间”是借助于工作坊的形式提供人们相应的工具和经验帮助其实现自己的创意等活动形式[4]。在《TCP/IP协议分析》课程中,学校所建立的精品课程、优秀平台中的资源是有限的,不可能满足所有学生的个性化学习需求。

在《TCP/IP协议分析》课程中可以借鉴Fab Lab[5]课程教学思想,教师给学生提供足够的实验场所、实验工具、网络资源,比如路由器、交换机、Sniffer抓包器、NS2仿真平台、OPNET仿真平台等,让学生自主学习,设计具有创意的作品。另外,由于现有实验设备匮乏,笔者认为教师、学生可以充分利用“创客空间”学习资源、人脉资源,集思广益,利用学院其他专业实验设备设计新型实验项目,从某种角度讲,能极大调动学生学习积极性,提升教师的综合素质。

总结

针对《TCP/IP协议分析》课程教学,经过一个阶段的实践探索,笔者发现学生的学习积极性明显提高,课堂学习气氛愈发活跃,师生交流互动更加频繁,淮阴工学院精品课程、优秀课程平台能得到高效利用,教学效果有明显改善。

参考文献

[1]http://finance.sina.com.cn/china/hgjj/20150305/105721651935.shtml,2015.3.5.

[2]杨文茵,马莉,李娅.《TCP/IP协议》课程教学改革探索[J].中国科技信息,2011(21):126.

[3]彭雅莉,于芳.计算机网络课程实验教学改革的探索[J].计算机教育,2011(4):23-25.

[4]L Johnson,S Adams Becker,V Estrada,A Freeman,2015,NMC Horizon report:2015 higher education edition,New Media Consortium,viewed 02 July 2015,<http://apo.org.au/node/53010>.

TCP拥塞控制研究 篇3

网络中的拥塞来源于网络资源和流量分布的不均衡性。一旦网络中存在过多的数据包, 就会导致网络性能的下降, 这种现象称为拥塞。拥塞会导致分组丢失率增加, 从而增大端到端的延迟, 累积到一定程度就是整个系统的崩溃。这样的例子在互联网发展史上曾经不止一次的出现过, 当网络处于拥塞崩溃状态时, 微小的负载增量都将使网络的有效吞吐量急剧下降。

网络拥塞发生的原因说起来也很简单, 就是“需求”大于“供给”。网络本身无法根据现有资源的情况限制用户的数量;互联网络又是一个分散控制系统, 无法控制用户使用资源的数量, 不断增长的用户和应用的数量必然会导致网络发生拥塞。

2 TCP拥塞控制

研究拥塞控制的目的不是要完全避免拥塞, 而是研究怎样的拥塞程度是合适的。TCP网络是可靠数据传输, 采用分组交换技术来提高网络链路的利用率, 也就是说, 路由器队列缓存如果是满的, 则网络利用率最高, 但传输延迟大;队列始终是空的或不满, 则网络利用率低, 传输延迟小。所以拥塞控制的目标就是实现网络利用率和传输延迟等综合性能指标达到最优化, 提高网络的总体性能, 保证网络系统长期的稳定性和鲁棒性。

TCP的实现包含四个连续的基本过程, 其实是四个不同的阶段, 分别是:慢启动、拥塞避免、快速重传和快速恢复。

慢启动:当一个新的TCP连接建立时, 发送方发送一个缺省大小为512字节的TCP报文段 (segment) , 称为拥塞窗口 (cwnd) , 该cwnd的值被初始化为一个数据包, 因此每经过一个RTT, cwnd将指数增加。该算法的原理就是将能发送到网络的新数据包的发送速率对应从接受端返回的确认消息的速率。

拥塞避免:拥塞避免的触发条件是当发现接收方的ACK确认包超时到达或者收到了三个相同的ACK确认包时, TCP就认为网络中出现了拥塞, 开始执行拥塞避免算法, 这里的触发条件是有前提条件的, 那就是TCP假设由于线路传输引起的数据包损坏和丢失的概率非常小, Jacobson V在1988年提出的值为小于1%时条件就成立。在这一阶段, 慢启动阈值 (ssthresh) 设置为cwnd的一半, 如果是超时, cwnd则被置1。如果此时cwnd<=ssthresh。TCP就重新进入慢启动, 如果cwnd>ssthresh, TCP进入拥塞避免, 发送方每收到一个ACK, 则cwnd=cwnd+1/cwnd。可见慢启动阶段cwnd的增加是指数的, 而拥塞避免阶段则是线性的。

快速重传和快速恢复:发送方不等到数据包超时, 在收到三个或三个以上的重复ACK时就判断数据包已经丢失, 这样不用等定时器超时后cwnd置1, 就马上重传该数据包, 同时将ssthresh的值置为当前cwnd的一半, 这种算法来保证TCP保持足够的吞吐量。快速恢复的算法是: (1) 当第三个重复的ACK到达, 设置ssthresh=cwnd/2;重传丢失的报文;设置cwnd=ssthresh+3。加3是因为三个重复的ACK表示有三个数据包已经被接受方缓存了。 (2) 每次有一个更多的重复ACK到达, 把cwnd加1并在可能的情况下传输一个报文段。 (3) 当确认新数据的下一个ACK到达时, 设置cwnd=ssthresh, 进入拥塞避免。

3 TCP拥塞控制算法的改进

3.1慢启动的改进

随着Internet应用在互联网络中的占的比例逐步增大, Web数据流占了网络流量的相当部分, 这些TCP连接的数据量一般都很短小, 通过了解TCP拥塞控制原理, 我们知道短TCP流主要工作的阶段是慢启动阶段, 它不具备长TCP流的传输时间, 无法达到拥塞避免阶段, 所以短TCP流的问题是, 如果一个分组丢失, 按照拥塞控制算法, 需要等待定时器超时重传, 这在带宽竞争上就无法和长TCP流竞争, 从而造成网络的拥塞节点处, 长TCP流会挤掉短TCP流, 使贷款分配不均。针对这些问题, 研究者们提出了传统的慢启动存在的两个问题: (1) 数据发送从一个数据包开始, 要经过多个RTT才能达到较大吞吐量, 这不利于流量小但是链路延迟又比较大的TCP流的传输; (2) 采用指数增长的方式发送数据造成了数据突发, 易引起瓶颈链路的拥塞。

针对第一个问题, 大家提出了很多解决方法, 比如采用大的初始窗口, 将初始窗口从1MSS增加到4MSS, (Allman M.et al, 1998) , 这种方法虽然可以改善慢启动的性能, 但是不能适应多变的网络带宽。还有就是将各个TCP连接的信息共享 (Padmanabhan V.et al, 1998;Touch J, 1997;Savage S.et al, 1999) , 后面的连接可以使用具有相同目的地址的连接信息, 从而可以减少慢启动的时延, 但是这样会使连接很快造成网络拥塞, 而短TCP的长度只需要几个RTT就可以传输完毕, 网络拥塞会造成额外的时延。再后来提出了将初始窗口设定为4个分组, 而从以快速重传来减少重传超时造成的传输时延 (Mellia M.et al, 2001) 。

解决第二个问题可以通过使用带宽时延的估计来设定初始慢启动阈值ssthresh (Hoe J, 1996) 。Smoot-start方法 (Marchese M, 2001) 使发送方从慢启动阶段较为平滑的过渡到拥塞避免阶段, 减少了数据包丢失和突发流, 当拥塞窗口到达Smsthresh后, 采用比较平缓的指数方式增长拥塞窗口, 逐渐达到默认值或估算的ssthresh值。

3.2快速重传和快速恢复的改进

有时发送端减少拥塞窗口值并不是因为分组丢失, 而是分组数据传输中顺序错误引起的重复ACK。有限传输机制 (Allman M, Balakrishman H.and Floyd S.2001) 是一种改进方法, 当发送端收到一个或两个重复的ACK后, 如果被允许, 发送端就发送一个新的分组。这种方式对错序的状况有较好的调节作用。还有D-SACK方式, 是一种基于SACK的方式, 通过给TCP发送端一个附加信息, 来判断是否发生了不必要的重传, D-SACK通过接收端受用SACK选项来报告收到了重复的分组序列, D-SACK在容易引起错序的环境下提供更高的效率。

快速恢复的改进机制有SACK (Selective Acknowledgement) , FACK (Forward Acknowledgement) , TCP New-Reno等。SACK方式的接收端通过ACK向发送端通过所有正确的分组, 发送端只需重传真正丢失的分组。FACK是基于SACK的改进, 它们的问题都是增加了TCP的复杂性, 对TCP版本的兼容性较差。TCP New-Reno不需要接收端的特殊支持, 相对实现起来简单, 但是数据传输效率相对不高。RateHalving (Allman M, Dawkins S, Glover D, et al, 2000) 是FACK的一个比较新的版本。在快速恢复阶段, 每收到2个ACK发送一个新的分组, 从而在一个RTT里将拥塞窗口减小到网络能处理的分组数的一半大小, 并保持了TCP的自计时特性。

目前, TCP基于窗口的拥塞控制策略被广泛的应用。各种改进的TCP控制策略在不同侧面解决了一定的问题, 但是也有着局限性, 有的实现起来过于复杂, 有的解决了多个分组丢失的恢复问题, 但对恢复过程中出现的分组丢失却无法得到解决。

4结束语

在实际的应用中, 针对不同特点的TCP网络, 有着适合的改进策略, 这些策略不用做到面面俱到, 只要具有一定的针对性就可以。网络拥塞的改进是十分灵活的, 方法也很非常多, 其原因正式因为不同网络中传输的数据特点不同, 从而选择合适的改进策略是关键。

(上接第153页) [1]Allman M, Hayes C, Ostermann S.An Evaluation of TCP with Larger Initial Windows[J].ACM Computer Communication Review, 1998, 28 (5) 41-52.

[2]邓亚平, 叶凌伟, 陈雁.TCP/IP拥塞控制算法的改进[J].计算机科学, 2001 (4)

110-113.

[3]王彬.TCP/IP网络拥塞控制策略研究[D].浙江大学, 2004

参考文献

[1]Allman M, Hayes C, Ostermann S.An Evaluation of TCP with Larger Initial Windows[J].ACM Computer Communication Review, 1998, 28 (5) :41-52.

[2]邓亚平, 叶凌伟, 陈雁.TCP/IP拥塞控制算法的改进[J].计算机科学, 2001 (4) :110-113.

各种高速TCP性能比较 篇4

关键词:TCP,拥塞控制,链路利用率,公平性

0 引言

传输控制协议(TCP)是Internet上广泛使用的一种基于滑动窗口的传输层协议。它是面向连接的,能保证数据传输的有序和可靠性。TCP的最大特点在于其具有自适应能力的拥塞控制策略,能根据网络的拥塞情况,自动调整拥塞窗口的大小,从而使TCP的数据发送速率适应网络的拥塞状况。

随着计算机网络的高速发展,高速的10GBps成为一种趋势。由于在高带宽长距离(FLD)环境下存在拥塞窗口增长过慢、大窗口和丢失率的平衡和RTT不公平性问题,现行的TCP拥塞控制策略不能适应高速网络。因此,长距离高带宽环境下的TCP拥塞控制成为当前拥塞控制研究的热点。

为了更高效率地利用网络带宽,提高TCP的吞吐量,近年来很多学者一直都在研究TCP的各种改进算法。已研究出的成果包括Floyd提出的HS-TCP[2],Kelly提出的scalable-TCP[3],Low等人提出的FAST-TCP[4],最近新的研究还有BIC-TCP[5]和H-TCP[6]。这些研究成果对于高带宽网络中数据的传输有着重要意义。

本文的目的就是把各种TCP进行总结,在吞吐量,公平性等方面作一个比较。采用实验的方法来比较HS-TCP,scalable-TCP,FAST-TCP,BIC-TCP和H-TCP等各种高速TCP的性能。

1 各种TCP协议简单分析

要对各种TCP协议进行比较,就必须对协议的基本原理和操作有一个基本的认识,先对各种高速TCP作简单介绍和分析。

1.1 标准TCP[1]

标准TCP本文以TCP Reno为例来分析。TCP Reno包括慢启动、拥塞避免、快速恢复、快速重传4个阶段。在慢启动阶段,发送端每接收到一个对新分组的应答(ACK),拥塞窗口cwnd+=smss(smss为发送端最大报文段大小)。当cwnd超过慢启动门限(ssthresh)或检测到数据包丢失,TCP就进入拥塞避免阶段,此时发送端每接收到一个正确应答包,拥塞窗口cwnd+=smss×smss/cwnd。若发送端接收到3个重复应答包,则认为一个数据包已丢失,它立即重传丢失数据包并设置ssthresh=max(cwnd/2,2*smss),cwnd=ssthresh+3*smss。可以这样看TCP Reno协议:

在拥塞窗口增长阶段,拥塞控制窗口

cwnd=cwnd+a(ω)×cwnd,

在拥塞窗口减小阶段,拥塞控制窗口

cwnd=cwnd-b(ω)×cwnd,

其中系数a(ω),b(ω)的值分别为1,0.5。

1.2 High-Speed TCP[2](HS-TCP)

High-Speed TCP拥塞控制原理与TCP Reno相似,都需要经过慢启动阶段、拥塞避免阶段,不同之处是HS-TCP修改了最大慢启动门限maxssthresh=100和随cwnd变化的拥塞反馈系数a(ω),b(ω)。HS-TCP中拥塞反馈系数a(ω),b(ω)具体定义如下:

undefined

其中HighDecerese为常数,通常为0.1,Whigh和Wlow为常数,分别表示最大的拥塞控制窗口大小和在分组丢失率p为0.001时的拥塞窗口大小,p(ω)为包丢失率。

这样当拥塞窗口cwnd需要适应大带宽时,a(ω)可以变得更大,b(ω)会变得更小,解决了TCP不能充分利用大容量带宽的问题。

1.3 Scalable-TCP[3]

Scalable-TCP的基本思想是在拥塞事件发生后使得窗口恢复时间独立于拥塞窗口大小。Scalable-TCP的拥塞窗口cwnd作如下变化:

Ack:cwnd←cwnd+α

Loss:cwnd←β×cwnd

其中,参数α和参数β分别取0.01和0.875。标准TCP的拥塞控制窗口是在cwnd小于慢启动门限时呈指数增长,而超过慢启动门限或者出现丢包时呈线性增长,而Scalable-TCP在启动阶段和标准TCP一样,当cwnd达到一定值时就使用如上的公式来改变cwnd值,即Scalable-TCP采用了一个高速/低速切换模式。

1.4 H-TCP[6]

H-TCP用了瞬时时间Δ(最后一次拥塞事件发生的时间)而不是拥塞窗口cwnd作为路径BDP的指示。因此,AIMD增长因子α为Δ的函数,且α也随RTT的变化而变化,从而减少不公平性。基于路径上队列大小的估计调整AIMD减少因子β,从而提高带宽利用率。H-TCP提出了一种新的窗口增长方式,即增加窗口是时间的函数,增长因子α和减少因子β满足关系式:a=2(1-β)来保证H-TCP协议具有非常好的协议内公平性。H-TCP的窗口增长如下:

1.5 BIC-TCP[5](二进制增加阻塞传输控制协议)

BIC-TCP使用二进制搜索方法,以最小的信息损失快速实现最大的网络数据传输能力。BIC-TCP的主要特征是其独特的窗口增长函数。当探测到一个分组丢失事件,BIC-TCP以乘性因子减小其窗口。减小前的窗口值记为maximum ,刚减少后的窗口值记为minimum。BIC-TCP就使用这两个参数执行二值搜索。其窗口控制算法:没有外在反馈时,仅使用包丢失作为拥塞控制,利用Wmax,Smax和Smin来探询目前可以利用的带宽。当一个新包确认到时,若不是快速恢复阶段,则计算Wmax与cwnd之间差值的一半bic-nic,比较bic-nic,Smax和Smin值,况定bic-nic的值。然后拥塞窗口的取值为:

cwnd=cwnd+(bic-nic)/cwnd

当拥塞发生时,若cwnd

需要说明的是,为了向下兼容和保持TCP友好性,BIC-TCP设置了最小窗口,当拥塞窗口较小时,仍采用加增长的策略。可以看出,窗口控制的不同阶段增加了算法复杂性。

1.6 FAST-TCP[4]

FAST-TCP是基于时延的拥塞算法。FAST-TCP窗口控制算法:没有来自路由的外在反馈时,仅有两种信号评估拥塞和调整窗口,即队列延迟和分组丢失。在拥塞程度较小时,队列延迟是主要的拥塞信号,在拥塞程度较大时,分组丢失是主要的拥塞信号。窗口大小计算如下式:

对每个RTT:

这里,Tmin和undefined是流的最小RTT(网络空闲时的往返时延)和平均RTT。函数fα(B)以吞吐量B为自变量。

2 比较和分析

主要从链路利用率和公平性两个方面对各种TCP协议进行比较。瓶颈链路取值10Mbps和250Mbps。

2.1 链路利用率

众所周知,链路利用率受队列缓存大小和链路传播时延的影响,这里主要比较队列大小对链路利用率的影响。图1为传播时延固定、队列大小在1%至100%之间变化且有着相同RTT的两个流的平均吞吐量。

由图1可以看出新的TCP协议都获得了比标准TCP好的吞吐性能。所有协议的吞吐量都随着队列的减小而下降。这种吞吐量下降是由于小规模分组突发导致队列溢出而造成的。

2.2 公平性

一条链路,期望有着相同RTT的竞争流都应该有大致相同的平均吞吐量。这就是所说的公平性。评价公平性的主要方法有Max-Min Fainess,Proportional Fairness和Fairness Index等。常用的评价方法是采用Fairness Index,并利用以下计算公式来计算公平程度。

undefined

对于共享链路的n个流,最佳公平性F(x)=1,最差公平性时F(x)=1/n。本文所指的公平性是采用相同TCP拥塞控制算法的两个竞争流之间的吞吐量之比。

依然考虑两个TCP流,作以下两个方面的比较:

(1)相同RTT条件下的公平性:图2是两个竞争流在相同的传播时延,共享一条瓶颈链路时候的平均吞吐量。

(2)不同RTT条件下的公平性:图3是第一个流的传输时延保持为常数,第二个流的传输时延在16至320ms之间变化情况下的吞吐量。

由图2可以看出,RTT相同的两个流,标准TCP拥塞控制算法可以使每个流达到同样的吞吐量,但是,也可以看出提出的新的TCP提议显示出了不公平性。H-TCP除外,FAST-TCP和Scalable-TCP在公平性上面显示出了很大的变化性,而BIC-TCP和HS-TCP的不公平性也显而易见,。

由图可以看出,Scalable-TCP,HS-TCP,BIC-TCP,和FAST-TCP都比标准TCP显示了较大的RTT不公平性。在网络带宽不高地情况下,公平性地问题还没有得到充分体现,但是当带宽以增加,公平性问题就凸现出来了。在RTT较大的时候,上述四种TCP才可以获得较大的带宽利用率。H-TCP的公平性最好。

3 结束语

本文比较分析了Scalable-TCP,HS-TCP,BIC-TCP,和FAST-TCP这五种TCP提议的性能。发现除H-TCP外,其它的TCP协议的公平性得不到保证,尤其是Scalable-TCP和FAST-TCP。至于链路利用率,只要有足够大的缓冲区,本文提到的高速TCP提议在高速环境中都能达到比标准TCP更高的吞吐量。通过分析,获得了很多有用的结论,为TCP的进一步研究指明了方向。

参考文献

[1]张福杰,潘理,李建华.大带宽时延积网络中TCP,HighSpeedTCP及XCP性能比较[J].计算机工程,2006,32(2):113-116.

[2]Floyd S.HighSpeed TCP for Large Congestion Windows[J].RFC3649,2003(12).

[3]Kelly T.Scalable TCP:Improving performance in high-speed wide areanetworks[J].Computer Communication Review,2003,33(2):83-91.

[4]Jin C,Wei D X,Low S H.FAST TCP:Motivation,architecture,algo-rithms,performance[C].Proc.IEEE INFOCOM,2004.

[5]Xu L,Harfoush K,Rhee I.Binary increase congestion control for fastlong-distance networks[C].Proc.IEEE INFOCOM,2004.

[6]Leith D J,Shorten R N.H-TCP protocol for high-speed longdistancenetworks[C].Proc.2nd Workshop on Protocols Fast Long DistanceNetworks.Argonne,Canada,2004.

[7]Geoff Huston.TCP Performance[J].The Internet Protocol Journal,2000,3(2).

[8]Geoff Huston.The Future for TCP[J].The Internet Protocol Journal,2000,3(3).

无线网络TCP研究探讨 篇5

1 TCP概述

TCP即传输控制协议, 位于网络结构中的OSI模型的第四层, 凭借着能够有效的进行流量的控制、差错的控制以及拥塞的控制, TCP为应用层提供可靠的数据传输服务。

在技术应用方面, TCP主要包括四项基本的技术:窗口、序列号、重传定时器以及确认。在TCP中, 窗口可以根据网络或是接收端的状态进行大小的自动调整, 这样可实现对发送端对数据包发送速率的控制;在TCP中, 每一个数据包拥有一个序列号, 可对数据包进行有效的排序;定时器可以根据网络的情况调整定时的时间, 如果一个数据包在规定的时间内, 因为网络堵塞或者其他原因被丢弃, 重传定时器会对其进行重传, 避免信息的丢失和网络的崩溃;最后, 接收端和发送端通过确认, 得到正确的数据包, 从而保证了数据传输的正确性和可靠性。这样TCP的三个控制功能, 在这四项基本技术的支持下得以实现。

凭借着自身的优势, TCP在有线网络中得到了广泛的应用, 但是在蜂窝网络、AD HOS网络以及卫星网络中的性能很差, 需要利用一定的技术, 对其性能进行改革, 以便促进TCP在无线网络中的应用和普及。

2 无线网络中TCP的应用分析

人们一般将无线网络分为三类, 即蜂窝网络、AD HOS网络以及卫星网络。蜂窝网络是应用最为广泛的无线网络, 用户在基站和固定网络连接的基础上, 实现了对无线网络的应用。但是在应用的过程中经常出现无线终端和基站的TCP传输问题, 即容易引起单跳问题, 需要进行解决。在AD HOS网络中, 无需基站, 只是利用无线链路组成一个网络, 这就需要解决路由中断后的TCP传输问题。卫星网络是通过卫星链路的, 这就要求解决不对称链路的问题。

在无线网络中, 由于受到传输错误、链路中断以及路由中断的影响, 如果网络没有发生阻塞, 而TCP启动阻塞控制就会引起其性能的大幅降低, 一般而言, 影响TCP性能下降的原因包括以下几点:

⑴高比特误码率。在无线网络中, 链路属于有损介质, 其比特误码率很高, 这就导致了数据包损坏甚至会出现丢包的现象, 这样就容易引起发送端传送超时的情况, 在重传定时器的作用下对数据包进行重传, 同时阻塞控制会启动。这样无线网络就会受到这种重复性错误的影响, 大大的降低了TCP性能。

⑵丢包探测机制的漏洞。由于技术的约束和限制, 标准的TCP无法对不同类型的错误进行区分, 因为引发丢包的原因是多方面的, 但是TCP无法进行区分, 只是认为是拥塞丢包因此启动拥塞控制, 不强考虑网络的具体问题, 在很大程度上降低了TCP性能。

⑶无线链路宽带。在无线网络中, 无线链路的宽带是有限的, 在结点处使用的宽带是极少的, 甚至根本没有宽带, 这样无疑就增加了发送端的超时, 延长了信息丢失的时间, 严重的影响了无线网络的结构和性能。

⑷链路的中断。无线网络中, 链路中断是一个常见的问题, 这是因为在移动结点在切换期间会存在一个信号消失的阶段, 这样移动结点无法受到发送端的数据, 导致了发送超时, 又引发了拥塞控制的启动。

⑸路由的中断。像链路中断一样, 在连接中可能会出现路由的中断, 在重新启动时, 无线网络默认路由中断过程中的数据包是被丢弃的, 因此发送端的超时又启动了拥塞控制。

此外, 宽带的不对称以及链路的延时都会造成数据包的丢失或者是延时, 引起拥塞控制的启动, 大大的降低了TCP的性能。

可见, 在无线网络中, TCP还存在性能较差的情况, 需要利用额外的技术和机制, 提高TCP的性能, 一般来说主要从以下三个方面着手:首先, 利用丢包探测机制, 根据对丢包原因的分析制定合适的错误恢复策略, 减少拥塞控制的启动, 进而减轻比特误码和链路中断的影响;其次, 可以利用显示通知, 即把丢包的原因和网络的情况反映给发送端, 进而可以采取有效的措施, 另外, 还可以进行拥塞检测, 通过检测, 杜绝将丢包作为拥塞的标志的错误命令的执行, 进而提高TCP的性能。

3 改进无线网络中TCP性能的方法

鉴于在无线网络中, TCP存在着性能较低的情况, 需要采取有效的措施, 利用额外的方法进行改进, 进而提高TCP的性能。

⑴蜂窝网络中TCP性能改进方法。在蜂窝网络结构中, 要想对TCP的性能进行改进, 需要从TCP本身和链路层与TCP的结合方面着手, 主要是通过对发送端屏蔽或者是发送端觉察的方式。例如可以采用分段连接方案, 即将移动主机和固定主机的TCP连接在基站出分为两段, 对无线和有线路段采取不同的策略进行处理;缓存方案, 即保留数据的软状态;层次交叉方案, 即该类方案由链路层或网络层将链路环境状态反馈到TCP层, TCP依此采取相应的方法来处理丢包。根据低层的反馈方式和TCP处理措施的不同来进行分类;纯链路层解决方案, 即通过前向纠错和自动重传请求, 增加高层协议通信独立的可靠性。

⑵AD HOS网络中TCP性能改进方法。对于该网络的TCP性能改进而言, 重要是利用网络、链路层的协作, 实现两者之间的信息反馈交流;在路由中断时让发送端进入“坚持状态”或类似的状态;

改进链路层协议的恢复策略;分析数据包的一些属性的变化规律, 启发式地确定网络的状态和丢包的性质。一般而言, 采用的方法多是反馈式或者是启发式。

⑶改善卫星网络TCP性能的方法。改进卫星网络中TCP性能主要是利用TCP层技术和应用层技术, 可以有效的利用卫星链路的宽带, 通过改变慢启动以及避免拥塞的方式, 提高TCP的性能。

总之, TCP在部分无线网络的应用中受到了一定的阻碍, 需要借助一定的额外技术进行改进, 进而提高TCP的性能, 最大限度的提高数据传输的可靠性和稳定性, 保证网络服务的准确性和稳定性。改进TCP性能是一个综合的复杂问题, 需要从多个方面着手, 既可以通过探测丢包的方式, 又可以实现对传输时的参数进行恢复, 此外, 还要完善无线网络对于队列管理的机制, 目前无线网络的TCP研究工作侧重于拥塞控制, 还没有根据无线网络的特性设计专门的队列管理机制, 但在一些方法中已经隐含地使用了新的队列管理机制, 如/8669在基站保留已被转发的数据包;慢启动过程的改进TCP尤其在卫星网络中能有效地改善TCP性能;选择合适的MTU, 可以有效地降低高比特误码环境中的丢包。

综上分析, 通过对额外技术的应用, 可以起到降低比特误码率, 提高TCP地的性能, 进而提高无线网络的使用效率, 为人们提供更加便捷的服务, 提高服务是质量, 相信在各种技术的支持下, TCP将在无线网络中发挥更加重要的作用。

摘要:随着网络技术的发展, 无线网络和设备得到了一定的普及, 对人们的生活产生了很大的影响, 为人们提供了便捷的服务。随着人们需求的不断增加, 无线通信不仅要实现语音通信, 同时还要提高数据传输的可靠性。本文笔者分析了无线网络TCP的性能和影响其性能的因素, 重点探讨改进无线网络TCP性能的方法, 目的是为TCP的改进方向提供指导和借鉴。

关键词:无线网络,TCP,性能,影响因素,额外技术

参考文献

[1]徐雷鸣, 庞博, 赵耀.NS与网络模拟[M].北京:人民邮电出版社, 2009 (09) .

[2]许娜.无线网络TCP协议的改进研究[J].硕士, 2010 (09) .

[3]吴彬.Ad-hoc网络的TCP拥塞控制算法仿真研究[J].硕士, 2011 (08) .

网络TCP/IP协议分析 篇6

关键词:TCP/IP协议,常用命令,安全

TCP/IP (Trans m is s ion ControlProtocol/Inte rne t Protocol的简写, 中文译名为传输控制协议/互联网络协议) 协议是当今Internet最基本的协议。TCP/IP协议组是目前使用最广泛的网络互连协议。按照OSI体系划分, TCP/IP协议可分为数据链路层、网络层、传输层和应用层。TCP/IP的几个常用命令。

1 ping

当网络运行中出现故障时, 采用这个实用程序来预测故障和确定故障源是非常有效的。如果ping不成功, 则可以推断故障出现在以下几个方面:网线是否连通, 网络适配器配置是否正确, IP地址是否可用等;如果执行ping成功而网络仍无法使用, 那么问题很可能出在网络系统的软件配置方面, ping成功只能保证当前主机与目的主机间存在一条连通的物理路径。它还提供了许多参数, 如-t使当前主机不断地向目的主机发送数据, -n可以自己确定向目的主机发送的数据帧数等等, 使用Ctrl+C可以中断ping命令。

2 trace rt

这个程序的功能是判定数据包到达目的主机所经过的路径、显示数据包经过的中继节点清单和到达时间。还可以使用参数-d决定是否解析主机名。

3 ne ts tat

这个命令可以看到当前网络的整体使用情况。它可以显示当前正在活动的网络连接的详细信息, 如协议类型、当前主机与远程主机的IP地址以及它们之间的连接状态等。常用的参数为:-e用以显示以太网的统计信息;-s显示所有协议的使用状态, 这些协议包括TCP、UDP和IP, 一般这两个参数都是结合在一起使用的-se。另外-p可以选择特定的协议并查看其具体使用信息, -n以数字形式显示地址和端口号, -a可以显示所有主机的端口号, -r则显示当前主机的详细路由信息。

4 ipconfig

TCP/IP协议的设计与实现使不同计算机之间、不同操作平台之间的通信成为可能。但是, TCP/IP协议是在网络规模不大、应用范围不广、计算机技术尚不够发达的情况下设计与实现的, 当时的一种普遍认识是:安全性同题是上层的问题与底层协议无关, 因此TCP/IP在安全性方面做得不够完善。随着网络规模、计算机技术的日益发展, TCP/IP存在的不可克服的脆弱性。越来越阻碍着TCP/IP的进一步广泛使用, 也难以满足未来网络发展的需求。由于TCP/IP协议族本身存在一些安全缺陷, 所以即使正确地实现了它, TCP/IP网络仍会受到攻击。像序列号欺骗、路由攻击、源地址欺骗和授权欺骗等。对于TCP/IP协议族的安全缺陷可得出三个结论:1) 依赖于IP源地址的认证是极其不安全的;2) 大量的入侵都源于序列号攻击;3) 大多数网络控制机制都是危险的, 而且基于以太网的数据包易被监听, 入侵者甚至可以更改IP或MAC地址, 致使攻击方式更加复杂。

在以太网中, 数据以“帧”为单位进行传输。任何主机发送的帧都会到达与其处于同一网段的所有主机的网络接口, 而每一个网络接口都有一个唯一的硬件地址, 即网卡的MAC地址。信息以数据包的形式传送, 其报头包含了目的主机的MAC地址, 如果其携带的MAC地址是自己的或者是广播地址, 那么就会将数据帧交给IP层, 否则丢掉。网络上也存在一些能接收所有数据包的接口, 攻击通过某些手段使网卡工作在监听模式下, 从而达到非法窃取他人信息的目的。

处理方法:1) 对网络中传输的数据进行加密, 使攻击方无法正确还原窃取的数据, 并且传输的数据是经过压缩的, 可以加快传输的速度。2) 安装检测软件, 做到防范于未然。3) 改用交换式的网络拓扑结构。因为在交换式以太网中, 数据只会被发往目的地址的网卡, 其他网卡接收不到数据包, 但是交换机的成本比较高。

参考文献

[1]Craig Zacker著, 王晓东等译.TCP/IP网络管理[M].中国水利水电出版社, 1998.

无线网上TCP改进的研究综述 篇7

关键词:无线网络,TCP,服务,改进

目前所用的无线网络通常可以分为蜂窝网络、ad hoc网络和卫星网络三类。在蜂窝网络中, 移动主机通过基站和固定网络连接起来, 这也是目前应用最为广泛的无线网。无线网络通常有以下特点:

BER高:无线网络的BER通常明显高于有线网络, 并且由于无线网络所处环境的变化, 往往同一连接会话上的BER都会发生数量级上的变化。

带宽低:无线信道提供的可利用带宽 (1Mbps~2Mbps) 往往小于有线网络提供的带宽 (10Mbps~100Mbps) 。带宽对无线网络来说是一种稀有资源, 因此如何高效地使用这些带宽是一个重要问题。

切换 (handoff) 问题:移动设备在切换过程中, 也就是设备从一个蜂窝移动到另外一个蜂窝, 通信从原来的基站转移到新基站时, 通常会导致丢包或者延迟。

能量有限:和有线网络中的固定主机比起来, 移动设备通常使用电池提供有限的能量, 从而使得其通讯时间受到限制。因此如何进行有效的能量管理是无线网络面临的一个很大的挑战。

1 传统TCP在无线网络上的问题

由于移动计算环境存在着BER高、带宽低、移动性及能量有限等特点, 使得原本为固定主机、有线网络设计的TCP协议在这种环境下出现了很多不适应的问题, 主要表现在以下几个方面。

(1) 在包含有线网络和无线网络的异质环境中缺乏有效的错误检测机制。TCP只能检测到发生了错误也即有数据包被丢弃而无法检测出错误的性质。对传输过程中出现的错误, TCP假设丢包都是由于网络拥塞造成的。由于有线网络的BER很低, 这种假设基本上是成立的。但是在无线网络环境下存在许多于拥塞无关而可以导致丢包的原因。如无线信道突发性位错误、移动设备处在切换过程中、衰减信道 (fading channel) 等。在ad hoc网络中由于网络拓扑结构的变化而使路由变动也会导致丢包。TCP则将丢包都归结于网络拥塞的发生, 而无法检测出错误的属性。

(2) 缺乏有效的错误恢复机制。一旦检测出丢包, TCP便触发拥塞控制处理过程, 首先重传未被确认的包, 减小拥塞窗口从而降低发送速率;然后激活拥塞控制机制, 包括超时时钟指数回退、减小慢启动阈值 (ssthreshold) ;最后进入拥塞避免阶段以确保拥塞得以解除。如果丢包是由于无线网络的BER高或者移动设备切换时发生的而不是网络的拥塞, 那么TCP的这种错误恢复机制会导致协议性能下降, 包括吞吐量的下降和延迟的增加。

(3) 在无线环境下, 移动主机可用带宽往往较低, 从而使得TCP源端的发送速率受到限制, 使其用较小的拥塞窗口发送数据。在这种情况下, 一旦有数据包丢失, 源端就不能收到足够多的重复确认包从而触发快速重传, 而只能通过超时机制恢复, 因而降低了可用带宽的使用效率并且增加了延迟。

TCP协议之所以在无线网络环境下存在诸多问题, 最关键的是其缺乏全面的错误控制能力。目前的TCP/IP协议是为有线网络、固定主机设计的, TCP的错误控制主要是以网络拥塞丢包为中心, 而忽略链路传输错误等其他问题, 这在传统网络上是成立的;但在无线网络环境下, 链路BER错误、切换过程中的丢包问题等是典型的错误特征, TCP缺乏处理这些错误类型的能力, 因此必须进行改进。

2 TCP的改进

为了增强TCP在移动计算环境下的性能, 研究人员已经提出了很多方案。根据其基本工作原理, 这些方案大致可以划分为三类。

2.1 基于反馈信息的改进

Ramakrishnan等提出的显式拥塞指示 (Explicit Cogestion Notification, ECN) 机制是一种和主动式队列管理 (Active Queue Management, AQM) 机制结合使用的方法。在执行AQM机制的路由器中, 当拥塞发生并且队列没有溢出时, 对数据包进行拥塞标记而不是丢弃。接受端收到拥塞标记包后将此拥塞信息通过确认包传送到发送端。于是发送者激发拥塞控制机制。ECN需要在现有的TCP/IP结构上进行修改, 主要是在IP包头部和TCP包头部分别定义两个标记位。

Balakrishnan等提出了称为显式丢失通知 (Explicit loss notification, ELN) 的方法。当接收端或基站估计出丢包是与拥塞无关时, 便设置TCP包头部的ELN位, 并传回发送端。发送端收到ELN通知时, 只需重传丢失的包而无需进行拥塞控制。ELN的缺点是, 如果ELN由接受端发出, 则其在无线链路上也容易损坏;如果由基站发出, 则基站必须跟踪每个包是否已确认过, 从而增加了基站的负担。

2.2 基于分段连接的改进

在TCP的分段连接方法中, 固定节点和无线节点之间的单条TCP连接将被无线基站分割为两段:一段连接固定节点和无线基站, 另一段则连接无线基站和无线节点。通过分割, 原有的TCP连接被划分为有线链路上的“有线TCP连接”和无线链路上的“无线TCP连接”两部分, 从而对有线和无线链路中的TCP传输进行区分。图1给出了TCP分段连接方法的示意图 (见图1) 。

Bakre和Badrinath提出的Indirect-TCP (I-TCP) 是最早建议采用分段连接的。I-TCP两段均使用标准的TCP连接。发往MH的数据首先被基站接收, 基站向FH发送ACK然后将数据转发到MH。I-TCP有助于对固定网络屏蔽无线链路的不确定性, 并且FH上的TCP不需要改变。I-TCP的缺点一是不能维持TCP端到端的语义 (semantics) ;二是基站和MH之间使用标准TCP连接, 不能有效处理无线丢包问题, 从而导致整体性能的下降。

M-TCP是一种分段连接的方法。它的体系结构可以这被看作三层, 在最低层移动主机 (MH) 和每个蜂窝的基站通信;多个基站由一个监视主机 (Supervisor Host, SH) 控制;最上层是SH和固定主机FH通讯。M-TCP中FH仍然使用标准的TCP。与I-TCP中基站一旦收到FH的数据即发送确认不同, M-TCP中只有当收到来自MH的确认时才发送确认到FH, 从而维持了TCP端到端的特性。另外M-TCP还采用了FreezeTCP中的零窗口通告机制, 因此可以有效处理无线链路上发生的丢包。M-TCP的缺点是基站的任务过于复杂。

分段连接方案由于基站维持了两段连接, 因此必须缓冲大量的状态信息, 包括连接控制信息和未确认数据包。当业务量很大时, 基站的负荷会变得非常重, 而且需要更大的缓冲区。如果移动设备频繁地切换, 基站之间状态信息的传输会带来较大时延, 导致丢包。

2.3 基于传输层信息的改进

这种方案的目的是使TCP发送端能够区分拥塞相关的数据包丢失和其它形式的数据包丢失。只有当网络拥塞发生时, TCP拥塞控制处理过程才被激活, 而对于其他形式的丢包则执行其他错误恢复处理过程。

Samaraweera等提出了一种称为“非拥塞数据包丢失检测”的方法 (Non-congestion Packet Loss Detection, NCPLD) 。NCPLD利用了网络中knee点的概念, 将该点测量到的R T T称为延迟阈值 (delay thresho-ld) 。如果当前测量到的RTT比延迟阈值要小, 则认为丢包不是由于网络拥塞引起的;否则就认为丢包是由于拥塞引起的。NCPLD只需在发送端进行少量改动即可。

TCP-WESTWOOD:Mascolo提出了TCP-Westwood, 其主要特点是, 当收到3个重复的ACK或出现超时时, 并不是将拥塞窗口减半, 而是试图选择一个和出现拥塞时有效带宽相称的慢启动阈值及拥塞窗口。源端通过测量返回ACK的平均速率来估计TCP连接的可用带宽。从而避免了过分保守的减少拥塞窗口和慢启动门限, 有效地利用了带宽。

2.4 基于底层信息的改进

链路层方案的目标是通过在无线链路上进行重传或错误纠正来屏蔽不可靠的无线链路对有线网络的影响。其优点是可以独立与高层协议而提高数据传输的可靠性, 并且无需保留每连接状态信息。

Balakrishnan介绍了一种运行于基站的snoop代理 (Agent) 。Snoop代理监视通过TCP连接的每一个数据包, 包括确认包。Snoop代理维持了一个TCP包的缓冲 (cache) , 这些包是由FH发送而来, 但还没有被MH确认。同时它跟踪每个从MH而来的ACK包, 通过到达的重复ACK包或局部超时来检测包的丢失。当丢包发生时, 如果snoop代理已经缓存此包, 则进行局部重传, 并且重复的ACK包被丢弃以避免导致源端进入快速重传。使用局部重传, 可以使基站通过不传送重复的ACK, 对固定的源端主机屏蔽包在无线链路上的丢失。snoop代理的主要缺陷是没有考虑切换导致的延时和丢包, 并且链路层的重传和传输层的重传会相互干扰。

采用链路层方案来进行错误恢复的方法可以独立于上层协议进行独立操作, 并且不需要维持每个链接的状态。其主要问题是, 连路层重传和端到端的重传之间的相互干扰。DeSimone等指出, 链路层重传不一定能够提高性能, 而只有当数据包的错误率超过了一定的阈值后, 采用链路层重传才会提高应用层的吞吐量

3 结语

上一篇:可利用度下一篇:模糊聚类及其实际应用