CN109587083B - 数据传输方法及相关装置 - Google Patents

数据传输方法及相关装置 Download PDF

Info

Publication number
CN109587083B
CN109587083B CN201811470222.4A CN201811470222A CN109587083B CN 109587083 B CN109587083 B CN 109587083B CN 201811470222 A CN201811470222 A CN 201811470222A CN 109587083 B CN109587083 B CN 109587083B
Authority
CN
China
Prior art keywords
virtual router
switch
buffer
data packet
data
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
Application number
CN201811470222.4A
Other languages
English (en)
Other versions
CN109587083A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811470222.4A priority Critical patent/CN109587083B/zh
Publication of CN109587083A publication Critical patent/CN109587083A/zh
Application granted granted Critical
Publication of CN109587083B publication Critical patent/CN109587083B/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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

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

Abstract

本申请提供了一种数据传输方法及装置,应用于交换机,上述交换机包括虚拟路由器、虚拟路由器总机以及第一缓冲区,上述方法包括:上述交换机的虚拟路由器接收来自终端设备的第一数据包;上述交换机的虚拟路由器将上述第一数据包的源网际协议IP地址替换成预设的IP地址,得到第二数据包;上述交换机的虚拟路由器将上述第二数据包存储到上述第一缓冲区,上述第一缓冲区用于存储上述交换机的虚拟路由器发往上述交换机的虚拟路由器总机的数据;上述交换机的虚拟路由器总机从上述第一缓冲区中读取上述第二数据包。实施本申请,可以降低硬件成本,提高数据传输的效率和稳定性。

Description

