(计算机科学与技术专业论文)toe中tcp定时机制的研究与实现.pdf_第1页
(计算机科学与技术专业论文)toe中tcp定时机制的研究与实现.pdf_第2页
(计算机科学与技术专业论文)toe中tcp定时机制的研究与实现.pdf_第3页
(计算机科学与技术专业论文)toe中tcp定时机制的研究与实现.pdf_第4页
(计算机科学与技术专业论文)toe中tcp定时机制的研究与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

国防科学技术大学研究生院学位论文 摘要 随着网络规模的扩大,信息流量的剧增,网络带宽越来越高,只有高带宽网络才能 满足日益增长的信息流量和人们的需求。一直以来,t c p i p 协议都由主机操作系统实现, 但随着千兆位以太网等高带宽网络的普及,主机上t c p i p 协议处理开销已经成为系统 整体性能的瓶颈。为了释放主机的c p u 处理负担,近年来各种t c p 加速技术成为研究 热点,其中t o e 技术发展较为成熟,适用于千兆网络的t o e 产品已投放市场。 t ( ) e 技术采用硬件实现t c p i p 协议处理,以获得最大的性能提升。它将t c p 坤协 议族的部分或全部功能转移到网卡上实现,与原有的操作系统无缝对接,同时与原有的 网络应用程序完全相兼容,尽可能将主机c p u 处理t c p i p 协议族的开销降到最低。 在t o e 网卡的实现中,t c p 协议定时机制运行的好坏对网络传输性能有着重要的 影响。从三次握手建立t c p 连接,到e s t a b l i s h e d 状态下每个数据报文的发送和接 收,直至最后终止t c p 连接,每一步都需要定时机制的参与,定时机制的正确工作确 保了t c p 协议的正常运行。如何准确高效地用硬件实现t c p 定时机制,使其在千兆及 更高带宽的网络中正常工作,是t o e 网卡实现中的重点和难点。 另外,t o e 网卡通常使用在高带宽高负载的环境下,现在通用的t c p 协议中定时 机制的一些算法已经不适用于高速网络,如果不能及时改进,这些传统算法将在一定程 度上严重影响网络拥塞状况、数据传输效率等性能,因此,本文针对t c p 定时机制中 最重要的重传定时机制,提出一种新的算法负载自适应i o 估计算法,并在模拟软件 上模拟该算法,验证了算法改进后的性能提升。 关键词:t o et c p 定时机制t c p 定时器重传定时器 国防科学技术大学研究生院学位论文 a b s t r a c t w - t ht h ee i l l a 曙e m e n t0 fm en e t w o r ks i z ea n ds h a r pj n c r e a s eo f 也en e t w o r kt r 拭c ,t l l e n e t w o r kb a l l d 、v i d t l li sl l i g h e ra n dl l i 曲e r ,a n do i l l yl l i g hb 赳l d w i d t l ln e t v ,o r kc a nm e c tt i l en e e d f o rc v e ri n c r e a s i n gi t l f o n n a t i o nn o w a 1 lt l l e 血n e ,t c p i pi sa l lr c a l i z c di n s i d e 也eh o s t o p e r a t 访gs y s t e m ,w i t ht h er a p i dg r o w 1o f l cb a i l d 、v i d t l lo f 也en e t w o r k ,掣e a t e r 锄dg r e a t e r m eh o s tc o m p u t e rc p up e r f o j f l 锄c ew e r cc o 咖m e d t h e 既p e i l s 髂o fd c a l i l l g 删lt c p p r o t o c 0 1s u i t eh a v ea l r c a d yb e c o m e 也eb o t t l e n e c ki nw h 0 1 ep e r f o m l a n c eo f 也eh o s tc o m p u t e r s y s t 锄 t o et e c l l n 0 1 0 9 yi st oa d o p th 喇眦t om l i z et c p 肥a n do b “l l s 龇g r e a t e s t p e r f o r n l a l l t op r o m o t e ,i tt m r l s f e r ss o m eo ra l l 劬c t i o n so ft c p i pt on e t 、】l ,o r kc a r dt o 砌i z c ,趾ds e 卸d e s s l yc o 衄e c t 如m 也eb o s to 删i n gs y s t e m ,趾di ti sc o m p a t i b l e 、) l ,i t l l a l r c a d ye x s i ta p p i i c a t i o np m g r a m s ,m en e 研o r kc a r du s i n gt l l i sk i n do ft c c h i l o l o g yi sc a l l e d t 1 1 e t o en e tc a r d ( t n i c ) i nm e 删i z a t i o no f 血ct o en e tc a r d ,t c pt i m 吨m e c h a i l i s mh a v ei m p o r t a i l ti i l f l u e n c e d e 蹦t e l yo nn e 咖r kp e 面i i n a i l c e 疗o mm eb e g i n n i n go fe s 诅b l i s h j n gat c p c o n n e c tu s i n g t 1 1 et l i r e es t e ph a n d s h a l 【ep r d c e d u r c1 1 1 1 t i lt l 。锄do fc a n c e l 缸g 也ec o n n e c t ,也ep a n i c i p a t i o n o ft c pt i m e r si sr e 删r e di n 恤w h o l ep r o c e s s s ot l l a tt l l et c p t i m i n gm e c h a l l i s mi nat o e n e tc a r di sd e 丘i l i t e l y 妇p o r t a n t o n l yt h ec o 玎e c tw o r ko fm et c pt i m m gm e c h a l l i s mc 锄 g u a m n t e t l l en o r i n a lr u n n i n go f t c p a g r e e m e n t i na d d i t i o n ,t o en e ta c r d sa r eu s u a l l y1 1 s e di nm eh i 曲p e r f e m a n c ee n ds e v e r si nah i 曲 s p e e dn e t w o r ke n v i r o 衄e n t s o ,t h et c pt i m i n gm e c h a n i s mi na t o ec a r di st os o m ee x t e n t d j 厅:r e n tf 而mt h a tw ec o m m o n l yu s e db e f o r e f o re x a m p l e ,i fw es t i l lu s et h em ec o m m o n l y u s e dt c pt i m i n gm e c h a n i s m 、v i t l l o u ta n ye i d l a i l c e s ,伍en e t 、v o r kw i l lt os o m ee x t e n tb e c o m e t ob em o r ec o n g e s t e d t oc o u n t e r a c tt l l i s ,a mi m p r o v e ds e l fa d a p t i v er t oe s t i m t ea l g o r i t mi s p r e s e n t e di nt h i st h e s i s t h ea l g o r i t mw a ss i m u l a t e du s i n gn l en s 2s i m u l a t i o n 幻o l ,a 1 1 dt h e p e r f o m l a n c ep r o m o t i o n o v c rt l l ec o 咖o n l yu s e dt c pr e t r a n s m i s s i o nt i m e ri sv e r i f i e d k e y 、v o r d s :t o e t c p t i m i n gm e c h a n i s m t c pt i m e rr e 仃a n s m i tt i m e r 国防科学技术大学研究生院学位论文 图目录 图1 1c p u 处理能力与需要处理的t c p 数据量比较( i n t e l2 0 0 2 ) 2 图1 2a d a p t e cn a c 与i n t e l 传统n i c 性能比较3 图2 1t o e 软件系统简单示意图9 图2 2 硬件系统功能简单示意图一1 1 图3 1t c p 状态转换图1 4 图3 2t c p 三次握手图一l5 图3 3t c p 四次握手图一1 6 图3 4 网络拥塞图1 9 图3 5 重传定时器设置关闭情况之一。2 3 图3 6 重传定时器设置关闭情况之二。2 4 图3 7 重传定时器设置关闭情况之三2 4 图3 8 重传定时器设置关闭情况之四一2 5 图3 9 延迟a c k 定时器设置关闭情况之一2 7 图3 1 0 延迟a c k 定时器设置关闭情况之二2 7 图3 1 1 延迟a c k 定时器设置关闭情况之三2 8 图3 1 2 延迟a c k 定时器a t o 的计算2 9 图3 1 3 零窗口探测定时器设置与关闭情况图3 0 图3 1 4 零窗口探测定时器的超时值设置示意图3 0 图3 1 5 保活定时器的超时值设置示意图3l 图4 1 定时器“时钟”算法示意图3 6 图4 2 连接建立a c k 定时器超时处理流程图3 7 国防科学技术大学研究生院学位论文 图4 3 保活定时器超时处理流程图3 9 图4 4 硬件模块定时器事件结构示意图4 l 图4 5 硬件模块超时定时器事件结构示意图,4l 图4 6t c p 定时器事件处理模块示意图4 3 图5 1t c p 往返时间概率密度函数一4 8 图5 2 仿真拓扑结构5 2 图5 3 算法局限性之一:偏差和权重不合适5 3 图5 4 算法局限性之二:r t t 的比较5 3 图5 5 算法局限性之三:i 己1 t 下降时的r t o 预测错误5 4 图5 6 改进算法前后r t o 预测的不同5 4 国防科学技术大学研究生院学位论文 表目录 表2 1t c p 卸载方式6 表2 2t o e 网卡部分性能指标1 0 表4 1 硬件实现方案的空间占用计算表4 4 表4 2 硬件实现方案的时问占用计算表4 4 表4 3 定时器软硬件实现比较4 5 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:至q b 生盟星吐扭劐啦盈窥盏塞墨 学位论文作者签名:至虹 日期:埘年f l 月js 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借闯;可以将学位论文的全部或部分内容编入有关数据库进行检索 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:! 鱼垦主! 里廑吐扭剑啦婴宝当塞塑 学位论文作者签名 作者指导教师签名 元删莹 鹫耄戈 日期:鼻p 月五日 日期:冽午p 月,( 日 日期:枷s 年c2 月l r 日 国防科学技术大学研究生院学位论文 第一章绪论 随着网络技术,尤其是光纤技术的快速发展,光纤通信网络正迅速成为主要的网络 传输手段,使网络带宽不断提升。网络应用的性能需求表现为高吞吐量、低延迟、高带 宽、低主机开销和低存储开销等特点【l 】。有关研究表明处理1 b p s 的网络信息大约需要 l h z 的c p u 性能【2 】,因此当1 0 0 m b p s 以上网络出现后,网络协议处理一直占用相当多 的c p u 能力。对于万兆以太网【3 】或i n f i n i b a l l d 【4 】,主机系统上的协议处理更是成为网络 可靠传输的性能瓶颈,因此t c p 加速技术成为近年来的研究热点,其中,t o e 技术发 展较为成熟,前景广阔。 1 1 课题背景 互联网技术是上个世纪以来发展最为迅猛的技术。1 9 8 2 年至1 9 8 4 年a r p a n e t 采用 t c p ,口协议,发表了边界路由协议e g p ,发表了己n 4 2 b s d ,开始使用d n s ,联网 计算机超过lo o o 台。1 9 8 7 年m e r i t 、i b m 和m c i 开始管理运行n s n 厄t 主干网,联网 计算机超过l o0 0 0 台。1 9 9 2 年成立了i n t e m e t 协会i s o c ,第一次进行m b o n e 试验, 联网计算机超过1o o o0 0 0 台。1 9 9 5 年美国i n l m 眈商业化,n s n 忸t 主干网停止运行, 网络提供者n s p 和i s p 在网络接入点n a p 进行交换。2 0 0 3 年6 月美国国防部决定在整 个部门中部署i p v 6 ,计划到2 0 0 8 年实现从,v 4 到6 的完全过渡。短短二十几年内, 因特网( i m e m e l ) 从出现迅速发展到如今的巨大规模,2 l 世纪将是互联网为基础的信息时 代。 互联网的发展主要动力来源于两个方面:微电子技术的进步带来的电子计算机技术 的发展和t c m p 协议族的标准化【2 4 1 。t c m p 协议族的出现早于互联网,1 9 7 4 年,n t o n g c e r f 和k a l l l l 合作开发出最早的t c p f 传输控制协议) 协议雏形,随后的几年里,又从中 分离出路径控制和全球地址功能,作为独立的i p 协议重新定义,新的t c p 中剩下了由 端口号形成的进程问通信和重发控制功能,从此诞生了t c p i p 。t c p i p 协议族经过多 年的考验后,成为i n t e m e t 网络协议的实际标准,已经被许多应用程序广泛应用,它的 技术优势一直保持至今,即使到了万兆以太网的环境,它也完全可以胜任。 不幸的是,随着网络带宽的迅速增长,t c p i p 协议对主机c p u 性能消耗越来越大, 在1o 1 0 0 m 每秒的速度下,多数处理器还可以处理器t c p 的负载,基本上l h z 的处理 器最多可以处理每秒1 b i t 数据传送所产生的负载,随着千兆位以太网的普及,c p u 在处 理传送数据时对t c p i p 协议所产生的负载就有些力不从心,经常产生阻塞,在图1 1 中 我们可以看到今天服务器的c p u 能力只够处理t c p 进程,而无暇顾及应用程序处理的 第l 页 国防科学技术大学研究生院学位论文 情况。主机协议处理开销已经成为系统整体性能的瓶颈。 由此,各种t c p 加速技术应运而生,主要包括校验和计算优化、协议处理加速、 减少复制、减少中断、c a c h e 优化、硬件流水与软件多线程技术实现延时隐藏等,另外 处理结构优化技术主要包括t c m p 卸载引擎( t o e ) 技术、r d m a 协议等。其中t o b 技 术是发展较成熟、前景较广阔的一种技术。它将t c p 仃p 协议族的部分或全部功能转移 到网卡上实现,与原有的操作系统无缝对接,同时与原有的网络应用程序完全兼容,尽 可能将主机处理器处理t c p 口协议族的负载降到最低,一般称使用这种技术的网卡为 t o e 网卡( 缩写为t n i c ) 。 图1 1c p u 处理能力与需要处理的t c p 数据量比较( i n t e l2 0 0 2 ) 许多大公司的t o e 产品陆续投放市场,性能表现良好,逐步得到广泛应用,例如 a d a p t e c 公司的n a c7 7 l l 系列产品支持1 0 2 4 条硬件卸载的t c p 连接,吞吐量为1 g b s 【2 j , 它与传统n i c 的性能比较如图1 2 ,这里采用一种标准的评测安装n a c 的效能是测量 p e i ( 性能效能指数) ,p e i 测量吞吐量除以c p u 的利用率,或者说每百分之一的c p u 利用率处理的数据量。p e i 越高,c p u 每个时钟周期传输的数据越多。 第2 页 嗣防科学技术大学研究生院学位论文 常复杂的工作。 t o e 网卡的设计主要包括软件系统和硬件系统两部分。其中,软件系统负责驱动 t o e 硬件设备正常工作,并为上层应用提供透明的t o e 应用支持,硬件系统t o e 加速 的主要内容有m a c 层处理、i p 报文解析和处理以及t c p 协议e s t a b i i s h e d 状态下的所 有处理过程。 在t o e 网卡的实现中,t c p 协议定时机制运行的好坏对网络传输性能有着重要的 影响。从t o e 网卡软件系统通过三次握手机制正确建立t c p 连接,到硬件模块中 e s t a b l i s h e d 状态下每个数据报文的发送和接收,最后软件系统终止t c p 连接,每一 步都需要定时机制的参与,定时机制的正确工作确保了t c p 协议的正常运行。 本课题的研究内容是如何正确高效地实现t o e 网卡中的t c p 定时机制,结合t o e 网卡软件系统和硬件系统的设计,提出了t o e 网卡中定时模块的一种实现方案,分析 了其中的关键技术和实现难点,进行了性能分析和比较。同时针对传统t c p 重传定时 器在高速网络下的缺陷,提出一种改进算法。 1 3 论文的组织 根据上述研究内容,论文总共分为六章,各章内容如下: 第一章介绍本课题的有关背景知识。 第二章介绍t o e 网卡的整体设计,包括t o e 网卡的硬件实现方式、t c p 协议的卸 载方式,以及t o e 网卡软件系统和硬件系统的实现方案。 第三章介绍了t c p 协议中与定时机制有关的工作原理,以及t c p 协议中涉及的七 种定时器的工作机制。 第四章主要介绍了t o e 网卡中t c p 定时机制的实现,包括软件系统中涉及的定时 机制的实现方案和硬件系统中涉及的定时机制的实现方案。 第五章介绍了高速网络下对重传定时器i 盯o 估计算法的研究,并将改进后的算法 与之前的传统算法通做了性能比较。 第六章进行总结和展望。 最后是结束语和致谢。 1 4 课题的研究成果 在本课题的研究中主要取得了如下成果: 1 结合l i n u ) ( 2 _ 4 1 8 的源代码,深入分析了t c p 坍议中定时机制的实现算法及相 关机制,同时分析了在高速网络的应用环境下传统t c p 定时机制中各算法的缺陷。 第4 页 因防科学技术大学研究生院学位论文 卡的驱动程序。t o e 网卡驱动程序提供对网卡硬件的读、写、控制操作,向上层屏蔽网 卡的硬件细节,处理报文接收中断、报文发送中断、与链路接口相关的中断、与网卡资 源使用情况相关的中断以及网卡通告特殊报文接收事件( 如r s t 、f i n 报文) 的中断等, 并根据中断处理各种异常情况,维护连接。对于t o e 报文,网卡和驱动层之间传送的 数据既不是m a c 帧,也不是简单的s k - b u f f 结构,传送的数据中携带了一些信息比如 报文所属连接块、报文所属设备号、报文类型、紧急数据指针等,驱动层和网卡通过这 些信息交互后才能正确处理数据。 b s ds o c k c t s 0 c k e t , 层 t o es o c k e t -,、 、 网络 t o e i r 喊s f a c ki n c ts f a c k 协议栈 +i _ t o e n e l c o r e n e t c o r e l ,2 。,。l l 麓嚣1 i 瑚。;s r 4 t 1 t o e m c 蹦v c r f 州c 蹦v a 篡 t c i e 设备部分非t o e 设备部分 2 2 1 数据通道 图2 1t o e 软件系统简单示意图 如上图2 1 ,送入t o e 网卡软件系统的数据有四个流动方向,即数据通道,在图中 分别用,l 、2 、3 、4 标示。 数据通道1 表示已达e s t a b l i s h e d 状态,需要经过和已经经过t o e 网卡处理的 报文在系统中的传输路径。当连接的控制报文经过数据通道2 建立连接以后,在 e s t a bl i s h e d 状态下所有数据报文的接收和发送全部经过数据通道1 传输,当连接转 为其它状态时,报文不再经过该数据通道。 数据通道2 表示还未达e s t 状态的t c p 报文和t c p 控制报文在系统中的路径。当 第9 页 国防科学技术大学研究生院学位论文 应用程序希望使用t o e 网卡并开始建立连接时,t c p 控制报文从数据通道2 中传输, 当连接建立完毕以后,被卸载到t o e 网卡上,同时系统中保存该连接的s o c k e t 结构以 及在硬件中该连接的索引,连接状态转为e s t a b l i s h e d 状态,该状态下所有数据报文 不再经过数据通道2 传输。当连接接收到f i n 报文或者本地应用程序准备撤销连接时, 发出的控制报文又将经过数据通道2 传输,直至连接撤销。 数据通道3 表示由t o e 网卡处理的非t c p 报文在系统中的路径。当传输的报文是 u d p 、i c 瑚p 等非t c p 报文,通过d i s p a t c h e r 识别并将该报文送入传统传统t c m p 协议 栈。 数据通道4 表示由非t o e 网卡处理的报文在系统中的路径。如果应用程序设定t c p 连接不需要经过t o e 网卡处理,那么连接的建立关闭以及t c p 数据的接收发送过程都 与传统t c m p 协议处理流程一样。 2 3 1 性能指标 2 3t o e 网卡的硬件实现 目前,已经有为数不多的厂家研制出了针对千兆网络的t o e 千兆网卡,为了适应 以后网络带宽的飞速发展,并结合我们设计的r 0 e 网卡的实际应用环境,我们将现在 设计的t o e 网卡定位为万兆以太网卡,部分性能指标如下表2 2 : 表2 2t o e 网卡部分性能指标 性能项 指标 网络接口1 0 g 以太网接口 介质光介质 系统总线6 4 位p c i e 总线 支持l i n u x 内核 l i n u x2 4 18 可同时卸载t c p 连接数1 k 以上 2 3 2 整体设计方案 t o e 网卡硬件主要包括几大逻辑模块:i p 处理模块、t c p 协议处理模块、d d r 控 制器以及p c i e 接口控制模块等,各模块之间的主要联系如下图2 2 所示。其中,i p 处 理模块主要处理i p 报文的封装和解封:t c p 踟议处理模块处理t c p 协议e s t a b l i s h e d 状 第l0 页 国防科学技术大学研究生院学位论文 态下的所有报文处理过程,主要包括报文接收过程和发送过程;各模块之间的通信采用 公共队列传递事件消息,各模块的有限状态机控制事件消息的消费和产生。 t o e 网卡中,t c p 协议处理模块是最重要、最复杂的一部分,该模块将处理t c p 协议的几乎所有过程,包括数据传输、定时器管理以及错误与拥塞控制,它的子模块包 括输出处理模块、输入处理模块、定时事件处理模块等。 输出处理模块将要发送的数据封装成t c p 报文,交给i p 处理模块,另外它还负责 发送零窗口探测报文等控制报文。输入处理模块主要分成两部分,一部分负责处理接收 到的数据,另一部分负责处理接收到的a c k 和各种选项。定时事件处理模块负责各种 定时器超时后的处理,比如重传定时器超时后,调用输出处理模块重发报文。 一圆l = 曝荔西嘲 同开通洄 i 婴n 囊j 匝垂y l 划 匮置懂狰 糊 皇 】辅l 定球封糖弼嫩严丹获 1 燮h 警i 巍厦网 口魁理瞧央 。一u r 面蒜叫匦影 磁口拦弗l # 羹块 图2 2 硬件系统功能简单示意图 2 5 小结 本章是为后继章节的叙述作铺垫,主要介绍了t o e 网卡的整体设计,从t c p 协议 的卸载方式到软件系统和硬件模块的实现,对每部分的实现和作用做了简明扼要的描 述,展现了t c p 协议定时机制的工作环境。 几倒 几h 国肪科学技术大学研究生院学位论文 第三章t c p 协议的定时机制 t c p 协议处于应用层和i p 层之间,可以看作应用程序和网络操作的中介物之一。 t c p 协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,即使在网络 出错或拥塞的情况下,也能保证通信的可靠性,为两台计算机之间提供可靠无差错的、 可流控的、全双工的信息流传输服务。 t c p 协议是t c 肌p 协议族中应用非常广泛的一个协议,它的特性使得许多需要长 时间可靠传送大文件的应用及环境都选择使用t c p 协议: 文件服务 。网络直连存储( n a s ) 高性能技术计算 i p 存储 高端备份与恢复 视频编辑 在t ( ) e 网卡的设计中,t e p 协议处理模块是最复杂的模块,其中t c p 协议的定时 机制又是其中比较复杂的部分之一,它涉及到t c p 协议的许多工作原理,比如连接的 建立和终止、确认和超时重传机制、拥塞控制机制、零窗口探测机制以及保活机制等。 为了设计出正确可靠的t o e 网卡,必须彻底了解t c p 协议的工作原理。 因此,本章详细介绍t c p 协议中与定时器机制相关的工作原理,为以后的分析和 设计莫定基础。另外,本章还分析了t o e 网卡设计中的定时机制。 3 1 相关t c p 工作机制 本小节将详细介绍t c p 协议中连接的建立和终止、延迟确认机制、拥塞控制机制、 超时重传机制、零窗口探测机制以及保活机制等工作原理,这些协议工作机制的正确执 行依赖于定时器的正常运作,为了更透彻地了解各种定时机制的算法,需要熟悉下面各 小节介绍的工作机制。 如下图3 1 所示,t c p 协议的操作可以使用一个有限状态机的理论模型作出解释3 0 】, 图3 1 描述了t c p 的有限状态机,图中的圆圈表示状态,箭头表示状态之间的转换。每 个状态转换箭头标出了是收到何种消息才进行转换以及为此送出了何种消息。虚线表示 服务器端的转换过程,实线表示客户端的转换过程,a p p l 表示应用程序产生操作时发生 的状态变迁,r e c v 表示收到报文段时发生的状态变迁,s e n d 表示状态变迁过程中发出的 内容。 第1 2 页 国防科学技术犬学研究生院学位论文 下面对图中各个状态变迁的过程作简单的描述。首先,说明主动打开t c p 连接过 程中的状态转换,源主机应用程序发出主动打开命令,发送s y n 报文给目的主机,t c p 连接状态由c l o s e d 转为s y ns e n t ,目的主机在收到s y n 报文后会发出s y n + a c k 报文给源主机,源主机接收到这个报文后状态变迁为e s t a b l i s h e d ,同时发送a c k 报文给目的主机,然后在这个状态下进行数据传输,直至关闭。其次,说明被动打开 t c p 连接过程中的状态转换,某主机接收到一个s y n 报文,说明其他主机想和它建立 t c p 连接,此时该主机发送s y n + a c k 报文给源主机,状态由l i s t e n 变为s y nr c v d 等待接收源主机发送的a c k 报文,接收到a c k 报文后,状态变迁到e s t a b l i s h e d , 在这个状态下与源主机进行数据交互,直至关闭。 当要关闭t c p 连接时,关闭发起一方的应用程序发出关闭命令,发送f n 报文给 被动关闭一方主机,同时状态由e s t a b l i s h e d 变为f i n a i t1 ;被动关闭一方主机 收到f 报文后,通知应用程序关闭,发送a c k 报文给关闭发起方,同时状态由 e s t a j 3 l i s h e d 变为l a s ta c k :关闭发起方在接收到a c k 报文后由f i nw a i tl 转 为f i nw a i t2 ;被动关闭一方的应用程序在执行关闭命令后,发出f i n 报文,t c p 连 接状态转为l a s ta c k ,等待主动关闭一方的回应;主动关闭方收到f 玳报文后状态 由f i nw m t2 变为t i m ew a j t ,发送a c k 报文;被动关闭一方接收到这个a c k 报 文后,状态转为c l o s e d ,即t c p 有限状态机的起始点,等待主动打开或被动打开: 主动关闭方在转为t m ew a r r 需要等待2 倍m s l 时间才能转到c l o s e d 状态,m s l 时间是指一个旧报文段在网络上能存在的最长时间,使用这个等待是为了避免被动关闭 一方的f 矾报文使主动关闭方的一个新连接( 使用同样端口号,源主机目的主机一样) 关闭。 第l3 页 国防科学技术大学研究生院学位论文 任何数据以及其他信息,它只是对某个报文的确认,它的数据传输效率为零。其次它加 重了协议处理负载,单纯的a c k 报文也是一个完整的t c p 报文,它必须经过物理层、 i p 层和t c p 层的处理,当网。班私褰誉 x 国防科学技术大学研究生院学位论文 对这些算法的分祈为第四章中叙述t o e 网卡中定时器的具体实现打下基础。 3 2 1 重传定时器 重传定时器是t c p 协议中最重要的一个定时器,重传定时器的使用贯穿了t c p 连 接的整个生命周期。连接的大部分控制报文和e s l a b l i s h e d 状态下的所有数据报文发 送时都需要启动重传定时器,超时重传机制和确认机制共同保证了t c p 协议的可靠性, 同时也对拥塞控制机制中起到重要的作用,重传定时器r t o 的估计算法在一定程度上 决定了是否使用拥塞控制机制,影响网络吞吐率。 下面从重传定时器的启动和关闭以及超时值r t o 的估计算法两方面描述重传定时 器。 3 2 2 1 重传定时器的启动与关闭 连接的s y n 报文、f i n 报文等控制报文和e s l 纰l i s 艇d 状态下的所有数据报文 发送时都需要启动重传定时器,超时时间设定为当前的r t o 值。如果在超时时间内收 到相应a c k 报文,关闭重传定时器,否则关闭重传定时器并触发定时器超时处理。 下面介绍e s t a b l i s 脏d 状态重传定时器启动和关闭的四种情况。 注:正常情况下,一个r t o 时问段内发送了一个或多个报文,并且 a c k 在r t o 内返回 图3 5 重传定时器设置关闭情况之一 图3 5 表示在网络运行正常的情况下,负载较轻时,对每一个发送的报文都能接收 第2 3 页 定时器。 报文时,关闭重传 接收方 蜃三 甜舭下,竺嚣揣磐旷棒丈 图3 7 重谨定对器设置关闵情赃三 桎 国防科学技术大学研究生院学位论文 图3 7 表示在网络拥塞的情况下,负载较轻时,重传报文的情况。当发送一个报文 以后,在r t o 时间段内,没有收到相应a c k 报文,因此触发定时器超时处理,重传该 报文,再次启动重传定时器,直到在r t o 时间内收到a c k 报文,才能关闭重传定时器。 注: 拥塞情况下,一个r t o 时间段内发送多于一个报文 但a c k 没有在盯o 内返回 图3 8 重传定时器设置关闭情况之四 图3 8 表示在网络拥塞的情况下,负载较重时,重传报文的情况。在一个r i - o 时间 段内如果发送窗口较大,可以连续发送多个报文,这时,重传定时器在第一个报文发送 时启动。如果在r t o 时间段内没有收到相应a c k 报文,重传第一个报文并再次启动重 传定时器,当在r t o 时间段内收到相应a c k 报文后,如果存在未收到确认的报文,将 再次启动重传定时器为未收到确认的报文计时。 3 2 2 2 重传定时器超时值r t o 的计算 在t c p 协议的七个定时器中,定时器的超时值大部分都是固定的,只有重传定时 器、延迟a c k 定时器和零窗口探测定时器的超时值是变化的,它们的取值依赖于连接 上测算得到的r t t ( r o u n dt i m et f i p ,往返时间) 。 重传定时器的超时值r t o 依赖于连接上测算到的往返时间r t t 。如果估算的r t o 太小,响应报文到达前发生超时,造成不必要的重传;如果过大,在报文段丢失之后, 发送重传报文之前将等待一段额外的时间,降低了系统效率。 根据r f c 2 9 8 8 ,传输控制协议的发送方需要使用该算法来计算和维护它们的重发定 时器,它扩展了r f c1 1 2 2 的第4 2 3 1 节的讨论,并把支持该算法的要求从应该升级到 必须。基本算法如下: 要计算当前的r t o ,t c p 发送方需要维护两个状态变量,s i m ( 平滑往返时间) 第2 5 页 国防科学技术大学研究生院学位论文 和r 兀r ( 往返时间变量) 。另外,我们假设一个时钟间隔g 秒。 规定计算s r r r 、r 1 t 惜r 和r t o 的法则如下: 1 ) 在对一个收发双方之间所发出的一个段完成往返时间( r 订) 测量之前,发送 方应该将r t o 设置为3 秒( 见r f c1 1 2 2 【b m 8 9 】) 。 2 ) 当完成第一个r t t 测量r 时,宿主杌必须设置 s 肿 - r r :r r r k e e p o p e n 置位, 启动保活定时器:此后,在e s t a b l i s h e d 状态接收发送报文时并不关闭重启定时器,当两 小时的时限到来后,调用t c p _ k e 印a l i v ;j i m e 哟,检测当前时间t c p - t i m e t 锄p 与上次 接收到a c k 的时间印 r c v _ 眦珊p 的差值,如果差值大于等于2 小时,发送探测报文, 如果小于两小时,则以2 小时减去差值为超时值重启保活定时器,超时值设置如图3 1 5 : 2 小h 寸( t c p j m i _ s t m p _ 图3 1 5 保活定时器的超时值设置示意图 用户通过s e t s o c k o p t o 和s e t s o c k o p t ( ) 函数获取和设置套接口选项,其中包括 s o :e p a l i v e 。如果设置该选项,那么处于e s l a b l i s h e d 状态的t c p 连接2 个小 时内没有数据交互,t c p 连接会发送保活探测报文,对方必须响应该报文,分四种情况: n ) 对方主机依然正常运行,并且可达。 ( 2 ) 对方主机已崩溃,并且关闭或者正在重新启动。 f 3 谢方主机崩溃,并且已经成功启动。 ( 4 ) 对方主机依然正常运行,不过网络不可达。 情况f 1 ) 下,应用程序不会感觉到保活探测的发生,这由t c p 协议负责处理。情况 ( 2 ) 、( 4 ) 下,发送保活探测的t c p 连接在持续1 0 次左右探测后,会返回超时。应用进程 第3 l 页 国防科学技术大学研究生院学位论文 的r e a d 操作会返回超时,关闭t c p 连接。情况( 3 ) 下,会返回r s t 报文,应用进程的r e a d 操作会返回“对方己关闭连接”。 f i nw a l l - 2 定时器: 当t c p 连接从f i nw a i tl 状态变迁到f i nw a l l r2 状态时,并且连接不再接收 任何新数据,f m ,a 1 1 定时器被设定为l o 分钟,这样可以防止连接永远停留在 f i n - w a r r2 状态。处于f i nw 1 1 2 状态,说明应用进程调用c l o s e ,连街上的所有数 据都已发送并被确认,f i n 已被对端确认,t c p 等待对端应用进程调用c l o s e ,如果对端 进程永远不关闭它的连接,本地t c p 将一直滞留在f i nw a i l 2 状态,所以需要设定 f i n 、7 l j = a i t2 定时器防止这种情况的发生。 2 m s l 定时器: 当t c p 连接转移到t i m e _ w 舡t 状态,2 m s l 定时器设定为6 0 秒,这个时间值是 一个数据包在网络上可能存活的最长时间的两倍,只有过了这个时间以后,一个t c p 连接的f w u t 状态才能到达c l o s e d 状态。否则,如果连接的本地一方已经发出 了一个a c k 报文响应对方的f 玳报文,但它并不知道这个a c k 报文段是否被成功传 递了,那么另一方可能又重发了一个f 烈报文,而这第二个f 玳报文可能在网络中被延 迟了,如果允许连接直接转移到c l o s e d 状态,那么另一对应用进程可能会打开同一 个连接( 如使用了同一对端口号) ,且前面连接实例中被延迟的f i n 报文这时会使后来 的连接实例终止。 超时值的大小除了可以设定为6 0 秒外,还可以取其他的值,这个值与哟的大小有 一定的关系。 3 6 小结 本章主要介绍了l i n u ) ( 2 4 1 8 中t c p 协议中七种定时器的启动和关闭算法,并分 析了各个定时器超时值的设定。 为第四章中叙述t o e 网卡中定时器的具体实现打下基础。 第3 2 页 国防科学技术大学研究生院学位论文 u m er _ | 随o i 随 “p d a l a v o i d ( 劬c t i x s

温馨提示

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

评论

0/150

提交评论