CN112154633A - 用于tcp通信的接收装置和传输装置 - Google Patents

用于tcp通信的接收装置和传输装置 Download PDF

Info

Publication number
CN112154633A
CN112154633A CN201880093503.4A CN201880093503A CN112154633A CN 112154633 A CN112154633 A CN 112154633A CN 201880093503 A CN201880093503 A CN 201880093503A CN 112154633 A CN112154633 A CN 112154633A
Authority
CN
China
Prior art keywords
identifier
tcp
receiving device
receiving
tcp segment
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
CN201880093503.4A
Other languages
English (en)
Other versions
CN112154633B (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.)
XFusion Digital 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 CN112154633A publication Critical patent/CN112154633A/zh
Application granted granted Critical
Publication of CN112154633B publication Critical patent/CN112154633B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明大体上涉及传输控制协议(TCP)和TCP卸载引擎(TOE)。具体地说,本发明提出用于TCP通信的一种接收装置和一种传输装置。传输装置用于将标识符插入其发送到接收装置的TCP段中。接收装置用于从TCP段获得此标识符。标识符包括使得接收装置能够直接访问接收装置处的连接上下文的信息,其中所述连接上下文同传输装置与接收装置之间的连接相关。本发明还涉及相应的方法,具体是涉及一种用于通过交换控制信息而在传输装置与接收装置之间自动管理和配置标识符的方法。

Description

