CN101247393A - 用于防止ip欺骗和促进专用数据区的解析的系统和方法 - Google Patents

用于防止ip欺骗和促进专用数据区的解析的系统和方法 Download PDF

Info

Publication number
CN101247393A
CN101247393A CNA2008100099219A CN200810009921A CN101247393A CN 101247393 A CN101247393 A CN 101247393A CN A2008100099219 A CNA2008100099219 A CN A2008100099219A CN 200810009921 A CN200810009921 A CN 200810009921A CN 101247393 A CN101247393 A CN 101247393A
Authority
CN
China
Prior art keywords
identifier
request
connect
communicates
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008100099219A
Other languages
English (en)
Other versions
CN101247393B (zh
Inventor
M·A·科
R·J·雷西奥
J·A·瓦尔加斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101247393A publication Critical patent/CN101247393A/zh
Application granted granted Critical
Publication of CN101247393B publication Critical patent/CN101247393B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Abstract

本发明提供了一种用于在系统和网络连接请求中防止IP欺骗和促进对专用数据区的解析的系统和方法。利用所述系统和方法,诸如Q_Key的高阶比特这样的标识符被用于确定通信连接请求是否始于特权过程。第二标识符用于指定通信连接请求的专用数据区是否利用了预定结构或格式的预定字段。只有当所述第一标识符指定该请求始于特权过程时,才准许进行对所述请求的处理。基于所述第二标识符的设置,从所述专用数据区的预定字段中检索特定信息,以便在建立所请求的通信连接时使用。

Description

用于防止IP欺骗和促进专用数据区的解析的系统和方法
技术领域
本申请一般涉及一种改进的数据处理系统和方法。更具体而言,本申请针对的是一种用于在系统区域网连接请求中防止网际协议(IP)欺骗和促进专用数据区的解析的系统和方法。
背景技术
在组网协议中,提供用于确保只有特权或受信应用才能够访问特定资源的保护是重要的。换句话说,组网协议能够依赖于这样的事实是重要的,即可以相信特定资源是不可被可能有意或无意破坏网络操作的应用或连接到网络的数据处理系统访问的。
举例来说,在诸如因特网这样的传输控制协议(TCP)网络中,非特权应用一般不能够伪造源网际协议(IP)地址,并且通常被防止使用特定的源端口。此外,不允许非特权客户机绑定(即建立软件链路)到任何地址,并且不允许其发送原始以太网分组(即未通过TCP/IP编程接口处理的数据分组)来绕过主机栈(host stack)。这是因为原始套接字不可通过非特权应用访问。因此,TCP daemon(后台程序)过程能够作为IP连接建立的一部分假设所提供的远程IP地址是有效的,除非伪造者(即给出未认证IP地址的非特权应用)在远程客户机具有根访问(root access)。
在系统区域网环境中,例如InfiniBandTM网络体系结构环境,通过InfiniBandTM体系结构规范卷1和2,版本1.2中所描述的多个机制促进了TCP/IP通信,该规范可从www.infinibandta.org/specs/处的InfiniBandTM贸易协会获得。出于讨论本发明的目的,假设人们熟悉InfiniBandTM规范,其可以很容易从InfiniBandTM贸易协会获得,并且因而,在此不再提供对InfiniBandTM网络上的TCP/IP通信中所涉及的所有机制的详细解释。
当应用需要将要在连接建立期间使用的IP地址时,例如对于在InfiniBandTM网络环境上的TCP/IP连接,通常在通信管理请求(CM REQ)消息的专用数据区中传达IP地址。然而,由于提供给接收CM REQ消息的监听者的远程IP地址不可以被假定为是认证了的(authentic),因此这并没有实现TCP/IP连接建立的语义。换句话说,随着允许TCP daemon信任由远程客户机提供的远程IP地址的TCP/IP网络一起使用的相同保护机制并不是关于InfiniBandTM网络中CM REQ消息的专用数据区而呈现的。因此,伪造者可以在CM REQ消息的专用数据区中插入未认证的IP地址,并且由此获取对远程系统资源的未授权访问。因而,无法知道用户模式应用只不过没有虚构IP地址并且将其提交作为正常的CM REQ专用数据的一部分。这是因为,在InfiniBandTM网络中,用户空间消费者可以提供想要作为CM专用数据来使用的任何数据。因而,有可能用户空间消费者可以潜在地采用此来进行IP欺骗。也就是说,用户空间消费者可以将未授权的IP地址放入专用数据区,并且由此能够建立通信连接并且访问用户空间消费者不应该访问的远程资源。
发明内容
说明性实施例提供了一种机制来消除用户空间消费者通过在InfiniBandTM网络中的通信管理请求(CM REQ)消息的专用数据区内提供未授权的IP地址来进行网际协议(IP)欺骗的能力。此外,说明性实施例提供了一种协议,由此可以读取CM REQ消息的专用数据区中所提供的数据,并且将其解释用于TCP/IP连接建立和通信。
利用说明性实施例的机制,CM REQ仅被限制于特权消费者。这可以通过检查所述CM REQ中所提供的Q_Key,由连接建立事务的被动方(passive side)来检验。利用说明性实施例的机制,仅准许指示所述CMREQ来自特权消费者的受控Q_Keys建立对于TCP/IP通信的通信连接。在一个说明性实施例中,通过使用具有指定CM REQ消息的始发方是否是特权应用的这些Q_Keys的高阶比特的Q_Keys,有可能确保只有特权消费者才可以通过所述CM REQ消息来处理连接建立。如果设置了Q_Key的高阶比特,那么所述Q_Key与关联于特权应用的特权队列对(privilegedqueue pair)相关联。通过检查所述Q_Key的该高阶比特,所述连接建立的被动方有可能能够确定在CM REQ消息中提供的IP地址是否是认证了的并且可以被信任。这消除了用户空间消费者可以提供要用作CM REQ中的专用数据的任何东西的可能性。
此外,作为说明性实施例的进一步的特征,为了限制可以在系统区域网(SAN)环境(例如InfiniBandTM网络)中的CM REQ专用数据字段中传递的信息的类型,使用了新的服务标识符(ID)。使用该新的服务ID通知InfiniBandTM结构(即交换机、通道适配器等)将要以定义的方式解释所述CM REQ专用数据字段。因而,举例来说,用于连接建立的IP地址和其它关键信息在CM REQ专用数据区中具有其自己的定义字段。因此,连接建立事务的被动方知道在CM REQ的专用数据区中的什么地方获得在主动方与被动方之间建立TCP/IP连接所必需的信息。
在一个说明性实施例中,提供了一种用于处理通信连接请求的方法。所述方法可以包括:确定通信连接请求是否具有指示所述通信连接请求始于特权过程的第一标识符,并且如果所述通信连接请求始于特权过程,则确定所述通信连接请求是否具有指定所述通信连接请求的专用数据区利用预定格式下的预定字段的第二标识符。所述方法可以进一步包括:依照所述预定格式的预定字段,处理所述通信连接请求的专用数据区中的信息。此外,所述方法可以包括:使用所述通信连接请求的专用数据区中所处理的信息来建立通信连接。
所述通信连接请求可以是通信管理请求消息,其具有专用数据区以及在其中提供了所述第一和第二标识符的报头(header)。所述第一标识符可以是Q_Key。所述第二标识符可以是通信管理请求消息中的服务标识符。如果所述通信连接请求始于特权过程,则可以将所述第一标识符设置成第一值,并且如果所述通信连接请求始于非特权过程,则可以将所述第一标识符设置成第二值。只有操作系统或特权过程可以将所述第一标识符设置成所述第一值。
数据处理系统可以是系统区域网中的主节点。可以在所述主节点的通道适配器中实现所述方法。所述专用数据区中的信息可以包括所述专用数据区的预定字段中的源网际协议(IP)地址或目的IP地址中的至少一个。所述通信连接请求可以包括使用远程直接存储器访问(RDMA)操作从另一数据处理系统传递的一个或多个不可靠数据报分组。
可以在所述数据处理系统的第一主节点中实现所述确定步骤、处理步骤和建立步骤。所述方法可以进一步包括:在所述数据处理系统中的第二主节点中,接收来自运行在远程主节点中的过程的通信连接请求,以及在所述第二主节点中,确定所述过程是否是特权过程。所述方法还可以包括:如果所述过程不是特权过程,则在所述第二主节点中修改所述通信连接请求,以便将所述第一标识符设置成与关联于所述过程的队列对的第一标识符的值相对应的值。此外,所述方法可以包括:将所述通信连接请求从所述第二主节点发送至所述第一主节点。如果所述第一标识符被设置成指示所述通信连接请求始于特权过程,那么可以将所述第一标识符设置成与由所述过程发送并在所述第二主节点中接收的通信连接请求中所提供的第一标识符的值相对应的值。
确定通信连接请求是否具有指示所述通信连接请求始于特权过程的第一标识符可以包括:确定所述通信连接请求是否以与所述数据处理系统的操作系统相关联的队列对为目标;确定所述第一标识符是否对应于与所述操作系统相关联的队列对;以及如果所述第一标识符并不匹配于与所述操作系统相关联的队列对的标识符,则拒绝所述通信连接请求。确定通信连接请求是否具有指示所述通信连接请求始于特权过程的第一标识符可以进一步包括:如果所述通信连接请求并不以与所述操作系统相关联的队列对为目标,则确定所述第一标识符是否设置了高阶比特;如果所述第一标识符设置了高阶比特,则确定所述第一标识符是否与所述通信连接请求的目标队列对的标识符相匹配;以及如果所述第一标识符并未设置高阶比特,或者所述第一标识符并不与所述通信连接请求的目标队列对的标识符相匹配,则拒绝所述通信连接请求。
在其它的说明性实施例中,提供了一种计算机程序产品,其包括具有计算机可读程序的计算机可用介质。当在计算设备上执行时,所述计算机可读程序使得所述计算设备实现以上关于方法说明性实施例所概括的操作中的各种操作及其组合。
在另一说明性实施例中,提供了一种装置。所述装置可以包括处理器以及耦合于所述处理器的存储器。所述存储器可以包括这样的指令,即当由所述处理器执行时,该指令使得所述处理器实现以上关于方法说明性实施例所概括的操作中的各种操作及其组合。
鉴于以下对本发明的示例性实施例的详细描述,本发明的这些以及其它的特征和优点将得以描述,或者对本领域的普通技术人员来说将变得显而易见。
附图说明
当结合附图阅读时,通过参照以下对说明性实施例的详细描述,将最好地理解本发明以及优选使用模式,及其进一步的目的和优点,在附图中:
图1是可以在其中实现说明性实施例的示例性方面的分布式计算机系统的示例图;
图2是依照一个说明性实施例说明了主处理器节点的示例性软件和硬件方面的示例图;
图3是依照一个说明性实施例的主机通道适配器的软件模型的示例图;
图4是依照一个说明性实施例说明了用于SAN上的节点的软件管理模型的示例图;
图5是依照一个说明性实施例说明了工作和完成队列处理的示例框图;
图6是根据一个说明性实施例说明了三种处理器数据报通信服务的示例图;
图7是说明了具有用于指示Q_Key是否与特权应用相关联的控制比特的Q_Key的示例图;
图8是依照一个说明性实施例用于处理CM REQ消息的示例框图;
图9是依照一个说明性实施例说明了CM REQ消息的结构化专用数据区的示例框图;
图10是依照一个说明性实施例概括了连接建立请求的主动方的示例操作的流程图;以及
图11是依照一个说明性实施例概括了连接建立请求的被动方的示例操作的流程图。
具体实施方式
文中的说明性实施例提供了这样的机制,其用于确保系统区域网中连接建立请求的源是特权源,以及用于限制可以在该系统区域网中使用的连接建立请求中所提供的信息的类型。确保这样的请求来自特权源涉及在请求的报头中提供标识该请求是否始于特权源的标识符。该标识符仅可由特权应用访问,从而使得非特权应用不可以修改该标识符的设置。以这样的方式,仅特权应用可以将自己标识为具有特权,并且能够建立通信连接。因此,连接建立请求的接受方可以信任该请求中的地址信息和其它信息。
在一个说明性实施例中,该系统区域网是提供基于InfiniBandTM的网际协议(IP)(IPoIB)功能性的InfiniBandTM网络。在这样的系统中,CMREQ消息用于通过队列对在消费者之间建立通信连接。在这样的实施例中,可以将标识符提供为Q_Key中的比特(例如高阶比特),其中,提供该Q_Key作为该CM REQ消息的部分。当设置该Q_Key时,CM REQ消息的接收方可以信任CM REQ消息始于特权消费者,并且因而可以信任该CM REQ消息的专用数据区中提供的信息。
虽然将具体参照其中系统区域网(SAN)是InfiniBandTM网络的示例性实施例来描述关于SAN的说明性实施例,但是这些实施例仅仅是说明性的,并且并不限于可以在其中实现说明性实施例的机制的网络的类型。为了描述说明性实施例,假设本领域的普通技术人员熟悉通常可从InfiniBandTM贸易协会(IBTA)获得的InfiniBandTM体系结构规范。因而,在此并不提供对InfiniBandTM体系结构规范的详细讨论。
现参照附图并且特别参照图1,其说明了可以在其中实现说明性实施例的示例性方面的分布式计算机系统的示例性实施例。提供图1中所表示的分布式计算机系统100仅出于说明的目的,并且下面描述的说明性实施例可以在众多其它类型和配置的计算机系统上实现。举例来说,实现说明性实施例的计算机系统可以从具有一个处理器和几个输入/输出(I/O)适配器的小型服务器到具有成百上千个处理器和数千个I/O适配器的特大型并行超级计算机系统。此外,可以在由因特网或内联网连接的远程计算机系统的基础设施中实现说明性实施例。
如图1中所示,分布式计算机系统100包括系统区域网(SAN)113,其是分布式计算机系统内的高带宽、低时延网络互连节点。分布式计算机系统100中可以包括超过一个的SAN 113,并且每个SAN 113可以包括多个子网络(子网)。
文中将节点定义成依附于网络的一个或多个链路的任何组件。在所说明的分布式计算机系统中,节点包括主处理器101、独立磁盘冗余阵列(RAID)子系统103、I/O适配器105、交换机109A-109C、路由器111等。图1中所说明的节点仅出于说明的目的,因为SAN 113可以连接任何数目和任何类型的独立节点。节点中的任何一个均可以充当端节点,文中将其定义为分布式计算机系统100中发起或最终消耗消息或帧的设备。
SAN 113是在分布式计算机系统100内支持I/O和处理器间通信(IPC)这二者的通信和管理基础设施。如图1中所说明的,分布式计算机系统100包括允许很多设备在安全、远程受管环境中利用高带宽和低时延并行传送数据的交换式通信结构(即链路、交换机和路由器)。端节点可以通过多个端口进行通信,并且通过SAN 113利用多条路径。对于容错和增加带宽的数据传送,可以采用通过SAN 113的路径和多个端口的可用性。
SAN 113包括交换机109A-109C和路由器111。交换机109A-109C将多个链路连接在一起,并且允许使用小报头目的地局部标识符(DLID,Destination Local Identifier)字段在SAN 113内将分组从一个链路路由至另一链路。路由器111能够使用大报头目的地全局唯一标识符(DGUID,Destination Globally Unique Identifier)将帧从第一子网中的一个链路路由至第二子网中的另一链路。路由器111可以通过广域网(WAN)、局域网(LAN)等连接耦合于其它主机和/或其它路由器。
在SAN 113中,主处理器节点101和I/O节点106包括至少一个通道适配器(CA)以便与SAN 113连接。主处理器节点101包括中央处理器(CPU)119和存储器121。在一个实施例中,每个CA是向SAN 113上所传输的源或接收分组足够详细地实现CA接口(例如在以上参照的InfiniBandTM体系结构规范中所提供的)的端节点。如所说明的,存在两种CA类型,主CA(HCA)117和目标CA(TCA)127。通过通用计算节点来使用HCA 117以便访问SAN 113。在一种实现中,以硬件实现HCA117。在HCA 117的硬件实现中,HCA硬件卸载许多CPU和I/O适配器通信开销。HCA 117的硬件实现还准许通过交换式网络的多个并行通信,而无需与通信协议关联的常规开销。在SAN 113中使用HCA 117还向分布式计算机系统100的输入/输出(I/O)和处理器间通信(IPC)消费者提供了零处理器复制数据传送,而不涉及操作系统核心过程。HCA 117和SAN113的其它硬件提供了可靠、容错的通信。
I/O底盘(chassis)106包括I/O适配器底板和含有适配卡的多个I/O适配器节点105。图1中所说明的示例性适配卡包括SCSI适配卡123A、到光纤通道集线器和FC-AL设备的适配卡123B、以太网适配卡123C、图形适配卡123D,以及视频适配卡123E。在不背离本发明的精神和范围的情况下,利用图1中所示的机制可以实现任何已知类型的适配卡。I/O底盘106在I/O适配器底板中还包括交换机109B,以便将适配卡123A-123E耦合于SAN 113。
RAID子系统103包括微处理器125、存储器126、目标通道适配器(TCA)127,以及多个冗余和/或条式存储盘129。
在所说明的SAN 113中,每个链路115均是在任何两个网络元件(例如端节点、交换机109A-109C或路由器111)之间的全双工通道。合适的链路115可以包括但不限于:铜缆、光缆,以及底板和印刷电路板上的印刷电路铜迹线(trace)。链路115和交换机109A-109C等的组合进行操作以便提供SAN 113的节点之间的点到点通信。
图2中总体说明了示例性主处理器节点101的软件和硬件方面。主处理器节点101包括执行一组消费者过程201的一个或多个处理器。主处理器节点101包括具有端口205的HCA 117。每个端口205均连接至SAN 113的链路115。端口205可以连接至一个SAN子网或多个SAN子网。利用消息和数据服务203,消费者过程201通过动词接口(verbs interface)207将消息传送至SAN 113。动词接口207通常是利用操作系统专用程序接口来实现的。利用SAN 113的InfiniBandTM实现,在先前所参照的InfiniBandTM体系结构规范中指定动词接口207。
图3中说明了HCA 117的软件模型。HCA 117包括一组队列对(QPs)301,其通过端口205将消息传送至子网。单个HCA 117可以支持数千个QPs 301。相比较而言,I/O适配器中的TCA 127通常支持少得多数目的QPs 301。还说明了子网经营管理(SMA,subnet managementadministration)模型209、管理分组211,以及多个虚通道(virtual lane)213,其连接传输层与端口205。
现转至图4,其说明了用于SAN 113上的节点的软件管理模型。SAN体系结构管理设施提供了子网管理器(SM,Subnet Manager)303A、子网管理(SA,Subnet Administration)模块303B,以及支持多个通用管理服务的基础设施。管理基础设施包括在每个节点中操作的子网管理代理(SMA,Subnet Management Agent)307。管理基础设施定义了允许附加通用服务代理的通用服务接口。此外,SAN体系结构定义了用于在管理器与管理代理之间通信的公共管理数据报(MAD,management datagram)消息结构。
SM 303A负责初始化、配置和管理交换机、路由器和通道适配器。可以在诸如通道适配器或交换机的其它设备内实现SM 303A。将SAN 113的一个SM 303A专用为主SM,并且其负责发现子网拓扑,利用各种局部标识(LID)号、全局标识(GID)号、子网前缀和分区键(P_Keys)来配置每个通道适配器端口;利用LID、子网前缀及其转发数据库来配置每个交换机,以及为子网维护端节点和服务数据库,以便向LID/GID解决服务以及服务目录提供全局唯一标识(GUID)号。因而,利用子网管理(SM)303A和子网管理(SA)模块303B来完成SAN 113和SAN组件(例如HCA 117、TCA(或端节点)127、交换机109A-109C,以及路由器111)的管理。子网管理分组(SMPs)用于通过端节点305的管理代理307来发现、初始化、配置和维护SAN组件。SAN SA分组由SAN组件使用,以便查询和更新子网管理数据。通过基于主机的端节点309中的用户管理控制台311提供对子网管理的一些方面的控制。
SAN 113提供了I/O所要求的高带宽和可扩缩性,并且还支持处理器间通信(IPC)所要求的极低的时延和极低的CPU开销。用户过程可以绕过操作系统(OS)核心过程,并且直接访问诸如HCA 117的网络通信硬件,其启用了高效消息传递协议。SAN 113适于当前的计算模型,并且是用于新形式的I/O和计算机群集通信的构造块。SAN 113允许I/O适配器节点105在其自身之间通信或者与分布式计算机系统中的任何或全部的处理器节点101进行通信。在I/O适配器附于SAN 113的情况下,所得到的I/O适配器节点105具有大体上与分布式计算机系统中的任何处理器节点101相同的通信能力。
对于可靠的消息服务类型,诸如主处理器节点101和I/O适配器节点105这样的端节点生成请求分组并且接收确认分组。交换机109A-109C和路由器111将分组从源传递至目标(或目的地)。除了不同的CRC报尾字段之外(在网络中的每个传送阶段均对其进行更新),交换机109A-109C向前传递未修改的分组。在路由分组时,路由器111更新不同的CRC报尾字段并且修改报头中的其它字段。
在SAN 113中,硬件提供了一种消息传递机制,其可以用于在通用计算节点之间的处理器间通信(IPC)和输入/输出(I/O)设备。消费者通过分别将发送/接收消息置于SAN通道适配器(CA)上的发送/接收工作队列(WQ)来访问SAN 113消息传递硬件。
文中将消息定义成数据交换的应用定义单元,其是协作过程之间通信的基本单元。文中将分组(或帧)定义成由组网协议报头(和报尾)封装的一个数据单元。报头通常提供用于通过SAN 113而引导分组(或帧)的控制和路由信息。报尾通常含有用于确保在破坏内容的情况下不传递帧的控制和循环冗余校验(CRC)数据。
消费者使用SAN动词来访问HCA功能。解释动词并直接访问CA的软件被称为通道接口(CI)。将发送/接收工作队列(WQ)分派给消费者作为队列对(QP)。可以通过五个不同的传输类型来发送消息:可靠连接(RC)、可靠数据报(RD)、不可靠连接(UC)、不可靠数据报(UD),以及原始数据报(RawD)。消费者通过SAN发送和接收工作完成(WC)从完成队列(CQ)检索这些消息的结果。源CA关注分段出站消息并且将其发送至目的地。目的地或目标CA关注重新装配入站消息并将其放入由目的地消费者指定的存储空间。下面的附图中说明了这些特征。
现参照图5,其说明了工作和完成队列处理的框图。每个QP 301提供了到发送工作队列(SWQ)407和接收工作队列(RWQ)409的输入。SWQ407发送通道和存储语义消息,并且RWQ 409接收通道语义消息。消费者调用动词(在动词接口207内),以便将工作请求(WR)放到工作队列(WQ)中。发送WR 403是通道语义操作,以便将一组本地数据段417推到(push)远程节点的接收WQE 405所引用的数据段。发送WR的数据段417中的每一个均含有虚拟相连存储区域。用于引用本地数据段417的虚拟地址处于创建了本地QP 301的过程的地址上下文中。
如图5中所示,已经由消费者过程401放到WQ上的WR 403被称为工作队列元素(WQE)405。WQE 405由HCA 117中的硬件415来执行。SWQ 407含有描述将要在SAN结构上传输的数据的WQE 405。RWQ 409含有描述在哪里放置从SAN 113接收到的输入通道语义数据的WQE 405。
在一个实施例中,RWQ 409仅支持一种类型的WQE 405,其被称为接收WQE。接收WQE提供了对于向其中写入输入发送消息(incomingsend message)的本地存储空间进行了描述的通道语义操作。接收WQE包括描述了若干虚拟相连存储空间的分散列表(scatter list)。将输入发送消息写入这些存储空间。虚拟地址处于创建了本地QP 301的过程的地址上下文中。
动词接口207还提供了一种用于从完成队列411中检索完成的工作的机制。完成队列411含有完成队列元素(CQE)413,其含有关于先前完成的WQE 405的信息。采用完成队列411来为多个QP 301创建单点完成通知(a single point of completion notification)。CQE 413含有足够的信息来确定完成的特定WQE 405以及QP 301。完成队列上下文(未示出)是含有指向长度以及管理各个完成队列411所需要的其它信息的指针的信息块。
通过SAN结构在使用数据报型消息的过程之间共享的队列需要保护键(protection key)来验证请求方使用在收端接收到的队列的权力。在SAN113内所利用的保护键之一被称为队列键(Q_Key)。Q_Key机制允许应用认证其利用特定的通信资源的权利力,例如发送和接收队列。为了促进应用的认证(即,使用所接收的队列),Q_Keys通常能够由应用来设置。因为应用能够设置Q_Key,因此需要一种更强的认证,即该认证不能够被未授权访问通信资源的应用伪造。
在SAN 113中,OS运行为特权类程序,并且应用运行为非特权类。应用要求OS进行具有特权的特定操作,例如QP上下文建立。提供了Q_Key,其是OS可控的,并且在没有验证应用具有使用队列资源的权限的情况下,防止从应用过程级访问队列资源。通过利用大得足以使应用过程很难猜测正确的键的键来控制未授权的访问。为队列生成“受控Q_Key”,但并不能从应用过程级对其进行操纵,除非操作系统(OS)给予应用这样做的权限。
现参照图6,其说明了三种处理器数据报通信服务。三个处理器,处理器501、处理器502和处理器503,通过各种过程的发送/接收(QP)消息相互通信。说明了四个这样的过程,举例来说,包括处理器502上的过程C和过程D以及处理器503上的过程E。在操作期间,远程过程可以同时尝试通过使用数据报型消息与过程A进行通信。数据报型消息包括允许在端节点共享QPs的特性。
如图6中所说明的,过程C、D和E试图与过程A的QP_4进行通信。每个数据报消息均含有Q_Key作为消息的一部分。将Q_Key与关联于QP_4的Q_Key进行比较。如果匹配,则将请求放入QP_4的接收队列511中,否则将其默默丢弃(例如,在不可靠数据报型服务的情况下)或将否定确认(NAK)型消息发送回发送方(例如,在可靠数据报型服务的情况下)。通常,请求访问QP的应用过程可以在Q_Key处猜测多次,直到猜到正确的Q_Key。为了防止一个或多个过程C、D或E获得对QP_4的未授权访问,需要不能被排除的过程(excluded process)猜测得到的Q_Key。通过提供不能被请求过程生成的Q_Key,防止过程C、D或E中的一个或多个可能成功尝试对Q_Key的正确猜测。
在Q_Key中提供了附加比特,并且将该附加比特指定为特权比特(或控制比特)。附加比特通过允许对Q_Key设置应用级访问限制来增强Q_Key功能性。图7说明了具有控制比特703的Q_Key 701(例如,字符序列)。因而,在SAN操作期间,禁止应用级代码在发送工作请求或修改QP请求上生成Q_Key,除非可信的HCA代码首先将应用标识为具有使用受控Q_Key的权限。
在优选实施例中,受控Q_Key是具有为OS保留(即,仅可以由OS来改变值)的专用最高阶比特或附加比特的Q_Key。因此,创建了两类Q_Key,受控类和不受控类。对于受控类将控制比特设置为1,而对于不受控类将控制比特设置为0。仅准许OS以及由OS给予特权的消费者过程在工作请求(WR)中提交作为受控Q_Key的Q_Key。其它用户空间消费者仅可以提交具有未设置的高阶比特的Q_Key的WR。这防止了用户空间消费者向特权模式QP发送消息,因为被动方将校验高阶比特(其不能由用户空间消费者调节)并且只是成功处理了设置了该比特的消息。
说明性实施例的机制利用受控Q_Key来检验连接请求始于授权或特权消费者。以这样的方式,在维持类似于TCP的安全级别的安全级别时,有可能通过SAN进行网际协议(IP)通信。该安全级别确保连接建立的被动方可以信任连接请求的发送方。
将InfiniBandTM作为示例性SAN,在其中实现了说明性实施例的机制,通过使用不可靠数据报(UD)队列对(QP),由InfiniBandTM结构来传递通信管理(CM)消息。这样的CM消息,即UD分组,是使用远程直接存储器访问(RDMA)操作来传递的,在RDMA操作中,直接将数据从一个存储器传递到另一存储器,而不涉及主节点的处理器。在UD分组中使用数据报扩展传输层报头(DETH)。DETH尤其含有UD分组所导向的队列对的目的地Q_Key。该Q_Key具有高阶比特,可以将其设置来指定UD分组的始发方是否具有特权。
举例来说,当消费者生成工作请求(WR)时,该消费者指定包括在WR中的Q_Key。如果消费者是特权消费者,那么由该消费者设置WR中的Q_Key的高阶比特。不是特权消费者的消费者不能够设置该Q_Key的高阶比特。因而,与非特权消费者关联的Q_Key未被设置并且指示WR的源是非特权消费者。
通道接口(CI)检查WR中的该Q_Key,并且基于高阶比特的设置,确定输出分组的DETH是否含有来自与消费者关联的QP的Q_Key,或者来自工作请求(WR)的Q_Key。再者,具有最高比特设置的Q_Key被认为是受控Q_Key,并且通道适配器不允许消费者任意指定受控Q_Key。OS维持对受控Q_Key的控制,因为其可以仅为特权消费者配置受控Q_Key的QP上下文。这允许特权模式代码实现这样的策略,即仅向用户空间消费者提供具有未设置的高阶比特的Q_Key。
因而,依照说明性实施例的机制,举例来说,对于CM REQ消息,CM REQ的DETH中的Q_Key的高阶比特通知通道接口(CI)(其工作是解释在通过通道适配器的通信中使用的动词)CM REQ消息是否始于特权消费者。利用说明性实施例,只有特权消费者,即OS已经给予特权状态的应用或主节点的OS,可以使用CM REQ消息建立通信连接。如果Q_Key的高阶比特指示特权消费者是CM REQ消息的源,那么该通信连接的被动方可以信任在该CM REQ消息的专用数据区中提供的信息。如果Q_Key的高阶比特指示非特权消费者是CM REQ消息的源,那么被动方可以不信任在专用数据区中提供的信息,即该信息可能是用户空间应用生成的,并且因而可能是欺骗信息。因此,可以拒绝该CM REQ消息。
图8是依照一个说明性实施例用于处理CM REQ消息的示例框图。如图8中所示,主节点810包括在其上运行的多个消费者过程812-816。消费者过程812希望在主节点880上与过程884建立TCP/IP通信连接。因此,消费者过程812通过通道接口830将CM REQ工作请求递送到其在与主机通道适配器840相关联的本地QP 822中的发送队列。作为该CM REQ工作请求的一部分,消费者过程812提供Q_Key,并且设置该CM REQ工作请求的Q_Key的高阶比特。另外,消费者过程812利用新的服务标识符来限制CM REQ工作请求,其中该新的服务标识符具有格式化专用数据区,如下文将较为详细讨论的。
在通道接口830中从消费者过程812接收CM REQ工作请求。通道接口830检查该CM REQ工作请求,并且确定在该CM REQ工作请求中提供的Q_Key是否指示该CM REQ工作请求始于特权消费者,例如OS或已经由OS授予特权状态的过程。举例来说,通道接口830可以检查Q_Key中高阶比特的状态,以便确定是否设置了高阶比特。如果设置了高阶比特,那么通道接口830可以确定消费者过程812是特权消费者过程。如果没有设置高阶比特,那么通道接口830可以确定消费者过程812是非特权消费者过程。
由于OS控制谁可以使用特权Q_Key,因此唯一可以设置Q_Key中高阶比特的时间是当消费者过程812是特权消费者过程并且在该Q_Key中具体设置了高阶比特的时候。否则,将不设置高阶比特,其对于非特权消费者过程是缺省的。
如果没有设置工作请求中Q_Key的高阶比特,则通道接口830指示主机通道适配器840的本地QP 822将CM REQ工作请求中所提供的Q_Key嵌入到由本地QP 822所发出的CM REQ消息的DETH中。如果设置了CM REQ工作请求中Q_Key的高阶比特,则通道接口830指示本地QP 822改为嵌入其自己的Q_Key。
使用这些机制,Q_Key本身便不能由于体系结构而被欺骗。也就是说,由于OS控制QP创建并且用户级应用不能改变QP上下文,因此OS具有控制使用特权Q_Key的装置。如果非特权用户级应用设置了工作请求中Q_Key的高阶比特,那么本地QP将嵌入其自己的Q_Key而不是工作请求中所提供的Q_Key。对于非特权用户级应用来说,QP上下文中的Q_Key是非特权Q_Key。
当目标主节点880接收到CM REQ消息时,其使用该CM REQ消息的DETH中的Q_Key来验证输入的CM REQ消息。目标主节点880的通道接口882检查该Q_Key,并且确定作为该CM REQ消息的目标的队列对是否是队列对1(QP1)。QP1是InfiniBandTM体系结构中的特别队列对,其被分派给OS,并且因而处理特权或受信通信。如果CM REQ消息指向QP1,则通道接口830确定该Q_Key是否是与QP1相关联的指定Q_Key,例如,0x80010000。如果CM REQ消息指向QP1并且该Q_Key是指定Q_Key,那么准许继续由目标主节点880处理该CM REQ消息。如果CMREQ消息指向QP1,但Q_Key不是与QP1相关联的指定Q_Key,那么可以将拒绝响应返回给发起CM REQ消息的主节点810。
如果CM REQ消息的目标QP不是QP1,那么目标主节点880的通道接口882验证CM REQ消息的DETH具有设置了高阶比特的Q_Key,其中该高阶比特在CM REQ消息始于特权模式的情况下可以被设置仅是QP。如果CM REQ消息的Q_Key具有设置了的高阶比特,那么在CMREQ消息中的Q_Key与目的地QP的Q_Key匹配的情况下准许目标主节点880继续处理CM REQ消息。否则,如果Q_Key并不具有设置了的高阶比特或者CM REQ消息中的Q_Key并不与目的地QP的Q_Key相匹配,则可以将拒绝响应消息返回给发起方主节点810。
因而,上述机制确保CM REQ消息是发自于特权消费者过程的,而不是由可能进行欺骗的用户空间过程发送的。除了这些保护机制之外,说明性实施例还提供了一种机制,通过该机制可以处理CM REQ消息的专用数据区,以便获得必要的TCP/IP连接建立信息,例如,源IP地址、目的IP地址等。特别地,提供了可以包括在CM REQ消息的DETH中的服务标识符,以便指示专用数据区是根据特定规范进行格式化的。
通常,并不结构化诸如CM REQ消息的不可靠数据报的专用数据区。因此,过程可以将它们认为符合专用数据区的任何信息放入专用数据区的任何字段。因而,如果专用数据区用于将TCP/IP信息传送给目标主系统880,则无法确切知道在专用数据区的哪里放置了TCP/IP信息或者在专用数据区的哪些字段中有什么信息。利用说明性实施例的机制,以预先确定的方式结构化该专用数据区,从而使得将专用数据区的特定字段指定用于存储TCP/IP信息的特殊部分。当其被利用的时候,在CM REQ消息的报头中指定该结构化专用数据区。
基于对所接收的CM REQ消息的DETH中该服务标识符的检测,目标主节点880的通道接口882可以从CM REQ消息的专用数据区提取必要的信息,以便通过系统区域网建立TCP/IP连接。服务标识符可以是任何类型的服务标识符,其可以被包括在CM REQ消息的报头或DETH中。
对所接收的CM REQ消息的DETH中预先确定的服务标识符的检测通知通道接口882:在CM REQ消息中利用了专用数据区的预先确定的结构。因此,通道接口882知道专用数据区的哪些字段含有在主节点810上的过程812与目标主节点880上的过程之间建立TCP/IP通信连接所需要的TCP/IP信息的哪些部分。
图9是依照一个说明性实施例说明了CM REQ消息的结构化专用数据区的示例框图。图9仅仅是CM REQ消息的专用数据区的一种可能的结构,且并不旨在陈述或暗示关于可以结构化专用数据区的方式的任何限制。在不背离说明性实施例的精神和范围的情况下,可以对图9中所描绘的结构进行很多修改。
如图9中所示,专用数据区900包括特定字段910-942,其用于存储对于在诸如InfiniBandTM网络的系统区域网中的主节点的过程之间建立TCP/IP通信连接可能是必要的特定TCP/IP信息。在所描绘的例子中,字段910存储主要版本,字段912存储次要版本,字段914存储IP版本,字段916存储基于零的虚拟地址(ZB)异常值,字段918存储无效发送(SI)异常值,字段920存储连接偏好(CP)值,保留字段922,字段924存储源端口标识符,并且保留字段926。字段928-934存储源IP地址,且每个字段存储源IP地址的不同部分,如所描绘的。字段936-942存储目的IP地址,且每个字段存储目的IP地址的不同部分,如所描绘的。
TCP/IP通信连接建立的主动方上的特权消费者(即CM REQ消息的源)负责设置预定专用数据字段910-942中的值,例如源IP地址、目的IP地址等。当被动方(即目标主节点)接收到CM REQ消息时,其首先验证该CM REQ消息来自使用先前所描述的方法和机制的特权消费者。然后,通过检查服务标识符,被动方知道专用数据区含有诸如图9中所示的那些字段的预定字段。被动方然后可以依照定义的结构解释专用数据区。
图10和11是依照一个说明性实施例概括了通信连接建立的主动方和被动方的示例性操作的流程图。应当理解,可以通过计算机程序指令实现流程图说明的每个块,以及流程图说明中块的组合。可以将这些计算机程序指令提供给处理器或其它可编程数据处理装置来产生机器,从而使得在处理器或其它可编程数据处理装置上执行的指令创建用于实现流程图块中所指定的功能的装置。还可以将这些计算机程序指令存储在可以指导处理器或其它可编程数据处理装置以特定方式运行的计算机可读存储器或存储介质中,从而使得存储在计算机可读存储器或存储介质中的指令产生包括实现流程图块中所指定的功能的指令装置在内的制品。
因此,流程图说明的块支持用于实现指定功能的装置的组合、用于实现指定功能的步骤以及用于实现指定功能的程序指令装置的组合。还应当理解,可以通过实现指定功能或步骤的基于专用硬件的计算机系统,或者通过专用硬件和计算机指令的组合,来实现流程图说明的每个块以及流程图说明中的块的组合。
图10是依照一个说明性实施例概括了连接建立请求的主动方的示例性操作的流程图。如图10中所示,操作开始于通道接口接收对建立TCP/IP通信连接的工作请求(步骤1010)。通道接口检查该工作请求的Q_Key(步骤1020),并且确定是否设置了Q_Key的高阶比特(步骤1030)。如果没有设置高阶比特,那么通道接口指示本地队列对将工作请求中所提供的Q_Key嵌入其发送出的CM REQ消息(步骤1040)。如果设置了高阶比特,那么通道接口指示本地队列对嵌入与本地队列对相关联的Q_Key(步骤1050)。然后该操作结束。
图11是依照一个说明性实施例概括了连接建立请求的被动方的示例性操作的流程图。如图11中所示,操作开始于对CM REQ消息的接收(步骤1110)。通道接口确定CM REQ消息是否以队列对1为目标(步骤1120)。如果是的话,则通道接口确定CM REQ消息的Q_Key是否是与队列对1相关联的预定Q_Key(步骤1130)。如果是的话,则继续进行对CM REQ消息的处理,以便建立TCP/IP连接(步骤1140)。例如,可以在CM REQ消息上继续进行依照InfiniBandTM规范的处理,从而建立TCP/IP连接。举例来说,在从远程通道适配器的连接管理器(CM)接收到请求时,本地通道适配器的CM确定所请求的服务是否在本地通道适配器(CA)上可用。如果不是,则CM将拒绝消息发送回远程CA的CM,其陈述拒绝的原因。如果本地CA支持所请求的服务,则本地CM创建QP来处理其通信通道的末端,对具有请求中所提供的信息的QP的上下文进行编程,将新创建的QP转变成准备接收状态,并且然后将响应消息与关于新创建的QP的信息发送回请求方。
返回步骤1140,如果CM REQ消息的Q_Key不是与队列对1相关联的预定Q_Key,那么可以将拒绝响应消息返回给CM REQ消息的发起方或主动方(步骤1150)。如果CM REQ消息并不指向队列对1,则通道接口确定是否设置了CM REQ消息中Q_Key的高阶比特(步骤1160)。如果设置了Q_Key的高阶比特,那么通道接口将CM REQ消息中的Q_Key与目的地QP的Q_Key进行比较,以便确定是否存在匹配(步骤1165)。如果存在匹配,则继续进行对CM REQ消息的处理(步骤1140)。如果没有设置Q_Key的高阶比特,那么可以将拒绝响应消息发送回给CM REQ消息的发起方或主动方(步骤1150)。
此后,通道接口检查CM REQ消息中的服务标识符(步骤1160),并且确定该服务标识符是否指定在CM REQ消息的专用数据区中使用了预定字段(步骤1170)。如果CM REQ消息中的服务标识符指示利用了预定字段,则通道接口依照预定字段来处理专用数据区中的信息(步骤1180)。否则,如果服务标识符没有指定利用了预定字段,那么CM确定服务ID所指定的期望服务是否存在于其关联子系统内(步骤1185)。如果服务存在,那么按照本领域中公知的正常方式继续处理(步骤1190)。否则,如果服务并不存在于CM的关联子系统内,则可以将拒绝响应消息返回给CM REQ消息的发起方或主动方(步骤1195)。然后该操作结束。
因而,利用说明性实施例的机制,将新的服务标识符用于指示CMREQ消息专用数据区含有根据预定结构的预定字段。此外,通过限制CMREQ消息仅由特权消费者发送,如受控Q_Key所检验的,被动方可以确定含于CM REQ消息的专用数据区中的信息并不是由非特权用户空间消费者设置的。这保证了对CM REQ消息的预定专用数据区字段的处理是由特权消费者完成的,并且诸如IP地址的信息(其由主动方传递给CM REQ消息专用数据区中的被动方)是可以信任的。
应当理解,说明性实施例可以采取全硬件实施例、全软件实施例或者既含有硬件元素又含有软件元素的实施例的形式。在一个示例性实施例中,以软件实现说明性实施例的机制,其包括但不限于固件、常驻软件、微码等。
此外,说明性实施例可以采取可访问于计算机可用或计算机可读介质的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的程序代码。对于该描述来说,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传送由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何装置。
介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前的例子包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所采用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供对至少一些程序代码的临时存储的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过插入I/O控制器耦合于系统。网络适配器也可以耦合于系统,从而使得数据处理系统能够适于通过介入专用或公用网络耦合于其它的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。
已经出于说明和描述的目的给出了对本发明的描述,且并不旨在以所公开的形式穷举或限制本发明。对本领域的普通技术人员来说,很多修改和变形将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,以及使本领域的普通技术人员能够针对适于预期的特定用途的各种实施例以及各种修改来理解本发明。

Claims (13)

1.一种在数据处理系统中用于处理通信连接请求的方法,所述方法包括:
确定通信连接请求是否具有指示所述通信连接请求始于特权过程的第一标识符;
如果所述通信连接请求始于特权过程,则确定所述通信连接请求是否具有指定所述通信连接请求的专用数据区利用预定格式下的预定字段的第二标识符;
依照所述预定格式的预定字段,处理所述通信连接请求的专用数据区中的信息;以及
使用所述通信连接请求的专用数据区中所处理的信息来建立通信连接。
2.根据权利要求1的方法,其中所述通信连接请求是通信管理请求消息,其具有专用数据区以及在其中提供了所述第一和第二标识符的报头。
3.根据权利要求2的方法,其中所述第一标识符是Q_Key。
4.根据权利要求2的方法,其中所述第二标识符是通信管理请求消息中的服务标识符。
5.根据权利要求1的方法,其中所述数据处理系统是系统区域网中的主节点,并且其中所述方法是在所述主节点的通信适配器中实现的。
6.根据权利要求1的方法,其中所述专用数据区中的信息包括:所述专用数据区的预定字段中的源IP地址或目的IP地址中的至少一个。
7.根据权利要求1的方法,其中所述通信连接请求包括:使用远程直接存储器访问操作从另一数据处理系统传递的一个或多个不可靠数据报分组。
8.根据权利要求1的方法,其中如果所述通信连接请求始于特权过程,则将所述第一标识符设置成第一值,以及如果所述通信连接请求始于非特权过程,则将所述第一标识符设置成第二值,并且其中只有操作系统或特权过程可以将所述第一标识符设置成所述第一值。
9.根据权利要求1的方法,其中在所述数据处理系统的第一主节点中实现所述确定步骤、处理步骤和建立步骤,并且其中所述方法进一步包括:
在所述数据处理系统的第二主节点中,接收来自运行在远程主节点中的过程的通信连接请求;
在所述第二主节点中,确定所述过程是否是特权过程;
如果所述过程不是特权过程,则在所述第二主节点中修改所述通信连接请求,以便将所述第一标识符设置成与关联于所述过程的队列对的第一标识符的值相对应的值;以及
将所述通信连接请求从所述第二主节点发送至所述第一主节点。
10.根据权利要求9的方法,其中如果所述第一标识符被设置成指示所述通信连接请求始于特权过程,那么将所述第一标识符设置成与由所述过程发送并在所述第二主节点中接收的通信连接请求中所提供的第一标识符的值相对应的值。
11.根据权利要求1的方法,其中确定通信连接请求是否具有指示所述通信连接请求始于特权过程的第一标识符包括:
确定所述通信连接请求是否以与所述数据处理系统的操作系统相关联的队列对为目标;
确定所述第一标识符是否对应于与所述操作系统相关联的队列对;以及
如果所述第一标识符并不匹配于与所述操作系统相关联的队列对的标识符,则拒绝所述通信连接请求。
12.根据权利要求11的方法,其中确定通信连接请求是否具有指示所述通信连接请求始于特权过程的第一标识符进一步包括:
如果所述通信连接请求并不以与所述操作系统相关联的队列对为目标,则确定所述第一标识符是否设置了高阶比特;
如果所述第一标识符设置了高阶比特,则确定所述第一标识符是否与所述通信连接请求的目标队列对的标识符相匹配;以及
如果所述第一标识符并未设置高阶比特,或者所述第一标识符并不与所述通信连接请求的目标队列对的标识符相匹配,则拒绝所述通信连接请求。
13.一种计算机系统,其包括用于实现权利要求1至12中任何一项的方法的装置。
CN2008100099219A 2007-02-13 2008-02-13 用于防止ip欺骗和促进专用数据区的解析的系统和方法 Expired - Fee Related CN101247393B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/674,246 US7913077B2 (en) 2007-02-13 2007-02-13 Preventing IP spoofing and facilitating parsing of private data areas in system area network connection requests
US11/674,246 2007-02-13

Publications (2)

Publication Number Publication Date
CN101247393A true CN101247393A (zh) 2008-08-20
CN101247393B CN101247393B (zh) 2011-10-12

Family

ID=39685757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100099219A Expired - Fee Related CN101247393B (zh) 2007-02-13 2008-02-13 用于防止ip欺骗和促进专用数据区的解析的系统和方法

Country Status (2)

Country Link
US (1) US7913077B2 (zh)
CN (1) CN101247393B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180077065A1 (en) * 2016-09-13 2018-03-15 Hangzhou Dptech Technologies Co., Ltd. Transmitting packet

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566431B2 (en) * 2008-01-16 2013-10-22 Razer (Asia-Pacific) Pte. Ltd. Identification device and method for device identification
US8838865B2 (en) * 2008-10-10 2014-09-16 Nuon, Inc. Hot plug ad hoc computer resource allocation
JP5844373B2 (ja) 2010-09-17 2016-01-13 オラクル・インターナショナル・コーポレイション ミドルウェアマシン環境におけるランナウェイサブネットマネージャインスタンスからの保護を促進するためのシステムおよび方法
US8677461B2 (en) 2011-04-21 2014-03-18 Lsi Corporation Method to provide chip based security for I/O packets in an array using dynamic topology
US8713649B2 (en) 2011-06-03 2014-04-29 Oracle International Corporation System and method for providing restrictions on the location of peer subnet manager (SM) instances in an infiniband (IB) network
US9930018B2 (en) * 2011-06-03 2018-03-27 Oracle International Corporation System and method for providing source ID spoof protection in an infiniband (IB) network
US9231888B2 (en) 2012-05-11 2016-01-05 Oracle International Corporation System and method for routing traffic between distinct InfiniBand subnets based on source routing
US9665719B2 (en) 2012-06-04 2017-05-30 Oracle International Corporation System and method for supporting host-based firmware upgrade of input/output (I/O) devices in a middleware machine environment
CN102984085A (zh) * 2012-11-21 2013-03-20 网神信息技术(北京)股份有限公司 映射方法及装置
US9306916B2 (en) * 2013-12-25 2016-04-05 Cavium, Inc. System and a method for a remote direct memory access over converged ethernet
US9723009B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing for secure network communication in a multi-tenant environment
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US9985903B2 (en) 2015-12-29 2018-05-29 Amazon Technologies, Inc. Reliable, out-of-order receipt of packets
US10148570B2 (en) * 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) * 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851059B1 (en) * 2000-10-19 2005-02-01 International Business Machines Corporation Method and system for choosing a queue protection key that is tamper-proof from an application
US6990528B1 (en) * 2000-10-19 2006-01-24 International Business Machines Corporation System area network of end-to-end context via reliable datagram domains
US7133929B1 (en) * 2000-10-24 2006-11-07 Intel Corporation System and method for providing detailed path information to clients
US8051212B2 (en) * 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US6691217B2 (en) * 2001-05-24 2004-02-10 International Business Machines Corporation Method and apparatus for associating memory windows with memory regions in a data storage system
US20030050990A1 (en) * 2001-06-21 2003-03-13 International Business Machines Corporation PCI migration semantic storage I/O
US20020198927A1 (en) * 2001-06-21 2002-12-26 International Business Machines Corporation Apparatus and method for routing internet protocol frames over a system area network
US7165110B2 (en) * 2001-07-12 2007-01-16 International Business Machines Corporation System and method for simultaneously establishing multiple connections
US8935333B2 (en) * 2001-08-09 2015-01-13 International Business Machines Corporation Implementing multicast on a system area network channel adapter
US7116673B2 (en) * 2001-08-09 2006-10-03 International Business Machines Corporation Queue pair resolution in infiniband fabrics
US7133405B2 (en) * 2001-08-30 2006-11-07 International Business Machines Corporation IP datagram over multiple queue pairs
CN1233135C (zh) * 2002-06-22 2005-12-21 华为技术有限公司 一种动态地址分配中防止ip地址欺骗的方法
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US7428598B2 (en) * 2003-11-20 2008-09-23 International Business Machines Corporation Infiniband multicast operation in an LPAR environment
US20050223118A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for placement of sharing physical buffer lists in RDMA communication
US20060013397A1 (en) * 2004-07-13 2006-01-19 International Business Machines Corporation Channel adapter managed trusted queue pairs
JP4788124B2 (ja) * 2004-09-16 2011-10-05 株式会社日立製作所 データ処理システム
US7437447B2 (en) * 2004-11-12 2008-10-14 International Business Machines Corporation Method and system for authenticating a requestor without providing a key
US8984140B2 (en) * 2004-12-14 2015-03-17 Hewlett-Packard Development Company, L.P. Managing connections through an aggregation of network resources providing offloaded connections between applications over a network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180077065A1 (en) * 2016-09-13 2018-03-15 Hangzhou Dptech Technologies Co., Ltd. Transmitting packet

