CN104717257B - 传输数据报文的方法及装置 - Google Patents

传输数据报文的方法及装置 Download PDF

Info

Publication number
CN104717257B
CN104717257B CN201310689030.3A CN201310689030A CN104717257B CN 104717257 B CN104717257 B CN 104717257B CN 201310689030 A CN201310689030 A CN 201310689030A CN 104717257 B CN104717257 B CN 104717257B
Authority
CN
China
Prior art keywords
identification number
server
udp messages
udp
messages
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
CN201310689030.3A
Other languages
English (en)
Other versions
CN104717257A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310689030.3A priority Critical patent/CN104717257B/zh
Priority to PCT/CN2014/080209 priority patent/WO2015085744A1/en
Priority to US14/460,260 priority patent/US9525629B2/en
Publication of CN104717257A publication Critical patent/CN104717257A/zh
Application granted granted Critical
Publication of CN104717257B publication Critical patent/CN104717257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

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

一种传输数据报文的方法,包括:第一服务器获取UDP报文,生成唯一不重复的标识号;第一服务器通过在所述UDP报文中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝,并将所述第一类UDP报文及其拷贝一并发送给第二服务器;所述第二服务器接收UDP报文,并从中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。此外,还提供了一种传输数据报文的***。上述传输数据报文的方法及装置能够降低数据报文的丢包率。

Description

