转载:下一代轻便高效交易系统技术选型研究(二)

本文转自:http://blog.sina.com.cn/s/blog_4db72f1501010d9e.html


为了准备下一代轻便高效交易系统,我对一些传统技术的发展做了粗浅研究。借blog渠道发布出来,请各位行家里手批评指正。---武剑锋

以太网技术始于1973年的施乐实验室。经过25年的持续发展,每秒传输波特率从发明时的2.94兆扩展到广泛应用的十兆、百兆和千兆。而到了2002年,伴随着IEEE802.3ae发布,标志着万兆以太网作为对千兆以太网自然升级的确定。其继承了许多与之前以太网标准相似的有利特点,同时又发展了新的设计,提供了更多的物理接口,更宽带宽和更长的传输距离。

万兆以太网的MAC子层取消了对传统 CSMA/CD介质控制方式的支持,只允许进行全双工传输,从而使得万兆以太网的传输不受CSMA/CD冲突字段的限制,突破了局域网的概念,进入到了城域网和广域网范畴。

万兆以太网为了在广域网达到10Gb/s的高速率,采用SONET/SDH网络中的OC-192c帧格式传输(9.58464Gb/s),这就需要在物理子层实现从以太网帧到OC-192c帧格式的映射功能。万兆以太网对以太网帧格式进行修改,采用了HEC(Header-Error-Check,头部错误检测)策略,在以太网帧中添加了"长度"字段和"HEC"字段。同时,为了在定帧过程中方便查找下一个帧位置,同时又确保最大帧长为1518字节,所以把原来"前导码"字段的两个字节改用为"长度"字段,然后对前面的8字节进行CRC-16校验,将最后得到的两个字节作为"HEC"字段插入SFD之后,DA字段之前。

万兆以太网的帧结构与SDH帧结构相比,做了大量的简化,使得修改后的以太网对抖动不敏感,对时钟的要求不高,减少了许多原SDH中不必要的开销。与千兆以太网相比,增强了物理层的网络管理和维护,可在物理线路上实现保护倒换。其次,避免了繁琐的同步复用,信号不是从低速率复用成高速率流,而是直接映射到OC-192c净负荷中。

与SONET不同的是,运行在SONET上的万兆以太网依然以异步方式工作。万兆网物理层的WIS(WAN接口子层)将万兆以太网流量映射到SONET的STS-192c帧中,通过调整数据包间的间距,使OC-192c略低的数据传输率与万兆以太网相匹配。

万兆以太网标准的物理层可进一步细分为最常见的双绞线RJ-45接口以及5种光纤接口:850nm

LAN接口(50/125μm多模光纤,最长65m)、1550nm

LAN接口(单模光纤)、1310nm宽频波分复用WWDM

LAN接口(66.5/125μm多模光纤,最长300m)、1550nm

WAN接口(单模光纤,最长40km)和1310nm

WAN接口(单模光纤,最长10km)。

由于万兆以太网没有采用载波侦听多路访问和冲突检测(CSMA/CD)协议和访问优先控制技术,简化了访问控制的算法,从而简化了网络的管理。网络管理者可以用实时方式,也可以用历史累积方式轻松地看到第2层到第7层的网络流量,允许"永远在线"监视,能够鉴别干扰或入侵监测,发现网络性能瓶颈,获取计费信息或呼叫数据记录。

另外一个独立发展出来的技术InfiniBand,于2000年面市。除了传输速率的提升之外,基本原理与以太网有较大不同。经过十多年的发展,逐渐在高速网络技术中占有一席之地。其使用基于信任的、流控制的机制来确保连接的完整性。一个消息的大小最大可以达到2G字节,消息由一系列数据分组组成,数据分组的大小从256b到4KB可变。

InfiniBand

采用点到点的、基于通道的消息转发模型,可为两个不同的节点提供多种可能的通道。InfiniBand交换机通过子网路由分组,InfiniBand路由器将多个子网连接在一起。数据在源和目的之间的转发依赖于InfiniBand交换机和InfiniBand路由器,而不是靠具体的总线或者是环结构。这样的设计使得其扩展性非常高,在一个子网内可支持上万个结点,而每个网络中可有几千个子网。在每个子网内有一个管理器,其在路由分组、映射网络拓扑、在网络内提供多个链路、监视性能方面起决定性的作用。子网管理器也能保证在特别通道内的带宽,并为不同优先权的数据流提供不同级别的服务。