用于TCP通信的接收装置和传输装置
技术领域
本发明大体上涉及传输控制协议(TCP)通信。具体来说,本发明提出一种用于通过TCP进行通信的接收装置、一种用于通过TCP进行通信的传输装置以及一种包括所述两个装置的系统。因此,本发明涉及标识符通过TCP段进行的使用、交换和配置,所述标识符允许直接访问接收装置处的传输装置与接收装置之间的连接的连接上下文。
背景技术
TCP/因特网协议(IP)是用于面向流语义的服务的本地传输选择。TCP/IP协议非常适合在异构网络基础设施上进行可靠的端到端通信。它提供了简单且通用的数据流抽象化和连接管理。此外,它还为部署所需的基础设施提供了很高的可扩展性和简单性。另外,它还提供了灵活性和扩展性,原因在于有大量端到端拥塞和流控制算法来满足不断变化的数据中心联网需求,如DCTCP、MPTCP、ICTCP等。
然而,缺点是TCP/IP实施方式的中央处理单元(CPU)利用率过高,数据处理时间过长。
基于融合以太网的RDMA(RoCE)是面向内存语义服务的本地传输选择。RoCE非常适合在无损网络基础设施上进行远程直接内存访问(RDMA)操作。RoCE在无损网络基础设施上提供低CPU利用率、低时延和最高吞吐量。
然而,缺点是RoCE不能在异构网络基础设施上扩展(即使使用新开发的数据中心量化拥塞通知(DCQCN)也如此)。此外,它对丢包极其敏感,因此它需要基于优先级的流量控制(PFC)部署。此外,它还涉及复杂的网络管理、拥塞扩散和死锁。
下表示出TCP与RoCE之间的相关点的比较。
Figure BDA0002780929020000011
Figure BDA0002780929020000021
一个普遍的问题是,当网络的异构性和高可扩展性这两种需求可以避免时,RoCE的高性能会迫使开发人员将应用程序从TCP/IP切换到RoCE传输层。
为了提高TCP/IP性能并降低CPU利用率,可以在智能网络接口控制器(NIC)卡中实施TCP/IP堆栈处理,所述智能网络接口控制器卡也称为TCP/IP卸载引擎(TOE)8001,它具有以下优点:
·TOE在智能NIC中处理TCP协议的堆栈,将CPU周期留给用户应用程序。
·TOE实现发送缓冲区的零拷贝,直接从用户缓冲区获取数据。
·TOE实现接收缓冲区的零拷贝,使用“预先发布的缓冲区”机制将数据直接放入用户缓冲区。
·TOE避免了实现用户空间驱动程序方案的用户空间/内核交叉延迟。
·TOE能够完全或部分卸载上层应用程序(例如,iSCSI的DIF计算、iWARP的CRC计算、TLS内联处理)。
·TOE保留了稳健的协议在异构网络上为大规模应用程序服务的能力。
·TOE的可扩展性不受智能NIC容量的限制且支持“缓存”机制,其中TCP连接可由内核(Kernel)和TOE轮流处理。
·基于可编程智能NIC的TOE的实施方式保留了结合TCP/IP协议的成熟和新兴发展的灵活性。
如下表所示,TOE的传输处理时延与RoCE类似。然而,值得注意的是,协议的复杂性——以及相应协议处理的复杂性——并不是比较因素。复杂性反映了基本网络基础设施和负载模式——相同的条件需要类似的解决方案。
Figure BDA0002780929020000022
唯一不允许TOE达到与RoCE(在接收方向上)类似的包处理时延的原因是在接收到TCP段时查找连接上下文。在此方面:
·由包中的24位QP_ID直接访问RoCE的QP上下文。
·由段中的5元组(296位)查找(二叉树、散列等)TOE/TCP连接上下文。
基于5元组的TOE/TCP连接上下文的查找是一个巨大的缺点,特别是对于高可扩展性应用程序而言,例如当需要数千或数百万个TCP连接时。查找时延会严重损害此类应用程序的性能。
发明内容
鉴于上述缺点,本发明旨在改进常规TCP/TOE通信。本发明的目标是结合TCP/TOE和RoCE的优点。也就是说,本发明旨在实现在TCP/TOE中更快访问连接上下文的可能性。为此,本发明的目标是提供在TCP/TOE中直接访问连接上下文的能力。
本发明的目标通过所附独立权利要求中提供的解决方案实现。在附属权利要求中进一步定义本发明的有利实施方式。
具体地说,本发明提出用于TCP通信的接收装置和传输装置,所述接收装置和传输装置使用、交换和配置允许直接访问所述接收装置处的连接上下文的标识符。
本发明的第一方面提供一种用于通过TCP进行通信的接收装置,所述接收装置用于从传输装置接收携载标识符的TCP段、从接收到的TCP段获得标识符并且基于所述标识符直接访问所述接收装置处的连接上下文,其中所述连接上下文同所述接收装置与所述传输装置之间的连接有关。
优选地,接收装置从传输装置发送的多个或每个TCP段中获取标识符。由于标识符允许接收装置直接访问接收装置处的连接上下文,因此与现有的TCP/TOE实施方式相比,所述标识符可以更快获取所述连接上下文。但TCP/TOE的所有优点仍然存在。因此,结合了TCP/TOE和RoCE的优点。由于能够快速访问连接上下文,所以第一方面的接收装置具有显著的性能优势,特别是对于高可扩展性的应用程序而言。
在第一方面的实施形式中,接收装置用于从接收到的TCP段获得标识符,具体是从接收到的TCP段的TCP报头中已经确定的TCP选项获得标识符。
TCP选项可有效地用于将标识符载运到接收装置。
在第一方面的另一实施形式中,接收装置用于从标识符中提取与连接上下文相关的密钥,并使用所述密钥直接访问所述连接上下文。
因此,接收装置可以通过使用密钥来非常快速有效地获得连接上下文。
在第一方面的另一实施形式中,接收装置用于从标识符中提取连接上下文的地址和/或维持接收装置处的连接上下文的表的索引,并且根据所述地址和/或索引直接访问所述连接上下文。
因此,接收装置可以分别通过地址或索引非常快速有效地获得连接上下文。
在第一方面的另一实施形式中,接收装置用于从标识符中提取信息,所述信息指示传输装置与接收装置之间的连接是否已从主机TCP处理堆栈卸载到所述接收装置处的TOE。
在第一方面的另一实施形式中,接收装置用于从标识符中提取识别上层协议的服务类型的信息和/或识别TCP段的处理类型的信息。
通过由接收装置获得的此附加信息,可以更快更有效地执行和完成TCP段的处理。
在第一方面的另一实施形式中,接收装置用于在交换用于配置传输装置和接收装置之间的连接的控制信息期间,将标识符集信息插入TCP段中,具体是插入TCP段中已经确定的TCP选项中,并且将所述TCP段传输到传输装置。
具体地说,接收装置用于根据接收装置预先从传输装置接收到的能力信息插入标识符集信息。例如,传输装置可通知接收装置标识符的可能长度(能力信息)。接收装置相应地调整此长度信息,并且将标识符集信息发送到传输装置。
在第一方面的另一实施形式中,标识符集信息包括使得传输装置能够获得标识符的信息。
因此,传输装置可以优选地将标识符插入已发送到接收装置的每个TCP段中,从而允许所述接收装置直接访问连接上下文。
在第一方面的另一实施形式中,接收装置还用于在交换控制信息期间,将能力信息插入TCP段中,具体是插入所述TCP段中已经确定的TCP选项中,并且将所述TCP段传输到传输装置。
因此,一方面,接收装置可通知传输装置它是否请求参与本发明的方案,即,它是否用于从接收到的TCP段中提取标识符。另一方面,传输装置因此可被告知接收装置也能够将与所述传输装置处的连接上下文有关的标识符插入已发送到所述传输装置的TCP段中,即,它可以分别作为根据本发明的“接收装置”和“传输装置”两者参与通信。
在第一方面的另一实施形式中,能力信息包括最大支持标识符的大小。
因此,可以向传输装置通知标识符的最大大小,所述最大大小可以维持在接收装置处,并且可以由所述接收装置在充当“传输装置”时使用。
本发明的第二方面提供了一种用于通过TCP进行通信的传输装置,所述传输装置用于将标识符插入TCP段中,并且将携载所述标识符的TCP段传输到接收装置,其中所述标识符包括使得所述接收装置能够直接访问接收装置处的连接上下文的信息,其中所述连接上下文同所述传输装置与所述接收装置之间的连接有关。
由于标识符允许接收装置直接访问连接上下文,因此与常规TCP/TOE协议相比,所述接收装置可以更快更有效地获得连接上下文。同时,TCP/TOE的所有优点仍然存在。因此,结合了TCP/TOE和RoCE的优点。所以,即使是对于数千或数百万个TCP连接,传输装置也能够实现应用程序的高可扩展性,而不会显著损害应用程序的性能。
在第二方面的实现形式中,传输装置用于将标识符插入到TCP段中已经确定的TCP选项中,具体是插入所述TCP段的TCP报头中已经确定的TCP选项中。
TCP选项可以有效地用于将标识符从传输装置传输到接收装置。这样不会产生很大的额外开销。
在第二方面的另一实施形式中,标识符的结构对于传输装置而言是不透明的。
换句话说,传输装置不知道标识符的“含义”,即所述标识符是否与接收装置处的连接上下文有关,而只是简单地将标识符“盲目地”插入TCP段中,优选为插入已发送到接收装置的每个TCP段中。
在第二方面的另一实施形式中,标识符在传输装置处被预先配置。
例如,标识符可根据其配置或设置而存储在传输装置处。
在第二方面的另一实施形式中,传输装置用于在交换用于配置传输装置与接收装置之间的连接的控制信息期间,从所述接收装置接收携载标识符集信息的TCP段,并且基于接收到的标识符集信息,从所述接收到的TCP段中已经确定的TCP选项获得标识符。
因此,传输装置还可以从接收装置获得标识符,以便随后插入已传输到所述接收装置的每个TCP段中。
在第二方面的另一实施形式中,传输装置用于对每个已建立的连接维持已经确定的变量,以用于存储所获得的标识符,以及标识符的大小和/或有效状态。
这使得传输装置能够有效地管理用于不同的已建立连接的标识符。
本发明的第三方面提供一种用于通过TCP进行通信的系统,所述系统包括根据第一方面或其任何实施形式的接收装置,以及根据第二方面或其任何实施形式的传输装置。
第三方面的系统实现了上文针对第一方面的接收装置和第二方面的传输装置描述的所有优点。
本发明的第四方面提供一种用于接收装置通过TCP进行通信的方法,所述方法包括从传输装置接收携载标识符的TCP段、从接收到的TCP段获得标识符并且基于所述标识符直接访问接收装置处的连接上下文,其中所述连接上下文同所述接收装置与所述传输装置之间的连接有关。
第四方面的方法可以通过对应于第一方面的接收装置的实施形式的实施形式来扩展。因此,第四方面的方法实现了第一方面的装置及其实施形式的所有优点和效果。
本发明的第五方面提供了一种用于传输装置通过TCP进行通信的方法,所述方法包括将标识符插入TCP段中,并且将携载所述标识符的TCP段传输到接收装置,其中所述标识符包括使得所述接收装置能够直接访问接收装置处的连接上下文的信息,其中所述连接上下文同所述传输装置与所述接收装置之间的连接有关。
第五方面的方法可以通过对应于第二方面的传输装置的实施形式的实施形式来扩展。因此,第五方面的方法实现了第二方面的装置及其实施形式的所有优点和效果。
本发明的第六方面提供了一种用于通过交换控制信息在传输装置与接收装置之间自动管理和配置标识符的方法,所述方法包括:由所述传输装置将标识符能力信息插入TCP段中,具体是插入TCP段中已经确定的TCP选项中,并将所述TCP段传输到所述接收装置,由所述接收装置将标识符集信息插入TCP段中,具体是插入TCP段中已经确定的TCP选项中,并将所述TCP段传输到所述传输装置,以及由传输装置接收携载标识符集信息的TCP段并基于接收到的标识符集信息获得所述标识符。
第六方面的方法允许传输装置和接收装置交换标识符,所述标识符随后可以用于通过直接访问所述接收装置处的连接上下文实现的更快的TCP段处理。
必须注意,本申请案中所描述的所有装置、元件、单元和装置可在软件或硬件元件或其任何种类的组合中实施。由本申请中描述的各个实体执行的所有步骤和被描述为由各个实体执行的功能旨在表示相应实体适于或用于执行相应的步骤和功能。即使在特定实施例的以下描述中,将由外部实体执行的特定功能或步骤未反映在执行所述特定步骤或功能的实体的特定详细元件的描述中,但技术人员应清楚,可以在相应软件或硬件元件或其任何种类的组合中实施这些方法和功能。
附图说明
本发明的上述方面和实施形式将在以下关于附图的对具体实施例的描述中得到说明,其中:
图1示出根据本发明的实施例的接收装置。
图2示出根据本发明的实施例的传输装置。
图3示出常规TCP(左)、常规RoCE(右)以及实现TCP和RoCE的组合优点(中)的本发明的方案的概述。
图4示出由端点A和B(根据本发明实施例的接收装置和传输装置)执行的过程。
图5示出标识符的TCP选项格式。
图6示出包括与EDO选项结合的已确定标识符TCP选项的TCP段布局。
图7示出用于标识符集信息的TCP选项格式(顶部),且示出用于能力信息的TCP选项格式(底部)。
图8示出根据本发明实施例的由两个端点A和B(接收装置和传输装置)执行的过程。
图9示出根据本发明实施例的由两个端点A和B(接收装置和传输装置)执行的过程。
图10示出用于标识符集信息的TCP选项格式(顶部),且示出用于能力信息的替代TCP选项格式(底部)。
图11示出根据本发明实施例的由两个端点A和B(接收装置和传输装置)执行的过程。
图12示出根据本发明实施例的由两个端点A和B(接收装置和传输装置)执行的过程。
图13示出TCP对比RoCe的使用情况。
图14示出TCP对比RoCe连接上下文查找时延。
图15示出TCP选项格式。
图16示出Hi1823适配器内的优化数据流。
图17示出根据本发明的实施例的用于接收装置的方法。
图18示出根据本发明的实施例的用于传输装置的方法。
图19示出根据本发明实施例的用于在传输装置和接收装置之间自动管理和配置标识符的方法,即通过交换控制信息进行的方法。
具体实施方式
图1示出根据本发明的实施例的接收装置100。接收装置用于通过TCP/TOE进行通信。接收装置100可设置在计算机或其它终端装置中。接收装置100可包括用于执行如下文所描述的功能的至少一个处理器或其它处理电路。
接收装置100用于从传输装置110接收携载标识符102的TCP段101。例如,通过传输装置110将标识符102插入TCP段101中。具体地说,可将标识符102插入接收到的TCP段101中已经确定的(即,专用的或特定的)TCP选项中,具体是插入所述TCP段101的TCP报头中已经确定的(即,专用的或特定的)TCP选项中。
接收装置100进一步用于从接收到的TCP段101获得标识符102。例如,接收装置100可用于从TCP段101中已经确定的TCP选项获得标识符102。
接收装置100随后用于基于标识符102直接访问所述接收装置100处的连接上下文103。连接上下文103同接收装置100与传输装置11之间的连接有关,即,所述连接上下文包括关于此连接的上下文。换句话说,接收装置100可从TCP段101提取标识符102,接着可使用所述标识符来直接获得连接上下文103。
图2示出根据本发明的实施例的传输装置110。传输装置110用于通过TCP/TOE进行通信。传输装置110可设置在计算机或其它终端装置中。传输装置110可包括用于执行如下文所描述的功能的至少一个处理器或其它处理电路。图2的传输装置110可具体是图1所示的传输装置110。
传输装置110用于将标识符102插入TCP段101中,并且将携载所述标识符102的TCP段101传输到接收装置100(具体是图1中所示的接收装置100)。由传输装置110插入的标识符102具体是根据与传输装置110到接收装置100的连接有关的连接上下文113的(手动或自动)预先配置的值(例如变量410)的标识符。具体地说,传输装置110可将标识符102包括在TCP段101中已经确定的TCP选项中。
由此,标识符102包括使得接收装置100能够直接访问所述接收装置100处的连接上下文103的信息。标识符102(例如,无论是密钥、地址还是索引)的结构对于传输装置110而言是不透明的。换句话说,传输装置110不知道标识符102中的信息以及何种信息使得接收装置100能够直接访问连接上下文103。值得注意的是,连接上下文103同样同传输装置110与接收装置100之间的连接有关。
接收装置100直接访问连接上下文103的可能性使处理接收到的TCP段101的时延和用于处理接收到的RoCE包的时延相等。因此,由接收装置100和/或传输装置110实施的本发明允许具有TCP协议(对于面向流语义的应用程序)的所有优点,同时还实现了RoCE协议的优点。这在图3中示出。
具体地说,图3在左侧示出使用多级查找程序来访问连接上下文的常规TCP协议,并且在右侧示出常规RoCE协议,后者允许直接访问连接上下文。在中间示出本发明的解决方案,其中携载标识符102的TCP选项被称为“cookie”或“连接Cookie(CoCo)”。标识符102插入到已发送TCP段101中也允许直接访问TCP协议的连接上下文103。
在下文中,参考图4、图5和图6对本发明的工作原理进行更详细的描述。
图4示出在两个端点A和B(例如,终端装置)之间执行的程序。端点A和B可以是相同的。出于说明性目的,将端点A指示为根据本发明的实施例的接收装置100,并且将端点B指示为根据本发明的实施例的传输装置110。然而,根据端点之间的通信方向,端点A和B都可以充当根据本发明的“接收装置100”和“传输装置110”。
在图4的过程中,如果端点B,即传输装置110,向端点A,即接收装置,发送TCP段101,则所述端点B将标识符102插入TCP段101中。同样,当端点A(现充当“传输装置110”)向端点B(现充当“接收装置100”)发送TCP段111时,所述端点A可将标识符112包括在TCP段中,其中所述标识符112允许端点B直接访问端点B处的连接上下文。
标识符102仅用于从传输装置110到接收装置100的单向传输。为了激活本发明的功能,TCP连接的两端(即,传输装置110和接收装置100)将能够支持上述方案。然而,TCP连接的两端都支持方案的事实并不意味着它们两个(甚至其中一个)一直必须利用此能力(即,持续此连接的整个寿命或部分寿命)。
在图4中,端点B处,即传输装置110处的TCP堆栈用于在所述传输装置110的连接上下文中维持变量410(也被称作Peer_CoCo变量)。此变量410维持端点A,即接收装置100的标识符102(也被称作Peer_CoCo值),包括标识符102的大小和有效状态。同样,端点A的TCP堆栈可维持变量400以存储标识符112。
标识符102包括与连接上下文103有关的信息,所述信息维持在接收装置100处,并且对于传输装置110而言是不透明的。标识符102的大小取决于实施方式,并且在本发明中不受限制。
在实例中,维持在传输装置110的变量410中的标识符102可包括接收装置100处的连接上下文103例如在x86内存中的直接地址。在此情况下,标识符102可大于或等于64位。在另一实例中,标识符102可包括在接收装置100处的连接上下文在表中的索引。在此情况下,标识符102可以约为32位。
当在传输装置110处创建连接上下文时,可将在所述传输装置110处维持的变量410初始化为无效状态。本发明不限制变量410的初始化和修改方式。具体地说,可以在“带外(out-of-band)”或“带内(in-band)”完成初始化和修改。“带外”表示外部代理,所述外部代理通过TCP堆栈的应用程序编程接口(API)更新变量410。“带内”表示通过传入的TCP流对变量410进行管理,这随后将进行更详细的描述。
图5示出标识符102可插入TCP段101的TCP选项500中,这将在下文中更详细地进行描述。图6示出在TCP段101中可以如何提供具有标识符102的TCP选项500。
具体地说,在传输装置100处的本地变量410处于有效状态的情况下,传输装置110的TCP堆栈可将TCP选项500(例如,如图5中所示)附加到已传输到所述接收装置100的每个TCP段101(如图6中所示)。TCP选项500携载标识符102,即,存储在变量410中的值。可根据RFC6994(实验性TCP选项)来定义TCP选项500的格式。如果TCP选项500与其它常用的TCP选项(例如时戳、窗口大小、3孔袋(3-hole SACK))一起使用,并且无法容纳在TCP标准选项空间(例如40B)中,则所述TCP选项500可以与EDO选项一起使用,如例如https://tools.ietf.org/html/draft-ietf-tcpm-tcp-edo-08中所描述的。
本发明不限制在接收装置100处对接收到的TCP段101的处理方式,具体地说,不限制对携载标识符102的TCP选项500的处理方式。本发明也不限制标识符102的内容,但通常假设标识符102充当直接访问接收装置100处的连接上下文103的辅助者。例如,标识符102可包括短密钥,所述短密钥允许快速查找接收装置100处的连接上下文103。标识符102还可包括直接访问接收装置100处的“连接上下文”表的索引,或接收装置100处的所述连接上下文103的完全限定的内存地址。
接收装置100可接收具有或不具有TCP选项500(即具有或不具有标识符102)或甚至具有携载不同标识符102的TCP选项500(例如,或作为传输装置110处的变量410重新配置的结果)的连续TCP段101。这可能会导致多线程TCP堆栈的实施方式出现短暂混乱,因为具有不同标识符102的TCP段101的处理流程会通过不同的路径(TBD)。
关于图6,应注意,扩展数据偏移(EDO)选项内的header_length字段可覆盖TCP报头的data_offset字段。图5的EDO选项和TCP选项500可驻存在由data_offset字段覆盖的选项空间内。
此外,还应注意,不支持本发明的方案但仍然接收具有包括标识符102的TCP选项500的TCP段101的常规接收装置处的TCP堆栈可静默地忽略TCP选项500。
在下文中,描述了传输装置110处的变量410的“带内”初始化和修改(即,带内控制)。所提出的发明不限制此“带内”控制的实施方式(即,通过带内业务)。所提出的发明仅假设带内控制基于附加到已传输TCP段的已确定TCP选项的交换。
这些TCP选项可呈标准格式或呈实验格式。在实验格式中,可将TCP选项附加到任何数据段。此外,在标准格式中,TCP选项可附加到任何数据或SYN段。将可靠地将TCP选项传输到连接对等方。为了实现TCP选项传输的这种可靠性,可提供对TCP选项500所附加到的TCP段101的监测和确认。现在以带内控制的两种替代方案为例进行描述。
第一“带内”示出于图7、图8和图9中。如图7所示,使用两个专用TCP选项700和702来实施第一替代方案。图7的上部TCP选项700包括标识符集信息703,且图7的下部TCP选项702包括能力信息703。
能力信息703可以声明传输装置110维持最大长度的变量410中的标识符102以及在将TCP段101发送到接收装置100时插入标识符102的能力。能力信息703可包括标识符102的最大支持大小。大小值‘0’表示不支持,即不具有维持和使用标识符102的能力。
标识符集信息701可以将标识符102的值从接收装置100传递到传输装置110。具体地说,标识符集信息701可包括标识符102的值及其大小。大小值‘0’表示标识符102失效。TCP选项700和702可附加到任何非SYN数据段,且被可靠地传输到连接对等方。
这些TCP选项700和702的可能交换如图8(完美交换)和图9(不全面交换)中所示,且在下文中加以解释。
类似于图4,由两个TCP端点A和B进行交换。出于说明性目的,同样,将端点A指示为根据本发明的实施例的接收装置100,并且将端点B指示为根据本发明的实施例的传输装置110。然而,同样,取决于端点之间的通信方向,端点A和B两者都可充当根据本发明的“接收装置100”和“传输装置110”。
端点A和B应遵循下列规则。当传输装置经由到接收装置100的连接发送和/或接收标识符的能力的状态发生改变时,传输装置110应告知接收装置100其能力。因此,在图8和图9中,端点B,即传输装置110可将TCP段800中的能力信息703发送到端点A,即接收装置100。这可以例如在连接建立、至TOE的下载连接/来自TOE的上传连接、配置等时完成。
一旦接收到能力信息703,端点A就可将标识符集信息701传输到TCP段810中的端点B,此集合可能是冗余的,但却是必需的,因为端点A可能会在不同能力的TCP堆栈(主机软件/TOE)之间的转换期间“忘记”状态。
一旦接收到有效的、有序的具有包括标识符集信息701的附加TCP选项700的TCP段800,端点B就会更新其本地变量410,所述本地变量包括从标识符集信息710获得的标识符102的有效状态和大小。一旦接收到不适合端点B的本地能力的标识符集信息701,端点B就会使本地变量410无效,并将其能力信息70重新发送到端点A。
一旦变量410配置有标识符102,端点B就可将标识符102插入已发送到端点A的TCP段101中。
如图8所示,另外有可能的是,端点B还在TCP段800中提交自身的标识符集信息711。类似地,端点B可将TCP段810中的能力信息713发送到端点A。以此方式,从标识符集信息711获得的标识符112可以用于端点A处的变量400中。因此,端点A还可以充当“传输装置110”且可将标识符112插入已发送到在此情况下充当“接收装置100”的端点B的TCP段111中。
不支持本发明的方案的任何TCP端点将静默地忽略任何接收到的TCP选项700或702。
关于图8,完美交换意味着在交换期间能力方面不存在冲突,并且建立了在两个方向上传输的具有分别插入到TCP段101和111中的标识符102和112的双向数据流。
关于图9,不全面交换意味着端点B的能力和端点A所请求的标识符存在冲突。因此,最终端点B并不将标识符102插入已发送到端点A的TCP段101中。作为图9中的实例,端点A使用标识符集信息701请求大小为8字节的标识符,但端点B只能提供如能力信息703所指示的大小为4字节的标识符102。因此,最后,在从端点A到端点B的方向上仅使用标识符112,而在从端点B到端点A的方向上不使用标识符。
参考图10、图11和图12解释第二“带内”替代方案。如图10所示,使用两个TCP选项1000和1002来实施第二替代方案。上部TCP选项1000包含标识符集信息1001,且下部TCP选项1002包括扩展能力信息1003。
能力信息1003可以声明TCP连接的接收装置100和传输装置110两者的能力。能力信息1003可包括用于连接的两端的标识符102的最大支持大小。大小值‘0’表示不支持,即无能力。标识符集信息1001可以将标识符102的值传递到传输装置110。具体地说,标识符集信息1001可包括标识符102的值及其大小。大小值‘0’表示标识符102失效。
这些TCP选项1000和1002的可能交换如图10(完美交换)和图11(不全面交换)中所示,且在下文中加以解释。类似于图4,由两个TCP端点A和B进行交换。出于说明性目的,同样,将端点A指示为根据本发明的实施例的接收装置100,并且将端点B指示为根据本发明的实施例的传输装置110。然而,同样,取决于端点之间的通信方向,端点A和B两者都可充当根据本发明的“接收装置100”和“传输装置110”两者。
端点A和B应遵循以下规则。
当传输装置经由到接收装置100的连接发送和/或接收标识符的能力的状态发生变化时,传输装置应告知接收装置100已知能力。例如,在图11和图12中,端点B,即传输装置110可将TCP段1100中的能力信息1003发送到端点A。这可以例如在连接建立、至TOE的下载连接/来自TOE的上传连接、配置等时完成。在连接建立的情况下,能力信息1003可优选地附加到SYN段。值得注意的是,同样,端点A可将其已知能力信息1013发送到TCP段1110中的端点B。
一旦接收到具有适合标识符102的本地能力的能力信息1003,TCP端点A就可将标识符集信息1001提交到TCP段1020中的端点B,从而允许端点B获得标识符102并将其维持在变量410中。也就是说,在接收到具有附加标识符集信息1011的有效有序段1020后,TCP端点B将更新包括标识符102的有效状态和大小的本地变量410。一旦接收到不符合端点B的本地能力的标识符集信息1011,端点B就会使本地变量410失效。
一旦接收到具有与端点A的能力不对应的远程能力的能力信息1003,TCP端点A就会提交其自身的已知能力信息。这可能是冗余的,但却是优选的,因为TCP端点可能会在不同能力的TCP堆栈(主机软件/TOE)之间的转换期间“忘记”状态。
不支持本发明的方案的任何TCP端点将静默地忽略任何接收到的TCP选项1000或1002。
关于图11,完美交换意味着在交换期间能力方面不存在冲突,并且建立了在两个方向上传输的具有分别插入到TCP段中的标识符的双向数据流。具体地说,从端点A到端点B,标识符大小是8字节,而从端点B到端点A,标识符大小是4字节(即使端点B能够支持大小是8字节的标识符)。
关于图12,不全面交换意味着端点B的能力和端点A所请求的标识符存在冲突。具体地说,端点A所请求的标识符大小(具有8字节的大小)大于端点B可提供的大小(即,仅4个字节)。
在下文中,描述用于实施本发明的一些特定实施例。例如,本发明可应用于通过Hi1823智能网络适配器内的TOE加速处理接收到的TCP包。此使用情况的目标是TCP包应被IPSU RX模块完全限定为TCP卸载包。在此方面,图13示出在Hi1823的接收器中的当前TCP流(底部)和RoCE流(顶部)。
在下文中,参考图15描述一些另外的可操作代码(操作码)考虑因素,评估使用哪种TCP选项格式。图15示出包括操作码1501的TCP选项1500。TCP选项还包括X_ID。
在Hi1823中实施的本发明使基于TCP的业务的处理加快。在图14中总结了结果。实现了TCP与RDMA包之间的接收时延的均衡。具体地说,卸载的TCP包的RX时延减少了超过600ns。此外,上层协议的并行处理是可能的:iSCSI、iWARP、MPI。并且实现了RoCE和TCP流的处理的统一。
图17示出根据本发明的实施例的用于接收装置100通过TCP进行通信的方法1700。方法1700包括从传输装置110接收1701携载标识符102的TCP段101、从接收到的TCP段101获得1702标识符102,以及基于所述标识符102直接访问接收装置100处的连接上下文103。由此,连接上下文103同接收装置100与传输装置110之间的连接有关。
图18示出根据本发明的实施例的用于传输装置110通过TCP进行通信的方法1800。方法1800包括将标识符102插入1801TCP段101中,且将携载标识符102的TCP段101传输到接收装置100。因此,标识符102包括使得接收装置100能够直接访问接收装置100处的连接上下文103的信息。此外,连接上下文103同传输装置110与接收装置100之间的连接有关。
图19示出用于通过交换控制信息而在传输装置110与接收装置100之间自动管理和配置标识符102的方法1900。方法1900包括由传输装置110将标识符能力信息713插入1901第一TCP段810中,具体是插入第一TCP段810中已经确定的TCP选项中,并将所述第一TCP段810传输到接收装置100;由接收装置100将标识符集信息701插入1902第二TCP段800中,具体是插入第二TCP段800中已经确定的TCP选项700中,并将所述第二TCP段800传输到所述传输装置110;以及由传输装置110接收1903携载标识符集信息701的第二TCP段800,并基于接收到的标识符集信息701获得标识符102。
已结合作为实例以及实施方案的不同实施例描述了本发明。然而,所属领域的且实践所要求的发明的技术人员可以从图式、本公开以及独立权利要求的研究中理解并实现其它变化。在权利要求书和描述内容中,词“包括”并不排除其它元件或步骤,且不定冠词“一(a或an)”并不排除多个。单个元件或其它单元可履行权利要求书叙述的若干实体或项目的功能。在相互不同的从属权利要求中叙述某些措施的简单事实并不指示这些措施的组合无法在有利的实施方案中使用。

