华拓科技网
您的当前位置:首页短报文可靠传输协议的设计与实现

短报文可靠传输协议的设计与实现

来源:华拓科技网
维普资讯 http://www.cqvip.com

第28卷 第18期 Vo1.28 NO.18 计算机工程与设计 Compmer Engineering and Design 2007年9月 Sept.2007 短报文可靠传输协议的设计与实现 王宇亮 , 章 洋 , 郑昌文 (1.中国科学技术大学计算机科学技术系,安徽合肥230027;2.中国科学院软件研究所 综合信息系统技术国家重点实验室,北京100080) 摘要:在某些移动自组网环境中,存在大量突发的要求可靠性与实时性的短报文业务。现有的UDP协议无法保证报文可 靠有序的到达,并且缺乏流量控制,容易导致网络拥塞,TCP及其改进协议使用三次握手机制来建立连接,这对于短报文来 说是极大的浪费。对此分析了三次握手建立连接的设计原因,设计并实现了短报文可靠传榆协议,通过避免三次握手,F. RTO技术以及简短的报文头格式减小了连接代价,大幅提高了短报文的传输效率。 关键词:无线自组网;传输层;短报文;可靠性;三次握手 中图法分类号:TP393.04 文献标识码:A 文章编号:1000.7024(2007)18-4394.03 Design and implement of reliable short packet transport protocol WANG Yu—liang 一,ZHANG Yang ,ZHENG Chang—wen (1.Department of Computer Science and Technology,University of Science and Technology of China,Hefei 230027, China;2、National Key Laboratory of Integrated Information System Technology,Institute of Software, Chinese Academy of Sciences,Beijing 1 00080,China) Abstract:A large number of short packets need to be transmitted reliably and real—timely in some MANETs.UDP could not guarantee the reliability and lack of lfow control which may cause congestion,TCP nd iats variations need three-way hand shake before data ratnS— port,which is a great waste for short packets.A reliable trnsporat protocol is designed and implemented for short packet ratnsport on analyzingthedesinproblemsoftgree—wayhahnd shake.The shortpackettrnsferperformanceisgareatlyimprovedthroughtheavoidance of tree-way hhand shake,the F—RTO and a concise packet head or freducing the cost of the head. Key words:MANET:RSPTP;short packet;reliability;tree—way hhand shake 0引 言 移动自组织网(MANET)是一种由移动节点组成的自组织 的无线网络,具有很高的生存能力和灵活性,可广泛应用于军 于当网络恢复时无法及时的传输新报文。UDP无法可靠地传 输报文,不存在流量控制和拥塞控制,容易因为拥塞而丢包, 降低网络性能。针对MANET设计的可靠传输协议,例如, TCP.FRTO[21 TCP.DOOR【3l,TCP-F TCP.ELFN TCP.BuS[el 事、工业、商业、医疗、家庭、办公环境等各种场合。 已有的TCP、UDP协议都不适合在无线网络中传输短报 文 】。因为TCP是面向连接的协议,在数据传送前需要进行3 ATCP ,ATP 等,仍然使用三次握手来建立连接,这对于临时 突发的短报文是巨大的开销。T/TCP是针对有线网中的事务 支持设计的,通过在连接报文中加入1-2个长达32位的CC 次握手。只有当3次握手完成,连接建立后,TCP发送端才开 始发送数据。这意味着数据传输之前必须至少被延迟RTT时 间,在实际使用的低速无线自组织网络中,这有可能长达若干 选项,在某些情况下可以避免三次握手过程。但它需要接收 方为每个远端主机保留一份历史记录,并且第一次连接或者 主机重启后,所有到它的连接或者它发出的连接都会进入普 通的三次握手过程。 本文针对一个实际使用的MANET网络环境进行设计, 环境中的节点拥有类似于GPS的全局授时设备,通讯拥有一 秒。同时,在某些移动自组网应用环境中,很多数据例如重要 的环境测定值,短小命令信息仅占几个到几十个字节并且需 要可靠实时传递,对于这种信息的传递进行3次握手无疑是 巨大的浪费。此外,TCP假设所有的丢包是拥塞造成的,一旦 移动自组织网中发生网络分离,TCP就会进入超时重传,并且 指数回退超时间隔,这个间隔可能退的很大(64 S以上),以至 个相当可靠的链路层,使用TDMA静态分配时隙方式组网,并 且其业务有相当大一部分是用来传输用户短小的控制命令和 数据更新信息,这些业务具有突发、实时性要求高等特点,同 收稿日期: 2006一】O-l6 E-mail:ylwang4@mail.ustc.edu.cn 基金项目: 国家863高技术研究发展计划基金项目(2o05xxxl2O):国家自然科学基金项目(10577021)。 作者简介: 王宇亮(1982一),男,湖南湘潭人,硕士研究生,研究方向为计算机网络: 章洋(197O一),男,博士研究生,研究方向为计算机网 络与安全; 郑昌文(1969一),男,湖北人,博士后,副研究员,研究方向为卫星组网技术。 ・——4394・—— 维普资讯 http://www.cqvip.com 时要求能够可靠到达。对此,本文以TCP为蓝本进行修改与 扩展,设计了短报文可靠传输协议(reliable shortpackettransport protocol,RSPTP),通过使用初次数据传输机制取代三次握手机 制,使用F-RTO技术改进报文重传机制以及使用简短的报文 头,以提高短报文的传输效率。 SYN1过期时刻 1 RSPTP的设计 1.1初次数据传输机制 考察TCP进行三次握手的原因,是为了防止一个延迟的 SYN1过期被过滤 图2问题1解决方案 重复SYN报文到达建立错误的连接,从而向上层提交错误、 重复的数据。注意到如果延期重复的报文到达时连接未被关 闭,则接收端可以通过last-ack过滤seq—no。因此,只有当延 期、重复的报文到达接收端时连接已经关闭,才会建立错误的 连接。重复的SYN报文是由报文重传造成的,报文重传的原 因包括:SYN丢失,SYN延期,SYN—ACK丢失,SYN—ACK延期, 其中SYN丢失并不会产生重复的SYN报文,在这里将SYN 延期产生重复SYN报文称为问题1,SYN—ACK丢失或延期产 生重复的SYN报文称为问题2,如图1所示。 图1过期报文引发错误连接 RSPTP协议的初次传输机制通过时戳加序号的方式避免 三次握手,算法如下: (1)主动打开:发送SYN(syn—no,syn—ts),其中syn—no为初始 序列号,根据硬时钟生成。syn—ts为此报文超时重传的时刻, 在连接建立报文中即可包含数据: (2)主动关闭:当所有数据报文都已经传输完毕后发送FIN (ifn.no,fin.ts)。其中fin.no为结束序列号,fin.ts为结束时戳, 并满足fin.ts=max(连接最后发送的syn报文对应的syn.ts,当 前时刻); (3)被动打开:收到SYN报文(syn—no,syn.ts)的时刻为now, 如果now>syn.ts或者连接存在但last-ack>syn.no,则拒绝此报 文,否则接收并新建连接: (4)被动关闭:收到FIN报文(ifn—no,fin.ts)后,若此时时刻 now>fin—ts,清除连接。否则在fin—ts时刻清除连接。 其思想是保证网络中不存在两个同时有效的SYN报文。 设前后发送两个SYN报文syn1(syn—no,syn—ts1)与syn2(syn—no, syn—ts2)。对于问题1,如果synl并在syn2建立连接后并传输 结束后到达,则有synl到达时 ̄lJ>syn2到达时 ̄lJ>syn2发送时 间>syn.tsl,从而synl被拒绝。如图2所示。对于问题2,设接 收端在now时刻接收到syn(syn—no,syn—ts),如果此时连接并未 关闭,则根据last.ack的值可以过滤syn—no,如图3所示。如果 此时连接已关闭,则now>fin.ts>=syn—ts,从而syn被拒绝,如图 4所示。 问题2解决(情况A) SYN2通过序号 …被过滤 SYN2过期时刻 连接清除 图3问题2解决方案(情况A) 问题2解决(情况B) SYN2过期时刻 连接清除 SY'N2过期被过滤 图4问题2解决方案(情况B) 使用初次数据传输机制避免了三次握手所需的等待时 间,减小了网络中的报文数量,并且无需接收端在连接之外维 护任何信息。由于只在传输开始的SYN报文和传输结束的 FIN报文中添加时戳,因此平均附加的报文长度开销几乎为 0。记收发双方单程时间为t,当数据在一个MTU内时,接收 方只需要t时间即可接收到数据,而三次握手机制接收方需要 3t时间才能接收到数据,在这种情况下,初次连接机制的实时 性提高了3倍。 1.2 FRTO报文重传机制 在MANET中由于网络分离的存在,TCP超时重传间隔进 行指数回退会造成很大的性能损失,在实际使用中,经常观察 到一个TCP连接的超时间隔被设为64 S,当某次超时发生后 不久网络恢复,TCP也要等到64 S后才进行数据传输。本文 在实现中采用TCP.FRTO中使用的方法,如果连续两次超时, 则认为是网络分离,从而锁定超时间隔。这样做的好处在于, 网络恢复后,最多等待2 S即开始正常的数据传输。 1_3报文格式 在信道速率很低的无线自组网中传输短报文,设计简短 ・——4395・—— 维普资讯 http://www.cqvip.com 的报文格式尤为重要。由于链路层相当可靠,将校验和设为 时机制的实现,保证所有事件被按序处理,从而可以在一个线 程中高效实现。主控模块负责响应所有的事件,并决定调用 输入或是输出模块进行处理。输出模块负责发送数据,对输 可选头部。针对相对较低的信道速率,可将序列号与确认号 缩短为2个字节,报文格式如表1所示。 表1 RSPTP报文格式 o.15  l l出队列进行操作。输入模块负责接收数据,对输入队列进行 15—31 操作。控制表模块包括套接字分配管理表,套接字对管理表 SOtH'Ce port  lType Headlen Reserved l Additional Header destination potr Seq# 等,为主控模块提供支持。 2.2事件引擎和超时管理模块的设计 事件引擎和超时管理模块的主体包括事件引擎和一个抽 象的事件接口。输入、输出、主控模块向事件引擎申请内部超 时事件,外部应用程序和网络层向事件引擎投递外部事件。事 表1中sourceport和destinationport分别代表源端口和目 的端口。type各位依次为SYN,FIN,ACK,SACK,TS,CS,保留 2位,分别表示起始报文,结束报文,捎带确认,捎带选择确认, 拥有校验和拥有时戳。Headlen为头度,Reserved为保留 字段。Seq为窗口序号。AdditionalHeader包括16位ack,16位 Checksum,32位时戳和16位sack。通常数据报文头8字 节,捎带确认和选择确认的数据报文头12字节,远远小 于TCP 20个字节的头部开销。 件引擎对事件进行调度,触发到期的事件,调用主控模块注册 的事件响应函数进行处理。计时器是利用事件引擎的事件延 迟功能实现的,这避免了多个连接分别在不同的线程中申请 多个计时器,占用资源的情况。RSPTP具体使用的事件包括: 应用层数据到达事件,IP包到达事件,延时ACK计时器, TIME—WAIT计时器,发送端超时计时器,关闭延时计时器。 2.3主控模块的设计 主控模块负责对RSPTP中的所有事件进行响应,其具体 职责包括:拆除连接,进行状态切换,对报文进行合法性检查 和预处理,过滤过期报文,分离数据和ACK,对数据调用输入 模块进行处理,对于ACK调用输出模块进行处理。 1.4其它设计问题 报文传递以数据一确认的方式进行,可以捎带确认,也可 以进行选择性确认。MANET中接收方缓存相对于信道速率 来说通常不是问题,因此窗口大小的控制只包括拥塞窗口的 控制。窗口最大值为16,为处理突发情况,窗口的初值通常为 3,窗口的调节采用AIMD策略,由于只用于短报文地传递,故 2.4输入、输出模块的设计 凡是和输入队列有关的操作都由输入模块来进行,其具 没有复杂的慢启动机制,实现相对简单。由于没有接收方窗 口通知,因此也无需坚持计时机制。此外,为防止机器崩溃后 体职责包括向应用层缓存填充接收到的有序数据,将从IP层 收到的数据放入相应套接字对的输入队列中,滑动接收窗口 并申请延时ACK计时器。 产生错误连接,开机后须等待MSL的平静时间。 凡是和输出队列有关的操作都由输出模块来进行, 其具体职责包括将应用层数据加入对应套接字对的输出队列 中,尝试发送窗口之内的新数据,重传超时未获确认的数据, 发送ack,以及在ack到达后滑动发送窗口。 2 RSPTP的实现 2.1模块划分 RSPTP包括5大模块:事件引擎和超时管理模块、主控模 块、输出模块、输入模块、控制表模块,其关系如图5所示。 2.5控制表模块的设计 控制表模块为主控模块的运作提供支持。主要包括套接 字分配管理表,套接字对管理表。其中套接 套接字对管理表 其中事件调度和超时管理模块负责进行事件的调度和超 字分配管理表记录所有正在使用的地址一端 口二元组及其绑定的数据ID,原始套接字 等。套接字对管理表记录收发双方的地址一 端口二元组及其绑定的收发队列指针,发送 窗口大小,接收窗口位置与大小,RTT估计 套接字管理表 根据端口, 主控模块 (状态切换,过滤过 期报文,数据预处 理,分离数据与 ACK,拆除连接) 一输入,输出队列位I i  . 值,RTO大小等状态。 置,窗口大小.L—————一 2.6编程接口 (1)申请套接字 RSPTPS0CKET RSPTPSocket(RSPTPA— / 生应 事 TIME ̄WAIT计时哉, 柑 … DDR addr); (数据 /ACK 发送, l (2)关闭套接字 bool closeRSp1rPsocke RSP1丌Ps0CKET s): (3)发送数据 unsigned int RSPTPSend(RSPTPSOCKET 网络事件——_t一 重传超时的数据 I昔襻浩韶时*时 发送窗口管理) I 数 取 来自IP的数据) 输入队列 S,const char data,unsined ignt datalen,const RSPTPADDR desaddrt); 图5模块划分:职责与交互 ———(下转第4400页) 4396——— 维普资讯 http://www.cqvip.com Vegas in asymmetric networks[EB/oU.http://www.ie.cub&.edu. hk/ileadmifn/s,2007. [3] Chung Ling Chi,Fu Chengpeng,Liew Soung Chang.Improve— ments achieved by SACK employing TCP Veno equilibrium— oriented mechanism over lossy networks[EB/OL].http://www. 图8有背景、有拥塞、有误码,图9有背景、有拥塞、有误码 错误率l0 000时Reno 与Veno平均流量对比 错误率l0 000时Reno 与Veno总流量对比 ie.tank.edu.hk/index.php?1,2007. to—end congestion control over [4] Fu Chengpeng.TCP Veno:End—heterogeneous networks[EB/OL].http://www.ie.tank.edu.hk/in- dex.php?1,2007. 分析,在仿真的3G环境下用NS.2软件对TCP Veno的测试, 得出了一些对TCP Veno理论研究和应用有一定参考价值的 测试结论:在存在背景、有随机丢包、并且存在拥塞的3G网络 中,Veno的性能优于Reno,而且在背景流越大,达到拥塞的时  Xu,Ye Tian,Nirwan Ansari.Improving TCP performance in [5] Kaiintegrated wireless communication networks[EB/OL].http:// net.pku.edu.cn/yidong/ROOT/cou,2007. [6] Paxson V Allman M.Computing TCP’s Retransmission Timer [EB/OL].http:Hwww.tech—niuon.com/protocol/,2007. lman M,Balakrishnan H,Floyd S.Enhancing TCP’s loss re— [7] Al间越短、随机丢包越大,Veno的优越性更会非常明显。由于 TCP Veno协议成功地解决了在无线网络上随机丢包的问题, 无缝地实现了有线网和无线网地结合,如果能投入在3G的应 用上,会得到很好的性能。对Veno在3G环境下的测试,还是 covery using limited transmit[EB/OL].http://www.cnpaf.net/ Clss/aRfcerd0532 www.cnpaf.net/Class/Rfcen/0532,2007. ndley M,Padhye J,Floyd S.TCP congestion window vali— [8] Ha初步的,很多问题是可以继续研究的,比如TCP Veno对移动 环境的支持,随机丢包率有一定变化或者大幅变化的情况下 的TCP Veno的表现,以及对TD.SCDMA环境的支持方面,都 可以作为进一步的研究方向。 dation[EB/OL].http://www.cnpaf.net/Class/Rfcen/0532. 2007. [9] Fu Chengpeng.TCP Veno:TCP enhancement for transmission over wireless access networks[EB/OL].http://scholar.ilib.crgAb- stract.aspx,2007. 参考文献: Zhang C L,Fu C P,Ma—Tit Yap,et a1.Dynamics comparision of [10] 彭木根,余艳,刘键,等.3G技术和UMTS网络[M].石家庄:中国 TCP Veno and reno[EB/OL].http:llwww.ie.tank.edu.hk/filead— min/s,2007. 铁道出版社,2004. 徐雷鸣,庞博,赵耀.NS与网络模拟[MIlL京:人民邮电出版社, 2003. A remedy for performance degradation of TCP [2] Fu Chengpeng.(上接第4396页) (4)接收数据 int RSPTPRecv(RSPTPSOCKET s,char buif,unsigned int bufien,RSPTPADDR&srcaddr);f [3] Wang Feng,Zhang Yongguang.Improving TCP performance over mobile Ad Hoe Networks with out-of-order detection and response[C].Proceeding of ACM MOBIHOC.New York:ACM Press,2002:217—255. 3结束语 在MANET中设计高效的传输协议是目前的研究热点之 一[4] Chandran l(’Raghunathan S,Venkatesan S,et a1.A feedback-based schemeforimprovingTCPperformancein adhoewirelessnet- 。本文针对MANET中的短报文业务流设计并实现了一种 works[J].IEEE Pe ̄onal Communications Magazine,2001,8(1): 34.39. 高效的短报文数据传输协议RSPTP,通过避免三次握手机制, 使用简短的报文头部以及F.RTO技术处理网络分离,有效提 升了传输的实时性和网络的吞吐量。在实际的网络运行表明, land G,Vaidya N.Analysis of TCP performance over mobile [5] Holad hoe networks[J]_ACM Wireless Networs,2002,8(2):275.k 288. RSPTP有效提高了短报文传递的实时性和传输效率。 参考文献: Wang Chonggang,Kazem Sohraby,Hu Yueming,et a1.Issues of [6] Kim D,T0h C l(,Choi Y.TCP—BuS:Improving TCP performance in wireless Ad Hoe networks[J].Journal ofCommunications and Networs,k2001,3(2):1-12. transport control protocols or fwireless sensor networks[C].Pro. ceedings of International Conference on Communications.Cir- 【7] Liu J,Singh S.ATCP:TCP or fmobile Ad Hoe networks[J].IEEE Journal on Selected Areas in Communications,2001,19(7):1300. 13l5. cuits nd aSystems(ICCCAS),2005,5(1):422.426. [2] Dyer TD,Boppana RV.A comparison of TCP performance over [8] Sundaresan K,Anatharaman Hsieh H,et a1.ATP:A reliable rtansport protocol for Ad Hoc networks[C].Proceeding of the ACM MobiHoc.New York:ACM Press.2003:64.75. three routing protocols for mobile Ad Hoe networks[C].Procee. dings of MOBIHOC 0 1.New York:ACM Press,200 1:56.66. ・——4400・—— 

因篇幅问题不能全部显示,请点此查看更多更全内容