当前InfiniBand组网的距离比以太网要小,主要用于一个数据中心内部。对于光纤、单模的收发器,在基本数据速率的情况下,InfiniBand的最佳距离大约是300米。

在网络带宽发展到万兆以后,同时4万兆和10万兆的技术也日趋成熟,传统的TCP/IP技术出现了一些难以调和的矛盾。TCP/IP在数据包处理过程中,要经过操作系统系统调用,处理器执行级别在用户层和内核层之间多次切换,数据在内存、处理器高速缓存和网络控制器缓存之间进行多次往返复制。特别是,处理器发展以增加核心数目为主,核心主频多年来并没有出现十倍以上的增幅,单一处理器核心速度、内存带宽的增长与网络带宽的增长出现了不匹配,造成了网络延迟效应的加剧。

设计大师们参考DMA技术想出了RDMA技术。DMA(Direct Memory Access)技术是计算机单机内部的一个成熟技术,通过特定的硬件子系统或者DMA控制器,允许不经过中央处理器独立地在系统内存与外设之间交换数据,中央处理器只要在传输开始时启动DMA控制器,在传输完成之后,DMA控制器触发中断。最重要的应用场景是磁盘控制器、网卡等。远程直接内存访问(Remote Direct Memory Access,RDMA)是指在网络连接的两台机器间,通过类似于DMA的原理,在把数据从一个计算机快速移动到另外一个计算机的存储器的过程中。

当一个应用执行RDMA读或写请求时,在不需要任何内核内存参与的条件下,不会在用户空间和内核空间之间进行任何数据复制,RDMA请求从运行在用户空间中的应用中发送到本地网卡,然后经过网络传送到远程网卡。RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。用于操作的远程虚拟内存地址包含在RDMA信息中。远程应用除了为其本地网卡中注册相关内存缓冲区外,不需要做其它事情。远程计算机中的中央处理器也不参与输入的RDMA操作 。

虽然RDMA最早出现在InfiniBand技术中,但是在传统的网络硬件上也可实现相同机制。采用RDMA来获取高性能的协议包括Sockets Direct Protocol、SCSI RDMA Protocol(SRP)和Direct Access File System(DAFS)。

采用RDMA的通信库包括
Direct Access Provider Library(DAPL)、
Message Passing Interface(MPI)

Virtual Interface Provider Library(VIPL)。

其中iWARP/RDMA是一类基本构造块;还有iSER是用于RDMA的iSCSI扩展,充分利用了RDMA的功能。

一个典型的基于RDMA应用的程序结构大致如下:

(1)得到设备清单,清单上的每一个设备都要有一个名字和一个全球唯一标识符(Globally Unique Identifier,简称GUID);

(2)根据名字或者GUID打开指定设备,并对设备的性能进行检查(包括共享的接收队列等);

(3)分配一个保护区域,以便存储信息,允许并限制用户只能与惟一的用户进行传递,其中包括地址处理,队列,内存区域,共享的接收队列;

(4)注册一个内存区;

(5)创建一个完成队列,一个完成队列包含对完成工作的要求,每个要求将在完成队列中产生一个队列完成事件,队列完成事件用来判读工作要求是否成功的完成了;

(6)创建一个队列,包含发送队列和接收队列。并进入准备发送状态;

(7)利用队列进行通讯,完成任务要求;

(8)进行清理,反序清除已创建的数据:删除队列,删除完成队列,注销内存区,释放保护区,关闭设备。

综上所述,未来系统在采用高速网络技术方面,存在两种方法。一是采用RDMA技术,旁路操作系统和TCP/IP协议栈来缩短延迟的方法,由于其和传统软件设计方法不太一致,需要重新改写软件。二是利用内核众多的发展趋势,固定某一个内核专门负责网络通信,但是仍然采用传统操作系统调用和TCP/IP协议栈的方法,这种方法下,需要调优的是多线程的设计以及调度方式。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值