传输数据报文的方法及装置
技术领域
本发明涉及网络技术领域,特别是涉及一种传输数据报文的方法及装置。
背景技术
现有的网络技术中,通常采用UDP(User Datagram Protocol,用户数据报协议)协议传输音视频的数据报文。UDP协议是一种无连接的协议,实时性比TCP(TransmissionControl Protocol,传输控制协议)协议要高,但传统技术中基于UDP协议的数据报文传输方式无法确保数据报文到达目的地址,从而造成丢包率较高。
发明内容
基于此,有必要提供一种能够降低丢包率的传输数据报文的方法,以解决传统技术中传输UDP报文丢包率较高的问题。
一种传输数据报文的方法,包括:
第一服务器获取UDP报文,生成唯一不重复的标识号;
第一服务器通过在所述UDP报文中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝,并将所述第一类UDP报文及其拷贝一并发送给第二服务器;
所述第二服务器接收UDP报文,并从中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
此外,还提供了一种能够降低丢包率的传输数据报文的***,以解决传统技术中传输UDP报文丢包率较高的问题。
一种传输数据报文的***,包括第一服务器和第二服务器,所述第一服务器用于获取UDP报文,生成唯一不重复的标识号;通过在所述UDP报文中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝,并将加入了所述第一类UDP报文及其拷贝一并发送给第二服务器;
所述第二服务器用于接收UDP报文,并从中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
此外,还提供了一种能够降低丢包率的发送数据报文的方法。
一种发送数据报文的方法,包括:
获取UDP报文,生成唯一不重复的标识号;
通过在所述UDP报文中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝;
一并发送所述第一类UDP报文及其拷贝。
此外,还提供了一种能够降低丢包率的发送数据报文的装置。
一种发送数据报文的装置,包括:
标识号生成模块,用于获取UDP报文,生成唯一不重复的标识号;
数据报文拷贝模块,用于通过在所述UDP报文中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝;
数据报文发送模块,用于一并发送所述第一类UDP报文及其拷贝。
此外,还提供了一种能够降低丢包率的接收数据报文的方法
一种接收数据报文的方法,包括:
接收UDP报文,并从中取出标识号;
判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;
否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
此外,还提供了一种能够降低丢包率的接收数据报文的装置。
一种接收数据报文的装置,包括:
标识号提取模块,用于接收UDP报文,并从中取出标识号;
数据收拢模块,用于判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
上述传输数据报文的方法及***中,第一服务器在将同一个UDP报文发送给第二服务器时,先在UDP报文中加入标识号区分每个UDP包,然后将UDP报文拷贝成多份发送。若丢包率为60%(即发送100个UDP报文时有60个UDP报文会在传输过程中遗失),拷贝后得到的具有相同标识号的UDP报文的份数为2,则该标识号对应的UDP包在传输中遗失的概率即为60%的平方,即36%(即两份UDP报文全部遗失的概率);若拷贝后得到的具有相同标识号的UDP报文的份数为n,则该标识号对应的UDP包在传输中遗失的概率即为60%的n次方,由于丢包率为小于1的值,因此实际丢包率较低。
附图说明
图1为一个实施例中传输数据报文的方法的流程图;
图2为一个实施例中传输数据报文的***的结构示意图;
图3为一个实施例中UDP报文的数据结构示意图;
图4为一个实施例中传输数据报文的***交互过程的时序图;
图5为一个实施例中第二服务器接收多个第一服务器的UDP报文的过程示意图;
图6为一个实施例中UDP报文的数据结构示意图;
图7为一个实施例中发送数据报文的方法的流程图;
图8为一个实施例中发送数据报文的装置的结构示意图;
图9为一个实施例中接收数据报文的方法的流程图;
图10为一个实施例中接收数据报文的装置的结构示意图;
图11为一个实施例中执行发送数据报文的方法或接收数据报文的方法的服务器硬件环境示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一服务器称为第二服务器,且类似地,可将第二服务器称为第一服务器。第一服务器和第二服务器两者都是服务器,但其不是同一服务器。
在一个实施例中,如图1和图2所示,一种传输数据报文的方法,该方法可运行于基于图2的通信***上,该通信***包括第一服务器10和第二服务器20,第一服务器10和第二服务器20皆可为广域网上的计算机设备或网关设备,且第一服务器10和第二服务器20之间数据传输协议为UDP协议。
该方法包括:
步骤S102,第一服务器获取UDP报文,生成唯一不重复的标识号。
步骤S104,第一服务器通过在所述UDP报文中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝,并将第一类UDP报文及其拷贝一并发送给第二服务器。
在本实施例中,如图3所示,第一服务器在UDP报文的正文部分中加入生成的唯一不重复的标识号,即加入的标识号与UDP报文的UDP协议头部无关,属于UDP报文的报文内容。广域网中的转发数据报文的网络设备(例如路由器、网桥、交换机等)不会因为UDP报文的正文部分中加入的标识号而对正常的UDP报文转发产生影响。
第一类UDP报文即为加入了标识号且加入的标识号为唯一不重复的标识号的UDP报文,相应的,下文中的第二类UDP报文即为加入了标识号且加入的标识号为预设的固定可重复的标识号的UDP报文。
在一个实施例中,第一服务器生成唯一不重复的标识号的步骤还包括:
第一服务器生成循环递增/递减的数字码,并获取与其对应机器识别码,并根据机器识别码和所述数字码生成唯一不重复的标识号。
循环递增/递减的数字码即第一服务器为每个待发送的UDP报文分配比前一个已发送的UDP报文对应的数字递增的数字。例如,若第一服务器获取到3个UDP报文待发送,则可为第一个待发送的UDP报文分配数字1,为第二个待发送的UDP报文分配数字2(即在1的基础上递增1),为第三个待发送的UDP报文分配数字3(即在2的基础上递增1)。
机器识别码可以是MAC地址、IP地址、机器名等区别计算机硬件设备的标识信息。
也就是说,标识号可包含两部分内容,一部分为机器识别码,另一部分即为前述的数字码。如图5所示,若A和B两个第一服务器均向第二服务器C发送第一类UDP报文,则A发出的第一类UDP报文中的标识号为标识A加数字的形式,其中,标识A即为第一服务器A的机器识别码;B发出的第一类UDP报文中的标识号为标识B加数字码的形式,其中,标识B即为第一服务器B的机器识别码。如图5所示,若A发出的某个第一类UDP报文A0003的数字码和B生成的某个第一类UDP报文B0003的数字码相同,则由于其标识号中的机器识别码不同,使得第二服务器C在接收到A0003后不会因为B0003的数字码与A0003相同而将其丢弃,从而保证了第二服务器在接收多个第一服务器发送的UDP报文时接收数据的准确性。
在另一个实施例中,标识号还可以是随机码。当随机码的位数较大时(例如128位或256位的长度),随机生成的标识号重复的概率较小,可视为唯一不重复。
在一个实施例中,数字码具有初始值。
第一服务器生成唯一不重复的标识号的步骤还包括:
若该数字码已循环递增/递减至预设的最大/最小值,则将其设置为初始值,该数字码则从初始值重新开始循环递增/递减。
也就是说,若初始值为1,且数字为循环递增1,最大值为100,则当第一服务器发送的第一类UDP报文对应的标识号中包含的数字被设置为100后,第一服务器下一次发送第一类UDP报文时,则将第一类UDP报文中的标识号设置为初始值1,然后继续从1开始循环递增(此过程也可称为反卷)。
优选的,标识号可设置为64位数据段,包括两个32位子数据段,其中,两个32位子数据段分别对应机器识别码和数字码。由于32位子数据段对应的数字码在增加到全1时,则可通过+1变成全0的数字码。
例如,如图6所示,可高32位的子数据段对应机器识别码,低32位的子数据段对应数字。使用32位的子数据段来存储数字部分,对于现行网络,32位的子数据段对应4294967296个UDP报文,也就是说,只有至少发送了4294967296个UDP报文才有可能出现重复的UDP报文,而现网中实际处理的UDP报文的速度远小于10万/秒,也就是说,至少约12小时才会发生标识号重复的可能,从而避免了网络上有标识号重复的UDP报文出现(网络设备发出的UDP报文在现网中的生命周期远小于12小时)。
也就是说,第一服务器发送的第一类UDP报文中的标识号中由于包含了循环递增/递减的数字,因此不会产生重复。第一服务器获取的UDP报文在传输的过程中,只会与其相应的拷贝具有相同的标识号,而与其他UDP报文均具有不同的标识号。
需要说明的是,第一服务器生成的第一类UDP报文的拷贝可以有多份,且与网络质量对应。若网络质量较好,可仅生成一份拷贝;若网络质量较差,则可生成多份拷贝。也就是说,第一服务器可随网络质量的降低增加加入了标识号的UDP报文的拷贝的份数。
步骤S106,第二服务器接收UDP报文,并从中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
第二服务器中设置有缓存,第二服务器在第一次接收到某个标识号对应的UDP报文时,先将标识号从UDP报文的正文部分中取出(不改变第一服务器原始获取到的UDP报文的正文内容),并在缓存中为其分配存储空间,然后将该取出的标识号存储在缓存中分配的存储空间中。UDP报文被判定接收成功后,即可由第二服务器提取其数据交由应用层程序进行处理或是由第二服务器转发给其他网络设备。
若第二服务器再次接收到该标识号对应的UDP报文(即接收到的UDP报文包含的标识号在缓存中已存在),则将其丢弃。
进一步的,第一服务器生成加入了标识号的UDP报文的拷贝的步骤还包括:
第一服务器获取预设的报文份数值,根据预设的报文份数值生成第一类UDP报文的拷贝。
第二服务器将接收到的UDP报文丢弃的步骤之后还包括:
第二服务器获取与所述标识号对应的接收次数,获取预设的报文份数值,判断标识号对应的接收次数是否大于或等于所述报文份数值,若是,则将该标识号从缓存中移除。
例如,若预设的报文份数值为2(即第一服务器将第一类UDP报文复制一份),则第二服务器在接收到该UDP报文时,通过判断缓存中是否存在相应的标识号即可得到其对应的接收次数。若存在,则接收次数为2,否则,接收次数为1。由于接收次数与报文份数值均为2相等,则可在缓存中将该标识号移除,回收其对应的存储空间。
再例如,若预设的报文份数值为n(即第一服务器将第一类UDP报文复制n份),则第二服务器可在缓存中为标识号扩展一块存储其对应的接收次数的存储空间。第二服务器每接收到一次该标识号对应的UDP报文,则将该接收次数+1,若该接收次数大于或等于n,则表示第一服务器发送的UDP报文及其n+1个拷贝均已被第二服务器接收,则第二服务器可从缓存中将其对应的标识号移除,回收其对应的存储空间。
第二服务器根据报文份数值及接收次数将缓存中的标识号移除,可在节省缓存的存储空间,从而提高存储空间的利用率。
进一步的,缓存中存储的标识号具有生命周期。
第二服务器将缓存中生命周期超时的标识号从缓存中移除。
也就是说,对于某个标识号对应的UDP数据报文,若第二服务器仅接收到一份(或少于前述的报文份数值的份数),而在传输过程中其他该标识号对应的UDP数据报文由于网络问题遗失了,则该标识号将一直存储在缓存中,其存储空间无法得到释放,则在为标识号分配存储空间时,为分配的存储空间设置生命周期,例如,10分钟。当生命周期抵达时,第二服务器则自动将该存储空间释放,在缓存中移除该标识号,从而节省了缓存空间,提高了存储空间的利用率。且优选的,生命周期可设置为大于或等于UDP协议中最大接收延时的值。
在一个实施例中,如图2所示,第一服务器10和第二服务器20均为用于中转的数据传输服务器,发送终端30与第一服务器10连接,接收终端40与第二服务器20连接,且第一服务器获取UDP报文的步骤为:第一服务器接收发送终端发送的UDP报文;第二服务器判定取出了标识号的UDP报文接收成功的步骤之后还包括:将取出了标识号的UDP报文转发至接收终端。
也就是说,在本实施例对应的应用场景中,第一服务器10与发送终端30可具有网络质量较优的链路(即丢包率较低、网络延时较小的链路),或第一服务器10与发送终端30处于同一子网中,且第一服务器10为网关设备;相应的,第二服务器20与接收终端40可具有网络质量较优的链路(即丢包率较低、网络延时较小的链路),或第二服务器20与接收终端40处于同一子网中,且第二服务器20为网关设备。发送终端30发送给接收终端40的UDP报文率先抵达第一服务器10,并由第一服务器将生成的唯一不重复的标识号加入该UDP报文生成第一类UDP报文,并将其拷贝成多份,然后发送给第二服务器,第二服务器20只需接收到该多份与同一标识号对应的UDP报文中的一个即接收成功,然后再由第二服务器20将移除标识号的UDP报文通过网络质量较优的链路转发给接收终端40。与传统技术中发送终端30和接收终端40之间没有第一服务器10和第二服务器20的网络环境相比,丢包的概率降低(假设1个数据报文在传输中丢失的概率为40%,则2个数据报文在传输中丢失的概率为40%的平方,即16%)。
本应用场景中发送终端、第一服务器、第二服务器和接收终端之间的交互过程可参考图4所示。
在一个实施例中,第一服务器生成加入了标识号的UDP报文的拷贝的步骤之前还包括:
第一服务器在UDP报文中加入生成时间戳。
第二服务器接收UDP报文的步骤之后还包括:
第二服务器获取接收到的UDP报文的生成时间戳,生成包含生成时间戳的响应报文并返回给第一服务器;
第一服务器接收返回的响应报文,提取其中包含的生成时间戳,根据生成时间戳来计算网络延时,根据接收到的返回的UDP报文的数量计算丢包率。
例如,第一服务器可定期在UDP报文中加入生成时间戳,第二服务器在接收到加入了生成时间戳的UDP报文后则生成其拷贝(该拷贝即为响应报文)然后将其返回给第一服务器,第一服务器接收到返回的UDP报文后,以接收到返回的UDP报文的时间戳减去生成时间戳然后除以2,即可计算得到第一服务器和第二服务器之间的网络延时。在其他实施例中,第二服务器在接受到包含生成时间戳的UDP报文后,可生成一个仅包含该生成时间戳的UDP报文作为响应报文返回给第一服务器。
相应的,第一服务器可在M个UDP报文中加入生成时间戳,若其仅接收到S个第二服务器返回的具有相同时间戳的UDP报文,则丢包率即为(M-S)/M。
在另一个实施例中,第一服务器也可通过发送独立的检测报文来计算网络延时和丢包率。
在本实施例中,第一服务器生成第一类UDP报文的拷贝步骤还包括:
第一服务器根据网络延时和/或丢包率确定拷贝的份数。
若网络延时较低,丢包率较低,则第一服务器和第二服务器之间的网络质量较好,第一服务器则在生成第一类UDP报文的拷贝时,可仅生成较少的拷贝份数,例如1份;若网络延时较高,丢包率较高,则第一服务器和第二服务器之间的网络质量较差,第一服务器则在生成第一类UDP报文的拷贝时,可生成较多的拷贝份数,例如2份。
在本实施例中,第一服务器生成唯一不重复的标识号的步骤之前还包括:
第一服务器根据网络延时和丢包率来判断是否适合单发,若是,则获取预设的固定可重复的标识号,通过将其加入UDP报文生成第二类UDP报文,并将该第二类UDP报文发送给第二服务器;否则,执行生成唯一不重复的标识号的步骤(即后续会生成第一类UDP报文)。
进一步的,第二服务器从接收到的UDP报文中取出标识号的步骤之后还可判断取出的标识号是否为预设的固定可重复的标识号,若否,则执行判断缓存中是否已存在该标识号的步骤。
如前例中,若固定可重复的标识号为数字码为0的标识号,则在网络延时较低,丢包率较低,即网络质量较优时,第一服务器不生成第一类UDP报文,而是通过在UDP报文中加入数字码为0的标识号来生成第二类UDP报文,否则,即在网络质量较差时,仍然生成第一类UDP报文及其拷贝。第二服务器若检测到从接收到的UDP报文中取出的标识号中的数字码为0(即该标识号为固定可重复的标识号),则表示该UDP报文为第二类UDP报文,为单发模式,可不缓存该标识号。
也就是说,在网络质量较好时,第一服务器可生成第二类UDP报文,第二类UDP报文无需生成其拷贝,从而提高了带宽利用率。
在一个实施例中,第二服务器从接收到的UDP报文中取出标识号的步骤之后还可包括:若取出失败,则判定该UDP报文接收成功。
例如,第一服务器还可在UDP报文的正文部分的起始位置***64位的协议标识,再在协议标识的结束位置***标识号,若第二服务器从接收到的UDP报文的正文部分的起始位置提取的64为的数据段与协议标识不符,则表示提取失败,即表示该UDP报文是由其他网络设备(例如图2中的发送终端30)发送来的UDP报文,则可将其判定为接收成功,但并不需要执行后续取出其的标识号的步骤。从而使得第二服务器可在广域网环境下不仅能接收第一服务器发送的UDP报文,还能接收其他网络设备发送的UDP报文。
在一个实施例中,如图2所示,一种传输数据报文的***,包括第一服务器10和第二服务器20,其中:
第一服务器10用于获取UDP报文,生成唯一不重复的标识号;通过在UDP报文中加入唯一不重复的标识号生成第一类UDP报文,生成第一类UDP报文的拷贝,并将第一类UDP报文及其拷贝一并发送给第二服务器20。
第二服务器20用于接收UDP报文,并从中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
在一个实施例中,如图2所示,传输数据报文的***还包括发送终端30和接收终端40,其中:
第一服务器10还用于接收发送终端30发送的UDP报文。
第二服务器20还用于将判定接收成功的取出了标识号的UDP报文转发至接收终端40。
在一个实施例中,第一服务器10还用于获取预设的报文份数值,根据预设的报文份数值生成第一类UDP报文的拷贝。
第二服务器还用于获取与标识号对应的接收次数,获取预设的报文份数值,判断标识号对应的接收次数是否大于或等于报文份数值,若是,则将该标识号从缓存中移除。
在一个实施例中,缓存中存储的标识号具有生命周期。
第二服务器还用于将缓存中生命周期超时的标识号从缓存中移除。
在一个实施例中,第一服务器10还用于生成循环递增/递减的数字码,并获取与其对应机器识别码,并据所述机器识别码和所述数字码生成唯一不重复的标识号。
在一个实施例中,数字码具有初始值。
第一服务器10还用于在数字码已循环递增/递减至预设的最大/最小值时,将其设置为初始值,数字码从初始值重新开始循环递增/递减。
进一步的,标识号为64位数据段,包括两个32位子数据段,两个32位子数据段分别对应机器识别码和数字码。
在一个实施例中,第一服务器10还用于在UDP报文中加入生成时间戳。
第二服务器20还用于获取接收到的UDP报文的生成时间戳,生成包含生成时间戳的响应报文并返回给第一服务器10;
第一服务器10还用于接收返回的响应报文,提取其中包含的生成时间戳,根据生成时间戳来计算网络延时,根据接收到的返回的UDP报文的数量计算丢包率。
在一个实施例中,第一服务器10还用于根据网络延时和/或丢包率确定拷贝的份数。
在一个实施例中,第一服务器10还用于根据网络延时和/或丢包率来判断是否适合单发,若是,则获取预设的固定可重复的标识号,通过将其加入UDP报文生成第二类UDP报文,并将第二类UDP报文发送给第二服务器;否则,生成唯一不重复的标识号。
在一个实施例中,第二服务器20从接收到的UDP报文中取出标识号的步骤之后还包括:
第二服务器20还用于判断从接收到的UDP报文中取出标识号中是否为预设的固定可重复的标识号,若否,则判断缓存中是否已存在该标识号。
在一个实施例中,如图7所示,一种发送数据报文的方法,该方法的运行依赖于计算机程序,可运行于基于冯诺依曼体系的计算机***上,该方法包括:
步骤S202,获取UDP报文,生成唯一不重复的标识号。
步骤S204,通过在UDP报文中加入生成的标识号生成第一类UDP报文,生成第一类UDP报文的拷贝。
步骤S206,一并发送第一类UDP报文及其拷贝。
在一个实施例中,如图8所示,一种发送数据报文的装置,包括标识号生成模块102、数据报文拷贝模块104和数据报文发送模块106,其中:
标识号生成模块102,用于获取UDP报文,生成唯一不重复的标识号。
数据报文拷贝模块104,用于通过在UDP报文中加入唯一不重复的标识号生成第一类UDP报文,生成第一类UDP报文的拷贝。
数据报文发送模块106,用于一并发送第一类UDP报文及其拷贝。
在一个实施例中,如图9所示,一种接收数据报文的方法,该方法的运行依赖于计算机程序,可运行于基于冯诺依曼体系的计算机***上,包括:
步骤S302,接收UDP报文,并从中取出标识号。
步骤S304,判断缓存中是否已存在该标识号,若是,则执行步骤S306。
步骤S306,将该UDP报文丢弃;否则,执行步骤S308。
步骤S308,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
在本实施例中,将接收到的UDP报文丢弃的步骤之后还包括:
获取与标识号对应的接收次数;
获取预设的报文份数值;
判断标识号对应的接收次数是否大于或等于报文份数值,若是,则将该标识号从缓存中移除。
在本实施例中,缓存中存储的标识号具有生命周期。该方法还可包括将缓存中生命周期超时的标识号从缓存中移除的步骤。
在一个实施例中,如图10所示,一种接收数据报文的装置,包括标识号提取模块202和数据收拢模块204,其中:
标识号提取模块202,用于接收UDP报文,并从中取出标识号;
数据收拢模块204,用于判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
在本实施例中,数据收拢模块204还用于获取与标识号对应的接收次数;获取预设的报文份数值;判断标识号对应的接收次数是否大于或等于报文份数值,若是,则将该标识号从缓存中移除。
在本实施例中,缓存中存储的标识号具有生命周期。如图10所示,接收数据报文的装置还可包括缓存清理模块206,用于将缓存中生命周期超时的标识号从缓存中移除。
在一个实施例中,如图11所示,提供了一种可运行前述发送数据报文的方法或者接收数据报文的方法的服务器结构示意图。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(如图8中的标识号生成模块102、数据报文拷贝模块104、数据报文发送模块106,或者图10中的标识号提取模块202、数据收拢模块204、缓存清理模块206),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作***541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。上述图7和图9所示实施例中所述的由服务器所执行的步骤可以基于该图11所示的服务器结构。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
上述传输数据报文的方法及***中,第一服务器在将同一个UDP报文发送给第二服务器时,先在UDP报文中加入标识号区分每个UDP包,然后将UDP报文拷贝成多份发送。若丢包率为60%(即发送100个UDP报文时有60个UDP报文会在传输过程中遗失),拷贝后得到的具有相同标识号的UDP报文的份数为2,则该标识号对应的UDP包在传输中遗失的概率即为60%的平方,即36%(即两份UDP报文全部遗失的概率);若拷贝后得到的具有相同标识号的UDP报文的份数为n,则该标识号对应的UDP包在传输中遗失的概率即为60%的n次方,由于丢包率为小于1的值,因此实际丢包率较低。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (30)

