(计算机应用技术专业论文)25g无线数据网络上tcp协议的性能分析及优化研究.pdf_第1页
(计算机应用技术专业论文)25g无线数据网络上tcp协议的性能分析及优化研究.pdf_第2页
(计算机应用技术专业论文)25g无线数据网络上tcp协议的性能分析及优化研究.pdf_第3页
(计算机应用技术专业论文)25g无线数据网络上tcp协议的性能分析及优化研究.pdf_第4页
(计算机应用技术专业论文)25g无线数据网络上tcp协议的性能分析及优化研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京邮电走学顾士论文 摘要 25 g 移动通信技术是2 g 向3 g 过渡的一个重要里程碑。目前全球大多数运 营商己经将25 g 技术商用,越来越多的用户通过25 g 的移动终端接入互联网, 移动数据业务发展迅速。t c p 是一种可靠的传输层协议,它在有线网络中被广泛 使用,已经成为事实上的互联网标准。虽然在有线网络中有着良好的表现,t c p 在25 g 无线网络中的性能却存在很多问题。这是由t c p 自身的实现机制与25 g 无线网络的链路特征共同造成的。 本文在详细研究t c p 协议的实现机制和25 g 无线数据网络的链路特征后, 分析了t c p 在25 g 无线网络上的性能问题,并提出了一些改进的建议。最后通 过仿真实验验证了建议的合理性。其中重点讨论了t c p 在25 g 无线网络上的虚 假超时问题。 【关键词】 t c p25 g3 gg p r s 慢启动 时延抖动虚假超时e i f e l 算法 拥塞窗口a c k n s 2 北京邮电走学硕士论丈 a b s t r a c t t h e25g e n e r a t i o nm o b i l ec o m m u n i c a t i o nt e c h n o l o g yi sam i l e s t o n eo nt h e r o a df r o m2 gt o3 gn o w a d a y s ,t h em a j o r i t yo ft h em o b i l eo p e r a t o r sa l lo v e rt h e w o r l dh a v eb u i l tt h e i r25 gm o b i l en e t w o r kf o rc o m m e r c i a lu s ea l r e a d yt h et c pi sa r e l i a b l et r a n s p o r t a t i o np r o t o c o lt h a ti sw i d e l yd e p l o y e di nt h ew i r e di n t e r n e t a c t u a l l y , t c ph a sb e e nas t a n d a r do ft h ei n t e r n e ti nf a c t a l t h o u g ht c pp e r f o r m sw e l li nf i x e d n e t w o r k s ,i ts u f f e r sf o r mp e r f o r m a n c ed e g r a d a t i o np r o b l e m si nt h e25 g w i r e l e s sd a t a n e t w o r k sb o t ht h ei m p l e m e n t a t i o nm e c h a n i s m so ft c pi t s e l fa n dt h el i n kc h a r a c t e r s o ft h e25 gw i r e l e s sn e t w o r k sa r er e s p o n s i b l ef o ri t i nt h i s t h e s i s ,b a s e d o nt h e c o m p r e h e n s i v es t u d y o ft h e i m p l e m e n t a t i o n m e c h a n i s m so ft c p p r o t o c o la n dt h el i n kc h a r a c t e r so f t h e25 gw i r e l e s sn e t w o r k s t h ep e r f o r m a n c ep r o b l e m so ft c po v e r25 gi s a n a y l i z e d ,a n ds o m ep r o p o s a l sa r e g i v e ni no r d e rt oo p t i m i z et h et c pp e r f o r m a n c eo v e r25 gw i r e l e s sn e t w o r k sf i n a l l y , s e v e r a ls i m u l a t i n gm e t h o d sa r eu s e dt op r o v et h eb a s i cc o r r e c t n e s so f t h ep r o p o s a l s ,o f w h i c ht h ep r o b l e mo f s p u r i o u st i m e o u ti sp a i dm o r ea t t e n t i o nt o 【k e yw o r d s 】 t c p25 g c o n g e s t i o nw i n d o w e i f e ln s 2 3 gg p r ss i o ws t a r t a c k d e l a yv a r i a t i o ns p u r i o u st i m e o u t 2 北京邮电太学项士论文 1 1 研究背景 第一章前言 1 1 12 5 g 移动数据业务蓬勃发展 近年来,随着社会的发展和经济的进步,用户在对移动话音业务大量需求的 同时,也逐渐产生了对移动数据业务不小的需求。第二代( 2 g ,2 n dg e n e r a t i o n ) 移动通信系统主要提供话音业务和低速数据业务,显然已经不能满足用户日益增 长的数据业务需求。随着互联网技术和移动通信技术的结合发展,第三代( 3 g , 3 “g e n e r a t i o n ) 移动通信技术已经崭露头角。3 g 在改善话音业务的基础上,为 移动用户提供了中高速数据业务及多媒体业务,能够大大满足用户的需求。国际 电信联盟( i t u ,i n t e r n a t i o n a lt e l e c o m m u n i c a t i o nu n i o n ) 在2 0 0 0 年5 月确定 w c d m a 、c d m a 2 0 0 0 和t d s c d m a 三大主流无线接口标准,写入3 g 技术指 导性文件2 0 0 0 年国际移动通讯计划( 简称i m t - 2 0 0 0 ) 。 g b 喇卯晤d 日t a s u 州h b 时b 叩酮 图1 1 全球各大洲近五年g p r s 用户预测图 然而,实簏3 g 是一项相当浩大的工程,所牵扯的层面多且复杂,代价颇为 巨大,不可能步到位。为了实现从2 g 到3 g 的平滑过渡,出现了介于2 g 和 北京邮电大学硕士论文 3 g 之间的第二代半的( 25 g ) 移动通信技术,包括基于g s m ( g l o b a ls y s t e m f o r m o b i l ec o m m u n i c a t i o n s ) 的通用分组无线数据业务一g p r s ( g e n e r a l p a c k e tr a d i o s e r v i c e ) 技术和基于c d m a ( c o d e d i v i s i o nm u k i p l ea c c e s s ) 的c d m a 2 0 0 0l x 技术。25 g 移动通信技术利用现有的无线覆盖,只通过增加相应的功能实体和 对现有基站系统进行部分改造来实现分组交换,为用户提供了较高速率的移动数 据业务,是2 g 到3 g 过渡阶段的一个重要里程碑。现在全球大多数移动通信运 营商已经将25 g 技术正式商用,越来越多的用户通过手机、p d a ( p e r s o n a ld i g i t a l a s s i s t a n t ) 、笔记本电脑等移动终端发送及接收电子邮件、浏览网页,进行移动 办公、电子商务、在线游戏等,移动数据业务正处在蓬勃发展的初期。 著名商业咨询公司马克赛公司( m a r c u se v a n s ) 在它的一份有关全球g p r s 市场预测的商业报告中提到,到2 0 0 5 年,全球将会有更多的用户使用g p r s 业 务。图1 1 是最近五年全球各大洲g p r s 用户数的预测图。 1 1 2t c p 协议在2 5 6 无线网络上性能不好 移动数据业务开展后,通过25 g 移动终端访问互联网的用户不断增加。在 不久的将来,移动计算更加普及,届时每个便携设备都有一个无线接口和一个口 地址。尽管优点众多,但由于无线网络介质的物理特性的限制,移动计算带来了 一个与固定有线网络完全不同的网络环境。无线带宽的稀缺造成了较低的链路速 率;一些外部因素比如串扰、多径衰落会造成无线信道上的数据丢失;另外,在 无线网络中,用户的移动性也会带来一些问题,例如用户从一个基站漫游到另外 一个基站时,由于基站间的切换,可能会带来数据丢失或服务质量的突然改变等 等。总之,移动互联网络环境与已有的固定互联网有着很大的不同。 现在流行的互联网应用服务比如w w w 、f t p 、e m a i l 等都需要数据的可靠 传输。传输控制协议t c p ( t r a n s m i s s i o nc o m r o lp r o t o c 0 1 ) 就是广泛使用的、能 提供这种可靠传输的一种传输层协议。对互联网的流量报告分析后表明,t c p 占有全球互联网流量的绝大部分比例1 1 】。t c p 是为固定互联网络设计的一套传输 控制协议,它在固定网络的应用中表现出了非常好的性能,它的核心功能就是有 效利用网络带宽,同时避免网络拥塞。t c p 为客户端一服务器模式提了很好的支 持,已经成为网络应用程序的标准模式。这给人的感觉好像t c p 是完美无缺的, 但事实正好相反。 移动互联网用户同样不可避免的要在无线连接上使用到t c p 协议,然而在 过程中会出现与固定网络连接不同的情况。传输错误弓f 起的数据包丢失、无线链 路较大时延和突然的延迟等等都会对t c p 造成影响,降低了t c p 传输的吞吐率, 达不到预期的链路速率。 北京邮电走擘硕士论文 在有线网络中,流量控制和资源分配策略都假定:底层的物理媒质是高度可 靠的,但这对25 g 的无线数据网络环境不成立。所以在无线网中,这种策略不 是有效的。在无线网上进行t c p 传输,t c p 认为包的丢失是由拥塞引起的,而 实际上这样的包丢失可能是由于信道错误引起的包丢弃或网络延时而引发的,这 导致t c p 超时并启动拥塞控制算法,这显然不必要的降低了无线信道的吞吐率。 在无线信道上的传输性能可以通过使用链路层差错控制的新方法自动重传 请求一a r q ( a u t o m a t i cr e p e a tr e q u e s t ) 署 1 前向纠错控制一f e c ( f o r w a r de r r o r c o r r e c t i o n ) 来改善。a a q 用于传输要求高可靠性的数据,f e c 用于传输时延敏 感的数据流。虽然链路层的a r q f e c 机制弥补了无线网络误码率高、易丢包的 缺点,保证了数据包的可靠传输,但同时却给无线网络带来了很大的时延和时延 抖动。这些都会影响t c p 的拥塞控制动作,引起不必要的传输效率降低。 通过对g p r s 网络的实际测量也表明,许多使用t c p 协议的应用程序在 g p r s 网络中的传输效率确实较低。 1 1 3 性能研究和优化工作的必要性 综上所述,越来越多的用户开始使用2 5 g 移动数据业务,移动互联网已经 成为人们追逐的新热点。而t c p 协议在25 g 无线数据网络上性能又不高,如果 不采取措施进行优化研究,势必影响用户的使用积极性和移动数据业务的开展, 不利于移动网络运营商收回成本和进一步盈利。因此,提高t c p 协议在2 5 g 无 线数据网络上的性能就显得尤为重要了。 1 2 相关研究现状 随着网络技术和移动通信技术的发展,一些研究机构逐渐开始意识到t c p 在无线n 络e e 的性能问题,并已经开始了相关的研究工作。互联网工程任务组 i e t f ( i n t e r n e te n g i n e e r i n gt a s kf o r c e ) 的“链路特点对性能的影响”( p i l c , p e r f o r m a n c ei m p l i c a t i o n so f l i n kc h a r a c t e r i s t i c s ) i 作组正在对t c p 在25 g 和3 g 无线数据网络上的性能改进做研究工作,已经发布了多个版本的草案,并致力于 这方面研究的标准化工作。无线网络中t c p 的性能研究是该工作组正在讨论的 热点。 国际上许多大学、科研院所和大公司的研究机构都很重视无线网络中t c p 性能的研究工作,并且已经开展了一些实验研究工作。比如爱立信、诺基亚等公 司的研发中心、美国俄克拉荷马大学、加州大学伯克力分校、芬兰赫尔辛基大学、 英国剑桥大学、新加坡国立大学等等,都对t c p 在w - l a n ( w i r e l e s sl o c a la r e a 北京邮电走学硕士论文 n e t w o r k ) 、卫星链路及g p r s 等无线数据网络上的性能做了一些模拟和研究工 作,取得了一定的成果。 就国内而言,由于25 g 无线数据网络刚刚商用不久,目前用户偏少,业务 量很小,性能问题还没有突出体现出来,所以这方面的研究还没有受到应有的关 注,目前有关工作开展的还不是很多。 1 3 论文主要内容和结构安排 本文主要针对t c p 协议在25 g 无线数据网络上的性能优化问题做了一些深 入的研究和探讨。论文主要内容包括三个部分: 第一部分回顾t c p 协议并介绍2 5 g 无线数据网络的主要特点,包括第二章 和第三章。第二章对t c p 协议及其主要的拥塞控制机制做了回顾,包括慢启动、 拥塞避免、快速重传和快速恢复等。第三章主要介绍了25 g 无线数据网络的大 致结构及其与t c p 协议相关的一些介质特点,如链路特点、时延及其变化等等。 这部分是后面研究工作的基础,只有清楚了t c p 协议的实现机制和25 g 无线数 据网络的特点才能分析它们之间的相互影响,找出问题所在。 第二部分分析25 g 无线数据网络中t c p 协议的性能问题并提出了一些改进 的建议,包括第四章和第五章。第四章在前面两张介绍的基础上分析了t c p 在 2 5 g 无线数据网络中出现的两个主要性能问题,分析了这些问题的成因及其造 成的后果。其中重点讨论了在g p r s 网络中经常出现的t c p “虚假超时”问题, 对它的成因、后果做了详细探讨。在第四章分析问题的基础上,第五章提出了一 些改进的意见,包括t c p 控制参数的调整和虚假超时问题的检测。这里提出了 一种检测虚假超时问题的新构想。 第三部分对上一部分提出的改进建议做了一些实验验证并对结果进行了一 些分析,同时对以后的研究工作做了一些展望。这一部分也包括两章,即第六章 和第七章。第六章介绍了实验方案安排、实验结果及其分析。本部分主要利用一 个网络模拟器一n s 2 模拟了改进后的t c p 协议,并对模拟结果进行了分析。第 七章对整个论文工作做了总结并对以后的研究方向做了展望。 北京邮电走擘硕士论文 第二章t c p 协议回顾 t c p ( 传输控制协议) 是一种面向连接的端到端的可靠的传输层协议,它提 供一种面向连接的、可靠的字节流服务。目前多数i n t e m e t 服务都使用t c p 协议 作为传输层协议,例如s m t p 、n r n t p 、h t t p 和f t p 协议等等。t c p 协议在固 定的有线网络上性能表现良好,但在无线网络环境中却存在许多问题。 本章主要对t c p 协议做一个大致回顾。介绍了t c p 协议的报文结构、连接 建立与中止的过程及其拥塞控制机制等等。 2 1 概述 t c p 协议是t c p f i p 协议簇的一部分。- y c p i p 是互联网的孩心,它起源于7 0 年代中期,美国国防部高级研究工程局a r p a 为了实现异种网之间的互连互通, 于是资助网问技术的研究开发,在1 9 7 7 年到1 9 7 9 年推出现在应用的t c p i ? 体 系结构和协议规范。接着,在1 9 8 0 年开始将最早出现的计算机网络之, a r p a n e t 上的所有计算机转换为t c p i p 协议,并以它为主干建立网间网,即 互联网,后来又采用了许多措施推广使用t c p i p 协议。t c p i p 是一组协议簇, 其中最主要的是网际协议( 1 p ) 和传输控制协议( t c p ) 。t c p f l p 协议实现了网 络间的互联。与t c p i p 协议簇相关联的协议也很丰富,并且在不断涌现,无论 是整个互联网还是t c p i p 协议都在随着业务负载、规模的增长以及服务要求的 提高而不断充实变化着。 t c p i p 参考模型定义了四个层次,如下图所示 图2 1t c p f l p 协议体系结构 一9 - 北京邮电走学硕士论文 其中,t c p 协议处在第三层,它的主要任务是提供源和目的主机对等实体间 的会话。 t c p 通过应用程序为用户提供了种可靠的面向连接的字节流服务。t c p 协议设计的目的就是在对等的两端以一种可靠的方式传输数据,也就是说没有任 何错误和数据丢失并且按照数据发送的次序把它送给接收端。t c p 为应用层提供 全双工服务,这意味数据能在两个方向上独立地进行传输。t c p 不能提供组播服 务,即它不能把一份相同的数据同时发送给多个接收端。 t c p 利用确认( a c k ,a c k n o w l e d g e m e n t ) 机制提供了可靠的报文传输。每 个被传送的数据报文段都包含一个数字序号,用以表示该报文段在数据传输过程 中的位置信息。序号由基序号和相对偏移序号决定。基序号是由操作系统选定的, 而相对偏移序号是指该报文段的第一个字节在整个数据传输中的相对位置。传输 过程中报文段到达接收端的顺序可能失序,即不是按照发送端发送时的正确顺序 到达接收端,在报文段中包含序号使得接收端可以对传输过程中失序的报文段进 行重新装配。另外,对于每一个接收到的报文段,接收端都向发送端发送一个确 认,通过这种方式告诉发送端该报文段已被收到。每个a c k 确认包含了发送确 认的端所期望收到的下一个序号。因此,确认序号应当是上次己成功收到数据 字节序号加】。 在一定的时间范围内,如果发送端没有收到对某个己发送报文段的a c k , 这个报文段将被重传。发送端重传报文段前等待a c k 的时间称作重传超时时间 ( r t o ,r e t r a n s m i s s i o nt i m e o u t ) ,俗称重传定时器。r t o 的计算方法是取一个 链路往返时间( r t t ,r o u n d t r i pt i m e ) 的平滑估计值。往返时间r t t 指个 t c p 报文段从发送端到达接收端并返回发送端所用的时间。 t c p 是一个滑动窗口协议。滑动窗口允许发送端在接收到a c k 之前可以发 送一定数量的报文段。发送端收到个a c k 之后,窗口就向前滑动,允许多发 送一个报文段。每个t c p 报文段( 包括数据报文段和a c k 报文段) 都包含一个 窗口通告选项。接收端通告的窗口大小是发送端滑动窗口的上界。由于t c p 首 部里窗口通告域占1 6 b i t 2 】,所以t c p 能通告的最大窗口大小是6 5 ,5 3 5 字节。但 是可以利用t c p 首部的窗口扩大选项( w i n d o w ss c a l eo p t i o n ) 使t c p 的窗口定 义从1 6b i t 增加为3 2b i t 口 2 2 协议原理2 下面这部分内容简要回顾了t c p 的报文段格式、连接的建立、数据传输以 及连接的终止过程。 北京邮电太学硕士论文 2 2 1t c p 报文段格式 用于建立一个连接、传输数据和终止一个连接的所有t c p 数据单元都具有 如图2 2 所示的标准数据报文段格式。所有t c p 报文段都被封装在p 数据包的 用户数据域里,在两个对等的t c p 实体间被传输。 o123 o1 2 34567g9 01 2 045678go12s45678g012 + _ 卜4 - + - - p 一i - - 4 - - + _ + _ 卜+ 一十- + _ + - + _ + _ + _ + _ 卜- t - - - 一 一- - 4 - - + 一+ _ 一+ - + 一+ _ 一+ 一十 |十六位源端口号l十六位目标端口号l + + + 一十一十一+ 一十一+ 一十一+ 一十一十一+ 一+ 一卜一+ 一+ 一十一+ 一+ 一卜_ + 一十一+ 一+ 一+ 一+ 一+ 一卜_ + 一+ 一十一十 i三十二位序列号l 十_ + - + 一+ 一+ 一+ 一+ 一+ - 卜一+ _ + _ + _ 卜一+ - + 一十一+ 一斗一斗一+ 一+ 一斗一+ 一+ 一十一+ 一+ 一+ 一+ 一卜一十一卜一十 i三十二位确认号l + 卜+ 一+ 一十一十一十一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一十一十一+ 一+ 一+ 一+ 一+ 一+ 一十一- 卜_ + 一十一十一十 l 四位li u l a p l r is l f il l 首部】六位保督位i r l c i s ls l y lt 十六位窗口大小l i 长度ii g l k i h i t n l 斗+ 一+ 一十一+ 一十一+ “+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一十一+ 一+ 一+ 一卜- + 一十一+ 一+ 一十一十一+ 一+ 一+ 一+ 一+ i十六位校验和 l十六位紧急指针 + + 一+ _ - + _ + 一+ 一+ 一+ _ + 一+ _ + _ + 一+ - + - + 一十一+ 一+ 一+ 一+ 一十一+ 一十一十一+ 一+ 一+ 一十一十一十一十一十 i选项( 若有)1 + 一十- + 一+ 一+ 一+ 一十一十一十_ + 一+ 一。p 一十一- 卜_ + 一+ 一+ 一斗一十一+ 一十一+ 一+ 一+ 一十一+ 一+ 一十一十一+ 一+ 一+ 一+ i数据( 若有)l + _ 卜- + 一+ 一+ 一斗一+ 一十_ 卜1 一十+ _ + _ + _ - 卜- + 一斗一p 一+ 一十一十一斗一十一+ 一十一+ 一斗一十一+ 一p + 一+ 一+ 图2 2t c p 报文段格式 每个t c p 段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。 这两个值加上i p 首部中的源端p 地址和目的端_ 【p 地址唯一确定一个t c p 连接。 有时,一个口地址和一个端口号也称为一个插口( s o c k e t ) 。这个术语出现 在最早的t c p 规范中,后来它也作为表示伯克利版的编程接口。插口对( s o c k e t p a i r ) ( 包含客户口地址、客户端口号、服务器i p 地址和服务器端口号的四元组) 可唯一确定互联网络中每个t c p 连接的双方。 序号用来标识从t c p 发端向t c p 收端发送的数据字节流,它表示在这个报 文段中的的第一个数据字节。如果将字节流看作在两个应用程序问的单向流动, 则t c p 用序号对每个字节进行计数。序号是3 2b i t 的无符号数,序号到达2 3 2 _ 1 后又从0 开始。 当建立个新的连接时,s y n 标志变1 。序号字段包含由这个主机选择的该 连接的初始序号i s n ( i n i t i a ls e q u e n c en u m b e r ) 。该主机要发送数据的第一个字 节序号为这个i s n 加1 ,因为s y n 标志消耗了一个序号( 将在下面详细介绍如 苎查塑皇垄兰璺主堡查 一 何建立和终止连接,届时我们将看到f i n 标志也要占用一个序号) 。 然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下 一个序号。因此,确认序号应当是上次己成功收到数据字节序号加1 。只有a c k 标志( 下面介绍) 为l 时确认序号字段才有效。 发送a c k 无需任何代价,因为3 2b i t 的确认序号字段和a c k 标志一样,总 是t c p 首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是 被设置,a c k 标志也总是被设置为l 。 t c p 为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传 输。因此,连接的每一端必须保持每个方向上的传输数据序号。 t c p 可以表述为一个没有选择确认或否认的滑动窗口协议。我们说t c p 缺 少选择确认是因为t c p 首部中的确认序号表示发方己成功收到字节,但还不包 含确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。例如,如 果1 1 0 2 4 字节已经成功收到,下一报文段中包含序号从2 0 4 9 3 0 7 2 的字节, 收端并不能确认这个新的报文段。它所能做的就是发回一个确认序号为1 0 2 5 的 a c k 。它也无法对一个报文段进行否认。例如,如果收到包含1 0 2 5 2 0 4 8 字节 的报文段,但它的校验和错,t c p 接收端所能做的就是发回一个确认序号为1 0 2 5 的a c k 。 首部长度给出首部中3 2b i t 字的数目。需要这个值是因为任选字段的长度是 可变的。这个字段占4b i t ,因此t c p 最多有6 0 字节的酋部。然而,没有任选字 段,正常的长度是2 0 字节。 在t c p 首部中有6 个标志比特。它们中的多个可同时被设置为1 。我们在这 儿简单介绍它们的用法,如下表所示: 表2 1t c p 报文段头部中6 个标志位的含义 标志名称作用 u r g 紧急指针( u r g e n tp o i n t e r ) 有效 a c k确认序号有效 p s h接收方应该尽快将这个报文段交给应用层 r s t用于复位相应的t c p 连接 s y n同步序号用来发起一个连接 f i n发端完成发送任务,表示结束个t c p 会话 北京邮电大学项士论文 u r g :紧急标志 紧急标志置位表示紧急指针( u r g e n tp o i n t e r ) 有效。 a c k :确认标志 确认编号位有效。大多数情况下该标志位是置位的。t c p 报头内的确认 编号位内包含的确认编号为下一个预期的序列编号,同时提示远端系统 已经成功接收所有数据。 p s h :推标志 该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据 转由应用程序处理。在处理t e l n e t 或r l o g i n 等交互模式的连接时,该 标志总是置位的。 r s t :复位标志 复位标志置为表示复位标志有效。用于复位相应的t c p 连接。 s y n :同步标志 同步序列编号( s y n c h r o n i z es e q u e n c en u m b e r ) 位有效。该标志仅在三 次握手建立t c p 连接时有效。它提示t c p 连接的服务器端检查序列编 号,该序列编号为t c p 连接初始端( 一般是客户端) 的初始序列编号。 i i f i n :结束标志 带有该标志置位的数据报用来结束一个t c p 会话,但对应端口仍处于开 放状态,准备接收后续数据。 t c p 的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字 节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口 - 大4 、是一个1 6b i t 字段,因而窗口大小最大为6 5 ,5 3 5 字节。t c p 首部还有新的 窗口扩大选项,它允许这个值按比例变化以提供更大的窗1 :2 1 。 校验和覆盖了整个的t c p 报文段:t c p 首部和t c p 数据。这是一个强制 性的字段,一定是由发端计算和存储,并由收端进行验证。t c p 校验和的计算和 u d p 校验和的计算相似,使用一个伪首部。 只有当u r g 标志置1 时紧急指针才有效。紧急指针是一个正的偏移量,和 序号字段中的值相加表示紧急数据最后一个字节的序号。t c p 的紧急方式是发送 端向另一端发送紧急数据的一种方式。 最常见的可选字段是最长报文大小,又称为m s s ( m a x i m u m s e g m e n ts i z e ) 。 每个连接方通常都在通信的第一个报文段( 为建立连接而设置s y n 标志的那个 段) 中指明这个选项。它指明本端所能接收的最大长度的报文段。 北京邮电大学硕士论文 从图2 2 中我们注意到t c p 报文段中的数据部分是可选的。我们将在第2 22 节和第2 24 节中看到在一个连接建立和一个连接终止时,双方交换的报文段仅 有t c p 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收 到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。 2 2 2 t c p 连接的建立 t c p 是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先 在双方之间建立一条连接。我们以一个t c p 连接建立的实例来说明t c p 连接建 立的过程,如下图23 所示。 隧羹怒l 搬囊段3 搬宓强0 娥支段7 蔽突轻: 敝史般5 叛鸳段n 图2 3 t c p 连接的建立和终止 让我们结合图2 3 来说明t c p 连接的建立过程。为了建立一条t c p 连接: 1 ) 复查端( 粤尊尊砻查户) 发送个s y n 段指明客户打算连接的服务器 墼掌呈,氅及初始序号( i s n ,在这个例子中为1 4 1 5 5 3 1 5 2 1 ) :这幂j y n “ 段为报文段1 。 。 2 ) 罂釜器差粤粤童罂鲁辇的初始序号的s y n 报文段( 报文段2 ) 作为应答。 同时,将确认序号设置为客户的f s n 加1 以对客户的s y n i 妄谶藉 ! ! 主塑兰苎兰堡主竺圭 确认。一个s y n 将占用一个序号。 3 1 客户必须将确认序号设置为服务器的i s n 加1 以对服务器的s y n 报文 段进行确认( 报文段3 ) 。 这三个报文段完成连接的建立。这个过程也称为三次握手( t h r e e w a y h a n d s h a k e ) 。 发送第一个s y n 的一端将执行主动打开( a c t i v eo p e n ) 。接收这个s y n 并发 回下一个s y n 的另一端执行被动打开( p a s s i v eo p e n ) 。 一端为建立连接而发送它的s y n 时,它为连接选择一个初始序号。i s n 随 时间而变化,因此每个连接都将具有不同的i s n 。i s n 可看作是一个3 2 比特的 计数器,每4 m s 加1 2 1 。这样选择序号的目的在于防止在网络中被延迟的分组在 以后又被传送,而导致某个连接的一方对它作错误的解释。 2 2 3 数据的传输 t c p 数据传输过程中的纠错和流量控制过程是建立在n 次回退机制 ( g o b a c k - n ) 和滑动窗口机制的基础上的。流量控制的目的是保证所有报文段 都被发端正确发送并且被收端正常确认。 正如前面提到的,滑动窗口允许发送端在接收到a c k 之前可以发送一定数 量的报文段。如果滑动窗口被序列号填满,则发端就被禁止再发送任何报文段, 直到它收到正确的确认为止。每当收到一个a c k 时,窗口就向前移动,于是该 窗口的第一个序列号拥有了发端所期望发送的下一个邻接的序列号,同时该窗口 的最后一个序列号指向已经被发送的最后一个报文段。 如果在重传定时器( r t o ) 溢出后没能收到相应的a c k ,发端被迫从丢失 的报文段开始重新发送这些报文段。这个过程称为n 次回退( g o b a c k - n ) 。报 文段丢失的标志是r t o 超时或收到重复的确认。如果收端希望收到报文段n , 但实际它收到的却是报文段n + 1 ,于是它向发端发送确认序列号为n 的确认。 而发端在正确发送完报文段n 一1 后已经收到过确认序列号为n 的确认。每当收 端收到失序的报文段时,它就发送这种重复的确认。 接收端在等待丢失报文段到来的同时能够保存已经收到的失序报文段。当这 个丢失报文段正确到达后,收端就发送所有收到报文段的确认。如果发端的r t o 溢出,它就开始从报文段n 开始重新发送所有报文段。在理想的环境下,报文 段流是稳定的并且流速由确认( a c k ) 和滑动窗口的大小来调节。每当错误发 生时,丢失的报文段迫使发送端回到丢失的报文段并重新发送自这个报文段以后 的所有报文段。但是,我们将讨论一种能够从一个丢失的确认快速恢复的t c p 苎主竺皇垄主婴主丝圭 算法。 2 2 4t c p 连接的终止 建立一个连接需要三次握手,而终止一个连接要经过4 次握手。这由t c p 的半关闭( h a l f - c l o s e ) 造成的。既然一个t c p 连接是全双工( 即数据在两个方 向上能同时传递) ,因此每个方向必须单独地进行关闭。这个原则就是当一方完 成它的数据发送任务后就能发送一个f i n 来终止这个方向连接。当一端收到一 个f i n ,它必须通知应用层另一端几经终止了那个方向的数据传送。发送f i n 通 常是应用层进行关闭的结果。 收到一个f i n 只意味着在这一方向上没有数据流动。一个t c p 连接在收到 一个f i n 后仍能发送数据。而这对利用半关闭的应用来说是可能的,尽管在实 际应用中只有很少的t c p 应用程序这样做。正常关闭过程如图2 3 所示。首先进 行关闭的一方( 即发送第一个f i n ) 将执行主动关闭,而另一方( 收到这个f i n ) 执行被动关闭。 图23 中的报文段4 发起终止连接,当服务器收到这个f i n ,它发回一个 a c k ,确认序号为收到的序号加l ( 报文段5 ) 。和s y n 一样,一个f i n 将占 用一个序号。接着这个服务器程序就关闭它的连接,导致它的t c p 端发送一个 f i n ( 报文段6 ) ,客户必须发回一个确认,并将确认序号设置为收到序号加1 ( 报文段7 ) 。这就是一个t c p 连接终止的典型握手顺序。 2 3t c p 的拥塞控制口3 当太多的t c p 连接以不合适的较高速率发送数据时,网络就会遭遇拥塞崩 溃。拥塞崩溃是指这样一种状态,在这种状态下,报文段被传送到网络中,但是 并未产生什么有用的动作:在到达目的地前,大多数的数据报文段或者相应的 a c k 都被某个中间路由器丢弃了。当路由器收到太多的数据包以至超过它的处 理能力时就会发生这种情况。这将导致发送端重传数据,使问题更为严重。有关 拥塞崩溃更详尽的资料请参考其他文献。 t c p 利用一系列的拥塞控制算法 4 】【卅来控制发送端的发送行为。这些算法非 常重要,因为它们保证t c p 不会以网络资源不能承受的不合适速率来发送数据。 如果发送速率太高,网络上的中间路由器可能被冲击至崩溃。如果报文段到达路 由器的速度超过了路由器的转发能力,这些报文段就会被存放到一个队列中以待 以后处理。如果过多的报文段到达了一个没有剩余内存来对它们进行排队的路由 器,这些报文段将被丢弃。因此,对t c p 来说,能够根据网络状况调整自己的 北京邮电大学硕士论文 发送速率以避免报文段丢失就显得非常重要了1 6 1 。 t c p 的拥塞控制算法试图通过检测拥塞来避免拥塞崩溃,并据此降低传输速 率。尽管这些算法非常重要,它们可能对t c p 在无线网络上的性能产生负面影 r ;j t ”。t c p 的四个拥塞控制算法分别是慢启动、拥塞避免、快速重传和快速恢复 ”。下面我们就简要介绍一下这些算法。 2 3 1 慢启动和拥塞避免 2 3 1 1 慢启动 在某些情况下,发送方一开始便向网络发送多个报文段,直至达到接收方通 告的窗口大小为止。当发送方和接收方处于同一个局域网时,这种方式是可以的。 但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,就有可能 出现一些问题。一些中问路由器必须缓存分组,并有可能耗尽存储器的空间。在 这种情况下,这种连接方式严重降低了t c p 连接的吞吐量 2 1 。 现在,t c p 需要支持一种被称为“慢启动”( s l o ws t a r t ) 的算法。该算法 通过观察到新分组进入网络的速率应该与另一端返回确认的速率相同而进行工 作。 慢启动为发送方的t c p 增加了另一个窗口:拥塞窗口( c o n g e s t i o n w i n d o w ) , 记为c w n d a 当与另一个网络的主机建立t c p 连接时,拥塞窗口被初始化为1 个 报文段( 即另一端通告的报文段大小) 。每收到一个a c k ,拥塞窗口就增加一 个报文段( c w n d 以字节为单位,但是慢启动以报文段大小为单位进行增加) 。 发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用 的流量控制,而通告窗口则是接收方使用的流量控制。 发送方开始时发送一个报文段,然后等待a c k 。当收到该a c k 时,拥塞窗 口从1 增加为2 ,即可以发送两个报文段。当收到这两个报文段的a c k 时,拥 塞窗口就增加为4 。这是一种指数增加的关系。 在某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组。这就 通知发送方它的拥塞窗口开得过大。当我们在下面讨论t c p 的超时和重传机制 时,将会看到它们是怎样对拥塞窗口起作用的。 2 3 1 2 拥塞避免 在第2 3i 1 节介绍的慢启动算法是在一个连接上发起数据流的方法,但有 北京邮电走学硕士论文 时我们会达到中间路由器的极限,此时分组将被丢弃。拥塞避免( c o n g e s t i o n a v o i d a n c e ) 算法是一种处理丢失分组的方法。该方法的详细描述见 2 。 该算法假定由于分组受到损坏引起的丢失是非常少的( 远小于1 ) ,因此 分组丢失就意味着在源主机和目的主机之间的某处网络上发生了拥塞。有两种分 组丢失的指示:发生超时和接收到重复的确认( 如果使用超时作为拥塞指示,则 需要使用一个好的r t t 算法) 。 拥塞避免算法和慢启动算法是两个目的不同、独立的算法。但是当拥塞发生 时,我们希望降低分组进入网络的传输速率,于是可以调用慢启动来做到这点。 在实际中这两个算法通常在一起实现。 拥塞避免算法和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口 c w n d 和一个慢启动门限s s t h r e s h 。这样得到的算法的工作过程如下: 1 ) 对一个给定的连接,初始化c w n d 为1 个报文段,s s t h r e s h 为6 5 ,5 3 5 个 字节。 2 ) t c p 输出例程的输出不能超过c w n d 和接收方通告窗口的大小。拥塞窗 口是发送方使用的流量控制,而通告窗口则是接收方进行的流量控制。 前者是发送方感受到的网络拥塞的估计,而后者则与接收方在该连接上 的可用缓存大小有关。 3 ) 当拥塞发生时( 超时或收到重复确认) ,s s t h r e s k 被设置为当前窗口大 小的一半( c w n d 和接收方通告窗口大小的最小值,但最少为2 个报文 g t ) 。此外,如果是超时引起了拥塞,则c w l l d 被设置为1 个报文段( 这 就是慢启动) 。 4 ) 当新的数据被对方确认时,就增加c w n d ,但增加的方法依赖于我们是 否正在进行慢启动或拥塞避免。如果c w n d 小于或等于s s t h ,p s h ,则正在 进行慢启动,否则正在进行拥塞避免。慢启动一直持续到我们回到当拥 塞发生时所处位置的半时候才停止( n n 捌f i e n t n n n2 中给我们 制造麻烦的窗口大小的一半) ,然后转为执行拥塞避免。 慢启动算法初始设置c w n d 为1 个报文段,此后每收到一个确认就加1 。正 如2 31 1 节描述的那样,这会使窗口按指数方式增长:发送1 个报文段,然后 是2 个,接着是4 个。 拥塞避免算法要求每次收到一个确认时将c w n d 增) j l :l1 c w n d 。与慢启动的指 数增加比起来,这是一) j i l 生n j & ( a d d i t i v ei n c r e a s e ) 。我们希望在个往返时间 内最多为c w n d 增加1 f 报s c g t ( 不管在这个r t t 中收到了多少个a c k ) ,然 而慢启动将根据这个往返时间中所收到的确认的个数增加。耐。 ! ! 童! 皇垄兰堡主堡查 图24 是慢启动和拥塞避免的一个可视化描述。我们以段为单位来显示c w n d 和s s t h ,p s h ,但它们实际上都是以字节为单位进行维护的。 t “? t 撤i :矬i 0 强近”# 0 图2 4 慢启动和拥塞避免的可视化描述 在图2 , 4 中,假定当删脯为3 2 个报文段时就会发生拥塞。于是设置s s t h r e s h 为1 6 个报文段,而c w n d 为1 个报文段。在时刻0 发送了一个报文段,并假定 在时刻1 接收到它的a c k ,此时c w n d 增加为2 。接着发送了2 个报文段,并假 定在时刻2 接收到它们的a c k ,于是c w n d 增加为4 ( 对每个a c k 增加1 次) 。 这种指数增加算法一直进行到在时刻3 和4 之间收到8 个a c k 后c w n d 等于 s s t h r e s h 时才停止,从该时刻起,c w n d 以线性方式增加,在每个往返时间内最多 增加1 个报文段。 正如我们在这个图中看到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论