CN110120854B - 传输数据的方法和装置 - Google Patents
传输数据的方法和装置 Download PDFInfo
- Publication number
- CN110120854B CN110120854B CN201810121338.0A CN201810121338A CN110120854B CN 110120854 B CN110120854 B CN 110120854B CN 201810121338 A CN201810121338 A CN 201810121338A CN 110120854 B CN110120854 B CN 110120854B
- Authority
- CN
- China
- Prior art keywords
- data
- collector
- tcp
- message
- concentrator
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了传输数据的方法和装置,能够实现将集中器上的TCP协议栈中的控制信息和数据信息分离,提高传输数据的效率。该传输数据的方法包括:第一设备的集中器根据第一设备的采集器需要发送给第二设备的第一数据,生成第一TCP报文,其中,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文;所述集中器将所述第一TCP报文发送给所述采集器;所述采集器根据所述第一TCP报文,生成所述第二TCP报文;所述采集器向所述第二设备发送所述第二TCP报文。
Description
技术领域
本申请涉及通信领域,并且更具体的,涉及一种传输数据的方法和装置。
背景技术
网络性能测量需要满足实时性以及高可靠性等要求。谷歌远程过程调用(GoogleRemote Procedure Call,gRPC)是Google公司推出的一种用于网络性能测量的有效方案。gRPC定义了一个开放的高性能连接分布式***的通用远程过程调用(Remote ProcedureCall,RPC)框架,可以高效的链接数据中心或者数据中心之间的服务,并且可以通过插件扩展提供负载分担、跟踪、健康检查和认证。gRPC采用客户端/服务器模式,并且,客户端的应用程序可以直接调用服务器上的应用程序中的方法,以此实现分布式***应用和服务。
客户端与服务器之间可以采用传输控制协议(Transmission Control Protocol,TCP)进行数据传输。TCP协议通过确认和重传机制来保证数据传输的可靠性,这使得每对客户端与服务器之间的TCP连接只能为该客户端和服务器服务。
当框式交换机采集数据时,该框式交换机可以作为一种服务器。该框式交换机中可以包括多个采集器和一个集中器,该集中器与客户端之间可以建立TCP连接。在现有技术中,所有采集器采集的性能数据或状态必须经过集中器汇合后统一发送给客户端。但是,这种经过集中器处理的方式在采集器数量多的情况下,发布采样数据时会出现性能瓶颈。
发明内容
本申请提供一种传输数据的方法和装置,能够实现将集中器上的TCP协议栈中的控制信息和数据信息分离,提高传输数据的效率。
第一方面,提供了一种传输数据的方法,所述方法由第一设备执行,所述第一设备包括集中器和采集器。所述集中器根据所述采集器需要发送给第二设备的第一数据,生成第一TCP报文,其中,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同且所述第二TCP报文的负载包括所述第一数据;所述集中器将所述第一TCP报文发送给所述采集器;所述采集器根据所述第一TCP报文,生成所述第二TCP报文;所述采集器向所述第二设备发送所述第二TCP报文。
本申请实施例中,集中器可以根据需要发送给第二设备的数据生成payload为空的TCP报文,并由采集器在该TCP报文中封装原始数据并将封装数据之后的TCP报文发送给第二设备,由此可以实现将集中器上的TCP协议栈中的控制信息和数据信息分离,并且对外(第二设备)体现上和现有技术中由集中器独立完成数据封装没有差异,即本申请实施例对外部***没有影响。
可选的,所述集中器确定所述第一TCP报文之前,所述采集器向所述集中器发送第一消息,所述第一消息包括所述第一数据的信息。
具体的,第一数据的信息可以表示第一数据的数据特征,而并非该第一数据的原始数据。这样,可以减少大量数据在设备内部拷贝(比如从采集器拷贝至集中器)对***资源的消耗和影响,即减少对采集器和集中器之间链路的带宽消耗。
可选的,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
其中,数据量可以为每种数据类型所对应的数据量。具体的,数据类型例如可以为流量统计结果、***资源使用率等。这里,***资源例如可以为CPU、内存、转发表等。这样,集中器可以根据第一数据的信息进行统一调度,即集中器可以确定如何将每种数据类型对应的数据封装为TCP报文。
可选的,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
这样,采集器在确定第一数据的数据类型和位置信息后,可以根据本地保存的数据类型与数据在内存中的位置的映射关系,将第一数据从本地内存中的指定位置添加到第一TCP报文中的指定位置中。
可选的,所述集中器接收所述第二设备发送的对应于所述第二TCP报文的确认ACK报文;所述集中器向所述采集器发送第二消息,所述第二消息用于向所述采集器通知所述集中器收到所述ACK报文;所述采集器根据所述第二消息,释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
本申请实施例中TCP协议栈的超时重传机制与当前内核中的实现一致,不需要进行修改。也就是说,如果发送第二TCP报文超时之后仍没有获取ACK报文,则集中器重新发送未确认的报文,该报文的内容与之前发送的报文的内容一致,即此时第一设备可以重新执行上述发送报文的过程。
可选的,若所述第一设备与所述第二设备之间的TCP连接断开,则所述集中器向所述采集器发送第三消息,所述第三消息用于向所述采集器通知所述TCP连接断开;所述采集器根据所述第三消息,释放所述采集器中存储的所述第一数据。
通过上述方式,可以避免该第一数据长时间占用采集器的内存资源而造成的资源浪费。
第二方面,提供了一种传输数据的方法。第一设备中的采集器接收所述第一设备中的集中器发送的第一TCP报文,其中,所述第一TCP报文是所述集中器根据所述采集器需要发送给第二设备的第一数据确定的,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同且所述第二TCP报文的负载包括所述第一数据;
所述采集器根据所述第一TCP报文生成所述第二TCP报文;
所述采集器向所述第二设备发送所述第二TCP报文。
本申请实施例中,集中器可以根据需要发送给第二设备的数据生成payload为空的TCP报文,并由采集器在该TCP报文中封装原始数据并将封装数据之后的TCP报文发送给第二设备,由此可以实现将集中器上的TCP协议栈中的控制信息和数据信息分离,并且对外(第二设备)体现上和现有技术中由集中器独立完成数据封装没有差异,即本申请实施例对外部***没有影响。
可选的,所述采集器向所述集中器发送第一消息,所述第一消息包括所述第一数据的信息。
具体的,第一数据的信息可以表示第一数据的数据特征,而并非该第一数据的原始数据。这样,可以减少大量数据在设备内部拷贝(比如从采集器拷贝至集中器)对***资源的消耗和影响,即减少对采集器和集中器之间链路的带宽消耗。
可选的,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
其中,数据量可以包括每种数据类型所对应的数据量。具体的,数据类型例如可以为流量统计结果、***资源使用率等。这里,***资源例如可以为CPU、内存、转发表等。这样,集中器可以根据第一数据的信息进行统一调度,即集中器可以确定如何将每种数据类型对应的数据封装为TCP报文。
可选的,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
这样,采集器在确定第一数据的数据类型和位置信息后,可以根据本地保存的数据类型与数据在内存中的位置的映射关系,从将第一数据从本地内存中的指定位置添加到第一TCP报文中的指定位置中。
可选的,所述采集器接收所述集中器发送的第二消息,所述第二消息用于向所述采集器通知所述集中器收到对应于所述第二TCP报文的确认ACK报文;
所述采集器根据所述第二消息,释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
本申请实施例中TCP协议栈的超时重传机制与当前内核中的实现一致,不需要进行修改。也就是说,如果发送第二TCP报文超时之后仍没有获取ACK报文,则集中器重新发送未确认的报文,该报文的内容与之前发送的报文的内容一致,即此时第一设备可以重新执行上述发送报文的过程。
可选的,所述采集器接收所述集中器发送的第三消息,所述第三消息用于向所述采集器通知所述第一设备与所述第二设备之间的TCP连接断开;所述采集器根据所述第三消息,释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
第三方面,提供了一种传输数据的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体的,该传输数据的装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的集中器。
第四方面,提供了一种传输数据的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体的,该传输数据的装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第五方面,提供了一种传输数据的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体的,该传输数据的装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的采集器。
第六方面,提供了一种传输数据的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体的,该传输数据的装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第七方面,提供了一种传输数据的装置,该传输数据的装置包括:通信接口、存储器、处理器和总线***。其中,该通信接口、该存储器和该处理器通过该总线***相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制通信接口接收和/或发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行上述第一方面或第一方面的任意可能的实现方式中的方法。
第八方面,提供了一种传输数据的装置,该传输数据的装置包括:通信接口、存储器、处理器和总线***。其中,该通信接口、该存储器和该处理器通过该总线***相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制通信接口接收和/或发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行上述第二方面或第二方面的任意可能的实现方式中的方法。
第九方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行上述任一方面的任意可能的实现方式中的方法的指令。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被通信设备(例如,传输数据的装置)执行时,使得该通信设备执行上述任一方面的任意可能的实现方式中的方法。
附图说明
图1示出了本申请实施例提供的一种gRPC架构的示意图。
图2示出了本申请实施例提供的一种gRPC协议栈的示意图。
图3示出了本申请实施例提供的一种TCP/IP协议栈的示意图。
图4示出了本申请实施例提供的一种TCP报文格式的示意图。
图5示出了本申请实施例提供的一种传输数据的方法的示意性流程图。
图6示出了本申请实施例提供的一种具体的gRPC架构的示意图。
图7示出了本申请实施例提供的一种传输数据的装置的示意性框图。
图8示出了本申请实施例提供的一种集中器的示意性框图。
图9示出了本申请实施例提供的一种采集器的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1示出了本申请实施例提供的一种gRPC架构的示意图。该gRPC架构包括服务端11,例如C++服务器11,和至少一个客户端,图1中示出了Ruby客户端12和Android-Java客户端13。这里,Ruby客户端12例如可以为电脑终端,Android-Java客户端13例如可以为手机终端。其中,C++服务器11中包括gRPC服务器,Ruby客户端12和Android-Java客户端13中分别包括gRPC存根(Stub)。具体的,服务端实现被调用接口并运行该gPRC服务器来处理客户端服务的调用,发起远程调用的客户端服务采用该Stub实现和gPRC服务器一样的方法。
具体的,该gRPC架构可以用于采集性能数据,此时C++服务器11可以为需要采集数据/被监测的网络设备。Ruby客户端12和Android-Java客户端13中的gRPC Stub可以分别与gRPC服务器建立gRPC协议连接。然后,客户端中的gRPC可以向gRPC服务器发送Proto请求(Request)来请求/订阅性能数据或状态。gRPC服务器收到proto请求之后,向对应的gRPCStub回复Proto响应(Response)以发布性能数据或回应状态。
图2示出了本申请实施例提供的一种gRPC协议栈的示意图。该gRPC协议栈从上到下依次为ProtoBuff层、gRPC层、超文本传输协议(HyperText Transfer Protocol,HTTP)2.0层、传输层安全(Transport Layer Security,TLS)层、TCP层和网际互连协议(InternetProtocol,IP)层。其中,gRPC架构使用ProtoBuff层来描述业务数据,并通过HTTP2.0/TLS/TCP协议承载ProtoBuff编码的数据。
图3示出了本申请实施例提供的一种TCP/IP协议栈的示意图。TCP/IP协议栈与开放式***互联(Open System Interconnection,OSI)定义的七层网络模型具有对应关系。具体的,TCP/IP协议栈包括应用层、运输层、网际层和网络接口层,OSI定义的七层网络模型中包括应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)和物理层(Physical)。其中,OSI中的应用层、表示层和会话层可以对应于TCP/IP协议栈中的应用层,OSI中的传输层可以对应于TCP/IP协议中的运输层,OSI中的网络层可以对应于TCP/IP协议栈中的网际层,OSI中的数据链路层和物理层可以对应于TCP/IP协议栈中的网络接口层。并且,TCP/IP中的应用层的协议数据单元(Protocol Data Unit,PDU)为报文(Message),运输层的PDU为段(Segment),网际层的PDU中为分组(Packet),网络接口层的PDU中为帧(Frame)和比特(Bit)。
图4示出了本申请实施例提供的一种TCP报文格式的示意图。其中,源端口(SourcePort)字段占16位,包含初始化通信的端口号,且源端口和IP地址的作用是标识报文的返回地址。目的端口(Destination Port)字段占16位,其定义了传输的目的,指明了接收方计算机上的应用程序接口。
序列号(sequence number)字段占32位,用来指示TCP源端设备向目的端设备发送的报文段的第一个字节的编号。确认号(acknowledge number)字段也占32位,用来指示目的端设备期望收到的下一个报文段的第一个字节,并声明此前的所有数据已经正确无误地接收到。并且,确认号字段只有在ACK标识被设置时才有效。
数据偏移(Data Offset)字段占4位,包括TCP头大小。由于首部可能含有选项内容,因此TCP首部的长度是不确定的。首部长度的单位是32比特或4个八位组。首部长度实际上也指示了数据区在报文段中的起始偏移值。
保留(Reserved)字段为6位置0的字段,为将来定义新的用途保留。
控制位(Control Bits)共6位,每一位标志可以打开一个控制功能。
紧急指针字段标志(Urgent Pointer Field Significant,URG)表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间设备尽快处理这些数据。
确认字段标志(Acknowledgement field significant,ACK)取1时表示应答字段有效,也即TCP应答号包含在TCP段中,取0则反之。
推功能(Push Function,PSH)表示Push操作。这里Push操作就是指在数据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。
重置连接(Reset the connection,RST)用来复位那些产生错误的连接,也可以被用来拒绝错误和非法的数据包。
同步序列号(Synchronize sequence numbers,SYN)表示同步序号,用来建立连接。
FIN(No more data from sender)表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段之后,连接将被断开。
窗口(Window)占16位,表示目的主机期望每次收到源主机发送的数据的字节数。
校验和(Checksum)字段占16位,用于错误检查。源主机基于部分IP头信息,TCP头和数据内容计算一个校验和,目的主机也要进行相同的计算。如果收到的内容没有错误,源主机和目的主机的计算应该完全一样,从而可以证明数据的有效性。
紧急指针(Urgent Pointer)字段是一个可选的16位指针,指向段内的最后一个字节位置,这个字段只在URG标志被设置时才有效。
选项(Option)为至少1字节的可变长字段,标识哪个选项(如果有的话)有效。如果没有选项,这个字节等于0,说明选项的结束。这个字节等于1表示无需再有操作,等于2表示下四个字节包括源机器的最大长度(Maximum Segment Size,MSS)。
填充(Padding)字段中被加入额外的零,以保证TCP头是32的整数倍。
可理解,TCP协议的任务是需要保证数据传输的可靠性,需要支持报文的确认和重传,这使得每对客户端与服务器之间的TCP连接只能为该客户端和服务器服务。这时,每一对服务器和客户端具有唯一匹配的TCP协议的源端口和目的端口。
图5示出了本申请实施例提供的一种传输数据的方法的示意性流程图。该方法由第一设备执行,并且第一设备与第二设备之间通过TCP连接进行数据传输。具体的,第一设备可以为gRPC服务器或者包含有gRPC服务器的网络设备,例如框式交换机、路由器等。第二设备可以为gRPC客户端或者包含有gRPC客户端的网络设备,例如分析器等。
本申请实施例的传输数据的方法可以应用于gRPC架构中,具体的,gRPC架构可以参见上文中的描述。图6示出了本申请实施例提供的一种具体的gRPC架构的示意图,这里上述第一设备可以为该gRPC架构中的交换机61,第二设备可以为该gRPC架构中的分析器62。为了便于理解,下文将以图6所示的gRPC架构为例对本申请实施例的传输数据的方法进行描述,但这不应对本申请实施例构成任何限定。
具体的,图6中所示的gRPC架构包括交换机61和分析器62。交换机61作为一种gRPC服务器,可以进行性能数据的采集。具体而言,交换机61中可以包括一个集中器和多个采集器,其中采集器可以进行数据的采集,集中器可以处理采集器所采集的数据。这里,集中器也可以称为集中点,一般可以为主处理单元(main processing unit,MPU)。采集器可以为线路处理单元(line processing unit,LPU)。另外,MPU也可以称为主控板,LPU也可以称为业务板。作为示例,图6中的交换机61中包括集中器612和三个采集器(分别为采集器614、采集器616和采集器618),该集中器612可以根据三个采集器所采集的数据进行数据处理。
另外,本申请实施例中,集中器和采集器中可以分别包括中央处理器(centralprocessing unit,CPU),其中,集中器中的CPU可以运行TCP协议栈中的控制信息的处理流程,采集器中的CPU可以运行TCP协议栈中的数据信息的处理流程。应理解,本申请实施例中仅以协议栈的处理流程运行在CPU中为例进行描述,但本申请实施例对此并不限定,例如具体实现时也可以通过可编程器件(比如FPGA等)来运行协议栈的处理流程。
应理解,本申请实施例仅以图6所示的gRPC架构为示例进行说明,但本申请并不限于此,例如,该gRPC架构中还可以包括更多的分析器,或者交换机中可以包括更多的采集器等。
本申请实施例中,交换机61与分析器62之间可以建立TCP连接并通过该TCP连接通信。这里,该TCP连接可以是按需连接,即当交换机61需要向分析器62发送数据时,交换机61向分析器62请求建立TCP连接。或者分析器62需要向交换机61发送数据时,分析器62向交换机请求建立TCP连接。当数据传输结束时,可以断开交换机61与分析器62之间的TCP连接。或者,该TCP连接也可以是长连接,即多个远程过程调用共享一个连接。此时,当一个远程过程调用结束之后,可以不断开该TCP连接,使得下一个远程过程调用可以继续使用该TCP连接。
在一种具体的实现方式中,交换机61可以对外公开某个IP地址和TCP端口号,分析器62主动和交换机61建立TCP连接。在另一种可能的实现方式中,分析器62对外公开IP地址和TCP端口号,并由交换机61主动和分析器62建立TCP连接。
应注意,本申请实施例中,在交换机61与分析器62在建立TCP连接时,交换机61所使用的IP地址和TCP端口号为集中器的IP地址和TCP端口号。也就是说,本申请实施例中该TCP连接在逻辑上为集中器与分析器之间的TCP连接。这样,对外体现为集中器向分析器发送数据。
应理解,本申请实施例中,在集中器612与分析器62之间建立TCP连接之后,集中器612可以根据采集器需要向分析器发送的数据生成TCP报文。然后集中器将该TCP报文发送至采集器。采集器收到该TCP报文之后,为该TCP报文添加需要向分析器发送的数据,并通过转发芯片将添加了数据的TCP报文转发给分析器62。由此可知,TCP报文实际是经过集中器-采集器-分析器组成的物理路径转发的,因此可以称集中器-采集器-分析器这条物理路径为实际TCP连接。这里,转发芯片例如可以为以太交换(LAN Switch,LSW)芯片。
作为一个具体的例子,当集中器612根据采集器618需要向分析器62发送的数据生成TCP报文之后,将该TCP报文发送至采集器618,然后由采集器618为该TCP报文添加数据后将该添加了数据的TCP报文发送至分析器62。并且,由于该添加了数据的TCP报文的源地址为集中器612的IP地址和TCP端口号,对外体现为集中器612向分析器62发送该添加了数据的TCP报文,因此可以认为集中器612-采集器618-分析器62组成的物理路径为实际TCP连接,集中器612与分析器62之间的TCP连接为逻辑TCP连接。
还应理解,本申请实施例所示的建立TCP连接的方式仅用于举例,并非用于限制本申请实施例的保护范围,在具体实现过程中,还可以通过其他方式建立交换机61与分析器62之间的TCP连接,具体内容本文不再赘述。
具体的,本申请实施例中,图5所示的方法包括510至550。
可选的,510,采集器向集中器发送第一消息,所述第一消息包括所述采集器需要发送给所述第二设备的第一数据的信息。
具体的,第一数据的信息可以表示第一数据的数据特征,而并非该第一数据本身。换句话说,本申请实施例中,当采集器确定要将第一数据发送给第二设备时,只需要将该第一数据的信息发送给集中器,而不需要向集中器发送第一数据。
这里,第一数据的信息例如可以包括第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。其中,数据量可以包括每种数据类型所对应的数据量。具体的,数据类型例如可以为流量统计结果、***资源使用率等。这里,***资源例如可以为CPU、内存、转发表等。这样,集中器可以根据第一数据的信息进行统一调度,即集中器可以确定如何将每种数据类型对应的数据封装为TCP报文。
作为一个具体的例子,当采集器618确定要将第一数据发送给分析器62时,可以仅向集中器612发送第一消息,这里第一消息包括采集器618需要发送给分析器62的第一数据的数据类型、所述第一数据在所述采集器618的存储器中的起始位置和数据量,而不必向集中器612发送第一数据本身。
或者,可选的,在一些可能的实施方式中,采集器也可以向集中器发送第一数据的原始数据。
520,所述集中器生成第一TCP报文。其中,所述第一TCP报文的负载(payload)为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同,且所述第二TCP报文的负载包括所述第一数据。也就是说,采集器可以在所述第一TCP报文中封装第一数据以生成所述第二TCP报文。
具体的,集中器中可以包括负责与外部的第二设备建立TCP连接,并且维护该集中器的TCP/IP协议栈的软件模块。作为一例,该软件模块可以运行在CPU中。其中,该TCP/IP协议栈负责TCP/IP控制层面的所有报文和状态机处理。这里,该软件模块可以接收该第一消息,并根据该第一消息,生成第一TCP报文。该第一TCP报文中的源地址为集中器的IP地址端口地址,目的地址为第二设备的IP地址和端口地址。具体的,第一TCP报文的报文格式可以参见上文图4中的描述,为避免重复,这里不再赘述。
应理解,本申请实施例中由于采集器可以不将需要发送给分析器的原始数据发送给集中器,此时,需要封装到payload中的数据实际是保存在各个采集器的内存中。由此可知,由于本申请实施例中各采集器采集的数据不需要上送采集器,因此集中器上的TCP协议栈仅需要负责控制层面的报文处理和状态机处理,而不需要负责数据层面的报文处理和状态机处理。
因此,本申请实施例可以将集中器的TCP协议栈的部分功能卸载到各个采集器实现,即将集中器上的TCP协议栈中的控制信息和数据信息分离,减少了大量数据在设备内部拷贝(比如从采集器拷贝至集中器)对***资源的消耗和影响,即减少了对采集器和集中器之间链路的带宽消耗,同时可以减小对集中器和采集器之间的其他消息报文的影响。这里,其他消息例如为需要上报给集中器处理的控制消息,或者集中器和采集器之间的控制消息等。
这种情况下,集中器需要通过特殊的控制信息(即上述指示信息)通知采集器进行真实数据的封装。具体的,该控制信息(或指示信息)可以为第一TCP报文中的一个字段,比如Ctrl_info字段,该字段中包括了将要添加到第一TCP报文的payload中的第一数据的信息。
可选的,本申请实施例中,指示信息可以包括该第一数据的数据类型和位置信息,其中,位置信息包括第一数据在采集器的存储器中的起始位置和长度,或位置信息包括第一数据在采集器的存储介质中的起始位置和结束位置。这样,采集器在确定第一数据的数据类型和位置信息后,可以根据该位置信息将第一数据从本地内存中读出并添加到第一TCP报文的payload中。
具体而言,集中器可以根据采集器发送的第一消息,确定采集器需要向第二设备发送的所有数据的信息,例如发送至少一种数据类型和每种数据类型对应的数据在所述采集器的存储器中的起始位置以及数据量等信息。然后采集器进行统一规划,确定通过至少一个TCP报文来发送该第一数据。作为一例,当第一数据中包括多种数据类型时,集中器可以将同一种数据类型的数据的指示信息封装在一个TCP报文中。
作为一个具体的例子,当集中器612收到采集器618发送的第一消息时,可以根据该第一消息,生成第一TCP报文。并且,该第一TCP报文源地址为集中器612的IP地址和TCP端口号,目的地址为分析器62的IP地址和TCP端口号,且该第一TCP报文payload为空。另外,该第一TCP报文中还包括Ctrl_info字段,该Ctrl_info字段用于通知采集器618进行真实数据的封装。具体的,Ctrl_info字段可以包括将要封装到该TCP报文的payload中的第一数据的数据类型、起始位置和长度。
530,所述集中器将所述第一TCP报文发送给所述采集器。
具体的,集中器可以通过集中器与采集器之间的连接将第一TCP报文发送给采集器。
540,所述采集器根据所述第一TCP报文,生成所述第二TCP报文。具体的,采集器可以在第一TCP报文中封装所述第一数据,以获得所述第二TCP报文。
具体而言,本申请实施例中,采集器上也具有TCP协议栈,且该TCP协议栈需要负责数据层面的报文处理和状态机处理。具体而言,采集器在收到第一TCP报文后,可以根据第一TCP报文中的所述指示信息确定第一数据的数据类型和位置信息。然后,根据该位置信息从内存中读取出该第一数据,并将该第一数据封装到第一TCP报文的payload中,得到第二TCP报文。也就是说,第二TCP报文中的payload为该第一数据。
作为一个具体的例子,采集器618在接收到集中器612发送的第一TCP报文后,可以根据第一TCP报文中的Ctrl_info字段中的第一数据的数据类型和位置信息,将对应类型的数据从本地内存中的指定位置读出并封装到该第一TCP报文中,以生成payload为第一数据的第二TCP报文。
550,所述采集器向所述第二设备发送所述第二TCP报文。
作为一个具体的例子,采集器618在生成第二TCP报文之后,通过本地的LSW芯片将该第二TCP报文转发给分析器62。
本申请实施例中,集中器可以根据需要发送给第二设备的数据生成payload为空的第一TCP报文,并由采集器在该第一TCP报文中封装原始数据并将封装原始数据之后的第二TCP报文发送给第二设备,由此可以实现将集中器上的TCP协议栈中的控制信息和数据信息分离,并且对外(第二设备)体现上和现有技术中由集中器独立完成数据封装没有差异,即本申请实施例对外部***没有影响。
可选的,本申请实施例中,所述集中器还接收所述第二设备发送的对应于所述第二TCP报文的确认ACK报文;所述集中器向所述采集器发送第二消息,所述第二消息用于向所述采集器通知所述集中器收到所述ACK报文;所述采集器根据所述第二消息,释放所述采集器中存储的所述第一数据。
具体的,第二设备在接收到所述第二TCP报文之后,可以向交换机发送对应于所述第二TCP报文的确认ACK报文。具体的,第二设备接收到第二TCP报文时,由于该第二TCP报文的源地址仍然为集中器的IP地址和端口地址,因此第二设备完全不能感知第一设备内部的集中器和采集器的分工及特殊处理。此时,第二设备可以按照现有技术的处理流程(即通过分析器-采集器-集中器的实际TCP连接)向第一设备发送ACK报文。采集器上的LSW芯片将接收到的目的IP为本交换机(即第一设备)的ACK报文上送给集中器的CPU进行处理,此过程与现有技术中的处理流程一致。
可理解,当分析器通过实际的TCP连接发送ACK报文时,采集器的LSW芯片仅对该ACK报文进行转发,而采集器上的CPU并未获取该ACK报文,因此采集器并不能确定分析器是否收到ACK报文,进而采集器无法确定是否需要释放保存在本地的第二TCP报文对应的数据(即第一数据)。因此,当集中器正常接收到ACK响应时,可以更新本地的协议栈状态。同时,集中器可以向采集器发送第二消息以通知采集器已经收到了ACK报文。这里,第二消息可以为单独的通知消息。这样采集器可以根据该第二消息,释放采集器中存储的第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
并且,本申请实施例中TCP协议栈的超时重传机制与当前内核中的实现一致,不需要进行修改。也就是说,如果发送第二TCP报文超时之后仍没有获取ACK报文,则集中器重新发送未确认的报文,该报文的内容与之前发送的报文的内容一致,即此时第一设备可以重新执行上述520-550(或530-550)的过程。
可选的,所述方法还包括:若所述第一设备与所述第二设备之间的TCP连接断开,则所述集中器向所述采集器发送第三消息,所述第三消息用于向所述采集器通知所述TCP连接断开;所述采集器根据所述第三消息,释放所述采集器中存储的所述第一数据。
具体的,如果所述TCP连接断开,则所述集中器可以向所述采集器发送第三消息,所述第三消息用于向所述采集器通知所述TCP连接断开。这里,第三消息也可以为单独的消息。另外,TCP连接断开包括交换机主动断开该连接或分析器主动断开该连接。当采集器接收到该第三消息时,可以释放所述采集器中存储的第一数据。也就是说,当交换机和分析器之间的TCP连接断开时,采集器可以释放本地内存中存储的需要发送给分析器的数据。
图7示出了本申请实施例提供的一种传输数据的装置700的示意性框图。该装置700包括集中器710和采集器720。
所述集中器710用于根据所述采集器720需要发送给第二设备的第一数据,生成第一TCP报文,其中,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器420根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同且所述第二TCP报文的负载包括所述第一数据;
所述集中器710还用于将所述第一TCP报文发送给所述采集器720;
所述采集器720用于根据所述第一TCP报文,生成所述第二TCP报文;
所述采集器720还用于向所述第二设备发送所述第二TCP报文。
本申请实施例中,集中器可以根据需要发送给第二设备的数据生成payload为空的第一TCP报文,并由采集器在该TCP报文中封装原始数据并将封装数据之后的第二TCP报文发送给第二设备,由此可以实现将集中器上的TCP协议栈中的控制信息和数据信息分离,并且对外(第二设备)体现上和现有技术中由集中器独立完成数据封装没有差异,即本申请实施例对外部***没有影响。
可选的,所述采集器720还用于向所述集中器710发送第一消息,所述第一消息包括所述采集器720需要发送给第二设备的第一数据的信息。
可选的,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
可选的,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
可选的,所述集中器710还用于接收所述第二设备发送的对应于所述第二TCP报文的确认ACK报文;
所述集中器720还用于向所述采集器710发送第二消息,所述第二消息用于向所述采集器720通知所述集中器收到所述ACK报文;
所述采集器720还用于根据所述第二消息,释放所述采集器720中存储的所述第一数据。
可选的,若所述第一设备与所述第二设备之间的TCP连接断开,则所述集中器710还用于向所述采集器720发送第三消息,所述第三消息用于向所述采集器720通知所述TCP连接断开;
所述采集器720还用于根据所述第三消息,释放所述采集器720中存储的所述第一数据。
图8示出了本申请实施例提供了的一种传输数据的集中器800的示意性框图。具体的,第一设备包括所述集中器800和采集器。所述集中器800包括:
生成单元810,用于根据采集器需要发送给第二设备的第一数据,生成第一TCP报文,其中,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同,且所述第二TCP报文的负载包括所述第一数据。
发送单元820,用于将所述第一TCP报文发送给所述采集器,以便于所述采集器生成所述第二TCP报文,并将所述第二TCP报文发送给所述第二设备。
本申请实施例中,集中器800可以根据需要发送给第二设备的数据生成payload为空的第一TCP报文,并由采集器在该TCP报文中封装原始数据并将封装数据之后的TCP报文发送给第二设备,由此可以实现将集中器800上的TCP协议栈中的控制信息和数据信息分离,并且对外(第二设备)体现上和现有技术中由集中器独立完成数据封装没有差异,即本申请实施例对外部***没有影响。
可选的,所述集中器800还包括:
接收单元,用于接收采集器发送的第一消息,所述第一消息包括所述第一数据的信息。
可选的,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
可选的,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
可选的,所述接收单元还用于接收所述第二设备发送的对应于所述第二TCP报文的确认ACK报文;发送单元820还用于向所述采集器发送第二消息,所述第二消息用于向所述采集器通知所述集中器收到所述ACK报文,以使得所述采集器释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用采集器的内存资源而造成的资源浪费。其中,所述释放包括删除。
可选的,若所述第一设备与所述第二设备之间的TCP连接断开,则所述发送单元820向所述采集器发送第三消息,所述第三消息用于向所述采集器通知所述TCP连接断开,以使得所述采集器释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
应注意,本发明实施例中,确定单元810可以由处理器实现,发送单元820可以由通信实现,并且存储器可以用于存储处理器执行的代码等。具体的,处理器可以具体用于:根据所述采集器需要发送给第二设备的第一数据,确定第一TCP报文,其中,所述第一TCP报文的净荷为空,且所述第一TCP报文包括指示信息,所述至少信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同,且所述第二TCP报文包括所述第一数据。
收发器具体可以用于:将所述第一TCP报文发送给所述采集器,以便于所述采集器生成所述第二TCP报文,并将所述第二TCP报文发送给所述第二设备。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
图9示出了本申请实施例提供的一种采集器900的示意性框图。具体的,第一设备包括集中器和采集器900。采集器900包括:
接收单元910,用于接收所述集中器发送的第一TCP报文,其中,所述第一TCP报文是所述集中器根据所述采集器需要发送给第二设备的第一数据确定的,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同且所述第二TCP报文的负载包括所述第一数据。
生成单元920,用于根据所述第一TCP报文生成所述第二TCP报文。
发送单元930,用于向所述第二设备发送所述第二TCP报文。
本申请实施例中,集中器可以根据需要发送给第二设备的数据生成payload为空的第一TCP报文,并由采集器在该第一TCP报文中封装原始数据并将封装数据之后的第二TCP报文发送给第二设备,由此可以实现将集中器上的TCP协议栈中的控制信息和数据信息分离,并且对外(第二设备)体现上和现有技术中由集中器独立完成数据封装没有差异,即本申请实施例对外部***没有影响。
可选的,所述发送单元930还用于向所述集中器发送第一消息,所述第一消息包括所述第一数据的信息。
可选的,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
可选的,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
可选的,所述接收单元910还用于接收所述集中器发送的第二消息,所述第二消息用于向所述采集器通知所述集中器收到对应于所述第二TCP报文的确认ACK报文;
所述生成单元920还用于根据所述第二消息,释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
可选的,所述接收单元910还用于接收所述集中器发送的第三消息,所述第三消息用于向所述采集器通知所述第一设备与所述第二设备之间的TCP连接断开;
所述生成单元920还用于根据所述第三消息,释放所述采集器中存储的所述第一数据,避免该第一数据长时间占用内存资源而造成的资源浪费。
应注意,本发明实施例中,确定单元920可以由处理器实现,接收单元910和发送单元930可以由通信接口实现,并且存储器可以用于存储处理器执行的代码等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
图7至图9所示的装置能够实现前述方法实施例对应的各个装置及模块的各个过程,具体的,该传输数据的装置700、集中器800和采集器900可以参见上文中的描述,为避免重复,这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当其在计算机上运行时,使得该计算机执行上述方法实施例提供的方法。
本申请实施例还提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述方法实施例提供的方法。
应理解,本发明实施例中提及的处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者任何常规的处理器等。
还应理解,本发明实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/“,表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种传输数据的方法,其特征在于,所述方法由第一设备执行,其中,所述第一设备包括集中器和采集器,所述方法包括:
所述集中器根据所述采集器需要发送给第二设备的第一数据,生成第一TCP报文,其中,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同且所述第二TCP报文的负载包括所述第一数据;
所述集中器将所述第一TCP报文发送给所述采集器;
所述采集器根据所述第一TCP报文,生成所述第二TCP报文;
所述采集器向所述第二设备发送所述第二TCP报文。
2.根据权利要求1所述的方法,其特征在于,所述集中器确定所述第一TCP报文之前,还包括:
所述采集器向所述集中器发送第一消息,所述第一消息包括所述第一数据的信息。
3.根据权利要求2所述的方法,其特征在于,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
所述集中器接收所述第二设备发送的对应于所述第二TCP报文的确认ACK报文;
所述集中器向所述采集器发送第二消息,所述第二消息用于向所述采集器通知所述集中器收到所述ACK报文;
所述采集器根据所述第二消息,释放所述采集器中存储的所述第一数据。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若所述第一设备与所述第二设备之间的TCP连接断开,则所述集中器向所述采集器发送第三消息,所述第三消息用于向所述采集器通知所述TCP连接断开;
所述采集器根据所述第三消息,释放所述采集器中存储的所述第一数据。
7.一种传输数据的装置,其特征在于,所述装置为第一设备,其中,所述第一设备包括集中器和采集器,
所述集中器用于根据所述采集器需要发送给第二设备的第一数据,生成第一TCP报文,其中,所述第一TCP报文的负载为空,且所述第一TCP报文包括指示信息,所述指示信息用于指示所述采集器根据所述第一TCP报文生成第二TCP报文,其中,所述第二TCP报文的头部与所述第一TCP报文的头部相同且所述第二TCP报文的负载包括所述第一数据;
所述集中器还用于将所述第一TCP报文发送给所述采集器;
所述采集器用于根据所述第一TCP报文,生成所述第二TCP报文;
所述采集器还用于向所述第二设备发送所述第二TCP报文。
8.根据权利要求7所述的装置,其特征在于,所述采集器还用于向所述集中器发送第一消息,所述第一消息包括所述第一数据的信息。
9.根据权利要求8所述的装置,其特征在于,所述第一数据的信息包括所述第一数据的数据类型、所述第一数据在所述采集器的存储器中的起始位置和数据量。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述指示信息包括所述第一数据的数据类型和位置信息,其中,所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和长度,或所述位置信息包括所述第一数据在所述采集器的存储器中的起始位置和结束位置。
11.根据权利要求7-9任一项所述的装置,其特征在于,
所述集中器还用于接收所述第二设备发送的对应于所述第二TCP报文的确认ACK报文;
所述集中器还用于向所述采集器发送第二消息,所述第二消息用于向所述采集器通知所述集中器收到所述ACK报文;
所述采集器还用于根据所述第二消息,释放所述采集器中存储的所述第一数据。
12.根据权利要求7-9任一项所述的装置,其特征在于,
若所述第一设备与所述第二设备之间的TCP连接断开,则所述集中器还用于向所述采集器发送第三消息,所述第三消息用于向所述采集器通知所述TCP连接断开;
所述采集器还用于根据所述第三消息,释放所述采集器中存储的所述第一数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810121338.0A CN110120854B (zh) | 2018-02-07 | 2018-02-07 | 传输数据的方法和装置 |
US16/268,844 US10701189B2 (en) | 2018-02-07 | 2019-02-06 | Data transmission method and apparatus |
EP19155790.9A EP3525421B1 (en) | 2018-02-07 | 2019-02-06 | Data transmission method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810121338.0A CN110120854B (zh) | 2018-02-07 | 2018-02-07 | 传输数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110120854A CN110120854A (zh) | 2019-08-13 |
CN110120854B true CN110120854B (zh) | 2021-08-31 |
Family
ID=65520052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810121338.0A Active CN110120854B (zh) | 2018-02-07 | 2018-02-07 | 传输数据的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10701189B2 (zh) |
EP (1) | EP3525421B1 (zh) |
CN (1) | CN110120854B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110120854B (zh) * | 2018-02-07 | 2021-08-31 | 华为技术有限公司 | 传输数据的方法和装置 |
US11388769B2 (en) * | 2019-06-18 | 2022-07-12 | Qualcomm Incorporated | Techniques for communicating management information for mechanisms using wireless communications |
CN111082904B (zh) * | 2019-12-06 | 2022-06-14 | 安徽芯智科技有限公司 | 一种基于rtos的rpc通信方法 |
US11323305B1 (en) * | 2021-06-22 | 2022-05-03 | Juniper Networks, Inc. | Early detection of telemetry data streaming interruptions |
CN114928596B (zh) * | 2022-04-20 | 2024-06-21 | 上海昱极科技有限公司 | 微服务通信过程中数据传输方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231781A (zh) * | 2008-01-25 | 2008-07-30 | 华中科技大学 | 工业无线传感网络中的数据处理***及其处理方法 |
CN103391282A (zh) * | 2013-06-25 | 2013-11-13 | 深圳市国电科技通信有限公司 | 在数据链路层实现用电信息采集***数据传输的方法 |
CN105427571A (zh) * | 2015-12-31 | 2016-03-23 | 天津市赛鸣科技有限公司 | 一种双信道通信的远程抄表监控分析*** |
CN205486716U (zh) * | 2015-12-31 | 2016-08-17 | 天津市赛鸣科技有限公司 | 一种智能远程抄表监控分析*** |
CN105893629A (zh) * | 2016-05-25 | 2016-08-24 | 江苏斯因信息科技有限公司 | 基于物联网与云计算的能源监管***及其监管软件 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483379B2 (en) * | 2002-05-17 | 2009-01-27 | Alcatel Lucent | Passive network monitoring system |
CN102014110A (zh) * | 2009-09-08 | 2011-04-13 | 华为技术有限公司 | 认证通信流量的方法、通信***和防护装置 |
US8990342B2 (en) * | 2011-08-04 | 2015-03-24 | Wyse Technology L.L.C. | System and method for client-server communication facilitating utilization of network-based procedure call |
KR101258845B1 (ko) * | 2011-10-10 | 2013-05-06 | 고려대학교 산학협력단 | Tcp통신을 이용한 정보 저장방법 및 시스템 |
US20140266781A1 (en) * | 2013-03-12 | 2014-09-18 | Cool Earth Solar Inc. | Distributed wireless network for control systems |
EP2840752A1 (en) * | 2013-08-20 | 2015-02-25 | Telefonaktiebolaget L M Ericsson (publ) | Real time communication over TCP |
CN110120854B (zh) * | 2018-02-07 | 2021-08-31 | 华为技术有限公司 | 传输数据的方法和装置 |
-
2018
- 2018-02-07 CN CN201810121338.0A patent/CN110120854B/zh active Active
-
2019
- 2019-02-06 EP EP19155790.9A patent/EP3525421B1/en active Active
- 2019-02-06 US US16/268,844 patent/US10701189B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231781A (zh) * | 2008-01-25 | 2008-07-30 | 华中科技大学 | 工业无线传感网络中的数据处理***及其处理方法 |
CN103391282A (zh) * | 2013-06-25 | 2013-11-13 | 深圳市国电科技通信有限公司 | 在数据链路层实现用电信息采集***数据传输的方法 |
CN105427571A (zh) * | 2015-12-31 | 2016-03-23 | 天津市赛鸣科技有限公司 | 一种双信道通信的远程抄表监控分析*** |
CN205486716U (zh) * | 2015-12-31 | 2016-08-17 | 天津市赛鸣科技有限公司 | 一种智能远程抄表监控分析*** |
CN105893629A (zh) * | 2016-05-25 | 2016-08-24 | 江苏斯因信息科技有限公司 | 基于物联网与云计算的能源监管***及其监管软件 |
Non-Patent Citations (1)
Title |
---|
gRPC Network Management Interface (gNMI) draft-openconfig-rtgwg-gnmi-spec-00.txt;SHAKIR R 等;《https://tools.ietf.org/html/draft-openconfig-rtgwg-gnmi-spec-00》;20170317;第1-37页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110120854A (zh) | 2019-08-13 |
US20190245948A1 (en) | 2019-08-08 |
US10701189B2 (en) | 2020-06-30 |
EP3525421B1 (en) | 2020-08-26 |
EP3525421A1 (en) | 2019-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110120854B (zh) | 传输数据的方法和装置 | |
US11153041B2 (en) | Packet transmission method and user equipment | |
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
US8799504B2 (en) | System and method of TCP tunneling | |
US9003053B2 (en) | Message acceleration | |
CN113841367B (zh) | 用于远程直接数据存取的设备和方法 | |
CN111818040A (zh) | 物联网传输标准协议实现通信方法 | |
WO2018112327A1 (en) | Methods of concurrency control for block transfer in coap publish-subscribe architecture | |
CN107154917B (zh) | 数据传输方法及服务器 | |
CN114979839A (zh) | 一种传输控制协议代理方法及通信装置 | |
CN102055774B (zh) | 基于包处理的http服务器及其数据处理方法 | |
EP3672189B1 (en) | Data transmission method, device and system | |
WO2018137218A1 (zh) | 一种数据传输方法、数据接收设备及数据发送设备 | |
CN107046452A (zh) | 一种数据高带宽高可靠性传输方法 | |
CN106576085B (zh) | 发射控制协议(tcp)确认(ack)包抑制 | |
WO2017067224A1 (zh) | 一种报文处理方法及装置 | |
CN113424578A (zh) | 一种传输控制协议加速方法和装置 | |
CN111431842A (zh) | 一种用于专网环境的串口终端无线传输方法 | |
CN117062257B (zh) | 基于多通道的数据传输方法、终端设备以及目标网关 | |
WO2024130615A1 (zh) | 一种数据传输方法及相关装置 | |
CN109792408B (zh) | 用于数据网络中的传输连接的高效管理的网关 | |
CN116055582A (zh) | 一种专用网络报文tcp分段方法及设备 | |
CN116032807A (zh) | 一种探测方法、装置、电子设备及存储介质 | |
JP2022122008A (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 |