Claims (20)

1.用于通过传输控制协议TCP进行通信的接收装置(100),其特征在于,所述接收装置(100)用于
从传输装置(110)接收携载标识符(102)的TCP段(101),
从接收到的TCP段(101)获得所述标识符(102),并且
基于所述标识符(102)直接访问所述接收装置(100)处的连接上下文(103),
其中所述连接上下文(103)同所述接收装置(100)与所述传输装置(110)之间的连接相关。
2.根据权利要求1所述的接收装置(100),其特征在于,所述接收装置(100)还用于
从所述接收到的TCP段(101)获得所述标识符(102),具体是从所述接收到的TCP段(101)的TCP报头中已经确定的TCP选项(500)获得所述标识符(102)。
3.根据权利要求1或2所述的接收装置(100),其特征在于,所述接收装置(100)还用于
从所述标识符(102)中提取与所述连接上下文(103)相关联的密钥,并且
使用所述密钥直接访问所述连接上下文(103)。
4.根据权利要求1至3中任一项所述的接收装置(100),其特征在于,所述接收装置(100)还用于
从所述标识符(102)中提取所述连接上下文(103)的地址和/或维持所述接收装置(100)处的所述连接上下文(103)的表的索引,并且
根据所述地址和/或索引直接访问所述连接上下文(103)。
5.根据权利要求1至4中任一项所述的接收装置(100),其特征在于,所述接收装置(100)进一步用于
从所述标识符(102)中提取信息,所述信息指示所述传输装置(110)与所述接收装置(100)之间的所述连接是否已从主机TCP处理堆栈卸载到所述接收装置(100)处的TCP/IP卸载引擎TOE。
6.根据权利要求1至5中任一项所述的接收装置(100),其特征在于,所述接收装置(100)进一步用于
从所述标识符(102)中提取识别上层协议的服务类型的信息和/或识别所述TCP段(101)的处理类型的信息。
7.根据权利要求1至6中任一项所述的接收装置(100),其特征在于,所述接收装置(100)进一步用于在交换用于配置所述传输装置(110)与所述接收装置(100)之间的所述连接的控制信息期间,
将标识符集信息(701、1001)插入TCP段(810、1030)中,具体是插入所述TCP段(810、1030)中已经确定的TCP选项(700、1000)中,并且将所述TCP段(810、1030)传输到所述传输装置(110)。
8.根据权利要求7所述的接收装置(100),其特征在于
所述标识符集信息(701、1001)包括使得所述传输装置(110)能够获得所述标识符(102)的信息。
9.根据权利要求7或8所述的接收装置(100),其特征在于,所述接收装置(100)进一步用于在控制信息的所述交换期间,
将能力信息(713、1013)插入TCP段(810、1010)中,具体是插入所述TCP段(810、1010)中已经确定的TCP选项中,并且将所述TCP段(810、1010)传输到所述传输装置(110)。
10.根据权利要求9所述的接收装置(100),其特征在于
所述能力信息(713、1013)包括最大支持标识符的大小。
11.用于通过传输控制协议TCP进行通信的传输装置(110),其特征在于,所述传输装置(110)用于
将标识符(102)插入TCP段(101)中并且将携载所述标识符(102)的所述TCP段(101)传输到接收装置(100),
其中所述标识符(102)包括使得所述接收装置(100)能够直接访问所述接收装置(100)处的连接上下文(103)的信息,
其中所述连接上下文(103)同所述传输装置(110)与所述接收装置(100)之间的连接相关。
12.根据权利要求11所述的传输装置(110),其特征在于,所述传输装置(110)还用于
将所述标识符(102)插入所述TCP段(101)中已经确定的TCP选项(500)中,具体是插入所述TCP段(101)的TCP报头中已经确定的TCP选项(500)中。
13.根据权利要求11或12所述的传输装置(110),其特征在于
所述标识符(102)的结构对于所述传输装置(110)而言是不透明的。
14.根据权利要求11至13中任一项所述的传输装置(110),其特征在于
所述标识符(102)在所述传输装置(110)处被预先配置。
15.根据权利要求11至14中任一项所述的传输装置(110),其特征在于,所述传输装置(110)还用于在交换用于配置所述传输装置(110)与所述接收装置(100)之间的所述连接的控制信息期间,
从所述接收装置(100)接收携载标识符集信息(701、1001)的TCP段(810、1030),并且
基于接收到的标识符集信息(701、1001),从接收到的TCP段(810、1030)中已经确定的TCP选项(700、1000)获得所述标识符(102)。
16.根据权利要求15所述的传输装置(110),其特征在于,所述传输装置(110)还用于
对每个已建立的连接维持已经确定的变量(410),以用于存储所获得的标识符(102),以及所述标识符(102)的大小和/或有效状态。
17.用于通过传输控制协议TCP进行通信的系统,其特征在于,所述系统包括
根据权利要求1至10中任一项所述的接收装置(100),以及
根据权利要求11至16中任一项所述的传输装置(110)。
18.用于接收装置(100)通过传输控制协议TCP进行通信的方法(1700),其特征在于,所述方法(1700)包括
从传输装置(110)接收(1701)携载标识符(102)的TCP段(101),
从接收到的TCP段(101)获得(1702)所述标识符(102),以及
基于所述标识符(102)直接访问所述接收装置(100)处的连接上下文(103),
其中所述连接上下文(103)同所述接收装置(100)与所述传输装置(110)之间的连接相关。
19.用于传输装置(110)通过传输控制协议TCP进行通信的方法(1800),其特征在于,所述方法(1800)包括
将标识符(102)插入(1801)TCP段(101)中并且将携载所述标识符(102)的所述TCP段(101)传输到接收装置(100),
其中所述标识符(102)包括使得所述接收装置(100)能够直接访问所述接收装置(100)处的连接上下文(103)的信息,
其中所述连接上下文(103)同所述传输装置(110)与所述接收装置(100)之间的连接相关。
20.用于通过交换控制信息而在传输装置(110)和接收装置(100)之间自动管理和配置标识符(102)的方法(1900),其特征在于,所述方法(1900)包括
由所述传输装置(110)将标识符能力信息(703、1003)插入(1901)第一TCP段(800、1100)中,具体是插入所述第一TCP段(800、1100)中已经确定的TCP选项中,并且将所述第一TCP段(800、1100)传输到所述接收装置(100),
由所述接收装置(100)将标识符集信息(701、1001)插入(1902)第二TCP段(810、1030)中,具体是插入所述第二TCP段(810、1030)中已经确定的TCP选项(700)中,并且将所述第二TCP段(810、1030)传输到所述传输装置(110),以及
由所述传输装置(110)接收(1903)携载所述标识符集信息(701、1001)的所述第二TCP段(810、1030),且基于接收到的标识符集信息(701、1001)获得所述标识符(102)。
CN201880093503.4A 2018-05-16 2018-05-16 用于tcp通信的接收装置和传输装置 Active CN112154633B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/062720 WO2019219184A1 (en) 2018-05-16 2018-05-16 Receiving device and transmitting device for tcp communication

