CN114443206A - 通信方法及装置 - Google Patents

通信方法及装置 Download PDF

Info

Publication number
CN114443206A
CN114443206A CN202011196982.8A CN202011196982A CN114443206A CN 114443206 A CN114443206 A CN 114443206A CN 202011196982 A CN202011196982 A CN 202011196982A CN 114443206 A CN114443206 A CN 114443206A
Authority
CN
China
Prior art keywords
message
communication
state
rdma
send
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.)
Pending
Application number
CN202011196982.8A
Other languages
English (en)
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
Priority to CN202011196982.8A priority Critical patent/CN114443206A/zh
Publication of CN114443206A publication Critical patent/CN114443206A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请提供一种通信方法及装置,能够解决通信连接因虚拟机热迁移等原因断开的问题,从而提高通信的稳定性和可靠性,可应用于通信系统中。该方法包括:第一设备向第二设备发送第一报文,并接收来自第二设备的指示信息。其中,指示信息可以用于第一设备屏蔽错误上报功能。该错误上报功能为:若第一设备超时未接收到来自第二设备的第二报文,则第一设备向业务系统发送错误信息,该错误信息可以用于触发业务系统断开第一设备与第二设备之间的通信连接。该通信连接可以是用于第一设备与第二设备通信的QP连接。第二报文可以是第一报文的响应报文。

Description