1.一种传输数据报文的方法,包括:
第一服务器获取UDP报文,生成唯一不重复的标识号;
第一服务器通过在所述UDP报文的正文部分中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝,并将所述第一类UDP报文及其拷贝一并发送给第二服务器;
所述第二服务器接收UDP报文,并从接收的所述UDP报文的正文部分中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
2.根据权利要求1所述的传输数据报文的方法,其特征在于,所述第一服务器获取UDP报文的步骤为:
第一服务器接收发送终端发送的UDP报文;
所述第二服务器判定取出了标识号的UDP报文接收成功的步骤之后还包括:
将取出了标识号的UDP报文转发至接收终端。
3.根据权利要求1所述的传输数据报文的方法,其特征在于,所述第一服务器生成所述第一类UDP报文的拷贝的步骤还包括:
第一服务器获取预设的报文份数值,根据所述预设的报文份数值生成所述第一类UDP报文的拷贝;
第二服务器将接收到的UDP报文丢弃的步骤之后还包括:
所述第二服务器获取与所述标识号对应的接收次数,获取预设的报文份数值,判断所述标识号对应的接收次数是否大于或等于所述报文份数值,若是,则将该标识号从缓存中移除。
4.根据权利要求1所述的传输数据报文的方法,其特征在于,所述缓存中存储的标识号具有生命周期;
所述方法还包括:
所述第二服务器将所述缓存中生命周期超时的标识号从所述缓存中移除。
5.根据权利要求1所述的传输数据报文的方法,其特征在于,所述第一服务器生成唯一不重复的标识号的步骤还包括:
所述第一服务器生成循环递增/递减的数字码,并获取与其对应机器识别码,根据所述机器识别码和所述数字码生成唯一不重复的标识号。
6.根据权利要求5所述的传输数据报文的方法,其特征在于,所述数字码具有初始值;
第一服务器生成唯一不重复的标识号的步骤还包括:
若所述数字码已循环递增/递减至预设的最大/最小值,则将其设置为所述初始值,所述数字码从所述初始值重新开始循环递增/递减。
7.根据权利要求6所述的传输数据报文的方法,其特征在于,所述标识号为64位数据段,包括两个32位子数据段,所述两个32位子数据段分别对应所述机器识别码和所述数字码。
8.根据权利要求1所述的传输数据报文的方法,其特征在于,所述第一服务器生成所述第一类UDP报文的拷贝的步骤之前还包括:
所述第一服务器在所述UDP报文中加入生成时间戳;
所述第二服务器接收UDP报文的步骤之后还包括:
所述第二服务器获取接收到的UDP报文的生成时间戳,生成包含所述生成时间戳的响应报文并返回给所述第一服务器;
所述第一服务器接收返回的响应报文,提取其中包含的生成时间戳,根据所述生成时间戳来计算网络延时,根据所述接收到的返回的UDP报文的数量计算丢包率。
9.根据权利要求8所述的传输数据报文的方法,其特征在于,所述第一服务器生成所述第一类UDP报文的拷贝步骤还包括:
所述第一服务器根据所述网络延时和/或所述丢包率确定所述拷贝的份数。
10.根据权利要求8所述的传输数据报文的方法,其特征在于,所述第一服务器生成唯一不重复的标识号的步骤之前还包括:
第一服务器根据所述网络延时和所述丢包率来判断是否适合单发,若是,则获取预设的固定可重复的标识号,通过将其加入所述UDP报文生成第二类UDP报文,并将所述第二类UDP报文发送给第二服务器;否则,执行生成唯一不重复的标识号的步骤。
11.根据权利要求1至10任一项所述的传输数据报文的方法,其特征在于,所述第二服务器从接收到的UDP报文的正文部分中取出标识号的步骤之后还包括:
所述第二服务器判断从接收到的UDP报文的正文部分中取出的标识号是否为预设的固定可重复的标识号,若否,则执行判断缓存中是否已存在该标识号的步骤。
12.一种传输数据报文的***,包括第一服务器和第二服务器,其特征在于,所述第一服务器用于获取UDP报文,生成唯一不重复的标识号;通过在所述UDP报文的正文部分中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝,并将加入了所述第一类UDP报文及其拷贝一并发送给第二服务器;
所述第二服务器用于接收UDP报文,并从接收的所述UDP报文的正文部分中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
13.根据权利要求12所述的传输数据报文的***,其特征在于,所述***还包括发送终端和接收终端,其中:
第一服务器还用于接收所述发送终端发送的UDP报文;
所述第二服务器还用于将判定接收成功的取出了标识号的UDP报文转发至所述接收终端。
14.根据权利要求12所述的传输数据报文的***,其特征在于,所述第一服务器还用于获取预设的报文份数值,根据所述预设的报文份数值生成所述第一类UDP报文的拷贝;
所述第二服务器还用于获取与所述标识号对应的接收次数,获取预设的报文份数值,判断所述标识号对应的接收次数是否大于或等于所述报文份数值,若是,则将该标识号从缓存中移除。
15.根据权利要求12所述的传输数据报文的***,其特征在于,所述缓存中存储的标识号具有生命周期;
所述第二服务器还用于将所述缓存中生命周期超时的标识号从所述缓存中移除。
16.根据权利要求12所述的传输数据报文的***,其特征在于,所述第一服务器还用于生成循环递增/递减的数字码,并获取与其对应机器识别码,并根据所述机器识别码和所述数字码生成唯一不重复的标识号。
17.根据权利要求16所述的传输数据报文的***,其特征在于,所述数字码具有初始值;
第一服务器还用于在所述数字码已循环递增/递减至预设的最大/最小值时,将其设置为所述初始值,所述数字码从所述初始值重新开始循环递增/递减。
18.根据权利要求17所述的传输数据报文的***,其特征在于,所述标识号为64位数据段,包括两个32位子数据段,所述两个32位子数据段分别对应所述机器识别码和所述数字码。
19.根据权利要求12所述的传输数据报文的***,其特征在于,所述第一服务器还用于在所述第一类UDP报文中加入生成时间戳;
所述第二服务器还用于获取接收到的UDP报文的生成时间戳,生成包含所述生成时间戳的响应报文并返回给第一服务器;
所述第一服务器还用于接收返回的响应报文,提取其中包含的生成时间戳,根据所述生成时间戳来计算网络延时,根据所述接收到的返回的UDP报文的数量计算丢包率。
20.根据权利要求19所述的传输数据报文的***,其特征在于,所述第一服务器还用于根据所述网络延时和/或所述丢包率确定所述拷贝的份数。
21.根据权利要求19所述的传输数据报文的***,其特征在于,所述第一服务器还用于根据所述网络延时和/或所述丢包率来判断是否适合单发,若是,则获取预设的固定可重复的标识号,通过将其加入所述UDP报文生成第二类UDP报文,并将所述第二类UDP报文发送给第二服务器;否则,生成唯一不重复的标识号。
22.根据权利要求12至21任一项所述的传输数据报文的***,其特征在于,所述第二服务器从接收到的UDP报文的正文部分中取出标识号的步骤之后还包括:
所述第二服务器还用于判断从接收到的UDP报文的正文部分中取出标识号中的数字是否为预设的固定可重复的标识号,若否,则判断缓存中是否已存在该标识号。
23.一种发送数据报文的方法,包括:
获取UDP报文,生成唯一不重复的标识号;
通过在所述UDP报文的正文部分中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝;
一并发送所述第一类UDP报文及其拷贝至服务器,以指示所述服务器在接收到所述第一类UDP报文及其拷贝后,从接收的所述UDP报文的正文部分中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
24.一种发送数据报文的装置,其特征在于,包括:
标识号生成模块,用于获取UDP报文,生成唯一不重复的标识号;
数据报文拷贝模块,用于通过在所述UDP报文的正文部分中加入所述唯一不重复的标识号生成第一类UDP报文,生成所述第一类UDP报文的拷贝;
数据报文发送模块,用于一并发送所述第一类UDP报文及其拷贝至服务器,以指示所述服务器在接收到所述第一类UDP报文及其拷贝后,从接收的所述UDP报文的正文部分中取出标识号,判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
25.一种接收数据报文的方法,包括:
接收UDP报文,并从接收的所述UDP报文的正文部分中取出标识号;接收的所述UDP报文包括第一类UDP报文和所述第一类UDP报文的拷贝;所述第一类UDP报文是在正文部分中加入唯一不重复的标识号的UDP报文;
判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;
否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
26.根据权利要求25所述的接收数据报文的方法,其特征在于,所述将该UDP报文丢弃的步骤之后还包括:
获取与所述标识号对应的接收次数;
获取预设的报文份数值;
判断所述标识号对应的接收次数是否大于或等于所述报文份数值,若是,则将该标识号从缓存中移除。
27.根据权利要求25所述的接收数据报文的方法,其特征在于,所述缓存中存储的标识号具有生命周期;
所述方法还包括:
将所述缓存中生命周期超时的标识号从所述缓存中移除。
28.一种接收数据报文的装置,其特征在于,包括:
标识号提取模块,用于接收UDP报文,并从接收的所述UDP报文的正文部分中取出标识号;接收的所述UDP报文包括第一类UDP报文和所述第一类UDP报文的拷贝;所述第一类UDP报文是在正文部分中加入唯一不重复的标识号的UDP报文;
数据收拢模块,用于判断缓存中是否已存在该标识号,若是,则将该UDP报文丢弃;否则,在缓存中存储该取出的标识号,且判定该UDP报文接收成功。
29.根据权利要求28所述的接收数据报文的装置,其特征在于,所述数据收拢模块还用于获取与所述标识号对应的接收次数;获取预设的报文份数值;判断所述标识号对应的接收次数是否大于或等于所述报文份数值,若是,则将该标识号从缓存中移除。
30.根据权利要求28所述的接收数据报文的装置,其特征在于,所述缓存中存储的标识号具有生命周期;
所述装置还包括缓存清理模块,用于将所述缓存中生命周期超时的标识号从所述缓存中移除。
CN201310689030.3A 2013-12-13 2013-12-13 传输数据报文的方法及装置 Active CN104717257B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310689030.3A CN104717257B (zh) 2013-12-13 2013-12-13 传输数据报文的方法及装置
PCT/CN2014/080209 WO2015085744A1 (en) 2013-12-13 2014-06-18 Method and apparatus for transmitting data packets
US14/460,260 US9525629B2 (en) 2013-12-13 2014-08-14 Method and apparatus for transmitting data packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310689030.3A CN104717257B (zh) 2013-12-13 2013-12-13 传输数据报文的方法及装置