Publications (2)

Publication Number Publication Date
CN112154633A true CN112154633A (zh) 2020-12-29
CN112154633B CN112154633B (zh) 2021-12-17

Family

ID=62235936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880093503.4A Active CN112154633B (zh) 2018-05-16 2018-05-16 用于tcp通信的接收装置和传输装置

Country Status (2)

Country Link
CN (1) CN112154633B (zh)
WO (1) WO2019219184A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159370B2 (en) 2019-10-31 2021-10-26 Juniper Networks, Inc. Bulk discovery of devices behind a network address translation device
US11784874B2 (en) * 2019-10-31 2023-10-10 Juniper Networks, Inc. Bulk discovery of devices behind a network address translation device
CN114070799B (zh) * 2020-07-27 2024-04-30 中国电信股份有限公司 优先级暂停帧的处理方法、处理装置及目标网络设备
CN115086397A (zh) * 2022-06-10 2022-09-20 中国银行股份有限公司 一种tcp连接的管理方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040184459A1 (en) * 2003-03-20 2004-09-23 Uri Elzur Self-describing transport protocol segments
CN1612566A (zh) * 2003-10-27 2005-05-04 英特尔公司 网络协议引擎
CN1668024A (zh) * 2004-03-10 2005-09-14 华为技术有限公司 一种gprs网络终端与ip网络设备之间数据传输的方法
CN101707590A (zh) * 2009-09-25 2010-05-12 曙光信息产业(北京)有限公司 基于零拷贝方式的tcp/ip协议报文发送方法和装置
CN101753452A (zh) * 2009-12-17 2010-06-23 福建星网锐捷网络有限公司 连接标识的分配方法、装置和通讯设备
CN102413176A (zh) * 2011-11-11 2012-04-11 华为技术有限公司 连接转换方法和设备
CN103907333A (zh) * 2011-09-12 2014-07-02 塔塔咨询服务有限公司 用于通过多个异构设备的标识和上下文进行动态服务协作的系统
CN104618961A (zh) * 2015-01-21 2015-05-13 普天信息技术有限公司 应用于智能电网的单通道tcp/ip头压缩方法及系统
CN106034084A (zh) * 2015-03-16 2016-10-19 华为技术有限公司 一种数据传输方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033301A1 (en) * 2005-07-18 2007-02-08 Eliezer Aloni Method and system for transparent TCP offload with dynamic zero copy sending

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040184459A1 (en) * 2003-03-20 2004-09-23 Uri Elzur Self-describing transport protocol segments
CN1612566A (zh) * 2003-10-27 2005-05-04 英特尔公司 网络协议引擎
CN1668024A (zh) * 2004-03-10 2005-09-14 华为技术有限公司 一种gprs网络终端与ip网络设备之间数据传输的方法
CN101707590A (zh) * 2009-09-25 2010-05-12 曙光信息产业(北京)有限公司 基于零拷贝方式的tcp/ip协议报文发送方法和装置
CN101753452A (zh) * 2009-12-17 2010-06-23 福建星网锐捷网络有限公司 连接标识的分配方法、装置和通讯设备
CN103907333A (zh) * 2011-09-12 2014-07-02 塔塔咨询服务有限公司 用于通过多个异构设备的标识和上下文进行动态服务协作的系统
CN102413176A (zh) * 2011-11-11 2012-04-11 华为技术有限公司 连接转换方法和设备
CN104618961A (zh) * 2015-01-21 2015-05-13 普天信息技术有限公司 应用于智能电网的单通道tcp/ip头压缩方法及系统
CN106034084A (zh) * 2015-03-16 2016-10-19 华为技术有限公司 一种数据传输方法及装置