数据传输方法及相关装置
技术领域
本发明涉及计算机领域,尤其涉及一种数据传输方法及装置。
背景技术
目前,互联网已经成为人们日常生活中不可缺少的一部分。虚拟私有云(VirtualPrivate Cloud,VPC)是互联网通讯的重要组成部分。通过VPC技术可以从公有云中划分出多个VPC,每个VPC相互之间在逻辑上彻底隔离,用户可以在VPC内部设置网际协议(internet protocol,IP)地址范围、网段和路由表。为了保证网络安全,便于管理不同的主机,可以从VPC中划分出多个VPC子网。
在实际使用过程中,每个VPC子网对接一个路由器,路由器接收到VPC子网的数据包后将数据包的IP地址进行转换,将转换IP地址后的数据包转发给路由器总机。该路由器总机将来自多个路由器的数据包汇总后转发给公共服务器,从而实现VPC子网下的终端设备与公共服务器进行通讯。一方面,这种数据传输***需要耗费大量的硬件设备,硬件成本过高;另一方面,多个路由器与路由器总机通过接入线传输数据,数据传输效率较低。
目前,通常在一台交换机上部署多台虚拟路由器,多台虚拟路由器接收到数据包之后转发给路由器总机,可以有效降低硬件成本。
这种执行方案需要部署实体的路由器总机,虚拟路由器需要通过接入线将数据发送给路由器总机,存在硬件成本过高,数据传输效率低等问题。
发明内容
本申请提出一种数据传输方法及相关装置,可以降低硬件成本,提高数据传输的效率和稳定性。
第一方面,本申请提出一种数据传输方法,应用于交换机,上述交换机包括虚拟路由器、虚拟路由器总机以及第一缓冲区,上述方法包括:
上述交换机的虚拟路由器接收来自终端设备的第一数据包;
上述交换机的虚拟路由器将上述第一数据包的源网际协议IP地址替换成预设的IP地址,得到第二数据包;
上述交换机的虚拟路由器将上述第二数据包存储到上述第一缓冲区,上述第一缓冲区用于存储上述交换机的虚拟路由器发往上述交换机的虚拟路由器总机的数据;
上述交换机的虚拟路由器总机从上述第一缓冲区中读取上述第二数据包。
实施本申请实施例,将虚拟路由器和虚拟路由器总机部署在同一台交换机上,虚拟路由器通过缓冲区快速将数据包发送给虚拟路由器总机,可以降低硬件成本,提高数据传输的效率。
结合第一方面,在一种可能的实现方式中,在上述交换机的虚拟路由器将上述第二数据包发往第一缓冲区之前,还包括:
上述交换机的虚拟路由器确定上述第一缓冲区的剩余存储空间是否低于第一阈值;
若低于第一阈值,则暂停存储进程,上述存储进程为上述交换机的虚拟路由器中用于将数据存储到上述第一缓冲区的进程;
否则,则启动上述存储进程;
上述交换机的虚拟路由器将上述第二数据包存储到第一缓冲区,包括:
上述交换机的虚拟路由器通过上述存储进程将上述第二数据包存储到上述第一缓冲区。
结合第一方面,在一种可能的实现方式中,在上述交换机的虚拟路由器总机从第一缓冲区中读取第二数据包之前,还包括:
上述交换机的虚拟路由器总机确定上述第一缓冲区中数据包的剩余存储空间是否高于第二阈值;
若高于第二阈值,则暂停读取进程,上述读取进程为上述交换机的虚拟路由器总机中用于从上述第一缓冲区读取数据的进程;
否则,则启动读取进程;
上述交换机的虚拟路由器总机从上述第一缓冲区中读取上述第二数据包,包括:
上述交换机的虚拟路由器总机通过上述读取进程从上述第一缓冲区读取上述第二数据包。
在一种可能的实现方式中,上述交换机还包括第二缓冲区,上述第二缓冲区用于存储上述交换机的虚拟路由器总机发往上述交换机的虚拟路由器的数据,在上述交换机的虚拟路由器总机从上述第一缓冲区中读取上述第二数据包之后,上述方法还包括:
上述交换机的虚拟路由器总机对接收到的上述第二数据包进行校验,得到校验信息;
上述交换机的虚拟路由器总机将上述校验信息发往上述第二缓冲区。
在一种可能的实现方式中,在上述交换机的虚拟路由器总机将上述校验信息发往上述第二缓冲区之后,上述方法还包括:
上述交换机的虚拟路由器从上述第二缓冲区中读取上述校验信息;
上述交换机的虚拟路由器依据上述校验信息确定上述交换机的虚拟路由器总机接收到的上述第二数据包是否错误;
若错误,则将上述第二数据包重新发往第一缓冲区。
在一种可能的实现方式中,在将上述第二数据包重新发往第一缓冲区之前,还包括:
上述交换机的虚拟路由器将上述第二数据包发往备份区,上述备份区为上述交换机的虚拟路由器中用于对数据包进行备份的存储区域。
结合第二方面,在一种可能的实现方式中,上述交换机的虚拟路由器确定上述第一缓冲区的剩余存储空间是否低于第一阈值,包括:
上述虚拟路由器可以以预设时间为周期获取上述第一缓冲区的剩余存储空间,并确定上述第一缓冲区的剩余存储空间是否低于第一阈值。
在一种可能的实现方式中,上述方法还包括:
上述交换机的虚拟路由器从上述第二缓冲区中读取故障信息,上述故障信息用于表示上述交换机的虚拟路由器总机处于故障状态;
上述交换机的虚拟路由器若读取到上述故障信息,则关闭存储进程。
实施本申请实施例,可以在虚拟路由器总机出现故障时及时关闭发送端口,避免数据丢失和传输错误,提高数据传输的稳定性,同时节约交换机的资源。
第二方面,本申请提出一种数据传输装置,其特征在于,包括:
接收单元,用于接收来自终端设备的第一数据包;
转换单元,用于将上述第一数据包的源网际协议IP地址替换成预设的IP地址,得到第二数据包;
存储单元,用于将上述第二数据包存储到上述第一缓冲区,上述第一缓冲区用于存储上述交换机的虚拟路由器发往上述交换机的虚拟路由器总机的数据;
读取单元,用于从上述第一缓冲区中读取上述第二数据包。
结合第二方面,在一种可能的实现方式中,上述装置还包括:
第一确定单元,用于确定上述第一缓冲区的剩余存储空间是否低于第一阈值;
第一暂停单元,用于在上述第一缓冲区的剩余存储空间低于第一阈值时,暂停存储进程,上述存储进程为交换机的虚拟路由器中用于将数据存储到上述第一缓冲区的进程;
第一启动单元,用于在上述第一缓冲区的剩余存储空间不低于第一阈值时,启动上述存储进程;
上述存储单元具体用于通过上述存储进程向上述第一缓冲区存储上述第二数据包。
结合第二方面,在一种可能的实现方式中,上述装置还包括:
第二确定单元,用于确定上述第一缓冲区中的剩余存储空间是否高于第二阈值;
第二暂停单元,用于在上述第一缓冲区中的剩余存储空间高于第二阈值时,暂停读取进程,上述读取进程为上述交换机的虚拟路由器总机中用于从上述第一缓冲区读取数据的进程;
第二启动单元,用于在上述第一缓冲区中的剩余存储空间不高于第二阈值时,启动上述读取进程;
上述读取单元具体用于通过上述读取进程从上述第一缓冲区读取上述第二数据包。
结合第二方面,在一种可能的实现方式中,上述装置还包括:
校验单元,用于对从上述第一缓冲区中读取到的第二数据包进行校验,得到校验信息;
第二存储单元,用于将上述校验信息存储到第二缓冲区。
在一种可能的实现方式中,上述装置还包括:
第二读取单元,用于从上述第二缓冲区中读取校验信息;
第三确定单元,用于依据上述校验信息确定上述交换机的虚拟路由器总机接收到的上述第二数据包是否错误;
关闭单元,用于在确定上述交换机的虚拟路由器总机接收到的上述第二数据包为错误的情况下,关闭存储进程。
第三方面,本申请提出一种数据传输装置,包括处理器、存储器和收发器;上述处理器、上述存储器和上述收发器通过总线相互连接;其中,上述收发器用于接收和发送数据包,上述存储器用于存储计算机程序,上述计算机程序包括程序指令,上述处理器被配置用于调用上述程序指令,执行上述第一方面上述的方法。
第四方面,本申请提出一种计算机可读存储介质,其特征在于,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,使上述处理器执行如第一方面上述的方法。
第五方面,本申请实施例提供了一种包含程序指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
实施本申请,可以降低硬件成本,提高数据传输的效率和稳定性。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请提出的一种数据传输***的结构示意图;
图2是本申请提出的一种数据传输方法的流程图;
图3是本申请提出的另一种数据传输方法的流程图;
图4是本申请提出的另一种数据传输方法的流程图;
图5是本申请提出的一种数据传输装置的结构示意图;
图6是本申请提出的另一种数据传输装置的结构示意图;
图7是本申请提出的另一种数据传输装置的结构示意图;
图8是本申请提出的另一种数据传输装置的结构示意图。
具体实施方式
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法或设备固有的其他步骤或单元。
本申请提出一种数据传输方法及装置,可以降低硬件成本,提高数据传输的效率和稳定性。下面将结合附图对本申请实施例进行描述。
图1是本申请提出的一种数据传输***框架图。从图1可以看出,该***包括至少一个终端设备101、交换机102以及公共服务器103。其中,上述交换机102包括至少一个虚拟路由器102A、至少一个第一缓冲区102B、至少一个第二缓冲区102D和虚拟路由器总机102C。上述交换机102的虚拟路由器102A接收终端设备101发送的第一数据包,并将上述第一数据包的源IP地址替换成预设的IP地址,得到第二数据包,再将上述第二数据包存储到第一缓冲区102B中。上述交换机102的虚拟路由器总机102C从上述第一缓冲区102B中读取数据包,再将上述数据包转发给公共服务器103。
在一种可能的实现方式中,上述虚拟路由器总机102C可以将数据信息通过上述第二缓冲区102D发送给虚拟路由器102B。上述虚拟路由器总机102C可以将数据信息存储到上述第二缓冲区102D中,上述虚拟路由器102A从上述第二缓冲区102D中读取该数据信息。其中,上述数据信息可以包括来自公共服务器的数据包、上述第二数据包的校验信息以及上述虚拟路由器总机102C的故障信息中的一项或多项。
实施本申请实施例,虚拟路由器和虚拟路由器总机部署在同一台交换机中,可以降低硬件成本;虚拟路由器和虚拟路由器总机之间通过缓冲区进行数据交流,可以加快数据传输效率,提高数据传输的稳定性。
图2是本申请提出的一种数据传输方法的流程图。上述方法应用于交换机,上述交换机包括虚拟路由器、虚拟路由器总机以及第一缓冲区,上述方法包括以下内容:
201、上述交换机的虚拟路由器接收来自终端设备的第一数据包。
上述交换机是为两个网络节点提供信号通信通道的硬件设备,上述交换机可以搭载合适的操作***和以及各种软件。上述终端设备可以包括具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS)等。其中,上述终端设备可能位于同一VPC子网中。
上述虚拟路由器部署在交换机上,拥有独立的路由表、输入/输出(Input/Out,I/O)端口、缓存以及地址空间等,可以实现数据包的转发和数据包IP地址的替换。在一种可能的实现方式中,上述虚拟路由器可能有多个,每个虚拟路由器可以分别对接不同VPC子网下的终端设备。
具体的,上述第一数据包的包头可以包含虚拟路由器的网际协议(InternetProtocol,IP)地址、终端设备的IP地址和目标设备的IP地址中的一项或者多项,上述第一数据包的净荷为待传输的数据信息。
在一种可能的实现方式中,若有多个同一VPC子网下的终端设备向上述虚拟路由器发送数据包,上述虚拟路由器可以按照顺序与各个终端设备建立连接,依次接收终端设备的数据包。或者,上述虚拟路由器可以开启多个接收线程,通过不同的接收端口同时接收来自各个终端设备的数据包,其中,线程与接收端口和终端设备之间一一对应。
202、上述交换机的虚拟路由器将上述第一数据包的源网际协议IP地址替换成预设的IP地址,得到第二数据包。
用户设置VPC子网的网段时,上述网段可能与其他VPC子网的网段相同。VPC子网给终端设备分配IP地址后,上述终端设备的IP地址可能与其他VPC子网下的终端设备具有相同的IP地址,导致服务端可能无法识别上述终端设备的IP地址。上述虚拟路由器可以将上述终端设备发送的数据包的IP地址替换成预设的IP,使得服务器可以识别上述终端设备。
具体的,上述虚拟路由器可以将上述第一数据包的源IP地址替换成具有唯一性的公有IP地址。举例来说,可以将上述第一数据包的IP地址替换成1.0.0.0至9.255.255.255之间的一个IP地址。
具体的,上述虚拟路由器可以保留上述第一数据包的源IP地址的一部分,根据预设的规则替换掉另一部分,获得预设的IP地址。在一种可能的实现方式中,上述虚拟路由器可以将上述第一数据包的源IP地址的网络号替换成公有IP地址的网络号,保留主机号。即将源IP地址的主机号与公有IP地址的网络号进行结合,得到预设的IP地址,再将源IP地址替换成上述预设IP地址。
203、上述交换机的虚拟路由器将上述第二数据包存储到上述第一缓冲区,上述第一缓冲区用于存储上述交换机的虚拟路由器发往上述交换机的虚拟路由器总机的数据。
可选的,上述第一缓冲区可以为队列数据结构。上述队列数据结构满足“先进先出”原则,即先存放进队列的数据包先被取出来。在一种可能的实现方式中,上述队列数据结构可以是环形队列,即上述虚拟路由器可以沿着环形队列循环写入数据,上述虚拟路由器总机沿着环形队列循环读取数据。上述第一缓冲区部署在上述交换机上,优选的部署在交换机的内存中,上述内存可以为高速随机存取存储器(random access memory,RAM)。
在一种可能的实现方式中,上述虚拟路由器在将上述第二数据包发往第一缓冲区之前,可以先判断上述第一缓冲区是否被填满。若上述第一缓冲区被填满,则暂停发送数据包的进程,等待缓冲区的数据包被读取之后,再继续向上述缓冲区写入数据。具体的,上述虚拟路由器可以计算上述第一缓冲区的剩余存储空间,若上述第一缓冲区的剩余存储空间为零,则暂停写入数据的进程。更具体的,若上述第一缓冲区为环形队列数据结构,上述虚拟路由器在访问环形队列的下一个地址所对应的存储空间时,若上述下一个地址所对应的存储空间被写入数据,则确定上述环形队列被填满,上述虚拟路由器可以暂停写入数据的进程。
204、上述交换机的虚拟路由器总机从上述第一缓冲区中读取上述第二数据包。
上述虚拟路由器总机部署在交换机中,可以从第一缓冲区中读取来自虚拟路由器的第二数据包,并将上述第二数据包发往公共服务器。
在一种可能的实现方式中,若上述交换机中部署多个虚拟路由器,上述多个虚拟路由器可分别对应一个第一缓冲区,上述虚拟路由器总机可从多个第一缓冲区中分别读取各个虚拟路由器发送的数据包。具体的,上述虚拟路由器总机可以创建多个读取线程,上述多个读取线程分别通过各个读取端口读取数据包,即一个读取进程对应一个读取端口和一个第一缓冲区。可选的,为了减少交换机的资源开销,上述虚拟路由器总机可以开启一个读取线程,以轮询的方式从各个第一缓冲区中读取数据包。在上述虚拟路由器总机从上述多个第一缓冲区中读取数据包后,将上述多个第一缓冲区的数据包发往公共服务器。
实施本申请实施例,可以降低硬件成本,提高数据传输的效率和稳定性。
图3是本申请提出的另一种数据传输方法的流程图。上述方法应用于交换机,上述交换机包括虚拟路由器、虚拟路由器总机、第一缓冲区以及第二缓冲区。上述方法包括以下内容:
301、交换机的虚拟路由器接收来自终端设备的第一数据包。
302、上述交换机的虚拟路由器将上述第一数据包的源IP地址替换成预设的IP地址,得到第二数据包。
303、上述交换机的虚拟路由器确定上述第一缓冲区的剩余存储空间是否低于第一阈值;若低于第一阈值,则暂停存储进程,上述存储进程为上述交换机的虚拟路由器中用于将数据存储到上述第一缓冲区的进程;否则,则启动上述存储进程。
在实际运行中,当上述第一缓冲区被数据填满时,若上述虚拟路由器继续向上述第一缓冲区写入数据,则上述第一缓冲区中原有的数据可能被覆盖,造成数据丢失问题。在第一缓冲区的剩余存储空间低于第一阈值时及时暂停向第一缓冲区存储数据包,可以避免原有的数据被覆盖。
在一种可能的实现方式中,上述交换机的虚拟路由器在存储数据包到上述第一缓冲区之前,上述方法还包括:上述虚拟路由器创建存储进程。
具体的,上述第一阈值可以是上述第一缓冲区总存储空间的指定比例。举例来说,上述第一阈值可以为第一缓冲区总存储空间的5%,当上述虚拟路由器确定上述第一缓冲区的剩余存储空间低于总存储空间的5%时,暂停存储进程。在一种可能的实现方式中,上述虚拟路由器可以在上述第一缓冲区被填满时(即剩余存储空间为零)暂停上述存储进程。
在一种可能的实现方式中,上述虚拟路由器可以将上述存储进程暂停预设时间,即上述虚拟路由器若检测到上述第一缓冲区的剩余存储空间低于第一阈值,则等待预设时间之后再继续向上述第一缓冲区存储数据包。
在一种可能的实现方式中,上述虚拟路由器可以以预设时间为周期获取上述第一缓冲区的剩余存储空间,并确定上述第一缓冲区的剩余存储空间是否低于第一阈值;若低于第一阈值,则暂停存储进程;否则,则启动上述存储进程。
304、上述交换机的虚拟路由器通过上述存储进程将上述第二数据包存储到上述第一缓冲区。
305、上述交换机的虚拟路由器总机确定上述第一缓冲区的剩余存储空间是否高于第二阈值;若高于第二阈值,则暂停读取进程;上述读取进程是上述交换机的虚拟路由器总机中用于从上述第一缓冲区中读取数据的进程;否则,则启动读取进程。
在一种可能的实现方式中,上述交换机的虚拟路由器总机启动读取进程之前,上述方法还包括:上述虚拟路由器总机创建读取进程。
具体的,上述第二阈值可以是第一缓冲区总存储空间的指定比例。举例来说,上述第二阈值可以为第一缓冲区总存储空间的5%,当上述虚拟路由器确定上述第一缓冲区的存储空间低于总存储空间的5%时,暂停存储进程。在一种可能的实现方式中,上述虚拟路由器可以在上述第一缓冲区被读取完时(即剩余存储空间为总存储空间)暂停上述存储进程。
在一种可能的实现方式中,上述虚拟路由器总机可以将上述读取进程暂停预设时间,即上述虚拟路由器总机若检测到上述第一缓冲区的剩余存储空间高于第二阈值,则等待预设时间之后再继续向上述第二缓冲区存储数据包。
在一种可能的实现方式中,上述虚拟路由器总机可以以预设时间为周期获取上述第一缓冲区的剩余存储空间,并确定上述第一缓冲区的剩余存储空间是否高于第二阈值;若高于第二阈值,则暂停读取进程;否则,则启动上述读取进程。
在本申请实施例,当上述第一缓冲区的数据被读取完时,若上述虚拟路由器总机继续向上述第一缓冲区读取数据,一方面可能造成读指针和写指针交叉,导致虚拟路由器和虚拟路由器总机不能正确读取和存储数据,另一方面会浪费交换机的资源。在第一缓冲区的剩余存储空间低于第二阈值时再开启读取进程,可以避免读取进程的读指针和写指针交叉带来的问题,还可以节约交换机资源。
306、上述交换机的虚拟路由器总机通过上述读取进程从上述第一缓冲区读取上述第二数据包。
307、上述交换机的虚拟路由器总机对接收到的上述第二数据包进行校验,得到校验信息;上述交换机的虚拟路由器总机将上述校验信息存储到上述第二缓冲区。
上述虚拟路由器总机接收到上述第二数据包之后,可以对上述数据包进行校验,获得校验信息,上述校验信息可以用于确定上述虚拟路由器总机接收到的数据包是否正确。具体的,对上述第二数据包进行校验的校验技术可以包括累加校验、异或校验、奇偶校验等。
以累加校验技术为例,上述虚拟路由器总机可以对上述数据包的数据以字节为单位进行相加,再将所得的和对256进行取模运算,得到的结果即为累加校验码。上述目标网关计算得到累加校验码后,将上述累加校验码发往上述第二缓冲区,以便上述虚拟路由器对上述累加校验码进行验证。
308、上述交换机的虚拟路由器从上述第二缓冲区中读取上述校验信息;上述交换机的虚拟路由器依据上述校验信息确定上述交换机的虚拟路由器总机接收到的上述第二数据包是否错误;若错误,则将上述第二数据包重新发往第一缓冲区。
上述虚拟路由器从第二缓冲区读取的数据包括上述校验信息,上述虚拟路由器获得校验信息之后,可以将上述校验信息与预设的校验信息模板进行对比,以确定上述虚拟路由器总机接收到的第二数据包是否错误。
以累加校验技术为例,上述虚拟路由器在发送第二数据包之前,可以将获取上述第二数据包的累加校验码作为预设的校验信息模板。上述虚拟路由器从上述第二缓冲区读取校验信息之后,与预设的校验信息模板进行对比,判断上述校验信息与上述预设的校验信息模板是否匹配。若匹配,则说明上述虚拟路由器总机接收到的数据包正确;否则,则说明上述虚拟路由器总机接收到的数据包不正确。
若上述虚拟路由器确定上述虚拟路由器总机接收到的第二数据包不正确,则将上述第二数据包重新存储到上述第二缓冲区。其中,在将上述第二数据包重新存储到上述第二缓冲区之前,上述虚拟路由器可以将上述第二数据包可以备份在上述虚拟路由器的备份区中,上述备份区可以为队列数据结构。
实施本申请实施例,可以降低硬件成本,提高数据传输的效率和稳定性,减少数据传输的错误率。
图4是本申请提出的另一种数据传输方法的流程图。上述方法应用于交换机,上述交换机包括虚拟路由器、虚拟路由器总机、第一缓冲区以及第二缓冲区。上述方法包括以下内容:
401、交换机的虚拟路由器接收来自终端设备的第一数据包。
402、上述交换机的虚拟路由器将上述第一数据包的源IP地址替换成公有IP地址,得到第二数据包。
403、上述交换机的虚拟路由器确定上述第一缓冲区是否被填满;若被填满,则暂停存储进程,上述存储进程为上述交换机的虚拟路由器中用于将数据存储到上述第一缓冲区的进程;否则,则启动上述存储进程。
举例来说,上述虚拟路由器可以读取上述第一缓冲区的字节数量,若上述第一缓冲区的字节数量等于上述第一缓冲区的总存储空间的字节数,则说明上述第一缓冲区被填满;若上述第一缓冲区的字节数量小于第一缓冲区的总存储空间的字节数,则说明上述第一缓冲区被填满。
又举例来说,若上述第一缓冲区为环形队列,上述虚拟路由器可以判断上述环形队列的下一个地址是否被写入数据。若被写入数据,则说明上述第一缓冲区已被填满。
404、上述交换机的虚拟路由器通过上述存储进程将上述第二数据包存储到上述第一缓冲区。
405、上述交换机的虚拟路由器总机确定上述第一缓冲区的数据量是否为零;若为零,则暂停读取进程;否则,则启动存储进程。
上述虚拟路由器总机可以读取上述第一缓冲区存储的数据的字节数,若上述字节数为零则暂停上述读取进程;否则,则启动上述读取进程。
在一种可能的实现方式中,上述虚拟路由器总机可以以预设时间为周期读取上述第一缓冲区存储的数据的字节数,确定上述第一缓冲区的数据量是否为零;若为零,则暂停读取进程;否则,则启动读取进程。
406、上述交换机的虚拟路由器总机通过上述读取进程从上述第一缓冲区读取上述第二数据包。
407、上述交换机的虚拟路由器总机对接收到的上述第二数据包进行累加校验,得到累加校验码;上述交换机的虚拟路由器总机将上述累加校验码存储到上述第二缓冲区。
上述虚拟路由器总机可以对上述第二数据包的数据以字节为单位进行相加,再将所得的和对256进行取模运算,得到的结果即为累加校验码。上述虚拟路由器总机获得上述累加校验码之后,将上述累加校验码存储到上述第二缓冲区。
408、上述交换机的虚拟路由器从上述第二缓冲区中读取上述累加校验码;上述交换机的虚拟路由器依据上述累加校验码确定上述交换机的虚拟路由器总机接收到的上述第二数据包是否错误;若错误,则将上述第二数据包重新存储到第一缓冲区。
上述虚拟路由器在将上述第二数据包存储到上述第一缓冲区之前,可以获取上述第二数据包的累加校验码作为校验信息模板。上述虚拟路由器在从上述第二缓冲区中读取上述累加校验码之后,可以将上述累加校验码与校验信息模板进行对比。若上述累加校验码与上述校验信息模板匹配,则确定上述虚拟路由器总机接收到的上述第二数据包正确;否则确定上述虚拟路由器总机接收到的上述第二数据包错误。
409、上述交换机的虚拟路由器从上述第二缓冲区读取故障信息,上述故障信息表示上述虚拟路由器总机处于故障状态;上述交换机的虚拟路由器若读取到上述故障信息,则关闭读取进程。
当上述虚拟路由器总机发生故障时,可以向上述第二缓冲区发送故障信息。或者,当上述第二缓冲区检测到虚拟路由器总机的读端口或者写端口异常关闭时,生成故障信息。
虚拟路由器若读取到上述故障信息,则关闭读取进程,避免数据丢失,同时节约交换机的资源。
实施本申请实施例,可以降低硬件成本,提高数据传输的效率和稳定性,减少数据传输的错误率,节约交换机的资源。
请参阅图5,图5是本申请实施例提供的一种数据传输装置的结构示意图,上述装置包括:
接收单元501,用于接收来自终端设备的第一数据包;
转换单元502,用于将上述第一数据包的源网际协议IP地址替换成预设的IP地址,得到第二数据包;
存储单元503,用于将上述第二数据包存储到上述第一缓冲区,上述第一缓冲区用于存储上述交换机的虚拟路由器发往上述交换机的虚拟路由器总机的数据;
读取单元504,用于从上述第一缓冲区中读取上述第二数据包。
如图6所示,上述装置还包括:
第一确定单元505,用于确定上述第一缓冲区的剩余存储空间是否低于第一阈值;
第一暂停单元506,用于在上述第一缓冲区的剩余存储空间低于第一阈值时,暂停存储进程,上述存储进程为交换机的虚拟路由器中用于将数据存储到上述第一缓冲区的进程;
第一启动单元507,用于在上述第一缓冲区的剩余存储空间不低于第一阈值时,启动上述存储进程;
第二确定单元508,用于确定上述第一缓冲区中的剩余存储空间是否高于第二阈值;
第二暂停单元509,用于在上述第一缓冲区中的剩余存储空间高于第二阈值时,暂停读取进程,上述读取进程为上述交换机的虚拟路由器总机中用于从上述第一缓冲区读取数据的进程;
第二启动单元510,用于在上述第一缓冲区中的剩余存储空间不高于第二阈值时,启动读取进程。
在一种可能的实现方式中,上述存储单元503具体用于通过上述存储进程将上述第二数据包存储到上述第一缓冲区。
在一种可能的实现方式中,上述读取单元504具体用于通过上述读取进程从上述第一缓冲区读取上述第二数据包。
如图7所示,上述装置还包括:
校验单元511,用于对从上述第一缓冲区中读取到的第二数据包进行校验,得到校验信息;
第二存储单元512,用于将上述校验信息存储到第二缓冲区。
在一种可能的实现方式中,上述装置还包括:
第二读取单元513,用于从上述第二缓冲区中读取校验信息;
第三确定单元514,用于依据上述校验信息确定上述交换机的虚拟路由器总机接收到的上述第二数据包是否错误;
关闭单元515,用于在上述交换机的虚拟路由器总机接收到的上述第二数据包为错误的情况下,关闭存储进程。
可理解,图5、图6和图7所示的数据传输装置的具体实现方式还可参考图2、图3和图4所示的方法,这里不再一一详述。
实施本申请实施例,可以降低硬件成本,提高数据传输的效率和稳定性,减少数据传输的错误率,节约硬件资源。
请参阅图8,图8是本申请实施例提供的另一种数据传输装置的结构示意图。该装置包括:至少一个处理器801,例如中央处理器(central processing unit,CPU),至少一个存储器802,至少一个收发器803和至少一个总线804。其中,上述总线804可以是一组并行的数据线,用于实现上述处理器801、上述存储器802和上述收发器803的相互连接;上述存储器802可以是高速随机存取存储器(random access memory,RAM),也可以是非易失性存储器(non-volatile memory),例如至少一个只读存储器(read only memory,ROM)。
具体的,上述收发器803可用于接收终端设备发送的数据包;用于将上述数据包发往公共服务器。
在一种可能的实现方式中,上述收发器803还可用于接收公共服务器发送的数据包,以及将上述数据包转发给终端设备,以实现终端设备和服务器之间的通讯。
在一种可能的实现方式中,上述存储器802中可以存储程序指令,上述处理器801可用于调用程序指令执行图2、图3和图4中所示的方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(read only memory,ROM)、随机存储器(random access memory,RAM)、可编程只读存储器(programmable read only memory,PROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、一次可编程只读存储器(one-time programmable read-only memory,OTPROM)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种数据传输方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据传输方法,其特征在于,应用于交换机,所述交换机包括虚拟路由器、虚拟路由器总机以及第一缓冲区,所述方法包括:
所述交换机的虚拟路由器接收来自终端设备的第一数据包;
所述交换机的虚拟路由器将所述第一数据包的源网际协议IP地址替换成具有唯一性的公有IP地址,或将所述第一数据包的源网际协议IP地址的网络号替换成公有IP地址的网络号并保留主机号,得到第二数据包;
所述交换机的虚拟路由器将所述第二数据包存储到所述第一缓冲区,所述第一缓冲区用于存储所述交换机的虚拟路由器发往所述交换机的虚拟路由器总机的数据;
所述交换机的虚拟路由器总机从所述第一缓冲区中读取所述第二数据包,并将所述第二数据包发往公共服务器。
2.根据权利要求1所述方法,其特征在于,在所述交换机的虚拟路由器将所述第二数据包存储到第一缓冲区之前,还包括:
所述交换机的虚拟路由器确定所述第一缓冲区的剩余存储空间是否低于第一阈值;
若低于第一阈值,则暂停存储进程,所述存储进程为所述交换机的虚拟路由器中用于将数据存储到所述第一缓冲区的进程;
否则,则启动所述存储进程;
所述交换机的虚拟路由器将所述第二数据包存储到第一缓冲区,包括:
所述交换机的虚拟路由器通过所述存储进程将所述第二数据包存储到所述第一缓冲区。
3.根据权要求1所述方法,其特征在于,在所述交换机的虚拟路由器总机从第一缓冲区中读取第二数据包之前,还包括:
所述交换机的虚拟路由器总机确定所述第一缓冲区中的剩余存储空间是否低于第二阈值;
若低于第二阈值,则暂停读取进程,所述读取进程为所述交换机的虚拟路由器总机中用于从所述第一缓冲区读取数据的进程;
否则,则启动读取进程;
所述交换机的虚拟路由器总机从所述第一缓冲区中读取所述第二数据包,包括:
所述交换机的虚拟路由器总机通过所述读取进程从所述第一缓冲区读取所述第二数据包。
4.根据权利要求1至3中任一项所述方法,其特征在于,所述交换机还包括第二缓冲区,所述第二缓冲区用于存储所述交换机的虚拟路由器总机发往所述交换机的虚拟路由器的数据,在所述交换机的虚拟路由器总机从所述第一缓冲区中读取所述第二数据包之后,所述方法还包括:
所述交换机的虚拟路由器总机对读取到的所述第二数据包进行校验,得到校验信息;
所述交换机的虚拟路由器总机将所述校验信息存储到所述第二缓冲区。
5.根据权利要求4所述方法,其特征在于,在所述交换机的虚拟路由器总机将所述校验信息发往所述第二缓冲区之后,还包括:
所述交换机的虚拟路由器从所述第二缓冲区中读取所述校验信息;
所述交换机的虚拟路由器依据所述校验信息确定所述交换机的虚拟路由器总机读取到的所述第二数据包是否错误;
若错误,则将所述第二数据包重新发往第一缓冲区。
6.一种数据传输装置,其特征在于,包括:
接收单元,用于接收来自终端设备的第一数据包;
转换单元,用于将所述第一数据包的源网际协议IP地址替换成具有唯一性的公有IP地址,或将所述第一数据包的源网际协议IP地址的网络号替换成公有IP地址的网络号并保留主机号,得到第二数据包;
存储单元,用于将所述第二数据包存储到第一缓冲区,所述第一缓冲区用于存储交换机的虚拟路由器发往交换机的虚拟路由器总机的数据;
读取单元,用于从所述第一缓冲区中读取所述第二数据包,并将所述第二数据包发往公共服务器。
7.根据权利要求6所述装置,其特征在于,还包括:
第一确定单元,用于确定所述第一缓冲区的剩余存储空间是否低于第一阈值;
第一暂停单元,用于在所述第一缓冲区的剩余存储空间低于第一阈值时,暂停存储进程,所述存储进程为交换机的虚拟路由器中用于将数据存储到所述第一缓冲区的进程;
第一启动单元,用于在所述第一缓冲区的剩余存储空间不低于第一阈值时,启动所述存储进程;
所述存储单元具体用于通过所述存储进程将所述第二数据包存储到所述第一缓冲区。
8.根据权利要求6所述装置,其特征在于,还包括:
第二确定单元,用于确定所述第一缓冲区中的剩余存储空间是否低于第二阈值;
第二暂停单元,用于在所述第一缓冲区中的剩余存储空间低于第二阈值时,暂停读取进程,所述读取进程为所述交换机的虚拟路由器总机中用于从所述第一缓冲区读取数据的进程;
第二启动单元,用于在所述第一缓冲区中的剩余存储空间不低于第二阈值时,启动读取进程;
所述读取单元具体用于通过所述读取进程从所述第一缓冲区读取所述第二数据包。
9.一种数据传输装置,其特征在于,包括处理器、存储器和收发器;所述处理器、所述存储器和所述收发器通过总线相互连接;其中,所述收发器用于接收和发送数据包,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如权利要求1至5任一项所述的方法。
CN201811470222.4A 2018-11-30 2018-11-30 数据传输方法及相关装置 Active CN109587083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811470222.4A CN109587083B (zh) 2018-11-30 2018-11-30 数据传输方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811470222.4A CN109587083B (zh) 2018-11-30 2018-11-30 数据传输方法及相关装置

Publications (2)

Publication Number Publication Date
CN109587083A CN109587083A (zh) 2019-04-05
CN109587083B true CN109587083B (zh) 2022-04-29

Family

ID=65927138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811470222.4A Active CN109587083B (zh) 2018-11-30 2018-11-30 数据传输方法及相关装置

Country Status (1)

Country Link
CN (1) CN109587083B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493227B (zh) * 2019-08-20 2021-12-24 上海集成电路研发中心有限公司 一种数据帧传输方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094659B1 (en) * 2007-07-09 2012-01-10 Marvell Israel (M.I.S.L) Ltd. Policy-based virtual routing and forwarding (VRF) assignment
CN103595772A (zh) * 2013-11-01 2014-02-19 浪潮电子信息产业股份有限公司 一种基于虚拟路由器的云数据中心网络部署方案
CN107229492A (zh) * 2017-05-17 2017-10-03 东软集团股份有限公司 服务器***的安装方法、装置、***、存储介质及设备
CN107846358A (zh) * 2016-09-19 2018-03-27 北京金山云网络技术有限公司 一种数据传输方法、装置及网络***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094659B1 (en) * 2007-07-09 2012-01-10 Marvell Israel (M.I.S.L) Ltd. Policy-based virtual routing and forwarding (VRF) assignment
CN103595772A (zh) * 2013-11-01 2014-02-19 浪潮电子信息产业股份有限公司 一种基于虚拟路由器的云数据中心网络部署方案
CN107846358A (zh) * 2016-09-19 2018-03-27 北京金山云网络技术有限公司 一种数据传输方法、装置及网络***
CN107229492A (zh) * 2017-05-17 2017-10-03 东软集团股份有限公司 服务器***的安装方法、装置、***、存储介质及设备

Also Published As

Publication number Publication date
CN109587083A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
JP7029471B2 (ja) アップリンクデータ解凍、圧縮方法および装置
US11902139B2 (en) Diagnosing and resolving issues in a network using probe packets
KR20120093225A (ko) 성능 모니터링을 이용한 능동 다중경로 네트워크 리던던시
US8892982B2 (en) Method and system for network latency virtualization in a cloud transport environment
CN105634937B (zh) 一种报文的处理方法和装置
TW201743205A (zh) 韌體更新方法
CN103188059A (zh) 快速通道互联***中数据包重传方法、装置和***
US8948020B2 (en) Detecting and isolating dropped or out-of-order packets in communication networks
CN109587083B (zh) 数据传输方法及相关装置
CN116594948A (zh) Usb数据传输方法、装置、计算机设备及存储介质
CN113259989B (zh) 数据重传方法、装置及电子设备
US6339796B1 (en) System for logical connection resynchronization
RU2383067C2 (ru) Способ сохранения пакетов данных с использованием технологии указателя
JP5070125B2 (ja) 受信装置及びその方法、通信システム及びその方法、並びに、プログラム
CN111131224B (zh) 一种维护连接的方法及存储设备
JP3569149B2 (ja) 通信制御装置
US20160261719A1 (en) Information processing system, control program, and control method
CN110169023A (zh) 一种数据传输方法、数据接收设备及数据发送设备
US20220217093A1 (en) Sequence Number Synchronization Method and Apparatus
CN113626139B (zh) 一种高可用的虚拟机存储方法及装置
US6230283B1 (en) Logical connection resynchronization
JP2005258632A (ja) ネットワークストレージ装置の導通確認方法およびホスト計算機
CN108733598B (zh) 一种数据传输方法和数据传输装置
JPWO2017199913A1 (ja) 送信装置、方法およびプログラム
KR20000040467A (ko) 네트워크의 데이터통신 제어방법

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