(计算机系统结构专业论文)基于infiniband体系架构的集群计算机互联系统的研究.pdf_第1页
(计算机系统结构专业论文)基于infiniband体系架构的集群计算机互联系统的研究.pdf_第2页
(计算机系统结构专业论文)基于infiniband体系架构的集群计算机互联系统的研究.pdf_第3页
(计算机系统结构专业论文)基于infiniband体系架构的集群计算机互联系统的研究.pdf_第4页
(计算机系统结构专业论文)基于infiniband体系架构的集群计算机互联系统的研究.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

(计算机系统结构专业论文)基于infiniband体系架构的集群计算机互联系统的研究.pdf.pdf 免费下载

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

文档简介

上海大学硕士学位论文 摘要 随着超级计算机的发展,尤其是集群计算机的发展,如何提高集群计算 机互联网络的传输效率从而提高集群计算机的效率,成为亟待解决的问 题。i n f i n i b a n d 技术的出现很大程度上解决了这个问题。由于采用光纤互联, 并提供了专用的通信协议,使得通信速率最大可达3 0 g b s ,从而极大地缓 解了节点的计算速度快,而网络通信速度慢这一矛盾。 i n f i n i b a n d 体系架构的主要特点如下:实现了远程直接内存访问 ( r d m a ) ,从而实现了零拷贝,进一步降低了c p u 占用率提高了通信 效率;实现了链路级的流量控制,有效降低了丢包率:提供了多种通信服 务,包括可靠连接,可靠数据报,不可靠连接和不可靠数据报,由于篇幅 有限,本文只介绍了可靠连接服务;提供了虚通道机制以复用通信信道, 提高了带宽的利用率。 本文的研究成果主要有以下几项:本文首先对l n f i n i b a n d 协议做了深入 的剖析。其次,对基于l n f i n i b a n d 的集群计算机系统进行了性能评测,性能 评测的指标包括通信延迟、吞吐量和c p u 负载。最后,本文提出了一种改 进的r d m a 实现,使得r d m a 不仅能应用于大报文的传输,也能应用于 小报文和控制报文的传输。从而使得传输小报文和控制报文的时延平均降 低了2 4 关键词:集群计算机、通信系统、i n f i n i b a n d 、r d m a v 上海大学硕士学位论文 a b s t r a c t i tb e c o m e sm o r na n dm o r es i g n i f i c a n tt oi m p r o v et h ee f f i c i e n c yo fc o m m u n i c a t i o n s y s t e mo fc l u s t e rw i t ht h ed e v e l o p m e n to fc l u s t e r t h ea d v e n to fl n f i n i b a n ds o l v e st h e p r o b l e mt h a tt h ep e r f o r m a n c eo fn o d ed o e sn o t m a t c ht h ep e r f o r m a n c eo ft h e c o m m u n i c a t i o ns y s t e m t h em a i nf e a t u r e so fl n f l n i b a n da r c h i t e c t u r e ( i b a ) a r ea sf o l l o w s :i m p l e m e n t i n gt h e r e m o t ed i r e c tm e m o r ya e s so rr d m a p r o v i d i n gl i n k - l e v e lf l o wc o n t r o lp r o v i d i n g f o u rk i n d so fs e r v i c et y p ei n c l u d i n gr e l i a b l ec o n n e c t i o n ,r e l i a b l ed a t a g r o m ,u n r e l i a b l e c o n n e c t i o n ,u n r e l i a b l ed a t a g r o m p r o v i d i n gv i r t u a ll a n em e c h a n i s m t h et h r e em a i nc o n t r i b u t i o no ft h i sd i s s e r t a t i o nn r oa sf e i l o w :f i r s t ,t h i sd i s s e r t a t i o n i l l u s t r a t e st h ei n f i n i b a n da r c h i t e c t u r e s e n c o n d ,t h i sd i s s e r t a t i o ne v a l u a t e s t h e p e r f o r m a n c eo f i n f i n i b a n db a s e dc o m m u n i c a t i o ns y s t e mo fc l u s t e r l a s t ,t h i s d i s s e r t a t i o ni m p r o v e st h er d m ai m p l e m e n t a t i o nt ob r i n gt h er d m at on o to n l yl a r g e m e s s a g e sb u ta l s os m a l lm e s s a g e sa n dc o n t r o lm e s s a g e s t h el a t e n c yo ft r a n s m i t i o no f t h es m a l lm e s s a g ea n dt h ec o n t r o lm e s s a g ecanb er e d u c e db y2 4 i na v e r a g e k e y w o r d s :c l u s t e r , c o m m u n i c a t i o ns y s t e m ,l n f i n i b a n d ,r d m a v i 上海大学硕士学位论文 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发 表或撰写过的研究成果。参与同一工作的其他同志对本研究所做的 任何贡献均己在论文中作了明确的说明并表示了谢意。 本论文使用授权说明 竺丑堡;同乙7o 本人完全了解上海大学有关保留、使用学位论文的规定,即: 学校有权保留论文及送交论文复印件,允许论文被查阅和借阅:学 校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:墟皇兰蛄燧名彳纽整吼盟国沙 ,也 上海大学顽上学位论文 第一章绪论 1 1 课题来源 本课题来源于上海大学网格e 研究院资助项目,项目编号:2 0 0 3 0 1 3 。 1 2 课题研究的目的和意义 随着超级计算机的发展,尤其是集群计算机的发展,如何提高集群计算机 互联网络的传输效率,从而提高集群计算机的效率,成为亟待解决的问题。 i n f i n i b a n d ix l 技术的出现很大程度上解决了这个问题。l n f i n i b a n d 定义了一个系统 级网络,用于连接处理器平台( 即主机节点) 输入输出平台以及输入输出设备 l i 】。由于采用光纤互联,并提供了专用的通信协议使得通信速率最大可达 3 0 g b s 。从而极大地缓解了节点的计算速度快,而网络通信速度慢这一矛盾。 由于l n f i n i b a n d 技术日趋成熟,急需有人能对i n f i n i b a n d 架构进行剖析、评 测和改进,从而能够适应具体的应用需求。本课题就是对l n f i n b a n d 进行深入的 剖析,并给出了简单的性能评测。最后还给出了一种改进的r d m a 实现,希望 能对日后集群计算机通信系统的研究有所帮助。 1 3 论文的主要研究内容 本论文是以作者攻读硕士学位期间承担课题的工作为基础,在第一章中阐 述了课题研究的来源、目的、意义。第二章概述了l n f i n i b a n d 体系架构;第三 章阐述了物理层接口:第四章剖析了链路层;第五章简单介绍了网络层:第六 章剖析了传输层:第七章剖析了传输层的软件接i :1 ;第八章给出了性能分析: 第九章给出了一种r d m a 的改进实现:最后第十章总结了全文。 本文的研究成果主要有以下3 项: 1 对l n f i n i b a n d 协议做了深入的剖析。 2 对基于l n f i n i b a n d 的集群计算机系统进行了性能评测,性能评测的指标 包括通信延迟、吞吐量和c p u 负载。 3 提出了一种改进的r d m a 实现,使得r d m a 不仅能应用于大报文的传 输,也能应用于小报文和控制报文的传输。从而使得传输小报文和控制报 文的时延平均降低了2 4 。 上海丈学硕士学位论文 第二章i n f i n i b a n d 体系架构( i b a ) 概述 2 1i b a 拓扑结构 i b a 的拓扑结构如图2 - 1 所示 图2 1i n f i n i b d 拓扑结构 在i b a 网络中主机和输入输出设备通过信道适配器( c h a n n e la d a p t e r ,以 下简称c a ) 、级联的交换机和路由器连接起来。 i n f i n i b a n d 的设计思路是通过一套中心机构( 中心i n f l n i b a n d 交换机) 在远 程存贮器、网络以及服务器等设备之间建立一个单一的连接链路,并由中心 i n f i n i b a n d 交换机来指挥流量,它的结构设计得非常紧密,大大提高了系统的性 能、可靠性和有效性,能缓解各硬件设备之间的数据流量拥塞,有效地解决了 p c i 等传统i 0 结构产生的通信传输瓶颈”。 2 2i b a 通信 i b a 所有的通信操作都是基于工作对列( w o r kq u g u c ) 之上的,工作对列 从创建时就成对出现( 一个发送队列,一个接收队列) 1 1 1 。因此在下文中把这 2 上海大学硕上学位论文 两个成对h 现的队列统称为q p ( q u e u ep a i r ) 。在通常情况下。在发送队列里存 放传输数据的指令( 即传输什么数据,用什么方式传输,传输到哪个节点以及 其它一些必要的参数) ,而接收队列里存放用于接收其它节点发送过来的报文的 内存地址。 如果用户进程之间要通过 b a 进行通信,那么用户进程必须生成一个工作 请求( w o r k r e q u e s t ) 。系统会将该请求封装成一个工作对列元素( w o r k q u e u e e l e m e n t ,w q e ) 并把它加入到合适的工作队列中去。c a 按照先进先出的顺序 来执行工作对列中的w q e 。当c a 成功完成指定的操作后,就返回一个完成队 列作元素( c o m p l e t i o nq u e u ee l e m e n t ) ,这个c q e 里包含了和它相对应的w q e 的必要信息,并把这个c q e 加入到完成队列( c o m p l e t i o n q u e u e ,c q ) 中。 每个用户进程都可能拥有多个q p ,每个q p 之间相互独立。每个用户进程 必须创建一个或者多个c q 并且确保每一个q p 都和一个c q 相关联。不过, q p 中的发送队列和接收队列不必关联到同一个c q 上。 因为有一些工作请求需要远端节点的确认( 因为要将确认包和数据包一起 发送) ,还有一些w q e 可能会使用多个数据包来传输数据( 因为要发送的报文 的大小可能会超过最大传输单元) ,所以c a 可能会同时处理多个w q e 。这就 意味着在c q 中,同一个工作对列所对应的c q e 的先后顺序必须和这个工作对 列中的w o e 的先后顺序相同。否则的话,就会因为无法确定顺序而得不到正 确的结果。 在发送队列中可进行3 类操作,它们分别是:发送操作( s e n d ) 、远程内 存访问( r e m o t e d i r e c t m e m o r y a c c e s s ,r d m a ) 操作以及内存绑定操作( m e m o r y b i n d i n g ) 。 上海大学硕上学位论文 2 3i b a 通信过程 t l r a a y e n s r p o n n e i w o r k l a y e r l 啪kl a y e r p h yl a y e r 图2 - 2i n f i n i b a n d 通信过程 图2 2 说明了i b a 的通信过程。i b a 对用户进程之问的远程通信提供了事 务支持。( 事务就是一系列操作的集合,在这个集合中的操作要么全部完成,要 么全部不完成。) 首先,用户进程将w q e 放入q p 再由c a 来解释执行w q e 。 其次,c a 解释发送队列中的操作,然后生成一个请求报文。如果这个报 文的大小超过了最大传输单元,c a 还会把这个报文拆分成几个数据包。然后 加上合适的报头后将数据包发送到端口逻辑。端口逻辑通过交换机和路由器中 继后,传送到指定的目的端口。 当 i 的端口接收到数据包后,耍先对数据包进行完整性验证。如果数据包 无误,c a 就把这个数据包关联到指定的q p ,并用这个q p 来处理这个数据包, 执行相应操作。如果有必要( 源端口需要应答) ,那么还要生成相应的应答报文, 并把它发刚源端口。 对于一些请求报文( 如s e n d ) ,c a 需要从接收队列中取出一个w q e 来 完成指定的操作。然后。c a 把对应于这个w q e 的c q e 发送到合适的c q 中。 2 4i b a 部件 2 4 1 连接线路和中继器 连接线路可以是铜缆、光缆或者是印刷电路板。中继器是一个完全透明的 4 上海大学硕士学位论文 设备,它是用来扩大连接线路的传输距离。 2 4 2 信道适配器( c a ) c a 是安装在主机节点或者输入输出设备节点的板卡。c a 的功能就是生成 和处理数据包。i b a 定义了2 种类型的c a 。分别是主机信道适配器( h o s tc h a n n e l a d a p t e r ,h c a ) 和目标信道适配器( t a r g e tc h a n n e la d a p t e r ,t c a ) 。h c a 提 供了一个用户接口,这个接口的功能由i b a 的动词( v e r b ) 所指定。但是, b a 并没有明确指定t c a 的语义。 c a 提供了一个可编程的d m a ( d i r e c tm e m o r y a c c e s s ) 引擎。这个引擎实 现了专门的保护机制,并且对本地和远程d m a 操作提供了支持。 一个c a 可以拥有多个端口,每个端口由子网管理器( s u b n e t m a n a g e r ,s m ) 分配一个或多个l i d ( l o c a l i d ) ,每个端口都拥有自己独立的发送和接收缓冲, 这样多个端口就能同时发送和接收数据包。各个端口的缓冲区划分给这个端口 的各条虚通道,每条虚通道都实现了流罩控制。 c a 还提供了内存地址转换和内存保护的机制( m e m o r yt r a n s l a t i o n p r o t e c t i o n ,m t p ) ,通过这个机制,c a 就能把虚拟内存地址转换成物理内存地 址并对访问权限进行验证。 为了和子网管理器进行通信每个c a 都驻留一个子网管理代理( s u b n e t m a n a g e m e n ta g e n t ) 。每个c a 都拥有一个全球唯一标识符( g l o b a lu n i q u ei d , g u i d ) ,由生产厂商提供。因为由子网管理器分配的l i d 并不是永久不变的( 每 次开机分配的l i d 都不一样) ,所以c a 的g u i d 就是c a 的永久标识符。此外, 生产厂商还应该为c a 的每个端口分配一个g u l d 。 2 4 3 交换机 交换机根据目标地址将数据包转发到指定的目的端口。这个目标地址由数 据包中的本地路由报头( l o c a lr o u t e rh e a d e r ,l r h ) 提供。i b a 的交换机主要 负责子网内数据包的传输。 2 4 4 路由器 路由器根据全局路由报头( g l o b a lr o u t e rh e a d e r ,g r h ) 来转发数据包。 i b a 的路由器负责子网间数据包的传输。 2 5i b a 特性 2 5 ,0 p ( o u e r yp a ir s ) q p 是用户进程和c a 之间的虚拟接口【1 】。每个c a 最多可以同时支持2 2 4 个q p 且q p 之间相互独立。q p 可以被认为是用户进程的私有资源,一个用 户进程可以同时使用多个q p 。 上海大学硕士学位论文 25 2 服务类型 每个q p 都要指定使用哪种服务类型,只有使用同一种类型的q p 之间才能 互相通信。所谓服务类型就是发送方和接收方之间连接方式,i b a 一共定义了 5 种服务类型。它们分别是: 可靠连接( r e l i a b l ec o n n e c t i o n ,r c ) :通信双方必须先建立连接,且接收 方必须给出应答。图2 3 说明了可靠连接服务如果一个本地进程如果要和远 程进程进行通信。那么这个本地进程必须为每一个远程进程创建一个q p 。举例 来说,现在有n 个节点,每个节点上运行着m 个进程。如果所有的进程都要用 r c 进行通信的话,那么每个节点就需要创建m 2 n 个q p ( 同一个节点进程之 间也用r c 通信) 。 r c 为什么是可靠的呢? 那是因为c a 可以通过包序列号来维护数据包的顺 序并且对所有的报文都能进行确认( a c k n o w l e d g e ) 。c a 会重试所有的通信错 误。在r c 中,用户进程可以侦测出各种各样的错误包括比特错误,接收缓 冲溢出,网络阻塞等等。 r c 中的确认并不是进程级之间的确认。也就是说,如果一个发出请求的进 程得到了确认,并不意味着接收进程收到并处理了该请求,而只是意味着这个 请求到达了目标节点。 i i 予 i t 【 j i i 图2 3 可靠连接服务 不可靠连接( u n r e l i a b l ec o n n e c t i o n 。u c ) :通信双方必须先建立连接,但 接收方无须给出应答。u c 和r c 一样只是对数据包不进行确认,也不会重发 丢失或者己损坏的报文。因为没有确认,所以u c 不支持r d m a 读操作和原子 操作。 不可靠数据报( u n r e l i a b l ed a t a g r a m ,u d ) :通信双方无须先建立连接, 且接收方无须给出应答。u d 允许用户进程同任何一个远程进程进行通信。图 2 3 说明了不可靠数据报服务。( 当然通信双方所使用的服务类型必须都为u d 。) u d 极大地改进了i b a 通信的可伸缩性。因为l i d 不需要事先建立连接, 所以一个进程只需要创建很少的q p 就能和很多远程进程进行通信 6 上海大学硕士学位论文 。l 一_ l 。“ 图2 - 4 不可靠数据报服务 可靠数据报( r e l i a b l ed a t a g r a m ,r d ) l 图2 5 说明了可靠数据报服务。 通信双方无须先建立连接,但接收方必须给出应答。r d 在节点间是面向连接 的,在r d 中每2 个节点之问通过端到端上下文( e i l d t o - e n dc o n t e x t ,e e c ) 来建立连接。在节点内,一个q p 可以和任何一个e e c 进行通信,几个q p 也 可以同时和一个e e c 通信。举例来说,现在有n 个节点,每个节点上运行着m 个进程。如果所有的进程都使用r d 进行通信的话,那么一个节点只需要创建 n 个e e c 和m 个q p 。 2 5 3 键( k e y s ) 图2 5 可靠数据报 i b a 用各种不同的键来实现保护和隔离,这些键由管理实体分配和使用”。 这些键包括:m k e y 、b k e y 、p k e y 、q _ k e y 、l _ k e y 、r k e y 这些键 的具体作用将在以后的章节中陆续讲述。 上海大学硕上学位论文 2 5 4 虚拟内存寻址 如果用户进程在工作请求中用到了虚拟内存地址,c a 能够将虚拟地址转 换成物理地址。为了实现这样的转换,每个用户进程必须先向c a 注册一个虚 拟内存区域,然后c a 返回给用户进程2 个内存句柄这2 个句柄分别是lk e y 和rk e y 。如果本地的进程要访问这个内存区域,那么就必须使用lk e y 。 同样,由于i b a 支持远程访问一个已注册的内存区域,个进程如果要远程访 问一个内存区域,必须提供该内存区域的rk e y 和相应的虚拟内存地址。 由于有了内存注册机制,i b a 可以为内存的访问提供逻辑上地址连续的缓 存。也就是说,这个缓存里的内存单元的地址在物理上可能是连续的,也可 能足不连续的。 25 5 保护域( p r o t e c t i o nd o m a i n ) 内存注册机制不仅能实现虚拟内存的寻址,还增强了内存的保护防止无 意的和来授权的访问峨一个用户进程可能会同时和很多进程通信,但并不是 每一个进程都可以访问这个进程注册的内存区域。所以i b a 提供了保护域。保 护域可以让用户控制哪些q p 可以访问哪些内存区域。 2 5 6 分区( p a r t i t i o n ) 每一个终端节点必须被划分到一个或者多个分区中,分区管理器为每一个 c a 的端1 :3 分配一个pk e v “。当发送数据包时,q p 或者e e c o n t e x t ( e e c o n t e x t 用于可靠数据报服务) 将分配给它的pk e y 加入数据包;当接收数据包时。 q p 或者e ec o n t e x t 就会检查数据包的pk e y 是否与分配给它的pk e y 一致。 如果pk e y 不相同,那么这个数据包就会被丢弃。也就是说,只有在同一个分 区中( 即pk e y 相同) 的q p 或者e e c o n t e x t 才能相互通信。 2 5 7 虚通道( v ir t u a ll a n e ) 虚通道机制可以让一条物理链路被当作多条虚拟的链路来使用【l l 。每一条 虚通道都有自己的接受和发送缓存。i b a 在一条链路中最多支持1 6 条虚通道 ( v l 0 - v l i5 ) 。所有的端口都必须支持v l l5 ,这条虚通道专门用于子网管理。 其余的1 5 条虚通道( v l o v l l 4 ) 是数据虚通道,所有的端口必须实现一条数据 虚通道( v k ) ,但其它数据虚通道的实现是可选的。 一个端口具体使用哪条数据虚通道是由子网管理器决定的。虚通道的选择 表现在数据包中的服务等级( s e r v i c el e v e l ,s l ) 字段( 这个字段将会在下一 节详细解释) 。每条虚通道都有自己的流量控制机制。因此如果其中一条虚通 道发生阻塞也不会影响到其它虚通道。 2 5 8 服务等级( s e r v i c el e v e i ) i b a 一共定义1 6 个s l s l 有2 个主要功能,它们分别是s l 和v l 之间 的映射( 也就是虚通道的选择) 和分区之间的通信流隔离。 上海大学硕士学位论文 虚通道的选择就是通过s l 和v l 之间的映射来实现的【1 1 。每个数据包中都 会包含一个s l 字段,当一个节点( 交换机,路由器、终端节点) 要转发这个 数据包时。就会根据子网管理器分配给这个节点的s l v l 映射表来决定这次转 发用哪一条虚通道。显然,如果一个节点只支持一条虚通道,那么所有的s l 都会被子网管理器映射到v k ;如果一个节点支持多条虚通道,那么子网管理 器就会根据一定的策略选择合适的虚通道。此外,因为传送给0 p o 的子网管理 包( s m p ) 只能用v l l 5 来传输,所以i b a 会忽略s m p 的s l 字段。v l l 5 不是 数据虚通道而是管理虚通道因此也只有子网管理包才能通过它来传输。 服务等级的另一个功能就是实现分区之间通信流的隔离。这可以通过把某 些s l 分配给一个特定的分区。这样就能把这个分区的通信流和其它的通信流 隔开,从而让这个分区中的所有节点充分地利用带宽。 259 静态比特流控制( i n j e e r i o nr a t ec o n t r 0 1 ) i b a 支持多种不同的连接比特率,最低的比特率是2 5 g b s ( i x ) ,还有l o o b s ( 4 x ) 和3 0 g b s ( 1 2 x ) 。为了能让不同比特率的设备互联,i b a 提供了静态比 特率控制的机制,以防止因为比特率的不同而造成丢包i l i 。这个机制的实现如 下: 每个目标端口都包含一个t i m e o u t 值,这个值是根据目标端口的比特率和源 端口的比特率之比来决定的。如果目标端口和源端口的比特率相等,那么 t i m e o u t = 0 。如果t i m e o u t 不为0 ,那么源端口就会把目标端口的l i d 和t i m e o u t 值放入静态比特率控制表中。除非目标端口的t i m e o u t 过期( 过期是指经过一定 的时间,目标端口的l i d 从静态比特率控制表中删除) ,否则源端口不会向目 标端口发送任何一个数据包。 2 5 1 0 多播( f l u i t l e a s t i n g ) 为了让节点集合之间的通信更加便捷,i b a 提供了多播机制【l i 。若干个节点 就可以形成一个组,每一个组有一个g i d 。节点可以通过一些管理操作加入和 离开这个组。这个组的路由信息都会注册在交换机中。如果一个数据包被发往 一个组,那么这个组中的所有成员节点都会收到这个数据包。 25 1 j 动词( v e r b s ) i b a 把c a 和o s 之间的服务接e l 描述为一个语义集,这个语义集就叫做 动词。动词不是a p i 而是关于a p i 的规范。各个厂商如果要生产基于i b a 的设备,它所提供的a p i 必须实现动词中描述的服务功能。 2 6 信道和内存语义 i b a 同时向用户提供了信道和内存语义。信道语义( 也就是发送接收) 采 用的通信模式就是发送方将报文发送给接收方,这个报文只是标识了目标q p , 而由接收方来决定这个报文在收到后放在哪块内存空间【1 1 。 9 上海大学硕士学位论文 内存语义允许节点直接读写远程节点的虚拟内存地址【1 1 在内存语义中所有 传输数据的工作部由发送方负责接受方只负责在收到请求后和自己缓存的内 存单元通信。信道和内存语义具体来说就是基于q p 的发送队列和接收队列的 几个操作。 2 61 发送操作 发送操作的请求中包括了一个列表。发送请求就是通过这个列表把从本地 缓存中取出的数据( 这些数据的物理地址町能是不连续的) 组合成一个单的 报文然后把这条报文发送到接收方。 2 62r d 姒读操作 r d m a 读操作读取远程节点缓存中的数据。然后把读出的数据写入本地的 缓存中。 2 63r d 姒写操作 r d m a 写操作读取本地缓存中的数据然后把读出的数据写入远程节点的 缓存中。r d m a 写操作请求中包含了一个列表。这个列表包含了本地缓存中的 数据段( 即要写的数据) 和远程节点的虚拟地址( 即写到哪里) 。 26 4 原子操作 i b a 支持2 种原子操作,它们分别是比较交换( c o m p a r ea n ds w a p ) 和取 回加( f e t c ha n d a d d ) l i j 。比较交换是指发送方指定一个比较值,一个替换值以 及一个内存单元。接收方找剑这个内存单元,将这个单元中的值和比较值比较, 如果想等就把这个单元中的值替换为替换值;如果不等就不进行替换操作。然 后接受方把这个内存单元中的值返回给发送方。取回加是指发送方指定一个增 量和一个内存单元,接收方在收到请求后先返回指定单元的值,然后将该单元 中的值加上指定的增量后写入原来的内存单元。 2 6 5 内存绑定操作 内存绑定将一个已分配的内存窗i = 1 绑定到一个已经创建的内存区域的一个 地址范围。关于内存窗口和内存区域的概念会在后文中详细阐述。 2 6 6 接收操作 这个操作描述了发送过来的报文应该存放到哪个本地缓存。接收操作的工 作请求包含了一个列表。这个列表里有几个本地缓存段。发送过来的报文内容 按照指定的顺序分别存放到这些本地缓存段中。接收操作的工作请求也可以没 有这个列表,这种工作请求用来接收立即数或者接收一个空发送操作。 l o 上海大学硕士学位论文 2 7i b a 层次结构 i b a 的层次结构如图2 - 6 所示。i b a 的操作可以描述为一系列的层。每一层 的协议独立于其它层。每一层的协议依赖于下层提供的服务,同时也为上层提 供服务i l i 。 j ,二一、 0 1 - i 二二二 【跏 p p e r l e b e l ”一卜一艘些蚋螋一4 - i jc o n s u m e r 歹 t r a n s p o r t l a y e r n e t w o r k l 哪 e r l h k l a y e r 厂、 m a o 舛f a a o n s i s a g i _ - - 。 r w o r k l i n k墅型 e n c o d m g m e c h a z z o w 土c c c s ; 4 c 栅d , c o a t r o l , p h ”,f 口,s i 幽+ l 啊口 e i l d 赴s w i t c h 2 7 1 物理层 一1 二二:二芋 图2 - 6i b a 的层次结构 r o u t e r勘d n o d e 物理层定义了比特如何在物理链路上传输,并且定义了包的开始和结束的 分隔符( s t a r t d e l i m i t e r e n dd e l i m i t e r ) 以及包之间的传输间隔( i d l e s ) 【1 1 。 2 7 2 链路层 链路层定义了包( p a c k e t ) 的格式,以及基于包上的操作的协议( 比如流量 控制协议、包路由协议等等) 1 1 。在链路层中有两种类型的包: 链路管理包:可以用于在端口之间协商一些参数( 比如比特率、连接带宽 等等) ,也可以用于传输信用证( 用于流量控制) 。链路管理包只在链路层中传 输。 数据包:包含了i b a 的操作和数据。数据包拥有一系列的报头见图2 7 : ( 一个数据包不一定包括图中的全部报头,也可能只包括其中的一个子集,视 数据包具体的种类而定) 上海人学硕上学位论立 任何一个数据包一定要包含l o c a lr o u t eh e a d e r ( l r h ) ,l r h 定义了在子 网内传输的源端口和目标端口以及这个包在那条虚通道( v l ) 用什么服务等级 ( s l ) 传输。 子网管理器为每一个子网中的端口分配一个唯一的l i d ,源端口在发送数 据包时把目标端口的l i d 放入l r h 中。如果这个数据包要在不同的子网之间 进行传输,那么源端口就把路由器的l i d 放入l r h 中。 每一个数据包都包含了两个c r c 校验。个是恒定c r c 校验( i c r c ) , 用于对数据包在传输过程中不变的部分进行循环冗余校验;另一个是可变c r c 校验( v c r c ) 用于对整个数据包进行循环冗余校验。 链路级流毒控制是一个基于信用证( c r e d i t ) 的流量控制协议i 。每一条虚 通道都有一个信用证。接受方在一定的时间间隔内向发送方发送信用证,告知 自己缓冲区的容量。如果接受方的缓冲区空间用完,则发送方停止发送数据直 至缓冲区再次空出来。 2 7 3 网络层 l i n kl a y e rp r o t o c o l 图2 7 b a 数据包格式 网络层描述了数据包在不同子网之间进行传输的协议”j 。如果一个数据包 要在不同子网之间进行传输那么这个数据包必须包含g i o b a lr o u t eh e a d e r ( g r h ) 。在g r h 中用g i d 来指明源端口和目标端口( g i d 必须符合i p v 6 地 址的格式) 。路由器根据g r h 中的内容来转发数据包。并且修改g r h 中的一 些字段。但是g r h 中的g i d 是不变的,并且由i c r c 来确保g i d 在传输过程 中没有被修改。路由器只是重新计算v c r c ( 因为路由器修改过了一些可变的 字段) ,但决不会修改i c r c ,这样就能确保包在传输过程中的完整性。 每个子网都有一个唯一的子网标识符,即予网前缀( s u b n e tp r e f i x ) ,每一个 端口都有一个全球唯一标识符( g u i d ,由厂家提供) 。g i d 就是由子网前缓和 端口的全球唯一标识符组成的。要在不同子网之间传输数据包,源端口将目的 兰 上海大学硕土学位论文 端口的g i d 放入数据包的g r h 中,把路由器的l i d 放入l r h 中,传输到目标 端口所在的子网的路由器时,这个路由器再把目标端口的l i d 放入数据包的 l r h 中。 2 7 4 传输层 网络层和链路层的协议确保把数据包传输到正确的端口,而传输层的协议 则保证把数据包传输到合适的q p ( q u e u ep a i r s ,用户进程和信道适配器之间的 接口) ,并且指示q p 应该如何处理包中的数据i ”。 当用户进程要发送的报文( m e s s a g e ) 大于最大传输单元( m t u ) 时,发送 方的传输层就负责把这个消息分割成若干个数据包。当接受方收到这些数据包 时,传输层再把它们重新连接起来,如图2 - 8 所示。 p a c k n 图2 - 8传输层组装报文的过程 所有通过i b a 协议传输的数据包都必须包含b a s et r a n s p o r th e a d e r ( b 丁h , 非i b a 协议的包不必包含) 。在b t h 中指定了目标q f 、操作码、包序列号以 及分区信息。 如上所述,用户进程的报文可以被分割成若干个包操作码指定了这个数 据包是报文的第一个包、中间的包、最后一个包还是这个报文只有这一个包。 操作码还指定了应该对数据包进行何种操作( s e n d 、r d m aw r i t e 、a t o m i c 等 等) 。 包序列号( p a c k e t s e q u e n c e n u m b e r ,p s n ) 在通信建立的时候就初始化了。 发送方的q p 每当创建一个数据包的时候,就把包序列号加上一个增量。接受 方的q p 根据p s n 来确定是否有过丢包( 收到的包的p s n 和预期的p s n 不符) 。 在可靠传输服务中( 就是不论接受方收到的包是否正确都必须给发送方一个 应答) 如果发生丢包,那么接受方应该把这个包之后的所有的包都丢弃掉,直 至收到发送方重新发送过来的那个丢失包:在不可靠服务中如果发生丢包,接 受方就必须放弃当前的操作,丢弃这条报文的所有的包,转而去处理下一条报 上簿大学硕上学位论文 文。 e t h ( e x t e n d e d t r a n s p o r t h e a d e r ) 有很多种比如r d m a e t h ,a t o m i c e t h 等等。一个数据包包含哪些e t h 是由服务类型和b t h 中的操作码所决定的。 2 7 5 上层协议 如图2 - 9 所示,i b a 支持不同用户进程任意数目的上层协议。此外,为了 实现一些管理功能,i b a 还为此定义了一些协议。这些管理协议单独归入到子 网管理和子网服务中,它们都有一些独特的特性。 图2 - 9i b a 的上层协议 子网管理:子网管理实际上包括了子网管理器( s u b n e t m a n a g e r 。s m ) 的 应用程序和子网管理代理( s u b n e tm a n a g e m e n ta g e n t ) 这两部分。每个子网只 需要一个子网管理器,并且子网管理器町以驻留在子网内任何一个节点上( 包 括路由器和交换机) 。子网管理采用一种叫子网管理包( s u b n e tm a n a g e m e n t p a c k e t ,s m p ) 的特殊的包,这种包通过一个特殊的q p ( q p 0 ) 来传输。驻留 在节点上的子网管理代理都会处理来自子网管理器的请求,子网管理器则不断 的向各个节点上的子网管理代理发送子网管理包来进行各种管理操作i l 。 通用服务:如下图所示,通用服务代理( g e n e r a ls e r v i c ea g e n t ,g s a ) 包 含了很多子网服务代理。其中一些服务并不要求一定要实现。通用服务采用一 种叫做通用管理包( g e n e r a lm a n a g e m e n tp a c k e t ) 的特殊的包这种包通过一个 特殊的q p ( q p i ) 来传输,这个q p 也叫做通用服务接口( g e n e r a ls e r v i c e i n t e r f a c e ,g s i ) 。每个端口都有一个q p l ,q p l 上收到的任何通用管理包都必 须由驻留在这个端口中的通用服务代理来处理。 i b a 规范中定义的通用服务包括七大类,每类均有自己专用的代理:子网 监视s a :提供节点相关信息,并登记该节点所支持的通用服务类型:通信管理 c m :在节点间建立关闭q p 通信通路,并予以管理;性能管理p m :管理者借 此对i b a 部件进行性能统计和错误信息统计;背板管理b a :该类管理提供的 上海大学硕士学位论文 方法用来将消息传到子网外的部件: 的种类及其位置:s n m p 隧道管理: 包;用户自定义1 1 7 j 。 2 8 结论 设备管理d m :涉及探测网络上不同设备 说明如何在i b a 网络中传送s n m p 管理 本章给出了i n f i n i b a n d 体系架构的总体框架,解释一些在后文中经常用到的 术语和概念。至于各个部分的细节,本文会在后文中详细的描述。 上海人学硕上学位论文 3 1 栩述 第三章物理层接口 本章描述了物理层提供的服务以及物理层和链路层之间的逻辑接口。逻辑 接口如图3 - l 所示: l i f t k - p : j y s t c a l i n h r h c e f u n ku l y 甜u 晡巾k h 竹嘲喇斜埒n 曲m l o g i c l , n ks e n d i il n r e e - i - i l m ie i - - - i i 卧脚s e n d - p t 1 j w ¥r e c e r e p h y 摹k t ll a y e r l 狮k - t e c h n o 唰d e 雄n 蛳tf 啊研啪 u r i k w 日由姊0 峨曲掘舯d - 口v o l l 4 q e p a c k e t f r 越a , n 0 图3 1物理层和链路层之间的接口 3 2 物理层提供的服务 物理层的接口能使上层不依赖于物理层的具体实现f l l 。下列的报文就是在物 理层接收逻辑和链路接收逻辑之间传递的报文。 3 3 物理层接收逻辑和链路层接收逻辑之间的接口 33 1p h y l i n k p h y l i n k 有2 个值,分别是u p 和d o w n 。如果p h y l i n k = d o w n ,那么表示 物理链路不可用。如果p h y _ l i n k = u p ,那么表示物理链路可用。 3 3 一l i n i t t r a i n 这条报文用于物理链路在出错时重新连接。 3 33r c v s t r e a m 这条报文用于从物理层接收逻辑向链路层接收逻辑传递数据和控制流。每 当接收到一个控制信号或者收到一个字节的数据时,r c v _ s t r e a m 就会被发送一 1 6 上海大学硕士学位论文 次。r c vs t r e a m 的值如下表3 - l 。 值描述 d a t a 数据包或者链路包的内容 码字出错 s d p 数据包开始界定符 s l p 链路包开始界定符 e g p 正确的包结束界定符 e b p 错误的包结束界定符 i d l e 物理链路处于空闲状态 表3 - 1 r c vs t r e a m 值及其描述 3 4 物理层传送逻辑和链路层传送逻辑之间的接口 下列的报文都是在物理层传送逻辑和链路层传送逻辑之间发送的。 3 4 1 i t - s t r e a m 这条报文用于从链路层传送逻辑向物理层传送逻辑传递数据和控制流。每 当接收到一个控制信号或者收到一个字节的数据时,r c v _ s t r e a - i 就会被发送一 次。r c v s t r e a m 的值如下表3 2 。 值描述 d a t a数据包或者链路包的内容 s d p数据包开始界定符 s l p 链路包开始界定符 e g p正确的包结束界定符 e b p 错误的包结束界定符 i d i e 物理链路处于空闲状态 342 i tr e a d y 表3 - 2r c v - s t r e a m 值及其描述 当物理链路已经准备好发送一个新的数据包时,物理层传输逻辑就会向链 路层传输逻辑发送这条报文。这条报文有2 个值:r d y 一就绪;w a i t 一等待。 上海大学硕上学位论文 4 1 链路状态 4 - 1 : 第四章链路层 不同的事件会触发链路层进入不同的状

温馨提示

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

评论

0/150

提交评论