(计算机应用技术专业论文)用户层通信及基于myrinet的via研究.pdf_第1页
(计算机应用技术专业论文)用户层通信及基于myrinet的via研究.pdf_第2页
(计算机应用技术专业论文)用户层通信及基于myrinet的via研究.pdf_第3页
(计算机应用技术专业论文)用户层通信及基于myrinet的via研究.pdf_第4页
(计算机应用技术专业论文)用户层通信及基于myrinet的via研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)用户层通信及基于myrinet的via研究.pdf.pdf 免费下载

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

文档简介

堕登茎堇苎查堂堑塞兰堕g ! 塞2 堡主笙苎一一 摘要 随着当代社会各利- 信息数量的指数性增长和对信息处理要求的指数性增氏, 人们对处理信息的计算机的性能提出了越来越高的要求。集群系统以其较高的性 能价格比和结构灵活等特点,逐渐成为科学计算的主要计算平台。在集群系统中, 影响其性能发挥的主要因素之一就是系统网络的效率。集群互连网络要求具有高 带宽、低延迟的特点。然而,传统的t c p i p 网络通信系统已经不能够适应集群 系统对其系统网络的高带宽、低延迟的要求,所以,要求有全新的适用于集群系 统的网络通信系统出现。近些年出现的各种用户层通信系统,就很好的解决了集 群系统的网络通信效率问题。 然而,不同用户层通信系统在实现方式及编程接口上的互不相同降低用户层 通信应用的可移植性和通用性。针对这一点,1 9 9 7 年m i c r o s o f t , n t e l 和c o m p a a 三家联合提出了v i a 规范,致力于形成一个为业界内广泛认可的用户层通信的 工业标准。v i a 发展继承了一些现有户层通信模型的优秀思想,代表了未来用户 层通信发展的方向。本文致力于用户层通信原理及v i a 规范的研究,并基于 m y r i n e t 网络,分析了不同的v i a 实现。 本文首先在理论上分析了传统的t c p i p 通信系统和用户层通信系统的通信 过程和通信效率等问题,在理论分析的基础上,提出了克服传统t c p i p 通信系 统缺点和实现用户层通信系统的各种关键性问题和这些问题的解决方案。 本文分析了b e r k e l e y 大学的v i a 实现方案,并通过与传统u d w i p 通信的实 测性能对比,说明了用户层通信的优势。 最后,本文分析了我们自己的v i a 实现m y v i a 。m y v i a 在b e r k e l e v 大学 v i a 实现的基础上,采用多种优化技术。实测数据表明,m y v i a 在通信性能上 比起b e r k e l e yv i a 有较大幅度的提升。 关键字:集群系统,用户层通信,通信延迟,通信带宽,v i a ,m y v i a ! 里型兰茎查查兰翌塑兰堕! j ! 塞! 里r 兰壅 a b s t r a c t i nt h em o d e r ne r a ,a st h ee x p o n e n t i a l i n c r e a s ei nt h e q u a n t i t y o fv a r i e d i n f o r m a t i o na n dt h ee x p o n e n t i a li n c r e a s ei nt h ep o w e r t oh a n d l et h ei n f o r m a t i o n ,t h e h i g h e r a n d h i g h e rp e r f o r m a n c e o fc o m p u t e r s w h i c ha r eu s e dt oh a n d l et h e i n f o r m a t i o n ,i sr e q u e s t e d d u et ot h e i rc h a r a c t e r i s t i c so fh i g hb e n e f i t c o s t sr a t i oa n d f l e x i b l e a r c h i t e c t u r e ,g r a d u a l l y c l u s t e r sh a v eb e c o m em a i np l a t f o r mf o rs c i e n c e c o m p u t i n gi nc l u s t e r s ,o n eo f t h em a i nf a c t o r s ,w h i c ha f f e c tt h e i rp e r f o r m a n c e ,i st h e e f f i c i e n c yo f t h e i rs y m e mn e t w o r k st h ei n t e r n e t w o r k so fc l u s t e r sa r er e q u i r e dt o h a v ec h a r a c t e r i s t i c so fh i g hb a n d w i d t ha n dl o wl a t e n c yh o w e v e r , t h et r a d i t i o n a l t c p i pn e t w o r kc o m m u n i c a t i o ns y s t e m sh a v en o tb e e na d a p t i v et ot h er e q u e s t so f c l u s t e r ss on e wn e t w o r k s ,w h i c ha r ea d a p t i v et oc l u s t e r s ,a r ed e s i r e d v a r i o u su s e r 1 e v e ln e t w o r k s w h i c he m e r g ei nt h e s ey e a r s 、s o l v et h er e q u e s to f t h ec l u s t e r sn e t w o r k e f f i c i e n c yv e r yw e l l h o w e v e rt h ed i f i e r e n c ei ni m p l e m e n t a t i o na n dp r o g r a ma p ii nv a r i o u su s e r l e v e ln e t w c r k sc o u n t e r w o r k st h em i g r a t i o no fu s e rl e v e la p p l i c a t i o n s t oc o v e rt h i s , c o m p a q , i n t e la n dm i c r o s o f tc o r p o r a t i o nb r o u g h tf o r w a r d as p e c i f i c a t i o nj o i n t l y i n1 9 9 7 a n di t sau s e rl e v e lc o m m u n i c a t i o ns t a n d a r dd e s i g n e df o rc l u s t e rs y s t e m c o m m u n i c a t i o n sv i ai n h e r i t st h ee x c e l l e n ti d e a so fs o m ef o r m e rc l a s s i c a lu s el e v e l c o m m u n i c a t i o ns y s t e m s ,a n dr e p r e s e n t st h ef u t u r ed i r e c t i o no f u s e rl e v e ld e v e l o p m e n t t h i sp a g e re n g a g e si nt h er e s e a r c ho fp r i n c i p l eo fu s e rl e v e lc o m m u n i c a t i o na n dv i a s p e c i f i c a t i o n , a n da n a l y z e ss e v e r a lv i ai m p l e m e n t a t i o nb a s e d o n m y r i n e t f i r s t l y , t h ep a p e ra n a l y z e st h ec o m m u n i c a t i o np r o c e d u r ea n dt h ec o m m u n i c a t i o n e f f i c i e n c yq u e s t i o no ft r a d i t i o n a lt c p i pn e t w o r ks y s t e m sa n du s e rl e v e ln e t w o r k s v s t e m si nt h e o r y 0 nt h eb a s eo ft h e o r e t i c a la n a l y s i s t h ep a p e rp r o p o s e dt h ek e y q u e s t i o n s a n dt h e i rs o l u t i o n st oo v e r c o m et r a d i t i o nt c p 仰n e t w o r k sa n dt o i m p l e m e n t u s e rl e v e lc o m m u n i c a t i o ns y s t e m s 。 t h ep a p e ra n a l y z e st h ev i a i m p l e m e n t a t i o no fb e r k e l e yu n i v e r s i t y , a n ds h o w s t h ea d v a n t a g e so fu s e r1 e v e lc o m m u n i c a t i o nt h r o u g he x p e r i m e n t a ld a t ab yc o m p a r i n g w i t ht r a d i t i o n a lu d p 皿c o m m u n i c a t i o n f i n a l l y t h ep a p e ra n a l y z e so u r s e l y e sv i ai m p l e m e n t a t i o n 一一m y v i ab a s e do n b e r k e l e yv i 久m y v i aa d o p t ss o m eo p t i m i z a t i o nt e c h n i q u e t h ee x p e r i m e n t a lr e s u l t s h o w st h a tm y v i a 。s p e r f o r m a n c e i sm u c hb e t t e rt h a nb e r k e l e y a k e y w o r d s :c l u s t e r , u s e r l e v e lc o m m u n i c a t i o n ,c o m m u n i c a t i o n l a t e n c y , c o m m u n i c a t i o n b a n d w i d t h ,v i a ,m y v i a 中国科学技术大学研究生院( 北京) 硕士论文 第一章引言 11 集群系统的迅速发展及特点 当今社会,计算机科技的发展促进了社会经济与科学文化的进步。而反过来, 人们在经济管理、文化教育、基础理论研究等各方面水平及要求的不断提高,也 对计算机的运算性能、计算能力提出了更加严格的需求。这种对高性能计算的强 烈需求,同时由于计算机技术的提高,促进了集群( c l u s t e r ) 技术的迅速发展。 集群系统是利用高速通用网络将一组高性能工作站或高档p c 机按某种拓扑 结构互连起来,在并行程序设计以及可视化人机交互集成开发环境支持下,充分 利用各个结点资源,统一调度、协调处理,以实现高效并行处理的系统。在集群 系统中,工作站和互连网络都可以是同构的,也可以是异构的。工作站集群系统 主要由工作站和互连网络两部分组成,每个工作站上都有一个主机一网络接口实 现连网。互连网络可以是通常使用的l a n ,如e t h e m e t 、t o k e n - r i n g 、f d d i 等: 也可以是新出现的开关网络如a t m 、交换式高速e t h e m e t 等;还可以是专门设 计的高速网络如m y r i n e t 、t n e t 等。针对不同的网络,可以实现具体的网络接口。 网络的拓扑结构也可以根据实际需要进行选择,如采用网格结构,环形,总线桥 等。 与集群系统出现以前的典型并行系统如向量机、对称多处理机( s m p ) 以及 m p p 等相比,集群系统具有下列特点: 性能价格比高 这是集群系统逐步推广应用的主要原因。传统的并行计算系统如向量机、 m p p 系统由于研制费用高,售价昂贵,使得它们的推广受到了一定的限制。 而集群系统中,由于目前单个工作站的性能已经很高,通过高速互连网络将 这些工作站连接起来,其并行计算的总体运算性能可以接近一些巨型机的性 能,然而其价格却要低很多。 系统开发周期短 由于集群系统大多采用商用的工作站和高档p c 机以及通用的互连网络, 使结点主机及系统管理相对简单,可靠性高。开发的重点在通信和并行编程 环境上,既不用重新研制计算结点,又不用重新设计操作系统和编译系统, 这就节省了大量的研制时间。 用户投资风险小 用户在购置传统巨型机或m p p 系统时会担心其使用效率不高,系统性能 发挥不好。如果某些地方出了问题就会浪费大量的资金。而工作站集群系统 中国科学技术大学研究生院( 北京) 硕士论文 就不存在这种问题,因为最起码每个结点都还可以单独使用,主要投资不会 浪费。 系统可扩展性好 集群系统可以包含各种不同体系结构、不同性能的主机,互连网络也可 以是异构的。这样可以根据实际情况和需要灵活地构造集群系统。在高带宽、 低延迟的网络支持下很容易对工作站集群系统进行扩展,以获取较高加速 比,并以此支持应用问题的可扩展性。 用户编程方便 现有分布式系统中的并行计算环境如m p i ,p v m 等可以在工作站集群系统 中运行。在这种环境中,用户只需在原有的程序中加入相应的通信、控制等 原语即可,可以利用原有软件财富,无需用并行c 或者并行f o r t r a n 等语言 重新改写原来的程序。 集群系统系统的这些特点,使得其应用不断得到推广,逐步成为大规模并行 计算的主要平台。 高性能的主机结点和高速互连网络构成了集群系统的高性能的体系结构,然 而,集群系统是一种松散耦合的系统。所以,希望把整个集群系统作为一个整体 的系统来有效的支持并行程序的运行,为用户提供较高的运算速度和接近线性的 系统加速比,以及高效友好的并行程序集成开发环境,就需要解决很多的问题。 在发展集群系统的过程中,如何充分利用集群系统的各种资源,使其真正高效、 实用,需要解决以下关键技术: 高效的通信网络 在集群系统中,并行计算程序的各个子任务分布在多个处理结点上运行, 相互之间需要使用消息传递进行通信和同步。因此,集群通信网络的性能, 对系统的并行加速性能、并行计算效率、可扩展性以及系统的应用范围有十 分重要的影响。集群通信网络系统的研究包括高速互连网络硬件系统以及相 应的软件环境。 并行程序开发环境 并行程序开发环境为并行程序的设计和运行提供一个整体系统和各种辅 助工具。并行程序开发环境包括统一的虚拟机,通信原语定义和描述,集群 系统资源管理,可移植的用户编程接口和多种编程语言的支持,以及一些辅 助的工具,包括并行调试器,性能评测工具,并行化辅助工具和检查点工具 等等。目前,使用比较多的并行程序开发环境主要包括e x p r e s s 、p v m 、m p i 等。这些并行程序开发环境很好的解决了些并行程序设计和运行方面的问 中国科学技术大学研究生院( 北京) 硕士论文 题。但是仍旧有很多问题有待于有效的解决,例如,到目前为止,还没有一 种有效的实用检查点工具。 全局资源的管理和利用 有效的管理系统中的所有资源是集群系统的一个重要方面。可利用的集 群系统资源包括计算资源、网络资源、内存资源以及外存资源等等。要有效 的使用集群系统的这些可利用的资源,就必须把集群系统看作为一个统一的 系统,对于用户来说,集群系统就是一台机器,而不是一群松散耦合的结点 主机的集合。这就需要为集群系统建立单一的系统映像s s i ( s i n g l es y s t e m i m a g e ) 。目前建立的集群系统,往往最多对于特定的一种或者几种集群系统 资源给出了统一的系统映像,但是,对于集群系统所有系统资源的单一系统 映像环境,还没有有效的解决。 本文主要对集群系统中高效的通信系统方面进行分析研究。 1 2 集群中的通信问题 集群内部通信网络系统的性能是影响集群系统运行效率的关键因素之。集 群互连网络要求具有高带宽、低延迟的特点。然而,传统的l a n 网络存在如下的 缺点。 1 网络带宽低 由于网络规模和价格因素的影响,现在通常使用的以太网带宽只有 l o m b s 或l o o m b s 。并且,以太网的共享介质协议也导致在网络负载比较重 时,各个结点都争用共享的传输介质,往往造成通信阻塞,网络带宽的利用 率急剧下降,使实际网络带宽要远远小于网络最大带宽,并造成通信延迟的 急剧上升。所以,这种普通的以太网不符合集群系统对互连网络的高带宽、 低延迟要求。普通的阱太网不适合作为集群系统的通信网络。 2 传统的t c p i p 通信协议系统处理开销大 t c p i p 通信协议是面向低速率、高差错和大数据包传输而设计的,它是 一个多层次的体系结构。由于协议的层次较多,在进行数据传输时,数据往 往要经过多次的拷贝才能从应用程序传输到网络接口或者从网络接口传输 到应用程序。多次拷贝造成了网络延迟的增大和网络带宽的下降。t c p i p 协议有着复杂协议处理过程,例如,流量控制,差错控制,出错重传机制, 拥塞控制等等。复杂的协议处理造成了网络延迟的增加。并且,更糟糕的是 各个协议层次之间的功能有很多是重叠的,例如,i p 层和t c p 层都要进行数 据包的差错控制等等。这些冗余的功能在低速率、高差错传输环境下是非常 中国科学技术大学研究生院( i l 京) 硕士论文 必要的,它们保证了数据包的正确传输,降低了数据传输出错率。然而,在 现在先进的硬件传输环境下,误码率已经大大的下降。这种高质量的数据传 输环境已经不是t c p i p 通信协议设计时假定的传输环境,所以t c p i p 传输 协议已经不再适用。需要有克服这些缺点,充分利用现有的高质量硬件数据 传输环境的新的传输协议来代替它们。另外,操作系统完全负责网络通信过 程,所以,t c p i p 协议处理过程中不可避免的要提供很多的缓冲区来完成数 据的发送、接收和分包、组包等功能。然而,这些缓冲区的管理需要花费相 当多的处理时间。 3 操作系统额外开销不可忽视 由于传统的t c p i p 协议处理过程完全由操作系统来负责完成,所以,每 当应用程序需要发送数据时,就不得不调用操作系统提供的系统调用。这样 就必然会引起操作系统的上下文切换、调入调出页面、启动i o 设备等等 操作系统的处理。同时,在接收数据时,将引起操作系统中断。所有这些操 作系统处理往往会造成很大的时间开销。如何减少操作系统的时间开销,如 何减少操作系统介入到通信过程的程度,是集群系统中网络通信系统的只要 任务之一。 正是因为传统的l a n 网络存在诸多的缺点,所以,要发挥集群系统的优势, 提高集群系统的使用效率,必须设计全新的高速网络通信系统来适应集群系统对 网络通信系统的要求。 提高集群网络通信系统性能有两个方面的措施。首先,可以使用新型的高速 网络,在硬件上提高网络带宽。其次,设计全新的网络通信协议,在软件上降低 通信延迟。 为了达到减小通信开销、增大通信带宽的目的,人们提出了用户层通信网络 ( u s e r l e v e ln e t w o r k ) 的思想。用户层通信的基本想法是使应用程序直接操作 硬件设备,使操作系统不介入通信过程,这样做就可以避免上述传统通信协议系 统的弱点,从而达到增加带宽、减小延迟的目的。时至今日,已经出现了许多的 用户层通信系统,例如a m ( a c t i v em e s s a g e ) ,f m ( f a s tm e s s a g e ) ,u - n e t 等等。 随着用户层通信技术的发展,i n t e l 、微软和康柏三家公司共同提出了用户层通 信协议的工业标准v i a ( v i r t u a li n t e r f a c ea r c h i t e c t u r e ) 。v i a 协议继承 和发展了上述各种用户层通信协议的优点。它根据用户层传输的原理大幅度减少 数据传输的软件开销,可实现集群系统内的快速消息传递。1 9 9 9 年v i a 结构得 到进一步发展,在当年提出的交换式i o 结构标准i n f i n b a n d 中,作为接口协议 的组成部分,实现主机与其他外设之间的通信和数据交换。基于v i a * 日i n f i n i b a n d 的产品已经陆续出现,随着更多产品的出现,在高性能通信方面的研究和创新工 4 中国科学技术大学研究生院( 北京) 硕士论文 作也会越来越多。到目前为止,已经出现了各种v i a 的实现方案。例如,b e r k e l e y 实现的b - v i a ,g i g a n e tv i a , m v i a ,f i r m v i a ,以及清华大学高性能实验室 设计开发的t h v i a 等等。 本文的主要内容和组织结构 本文的主要内容为对基于m y r i n e t 的用户层通信协议v i a 实现的研究,同时 也简略分析了传统的通信协议t c p i p 的传输过程、特点,及其他相关的主要几 种用户层通信协议的特点。 论文的组织结构及安排如下: 第一章为引言。 第二章通过对传统t c p i p 网络通信系统和现存用户层通信系统的结构和技 术的深入研究,提出减少通信开销、增大通信带宽的技术的主要方面。并概要介 绍两种典型的用户层通信协议。 第三章分析用户层通信协议v i a 的原理、主要内容。介绍m y r i n e t 硬件平台 特点及b e r k e l e yv i a 的实现原理,并与传统的传输协议进行通信性能对比,给 出实测的实验数据,说明用户层通信的优势。 第四章对我们在b e r k e l e yv i a 基础上进行优化设计,开发的m y v i a 系统进 行介绍、分析,并给出各项实验数据,性能比较。 第五章对全文进行总结。 中国科学技术大学研究生院( 北京) 硕士沦文 第二章用户层通信研究 本章深入分析传统的以太网通信传输过程,总结影响其传输效率的环节及因 素,进而介绍用户层通信协议及对这些问题的考虑及设计,并介绍几种典型的用 户层通信协议的实现特点,最后详细介绍v i a 通信协议的原理。 2 1 传统以太网通信方式 21 1 传统以太网通信过程分析 传统以太网通信模型如图2 1 所示。图2 1 中右边部分为t c p i p 网络分层 模型,左边为t c p i p 网络分层模型在1 i n u x 操作系统环境下的具体实现。如图 所示,传统以太网通信模型从上到下分别是应用程序、文件系统、t c p u d p 层处 理程序、i p 层处理程序、网络接口适配器驱动程序和网络接口适配器硬件。其 用户 空间 应用程序 核心 空间 文件系统 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 。_ _ _ _ _ _ _ _ _ _ _ _ 一 t c p i u d p 层处理例程 i p 层处理例程 ni c h e 动程序 应用层 t c p u d p 层 i p 层 数据链路层 l 网络接口适配器( n i c )li物理层l 【,。,一【一 图2 1 传统以太网通信模型 中,文件系统提供了应用程序调用网络通信处理例程的系统调用接口。 下面,将以1 i n u x 操作系统环境下的u d p i p 网络通信过程为例分析传统网 络通信过程。 从发送方启动发送过程开始,到接收方接收到数据为止,可以简单的把整个 过程分解成1 4 个步骤。 首先,发送方准备好发送数据。然后,发送方通过调用库函数( 1 ) 陷入到 核心中( 2 ) 调用网络数据传输例程。首先是u d p 处理例程( 3 ) 。由于u d p 是面 向非连接的网络传输协议,所以,u d p 处理例程过程并不复杂,它只是填充些必 中国科学技术大学研究生院( 北京) 硕士论文 用户空间 核心空间 网络接口适配器 网络传输介质 。塞堡塑囹鳌 堡! 堑壅 垄堡塑堑鱼 堡壁堑堡 垄些查互塑。 1 :用户应用程序准备好需要传输的数据,并调用库函数启动发进过程; 2 :用户程序调用操作系统系统调用陷八核心来发送数据; 3 :u d p 协议处理例程,做一些初始化工作和差锚控制后到步骤4 - 4 :i p 协议处理例程,执行缓冲区管理。差错控制分包,建立u d p 包头,建立i p 包头,计算各 种被验和,从用户空间拷贝数据到核心空间,各种动能处理等等, 5 :网络接口适配嚣驱动程序,执行发送结构栩始化启动网络接口适配器d m ; 6 :网络接口适配器处理数据包,使用删时e 数据包从主存中持贝到网络上, 7 :网络侍输介质, 8 :网络接口适配器接收数据包,并使用d m 时e 数据包从网络拷贝到生存中的固定位置, 9 :网络接口适配器中断主机,使主机调用网络接口适配器驱动程序处理接收到的数据包; 1 0 :网络接口适配器驱动程序,执行分配数据包缓冲区,建立包头,把数据从觚a 缓冲区拷贝 到数据包缓冲区中并计算校验和。并完成网络接口适配器接收缓冲区管理t 1 1 :i p 协议处理例程,执行缓冲区管理,差错控制,组包,计算校验和,各种功能处理等等; 1 2 :u b p 协议处理例程,执行缓冲区管理,差错控制,计算校验和等等,并唤醒正在等待数据 包到来的进程; 1 3 :用户应用程序准备好接收缓冲区并调用库函数启动接收过程若还收有接收到数据则 睡眠,直至接收到数据为止; 1 4 :用户程序调用操作系统系统调用陷入核心来接收数据; i 5 :u d p 协议接收例程,执行把数据从数据包缓冲区拷贝到用户空问相应的位置并完成缓冲区 管理; 图2 2 传统u d p i p 网络通信过程分析 要的数据结构,为调用i p 处理例程做好准备。然而,t c p 处理例程则比u d p 复 杂的多。t c p 是面向连接的网络传输协议,它需要进行缓冲区管理、差错控制、 流量控制以及把数据从用户空间的用户数据发送缓冲区拷贝到核心空间的数据 包缓冲区中等等工作。这样,t c p 开销要比u d p 大的多。u d p 处理例程完成初始 化工作后,将调用i p 处理例程( 4 ) 来处理数据包。i p 处理例程需要进行数据 包缓冲区管理,差错控制,分包,建立u d p 包头,建立i p 包头,计算各种校验 和,从用户空间拷贝数据到核心空间,以及防火墙控制等其他各种功能处理等工 作。i p 处理例程建立好数据包后,就调用网络接口适配器驱动程序( 5 ) 来发送 数据包。一般就p c 机来说,现在的网络接口适配器的功能通常都可以是p c i 主 设备,可以进行d m a 操作。同时,网络接口适配器可以不需要主机处理器的参与 来完成处理数据包的功能。所以,网络接口适配器驱动程序通常是做数据包合法 性检测,然后,根据情况填写与网络接口适配器约定的发送结构,最后,启动网 络接口适配器的d m a ( 6 ) ,告知网络接口适配器有新的数据包需要发送。至此, 主机为应用程序发送数据的工作完成,系统将从核心运行状态返回到用户态,接 着执行用户应用程序( 1 ) 。网络接口适配器得到通知后,将处理发送结构,把需 要发送的数据从主存中数据包结构中拷贝到网络上去。数据将通过网络传输介质 7 中国科学技术太学研究生院( 北京) 硕士论文 ( 7 ) 被传输到接收方。在接收方,网络接口适配器接收到数据包( 8 ) ,把数据 包拷贝到事先准备好的接收缓冲区中。数据接收完成后,网络接口适配器中断主 机( 9 ) 。主机执行中断处理程序( 1 0 ) 来处理网络接口适配器中断。该中断处理 程序往往是由网络接口适配器驱动程序事先在系统中注册的。中断处理程序将为 数据分配数据包缓冲区,建立数据包包头,把数据从网络接口适配器接收缓存区 中拷贝到数据包缓冲区并计算校验和,以及更新网络接口适配器接收缓存区。完 成这些工作后,网络接口适配器驱动程序将把数据包传递给i p 协议处理例程来 处理这个数据包。i p 协议处理例程接收到数据包后,首先进行数据包合法性检 查,差错控制,然后完成缓冲区管理,组包,计算校验和,以及防火墙控制、i p 包转发等其他各种功能处理等等,并根据不同的数据包调用不同的上层协议处理 例程,在我们的这个例子中是调用u d p 协议处理例程( 1 2 ) 。不同于t c p 协议处 理例程,u d p 协议处理例程所做的工作比较少,只是做一些合法性检查,缓冲区 管理,差错控制,计算校验和等工作,然后,唤醒相应的正在等待数据包到来的 进程( 1 3 ) 。用户应用程序需要接收数据时将准备好接收缓冲区,然后调用库函 数陷入核心( 1 4 ) 启动接收过程。接收过程调用u d p 协议接收例程( 1 5 ) 。如果 此时数据已经到来,则u d p 协议接收例程直接处理数据包,相反,如果此时还没 有数据包到来,则转入睡眠等待数据包到来。当等待的数据包到来时,u d p 协议 处理例程( 1 2 ) 唤醒该进程。u d p 协议接收例程( 1 5 ) 把数据从数据包缓冲区中 拷贝到用户空间相应的位置并完成缓冲区管理。然后,系统将从核心空间返回到 用户空间,继续执行用户应用程序( 1 3 ) 。这样,一次完整的数据发送和接收过 程才算结束。 从上述分析可以看出,即使是u d p i p 网络通信系统,发送和接收过程也是 非常复杂的。在整个过程中,系统需要在用户态和核心态来回切换。并且,需要 把数据拷贝数次。同时,需要做大量的缓冲区管理和差错控制。我们应该看到, 这里分析的是u d p i p 协议过程。u d p i p 是无确认、非连接的数据传输协议,和 有确认、面向连接的t c p i p 协议相比要简单的多。t c p i p 协议需要更多的工作, 例如流量控制,排序,确认等等。 2 1 ,2 传统以太网通信方式中,影响其传输效率的环节及因素 从以上分析,我们可以总结出传统以太网通信方式中,影响其传输效率的几 个方面: 1 通信层次结构多,通信协议复杂。传统的通信协议具有很高的可靠 性,这是由其复杂的通信结构及协议处理过程保证的。在传输中, 有着复杂的分层传递,差错控制,流量控制,出错重传,拥塞控制 中国科学技术大学研究生院( 北京) 硕士论文 2 3 等过程,而且有些过程是冗余的,比如t c p 层和i p 层都有差错控制。 这些处理机制,保证了数据通信能够适应复杂的网络环境,能够在 底层不具备很可靠的硬件平台的环境下,保证数据传送的正确性。 然而,这样复杂的处理过程,也给数据传输引入了时间上的延迟, 影响了网络传输的吞吐率。 传输过程中存在着多次数据拷贝,有复杂的缓冲区管理过程。传输 过程中,在发送结点上数据需要从用户空间的用户应用程序发送缓 冲区到核心空间的数据包缓冲区拷贝一次。在接收结点,数据需要 在核心空间的网络接口适配器接收缓冲区到数据包缓冲区拷贝一 次,又需要从核心空间的数据包缓冲区到用户空间的用户应用程序 数据接收缓冲区拷贝一次,所以,一共需要拷贝两次,再加上数据 在网络上的传输,数据一共被拷贝了四次。这么多次的数据拷贝是 传统网络通信系统效率低下的主要原因之一。并且,其间还牵涉到 复杂的发送接收缓冲区的分配及释放过程,这些都会给数据传输引 入时间上的延迟。 操作系统的额外开销。由于传统的t c p i p 协议处理过程完全由操作 系统来负责完成,所以,每当应用程序需要发送数据时,就不得不 调用操作系统提供的系统调用。这样就必然会引起操作系统的上下 文切换、调入调出页面、启动i 0 设备等等操作系统的处理。同时, 在接收数据时,将引起操作系统中断。所有这些操作系统处理往往 会造成很大的时间开销。 2 2 用户层通信方式 从上述对传统以太网通信方式的分析,我们可以看到它的适用环境是复杂的 i n t e r n e t 环境,能够在网络硬件平台不是很可靠的情况下保证数据传输的可靠性, 当然,所付出的代价则是传输的性能。然而,在集群系统的配置下,其网络环境 是能够提供较高传输性能及特点的s a n ( s y s t e ma r e an e t w o r k s ) 。s a n 网络可以 说是巨型并行机所使用的m p p 网络与通用的l a n 网络的结合,它继承了m p p 网络的性能及可靠性,并且还具有l a n 的灵活性。在这样的硬件平台上,能够 提供很高的原始带宽及非常低的错误传输率,可以认为,s a n 的硬件平台是数 据可靠的。比如m y r i c o m 公司的m y r i n e t 网络就具备这些特性。这样的硬件环境, 使各种用户层通信协议的出现成为可能。下面分析用户层通信系统的一般传输过 程。 中国科学技术大学研究生院( 北京) 硕士论文 22 1 用户层通信系统通信过程分析 如图2 3 所示,相对于传统的u d p i p 网络通信系统来说,用户层通信系统 用户空间紫黪墨篙用户空间 。发送方开销。 硬件延迟 接收方开销 1 :用户应用程序准备好需要传输的数据,调用库函数填写发送结 构,并启动网络接口适配嚣发送过程; 2 :网络接口适配器处理数据包,然后和接收方结点建立连接,并 使用d m a 寺巴数据包从主存中通过网络抟贝到接收方网络接口适配 器上; 3 :网络接口适配器接收数据包,使用d m 时巴数据包拷贝到主存中 的固定位置,并i 殳置接收完成标志; 4 :接收方用户应用程序调用库函数查询到数据包已童圣接收完毕。 图23 用户层通信过程分析 的通信过程是非常简单的。从发送方启动发送过程开始,到接收方接收到数据为 止,可以划分为4 个步骤。 首先,发送结点准备好数据后,通过调用库函数来填写供网络接口适配器使用的 各种数据结构( 1 ) 。然后,在用户层直接启动网络接口适配器来发送数据。网络 接口适配器接收到用户程序发送数据的命令后,自动的读取用户程序填写的发送 数据的数据结构,从中得知要把数据发送到哪个目的结点,以及需要发送的数据 在什么地方等等信息。网络接口适配器处理完发送该结构后,根据得到的信息同 目的结点建立起物理连接,这条物理连接就为发送结点的用户程序发送缓冲区到 目的结点网络接口适配器搭起了一条数据通路。然后,网络接口适配器启动d m a 将用户空间发送数据缓冲区中的数据通过网络拷贝到目的结点的网络接口适配 器上( 2 ) 。目的结点网络接口适配器将处理数据包,然后把数据拷贝到相应的用 户应用程序数据接收缓冲区中( 3 ) 。注意,目的结点网络接口适配器处理数据包 的过程完全可以和发送结点网络接口适配器的工作同步进行。这样,就可以保证 数据从发送结点的数据发送缓冲区到接收结点的数据接收缓冲区的一次拷贝完 成。接收结点网络接口适配器接收完数据后,将在主存的相应位置设置数据接收 1 0 中国科学技术大学研究生院( 北京) 硕士论文 完成标志。用户应用程序通过查询这个标志来确定数据接收是否完成( 4 ) 。至此 一 欠网络数据传输就已经完成。 同传统u d p i p 数据传输过程相比,可以看到,用户层数据传输过程把数据 传输过程大大的简化了。主机为数据传输所做的工作很少。这样就把主机从数据 传输过程中解放出来,使之用更多的时间来处理运算等其他各种操作。相反,数 据传输的大量工作要网络接口适配器来完成。这就要求网络接口适配器有足够的 智能来做到这一点。随着大规模集成电路的发展,在小小的网络接口适配器上做 更多的逻辑处理已经完全可能。并且,实践证明,这样做也是完全有效的。这种 体系结构使外围设备( 网络接口适配器) 和主机充分的并行工作,不但大大的提 高了网络传输的效率,也提高了整个系统的运行效率。随着大规模集成电路的发 展,外围设备具有越来越多的智能,处理越来越多的逻辑,应该是体系结构的发 展方向。 然而,采用用户层通信方式,在大大的减小数据传输延迟时间,增大数据传 输带宽的同时,也带来了新的问题,主要是以下几个部分。 1 、由于数据发送过程不陷入到核心态下由运行,所有的数据发送的准备 任务必须在用户态下由库函数完成。 2 、 由于需要网络接口适配器之间把数据从用户空间拷贝到网络上,所 以,网络接口适配器必须知道用户应用程序需要发送的数据的物理地 址。有两种方式可以做到这一点。第一种方式,用户程序在发送数据 时来告诉网络接口适配器需要发送的数据的物理地址。这就要求用户 应用程序必须知道它所分配主存的物理地址。用户应用程序可以通过 在发送数据之前,把发送数据缓冲区向核心查询的方式来做到这一 点。第二种方式,由网络接口适配器自己通过查询虚拟地址的方式得 到相应的物理地址。这种方式要求必须有一张固定的网络接口适配器 能够随时访问到的表格记录虚拟地址到物理地址的转换关系。这一点 可以通过用户应用程序在发送数据之前把发送数据缓冲区向核心注 册的方式来完成。 3 、 需要网络接口适配器做主要的数据传输工作,包括数据包的处理、分 包、组包、拷贝、设置数据传输完成标志等等。这就要求网络接口适 配器有足够的智能。通常,实现网络接口适配器要使用大规模的 f p g a ,甚至在网络接口适配器上集成嵌入式c p u 来完成复杂的控制任 务。 4 、 网络系统的带宽要求比较大。现代的高速网络系统通常采用交叉开关 ( c r o s s b a r ) 电路交换的工作方式。 中国科学技术大学研究生院( 北京) 硕士论文 222 用户层通信系统通信性能分析 从上面对用户层通信系统的通信过程的分析,我们可以看到,用户层通信系 统针对传统通信协议中影响其传输性能的各方面重新设计,具有下述特点: 1 通信协议简单,没有复杂的分层结构及差错控制等内容。这是由于底 层的硬件平台能够提供可靠的数据传输,因而不用在上层进行复杂的 控制,这样的传输过程简单、直接,没有引入额外的数据传送延迟。 2 同传统以太网通信系统相比,用户层通信系统大大减少了数据拷贝。 在网络通信适配器的硬件支持下,用户层通信系统将数据从发送端传 输到接收端,只需要一次的数据拷贝。这样,通信延迟将大大的减少。 3 用户应用程序在用户层通过接口调用直接同网络接口适配器进行交 互,过程中没有涉及用户态和操作系统核心态之间的相互转换,消除 了传统的通信协议中状态转换所带来的延迟开销。 可见,同传统的通信方式相比,用户层通信系统的通信延迟大大的减小了。 并且由于s a n 网络中硬件平台良好的原始带宽能力,用户层通信系统,能够提供 优异的传输性能。 2 3 几种典型的用户通信系统介绍 下面介绍两种有代表性的用户层通信系统,v m m c 一2 和u - n e t 。 2 3 1v m m c - 2 普林斯顿大学的s h r i m p 系统采用了“虚拟存储映射网络接口”( v 删c ) 技术。 s h r i m p 网络接口结构如图2 4 所示。v 删c 一2 提供了一个网络接口上由用户来管 理的地址转换表结构。它可以用来建立用户空间虚拟地址到物理硬件地址的转换 图2 4s h r i m p 网络接 _ _ i 结构图 关系,并在两个网络结点上的应用程序之间建立虚拟存储地址空间之间的映射, 6i| ;5一$暮00奇 中国科学技术大学研究生院( 北京) 硕士论文 即将发送方的一块虚拟存储区映射到接收方的大小相等的一块虚拟存储区,如 n o d e an o d eb 图2 5v m i v l c 虚拟地址映射 2 5 所示。 s h r i m p 的网络接口在建立映射关系的应用虚拟地址空间之间支持两种传送 策略:自动更新和主动更新。在自动更新中,进程对映射区域的任何写修改,都 s 。n c :l 。c r 。d “气嚣詈:三蠹姜誉。w h 。o 一“一“,一“t s s 。“d 。 一 r 。d 一 r b l 急罢= 篓掣舞嚣= 嚣姜挈d i 一,t w o 由t o t h r b u f e e r 图2 6 v v c 重定向 将引起修改数据向目的进程的映射内存的转移。在主动更新策略中,由应用程序 通过显式的接口调用进行映射区域之间的数据更新。v m m c 一2 在高层并不提供面 向连接的通信机制,当发送方发送数据时,接收方可能并没有准备好接收数据缓 冲区,这时,v c 一2 就必须提供数据缓冲,所以,它并不能够真正的达到次 靴目目一 裂昼 中国科学技术大学研究生院( 北京) 硕士论文 拷贝的效果。为了尽量减小拷贝的次数,v m m c 一2 使用称为“重定向” ( r e d i r e c t i o n ) 的方法。当接收方已经准备好接收数据缓冲区,就直接使用一 次拷贝来传输数据;当接收方没有准备好接收数据缓冲区,就要再经过一次数据 缓冲,如图2 6 所示。 图2 7u - n e t 端点 u n e ti n t e r f a c e p h y s i c a 蚺 _ i 。、 t x q u e u e l t , i ,r i f r e eq u e u q l l _ 斧翟 r 一 一f

温馨提示

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

评论

0/150

提交评论