Also Published As

Publication number Publication date
WO2019219184A1 (en) 2019-11-21
CN112154633B (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
CN112154633B (zh) 用于tcp通信的接收装置和传输装置
US10044616B2 (en) Co-existence of routable and non-routable RDMA solutions on the same network interface
US7640364B2 (en) Port aggregation for network connections that are offloaded to network interface devices
JP4638658B2 (ja) オフロードされたネットワークスタックの状態オブジェクトをアップロードする方法及びそれを同期する方法
US11418629B2 (en) Methods and systems for accessing remote digital data over a wide area network (WAN)
US9219683B2 (en) Unified infrastructure over ethernet
EP2774340B1 (en) Unobtrusive content compression in a telecommunications network
US8930558B2 (en) Proxying multiple targets as a virtual target using identifier ranges
US11258823B2 (en) Multilayer tunneling of protocols over QUIC
US20030097481A1 (en) Method and system for performing packet integrity operations using a data movement engine
US20070297334A1 (en) Method and system for network protocol offloading
CN114422432A (zh) 基于可靠传输层的可靠覆盖
EA018130B1 (ru) Способ выборочного перехвата сеанса
CN110838935A (zh) 高可用sdn控制器集群方法、系统、存储介质及设备
JP5344382B2 (ja) ネットワークシステム及びフレーム通信方法
JP2008061223A (ja) 通信装置及び通信方法
US10374944B2 (en) Quality of service for data transmission
EP3410637B1 (en) Information transmission method, gateway, and controller
US6963568B2 (en) Method for transmitting data packets, method for receiving data packets, data packet transmitter device, data packet receiver device and network including such devices
CN114008998B (zh) 基于通信节点的解析深度的数据包处理方法和装置
Cisco Bridging and IBM Networking Overview
JP6279970B2 (ja) プロセッサ、通信装置、通信システム、通信方法およびコンピュータプログラム
US11570257B1 (en) Communication protocol, and a method thereof for accelerating artificial intelligence processing tasks
CN118714107A (zh) 通信方法、装置、电子设备及存储介质
Valdovinos et al. Tcp extension to send traffic simultaneously through multiple heterogeneous network interfaces

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
TR01 Transfer of patent right

Effective date of registration: 20211224

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right