Publications (2)

Publication Number Publication Date
CN104717257A CN104717257A (zh) 2015-06-17
CN104717257B true CN104717257B (zh) 2018-09-28

Family

ID=53370577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310689030.3A Active CN104717257B (zh) 2013-12-13 2013-12-13 传输数据报文的方法及装置

Country Status (2)

Country Link
CN (1) CN104717257B (zh)
WO (1) WO2015085744A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682446B (zh) * 2017-10-24 2020-12-11 新华三信息安全技术有限公司 一种报文镜像方法、装置及电子设备
CN107979507A (zh) * 2017-11-21 2018-05-01 广州视源电子科技股份有限公司 一种数据传输方法、装置、设备及存储介质
CN110299974A (zh) * 2018-03-23 2019-10-01 天地融科技股份有限公司 一种数据接收方法及装置
CN109067922A (zh) * 2018-09-27 2018-12-21 北京粉笔未来科技有限公司 一种数据传输方法及装置
CN110012343A (zh) * 2019-02-21 2019-07-12 生迪智慧科技有限公司 网络报文的生成方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127702A (zh) * 2007-08-02 2008-02-20 北京航空航天大学 用于平面结构网络的多对多可靠组播错误恢复方法
CN102595199A (zh) * 2011-01-11 2012-07-18 中兴通讯股份有限公司 一种流媒体数据包的封装、传输方法及流媒体处理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6312607B1 (en) * 1995-06-07 2001-11-06 Baxter International Inc. Blood processing systems and methods which optically monitor incremental platelet volumes in a plasma constituent
CN101150763B (zh) * 2007-10-18 2012-06-06 中兴通讯股份有限公司 一种测试WiMAX网络实时传输业务性能的终端和方法
US8130761B2 (en) * 2008-01-22 2012-03-06 Dell Products L.P. Method and system for providing confirmed delivery of ethernet packets
US8320364B2 (en) * 2009-12-15 2012-11-27 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Control of bit-rate and packet duplication in a real-time media stream
US20120054583A1 (en) * 2010-08-27 2012-03-01 Raytheon Company Method and system of sub-packet error correction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127702A (zh) * 2007-08-02 2008-02-20 北京航空航天大学 用于平面结构网络的多对多可靠组播错误恢复方法
CN102595199A (zh) * 2011-01-11 2012-07-18 中兴通讯股份有限公司 一种流媒体数据包的封装、传输方法及流媒体处理装置

