数据传输方法及设备与流程

文档序号:11964637阅读:149来源:国知局
数据传输方法及设备与流程
本发明实施例涉及通信技术领域,并且更具体地,涉及数据传输方法及设备。

背景技术:
为了在特定节点对网络数据的传输进行监控或处理,引入了跨连接网络装置,如传输控制协议(TransmissionControlProtocol,TCP)代理(Proxy)。TCP代理分别与服务器和客户端连接,实现网络数据的转发和处理,其中,TCP代理转发的网络数据包括普通数据和紧急数据。在现有的机制中,由于数据报文格式中的紧急指针(UrgentPointer)信息和紧急指针所指向的数据(上述紧急数据)只在应用层进行解析,其中,紧急指针信息包括紧急标志(报文格式中的URG标志位),紧急数据起始序列号(报文格式中的TCP报文序列号)和紧急数据结束位置(报文格式中的紧急指针)。但是,TCP代理并不关心上层应用,对紧急指针信息和紧急数据直接转发,导致数据处理不够灵活。

技术实现要素:
本发明实施例提供一种数据传输方法及设备,能够提高数据处理的灵活性。第一方面,提供了一种数据传输方法,该方法包括:传输控制协议TCP代理接收网络数据,所述网络数据携带紧急指针信息和紧急数据;所述TCP代理获取所述紧急指针信息和所述紧急数据;所述TCP代理根据所述紧急指针信息对所述紧急数据进行数据处理获得处理后的紧急数据;所述TCP代理在报文中填充所述紧急指针信息和所述处理后的紧急数据,并转发所述报文。结合第一方面,在第一方面的另一种实现方式中,所述报文为TCP报文,所述TCP代理在报文中填充所述紧急指针信息和所述处理后的紧急数据,包括:所述TCP代理将所述紧急指针信息中的紧急标志填充在所述TCP报文的TCP选项中,并将所述紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及所述处理后的紧急数据填充在所述TCP报文的数据区紧急数据域中。结合第一方面或其上述实现方式中的任一种实现方式,在第一方面的另一种实现方式中,所述报文为TCP报文,所述TCP代理在报文中填充所述紧急指针信息和所述处理后的紧急数据,包括:所述TCP代理将所述TCP报文中的紧急指针URG标志置位,将所述紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及所述处理后的紧急数据填充在所述TCP报文的数据区紧急数据域中。结合第一方面或其上述实现方式中的任一种实现方式,在第一方面的另一种实现方式中,在所述TCP报文的数据区紧急数据域中还包括所述TCP代理接收到所述紧急数据时,所述紧急数据在数据流中相对于普通数据的位置的信息。结合第一方面或其上述实现方式中的任一种实现方式,在第一方面的另一种实现方式中,所述TCP代理在报文中填充所述紧急指针信息和所述处理后的紧急数据,包括:所述TCP代理将所述报文中的消息类型标识设置为所述紧急指针信息中的紧急标志,将所述紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及所述紧急数据填充在所述报文的载荷中,所述报文包括TCP报文或用户数据报协议UDP报文。结合第一方面或其上述实现方式中的任一种实现方式,在第一方面的另一种实现方式中,所述网络数据还携带普通数据且所述报文还包括所述普通数据。结合第一方面或其上述实现方式中的任一种实现方式,在第一方面的另一种实现方式中,所述对所述紧急数据进行数据处理,包括:对所述紧急数据进行压缩或解压,对所述紧急数据进行去重或恢复,或者对所述紧急数据进行加密或解密。第二方面,提供了一种传输控制协议TCP代理,该设备包括:接收单元,用于接收网络数据,所述网络数据携带紧急指针信息和紧急数据;获取单元,用于获取所述接收单元接收的所述紧急指针信息和所述紧急数据;处理单元,用于根据所述获取单元获取的所述紧急指针信息对所述获取单元获取的所述紧急数据进行数据处理获得处理后的紧急数据;填充单元,用于在报文中填充所述紧急指针信息和所述处理单元处理的所述处理后的紧急数据;发送单元,用于转发所述报文。结合第二方面,在第二方面的另一种实现方式中,所述报文为TCP报文,所述填充单元具体用于:将所述紧急指针信息中的紧急标志填充在所述TCP报文的TCP选项中,并将所述紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及所述处理后的紧急数据填充在所述TCP报文的数据区紧急数据域中。结合第二方面或其上述实现方式中的任一种实现方式,在第二方面的另一种实现方式中,所述报文为TCP报文,所述填充单元具体用于:将所述TCP报文中的紧急指针URG标志置位,将所述紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及所述处理后的紧急数据填充在所述TCP报文的数据区紧急数据域中。结合第二方面或其上述实现方式中的任一种实现方式,在第二方面的另一种实现方式中,所述填充单元具体用于:将所述报文中的消息类型标识设置为所述紧急指针信息中的紧急标志,将所述紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及所述紧急数据填充在所述报文的载荷中,所述报文包括TCP报文或用户数据报协议UDP报文。结合第二方面或其上述实现方式中的任一种实现方式,在第二方面的另一种实现方式中,所述处理单元具体用于:对所述紧急数据进行压缩或解压,对所述紧急数据进行去重或恢复,或者对所述紧急数据进行加密或解密。本发明实施例通过TCP代理获取接收到的网络数据中所携带的紧急指针信息和紧急数据,根据紧急指针信息对紧急数据进行数据处理获得处理后的紧急数据,在报文中填充紧急指针信息和处理后的紧急数据,并转发该报文,从而优化网络数据的处理,有效地提高数据处理的灵活性。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一个实施例的数据传输方法的流程图。图2是本发明一个实施例的数据传输方法的过程的示意性流程图。图3是本发明一个实施例的TCP代理的结构框图。图4是本发明另一个实施例的TCP代理的结构框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1是本发明一个实施例的数据传输方法的流程图。图1的方法由TCP代理执行。101,传输控制协议TCP代理接收服务器或客户端发送的网络数据,网络数据携带紧急指针信息和紧急数据。102,TCP代理获取紧急指针信息和紧急数据。103,TCP代理根据紧急指针信息对紧急数据进行数据处理获得处理后的紧急数据。104,TCP代理在报文中填充紧急指针信息和处理后的紧急数据,并转发报文。本发明实施例通过TCP代理获取接收到的网络数据中所携带的紧急指针信息和紧急数据,根据紧急指针信息对紧急数据进行数据处理获得处理后的紧急数据,在报文中填充紧急指针信息和处理后的紧急数据,并转发该报文,从而优化网络数据的处理,有效地提高数据处理的灵活性。可选地,作为一个实施例,在步骤103中,对紧急数据进行处理包括但不限于:对紧急数据进行压缩或解压,对紧急数据进行去重或恢复,或者对紧急数据进行加密或解密等处理。例如,可以根据紧急数据量的大小确定是否对紧急数据进行处理,当根据紧急指针信息确定紧急数据的长度大于或等于某一阈值(如一个最大报文段长度(MaxSegmentSize,MSS))时,则对该紧急数据进行压缩或去重。这样,减少数据的传输量,能够有效地利用资源,提高紧急数据的传输速率。又例如,当根据紧急指针信息(包括紧急标志、紧急数据起始序列号和紧急数据结束位置)确定紧急数据的长度小于某一阈值时,可以将该紧急数据在数据TCP代理层直接转发,可选地,无需对普通数据处理完后再转发紧急数据。因此,能够使得客户端或服务器及时处理紧急数据。应理解,上述例子仅仅是示例性的,本发明实施例TCP代理如何处理紧急数据获得处理后的紧急数据并不限定。进一步地,可以并行处理网络数据中的普通数据,可选地,当发现网络数据携带有紧急数据时,可以不再对网络数据中的普通数据进行缓存,并行处理紧急数据和普通数据(如对普通数据进行去重处理)。在步骤103之后,可以同时转发紧急数据和普通数据。当然,也可以分别单独处理网络数据中的普通数据和紧急数据。因此,可以基于紧急数据的处理情况对普通数据进行处理,能够提高数据处理的灵活性。本发明实施例对此并不限定。可选地,作为另一个实施例,在步骤104中,TCP代理可以根据数据转发方式在报文中填充紧急指针信息和进行处理后的紧急数据,转发该报文。可选地,数据转发方式可以是本发明提供的TCP选项方式、改进的TCP紧急方式、或者私有消息方式。当然,数据转发方式也可以采用现有的TCP紧急方式。应理解,本发明实施例对此并不限定。还应理解,本发明实施例对报文的形式并不限定,报文可以是TCP报文,也可以是用户数据报协议(UserDatagramProtocol,UDP)报文,等等。具体地,在TCP选项方式中,上述报文为TCP报文,TCP代理将紧急指针信息中的紧急标志填充在TCP报文的TCP选项(option)中,并将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及处理后的紧急数据填充在TCP报文的数据区紧急数据域中。在改进的TCP紧急方式中,上述报文为TCP报文,TCP代理将TCP报文中的紧急指针URG标志置位(即表示紧急指针信息中的紧急标志)、紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及处理后的紧急数据填充在TCP报文的数据区紧急数据域中。进一步地,在TCP报文的数据区紧急数据域中还可以包括TCP代理接收到紧急数据时,紧急数据在数据流中相对于普通数据的位置的信息。在私有消息方式中,报文可以是TCP报文或UDP报文,将报文中的消息类型标识设置为紧急指针信息中的紧急标志,将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及紧急数据填充在报文的载荷中。现有的TCP紧急方式可参考现有技术,此处不再赘述。可选地,可以在TCP代理中预先设置上述一种或多种数据转发方式。TCP代理可以根据紧急数据的情况选择紧急指针信息和紧急数据的数据转发方式,或者可以根据数据流的上下文信息选择紧急指针信息和紧急数据的数据转发方式。例如,当紧急数据的长度大于或等于某一阈值(如一个MSS的长度)时,则可以选择TCP选项方式、或者私有消息方式,或者改进的紧急方式转发经压缩处理后的紧急数据。又例如,当紧急数据的长度小于某一阈值(如一个MSS的长度)时,则可以选择改进的TCP紧急方式或者现有的TCP紧急方式直接转发该紧急数据。可选地,还可以在上述报文中填充普通数据,即TCP代理将紧急数据和普通数据一起转发出去。例如,当对紧急数据和接收到的普通数据并行进行去重处理时,可以选择TCP紧急方式将经去重处理后的紧急数据和普通数据一起打包转发出去。如果采用现有技术的TCP紧急方式转发经过处理后的网络数据,将会改变网络数据的传输顺序,导致紧急数据在数据流中的相对于普通数据的位置发生改变,甚至丢失紧急数据。通过本发明实施例提供的数据转发方式能够明确紧急数据的传输顺序和紧急数据在数据流中相对于普通数据的位置,避免紧急数据的丢失。另外,本发明的实施例还可以在转发报文之前对紧急数据进行加密,提高了数据传输的安全性。需要说明的是,本发明实施例的客户端和服务器之间可以有1个或多个TCP代理,每个TCP代理能够实现网络数据的处理和转发,当客户端和服务器之间具有多个TCP代理时,相邻的两个TCP代理可以预先协同采用可以接受的数据转发方式。下面结合具体的例子详细描述本发明实施例。图2是本发明一个实施例的数据传输方法的过程的示意性流程图。201,TCP代理接收网络数据。具体地,由TCP代理中的TCPIP栈(Stack)实现网络数据的接收。202,TCP代理从步骤201中接收的网络数据中获取紧急指针和紧急数据。具体地,TCP代理中的TCP代理层从TCPIP栈接收的网络数据中获取紧急指针和紧急数据。203,TCP代理对紧急数据进行数据处理获得处理后的紧急数据。可选地,对紧急数据进行处理包括但不限于:对紧急数据进行压缩或解压,对紧急数据进行去重或恢复,或者对紧急数据进行加密或解密等处理。例如,可以根据紧急数据量的大小确定是否对紧急数据进行处理,当根据紧急指针信息确定紧急数据的长度大于或等于某一阈值(如一个MSS长度)时,则对该紧急数据进行压缩或去重。这样,减少数据的传输量,能够有效地利用资源,提高紧急数据的传输速率。又例如,当根据紧急指针信息确定紧急数据的长度小于某一阈值时,可以将该紧急数据在数据TCP代理层直接转发,可选地,无需对普通数据处理完后再转发紧急数据。因此,能够使得客户端或服务器及时处理紧急数据。应理解,上述例子仅仅是示例性的,本发明实施例TCP代理如何处理紧急数据获得处理后的紧急数据并不限定。可选地,TCP代理还可以对网络数据中的普通数据进行处理(步骤204)。进一步地,可以在处理紧急数据的同时并行处理网络数据中的普通数据。例如,当发现网络数据携带有紧急数据时,可以不再对网络数据中的普通数据进行缓存,并行处理紧急数据和普通数据(如对普通数据进行去重处理)。当然,也可以分别单独处理网络数据中的普通数据和紧急数据。因此,可以基于紧急数据的处理情况对普通数据进行处理,能够提高数据处理的灵活性。本发明实施例对此并不限定。具体地,由TCP代理中的数据处理(DataProcess)模块实现网络数据(网络数据或紧急数据)的数据处理。205,TCP代理选择数据转发方式。具体地,由数据处理模块选择数据转发方式。数据转发方式可以是本发明提供的TCP选项方式、改进的TCP紧急方式、或者私有消息方式。具体的实施方式可以参考上述,此处不再赘述。例如,数据转发方式可以示意性地(以表格形式)表示如下:通过本发明实施例提供的数据转发方式能够明确紧急数据的传输顺序和紧急数据在数据流中相对于普通数据的位置,避免紧急数据的丢失,并且还能够实现紧急数据的加密,提高数据传输的安全性。当然,数据转发方式也可以采用现有的TCP紧急方式。应理解,本发明实施例对此并不限定。206,TCP代理转发报文。具体地,数据处理模块将报文通过TCP代理层,从TCPIP栈转发出去。报文可以是TCP报文,也可以是UDP报文。TCP根据步骤205选择的数据转发格式将紧急指针信息和紧急数据填充在报文中,转发该报文。可选地,还可以在上述报文中填充普通数据,即TCP代理将紧急数据和普通数据一起转发出去。例如,当对紧急数据和接收到的普通数据并行进行去重处理时,可以选择TCP紧急方式将经去重处理后的紧急数据和普通数据一起打包转发出去。可选地,TCP代理还可以分别单独转发普通数据和紧急数据。应理解,本发明实施例对此并不限定。图3是本发明一个实施例的TCP代理的结构框图。图3的TCP代理300包括接收单元301,获取单元302、处理单元303、填充单元304和发送单元305。接收单元301,用于接收网络数据,网络数据携带紧急指针信息和紧急数据。获取单元302,用于获取接收单元302接收的紧急指针信息和紧急数据。处理单元303,用于根据获取单元302获取的紧急指针信息对获取单元302获取的紧急数据进行数据处理获得处理后的紧急数据。填充单元304,用于在报文中填充获取单元302获取的紧急指针信息和处理单元303处理的处理后的紧急数据。发送单元305,用于转发报文。本发明实施例通过TCP代理获取接收到的网络数据中所携带的紧急指针信息和紧急数据,根据紧急指针信息对紧急数据进行数据处理获得处理后的紧急数据,在报文中填充紧急指针信息和处理后的紧急数据,并转发该报文,从而优化网络数据的处理,有效地提高数据处理的灵活性。TCP代理300可实现图1和图2的实施例,因此为避免重复,不再详细描述。可选地,作为一个实施例,填充单元304还可以用于根据数据转发方式在报文中填充紧急指针信息和处理后的紧急数据。可选地,数据转发方式可以是本发明提供的TCP选项方式、改进的TCP紧急方式、或者私有消息方式等。进一步地,数据转发方式为TCP选项方式且报文为TCP报文,填充单元304具体用于:将紧急指针信息中的紧急标志填充在TCP报文的TCP选项中,并将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及处理后的紧急数据填充在TCP报文的数据区紧急数据域中。数据转发方式为改进的TCP紧急方式且报文为TCP报文,填充单元304具体用于:将TCP报文中的紧急指针URG标志置位,将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及处理后的紧急数据填充在TCP报文的数据区紧急数据域中。数据转发方式为私有消息方式,填充单元304具体用于:将报文中的消息类型标识设置为紧急指针信息中的紧急标志,将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及紧急数据填充在报文的载荷中,报文可以是TCP报文,也可以是UDP报文。通过本发明实施例提供的数据转发方式能够明确紧急数据的传输顺序和紧急数据在数据流中相对于普通数据的位置,避免紧急数据的丢失,并且还能够实现紧急数据的加密,提高数据传输的安全性。当然,数据转发方式也可以采用现有的TCP紧急方式。应理解,本发明实施例对此并不限定。可选地,作为另一个实施例,处理单元303具体用于:对紧急数据进行压缩或解压,对紧急数据进行去重或恢复,或者对紧急数据进行加密或解密。具体实施例可以参考上述,此处不再赘述,应理解,本发明实施例TCP代理如何处理紧急数据并不限定。本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。图4是本发明又一个实施例的TCP代理的结构框图,在该实施例中,设备400包括处理器401,存储器402,发送器403和接收器404。处理器401控制设备400的操作,处理器401还可以称为CPU。存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402的一部分还可以包括非易失行随机存取存储器(NVRAM)。处理器401,存储器402,发送器403和接收器404通过总线系统410耦合在一起,其中总线系统410除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统410。上述本发明实施例揭示的方法可以应用上述的设备400。其中,处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。接收器404,用于接收网络数据,网络数据携带紧急指针信息和紧急数据。处理器401,用于获取接收器404接收的紧急指针信息和紧急数据;还用于根据获取的紧急指针信息对获取的紧急数据进行数据处理获得处理后的紧急数据;还用于在报文中填充获取的紧急指针信息和处理后的紧急数据。发送器403,用于转发报文。本发明实施例通过TCP代理获取接收到的网络数据中所携带的紧急指针信息和紧急数据,根据紧急指针信息对紧急数据进行数据处理获得处理后的紧急数据,在报文中填充紧急指针信息和处理后的紧急数据,并转发该报文,从而优化网络数据的处理,有效地提高数据处理的灵活性。设备400可实现图1和图2的实施例,因此为避免重复,不再详细描述。可选地,作为一个实施例,处理器401还可以用于根据数据转发方式在报文中填充紧急指针信息和处理后的紧急数据。可选地,数据转发方式可以是本发明提供的TCP选项方式、改进的TCP紧急方式、或者私有消息方式等。进一步地,数据转发方式为TCP选项方式且报文为TCP报文,处理器401具体用于:将紧急指针信息中的紧急标志填充在TCP报文的TCP选项中,并将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及处理后的紧急数据填充在TCP报文的数据区紧急数据域中。数据转发方式为改进的TCP紧急方式且报文为TCP报文,处理器401具体用于:将TCP报文中的紧急指针URG标志置位,将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及处理后的紧急数据填充在TCP报文的数据区紧急数据域中。数据转发方式为私有消息方式,处理器401具体用于:将报文中的消息类型标识设置为紧急指针信息中的紧急标志,将紧急指针信息中的紧急数据起始序列号和紧急数据结束位置,以及紧急数据填充在报文的载荷中,报文可以是TCP报文,也可以是UDP报文。通过本发明实施例提供的数据转发方式能够明确紧急数据的传输顺序和紧急数据在数据流中相对于普通数据的位置,避免紧急数据的丢失,并且还能够实现紧急数据的加密,提高数据传输的安全性。当然,数据转发方式也可以采用现有的TCP紧急方式。应理解,本发明实施例对此并不限定。可选地,作为另一个实施例,处理器401具体用于:对紧急数据进行压缩或解压,对紧急数据进行去重或恢复,或者对紧急数据进行加密或解密。具体实施例可以参考上述,此处不再赘述,应理解,本发明实施例TCP代理如何处理紧急数据并不限定。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1