CN113228576A - 一种处理网络中的数据的方法及装置 - Google Patents

一种处理网络中的数据的方法及装置 Download PDF

Info

Publication number
CN113228576A
CN113228576A CN201980084492.8A CN201980084492A CN113228576A CN 113228576 A CN113228576 A CN 113228576A CN 201980084492 A CN201980084492 A CN 201980084492A CN 113228576 A CN113228576 A CN 113228576A
Authority
CN
China
Prior art keywords
data
communication
header
shared memory
protocol stack
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
CN201980084492.8A
Other languages
English (en)
Other versions
CN113228576B (zh
Inventor
范世卿
王国利
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113228576A publication Critical patent/CN113228576A/zh
Application granted granted Critical
Publication of CN113228576B publication Critical patent/CN113228576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及处理网络协议栈中的数据。在一实施例中,所述方法包括:在计算设备的共享内存区域中分配数据缓冲区;将包括头部和主体部分的通信数据写入所述数据缓冲区;通过向所述通信数据的所述头部附加地址数据以生成修改后的头部,其中,所述地址数据确定所述通信数据在所述数据缓冲区中的地址;以及通过网络协议栈处理所述修改后的头部。所述通信数据的所述主体部分以兼容的数据格式存储在所述数据缓冲区中,以根据所述网络协议栈进行通信。

Description

一种处理网络中的数据的方法及装置
技术领域
本申请涉及网络协议栈中的数据操作。更具体地但不限于此,涉及以适合在网络中进行通信的格式存储数据以及在网络协议栈中执行数据传输。
背景技术
网络设备用于各种上下文中。所述网络设备使用网络协议栈在网络中进行通信。所述网络协议栈被设计成涉及大量数据操纵操作的多个层。所述数据操纵操作包括:将用户数据复制到通信缓存中、序列化、反序列化、网络字节转换以及用户应用与通信中间件之间的数据结构匹配。
在某些网络化系统中,网络时延会严重影响系统的整体性能。例如,在自主车辆系统中,如果在车辆的路径中检测到障碍物,则必须将该信息传送到所述车辆中的车载计算机,以使其能够迅速做出反应。在这种情况下,存在所述系统可以运行的最大可容忍时延。随着车辆趋于完全自动化,对所述系统中低时延通信的需求越来越大。
运行在网络设备上的应用与较低级别的网络协议栈交互,以通过所述网络与所述设备上的其他进程以及其他网络设备进行数据通信。由于内存复制操作,在关键路径中会出现性能瓶颈。内存复制操作是指当将数据从所述网络协议栈的较高层移入通信队列时,或者当将数据移入传输层时发生的操作。执行的内存复制操作的数量会对网络时延产生严重影响。
发明内容
根据第一方面,提供了一种处理网络协议栈中的数据的方法。所述方法包括:在计算设备的共享内存区域中分配数据缓冲区;将包括头部和主体部分的通信数据写入所述数据缓冲区;通过向所述通信数据的头部附加地址数据以生成修改后的头部,其中,所述地址数据确定所述通信数据在所述数据缓冲区中的地址;以及通过网络协议栈处理所述修改后的头部。所述通信数据的所述主体部分以兼容的数据格式存储在所述数据缓冲区中,以根据所述网络协议栈进行通信。
在第一方面的一种实施方式中,所述方法包括:解析所述修改后的头部以确定所述地址数据;以及基于所述修改后的头部的所述地址数据访问所述通信数据的所述主体部分。
在第一方面的另一种实施方式中,所述修改后的头部包括将所述头部标识为修改后的头部的标识位。
在第一方面的另一种实施方式中,所述方法包括:以兼容的格式存储所述通信数据包括:对所述通信数据进行序列化和/或加密。
在第一方面的另一种实施方式中,通过所述网络协议栈处理所述修改后的头部包括:确定所述通信数据的所述主体部分与所述头部解耦。
在第一方面的另一种实施方式中,所述方法包括:在网络接口处接收包括头部和主体部分的通信数据;以及解析所述头部以确定所述通信数据是否包括修改后的头部。
在另一种实施方式中,所述方法包括:当确定所述数据包含未修改的头部时,通过网络协议栈处理所述通信数据。
在另一种实施方式中,所述方法还包括:当所述通信数据包括修改后的头部时,将所述通信数据写入共享内存区域中的数据缓冲区。
在第一方面的另一种实施方式中,所述方法包括:基于所述修改后的头部的所述地址数据访问所述通信数据的所述主体部分。
在第一方面的另一种实施方式中,所述方法包括:处理所述通信数据的所述主体部分,以在应用中使用。
根据第二方面,提供一种装置,包括:共享内存区域;以通信方式耦合到所述共享内存区域的通信调节模块,用于:在所述共享内存区域中分配数据缓冲区;以及以通信方式耦合到所述通信调节模块的数据管理模块,用于:将数据以兼容的数据格式存储在所述数据缓冲区中,以通过网络协议栈进行通信。所述通信调节模块用于生成用于传输数据的头部,所述头部包括确定所述数据在所述数据缓冲区中的位置的地址数据。
在第二方面的一种实施方式中,所述装置包括:以通信方式耦合到所述通信调节模块和所述数据管理模块的接口,用于便于与外部应用进行数据通信。
在第二方面的另一种实施方式中,所述装置包括:以通信方式耦合到所述共享内存区域的协议栈模块,用于实现网络协议栈。
在第二方面的另一种实施方式中,所述协议栈用于对所述共享内存区域中的数据进行加密和/或序列化。
在第二方面的另一种实施方式中,所述装置包括:以通信方式耦合到所述共享内存区域的共享内存管理模块,用于管理所述共享内存区域中的数据。
根据第三方面,提供了包括指令的计算机程序,所述指令在由一个或多个处理器执行时,使得根据第一方面的任一实施方式的方法得以执行。例如,所述计算机程序可以存储在数据载体或其他计算机可读介质上。所述计算机可读载体介质可以是瞬时性或非瞬时性的。
根据第四方面,提供了一种设备,包括一个或多个处理器和用于执行上述第一方面的任一实施方式中的方法的存储器。
附图说明
此处仅作为示例,结合附图描述了实施例。
图1示出了根据本发明实施例的一种网络通信模型的框图;
图2示出了根据本发明实施例的一种通信系统中的装置的框图;
图3示出了根据本发明实施例的一种协议栈的简化示意图;
图4示出了根据本发明实施例的一种数据包的简化示意图;
图5示出了根据本发明实施例的一种处理网络中的数据的方法的流程图;
图6示出了根据本发明实施例的一种分配通信设备的存储空间的方法的流程图;
图7示出了根据本发明实施例的一种接收网络中的数据的方法的流程图;
图8示出了根据本发明实施例的一种在网络中传输数据的方法的流程图;
图9示出了根据本发明实施例的一种与内存相关联且包含用于处理网络中的数据的指令的处理器。
具体实施方式
下面对示例实施例进行足够详细的描述,以使本领域普通技术人员能够体现和实现本文所描述的系统和过程。需理解的是,可以以多种替代形式提供实施例,而不应解释为限于本文所描述的示例。
相应地,虽然可以以各种方式修改实施例并采取各种可选形式,但其具体实施例在附图中示出,并在下文中作为示例进行详细描述。这并不限制于所公开的特定形式。相反,应包括属于所附权利要求范围内的所有修改、等同内容和替代物。在整个附图和适当的详细描述中,示例实施例中的元素始终以相同的附图标记表示。
此处用于描述实施例的术语不用于限制范围。冠词“一个”和“所述”是单数形式,因为它们具有单一所指,但是,在本文中使用单数形式不应排除多个的存在。换言之,除非上下文另有明确指示,否则单数形式所指的元素可以是一个或多个。应进一步了解,本说明书中所用的术语“包括”用于说明存在所述特征、项目、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其他特征、项目、步骤、操作、元件、部件和/或它们的组合。
除非另有定义,此处使用的所有术语(包括技术术语和科学术语)均应按照本领域的习惯进行解释。将进一步理解的是,通用术语也按照相关技术中的习惯进行解释,而不是以理想化或过正式的意义,除非在此处明确定义。
图1示出了根据一示例的用于通信的开放系统互连(Open SystemsInterconnection,简称OSI)模型100的示意图。所述OSI模型100定义了描述和标准化电信或计算系统的通信功能的七个层110A至110G,而不指定在设备上实现的底层协议。
最顶层110A是应用层。所述应用层110A最接近用户。所述应用层110A与运行在所述用户的计算设备上的软件应用进行直接交互。在互联网协议(Internet Protocol,简称IP)套件中,所述应用层110A提供了一组协议,例如,包括用于分配域名的域名套件(DomainName Suite,简称DNS)、用于电子邮件支持的简单邮件传输协议(Simple Mail TransferProtocol,简称SMTP)和用于文件传输的文件传输协议(File Transfer Protocol,简称FTP)。
所述应用层110A上提供了来自应用的通信数据的数据包120A。在图1中,所述数据包120A在所述应用层110A上被复制为具有附加应用层头130B的数据包副本120B。所述OSI模型100中没有正式定义的“应用层头”130B。单独的协议和应用可以在所述数据包120A中添加应用层头130B。
所述应用层110A将第一数据包副本120B传递至表示层110B,即所述OSI模型100中的下一层。当所述应用层110A中的所述数据包120A从不同源头到达所述应用层110A时,可以以不同的数据格式呈现该数据包。所述表示层110B负责将所述数据包副本120B格式化为所述网络协议栈下方的中间件应用可使用的格式。
将数据改变为适于传输的格式的过程就是数据序列化。在图1中,所述表示层110B将另一序列化头130C添加到所述第一数据包副本120B中。所述第一数据包副本120B和头部130B组成具有所述序列化头130C的第二数据包副本120C。所述序列化头130C包括说明所述第二数据包副本120C中的数据是如何在所述表示层110B中被序列化的数据。
下一层是会话层110C。所述会话层110C提供用于管理终端用户应用进程之间的通信会话的协议。所述通信会话由应用之间发生的请求和响应组成。所述会话层110C中的协议用于使用远程过程调用的应用环境中。
所述会话层110C可以包括用于加密数据、提供数据授权和认证以及检查点检查和恢复的协议。传输层安全(Transport Layer Security,简称TLS)和安全套接字层(SecureSocket Layer,简称SSL)是为了便于这些设施中的一个或多个设施而实现的加密协议。所述TLS/SSL协议是可以被认为在所述会话层110C中实现的协议的示例,尽管这些协议通常不适合图1所示的所述OSI模型100。所述TLS/SSL在两个或多个通信应用之间提供保密性和数据完整性。
所述第二数据包副本120C和头部130C组成具有另一加密头130D的第三数据包副本120D。在图1所示的示例中,所述加密头130D说明了所述第三数据包副本120D的数据是如何加密的。
图1所示的所述OSI模型的下一层是传输层110D。所述传输层提供了通过网络进行的端到端通信。所述传输层110D提供在不同主机上运行的应用进程之间的通信。所述传输层110D也负责纠错的管理。在图1中,所述第三数据包副本120D和所述加密头130D被传递到所述传输层110D。将数据打包成特定的报文,以形成数据流120E。所述传输层110D将源端口号和目的端口号添加到所述数据流120E的头部130E。
传输控制协议(Transmission Control Protocol,简称TCP)是所述IP套件中的传输层协议。另一种广泛使用的协议是用户数据报协议(User Datagram Protocol,简称UDP),所述用户数据报协议提供了用于在所述数据包的源端和目的端上进行寻址的端口号以及用于检验数据完整性的校验和。
在所述传输层110D下方提供网络层110E。向所述网络层110E提供所述数据流120E和传输层头130E。所述网络层110E是所述OSI模型100中提供通过网络将可变长度的数据包从源主机传输到目的主机的方式的层。可以在所述网络层110E中实现协议,以执行数据包转发、连接建立、数据路由和传送错误上报等功能。
所述网络层110E响应来自所述传输层110D的服务请求,并向所述栈的下层发布服务请求。在图1中,所述网络层110E为包括传输层头部130E的所述数据流120E添加另一头部130F。在所述IP套件的上下文中,所述网络层110D与为所述数据流添加IP报文头的互联网层类似。IP报文头包含IP版本、源IP地址、目的IP地址、生存时间(time-to-live,简称TTL)、报头校验和、总报文长度等信息。包括报头130F和130E的总数据包120F包括IP数据报140。在示例中,所述IP数据报140可以包括46至1500字节。
数据链路层110F是位于所述OSI模型100中最底层的非物理层。所述数据链路层110F提供在网络实体之间传输数据的功能和程序性手段。在所述数据链路层上实现的协议的一个示例是点对点协议(Point-to-Point Protocol,简称PPP),可用于在两个网络节点之间建立直接连接。所述数据流和头部120F被传递到所述数据链路层110F。所述数据链路层110F的协议可以为包含媒体访问控制(media access control,简称MAC)地址的以太网头数据130G添加数据流。
所述OSI模型100的最底层是物理层110G。所述物理层110G由网络的电子电路传输技术组成。它可以通过具有不同特性的各种硬件技术来实现。物理层芯片(Physical LayerChip,简称PLC)将链路层设备连接到物理介质,例如,将所述计算设备连接到所述网络的光纤电缆。
图1所示的所述OSI模型100的每一层上的协议执行数据操纵操作。这些数据操纵操作包括:将通信数据复制到通信缓冲区中和从通信缓冲区中取出、序列化、反序列化、数据转换操作以及应用和通信中间件之间的数据结构匹配。
有多种优化方式可以降低对数据操作性能的影响。例如,直接内存访问(DirectMemory Access,简称DMA)允许直接从内核存储器中访问数据。网络设备能够以这种方式访问数据是更有效的,因为它避免了在写入应用数据的用户空间和对数据执行进一步数据操作的内核空间之间复制所述数据。
此处描述的方法和系统通过实现从所述应用层110A到图1中的所述网络协议栈的下层的数据传递,进一步减少了用户空间内的数据操作。
图2示出了根据一个示例的通信系统200的框图。所述通信系统200可以在任何网络化计算设备中实现。所述通信系统200包括通信中间件210。所述通信中间件210包括用于与所述计算设备上的其它网络设备和其它进程进行通信的模块。根据图1所示的所述OSI模型100,所述通信中间件210用于通过网络协议栈管理通信数据流。所述OSI模型的层110如图2所示,对应于图1所示的层110A至110G。数据包120A及其通信数据的副本120B至120G也如图2所示。
所述通信中间件210以通信方式耦合到通信信道220。在图1所示的所述OSI模型100中,所述通信信道220实现所述网络层110E及以下,直至所述物理层110G的协议。所述通信信道220将实现所述通信系统200的所述计算设备连接到其他设备。
在图2中,所述通信信道220将所述通信中间件210与通信对端225连接。所述通信对端225可以是在实现所述通信系统200的同一个计算设备上实现的另一进程或应用。在其它情况下,所述通信对端225是通过网络与所述通信系统200进行通信的网络设备。
所述通信中间件210以通信方式耦合到应用230。在高层,所述应用230与所述通信中间件210交互以通过所述通信信道220发送和接收通信数据。根据示例,所述应用220通过应用程序接口(application programming interface,简称API)与所述通信中间件210交互。所述通信中间件API管理所述通信中间件210与所述计算设备上运行的更高级软件应用之间的交互。由所述通信中间件API执行的协议构成图2所示的所述OSI模型100中的应用层110A。所述API可以提供允许所述应用220从内存中读取或向所述内存中写入通信数据并与所述应用层110A交互的功能。所述通信中间件API可以将头信息添加到被写入所述设备上的内存中的通信数据中。这对应于图1所示的所述应用头130B。
所述通信中间件210包括协议栈模块240。根据图1所示的所述OSI模型100,所述协议栈模块240用于实现所述网络协议栈中对应于层110A至110D的协议。所述协议可以包括序列化协议和加密协议,例如,图1中结合所述表示层110B和所述会话层110C描述的协议。在一些情况下,所述协议栈也可以实现所述网络层110E和/或所述数据链路层110F上的协议。所述协议栈模块240以通信方式耦合到所述通信信道220。通信数据从所述协议栈模块240传递到所述通信信道220,从所述通信信道220传出,以通过所述网络与设备230A和230B进行通信。
所述通信中间件210以通信方式耦合到共享内存区域250。所述共享内存区域250可被所述应用230访问。从所述应用230发送到所述通信中间件210的通信数据存储在所述共享内存区域250中。
所述通信中间件210包括管理所述共享内存区域250中的数据的共享内存管理模块260。所述共享内存管理模块260响应所述应用230的在所述共享内存区域250中分配内存的请求。在示例中,所述共享内存区域250是用户空间中的连续虚拟内存中的区域,所述区域在系统内核中被映射为一些物理内存,所述物理内存可以是连续的,也可以是不连续的。
所述通信中间件210还包括数据管理模块270。所述数据管理模块270包括用于控制如何按照特定格式管理和存储来自所述应用230的通信数据的逻辑。所述特定数据格式是与所述应用层110A至所述传输层110D兼容的数据格式。根据示例,所述数据格式可以指定所述通信数据按照序列化格式和加密格式存储,这些格式与所述网络协议栈中的协议兼容。
根据此处描述的示例,所述通信中间件210包括通信调节模块280。所述通信调节模块280以通信方式耦合到所述共享内存管理模块260、协议栈模块240和数据管理模块270。
所述通信调节模块280用于集成和调节用于层110A至110D的协议栈的原始网络协议栈逻辑。具体而言,所述通信调节模块280与所述数据管理模块270协同工作,所述数据管理模块270定义通信数据存储在所述共享内存区域250中的格式,以实现对所述应用230生成的通信数据的数据传输。从所述应用230接收通信数据的所述数据管理模块270包括形成所述通信数据的原始数据包120A上的格式头290。所述格式头290包括与所述数据如何存储在所述共享内存区域250中相关的参数数据,例如,所述共享内存区域250中分配的共享内存的大小。
所述数据管理模块270与所述共享内存管理模块260交互以将传输层兼容的数据格式的所述数据包120A存储在所述共享内存区域250中。这包括,例如,使用所述会话层110C和所述传输层110D的正确序列化格式和加密格式存储所述数据。与数据序列化和加密有关的信息包含在所述格式头290中。
所述通信调节模块280用于修改所述头部130B以包括来自所述共享内存的所述数据包120A的索引。所述通信调节模块280将所述应用层头110B传递到所述协议栈模块240。所述通信调节模块280包括逻辑,以确保存储在所述共享内存区域250中的所述数据包120A的主体通过所述协议栈的层110A至110D与所述应用层头130B解耦。所述逻辑还确保不会对该数据执行额外的序列化或加密。
一旦所述应用层头130B已在所述传输层110D中被处理,可以在所述共享内存区域250中提供所述数据包120A的主体。根据此处描述的示例,可以通过解析所述应用层头并基于所述应用层头130B中提供的地址索引访问所述数据包120A,从所述共享内存区域250中检索所述数据包120A。
如果所述通信对端225位于同一台计算设备上,则可以通过进程间通信进行快速通信。处理后的所述应用层头130B通过所述通信信道220发送到所述通信对端225。如上所述,运行在所述通信对端225上的接收进程解析处理后的所述应用层头130B,并基于所述应用层头130B中提供的所述地址索引访问所述数据包120A中的所述通信数据。所述通信对端225的所述接收进程解析所述数据包120A中包含的格式头,以正确解析所述数据包120中包含的数据的主体部分。
如果通过网络与所述通信对端225进行通信,则执行另一种进程。发送计算设备和接收通信对端225的内核驱动器均能够基于处理后的所述应用头130B内的索引访问所述数据包120A。在通过所述网络发送数据之前,所述通信调节模块280从所述共享内存区域250中检索所述通信数据。
通过所述网络传输包括所述数据包120A和处理后的所述应用头130B的通信数据。所述通信对端225接收处理后的所述应用头130B和所述数据包120A,并将所述数据包120A保存到其设备的相应共享内存区域中。所述通信对端225解析所述数据包120A中包含的所述格式头,以正确解析所述数据包120中包含的所述数据的主体部分。如果发送方机器和接收方机器的字节顺序不同,则接收方将所述数据转换成其自己的字节顺序。当所述数据包到达所述通信对端225时,确定字节顺序。
图3示出了根据本发明一示例实施例的通信调节模块和共享内存区域300的示意图。图3中示出了数据缓冲区310。所述数据缓冲区310可以是图2所示的共享内存区域250的一部分。来自所述应用230的通信数据被写入所述数据缓冲区310。
在原有工作流程中,通过所述通信中间件的各层写入通信数据。这涉及多次数据复制和内存读写操作。图3示出了与图2所示的通信调节模块280类似的通信调节模块320。所述通信调节模块320用于通过对所述通信数据的主体执行数据传输来减少这些数据操作的数量。
所述通信调节模块320将所述通信数据存储在所述数据缓冲区310中标记为D1、D2、D3、...、Dn的数据包330中。每个数据包330具有对应的应用头340H1、H2、H3、...、Hn,类似于图1和图2中示出的所述应用头130。
应用头H1 350在图3中详细示出。所述应用头350包括中间件协议头360。所述中间件协议头360可以包括指定与中间件协议相关的其他附加选项的标识符和附加数据字段。
所述通信调节模块320用于利用所述修改后的头部370修改所述应用头350。所述修改后的头部包括指定所述数据包在所述共享内存区域中的位置的索引375。
在通常的工作流程中,存储在所述用户数据缓冲区310中的数据被复制到中间件发送/接收缓冲区380。所述通信调节模块320以通信方式耦合到所述中间件发送/接收缓冲区380。所述通信调节模块320确保所述通信数据的所述主体与整个通信栈中的所述应用头350解耦。所述通信调节器320通过与图2所示的所述数据管理模块通信,确保所述通信数据的所述主体以正确格式存储,并进行序列化和加密。
所述通信调节器320用于确保不会执行额外的序列化和加密操作。在一些示例中,所述通信调节模块用于执行附加功能,例如,服务质量(Quality ofService,简称QoS)检查、过滤、流量控制和基于修改后的头部350的E2E。
在图3中,当所述头部350在传输层中处理时,直接从所述共享内存区域(数据缓冲区310)中提供所述通信数据的所述主体并写入传输缓冲区390以进行通信。
如先前针对所述通信对端225的描述,如果所述通信对端在同一台机器上,则可以通过进程间通信(Inter-Process Communication,简称IPC)进行快速通信。可以将数据一次性复制到所述接收进程可以访问的传输缓冲区中。在另一示例中,如果可以从同一个内存区域中接收所述通信数据的主体,则也有可能发生“零复制”。
在所述通信对端是连接到同一网络的另一设备的情况下,基于所述修改后的头部350的所述地址数据访问所述通信数据的所述主体部分。所述修改后的头部350和所述通信数据的主体一起传输到所述接收设备的内核驱动器。在所述接收设备的传输层中解析所述修改后的头部,根据所述修改后的头部中的地址访问所述通信数据的所述主体部分。
图4示出了根据本发明一示例实施例的一种通信数据的数据包400的简化示意图。所述数据包包括数据包主体410和应用头420。所述数据包主体410包括格式头430和用户净荷440。所述数据管理模块270将所述格式头430添加到所述数据包的所述主体部分410,从所述应用230中接收数据包。
所述数据管理模块270提供与所述应用层110A至所述传输层110D兼容的核心数据格式定义,以及如何根据该格式管理数据包的逻辑。所述应用230调用所述通信中间件提供的初始化接口以分配所述共享内存模块250中的数据缓冲区,通过共享内存地址在内部提供所述数据缓冲区。
在图4中,在所述格式头430中确定动态指针num_dynamic的数量N。所述格式头430包含以下信息:
·shm_idx:共享内存数据的索引;
·num_dynamic:数据包中动态指针的数量;
·buf_index:已分配的动态指针的数量,小于等于N;
·buf_off[N]:动态指针与头部的起始地址之间的偏移量;
·buf_pos[N]:已分配的共享内存地址与头部的起始地址之间的偏移量;
·buf_size[N]:已分配的共享内存的大小。
所述格式头430还可以使用加密相关数据进行扩展。例如,在一些情况下,所述格式头430包括每个动态指针的随机偏移。随机偏移可用于阻止来自所述网络的攻击。所述格式头430还可以针对QoS、过滤、查询、历史等高级特性进行扩展。
图5示出了根据本发明示例实施例的处理网络协议栈中的数据的方法500的框图。所述方法500可以与此处描述的其它方法和系统结合使用。特别地,图5所示的所述方法500可以在图2所示的通信系统200和图3所示的通信调节器和共享内存上实现。
在方框510中,所述方法包括:在计算设备的共享内存区域中分配数据缓冲区。根据示例,在共享内存区域中分配数据缓冲区包括:初始化所述共享内存区域中的数据缓冲区,并为所述共享内存中的所述数据缓冲区保留地址空间。当所述方法500在图2所示的系统上实现时,可以通过应用230与通信中间件210交互实现方框510。
在方框520中,将包括头部和主体部分的通信数据写入所述数据缓冲区。根据此处描述的示例,所述通信数据的所述主体部分以兼容的格式存储在所述数据缓冲区中,以在网络协议栈中传输所述数据。方框520可以由作为所述应用230、所述共享内存区域250和数据管理模块270之间的接口的通信中间件API实现。在图2中,所述数据管理模块270包括用于控制根据所述兼容格式管理和存储来自所述应用230的数据的逻辑。所述格式的示例如图4所示。在图4所示数据包的主体的示例中,在所述主体部分中添加格式头410。在一些示例中,方框510包括序列化和/或加密数据以按照所述兼容格式存储所述数据的步骤。
在方框530中,生成修改后的头部。所述修改后的头部包括来自应用层110A的原始头部和包括地址数据的另一部分。所述地址数据确定所述通信数据在所述数据缓冲区中的地址。方框530由通信调节模块280实现。在示例中,所述通信调节模块280读取所述地址数据,所述地址数据指定所述通信数据在内存中的位置,并将所述地址数据附加到所述头部。在一些情况下,所述修改后的头部包括标识位。该标识位将所述头部标识为包括另一地址数据部分的修改后的头部。该标识位用于标识通过网络传输到通信对端的数据的类型。
在方框540中,通过网络协议栈处理所述修改后的头部。根据此处描述的示例,方框540由所述通信调节模块280实现。如结合图2所描述的,所述头部与所述数据管理模块270以传输兼容格式存储的所述通信数据的主体部分解耦。根据所述OSI模型100,所述修改后的头部通过所述协议栈到达下层。
当所述方法500在图2所示的系统上实现时,所述通信调节模块280确保所述通信数据的所述头部通过所述栈,而不执行进一步的数据操作,不将所述地址数据附加到所述原始头部。特别地,不执行额外的内存复制功能,也不执行额外的加密或序列化操作。在一些示例中,通过所述网络协议栈处理所述修改后的头部包括:确定所述通信数据的所述主体部分与所述头部解耦。
根据示例,所述方法500还可以包括:解析所述修改后的头部以确定所述地址数据,并基于所述修改后的头部的所述地址数据访问所述通信数据的所述主体部分。这可以由所述通信调节模块280实现。所述通信调节模块280可以使用所述修改后的头部的所述地址数据检索所述主体部分,用于与所述网络中的通信对端或同一计算设备上的其他进程进行通信。可以在响应来自所述网络协议栈的低层(例如,网络层110E或数据链路层110F)的任何服务请求之前检索所述主体部分。
图6示出了根据本发明示例实施例的向数据缓冲区写入数据的方法600的框图。图6所示的所述方法600可以与此处描述的其它方法和系统结合使用。特别地,所述方法600可与图2所示的通信中间件210以及图2所示的通信对端225结合使用。所述方法600可以由管理所述共享内存250的所述共享内存管理模块260实现。
在方框610中,初始化新的缓冲区。当所述方法600在所述通信中间件210上实现时,根据本发明,初始化新的数据缓冲区包括:与所述数据管理模块270进行通信,以确保数据按照正确的数据格式存储在所述数据缓冲区中。
在方框620中,在所述新的数据缓冲区中分配动态内存。用于来自应用230的通信数据的数据结构的任何动态成员都通过分配接口进行分配,所述分配接口可以在所述通信中间件API中提供,并在所述共享内存管理模块260中实现。
在方框630中,从应用中传输数据。根据示例,所述应用230使用通常提供的相同通信中间件接口发送数据,但是,当与图5所示的方法500结合使用时,仅所述头部通过所述协议栈模块240中提供的整个通信栈来处理。所述头部包括缓冲区索引,用于指定地址数据。
在方框640中,一旦所述数据缓冲区中的通信数据已经通过所述网络传输,或者已从所述数据缓冲区中传递出去,则释放所述数据缓冲区的分配。根据此处描述的示例,可以在所述通信中间件210和正在接收所述通信数据的读取设备之间进行同步。这确保了所述数据缓冲区仅在接收到先前存储在所述数据缓冲区中的通信数据时被释放。在一些示例中,一旦所述数据缓冲区被释放,所述方法600返回至方框610。
图7示出了根据本发明示例实施例的方法700的框图。所述方法700可以与此处描述的系统结合使用。特别地,当从图2所示的通信系统接收到通信数据时,所述方法700可用于所述通信对端225的对应的共享内存管理模块。
在方框710中,从计算设备中接收通信数据。在示例中,接收所述数据的计算设备可以与进程间通信时发送数据的设备相同。在其他示例中,所述数据由通过网络进行通信的另一计算设备传输。
在方框720中,判断接收到的所述数据是否为具有根据此处描述的方法中的修改后的头部的数据,或者所述数据是否为正常通信数据。根据此处描述的示例,可以基于数据包中指示具有修改后的头部的标识位来进行判断。
如果所述数据是正常通信数据,则在方框730中,所述数据通过所述网络协议栈。
在方框740中,如果确定所述数据是包括修改后的头部的通信数据,则解析所述头部以判断是否应当在所述通信协议栈中读取所述数据的单个副本,或者是否可以进行零复制。零复制是指通过消除在内存区域之间复制数据以执行操作的要求从而使得在网络协议中能更有效地读取数据的特征。在当前的情况下,一次复制功能允许进行一次复制。一次复制降低了数据冲突的风险,提高了当多个数据读取实体读取同一数据时的效率。如果所述数据要复制一次,则在方框750中将所述数据写入新的缓冲区。
所述缓冲区返回至用户应用,所述缓冲区是在零复制情况(方框760)下原始接收到的数据指针,或者在一次复制情况下的新创建的缓冲区(方框770)。对于进程间通信,当不使用一次复制时,应用头按原样处理。对于非IPC通信,当使用一次复制时,由于新的分配而改变了共享内存的索引,并将所述应用头更新为新的索引。
图8示出了根据本发明示例实施例的方法800的框图。所述方法800可以与此处描述的系统结合使用。特别地,当传输来自通信系统的包括修改后的头部和主体部分的通信数据时,所述方法800用于所述通信系统200和所述通信对端225之间。所述通信对端225可以是运行在同一台机器上的程序,也可以是通过网络与所述通信系统进行通信的设备。
在方框810中,判断接收方是否在同一个设备上。在方框820中,如果确定所述通信对端225在同一个设备上,则传输所述修改后的头部。在方框830中,解析所述修改的头部以确定所述主体部分在所述同一个设备上的所述共享内存中的地址数据。在方框840中,基于所述地址数据访问所述主体部分。在方框850中,解析所述格式头以正确解析所述主体部分的净荷。
另一方面,为了通过所述网络与接收方设备进行通信,发送方和接收方的内核驱动器都基于所述通信数据的所述修改后的头部内的索引访问所述通信数据。在方框860中,所述头部和所述主体部分均通过所述网络进行传输。
在方框860中,所述接收方接收所述修改后的头部和所述主体部分,并将所述数据写入其设备上的共享内存中。由于所述新分配的共享内存,为所述应用启动索引更新操作。然后,在所述接收设备上复制方框830至850。也就是说,所述接收设备解析所述修改后的头部以确定所述地址数据,基于所述地址数据访问所述主体部分,并解析所述格式头,从而可以正确解析所述主体部分的净荷。
分布式数据业务(Distributed Data Service,简称DDS)标准定义了实时分布式系统中数据发布、传输和订阅的接口和行为。它使用一种语言描述服务,提供平台独立的数据模型,能够映射到其他特定的平台和编程语言中。
在DDS中,生产方应用使用数据写入器写入数据,并且利用网络通过DDS域发送数据样本。在消费者侧,数据样本由数据读取器读取,然后转发(复制)到消费者应用。
在一种实施方式中,根据此处描述的DDS的开源实现的方法和系统,2兆字节的数据的通信从2毫秒减少到40微秒。用户空间通信栈内部的开销减少到20微秒。
在另一种实现方式中,所述方法和系统在自适应AUTOSAR中的通信管理模块中实现。自适应AUTOSAR是自适应应用(Adaptive Application,简称ARA)的AUTOSAR运行时的标准化。所述标准包含两种接口:服务和API。所述标准包含用于开发在多核微处理器上运行的未来汽车电子控制单元(automotive Electronic Control Unit,简称ECU)的接口。这些接口使得汽车制造商可以在未来的车辆中实现自主驾驶、空中软件更新、物联网特性、媒体流和其他服务。所述自适应平台允许在ECU运行时内动态连接服务和客户端。
所述AUTOSAR架构使用原始DDS接口通过共享内存实现进行通信,其中包含序列化和解序列化阶段的两个数据复制操作。此外,所述绑定层具有自己的序列化功能,所述序列化功能用于将自适应AUTOSAR数据类型转换为DDS序列类型,并且还涉及由于使用临时变量而导致的一个或两个数据复制操作。对于一个通信操作,总共约有四到六个数据复制操作。
在使用此处描述的方法的优化实施方式中,整个DDS协议栈完全由零复制启用,并且所述DDS绑定层中的数据复制操作的数量减少为只有两个用于数据序列化和数据类型转换的数据复制操作。与非优化版本中的12毫秒相比,2百万字节的数据通信的最终性能达到约3毫秒。
此处描述的方法和系统提供了一种高效的网络协议栈中的数据传递。待通过网络传输的通信数据的净荷以传输兼容的格式存储。这避免了由于所述通信数据的净荷不需要通过所述协议栈的各层复制到内存中而需要大量复杂的内存复制操作。所述方法和系统使得在跨网络传输之前或在同一系统上的进程之间实现数据的单个复制甚至零复制。与其他系统相比,这会提高性能,包括显著降低延迟。
此处描述的方法特别适合需要低延迟的某些环境。例如,自主车辆中的通信系统需要低延迟,使得所述车辆可以快速响应不断变化的情况。所述方法和系统可用于提高自主车辆的安全性和响应性。
本领域普通技术人员能够认识到,结合本说明书所公开的实施例中所描述的示例,可通过电子硬件或计算机软件与电子硬件的组合来实施单元和算法步骤。功能是由硬件还是由软件执行取决于技术方案的特定应用和设计约束条件。本领域技术人员可使用不同方法实现每个特定应用的所描述功能,但是不应认为该实现超出本发明的范围。
图9示出了与内存920相关联的处理器910的示例。所述内存920包括可由所述处理器910执行的计算机可读指令930。所述指令930包括指令,用于:在计算设备的共享内存区域中分配数据缓冲区;将包括头部和主体部分的通信数据写入所述数据缓冲区;通过向所述通信数据的头部添加地址数据以生成修改后的头部,其中,所述地址数据确定所述通信数据在所述数据缓冲区中的地址;以及,通过网络协议栈对所述修改后的头部进行处理。所述通信数据的所述主体部分以兼容的数据格式存储在所述数据缓冲区中,以根据所述网络协议栈进行通信。
本领域技术人员可清楚地理解,出于方便和简单描述的目的,对于前述系统、装置和单元的详细工作过程,可参考前述方法实施例中的对应过程,本文中不再描述细节。
在本应用中提供的实施例中,应理解,所公开的系统、装置和方法可通过其它方式实现。例如,所描述的装置实施例仅仅是示例性的。例如,单元划分仅仅是逻辑功能划分且在实际实现中可以是其它划分。例如,可将多个单元或部件合并或集成到另一系统中,或可忽略或不执行部分特征。另外,可通过一些接口实现所显示或论述的互相耦合或直接耦合或通信连接。装置或单元之间的直接耦合或通信连接可通过电子、机械或其它形式实现。
作为单独部分描述的单元可或可不物理分离,作为单元描述的部分可为或可不为物理单元、可位于一个位置或可在多个网络单元上分布。可根据实际需求选择部分或所有单元以实现实施例中解决方案的目的。
另外,本发明实施例中的功能单元可集成到一个处理单元中,或每个单元可物理上单独存在,或两个或更多单元可集成到一个单元中。
当这些功能以软件功能单元的形式实现以及作为单独产品销售或使用时它们可存储在计算机可读存储介质中。基于这种理解本发明的技术方案基本上或构成现有技术的部分或技术方案的部分可通过软件产品的形式实现。计算机软件产品存储在存储介质中并包括若干指令,用于指示计算机设备(其可为为个人计算机、服务器或网络设备)执行本发明实施例中所描述的方法的所有或部分步骤。可以存储程序代码的任何媒体,例如USB盘、可移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁盘或光学光盘。
本发明可以在其它具体的装置和/或方法中实现。所描述的示例实施例在各方面都仅仅是示意性的,而不是限制性的。特别地,本发明的范围由所附权利要求书而不是本文的描述和图所表示。所有来自权利要求书相同含义和范围的变化都在其范围之内。

Claims (16)

1.一种处理网络协议栈中的数据的方法,其特征在于,包括:
在计算设备的共享内存区域中分配数据缓冲区;
将包括头部和主体部分的通信数据写入所述数据缓冲区;
通过向所述通信数据的所述头部附加地址数据以生成修改后的头部,其中,所述地址数据确定所述通信数据在所述数据缓冲区中的地址;以及
通过网络协议栈处理所述修改后的头部;其中
所述通信数据的所述主体部分以兼容的数据格式存储在所述数据缓冲区中,以根据所述网络协议栈进行通信。
2.根据权利要求1所述的方法,其特征在于,包括:
解析所述修改后的头部以确定所述地址数据;以及
基于所述修改后的头部的所述地址数据访问所述通信数据的所述主体部分。
3.根据前述权利要求中任一项所述的方法,其特征在于,所述修改后的头部包括将所述头部标识为修改后的头部的标识位。
4.根据前述权利要求中任一项所述的方法,其特征在于,以兼容的格式存储所述通信数据包括:对所述通信数据进行序列化和/或加密。
5.根据前述权利要求中任一项所述的方法,其特征在于,通过所述网络协议栈处理所述修改后的头部包括:确定所述通信数据的所述主体部分与所述头部解耦。
6.一种方法,其特征在于,包括:
在网络接口处接收包括头部和主体部分的通信数据;以及
解析所述头部以确定所述通信数据是否包括根据权利要求1所述的方法中的修改后的头部。
7.根据权利要求6所述的方法,其特征在于,包括:当确定所述数据包含未修改的头部时,通过网络协议栈处理所述通信数据。
8.根据权利要求6至7所述的方法,其特征在于,包括:当所述通信数据包括修改后的头部时,将所述通信数据写入共享内存区域中的数据缓冲区。
9.根据权利要求6至8所述的方法,其特征在于,包括:基于所述修改后的头部的地址数据访问所述通信数据的所述主体部分。
10.根据权利要求6至9所述的方法,其特征在于,包括:处理所述通信数据的所述主体部分,以在应用中使用。
11.一种装置,其特征在于,包括:
共享内存区域;
以通信方式耦合到所述共享内存区域的通信调节模块,用于:
在所述共享内存区域中分配数据缓冲区;以及
以通信方式耦合到所述通信调节模块的数据管理模块,用于:
将数据以兼容的数据格式存储在所述数据缓冲区中,以通过网络协议栈进行通信;其中
所述通信调节模块用于生成用于传输数据的头部,所述头部包括确定所述数据在所述数据缓冲区中的位置的地址数据。
12.根据权利要求11所述的装置,其特征在于,包括:以通信方式耦合到所述通信调节模块和所述数据管理模块的接口,用于便于与外部应用进行数据通信。
13.根据权利要求11至12所述的装置,其特征在于,包括:以通信方式耦合到所述共享内存区域的协议栈模块,用于实现网络协议栈。
14.根据权利要求13所述的装置,其特征在于,所述协议栈用于对所述共享内存区域中的数据进行加密和/或序列化。
15.根据权利要求11至14所述的装置,其特征在于,包括:以通信方式耦合到所述共享内存区域的共享内存管理模块,用于管理所述共享内存区域中的数据。
16.一种计算机程序,其特征在于,包括指令,其中,所述指令在由一个或多个处理器执行时,使得根据权利要求1至11中任一项所述的方法得以执行。
CN201980084492.8A 2019-08-06 2019-08-06 一种处理网络中的数据的方法及装置 Active CN113228576B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/071131 WO2021023379A1 (en) 2019-08-06 2019-08-06 Method and appartaus for processing data in a network

Publications (2)

Publication Number Publication Date
CN113228576A true CN113228576A (zh) 2021-08-06
CN113228576B CN113228576B (zh) 2022-10-04

Family

ID=67587759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980084492.8A Active CN113228576B (zh) 2019-08-06 2019-08-06 一种处理网络中的数据的方法及装置

Country Status (4)

Country Link
US (1) US12021955B2 (zh)
EP (1) EP4008090A1 (zh)
CN (1) CN113228576B (zh)
WO (1) WO2021023379A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114019837A (zh) * 2021-08-30 2022-02-08 浪潮软件科技有限公司 一种去差异化的数据采集系统及方法
CN115167786A (zh) * 2022-09-06 2022-10-11 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、系统、设备和介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11924248B2 (en) * 2020-07-08 2024-03-05 Nokia Solutions And Networks Oy Secure communications using secure sessions
CN115242565B (zh) * 2021-04-22 2023-12-15 华为技术有限公司 一种基于autosar实现dds通信的系统架构、通信方法及设备
US11814086B1 (en) 2022-10-20 2023-11-14 Rivian Ip Holdings, Llc Middleware software layer for vehicle autonomy subsystems
US11843685B1 (en) * 2022-10-26 2023-12-12 GM Global Technology Operations LLC Method and apparatus for embedded in-vehicle device-to-device cloud communications optimization

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073946A1 (en) * 2002-10-01 2004-04-15 Yoshikazu Kobayashi Terminal device, method for processing communication data inside the terminal device, and program for implementing the method
CN1614955A (zh) * 2004-11-16 2005-05-11 北京北方烽火科技有限公司 微引擎与StrongArm核的通信方法
CN101158936A (zh) * 2007-11-21 2008-04-09 中国科学院计算技术研究所 一种节点之间的数据传输系统和装置及方法
US20100220638A1 (en) * 2006-02-08 2010-09-02 Agere Systems Inc. Mac-hs processing in an hsdpa-compatible receiver in a 3g wireless network
CN101859263A (zh) * 2010-06-12 2010-10-13 中国人民解放军国防科学技术大学 一种支持在线迁移的虚拟机间快速通信方法
US20190052582A1 (en) * 2017-08-11 2019-02-14 Qualcomm Incorporated Buffer management for multiple radio access technologies
US20190095236A1 (en) * 2017-09-22 2019-03-28 International Business Machines Corporation Accounting and enforcing non-process execution by container-based software receiving data over a network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920703A (en) * 1997-02-19 1999-07-06 International Business Machines Corp. Systems and methods for managing the processing of relatively large data objects in a communications stack
US9389905B2 (en) 2012-03-16 2016-07-12 Oracle International Corporation System and method for supporting read-only optimization in a transactional middleware environment
US9973335B2 (en) * 2012-03-28 2018-05-15 Intel Corporation Shared buffers for processing elements on a network device
IN2013CH05983A (zh) * 2013-12-23 2015-06-26 Ineda Systems Pvt Ltd

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073946A1 (en) * 2002-10-01 2004-04-15 Yoshikazu Kobayashi Terminal device, method for processing communication data inside the terminal device, and program for implementing the method
CN1614955A (zh) * 2004-11-16 2005-05-11 北京北方烽火科技有限公司 微引擎与StrongArm核的通信方法
US20100220638A1 (en) * 2006-02-08 2010-09-02 Agere Systems Inc. Mac-hs processing in an hsdpa-compatible receiver in a 3g wireless network
CN101158936A (zh) * 2007-11-21 2008-04-09 中国科学院计算技术研究所 一种节点之间的数据传输系统和装置及方法
CN101859263A (zh) * 2010-06-12 2010-10-13 中国人民解放军国防科学技术大学 一种支持在线迁移的虚拟机间快速通信方法
US20190052582A1 (en) * 2017-08-11 2019-02-14 Qualcomm Incorporated Buffer management for multiple radio access technologies
US20190095236A1 (en) * 2017-09-22 2019-03-28 International Business Machines Corporation Accounting and enforcing non-process execution by container-based software receiving data over a network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王培东等: "一种自适应的嵌入式协议栈缓冲区管理机制", 《计算机应用研究》, no. 06, 15 June 2009 (2009-06-15), pages 2254 - 2262 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114019837A (zh) * 2021-08-30 2022-02-08 浪潮软件科技有限公司 一种去差异化的数据采集系统及方法
CN115167786A (zh) * 2022-09-06 2022-10-11 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、系统、设备和介质

Also Published As

Publication number Publication date
US20220166857A1 (en) 2022-05-26
EP4008090A1 (en) 2022-06-08
CN113228576B (zh) 2022-10-04
WO2021023379A1 (en) 2021-02-11
US12021955B2 (en) 2024-06-25

Similar Documents

Publication Publication Date Title
CN113228576B (zh) 一种处理网络中的数据的方法及装置
US7502826B2 (en) Atomic operations
CN106796538B (zh) 网关装置、车载网络系统以及固件更新方法
US6459698B1 (en) Supporting mapping of layer 3 priorities in an infiniband ™ network
JP4150336B2 (ja) 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成
US6522654B1 (en) Method for hosting the internet protocol suite on the IEEE-1394 high speed serial bus
US6999462B1 (en) Mapping layer 2 LAN priorities to a virtual lane in an Infiniband™ network
US9270594B2 (en) Apparatus and method for applying network policy at virtual interfaces
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
US9134909B2 (en) Multiple I/O request processing in a storage system
US20110153780A1 (en) Apparatus and methods for handling network file operations over a fibre channel network
US6973085B1 (en) Using application headers to determine InfiniBand™ priorities in an InfiniBand™ network
EP2497026B1 (en) Electronic data processing system having a virtual bus server application
US8447880B2 (en) Network stack instance architecture with selection of transport layers
US7039690B2 (en) System and method for accessing registers of PHY device in network
US7447788B2 (en) Providing host information to devices in multi SCSI transport protocols
CN112968919A (zh) 一种数据处理方法、装置、设备和存储介质
CN110958216B (zh) 安全的在线网络分组传输
US20090043776A1 (en) System and method for direct file transfer in a computer network
US6879999B2 (en) Processing of requests for static objects in a network server
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
CN117354368B (zh) 七层代理下客户端信息透传方法、装置、设备及存储介质
CN118282806B (zh) 一种多路协议转换的数据网关
US20240137332A1 (en) Transmission of a signal from a first electronic component of a vehicle to at least one second electronic component of the vehicle
JP2001268094A (ja) ノード装置、同装置を複数備えた情報処理システム、及びパラメータ交換方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant