




已阅读5页,还剩75页未读, 继续免费阅读
(通信与信息系统专业论文)sctp多流优先级的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 中文摘要 摘要:随着硬件技术和网络通信技术的快速发展,终端用户经常会通过互联网获 得多媒体形式的网络服务。例如,网页浏览、即时消息通信、视频聊天等。这些服务 往往对带宽十分敏感,且在同一次服务中需要从服务器获取多种类型的数据。但在低 带宽情况下网络无法为所有类型的数据提供足够的带宽,因此网络服务器需要提供一 种将不同类型数据并行且高效地传输到终端用户的方法,同时在低带宽情况下该方法 仍能够提供令人满意的服务质量。 流控制传输协议( s t r e a mc o n t r o lt r a n s m i s s i o np r o t o c o l ,s c t p ) 是面向连接,提供 可靠数据传输服务的传输协议,它的多流多宿特性非常适合于上述的多媒体网络服 务。本文基于对l i n u x 内核中s c t p 源代码的分析,针对低带宽引起的高传输延迟情 况,提出了一种基于s c t p 的多流优先级传输优化方案,并将其实现。本方案利用s c t p 的多流特性,将同一s c t p 关联中的多个逻辑流赋以不同的优先级,并根据优先级将 这些逻辑流对应到若干优先级队列中,随后通过优先级调度算法使其出队并发送出 去,从而保证了重要数据能够在低带宽情况下以较低的延迟发送到接收方。为了满足 应用程序对优先级队列的不同要求,本文实现了两种可选的调度算法:优先级队列调 度算法、加权循环队列调度算法。 为了验证方案的有效性和可行性,本文还设计并实现了基于s c t p 多流优先级的 w e b 网页浏览服务。主要完成了两项工作:首先,修改了a p a c h ew e b 服务器和f i r e f o x 浏览器源代码以实现对s c t p 的支持,为了提高基于s c t p 的网页浏览性能,使用多 线程技术来处理同一个s c t p 关联的各个逻辑流中的数据。该工作有效地避免基于 t c p 的传统网页浏览中存在的队头阻塞、s y nf l o o d i n g 攻击等问题。其次,设计并实 现了将多流优先级特性引入到网页浏览服务的方案。在低端到端带宽情况下,基于 s c t p 的多线程网页浏览产生的数据交织将大幅增加浏览器用户的等待延迟。通过第二 项工作,用户等待延迟被有效地降低了。 关键词:s c t p :多流优先级;l k s c t p :队列调度算法 分类号:t n 9 1 5 0 4 ;t p 3 9 3 0 4 北京交通大学硕+ 学位论文 a bs t r a c t a b s t r a c t :w i t ht h es t e a d yi m p r o v e m e n to fh a r d w a r et e c h n o l o g ya n dn e t w o r k c o m m u n i c a t i o nt e c h n o l o g y , e n du s e r sa r ea c c u s t o m e dt oo b t a i n i n gt h em u l t i m e d i an e t w o r k s e r v i c e st h r o u g ht h ei n t e r n e t ,l i k ew e bb r o w s i n g ,i n s t a n tm e s s a g i n g ,v i d e oc h a te t c h o w e v e r , t h e s es e r v i c e sa r eo f t e nb a n d w i d t h - i n t e n s i v e ,a n dn e e d e dt og e tv a r i o u sd a t af r o m s e r v e ri nas i n g l es e r v i c e h o w e v e r , t h en e t w o r kc o u l d n tp r o v i d ee n o u g hb a n d w i d t hf o ra l l k i n d so fd a t ai nt h ec a s eo fl o wb a n d w i d t h ,s ot h en e t w o r ks e r v e rn e e daw a yt ot r a n s m i t m u l t i p l e d a t ai n p a r a l l e l ,w h i c ha l s oe f f e c t i v e l yr e s p o n dt op e r i o d so fi n s u f f i c i e n t b a n d w i d t h s c t pi sar e l i a b l e ,c o n n e c t i o n - o r i e n t i e dt r a n s p o r t p r o t o c 0 1 i t sm u l t i h o m i n ga n d m u l t i s t r e a m i n ga r ev e r ys u i t a b l ef o rt h e s et y p e so f m u l t i m e d i an e t w o r ks e r v i c e s b a s e do n t h ea n a l y s i so ft h es o u r c ec o d e o fs c t pi nl i n u xk e r n e l ,t h i sp a p e rp u r p o s e sa n o p t i m i z a t i o nt os c t pf o rh i g hd a t at r a n s f e rd e l a yi np e r i o d so fl o wb a n d w i d t ha v a i l a b l e , a n di m p l e m e n ti t b a s e do nt h em u l t i s t r e a m i n go fs c t p , t h es c h e m ea s s i g na p r i o r i t yv a l u e t oe a c hl o g i c a ls t r e a mi ns c p ta s s o c i a t i o n , a n dt h e np u tt h ed a t ao fp r i o r i t i z e dl o g i c a l s t r e a mt oc o r r e s p o n d i n gp r i o r i t i z e do u t p u tq u e u e f i n a l l y , w es c h e d u l et h e s eq u e u e sw i t h s c h e d u l i n ga l g o r i t h m s ,w h i c hc o u l de n s u r et h et r a n s m i s s i o no ft h em o r ei m p o r t a n td a t aw i t h l o w e rd e l a yw h e nl o wb a n d w i d t hi sa v a i l a b l e i no r d e rt om e e tt h ed i f f e r e n tr e q u i r e m e n t so f a p p l i c a t i o n sf o rp r i o r i t i z e ds c t ps t r e a m s ,t h ep a p e ri m p l e m e n tt w oo p t i o n a ls c h e d u l i n g a l g o r i t h m :p r i o r i t i z e dq u e u es c h e d u l i n ga n dw e i g h t e dq u e u ea l g o r i t h m i no r d e rt ov e r i f yt h ee f f e c t i v e n e s sa n df e a s i b i l i t yo ft h es c h e m e ,t h i sp a p e ra l s o i m p l e m e n tak i n do fw e bb r o w s i n gs e r v i c eb a s e do np r i o r i t i z e ds c t ps t r e a m s f o rt h a t ,i d i dt w oj o b f i s to fa l l ,im o d i f i e dt h es o u r ec o d eo fa p a c h ea n df i r e f o xt ol e tt h e m c o m m u n i c a t ew i t he a c ho t h e ri ns c t p , a n du s em u l t i t h r e a d i n gt oi m p r o v et h ep e r f o r m a n c e o fw e bb r o w s i n gb a s e do ns c t p t h ef i r s tj o bs u c c e s s f u l l ya v o i dh o l ,s y nf l o o d i n g a t t a c ki nt r a d i t i o n a lt c p b a s e dw e b b r o w s i n g s e c o n d l y , id e s i g na n di m p l e m e n t as c h e m e t ou s i n gp r i o r i t i z e ds c t ps t r e a m sf o rw e bb r o w s i n g h o w e r v et h em u l t i t h r e a d i n gw e b b r o w s i n gb a s e do ns c t pw i l lc a u s ed a t ai n t e r l e a v i n g ,w h i c hc o u l dd e l a yo fu s e rw a i t i n g w h e nl o we n d - t o e n db a n d w i d t ha v a i l a b l e t h es e c o n dj o bd e c r e a s et h ed e l a yo fu s e r w a i t i n g i nd a t al e a v i n g k e y w o r d s :s c t p ;p r i o r i t i z e ds c t ps t r e a m s ;l k s c t p ;q u e u es c h e d u l i n ga l g o r i t h m c l a s s n 0 :t n 9 15 0 4 :t p 3 9 3 0 4 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特授权 北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影 印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或 机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 、争工当 导师签名: 嘶 f ; 签字日期:钐年6 月侈日签字日期: 口睁占月i je l 北京交通大学硕士学位论文 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究 成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意。 学位论文作者签名:幸蹭 签字日期: 夕莎年月多日 7 4 致谢 本论文的工作是在我的导师周华春副教授的悉心指导下完成的,周华春副教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢两年来周华 春老师对我的关心和指导。 张宏科教授悉心指导我们完成了实验室的科研工作,在学习上和生活上都给予了 我很大的关心和帮助,在此向张宏科老师表示衷心的谢意。 秦雅娟副教授对于我的科研工作和论文都提出了许多的宝贵意见,在此表示衷心 的感谢。 在实验室工作及撰写论文期间,杨东、王博等同学对我论文中的提出了宝贵的意 见并对我的研究工作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我的家人和朋友,他们的理解和支持使我能够在学校专心完成我的学 生k 。 引言 1 引言 1 1 研究背景及意义 最初的互联网,是提供“尽力而为”服务的分组交换网络,它主要支持f r p 、e m a i l 、 h 们限等传统数据业务,这些业务对网络延时要求不高。随着计算机硬件和网络通信 技术的快速发展,用户终端的处理能力变得更强同时价格更加地便宜。互联网已经具 备了处理更加高级的业务的能力。在一些已经出现的新业务中,有一些业务需要在一 次网络服务中包含多种服务内容。例如在一次w e b 网页浏览中,网页中可能在内嵌了 流媒体数据的同时,也包含有文本、图片等数据。这些业务的共同特点是既包含有对 时延比较敏感的,需要足够端到端带宽来保证令人满意的服务质量的重要数据( 如流 媒体数据) ,也包含了对时延不敏感的普通数据( 如文本数据) 。但是由于网络有时不 能提供足够的端到端带宽,所以无法使所有类型数据都能获得令人满意的服务质量, 主要的原因如下: 1 在整个端到端传输路径上,某些节点会有流量过大而出现拥塞的可能。这时数据 包的丢弃会导致面向连接的数据传输速率下降; 2 对于通过无线方式接入的终端设备来说,设备本身的信号强度,以及在无线接入 点范围内包含了过多的无线设备,都会影响这些无线设备的可用带宽; 3 服务器或客户端节点处于高负载状态( 特别是服务器端) ,都会影响整个端到端服 务所能获得的带宽; 4 网络( 例如一些企业内网) 中可能会使用一些用于限制用户可使用带宽的流控设 备。 正是这些原因使得在低的端到端带宽情况下,服务的请求响应等待时间过长,从 而影响了用户的服务质量。对不同类型的数据传输提供不同的服务质量保证,是解决 这一问题的有效手段和重要途径。 。 2 0 0 0 年,s i g t r a n 工作组将s c t p 作为正式的i n t e m e t 标准( r f c 2 9 6 0 ) 提交给 m t f f 。最初这个协议的提出是为了解决使用i p 网络来传输s s 7 信令,但由于其多流 多宿等特性,s c t p 已经成为了具有广泛适用性的传输协议并得到业界的广泛关注。 2 0 0 7 年,s c t p 已被更新为r f c 4 9 6 0 。在此期间出现了大量的草案标准对s c t p 的各 个方面进行了完善。近几年,业界已拟将s c t p 作为下一代网络的主流传输层协议用 以取代t c p u d p 。s c t p 是面向连接的,在一次连接建立的过程中,会产生若干个相 互独立的逻辑流,每个逻辑流能够以数据块( c h u n k ) 为单位相互独立且按序地递交给 目的端,同时所有的逻辑流还可共享一套拥塞控制参数。因此s c t p 的这种多流结构 北京交通大学硕士学位论文 非常适合用于同时传输多种类型的数据,而且会非常地高效。但现有的s c t p 协议在 发送端公平地对待s c t p 关联中的多个逻辑流,这样无法实现在网络资源受限情况下, 对含有重要数据的逻辑流的优先发送,因此如果能够将s c t p 关联中的逻辑流赋以优 先级的特征,给重要数据赋以较高的优先级,并将其优先地传递到网络巾去,将有效 地降低重要数据的传输延迟,从而在端到端带宽有限的情况下,也能为用户提供可以 接受的服务。 s c t p 多流优先级的实现,本质上是在传输层中实现了一种对不同类型数据提供不 同服务质量保证的q o s 控制技术。 日前,在实际网络中已经开发和使用了多种类型的q o s 控制技术。这些技术对应 于分层体系结构中的各个层次。但由于实现的层次和采用的技术不同,其效果也是不 一样的【3 。 在数据链路层,主要完成的功能是实现对物理介质的接入控制,网络可以通过用 户申请服务时协商的q o s 参数对业务流量进行q o s 控制,主要的q o s 参数有峰值信 源速率、最小信源速率、信源丢失率、传输时延等。 在网络层,主要完成路由选择和数据包转发服务。这种服务是通过中间节点( 路 由器) 的存储转发机制来实现的。网络层的q o s 支持机制主是通过对分组进行 区分优先级的处理来保证服务质量的,也就是说,按照优先级的不同将待发送转发的 分组分成多个不同的队列,采用特定的排队和队列调度控制机制以此来减少特定业务 流量的时延和时延抖动。 对传输层来说,它提供端到端的、面向连接的数据传输服务。通过拥塞控制参数, 传输层能够很好地了解整个端到端传输路径上的拥塞状况,这些信息使得它能够在保 证数据的正确性和有序性的基础上,最大限度的利用网络资源,提高数据的传输效率。 所以它主要完成的是端到端路径上的流量控制功能。但在t c p 中,如果要想并行地传 输多种逻辑数据,只有使用多条t c p 连接,而要想进一步地对多个数据流进行流量控 制就只有在应用层实现,但是应用层无法了解端到端路径上的拥塞情况,很难有效地 进行流量控制,同时给应用程序的设计增加了不必要的复杂性。而对s c t p 来说,多 种逻辑数据的并行传输可以通过s c t p 的多流特性来完成,这时如果再使用某种方法 能够对不同逻辑流进行有差别的流量控制就能更好地完成t c p 需要在应用层完成的 工作。给s c t p 增加这样的一个特性,将给那些需要在次服务中提供多种类型数据 的应用程序员提供很大的方便。 本文来源于国家“9 7 3 项目“一体化可信网络与普适服务体系下基础理论研 究”,其巾服务子层要求提供可控可管的服务质量保证,本文的工作正是基于此展开 的。 引言 1 2 研究现状 s c t p 是一个相对比较新的协议,主要在一些公司和大学里面开展了一些基于 s c t p 的实现和性能方面的研究。现在还没有基于s c t p 的成熟产品出现在互联网中。 目前,s c t p 已经在很多的操作系统上获得了支持,其中有一些基于开源软件项目 的形式进行的,例如f r e e b s d 下的k a m e 、l i n u x 中的l k s c t p ;以及大型商业公司基 于他们自己的系统开发实现版本,例如s u n 公司开发的基于s o l a r i s 的内核级实现、 i b m 开发的基于a i x 的可加载模块形式的实现。其中还有一部分在用户空间以动态库 形式提供给用户使用的s c t p 实现。这些实现加起来大概有2 2 种左右【1 3 】。同时值得 注意的是最近m i c r o s o f t 在它的视窗系列中也开始提供了用户空问的s c t p 实现。 与s c t p 性能方面相关的研究主要有:利用s c t p 的多宿特性来实现数据的多路 径并行传输、s c t p 在移动环境中的平滑切换、部分可靠性传输( p r - s c t p ) 、等。也 有一些基于s c t p 的多流优先级方面的研究,但大部分都是基于n s 2 上的仿真模拟, 没有基于实际系统的实现。 1 3 论文结构及主要内容 s c t p 多流优先级特性想法的提出是建立在对s c t p 文档以及实现的很好理解的 基础上。因此,本文通过对s c t p 标准的介绍和l k s c t p 实现分析引出多流优先级,最 后为了体现多流优先级特性的使用价值将多流优先级特性应用于网页浏览服务。 论文结构及其主要内容归纳如下: 第一章介绍了本文的研究背景及意义,研究现状,以及论文结构及主要内容。 第二章结合实践介绍s c t p 的基本原理,以便于在第三章中详细分析l i n u x 内核 的s c t p 实现。首先介绍了s c t p 的设计动机及其在诞生之初的不断演进过程。然后 介绍了s c t p 的多流和多宿等特性。接着介绍了一些需要用到的s c t p 报头结构和有 限状态机。由于多流优先级实现基础来源s c t p 的拥塞控制机制,因此在最后的节 中介绍了s c t p 文档中拥塞控制算法。 第三章详细分析l i n u x 内核中s c t p 的具体实现。首先介绍了s c t p 的总体架构, 以及在s c t p 标准文档中能够找到对应的一些核心数据结构。然后沿着总体架构的这 条线索,分析l k s c t p 的两大部件:状态机和智能管( s r n a r t p i p e ) 。最后介绍l k s c t p 拥 塞控制的实现。 第四章介绍基于l k s e t p 的多流优先级实现过程并搭建实验环境对其进行测试。首 先,分析多流优先级的实现原理。然后分别介绍了多流优先级特性的应用程序接口设 计和内核部分的设计。最后给出测试结果,并给出详细分析。 北京交通人学硕士学位论文 第五章将多流优先级特性应用于基于s c t p 的网页浏览服务中。为了实现这想 法,首先将将原先基于t c p 的a p a c h e 与f i r e f o x 移植到s c t p 上的方法,同时为了充 分发挥s c t p 的优势,改变a p a c h e 和f i r e f o x 的一些工作机制。然后将多流优先级引 入到基于s c t p 的a p a c h e 和f i r e f o x 中去。前部分工作有本人与所在实验室的其他同 学共同完成,本人独立完成的工作是设计并实现将多流优先级引入到其中的方案。在 文中首先对基于s c t p 的多线程a p a c h e 和f i r e f o x 的实现方法进行总体性的介绍,然 后分析将多流优先级引入的必要性及实现方案。最后给出测试结果。 4 流控制传输协议s c t p 综述 2 流控制传输协议s c t p 综述 流控制传输协议( s t r e a mc o n t r o lt r a n s m i s s i o np r o t o c o l ,s c t p ) 是一种可靠的传输 协议,它能够在两个对端之间提供可靠、有序的数据传输服务( 类似于t c p ) 并且可 以保留数据消息边界( 类似于u 】卯) 。然而s c t p 并不是t c p 与u d p 的简单叠加, 它的多流、多宿等新特性,使得它具有更高的稳定性、灵活性和可用性。本章介绍s c t p 的主要特性、重要报文结构、状态机及s c t p 中的拥塞控制算法。 2 1s c t p 发展背景 m 网络和电信网曾经是两个相互独立的网络,随着口网络的飞速发展以及电信 网提供新业务的需求,两大网络开始出现了融合的迹象。但由于两者在设计上存在着 很大的差别,很多的技术难题出现在了融合的道路上。为此i e t f 成立了信令传输工 作组( s i g n a l i n g t r a n s p 6 r t ,s i g t r a n ) ,它的主要研究课题是基于i p 网络的公共交换电话 网( p u b l i cs w i t c h e d t e l e p h o n e n e t w o r k ,p s t n ) 信令的传输,即s s 7 信令。 s s 7 信令在p s t n 网中发挥非常重要的作用,它控制着各种业务的建立、维持、 释放等重要功能。想象中,s s 7 信令在口网络中传输应该是很容易做到的,只需要简 单地将二进制的s s 7 信令消息放在像t c p 这样提供可靠服务的传输层报文就行了。但 这种想法忽略了一些重要的问题。例如p s t n 中承载s s 7 信令的信令网络提供高可靠 性的数据传输服务,而在口网络中只能提供“尽力而为”的服务。如果直接将来自于 s s 7 信令网络中的s s 7 信令传输到i p 网络中,那么s s 7 信令在i p 网络中传输过程中 就可能出现丢失、乱序、高延迟等问题。对时序要求严格的通信过程来说这些情况的 发生是致命的,将会使两个网络中的设备就不能协调一致地工作,从而导致通信过程 失败。因此必须保证当s s 7 信令在i p 网络中传输时能够获得与p s t n 网络中类似的服 务质量。为此s i g t r a n 曾经提交过一篇报告文档r f c 2 7 1 9 1 1 2 】,在这篇文档中明确指明 了在i p 网中传输s s 7 信令时所需的功能和性能需求,还阐明了s s 7 信令消息对丢包 率、延迟及安全性等方面的要求,同时还给出了信令互通的体系结构。很自然地,为 了避免重复开发s i g t r a n 曾想到现有的传输层协议来满足r f c 2 7 1 9 的要求,其中包括 t c p 、u d p 等,但由于这些协议都存在着或多或少的问题而不能完全符合s s 7 信令传 输的要求。最后还是有一个协议引起了s i g t r a n 的注意,它是由r s t e w a r t 、x i a o b i n gx i e 开发的多网络数据包传输协议( m u l t i - n e t w o r kd a t a g r a mt r a n s m i s s i o np r o t o c o l , m d t p ) ,它成为了s c t p 的原型,s c t p 中很多的设计理念都是来源于m d t p 。 但是m d t p 与s c t p 之间还是有很大的差别的,这可以从s c t p 各版草案的变中 北京交通大学硕士学位论文 看出。这些变化主要利1 l : 1 s c t p 的报文格式被重新设计,从而使得s c t p 具有很强的扩展性; 2 c o o k i e 机制被引入到了s c t p 关联建立阶段以此来避免s y nf l o o d i n g 攻击对服务 器端的影响; 3 t c p 的拥塞控制机制被引入,以及其它一些的新特性被加入到了s c t p 中,例如 连接建立过程中的流协商机制、消息分片、数据块绑定等等。 2 0 0 0 年2 月,s c t p 发生了一个非常重要的变化,即s i g t r a n 决定将s c t p 直接放 置在i p 协议之上,此举意味着需要在操作系统内核中提供对s c t p 的支持。从技术层 面上说,这将提高s c t p 的性能,同时也减少了在同一个系统中s c t p 实现的数量, 使得我们在评估互联网上的s c t p 实现的性能时变得更加的容易。但是由于在操作系 统内核中实现s c t p 具有一定的复杂性,同时需要操作系统厂商们的支持,因此直到 一年后才真正出现内核中的s c t p 实现,而l i n u x 的l k s c t p 是最早的实现的s c t p 实 现,下一章将会对其进行详细地介绍。除了技术层面的意义外,将s c t p 放置在i p 之 上,还意味着s c t p 变成了能够更快地被推广到i n t e m e t 中去,而不仪是用来传输s s 7 信令。因为协议如果能够捆绑在具有通用性的操作系统中得到支持,更多的人将会获 得使用s c t p 的机会,从而促进了s c t p 的推广。 而在2 0 0 1 年的二月,i e t f 决定将s c t p 的工作由s i g t r a n 移交给传输领域工作组 ( t r a n s p o r ta r e aw o r k i n gg r o u p m ,t s v w g ) 中去。在t s v w g 中讨论的都是一些具有普 遍意义的传输层问题,这再一次反映了s c t p 对于更广泛范围的应用价值。 随着各种新的特性被添加到s c t p 中,它已经能够作为一个具有普遍意义的传输 层协议为应用程序提供服务了,在性能上它并不逊色于t c p ,甚至在某些领域显得比 它的竞争者t c p 更有优势,冈此s c t p 有望在未来取代t c p 成为主要的提供可靠服 务的传输协议。s c t p 本身也考虑到了这样的可能性,它提供了一对一的套接口形式, 方便习惯了使用t c p 的用户方便地使用s c t p 来提供数据传输服务。目前,甚至已经 开发出了一种动态库技术,能够在不进行重新编译的情况下直接地将基于t c p 的应用 程序改变为使用s c t p 2 0 。 2 2s c t p 的主要特性 s c t p 继承了t c p 和u d p 的一些优良特性,例如t c p 的拥塞控制机制和u d p 的 消息边界等,同时s c t p 引入了多流、多宿等新特性。由于在s c t p 的设计阶段,广 泛地评估现有传输协议存在的问题和缺陷,因此s c t p 能够更好地为目前的互联网应 用提供更好的数据传输服务。而这些优势往往是通过s c t p 的新特性体现出来的。本 节将逐一介绍这些新的特性。 流控制传输协议s c t p 综述 2 2 1 多宿特性( m u t i l h o m i n g ) 在介绍s c t p 多宿特性之前,需要简单介绍s c t p 中的一个新概念:关联 ( a s s o c i a t i o n ) 。它在用于标识两个运行s c t p 的机器在通过s c t p 四次握手( 后面介 绍) 后建立的一种连接关系,并通过连接两端使用的s c t p 端口号以及绑定两端的可 用i p 地址来唯一确定。如图2 - 1 示。 s ( 1 p i p 层 链路层 s c t p l p 层 链路层 图2 - 1s c t p 关联 f i g 2 - 1s c t p a s s o c i a t i o n 对应于图2 1 中的s c t p 关联,它可以唯一地用下列有序组来表示: 【p l ,i p l ,i p 2 , p 2 ,i p 3 ,i p 4 】) 一些网络终端设备能够采用多种网络接入方式接入到网络,最普遍的例子是路由 器,信令网关,以及便携式电脑,这些设备通常被称为多宿主机。具有多个网络接口 卡不仅仅意味着主机同时具有了多个i p 地址,而且说明它能够使用多条传输路径将数 据包递送到目的端。在这一点上,多宿主机十分类似于s s 7 网络中的信令转接点( s t p ) , 每个s t p 具有多条的冗余链路,这些链路在大多数的时间里面都是空闲的( 或者只是 用于传输少数的管理信息) ,只有一条主链路在工作,当主链路出现故障而无法完成 消息传递功能时,才会启用备用链路来传输信令消息,这种冗余结构保证了s s 7 网络 具有极高的可靠性。 在建立s c t p 关联后,两个s c t p 对端( s c t pe n d p o i n t ) 会将各自可用的多个本 地i p 地址绑定在s c t p 关联的本端,这样就会产生多个i p 地址对组合而成的传输路 径,例如图2 1 中的( i p l ,i p 3 ) 、( i p i ,i p 4 ) 等。s c t p 会事先确定一条主路径( p r i m a r y p a t h ) ,其余的路径为备用路径,随后的数据传输都会默认地使用这条主路径进行,同 时s c t p 会通过发送心跳包的方式周期性地探测这些备用路径的可用性,同时保存这 些备用路径的状态信息,例如往返时间r t t 等。如果在数据传输的某个时刻主路径出 现了故障,无法发送数据了,这时s c t p 就能通过之前收集的信息寻找一条备用路径, 7 北京交通火学硕+ 学位论文 并自动将其选作主路径来进行随后的数据传输。同时s c t p 的a p i 草案【7 1 还指出,s c t p 用户可以通过指定数据传输时使用的目的i p 地址的方法来主动地选择将数据发送到 那条传输路径上去。 试想一下,如果使用t c p 在多宿主机上实现上述s c t p 提供的功能,将会是一件 低效而繁琐的事情。因为这需要用户程序员或相应的函数库在用户空间中去实现类似 s c t p 路径切换和数据传输的平滑切换等存在,在用户空间去做这些事将会很困难。 而这正是s c t p 的优势所在。 2 2 2 多流特性( m u t i l s t r e a m i n g ) 在一个s c t p 关联中,用户除了可以选择使用不同的传输路径以外,还可以通过 不同的逻辑流来发送和接收用户消息。但在用户选择不同的传输路径时,指定的是发 送s c t p 报文的传输路径,而逻辑流与用户消息( 一个s c t p 报文中可以包含多个用 户消息) 对应的。不同逻辑流的用户消息彼此独立,s c t p 只保证同一个逻辑流的消 息被按序地递交给接收端的用户。 s c t p 对端a s c t p 对端b 图2 2s c t p 多流特性 f i g 2 2s c t pm u l t i s t r e a m i n g 如图2 2 所示。它是s c t p 关联中的单向逻辑流通道,分为两种类型:输出流、 输入流。在不使用无序递交的情况下,每一个待发发送的用户消息都会被标识上一个 流标识符( s t r e a mi d e n t i f i e r , s l d ) 和一个流序列号( s t r e a ms e q u e n c en u m b e r , s s n ) ,然 后根据每个用户消息的s i d 将其放入对应的输出流队列,并在适当的时候绑定在s c t p 报文中发送出去。在接收对端这些属于不同流的用户消息又会根据s i d 被放入到对应 的输入流队列中。为了保证同一个s i d 的用户消息被按序地递交给用户,将会按照s s n 来整理输入流队列中的用户消息。在建立s c t p 关联时,两个对端会协商彼此所能使 用的输出流与输入流的流数,在之后的数据传输阶段如果使用了超过协商规定的可使 用最大逻辑流号,s c t p 将会拒绝将这个数据发送出去。 流控制传输协议s c t p 综述 s c t p 的多流特性能够有效地避免在t c p 中出现的队头阻塞( h e a d o f - l i n e b l o c k i n g , h o l ) 。同时同一个s c t p 关联中的逻辑流使用一套拥塞控制参数来进行拥 塞管理,从而使得数据传输更加的高效。在t c p 中,为了能够向同一个对端发送不同 的数据,需要建立多个t c p 连接,并且在启动和拥塞控制阶段这些连接将会同时处于 慢启动状态,这完全是没有必要的,同时也影响了数据传输效率。 目前,一些传统的应用已经开始尝试使用s c t p 来代替t c p 为它们提供端到端的 数据传输服务了。例如,传统的w e b 浏览器服务,我们将在后面详细地介绍它的实现 方法。 2 2 3一些其他新特性 s c r p 除了提供上面提到的多宿多流特性外,还提供了一些其它的特性,它们体 现了s c t p 在提高协议的安全性,可用性以及可靠性上所作出的努力。这些特性包括: 1 四次握手( f o u r - w a yh a n d s h a k e ) :传统的t c p 连接建立过程需要经历三次握手的参 数协商过程,由于t c p 服务器端在接受到了s y n 后就开始为新连接分配内存资 源,这主要体现在将相应的请求端信息保存在未完成连接队列中。服务器端如果 在短时间内接收到大量的连接请求时,由于未完成连接队列长度有限,新到来的 s y n 请求将被会被t c p 自动地丢弃,从而形成进入所谓的拒绝服务。针对于这个 问题s c t p 使用了更加细腻的四次握手,同时配合c o o k i e 认证机制有效地避免了 s y nf l o o d i n g 引起的拒绝服务。 2 消息分帧( u s e rd a t af r a g m e n t a t i o n ) :s c t p 提供面向消息的服务,每次s c t p 用户调 用相应的套接口函数来传输数据时,s c t p 都认为这是一次消息的传输服务请求, 它会将请求传输的数据作为一个完整的消息传输到对端。同时,s c t p 不对用户发 送的消息大小作任何限制。因此当消息的大小超过了m t u 的限制,s c t p 将会把 消息分解若干个较小的数据块,然后绑定、封包传输到s c t p 对端,并在到达后 由对端的s c t p 根据s c t p 报头的相应字段重新组装成一个完整的消息递交给 s c t p 用户。 3 无序递交( u n o r d e r e dd e l i v e r y ) :虽然s c t p 提供的是可靠的数据传输服务, 但协议规定可以不按消息发送的顺序来向上递交消息。这种特性在面向消息的协 议中可能非常有用,尤其对于一些时延敏感的消息,无序递交能够尽量地降低消 息的传输延迟。这个特性是可选的。 4 平滑关闭( g r a c e f u ls h u t d o w n ) :在t c p 中,一端可以关闭自己本端的s o c k e t ( 导 致发送一个f i n 报文) ,此后它处于半关闭状态,并仍然可以继续接收对端发送 的数据。但s c t p 认为应用程序很少使用半关闭状态,因此s c t p 的设计者就选 9 北京交通大学硕十学位论文 择放弃这一特性,并将其替换成了显式的终结序列。当一。端关闭自己的套接字时 ( 导致产生个s h u t d o w n 原语) ,对等的两端同时需要关闭,将来任何一端 都不再允许进行数据的传输。 2 3s c t p 的报头格式 在上节中,介绍了s c t p 。些主要特性,本节将介绍s c t p 的各种重要报头格式, 这能帮助我们理解s c t p 的水平通信过程。 2 3 1具有扩展性的报头结构 一个s c t p 报文由一个通用头部( c o m m o nh e a d e r ) 和若干的块( c h u n k ) 组成。 如下图2 3 所示: 图2 - 3s c t p 报头 f i g 2 3s c t ph e a d e r 在s c t p 通用头部中,源目的端口号用于标识特定的s c t p 关联。在s c t p 关联 建立时每一个对端都会将自己选定的3 2 b i t 验证标签值告诉对端,之后这个关联中的 任何报文都会携带这个验证标签,使用不正确的验证标签将会导致报文被丢弃。校验 和对整个s c t p 报文进行校验,不正确的校验和同样会导致报文被丢弃。 在通用报头之后有若干个块结构,r f c 4 9 6 0 规定s c t p 报文至少包含一个块,上 限由传输路径上的m t u 决定【6 】。块是s c t p 中最基本的处理单元,最多可以定义2 5 6 种类型,目前r f c 4 9 6 0 中只标准化了前1 4 种类型【6 1 。主要分为控制块和数据块两大 类。如表2 1 。在不同类型的s c t p 块中标志字段有不同的含义。长度字段用于说明一 l o 流控制传输协议s c t p 综述 个s c t p 块的长度,其中包括类型、标志、长度部分。由于s c t p 要求每个块都按4 对齐,在每个块的尾部可能会包含一些填充字节,但这些字节不包括在长度字段的统 计范围内。内容字段是可变长度的,根据不同的s c t p 块类型,它还会有特定的内部 结构。s c t p 块在顺序上也是有一定要求的,大体上是这样规定的:控制块在前,重 传数据块其次,最后是普通的数据块【6 1 。 表2 1s c t p 中的块类型 t a b l e 2 - 1t y p e so f c h u n ki ns c t p 块名称块类型值块类别 p a y l o a dd a t a ( d a t a ) o x o 数据块 i n i t i a t i o n ( i n t o 0 x 0 1 i n i t i a t i o na c k n o w l e d g e m e n t ( 玳h a c k )0 x 0 2 s e l e c t i v ea c k n o w l e d g e m e n t ( s a c k ) 0 x 0 3 h e a r t b e a tr e q u e s t ( h e a r t b e a t ) 0 x 0 4 h e a r t b e a tr e q u e s t ( h e a r t b e a t ) 0 x 0 5 a b o r t ( a b o r t ) o x 0 6 s h u t d o w n ( s m r r d o w n ) 0 x 0 7控制块 s h u t d o w na c k n o w l e d g e m e n t ( s h u t d o w na c k ) o x 0 8 o p e r a t i o ne r r o r ( e r r o r ) 0 x 0 9 s t a t ec o o k i e ( c o o k i ee c h o ) 0 x 0 a c o o k i ea c k n o w l e d g e m e n t ( c o o k i ea c k )0 x 0 b r e s e r v e df o re x p l i c i tc o n g e s t i o nn o t i f i c a t i o ne e h o ( e c n e ) 0 x 0 c r e s e r v e df o rc o n g e s t i o nw i n d o wr e d u c e d ( c w r )0 x 0 d 在一个s c t p 报文的处理过程是:首先解析通用报头
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年(试题)无人机地面站考试题库及答案详解(易错题)
- 安丘市2025-2026学年七年级下学期语文期中测试试卷
- 安徽省滁州市凤阳县2022-2023学年高三下学期高考第一模拟考试(一模)英语考题及答案
- 四川省绵阳市江油2025-2026学年八年级下学期第三学月四校联考物理试题
- DB21-T 4163-2025 城市隧道工程施工质量验收规程
- 社区消防知识培训课件标语
- 社区消防知识培训课件
- 2024-2025学年河南省周口市沈丘县西师大版六年级下册期中测试数学试卷(含部分答案)
- 废品纸板购销合同范本
- 社区暑期安全知识培训课件
- 23G409先张法预应力混凝土管桩
- 公路施工环境污染应急预案
- GB/T 31227-2014原子力显微镜测量溅射薄膜表面粗糙度的方法
- 上海交通大学学生生存手册
- 船舶高级消防(新版PPT)
- 03第三阶段04印章模型制作
- 人因工程学-ppt课件完整版
- Q∕SY 06515.1-2016 炼油化工工程电气技术规范 第1部分:通则
- 2010现代领翔nfcg2.0dohc原厂维修手册车身和外部
- 雨棚钢结构施工方案
- Hard coating 简析解析(课堂PPT)
评论
0/150
提交评论