Also Published As

Publication number Publication date
CN104717257A (zh) 2015-06-17
WO2015085744A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
CN104717257B (zh) 传输数据报文的方法及装置
US11122067B2 (en) Methods for detecting and mitigating malicious network behavior and devices thereof
CN101409706B (zh) 一种边缘网络中的数据分发方法、数据分发***及相关设备
EP2874116A1 (en) Communication method between content requester and content provider for providing content and real-time streaming content in content name-based content centric network
CN105474602B (zh) 软件定义网络中识别攻击流的方法、装置以及设备
CN103609089B (zh) 一种防止附连到子网的主机上拒绝服务攻击的方法及装置
CN104394421A (zh) 视频帧的处理方法及装置
CN101605072A (zh) 保护基于分组的网络不受攻击的方法以及安全边界节点
CN108111432A (zh) 报文转发方法及装置
WO2017114200A1 (zh) 报文清洗方法及装置
CN107454276A (zh) 一种用户终端设备及其数据转发方法、及通信***
CN102624750A (zh) 抵御dns递归攻击的方法和***
CN111930599B (zh) 一种云服务***的运维数据处理方法、装置及存储介质
CN102394944A (zh) 一种Web访问中的IP地址库修正方法和设备
CN113709186B (zh) 一种高效蜜罐代理转发的方法与装置
CN103746768B (zh) 一种数据包的识别方法及设备
CN105591892B (zh) 一种平滑重启流程的启动方法和装置
CN110300085B (zh) 网络攻击的取证方法、装置、***、统计集群和计算集群
CN106210159B (zh) 一种域名解析方法和设备
CN110855566B (zh) 上行流量的牵引方法和装置
CN109474525B (zh) 报文的处理方法、装置、设备及可读存储介质
CN109450810A (zh) 识别冗余消息的方法及装置
CN106470421A (zh) 一种防止恶意终端非法占用核心网资源的方法和设备
Nahir et al. Schedule first, manage later: Network-aware load balancing
CN104301221A (zh) 一种路由消息的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190808

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.