通信方法及装置
技术领域
本申请涉及通信领域,尤其涉及一种通信方法及装置。
背景技术
目前,在新一代网络设备硬件平台的一种输入/输出(input/output,I/O)标准(infiniband,IB)架构下的远程直接内存访问(remote direct memory access,RDMA)网络中,基于单根IO虚拟化(single root I/O virtualization,SR-IOV)协议,网卡(networkinterface card,NIC)的物理设备(physical function,PF)可为每个虚拟机(virtualmachine,VM)创建对应的虚拟设备(virtual function,VF),并通过虚拟设备为对应的虚拟机创建的通信连接,如队列对(queue pair,QP)连接,实现虚拟机间的通信。
然而,若一端的虚拟机因热迁移、故障自恢复等,无法及时与另一端的虚拟机通信,则会导致该通信连接断开,从而影响通信的稳定性和可靠性。
发明内容
本申请实施例提供一种通信方法及装置,能够解决通信连接因虚拟机热迁移等原因断开的问题,从而提高通信的稳定性和可靠性。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种通信方法。该通信方法应用于RDMA网络,该RDMA网络可以包括:第一设备和第二设备。该通信方法可以包括:第一设备向第二设备发送第一报文,并接收来自第二设备的指示信息。
其中,在第一设备和第二设备中,任一个设备都可以是终端设备或网络设备如服务器,可以是该终端设备或网络设备中的RDMA网卡,也可以是该RDMA网卡中的虚拟设备,还可以是该虚拟设备上的虚拟机。
再者,第一报文可以是如下之一:RDMA写请求报文(RDMA write message)、RDMA发送报文(RDMA send message)和RDMA读请求报文(RDMA read request message)。指示信息可以用于第一设备屏蔽错误上报功能。该错误上报功能为:若第一设备超时未接收到来自第二设备的第二报文,则第一设备向业务系统发送错误信息,该错误信息可以用于触发业务系统断开第一设备与第二设备之间的通信连接。该通信连接可以是用于第一设备与第二设备通信的QP连接。第二报文可以是第一报文的响应报文,比如,第二报文可以为如下之一:数据(data)报文、接收者未准备好(receiver not ready,RNR)报文、确认通知(acknowledge,ACK)报文、或丢弃确认通知(non-acknowledge,NAK)报文。
基于第一方面所述的通信方法,由于指示信息可以指示第一设备屏蔽错误上报功能,使得第一设备在超时未接收到来自第二设备的第二报文时,不会因上报错误信息而导致通信连接断开,故解决通信连接因虚拟机热迁移等原因断开的问题,从而提高通信的稳定性和可靠性。
一种可能的设计方案中,指示信息可携带在计数暂停通知(timer pausednotification,TPN)报文中,如此,可以实现消息的复用,从而减少信令开销,提高通信效率。
可选地,TPN报文可以为:确认通知扩展传输头(acknowledge extendedtransport header,AETH)的综合征字段(syndrome field)的取值为第一值的确认通知(acknowledge,ACK)报文或丢弃确认通知(non-acknowledge,NAK)报文。可理解到,通过定义ACK报文或NAK报文的AETH中综合征字段的取值,可快速且便捷地定义该TPN报文。
一种可能的设计方案中,指示信息用于第一设备将通信连接的状态迁移到仅发送状态(send only),在仅发送状态下,第一设备屏蔽错误上报功能。可理解到,在IB架构下,通过新增通信连接的仅发送状态来实现屏蔽错误上报功能,其对IB架构的改动小,便于实施,从而降低部署成本。
一种可能的设计方案中,第一方面所述的方法还可以包括:第一设备接收到来自第三设备的第二报文后,便向第三设备发送第三报文。该第三设备为第二设备上的虚拟机热迁移后所在的设备,第三设备可以是终端设备或网络设备如服务器,可以是该终端设备或网络设备中的RDMA网卡,也可以是该RDMA网卡中的虚拟设备。如此,可以恢复第一设备与从第二设备迁移至第三设备上的另一虚拟机间的通信,从而提高通信可靠性。
可选地,第一设备接收到来自第三设备的第二报文后,向第三设备发送第三报文,可以包括:第一设备接收到来自第三设备的第二报文后,将通信连接的状态从仅发送状态迁移到发送就绪状态(ready to send),从而向第三设备发送第三报文。可理解到,通过状态迁移,可快速且便捷地自恢复第一设备与该虚拟机间的通信。
第二方面,提供一种通信方法。该通信方法应用于RDMA网络,该RDMA网络可以包括:第一设备和第二设备。该通信方法可以包括:第二设备接收来自第一设备的第一报文,并向第一设备发送指示信息。
其中,该错误上报功能为:若第一设备超时未接收到来自第二设备的第二报文,则第一设备向业务系统发送错误信息,该错误信息可以用于触发业务系统断开第一设备与第二设备之间的通信连接。该通信连接可以是用于第一设备与第二设备通信的QP连接。第二报文可以是第一报文的响应报文。
一种可能的设计方案中,第二设备向第一设备发送指示信息,可以包括:第二设备确定第二设备上的虚拟机在进行热迁移,则向第一设备发送指示信息,且该虚拟机可以用于与第一设备通信。如此,实现及时地向第一设备发送指示信息。
一种可能的设计方案中,指示信息可以携带在TPN报文中。
可选地,TPN报文为:AETH的综合征字段的取值为第一值的ACK报文或NAK报文。
一种可能的设计方案中,指示信息可以用于第一设备将通信连接的状态迁移到仅发送状态,在仅发送状态下,第一设备屏蔽错误上报功能。
一种可能的设计方案中,第二报文为如下之一:数据报文、RNR报文、ACK报文、或NAK报文。
此外,第二方面所述的通信方法的技术效果可以参考第一方面所述的通信方法的技术效果,此处不再赘述。
第三方面,提供一种通信装置。该通信装置应用于RDMA网络,该RDMA网络还可以包括:第二设备。该通信装置可以包括:发送模块和接收模块。其中,发送模块,用于向第二设备发送第一报文。接收模块,用于接收来自第二设备的指示信息。该指示信息用于通信装置屏蔽错误上报功能。错误上报功能为:若通信装置超时未接收到来自第二设备的第二报文,则向业务系统发送错误信息。第二报文为第一报文的响应报文。错误信息用于触发业务系统断开通信装置与第二设备之间的通信连接。
一种可能的设计方案中,指示信息携带在TPN报文中。
可选地,TPN报文为:AETH的综合征字段的取值为第一值的ACK报文或NAK报文。
一种可能的设计方案中,指示信息用于第三方面所述的通信装置将通信连接的状态迁移到仅发送状态,在仅发送状态下,该通信装置屏蔽错误上报功能。
一种可能的设计方案中,发送模块,还用于接收模块接收到来自第三设备的第二报文后,向第三设备发送第三报文,第三设备为第二设备上的虚拟机热迁移后所在的设备。
可选地,第三方面所述的通信装置还可以包括:处理模块。其中,处理模块,用于接收模块接收到来自第三设备的第二报文后,将通信连接的状态从仅发送状态迁移到发送就绪状态,以及,发送模块,还用于向第三设备发送第三报文。
一种可能的设计方案中,第二报文为如下之一:数据报文、RNR报文、ACK报文、或NAK报文。
可选地,第三方面所述的发送模块和接收模块也可以集成为一个模块,如收发模块,以集中实现第三方面所述的通信装置的发送功能和接收功能。
可选地,第三方面所述的通信装置还可以包括存储模块,该存储模块存储有程序或指令。当第三方面所述的处理模块执行该程序或指令时,使得第三方面所述的通信装置可以执行第一方面所述的方法。
需要说明的是,第三方面所述的通信装置可以是终端设备或网络设备如服务器,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第三方面所述的通信装置的技术效果可以参考第一方面所述的通信方法的技术效果,此处不再赘述。
第四方面,提供一种通信装置。该通信装置应用于RDMA网络,该RDMA网络还可以包括:第一设备。该通信装置可以包括:发送模块和接收模块。其中,接收模块,用于接收来自第一设备的第一报文。发送模块,用于向第一设备发送指示信息。指示信息用于第一设备屏蔽错误上报功能。错误上报功能为:若第一设备超时未接收到来自通信装置的第二报文,则第一设备向业务系统发送错误信息。第二报文为第一报文的响应报文,错误信息用于触发业务系统断开第一设备与通信装置之间的通信连接。
一种可能的设计方案中,指示信息为:第四方面所述的通信装置在该通信装置上的虚拟机热迁移的过程中发送的信息,虚拟机用于与第一设备通信。
一种可能的设计方案中,指示信息携带在TPN报文中。
可选地,TPN报文为:AETH的综合征字段的取值为第一值的ACK报文或NAK报文。
一种可能的设计方案中,指示信息用于第一设备将通信连接的状态迁移到仅发送状态,在仅发送状态下,第一设备屏蔽错误上报功能。
一种可能的设计方案中,第二报文为如下之一:数据报文、RNR报文、ACK报文、或NAK报文。
可选地,第四方面所述的发送模块和接收模块也可以集成为一个模块,如收发模块,以集中实现第四方面所述的通信装置的发送功能和接收功能。
可选地,第四方面所述的通信装置还可以包括处理模块,该处理模块用于实现该通信装置的处理功能。
可选地,第四方面所述的通信装置还可以包括存储模块,该存储模块存储有程序或指令。当第四方面所述的处理模块执行该程序或指令时,使得第四方面所述的通信装置可以执行第二方面所述的通信方法。
需要说明的是,第四方面所述的通信装置可以是终端设备或网络设备如服务器,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第四方面所述的通信装置的技术效果可以参考第二方面所述的通信方法的技术效果,此处不再赘述。
第五方面,提供一种通信装置。该通信装置可以包括:处理器,该处理器与存储器耦合。该处理器用于执行存储器中存储的计算机程序,以使得该装置执行第一方面或第二方面中任一方面所述的通信方法。
可选地,第五方面所述的通信装置还可以包括:接收器和发送器。其中,接收器用于实现该通信装置的接收功能,发送器用于实现该通信装置的发送功能。该发送器和接收器也可以集成为一个器件,如收发器。其中,收发器则用于实现该通信装置的发送功能和接收功能。
需要说明的是,第五方面所述的通信装置可以是终端设备或网络设备如服务器,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第五方面所述的通信装置的技术效果可以参考第一方面所述的通信方法的技术效果,此处不再赘述。
第六方面,提供一种通信装置。该通信装置可以包括:处理器和存储器。该存储器用于存储计算机程序,当该处理器执行该计算机程序时,以使该通信装置执行第一方面或第二方面中任一方面所述的通信方法。
可选地,第六方面所述的通信装置还可以包括:接收器和发送器。其中,接收器用于实现该通信装置的接收功能,发送器用于实现该通信装置的发送功能。可选地,该发送器和接收器也可以集成为一个器件,如收发器。其中,收发器则用于实现该通信装置的发送功能和接收功能。
需要说明的是,第六方面所述的通信装置可以是终端设备或网络设备如服务器,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第六方面所述的通信装置的技术效果可以参考第一方面所述的通信方法的技术效果,此处不再赘述。
第七方面,提供一种通信装置。该通信装置可以包括:处理器和接口电路。其中,该接口电路,用于接收代码指令并传输至该处理器;该处理器用于运行所述代码指令以执行第一方面或第二方面中任一方面所述的通信方法。
可选地,第七方面所述的通信装置还可以包括:接收器和发送器。其中,接收器用于实现该通信装置的接收功能,发送器用于实现该通信装置的发送功能。可选地,该发送器和接收器也可以集成为一个器件,如收发器。其中,收发器则用于实现该通信装置的发送功能和接收功能。
可选地,第七方面所述的通信装置还可以包括存储器,该存储器存储有程序或指令。当第七方面所述的处理器执行该程序或指令时,使得该通信装置可以执行第一方面或第二方面中任一方面所述的通信方法。
需要说明的是,第七方面所述的通信装置可以是终端设备或网络设备如服务器,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第七方面所述的通信装置的技术效果可以参考第一方面所述的通信方法的技术效果,此处不再赘述。
第八方面,提供一种通信装置。该通信装置可以包括处理器和收发器。该收发器可以为收发电路或接口电路,该收发器用于该通信装置和其他装置之间进行信息交互,该处理器执行程序指令,用以执行第一方面或第二方面中任一方面所述的通信方法。
可选地,第八方面所述的通信装置还可以包括存储器,该存储器存储有程序或指令。当第八方面所述的处理器执行该程序或指令时,使得该通信装置可以执行第一方面或第二方面中任一方面所述的通信方法。
需要说明的是,第八方面所述的通信装置可以是终端设备或网络设备如服务器,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,第八方面所述的通信装置的技术效果可以参考第一方面所述的通信方法的技术效果,此处不再赘述。
第九方面,提供一种通信系统。该通信系统可以包括一个或多个终端设备,以及一个或多个网络设备如服务器,该终端设备或网络设备用以执行如第一方面或第二方面中任一方面所述的通信方法。
第十方面,提供一种计算机可读存储介质。该计算机可读存储介质可以包括:计算机程序或指令。当该计算机程序或指令在计算机上运行时,使得该计算机执行如第一方面或第二方面中任一方面所述的通信方法。
第十一方面,提供一种计算机程序产品。该计算机可读存储介质可以包括:计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行如第一方面或第二方面中任一方面所述的通信方法。
附图说明
图1为本申请实施例提供的直通网络的架构示意图;
图2为本申请实施例提供的虚拟机热迁移的流程示意图;
图3为本申请实施例提供的虚拟设备的结构示意图;
图4为本申请实施例提供的通信系统的架构示意图;
图5为本申请实施例提供的通信方法的流程示意图一;
图6为本申请实施例提供的QP连接状态迁移的流程示意图;
图7为本申请实施例提供的通信方法的流程示意图二;
图8为本申请实施例提供的通信方法的流程示意图三;
图9为本申请实施例提供的通信装置的结构示意图一;
图10为本申请实施例提供的通信装置的结构示意图二。
具体实施方式
首先结合图1-图3介绍本申请技术方案所涉及的技术术语。
1、虚拟机
虚拟机是指通过软件模拟的完整计算机系统,该完整计算机系统可以具有完整硬件系统功能。虚拟机可以在物理机上创建,且在物理机上独立运行。用户可以像使用物理机一样操作虚拟机,以完成与物理机类似的工作,实现与物理机类似的效果。
2、热迁移
“热迁移”又可称之为“动态迁移”或“实时迁移”。热迁移涉及到虚拟机的保存和恢复,即迁移前先保存一物理机上的虚拟机的运行状态,再快速迁移到另一物理机上,并恢复运行。恢复运行后,虚拟机继续以迁移前的状态平滑运行,用户并不会感知到这一过程的存在。目前,热迁移可在计算机共享、数据库备份、系统硬件维护等场景应用,以达到简化运维、均衡负载、增强容错度、优化电源管理等效果。比如,若物理机过载,可将该物理机上部分虚拟机热迁移到其它物理机,以保障业务正常运行;或者,若物理机轻载,可将虚拟机热迁移汇聚到少部分物理机上,从而将对应的物理机下电,以实现节能;或者,若预测物理机可能故障,可将虚拟机提前热迁移至其它物理机,以预防业务中断。
如图2所示,热迁移的阶段依次可包括:准备(prepare)阶段、预复制(pre-copy)阶段、停机复制(stop-copy)阶段、恢复(resume)阶段以及释放(release)阶段。
具体地,在虚拟机启动热迁移后,热迁移进入准备阶段。准备阶段下可进行与热迁移相关的准备工作,如验证热迁移的安全性、验证对端物理机是否可达等。而准备阶段结束后,热迁移进入预复制阶段。预复制阶段下可进行数据复制,即将虚拟机的相关数据复制并保存。复制并保存结束后,热迁移进入停机复制阶段。停机复制阶段下,虚拟机停止运行,本端物理机向对端物理机发送保存的数据,以实现虚拟机从本端物理机迁移到对端物理机。停机复制阶段结束后,热迁移进入恢复阶段。恢复阶段下,对端物理机将虚拟机激活运行,使得虚拟机的服务依次恢复,从而继续对外提供服务。恢复阶段结束后,热迁移进入释放阶段。释放阶段下,对端物理机可告知本端物理机,以便本端物理机释放虚拟机的相关数据,如此,热迁移结束。
可理解到,在热迁移的停机复制阶段以及恢复阶段的大部时间内,由于虚拟机停止运行,故虚拟机暂时无法提供服务。除此之外的其它时间内,虚拟机可正常提供服务。
3、直通网络
如图1所示,可基于SR-IOV协议构建直通网络。在直通网络中,RMDA网卡中的物理设备可为虚拟机使能出对应的虚拟设备。其中,该虚拟设备可以是物理设备中用于为该虚拟机提供服务的硬件和软件资源的集合。如此,该虚拟机基于虚拟化技术(virtualizationtechnology for direct I/O,VT-d),经由虚拟机监视器(virtual machine monitor,VMM)中管理程序(hypervisor)面,便可直通访问该虚拟设备,以通过该虚拟设备与上层的业务系统或者与其它虚拟机交互。
4、QP连接
如图3所示,虚拟设备可以为虚拟设备上的虚拟机创建QP连接。通过该QP连接可实现虚拟机间的数据交互。
具体地,QP连接可包括:发送队列(send queue,SQ)和接收队列(receive queue,RQ)。关于SQ,本端虚拟机可将待发送的报文放到SQ中,再通过SQ向对端虚拟机发送该报文。而关于RQ,本端虚拟机则可通过RQ接收到来自对端虚拟机的报文,再从RQ中取出并处理该报文。
5、其它术语
在本申请实施例中,“示例地”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“信息(information)”,“信号(signal)”,“消息(message)”,“信道(channel)”、“信令(singaling)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。“的(of)”,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例中,有时候下标如W1可能会笔误为非下标的形式如W1,在不强调其区别时,其所要表达的含义是一致的。
此外,本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
下面将结合附图,对本申请中的技术方案进行描述。
请参阅图4,本申请实施例的技术方案可以应用于通信系统,该通信系统可以适用于RDMA网络,该通信系统可以包括:一个或多个终端设备,以及一个或多个网络设备。其中,终端设备或网络设备上可部署虚拟机,且虚拟机可在终端设备间,或在网络设备间,或在终端设备与网络设备间热迁移。
本申请实施例中,终端设备可以是具有收发功能的终端或可设置于该终端的芯片或芯片系统。该终端设备也可以称为用户装置、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。本申请实施例中,终端设备可以是手机(mobile phone)、平板电脑(Pad)、电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备。
本申请实施例中,网络设备可以是具有收发功能的服务器或可设置于该服务器的芯片或芯片系统。本申请实施例中的网络设备可以是通用服务器、专用服务器、网络服务器、数据库服务器、由多个子服务器构成的服务器集群等。
为便于说明,本申请实施例将“终端设备”和“网络设备”统称为“设备”。
应当指出的是,本申请实施例中的方案还可以应用于其他系统中,相应的名称也可以用其他系统中的对应功能的名称进行替代。
应理解,图4仅为便于理解而示例的简化示意图,该通信系统中还可以包括其它终端设备,和/或,其它网络设备,图4中未予以画出。
下面将结合图5-图8对本申请实施例提供的通信方法进行具体阐述。
示例性地,图5为本申请实施例提供的通信方法的流程示意图一。该通信方法可以适用于图4所示的通信系统,如适用于该通信系统中的第一设备、第二设备和第三设备。
其中,在第一设备、第二设备和第三设备中,任一个设备都可以是终端设备或网络设备,可以是该终端设备或网络设备中的RDMA网卡,也可以是该RDMA网卡中的虚拟设备,还可以是该虚拟设备上的虚拟机。
为便于理解,下文以第一设备、第二设备和第三设备为RDMA网卡为例来介绍该通信方法,但并不作为限定。
如图5所示,该通信方法包括如下步骤:
S501,第一设备向第二设备发送第一报文。
本申请实施例中,第一设备可建立与第二设备的通信连接,并根据该通信连接的状态与第二设备交互。其中,该通信连接可以是QP连接,但不作为限定,如还可以是其他类型的通信连接。
如图6所示,图6示出了QP连接各状态的逻辑关系。该QP连接的各状态可以包括:复位(reset)状态、初始化(initialized)状态、准备接收(ready to receive)状态、准备发送(ready to send)状态、发送队列干涸(SQ drain)状态、发送队列错误(SQ error)状态以及错误(error)状态。可选地,QP连接的状态还可以包括:只发送(send only)状态。
下面详细介绍QP连接的各状态:
A、复位状态
第一设备创建QP连接后,QP连接的状态处于复位状态,或者,第一设备可通过调整QP连接的状态,将QP连接的状态从错误状态迁移到复位状态。
B、初始化状态
第一设备可通过调整QP连接的状态,将QP连接的状态从复位状态或者初始化状态迁移到初始化状态。在初始化状态下,QP连接可以提交其接收到的工作请求(workrequest,WR)给业务系统。
C、准备接收状态
第一设备可通过调整QP连接的状态,将QP连接的状态从初始化状态迁移到准备接收状态。在准备接收状态下,QP连接可以提交接收到的工作请求给业务系统,也可以处理接收到的工作请求。
D、准备发送状态
第一设备可通过调整QP连接的状态,将QP连接的状态从准备接收状态、发送队列干涸状态、发送队列错误状态或者准备发送状态迁移到准备发送状态。在准备发送状态下,QP连接可以将接收到的工作请求提交给业务系统,也可以处理并发送其接收到的工作请求。换言之,在准备发送状态下,第一设备可通过QP连接向其它设备,如第二设备发送第一报文。
E、发送队列干涸状态
若QP连接发送工作请求后,SQ干涸,即SQ中没有工作请求,第一设备可通过调整QP连接的状态,将QP连接的状态从准备发送状态或发送队列干涸状态迁移到发送队列干涸状态。
F、发送队列错误状态
若QP连接在发送队列干涸状态或发送队列干涸状态下,出现发送工作请求完成错误(send WR completion error),一方面,第一设备可向业务系统上报该发送工作请求完成错误,另一方面,第一设备可通过调整QP连接的状态,将QP连接的状态从出现完成错误的状态迁移到发送队列错误状态。
G、错误状态
若QP连接在初始化状态、准备接收状态、准备发送状态、发送队列干涸状态下,出现与QP连接相关的处理错误(processing error),一方面,第一设备可向业务系统上报该处理错误,另一方面,第一设备可通过调整QP连接的状态,将QP连接的状态从出现处理错误的状态迁移到发送队列错误状态。
若QP连接在发送队列错误状态下,接收到接收工作请求完成错误(receive WRcompletion error)或者异步事件错误(async error),一方面,第一设备可向业务系统上报该接收工作请求完成错误或者异步事件错误,另一方面,第一设备可通过调整QP连接的状态,将QP连接的状态从出现发送队列错误的状态迁移到发送队列错误状态。
H、只发送状态
在准备发送状态下,第一设备若接收到来自其它设备,如第二设备的指示信息,可通过调整QP连接的状态,将QP连接的状态从准备发送状态迁移到只发送状态。在只发送状态下,第一设备可屏蔽错误上报功能,即屏蔽将处理错误的信息上报到业务系统。此外,在只发送状态下,若第一设备接收到来自其它设备的数据、RNR报文、ACK报文、或NAK报文,则通过调整QP连接的状态,将QP连接的状态从只发送状态迁回到准备发送状态。
本申请实施例中,根据上述的状态介绍可知,在第一设备的QP连接处于准备发送状态,第一设备可通过QP连接向第二设备发送第一报文。
可以理解到,由于本实施例以第一设备和第二设备为RDMA网卡为例,故第一设备通过QP连接向第二设备发送第一报文实际可以为:第一设备上的虚拟机通过第一设备的QP连接向第二设备上的虚拟机发送第一报文。
具体地,根据应用场景的不同,第一报文的类型也有所不同,比如,第一设备需要将数据写入到第二设备上的虚拟机,第一报文可以为RDMA写报文,又比如,第一设备需要该虚拟机发送数据,第一报文可以为RDMA发送报文,再比如,第一设备需要从该虚拟机读取数据,第一报文可以为RDMA读请求报文。
此外,第一设备发送的RDMA写报文、RDMA发送报文或RDMA读请求报文可以是整包发送的报文,或者也可以是分包发送的报文。
S502,第二设备向第一设备发送指示信息。
本申请实施例中,第二设备接收到来自第一设备的第一报文后,可发送第一报文给第二设备上的虚拟机处理。
若第二设备上的虚拟机没有进行热迁移,或者,热迁移还未进入停机复制阶段,该虚拟机可正常处理该第一报文,从而通过第二设备的QP连接向第一设备回复第二报文。其中,该第二报文为第一报文的响应报文,若第一报文为RDMA写报文或者RDMA发送报文,则第二报文可为ACK报文、NAK报文或RNR报文,若第一报文为RDMA读请求报文,则第二报文可为RDMA读响应报文。
若第二设备上的虚拟机的热迁移进入停机复制阶段,则虚拟机无法处理该第一报文,故第一设备也无法接收到第二报文。
本申请实施例中,第一设备在向第二设备发送第一报文后,在预设时长内未接收到第二报文,可继续向第二设备发送第一报文。而第一设备在连续发送预设次数,如发送7次的第一报文后,仍未接收到第二报文,第一设备可确定发送超时,从而执行错误上报功能,向业务系统发送错误信息,如发送处理错误的信息,使得业务系统根据错误信息指示第一设备断开第一设备的QP连接。
换言之,为避免QP连接断链,第二设备在第二设备上的虚拟机热迁移进入到停机复制阶段以前,可主动向第一设备发送指示信息或者基于接收到来自第一设备的第一报文而向第一设备发送指示信息。其中,第二设备可以将指示信息携带在TPN报文中,再向第一设备发送该TPN报文,以指示第一设备屏蔽错误上报功能。
具体地,在ACK报文或NAK报文的AETH中可包括:综合征字段。该综合征字段可以为8比特(bit)的字段。该综合征字段取值的不同,其字段释义也有所不同。比如,综合征字段的取值可如下表1所示。
表1
比特[7] 比特[6:5] 比特[4:0]
0 00 CCCCC
0 01 TTTTT
0 11 NNNNN
0 10 XXXXX
应理解,表1中,“CCCCC”、“TTTTT”、“NNNNN”、“XXXXX”用于表示比特4:0取值的不同,并不表示比特4:0的具体取值。
进一步地,由于比特4:0的取值不同,综合征字段的编码类型也有所不同。
例如,比特4:0的取值为“CCCCC”,综合征字段可为端到端流控信用编码(encodedend-to-end flow control credits code)。比特4:0的取值为“TTTTT”,综合征字段可为接收侧没有准备好的NAK定时编码(RNR NAK timer field code)。比特4:0的取值为“NNNNN”,综合征字段可为NAK编码(NAK code)。比特4:0的取值为“XXXXX”,综合征字段可为自定义编码(reserved code)。
再进一步地,比特4:0的具体取值,其对应编码的释义也有所不同。
例如,比特4:0的取值“NNNNN”具体为“00000”,NAK编码的释义可为:报文序号顺序错误(PSN sequemce error)。比特4:0的具体取值“NNNNN”为“00001”,NAK编码的释义可为:无效请求(invalid request)。比特4:0的具体取值“NNNNN”为“00010”,NAK编码的释义可为:远端访问错误(remote access error)。比特4:0的具体取值“NNNNN”为“00011”,NAK编码的释义可为:远端操作错误(remote operational error)。比特4:0的具体取值“N NNNN”为“0 0100”,NAK编码的释义可为:无效的可靠数据报服务类型请求(invalid RDrequest)。
换言之,自定义编码“XXXXX”的具体取值范围可为“00101-11111”,在这一范围内,设置自定义编码“XXXXX”的具体取值,如设置为“11111”、“11101”、“11001”等,可使得该综合征字段的取值为第一值,并使得该第一值可用于指示第一设备屏蔽错误上报功能。如此,该取值为第一值的综合征字段即为本申请实施例中所述的指示信息,而该综合征字段的取值为第一值的ACK报文或NAK报文即为本申请实施例中所述的TPN报文。
本申请实施例中,第一设备接收到TPN报文后,根据TPN报文中指示信息,可屏蔽错误上报功能。
具体地,作为屏蔽错误上报功能的一种实现方式,指示信息可触发第一设备将第一设备的QP连接的状态从准备发送状态迁移到只发送状态,从而实现屏蔽错误上报功能。之后,若第二设备上的虚拟机的热迁移结束恢复阶段,第一设备的QP连接还可以从只发送状态迁移到准备发送状态,具体实现可以参考下述S503和S504。
作为屏蔽错误上报功能的另一种实现方式,第一设备的QP连接设置有可在只发送状态下运行的相关程序,该相关程序可通过指示信息的指示而触发运行,且该相关程序的运行可以实现屏蔽错误上报功能。换言之,指示信息触发第一设备在只发送状态下运行该相关程序,如此,则实现在只发送状态下屏蔽错误上报功能。
S503,第三设备向第一设备发送第二报文。
本申请实施例中,由于第一设备根据指示信息屏蔽了错误上报功能,故可不断向第二设备发送第一报文。又由于第一设备实际是向第二设备上的虚拟机发送该第一报文,故第一报文中目的地址(destination address)为该虚拟机的地址,而在该虚拟机热迁移到第三设备上,并在第三设备的触发下恢复服务后,向第二设备发送的第一报文则被第三设备接收。如此,第三设备将第一报文发送给该虚拟机处理,该虚拟机便可通过第三设备的QP连接向第一设备回复第二报文。
可理解到,第三设备接收到第一报文并向第一设备回复第二报文为一种示例性地交互方式,并不作为限定。比如,虚拟机热迁移到第三设备上,并在第三设备的触发下恢复服务后,虚拟机也可通过第三设备的QP连接向第一设备发送第二报文。
S504,第一设备向第三设备发送第三报文。
本申请实施例中,第一设备接收到来自第三设备的第二报文或者数据,第一设备可将第一设备的QP连接的状态从只发送状态迁移到准备发送状态,或者,第一设备可不再运行S503中所述的相关程序。
进一步地,由于第一设备接收到来自第三设备的第二报文,可认为第一设备与第三设备建立通信连接,如此,第一设备还可继续向第三设备发送第三报文。
可理解到,根据应用场景的不同,第三报文的类型也有所不同,本申请实施例不作具体限定。比如,第一设备需要将数据写入到第三设备上的虚拟机,第三报文可以为RDMA写报文,又比如,第一设备需要该虚拟机发送数据,第三报文可以为RDMA发送报文,再比如,第一设备需要从该虚拟机读取数据,第三报文可以为RDMA读请求报文。
以上整体介绍了本申请实施例的通信方法,下面将结合具体应用场景,如应用到网卡,详细介绍本申请实施例的通信方法的流程。
示例性地,图7为本申请实施例提供的通信方法的流程示意图二。在图7中,RDMA网卡1为前述的第一设备,RDMA网卡2为前述的第二设备,RDMA网卡3为前述的第三设备。
如图7所示,该通信方法包括如下步骤:
S701,RDMA网卡1向RDMA网卡2发送RDMA写报文或RDMA发送报文,且报文的PSN为X。
本申请实施例中,RDMA网卡1的QP连接处于准备发送状态,RDMA网卡1可以向RDMA网卡2发送RDMA写报文或RDMA发送报文。其中,该RDMA写报文或RDMA发送报文的报文序号(packet sequence number,PSN)可以为X,X为大于或等于1的整数。
此外,S701的具体实现可以参阅前述S501,在此不再赘述。
S702,RDMA网卡2向RDMA网卡1发送ACK报文,且报文的PSN为X。
本申请实施例中,虽然RDMA网卡2上的虚拟机在向RDMA网卡3热迁移,但RDMA网卡2接收到RDMA网卡1发送的RDMA写报文或RDMA发送报文后,因热迁移还未进入到停机复制阶段,故虚拟机可以正常处理该RDMA写报文或RDMA发送报文,并通过RDMA网卡2的QP连接向RDMA网卡1发送ACK报文。其中,该ACK报文的PSN可以为X。
S703,RDMA网卡1向RDMA网卡2发送RDMA写报文或RDMA发送报文,且报文的PSN为X+1。
本申请实施例中,RDMA网卡1继续向RDMA网卡2发送RDMA写报文或RDMA发送报文。其中,该RDMA写报文或RDMA发送报文的报文序号(packet sequence number,PSN)可以为X+1。
S704,RDMA网卡2向RDMA网卡1发送TPN报文。
本申请实施例中,RDMA网卡2上的虚拟机热迁移进入到停机复制阶段时,RDMA网卡2基于S703发送的RDMA写报文或RDMA发送报文,可向RDMA网卡1发送携带有指示信息的TPN报文。其中,为避免RDMA网卡1丢包,该TPN报文可周期性地发送,且PSN可不变。
此外,S704的具体实现可以参阅前述S502,在此不再赘述。
S705,RDMA网卡1将QP连接的状态从准备发送状态迁移到只发送状态。
其中,S705的具体实现可以参阅前述S502,在此不再赘述。
S706,RDMA网卡1向RDMA网卡2发送N个RDMA写报文或RDMA发送报文,且PSN为从X+2到X+N+1。
本申请实施例中,RDMA网卡1在发送RDMA写报文或RDMA发送报文后,RDMA网卡1可继续向RDMA网卡2依次发送N个RDMA写报文或RDMA发送报文,N为大于或等于1的整数,图7示出的流程以N=2为例,但并不作为限定,且N个RDMA写报文或RDMA发送报文的PSN可为从X+2到X+N+1。但由于热迁移已进入到停机复制阶段或恢复阶段,故RDMA网卡2无法回复该N个RDMA写报文或RDMA发送报文的响应报文。
S707,RMDA网卡3接收到来自RMDA网卡1的RDMA写报文或RDMA发送报文,且PSN为X+N+2。
本申请实施例中,RMDA网卡1在向RMDA网卡2发送PSN为X+N+2的RDMA写报文或RDMA发送报文时,虚拟机已热迁移到RMDA网卡3并结束恢复阶段,该RDMA写报文或RDMA发送报文便经由RMDA网卡2的透传,而被RMDA网卡3接收到。
S708,RMDA网卡3向RMDA网卡1发送RNR报文,且PSN为X。
本申请实施例中,RMDA网卡3接收到PSN为X+N+2的RDMA写报文或RDMA发送报文后,虚拟机确定RMDA网卡3的SQ或RQ中的工作队列元素(Work Queue Element,WQE)还未准备好,便可向RMDA网卡1发送RNR报文,且RNR报文的PSN可以为X。
S709,RDMA网卡1将QP连接的状态从只发送状态迁移到准备发送状态。
本申请实施例中,由于RDMA网卡1接收到RNR报文,故将QP连接的状态从只发送状态迁移到准备发送状态。
其中,S709的具体实现可以参阅前述S504,在此不再赘述。
S710,RMDA网卡1向RMDA网卡3发送RDMA写报文或RDMA发送报文,且PSN为X+N+2。
本申请实施例中,RMDA网卡1根据接收到的RNR报文,便可向RMDA网卡3重传PSN为X+N+2的RDMA写报文或RDMA发送报文。
此外,S709和S710的执行顺序不限定。
S711,RMDA网卡3向RMDA网卡1发送NAK报文,且PSN为X。
本申请实施例中,RMDA网卡3将PSN为X+N+2的RDMA写报文或RDMA发送报文交由虚拟机处理后,虚拟机确定RMDA网卡3的SQ或RQ中的WQE已准备好,则进一步确定PSN为X+N+2是否正确。
经确定,虚拟机确定PSN为X+N+2错误,需要该RMDA网卡1从PSN为X+2开始重传。故虚拟机可通过RMDA网卡3的QP连接向RMDA网卡1发送NAK报文,该NAK报文的PSN为X,且该NAK报文中携带RDMA写报文或RDMA发送报文的PSN为X+2。
可以理解到,S708和S710在图7中为虚线示出,表示S708和S710为可选步骤,即在S707之后,若虚拟机确定RMDA网卡3的SQ或RQ中的WQE已准备好,则可直接执行S711。如此,RMDA网卡1便在S711之后执行S709,即基于接收到NAK报文,而将QP连接的状态从只发送状态迁移到准备发送状态。
S712,RDMA网卡1向RDMA网卡3发送N+1个RDMA写报文或RDMA发送报文,且PSN为从X+2到X+N+2。
本申请实施例中,由于NAK报文中携带的PSN为X+2,RDMA网卡1根据PSN为X+2,可向RDMA网卡3依次发送N+1个RDMA写报文或RDMA发送报文,该N+1个RDMA写报文或RDMA发送报文的PSN可从X+2到X+N+2。
S713,RDMA网卡3向RDMA网卡1发送N+1个ACK报文,且PSN为从X+1到X+N+1。
本申请实施例中,RDMA网卡3上的虚拟机依次接收并处理这N+1个RDMA写报文或RDMA发送报文,从而该虚拟机可通过RDMA网卡3的QP连接依次向RDMA网卡1回复N+1个ACK报文。其中,该N+1个ACK报文的PSN可以从X+1到X+N+1。
可以理解到,图7所示流程为本申请实施例中示例性地流程,其并不作限定,比如,若执行S706时,RDMA网卡2上的虚拟机热迁移还未进入到停机复制阶段时,则RDMA网卡2可向RDMA网卡1发送N个ACK报文。如此,在S706之后,RDMA网卡3上的虚拟机可确定PSN正确,从而直接执行S713。如此,RMDA网卡1便在S713的执行过程中或者S713之后执行S709,即基于接收到ACK报文,而将QP连接的状态从只发送状态迁移到准备发送状态。
示例性地,图8为本申请实施例提供的通信方法的流程示意图三。在图8中,RDMA网卡1为前述的第一设备,RDMA网卡2为前述的第二设备,RDMA网卡3为前述的第三设备。
如图8所示,该通信方法包括如下步骤:
S801,RDMA网卡1向RDMA网卡2发送RDMA读请求报文,且报文的PSN为X。
本申请实施例中,RDMA网卡1的QP连接处于准备发送状态,RDMA网卡1可向RDMA网卡2发送RDMA读请求报文。其中,该RDMA读请求报文的PSN可以为X,X为大于或等于1的整数。
此外,S801的具体实现可以参阅前述S501,在此不再赘述。
S802,RDMA网卡2向RDMA网卡1发送RDMA读响应报文,且报文的PSN为X。
本申请实施例中,虽然RDMA网卡2上的虚拟机在向RDMA网卡3热迁移,但RDMA网卡2接收到RDMA读请求报文后,因热迁移还未进入到停机复制阶段,故虚拟机可通过门铃(doorbell)机制正常处理该RDMA读请求报文,从而通过RDMA网卡2的QP连接向RDMA网卡1发送RDMA读响应报文。其中,该ACK报文的PSN可以为X。
S803,RDMA网卡1向RDMA网卡2发送RDMA读请求报文,且报文的PSN为X+2。
本申请实施例中,RDMA网卡1继续向RDMA网卡2发送RDMA读请求报文。其中,该RDMA读请求报文的报文序号PSN可以为X+2。
S804,RDMA网卡2向RDMA网卡1发送TPN报文。
其中,S804的具体实现可以参阅前述S704以及S502,在此不再赘述。
S805,RDMA网卡1将QP连接的状态从准备发送状态迁移到只发送状态。
其中,S804的具体实现可以参阅前述S705以及S502,在此不再赘述。
S806,RDMA网卡1向RDMA网卡2发送N个RDMA读请求报文,且PSN为从X+2到X+N+1。
本申请实施例中,RDMA网卡1在发送RDMA读请求报文后,RDMA网卡1可继续向RDMA网卡2依次发送N个RDMA读请求报文,N为大于或等于1的整数,图8示出的流程以N=2为例,但并不作为限定,且N个RDMA读请求报文的PSN可为从X+1到X+N+1。但由于热迁移已进入到停机复制阶段或恢复阶段,故RDMA网卡2无法回复该N个RDMA读请求报文的响应报文。
S807,RMDA网卡3接收到来自RMDA网卡1的RDMA读请求报文,且PSN为X+N+2。
本申请实施例中,RMDA网卡1在向RMDA网卡2发送PSN为X+N+2的RDMA读请求报文时,虚拟机已热迁移到RMDA网卡3并结束恢复阶段。如此,该RDMA读请求报文便经由RMDA网卡2的透传,而被RMDA网卡3接收到。
S808,RMDA网卡3向RMDA网卡1发送RNR报文,且PSN为X。
本申请实施例中,RMDA网卡3接收到PSN为X+N+2读请求报文后,虚拟机确定RMDA网卡3的SQ或RQ中的WQE还未准备好,便可向RMDA网卡1发送RNR报文,且RNR报文的PSN可以为X。
S809,RDMA网卡1将QP连接的状态从只发送状态迁移到准备发送状态。
其中,S809的具体实现可以参阅前述S709以及S504,在此不再赘述。
S810,RMDA网卡1向RMDA网卡3发送RDMA读请求报文,且PSN为X+N+2。
本申请实施例中,RMDA网卡1根据接收到的RNR报文,便可向RMDA网卡3重传第PSN为X+N+2的RDMA读请求报文。
此外,S809和S810的执行顺序不限定。
S811,RMDA网卡3向RMDA网卡1发送NAK报文,且PSN为X。
本申请实施例中,RMDA网卡3将PSN为X+N+2的RDMA读请求报文交由虚拟机处理后,虚拟机确定RMDA网卡3的SQ或RQ中的WQE已准备好,则进一步确定PSN为X+N+2的是否正确。
经确定,虚拟机确定PSN为X+N+2错误,需要该RMDA网卡1从PSN为X+2开始重传。故虚拟机可通过RMDA网卡3的QP连接向RMDA网卡1发送NAK报文,该NAK报文的PSN为X,且该NAK报文中携带RDMA读请求报文的PSN为X+2。
可以理解到,S808和S810在图8中为虚线示出,表示S808和S810为可选步骤,即在S807之后,若虚拟机确定RMDA网卡3的SQ或RQ中的WQE已准备好,则可直接执行S810。如此,RMDA网卡1便在S811之后执行S809,即基于接收到NAK报文,而将QP连接的状态从只发送状态迁移到准备发送状态。
S812,RDMA网卡1向RDMA网卡3发送N+1个RDMA读请求报文,且PSN为从X+2到X+N+2。
本申请实施例中,由于NAK报文中携带的PSN为X+2,RDMA网卡1根据PSN为X+2,可向RDMA网卡3依次发送N+1个RDMA读请求报文,该N+1个RDMA读请求报文的PSN可为从X+2到X+N+2。
S813,RDMA网卡3向RDMA网卡1发送N+1个RDMA读响应报文。
本申请实施例中,RDMA网卡3的虚拟机依次接收并基于门铃机制处理这N+1个RDMA读请求报文,从而该虚拟机可通过RDMA网卡3的QP连接依次向RDMA网卡1回复N+1个RDMA读响应报文。其中,该N+1个RDMA读响应报文的PSN可以为从X+1到X+N+1。
可以理解到,图8所示的流程为本申请实施例中示例性地流程,其并不作限定,比如,若执行S806时,RDMA网卡2上的虚拟机热迁移还未进入到停机复制阶段时,则RDMA网卡2可向RDMA网卡1发送N个RDMA读响应报文。如此,在S807之后,RDMA网卡3上的虚拟机可确定PSN正确,从而直接执行S813。如此,RMDA网卡1便在S813的执行过程中或者S813之后执行S809,即基于接收到RDMA读响应报文,而将QP连接的状态从只发送状态迁移到准备发送状态。
还需要说明的是,本申请实施例所举例的虚拟机热迁移场景为本申请实施例中一种示例性地场景,并不作为限定。比如,本申请方案还可适用到虚拟机故障自恢复场景,即虚拟机在发生故障时,第二设备也可向第一设备发送指示信息,以避免QP连接断链。
本申请实施例中,基于图5-图8中任一项所示出的通信方法,由于指示信息可以指示第一设备屏蔽错误上报功能,使得第一设备在超时未接收到来自第二设备的第二报文时,不会因上报错误信息而导致通信连接断链,故解决通信连接因虚拟机热迁移等原因断开的问题,从而提高通信的稳定性和可靠性。
以上结合图3-图8详细说明了本申请实施例提供的通信方法。以下结合图9-图10详细说明用于执行本申请实施例提供的通信方法的通信装置。
示例性地,图9是本申请实施例提供的通信装置的结构示意图一。如图9所示,通信装置900包括:接收模块901和发送模块902。为了便于说明,图9仅示出了该通信装置的主要部件。
一些实施例中,通信装置900可适用于图4中所示出的通信系统中,执行图5中所示出的通信方法中第一设备的功能,或者适用于图4中所示出的通信系统中,执行图7中所示出的通信方法中RDMA网卡1的功能。
其中,发送模块902,用于向第二设备发送第一报文。
接收模块901,用于接收来自第二设备的指示信息。该指示信息用于通信装置900屏蔽错误上报功能。错误上报功能为:若通信装置900超时未接收到来自第二设备的第二报文,则向业务系统发送错误信息。第二报文为第一报文的响应报文。错误信息用于触发业务系统断开通信装置900与第二设备之间的通信连接。
一种可能的设计方案中,指示信息携带在TPN报文中。
可选地,TPN报文为:AETH的综合征字段的取值为第一值的ACK报文或NAK报文。
一种可能的设计方案中,指示信息用于通信装置900将通信连接的状态迁移到仅发送状态,在仅发送状态下,该通信装置900屏蔽错误上报功能。
一种可能的设计方案中,发送模块,还用于接收模块接收到来自第三设备的第二报文后,向第三设备发送第三报文,第三设备为第二设备上的虚拟机热迁移后所在的设备。
可选地,通信装置900还可以包括:处理模块903。其中,处理模块903(图9中以虚线框示出),用于接收模块901接收到来自第三设备的第二报文后,将通信连接的状态从仅发送状态迁移到发送就绪状态,以及,发送模块902,还用于向第三设备发送第三报文。
一种可能的设计方案中,第二报文为如下之一:数据报文、RNR报文、ACK报文、或NAK报文。
可选地,接收模块901和发送模块902也可以集成为一个模块,如收发模块(图9中未示出)。其中,收发模块用于实现通信装置900的发送功能和接收功能。
可选地,通信装置900还可以包括存储模块(图9中未示出),该存储模块存储有程序或指令。当接收模块901执行该程序或指令时,使得通信装置900可以执行图5中任一项所示出的通信方法中第一设备的功能,或者使得通信装置900可以执行图7中任一项所示出的通信方法中RDMA网卡1的功能。
应理解,通信装置900中涉及的处理模块901可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块902可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
需要说明的是,通信装置900可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,通信装置900的技术效果可以参考第图5-图8中任一项所示出的通信方法的技术效果,此处不再赘述。
另一些实施例中,通信装置900可适用于图4中所示出的通信系统中,执行图5中所示出的通信方法中第二设备的功能,或者适用于图4中所示出的通信系统中,执行图8中所示出的通信方法中RDMA网卡2的功能。
其中,接收模块901,用于接收来自第一设备的第一报文。
发送模块902,用于向第一设备发送指示信息。指示信息用于第一设备屏蔽错误上报功能。错误上报功能为:若第一设备超时未接收到来自通信装置900的第二报文,则第一设备向业务系统发送错误信息。第二报文为第一报文的响应报文,错误信息用于触发业务系统断开第一设备与通信装置900之间的通信连接。
一种可能的设计方案中,指示信息为:通信装置900在该通信装置900上的虚拟机热迁移的过程中发送的信息,虚拟机用于与第一设备通信。
一种可能的设计方案中,指示信息携带在TPN报文中。
可选地,TPN报文为:AETH的综合征字段的取值为第一值的ACK报文或NAK报文。
一种可能的设计方案中,指示信息用于第一设备将通信连接的状态迁移到仅发送状态,在仅发送状态下,第一设备屏蔽错误上报功能。
一种可能的设计方案中,第二报文为如下之一:数据报文、RNR报文、ACK报文、或NAK报文。
可选地,接收模块901和发送模块902也可以集成为一个模块,如收发模块(图9中未示出)。其中,收发模块用于实现通信装置900的发送功能和接收功能。
可选地,通信装置900还可以包括处理模块903(图9中以虚线框示出)。其中,处理模块903用于实现通信装置900的处理功能。
可选地,通信装置900还可以包括存储模块(图9中未示出),该存储模块存储有程序或指令。当接收模块901执行该程序或指令时,使得通信装置900可以执行图5中任一项所示出的通信方法中第二设备的功能,或者使得通信装置900可以执行图8中任一项所示出的通信方法中RDMA网卡2的功能。
应理解,通信装置900中涉及的处理模块901可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块902可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
需要说明的是,通信装置900可以是终端设备或网络设备,也可以是设置于上述终端设备或网络设备中的芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置,本申请实施例对此不做限定。
此外,通信装置900的技术效果,可以分别参考图5-图8中任一项所示出的通信方法的技术效果,此处不再赘述。
此外,通信装置900中涉及的处理模块901可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块902可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
示例性地,图10为本申请实施例提供的通信装置的结构示意图二。该通信装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件。如图10所示,通信装置1000可以包括处理器1001。可选地,通信装置1000还可以包括存储器1002和/或收发器1003(图10中虚线示出)。其中,处理器1001与存储器1002和收发器1003耦合,如可以通过通信总线连接。
下面结合图10对通信装置1000的各个构成部件进行具体的介绍:
其中,处理器1001是通信装置1000的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器1001是一个或多个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(fieldprogrammable gate array,FPGA)。
可选地,处理器1001可以通过运行或执行存储在存储器1002内的软件程序,以及调用存储在存储器1002内的数据,执行通信装置1000的各种功能。
在具体的实现中,作为一种实施例,处理器1001可以包括一个或多个CPU,例如图10中所示出的CPU0和CPU1。
在具体实现中,作为一种实施例,通信装置1000也可以包括多个处理器,例如图2中所示的处理器1001和处理器1004。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
其中,所述存储器1002用于存储执行本申请方案的软件程序,并由处理器1001来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。
可选地,存储器1002可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1002可以和处理器1001集成在一起,也可以独立存在,并通过通信装置1000的接口电路(图10中未示出)与处理器1001耦合,本申请实施例对此不作具体限定。
收发器1003,用于与其他通信装置之间的通信。例如,通信装置1000为终端设备,收发器1003可以用于与网络设备通信,或者与另一个终端设备通信。又例如,通信装置1000为网络设备,收发器1003可以用于与终端设备通信,或者与另一个网络设备通信。
可选地,收发器1003可以包括接收器和发送器(图10中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。
可选地,收发器1003可以和处理器1001集成在一起,也可以独立存在,并通过通信装置1000的接口电路(图10中未示出)与处理器1001耦合,本申请实施例对此不作具体限定。
需要说明的是,图10中示出的通信装置1000的结构并不构成对该通信装置的限定,实际的通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,通信装置1000的技术效果可以参考上述方法实施例所述的通信方法的技术效果,此处不再赘述。
本申请实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
本申请实施例提供一种通信系统。该通信系统包括上述一个或多个终端设备,以及一个或多个网络设备。
可选地,通信系统还可以包括:一个或多个终端设备,以及一个或多个网络设备。其中,终端设备或网络设备上可部署虚拟机,且虚拟机可在终端设备间,或在网络设备间,或在终端设备与网络设备间热迁移。
示例性的,该芯片系统可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processorunit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
应理解,在本申请实施例中的处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (30)

1.一种通信方法,其特征在于,所述方法应用于远程直接内存访问RDMA网络,所述RDMA网络包括:第一设备和第二设备,所述方法包括:
所述第一设备向所述第二设备发送第一报文;
所述第一设备接收来自所述第二设备的指示信息,其中,所述指示信息用于所述第一设备屏蔽错误上报功能,所述错误上报功能为:若所述第一设备超时未接收到来自所述第二设备的第二报文,则所述第一设备向业务系统发送错误信息,所述第二报文为所述第一报文的响应报文,所述错误信息用于触发所述业务系统断开所述第一设备与所述第二设备之间的通信连接。
2.根据权利要求1所述的通信方法,其特征在于,所述指示信息携带在计数暂停通知TPN报文中。
3.根据权利要求2所述的通信方法,其特征在于,所述TPN报文为:确认通知扩展传输头的综合征字段的取值为第一值的确认通知ACK报文或丢弃确认通知NAK报文。
4.根据权利要求1-3中任一项所述的通信方法,其特征在于,所述指示信息用于所述第一设备将所述通信连接的状态迁移到仅发送状态,在所述仅发送状态下,所述第一设备屏蔽所述错误上报功能。
5.根据权利要求4所述的通信方法,其特征在于,所述方法还包括:
所述第一设备接收到来自第三设备的所述第二报文后,向所述第三设备发送第三报文,所述第三设备为所述第二设备上的虚拟机热迁移后所在的设备。
6.根据权利要求5所述的通信方法,其特征在于,所述第一设备接收到来自第三设备的所述第二报文后,向所述第三设备发送第三报文,包括:
所述第一设备接收到来自第三设备的所述第二报文后,将所述通信连接的状态从仅发送状态迁移到发送就绪状态;
所述第一设备向所述第三设备发送所述第三报文。
7.根据权利要求1-6中任一项所述的通信方法,其特征在于,所述第二报文为如下之一:数据报文、接收者未准备好RNR报文、ACK报文、或NAK报文。
8.一种通信方法,其特征在于,所述方法应用于远程直接内存访问RDMA网络,所述RDMA网络包括:第一设备和第二设备,所述方法包括:
所述第二设备接收来自所述第一设备的第一报文;
所述第二设备向所述第一设备发送指示信息,所述指示信息用于所述第一设备屏蔽错误上报功能,所述错误上报功能为:若所述第一设备超时未接收到来自所述第二设备的第二报文,则所述第一设备向业务系统发送错误信息,所述第二报文为所述第一报文的响应报文,所述错误信息用于触发所述业务系统断开所述第一设备与所述第二设备之间的通信连接。
9.根据权利要求8所述的通信方法,其特征在于,所述第二设备向所述第一设备发送指示信息,包括:
所述第二设备确定所述第二设备上的虚拟机在进行热迁移,向所述第一设备发送所述指示信息,所述虚拟机用于与所述第一设备通信。
10.根据权利要求8或9所述的通信方法,其特征在于,所述指示信息携带在计数暂停通知TPN报文中。
11.根据权利要求10所述的通信方法,其特征在于,所述TPN报文为:确认通知扩展传输头的综合征字段的取值为第一值的确认通知ACK报文或丢弃确认通知NAK报文。
12.根据权利要求8-11中任一项所述的通信方法,其特征在于,所述指示信息用于所述第一设备将所述通信连接的状态迁移到仅发送状态,在所述仅发送状态下,所述第一设备屏蔽所述错误上报功能。
13.根据权利要求8-12中任一项所述的通信方法,其特征在于,所述第二报文为如下之一:数据报文、接收者未准备好RNR报文、ACK报文、或NAK报文。
14.一种通信装置,其特征在于,所述装置应用于远程直接内存访问RDMA网络,所述RDMA网络还包括:第二设备,所述装置包括:发送模块和接收模块;其中,
所述发送模块,用于向所述第二设备发送第一报文;
所述接收模块,用于接收来自所述第二设备的指示信息,所述指示信息用于所述通信装置屏蔽错误上报功能,所述错误上报功能为:若所述通信装置超时未接收到来自所述第二设备的第二报文,则向业务系统发送错误信息,所述第二报文为所述第一报文的响应报文,所述错误信息用于触发所述业务系统断开所述通信装置与所述第二设备之间的通信连接。
15.根据权利要求14所述的通信装置,其特征在于,所述指示信息携带在计数暂停通知TPN报文中。
16.根据权利要求15所述的通信装置,其特征在于,所述TPN报文为:确认通知扩展传输头的综合征字段的取值为第一值的确认通知ACK报文或丢弃确认通知NAK报文。
17.根据权利要求14-16中任一项所述的通信装置,其特征在于,所述指示信息用于所述通信装置将所述通信连接的状态迁移到仅发送状态,在所述仅发送状态下,所述通信装置屏蔽所述错误上报功能。
18.根据权利要求17所述的通信装置,其特征在于,
所述发送模块,还用于所述接收模块接收到来自第三设备的所述第二报文后,向所述第三设备发送第三报文,所述第三设备为所述第二设备上的虚拟机热迁移后所在的设备。
19.根据权利要求18所述的通信装置,其特征在于,所述装置还包括:处理模块,其中,
所述处理模块,用于所述接收模块接收到来自第三设备的所述第二报文后,将所述通信连接的状态从所述仅发送状态迁移到发送就绪状态,以及,所述发送模块,还用于向所述第三设备发送所述第三报文。
20.根据权利要求14-19中任一项所述的通信装置,其特征在于,所述第二报文为如下之一:数据报文、接收者未准备好RNR报文、ACK报文、或NAK报文。
21.一种通信装置,其特征在于,所述装置应用于远程直接内存访问RDMA网络,所述RDMA网络还包括:第一设备,所述装置包括:发送模块和接收模块;其中,
所述接收模块,用于收来自所述第一设备的第一报文;
所述发送模块,用于向所述第一设备发送指示信息,所述指示信息用于所述第一设备屏蔽错误上报功能,所述错误上报功能为:若所述第一设备超时未接收到来自所述通信装置的第二报文,则所述第一设备向业务系统发送错误信息,所述第二报文为所述第一报文的响应报文,所述错误信息用于触发所述业务系统断开所述第一设备与所述通信装置之间的通信连接。
22.根据权利要求21所述的通信装置,其特征在于,
所述指示信息为:所述通信装置在所通信装置上的虚拟机热迁移的过程中发送的信息,所述虚拟机用于与所述第一设备通信。
23.根据权利要求21或22所述的通信装置,其特征在于,所述指示信息携带在计数暂停通知TPN报文中。
24.根据权利要求23所述的通信装置,其特征在于,所述TPN报文为:确认通知扩展传输头的综合征字段的取值为第一值的确认通知ACK报文或丢弃确认通知NAK报文。
25.根据权利要求21-24中任一项所述的通信装置,其特征在于,所述指示信息用于所述第一设备将所述通信连接的状态迁移到仅发送状态,在所述仅发送状态下,所述第一设备屏蔽所述错误上报功能。
26.根据权利要求21-25中任一项所述的通信装置,其特征在于,所述第二报文为如下之一:数据报文、接收者未准备好RNR报文、ACK报文、或NAK报文。
27.一种通信装置,其特征在于,包括:处理器、存储器和收发器;其中,
所述收发器,用于接收计算机指令并传输至所述存储器;
所述处理器,用于执行所述存储器中存储的所述计算机指令,以使得所述装置执行如权利要求1-13中任一项所述的通信方法。
28.一种通信装置,其特征在于,包括处理器和收发器,所述收发器用于所述装置和其他装置之间进行信息交互,所述处理器执行程序指令,用以执行如权利要求1-13中任一项所述的通信方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括:计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行如权利要求1-13中任一项所述的通信方法。
30.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行如权利要求1-13中任一项所述的通信方法。
CN202011196982.8A 2020-10-31 2020-10-31 通信方法及装置 Pending CN114443206A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011196982.8A CN114443206A (zh) 2020-10-31 2020-10-31 通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011196982.8A CN114443206A (zh) 2020-10-31 2020-10-31 通信方法及装置

Publications (1)

Publication Number Publication Date
CN114443206A true CN114443206A (zh) 2022-05-06

Family

ID=81357081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011196982.8A Pending CN114443206A (zh) 2020-10-31 2020-10-31 通信方法及装置

Country Status (1)

Country Link
CN (1) CN114443206A (zh)

Similar Documents

Publication Publication Date Title
US10360098B2 (en) High performance interconnect link layer
EP3042298B1 (en) Universal pci express port
CN107968756B (zh) 高性能互连链路层
RU2540815C2 (ru) Прерывание, по меньшей мере частичное, передачи кадра
Dolev et al. Self-stabilizing end-to-end communication in (bounded capacity, omitting, duplicating and non-fifo) dynamic networks
US20120221669A1 (en) Communication method for parallel computing, information processing apparatus and computer readable recording medium
US10326681B2 (en) System and method to analyze route information in a network
US8639834B2 (en) Self-adjusting application heartbeat management
US8842524B2 (en) Redundant ring automatic recovery
US10069604B2 (en) Data transmission method and apparatus
US9973215B1 (en) Controlled multipath data packet delivery with forward error correction
CN110870286B (zh) 容错处理的方法、装置和服务器
CN113452475B (zh) 数据传输方法、装置及相关设备
CN111131224B (zh) 一种维护连接的方法及存储设备
CN114443206A (zh) 通信方法及装置
JP6551111B2 (ja) 情報処理装置、ダウン判定方法、クラスタシステム、及びプログラム
US10645093B2 (en) Reduction in secure protocol overhead when transferring packets between hosts
US20190028542A1 (en) Method and device for transmitting data
CN112583570A (zh) 一种序列号同步的方法及装置
CN113746647A (zh) 数据传输方法、节点、电子设备及可读存储介质
CN112953977B (zh) 系统数据发送方法、系统
US9584444B2 (en) Routing communication between computing platforms
CN114221899B (zh) 一种故障处理方法及装置
CN113055215B (zh) 信息传输方法以及相关设备
WO2024001874A1 (zh) 模式协商方法、装置、设备、系统及计算机可读存储介质

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