Also Published As

Publication number Publication date
US7913077B2 (en) 2011-03-22
CN101247393B (zh) 2011-10-12
US20080192750A1 (en) 2008-08-14

Similar Documents

Publication Publication Date Title
CN101247393B (zh) 用于防止ip欺骗和促进专用数据区的解析的系统和方法
US6718392B1 (en) Queue pair partitioning in distributed computer system
US9866556B2 (en) Common internet file system proxy authentication of multiple servers
US7103626B1 (en) Partitioning in distributed computer system
US8244826B2 (en) Providing a memory region or memory window access notification on a system area network
CN1870643B (zh) 用于利用顺序号的数据通信协调的方法和系统
US8176189B2 (en) Peer-to-peer network computing platform
EP1488330B1 (en) Method for forming groups
US7275102B2 (en) Trust mechanisms for a peer-to-peer network computing platform
US6851059B1 (en) Method and system for choosing a queue protection key that is tamper-proof from an application
US20170257282A1 (en) Authenticating connections and program identity in a messaging system
JP2005509977A5 (zh)
EP2562980A1 (en) Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
TW200404430A (en) ISCSI driver to adapter interface protocol
KR20110122731A (ko) 발행 및 구독 엔진에 암호화, 인증, 및 허가를 도입하는 기술
CN102823196A (zh) 管理网络节点之间的网络通信以及流传输协议
WO2000072142A1 (en) Partitioning in distributed computer system
CN107113319A (zh) 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
US8959171B2 (en) Method and apparatus for acknowledging a request for data transfer
CN1601954A (zh) 不中断服务地横跨安全边界移动主体
Yashiro et al. eTNet: A smart card network architecture for flexible electronic commerce services
WO2010006248A2 (en) Service oriented architecture device
CN1447256A (zh) 一种对等网络体系结构实现方法
US7701876B2 (en) Message transmission method and device in mixture of private network and public network
JP6280471B2 (ja) 接続管理方法、プログラムおよび接続管理システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111012

Termination date: 20190213

CF01 Termination of patent right due to non-payment of annual fee