CN106254202A - A kind of multidiameter delay transmission method based on fountain codes and device - Google Patents
A kind of multidiameter delay transmission method based on fountain codes and device Download PDFInfo
- Publication number
- CN106254202A CN106254202A CN201610757584.6A CN201610757584A CN106254202A CN 106254202 A CN106254202 A CN 106254202A CN 201610757584 A CN201610757584 A CN 201610757584A CN 106254202 A CN106254202 A CN 106254202A
- Authority
- CN
- China
- Prior art keywords
- data packets
- encoded data
- data packet
- transmission
- tunnel
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000003139 buffering effect Effects 0.000 claims abstract description 5
- 230000005641 tunneling Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- 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/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于喷泉码的多路并行传输方法以及装置。其中,所述方法包括:根据接收端地址将待发送的原始数据包分别进行缓存;判断缓存中原始数据包的数目是否达到预设数目或其等待时间是否超过预设值;若是,则将缓存中的原始数据包分别进行喷泉编码,得到编码数据包;获取用于传输编码数据包的多个隧道的整体状况,分为整体性能良好和整体性能不佳两种情况,由此选择相应的传输模式,在相应的传输模式下,根据编码数据包的度值为编码数据包选择相应的隧道,并在编码数据包传输过程中的不同阶段相应地调整其传输方式;在接收端设置反馈模块,使得发送端判断传输过程是否完成,从而实现原始数据包的多路并行传输,提升链路利用率和传输可靠性。
The invention discloses a multi-channel parallel transmission method and device based on fountain codes. Wherein, the method includes: respectively buffering the original data packets to be sent according to the address of the receiving end; judging whether the number of original data packets in the cache reaches a preset number or whether the waiting time exceeds a preset value; Fountain encoding is performed on the original data packets in , respectively, to obtain encoded data packets; the overall status of multiple tunnels used to transmit encoded data packets is obtained, which can be divided into two cases: good overall performance and poor overall performance, and thus select the corresponding transmission Mode, in the corresponding transmission mode, select the corresponding tunnel for the encoded data packet according to the degree value of the encoded data packet, and adjust its transmission mode accordingly at different stages in the transmission process of the encoded data packet; set a feedback module at the receiving end, This enables the sending end to judge whether the transmission process is completed, thereby realizing multi-channel parallel transmission of original data packets, and improving link utilization and transmission reliability.
Description
技术领域technical field
本发明涉及虚拟专用网络领域,具体地,涉及一种基于喷泉码的多路并行传输方法以及装置。The present invention relates to the field of virtual private network, in particular to a fountain code-based multi-channel parallel transmission method and device.
背景技术Background technique
隧道是实现虚拟专用网络(Virtual Private Network,VPN)的关键技术,基本功能是封装,主要利用隧道协议来实现。隧道协议把一种网络协议的数据帧或数据包封装进另一种网络协议的数据帧中,在两主机间建立虚拟专有连接,封装的数据包就像普通数据包一样进行传输,实现了在公用网络上传输私有数据。VPN隧道基于广泛分布的Internet网络,便于部署、成本低廉、可扩展性好,在企业网中得到广泛应用。然而,由于带宽限制、节点拥塞、防火墙过滤等因素的影响,隧道内会存在丢包,传输性能出现波动。如果隧道基于UDP(User Datagram Protocol,用户数据报协议)建立,丢包会导致网络传输可靠性降低,应用数据不能正确传输,影响用户体验;如果隧道基于TCP(Transmission Control Protocol,传输控制协议)建立,虽然TCP协议可以提高数据传输可靠性,但是丢包会导致网络中产生大量的重传包,严重影响网络吞吐量。Tunnel is a key technology for realizing a virtual private network (Virtual Private Network, VPN), and its basic function is encapsulation, which is mainly realized by using a tunnel protocol. The tunnel protocol encapsulates the data frame or data packet of one network protocol into the data frame of another network protocol, establishes a virtual private connection between the two hosts, and the encapsulated data packet is transmitted like a normal data packet, realizing Transfer private data over public networks. Based on the widely distributed Internet network, VPN tunnels are easy to deploy, low in cost, and good in scalability, and are widely used in enterprise networks. However, due to bandwidth limitations, node congestion, firewall filtering and other factors, there will be packet loss in the tunnel, and the transmission performance will fluctuate. If the tunnel is established based on UDP (User Datagram Protocol, User Datagram Protocol), packet loss will reduce the reliability of network transmission, application data cannot be transmitted correctly, and affect user experience; if the tunnel is established based on TCP (Transmission Control Protocol, Transmission Control Protocol) , although the TCP protocol can improve the reliability of data transmission, packet loss will cause a large number of retransmission packets in the network, seriously affecting network throughput.
随着网络技术的快速发展,涌现出了大量的多媒体业务,这些业务的数据量大,且对数据传输的实时性和可靠性都有很高的要求,传统的基于单路径TCP的传输模式已很难满足业务需求,当网络发生拥塞或者链路性能波动较大时,网络中会出现大量的ACK(Acknowledgement,确认字符)确认包和重传包,增加了网络负载,加剧了网络拥塞,严重时还会出现网络瘫痪。为了充分利用网络资源,IETF(Internet Engineering Task Force,因特网工程任务组)提出了多路径传输控制协议(MPTCP),可以将MPTCP(MultiPath TCP,多路径传输控制协议)应用到隧道中,来实现隧道间的负载均衡,提高网络的吞吐量。但是,MPTCP只是对传统TCP协议的扩展,相当于建立了多路的TCP连接,但是发送端仍然只选择其中一条路径进行数据传输,这样不能充分利用多路径的优势,还有较大改善的空间。With the rapid development of network technology, a large number of multimedia services have emerged. These services have a large amount of data and have high requirements for real-time and reliability of data transmission. The traditional single-path TCP-based transmission mode has been It is difficult to meet business needs. When network congestion occurs or link performance fluctuates greatly, a large number of ACK (Acknowledgment, confirmation character) confirmation packets and retransmission packets will appear in the network, which increases network load and aggravates network congestion. There will also be network paralysis. In order to make full use of network resources, IETF (Internet Engineering Task Force, Internet Engineering Task Force) proposed the Multipath Transmission Control Protocol (MPTCP), which can apply MPTCP (MultiPath TCP, Multipath Transmission Control Protocol) to the tunnel to realize the tunnel Load balancing among them to improve the throughput of the network. However, MPTCP is only an extension of the traditional TCP protocol, which is equivalent to establishing a multi-channel TCP connection, but the sender still only selects one of the paths for data transmission, which cannot make full use of the advantages of multi-path, and there is still room for improvement .
隧道是基于现有公用网络搭建的,可以在两端节点间建立多条隧道路径来实现并行多路传输。目前,虽然已有一些利用喷泉码来实现多路传输的方案,但这些方案均是通过在应用层或传输层进行喷泉编码来实现的,还鲜有在网络层中使用喷泉码的先例,也没有针对隧道可靠性的相关方案。The tunnel is built based on the existing public network, and multiple tunnel paths can be established between nodes at both ends to realize parallel multiplex transmission. At present, although there are some schemes using fountain codes to realize multiplex transmission, these schemes are all realized by performing fountain codes on the application layer or transport layer, and there are few precedents of using fountain codes in the network layer. There are no related schemes for tunnel reliability.
发明内容Contents of the invention
本发明的目的是提供一种基于喷泉码的多路并行传输方法以及装置。其中,所述方法不仅能够有效提高隧道的传输可靠性,而且还能够采用多隧道并行传输来实现隧道间负载均衡,减少拥堵,提高网络的吞吐量。The purpose of the present invention is to provide a method and device for multi-channel parallel transmission based on fountain codes. Wherein, the method can not only effectively improve the transmission reliability of the tunnel, but also adopt multi-tunnel parallel transmission to realize load balancing between tunnels, reduce congestion, and improve network throughput.
为了实现上述目的,本发明提供一种基于喷泉码的多路并行传输方法。所述方法包括:In order to achieve the above object, the present invention provides a multi-channel parallel transmission method based on fountain codes. The methods include:
根据待发送的原始数据包的目的地址得到对应的接收端地址,并根据所述接收端地址将待发送的原始数据包分别缓存在不同的队列中;Obtaining the corresponding receiving end address according to the destination address of the original data packet to be sent, and buffering the original data packet to be sent in different queues according to the receiving end address;
对于每个队列,判断队列中原始数据包的数目是否达到预设数目或队列中原始数据包的等待时间是否超过预设时间;For each queue, determine whether the number of original data packets in the queue reaches a preset number or whether the waiting time of the original data packets in the queue exceeds a preset time;
在判断队列中原始数据包的数目达到预设数目或队列中原始数据包的等待时间超过预设时间的情况下,将队列中缓存的原始数据包分别进行喷泉编码,得到编码数据包;When judging that the number of original data packets in the queue reaches the preset number or the waiting time of the original data packets in the queue exceeds the preset time, performing fountain encoding on the original data packets cached in the queue respectively to obtain encoded data packets;
获取用于传输所述编码数据包的多个隧道的整体状况,并根据所述整体状况选择相应的传输模式,及在相应的传输模式下,根据所述编码数据包的度值为所述编码数据包选择相应的隧道,并在所述编码数据包传输过程中的不同阶段相应地调整其传输方式,从而实现所述原始数据包的多路并行传输。Obtaining the overall status of multiple tunnels used to transmit the encoded data packets, and selecting a corresponding transmission mode according to the overall status, and in the corresponding transmission mode, according to the degree value of the encoded data packets, the encoding The data packet selects a corresponding tunnel, and adjusts its transmission mode correspondingly at different stages in the transmission process of the encoded data packet, so as to realize multiple parallel transmissions of the original data packet.
可选地,所述根据待发送的原始数据包的目的地址得到对应的接收端地址之前,所述方法还包括:Optionally, before obtaining the corresponding receiver address according to the destination address of the original data packet to be sent, the method further includes:
根据预设的路由算法计算得到自身与任意一个接收端的多条不相交路径集。According to the preset routing algorithm, multiple disjoint path sets between itself and any receiving end are obtained.
可选地,所述方法还包括:Optionally, the method also includes:
接收接收端对所述编码数据包解码而反馈的解码信息,在根据所述解码信息得到所述接收端成功解码出原始数据包的情况下,停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。receiving the decoding information fed back by the receiving end for decoding the encoded data packet, and stopping the transmission of the encoded data packet when the receiving end has successfully decoded the original data packet according to the decoding information, and sending the next batch of Raw packets are processed and transmitted in the same way.
可选地,所述根据所述整体状况选择相应的传输模式,及在相应的传输模式下,根据所述编码数据包的度值为所述编码数据包选择相应的隧道,并在所述编码数据包传输过程中的不同阶段相应地调整其传输方式,包括:Optionally, the corresponding transmission mode is selected according to the overall situation, and in the corresponding transmission mode, the corresponding tunnel is selected for the encoded data packet according to the degree value of the encoded data packet, and in the encoding Different stages in the packet transmission process adjust their delivery accordingly, including:
在根据所述整体状况判断所述多个隧道的整体传输性能良好的情况下,When it is judged according to the overall condition that the overall transmission performance of the multiple tunnels is good,
根据每个隧道的时延、带宽、到达率以及隧道之间的相关性对每个隧道的传输质量进行评估分级,得到多个隧道的优先级顺序,Evaluate and classify the transmission quality of each tunnel according to the delay, bandwidth, arrival rate of each tunnel, and the correlation between tunnels, and obtain the priority order of multiple tunnels.
采用优先级高于设定值的隧道传输度值低于预设值的第一编码数据包,优先级低于所述设定值的隧道传输度值高于预设值的第二编码数据包,Using the first encoded data packet whose priority is higher than the set value of the tunnel transmission degree value is lower than the preset value, and the priority is lower than the set value The second encoded data packet whose tunnel transmission degree value is higher than the preset value ,
在所述第一编码数据包的传输数量达到第一预设数量的情况下,采用优先级高于所述设定值的隧道传输所述第二编码数据包,优先级低于所述设定值的隧道传输所述第一编码数据包;When the number of transmissions of the first encoded data packets reaches the first preset number, transmit the second encoded data packets using a tunnel with a priority higher than the set value, and a priority lower than the set value tunneling of said first encoded data packet;
在根据所述整体状况判断所述多个隧道的整体传输性能不佳的情况下,In the case where the overall transmission performance of the plurality of tunnels is judged to be poor according to the overall condition,
在所有隧道上传输所述第一编码数据包,transmitting said first encoded data packet on all tunnels,
在所述第一编码数据包的传输数量达到第二预设数量的情况下,在所有隧道上传输所述第二编码数据包。When the number of transmissions of the first encoded data packets reaches a second preset number, the second encoded data packets are transmitted on all tunnels.
相应地,本发明还提供一种基于喷泉码的多路并行传输装置。所述装置包括:Correspondingly, the present invention also provides a multi-channel parallel transmission device based on fountain codes. The devices include:
第一缓存模块,用于根据待发送的原始数据包的目的地址得到对应的接收端地址,并根据所述接收端地址将待发送的原始数据包分别缓存在不同的队列中;The first buffer module is used to obtain the corresponding receiving end address according to the destination address of the original data packet to be sent, and cache the original data packet to be sent in different queues according to the receiving end address;
第一判断模块,用于对于每个队列,判断队列中原始数据包的数目是否达到预设数目或队列中原始数据包的等待时间是否超过预设时间;The first judging module is used for, for each queue, judging whether the number of original data packets in the queue reaches a preset number or whether the waiting time of the original data packets in the queue exceeds a preset time;
喷泉码编码模块,用于在判断队列中原始数据包的数目达到预设数目或队列中原始数据包的等待时间超过预设时间的情况下,将队列中缓存的原始数据包分别进行喷泉编码,得到编码数据包;The fountain code encoding module is used to perform fountain encoding on the original data packets cached in the queue respectively when the number of original data packets in the judging queue reaches a preset number or the waiting time of the original data packets in the queue exceeds a preset time, Get the encoded data packet;
分组调度模块,用于获取用于传输所述编码数据包的多个隧道的整体状况,并根据所述整体状况选择相应的传输模式,及在相应的传输模式下,根据所述编码数据包的度值为所述编码数据包选择相应的隧道,并在所述编码数据包传输过程中的不同阶段相应地调整其传输方式,从而实现所述原始数据包的多路并行传输。A packet scheduling module, configured to obtain the overall status of multiple tunnels used to transmit the encoded data packets, and select a corresponding transmission mode according to the overall status, and in the corresponding transmission mode, according to the overall status of the encoded data packets The degree value selects a corresponding tunnel for the encoded data packet, and adjusts its transmission mode correspondingly at different stages in the transmission process of the encoded data packet, so as to realize multiple parallel transmissions of the original data packet.
可选地,所述装置还包括:Optionally, the device also includes:
路径管理模块,用于根据预设的路由算法计算得到自身与任意一个接收端的多条不相交路径集。The path management module is configured to calculate multiple disjoint path sets between itself and any receiving end according to a preset routing algorithm.
可选地,所述分组调度模块,还用于:Optionally, the group scheduling module is also used for:
接收接收端对所述编码数据包解码而反馈的解码信息,在根据所述解码信息得到所述接收端成功解码出原始数据包的情况下,停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。receiving the decoding information fed back by the receiving end for decoding the encoded data packet, and stopping the transmission of the encoded data packet when the receiving end has successfully decoded the original data packet according to the decoding information, and sending the next batch of Raw packets are processed and transmitted in the same way.
可选地,所述分组调度模块,具体用于:Optionally, the group scheduling module is specifically used for:
在根据所述整体状况判断所述多个隧道的整体传输性能良好的情况下,When it is judged according to the overall condition that the overall transmission performance of the multiple tunnels is good,
根据每个隧道的时延、带宽、到达率以及隧道之间的相关性对每个隧道的传输质量进行评估分级,得到多个隧道的优先级顺序,Evaluate and classify the transmission quality of each tunnel according to the delay, bandwidth, arrival rate of each tunnel, and the correlation between tunnels, and obtain the priority order of multiple tunnels.
采用优先级高于设定值的隧道传输度值低于预设值的第一编码数据包,优先级低于所述设定值的隧道传输度值高于预设值的第二编码数据包,Using the first encoded data packet whose priority is higher than the set value of the tunnel transmission degree value is lower than the preset value, and the priority is lower than the set value The second encoded data packet whose tunnel transmission degree value is higher than the preset value ,
在所述第一编码数据包的传输数量达到第一预设数量的情况下,采用优先级高于所述设定值的隧道传输所述第二编码数据包,优先级低于所述设定值的隧道传输所述第一编码数据包;When the number of transmissions of the first encoded data packets reaches the first preset number, transmit the second encoded data packets using a tunnel with a priority higher than the set value, and a priority lower than the set value tunneling of said first encoded data packet;
在根据所述整体状况判断所述多个隧道的整体传输性能不佳的情况下,In the case where the overall transmission performance of the plurality of tunnels is judged to be poor according to the overall condition,
在所有隧道上传输所述第一编码数据包,transmitting said first encoded data packet on all tunnels,
在所述第一编码数据包的传输数量达到第二预设数量的情况下,在所有隧道上传输所述第二编码数据包。When the number of transmissions of the first encoded data packets reaches a second preset number, the second encoded data packets are transmitted on all tunnels.
相应地,本发明还提供一种基于喷泉码的多路并行传输方法。所述方法包括:Correspondingly, the present invention also provides a multi-channel parallel transmission method based on fountain codes. The methods include:
接收多个隧道传输的数据包,并采用隧道协议对所述数据包进行解封装,过滤得到编码数据包;receiving multiple tunnel-transmitted data packets, decapsulating the data packets using a tunneling protocol, and filtering to obtain encoded data packets;
根据所述编码数据包的源地址将所述编码数据包分别缓存在不同的队列中;respectively buffering the encoded data packets in different queues according to the source addresses of the encoded data packets;
对于每个队列,判断队列中编码数据包的数目是否达到解码要求的数目;For each queue, determine whether the number of encoded data packets in the queue reaches the number required for decoding;
在判断队列中编码数据包的数目达到解码要求的数目的情况下,对队列中缓存的编码数据包分别进行喷泉解码,得到原始数据包,从而实现所述原始数据包的多路并行传输。When it is judged that the number of encoded data packets in the queue reaches the number required for decoding, fountain decoding is performed on the encoded data packets buffered in the queue to obtain original data packets, thereby realizing multi-channel parallel transmission of the original data packets.
可选地,所述方法还包括:Optionally, the method also includes:
根据解码情况向发送端反馈解码信息,以使得所述发送端根据所述解码信息停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。Feedback decoding information to the sending end according to the decoding situation, so that the sending end stops transmitting the encoded data packets according to the decoding information, and performs the same processing and transmission on the next batch of original data packets.
相应地,本发明还提供一种基于喷泉码的多路并行传输装置。所述装置包括:Correspondingly, the present invention also provides a multi-channel parallel transmission device based on fountain codes. The devices include:
接收模块,用于接收多个隧道传输的数据包,并采用隧道协议对所述数据包进行解封装,过滤得到编码数据包;A receiving module, configured to receive multiple tunnel-transmitted data packets, and use a tunneling protocol to decapsulate the data packets, and filter to obtain encoded data packets;
第二缓存模块,用于根据所述编码数据包的源地址将所述编码数据包分别缓存在不同的队列中;A second cache module, configured to respectively cache the encoded data packets in different queues according to the source address of the encoded data packets;
第二判断模块,用于对于每个队列,判断队列中编码数据包的数目是否达到解码要求的数目;The second judging module is used for, for each queue, judging whether the number of encoded data packets in the queue reaches the number required for decoding;
喷泉码解码模块,用于在判断队列中编码数据包的数目达到解码要求的数目的情况下,对队列中缓存的编码数据包分别进行喷泉解码,得到原始数据包,从而实现所述原始数据包的多路并行传输。Fountain code decoding module, for judging that the number of encoded data packets in the queue reaches the number required for decoding, fountain decoding is performed on the encoded data packets cached in the queue respectively to obtain the original data packets, thereby realizing the original data packets multiple parallel transmissions.
可选地,所述装置还包括:Optionally, the device also includes:
反馈模块,用于根据解码情况向发送端反馈解码信息,以使得所述发送端根据所述解码信息停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。The feedback module is configured to feed back decoding information to the sending end according to the decoding situation, so that the sending end stops transmitting the encoded data packets according to the decoding information, and performs the same processing and transmission on the next batch of original data packets.
由上述技术方案可知,将要发送到同一接收端的原始数据包进行缓存,在原始数据包达到预设数目后或原始数据包等待超时后,对原始数据包进行喷泉编码,得到编码数据包。然后,根据隧道的整体状态和编码数据包的度值为编码数据包选择相应的隧道,并将编码数据包并行传输至接收端,接收端采用隧道协议对多个隧道传输的数据包进行解封装,过滤得到编码数据包,并根据编码数据包的源地址将编码数据包分别缓存在不同的队列中,在判断队列中编码数据包的数目达到解码要求的数目的情况下,对队列中缓存的编码数据包分别进行喷泉解码,得到原始数据包,不仅能够有效提高隧道的传输可靠性,而且还能够采用多隧道并行传输来实现隧道间负载均衡,减少拥堵,提高网络的吞吐量。It can be seen from the above technical solution that the original data packets to be sent to the same receiving end are buffered, and after the original data packets reach the preset number or after the original data packets wait for timeout, fountain coding is performed on the original data packets to obtain encoded data packets. Then, select the corresponding tunnel for the encoded data packet according to the overall state of the tunnel and the degree value of the encoded data packet, and transmit the encoded data packet to the receiving end in parallel, and the receiving end uses the tunneling protocol to decapsulate the data packets transmitted by multiple tunnels , to filter the encoded data packets, and cache the encoded data packets in different queues according to the source address of the encoded data packets. When it is judged that the number of encoded data packets in the queue reaches the number required for decoding, the Encoded data packets are decoded separately to obtain original data packets, which can not only effectively improve the transmission reliability of the tunnel, but also use multi-tunnel parallel transmission to achieve load balancing between tunnels, reduce congestion, and improve network throughput.
附图说明Description of drawings
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings that are required in the description of the embodiments or the prior art. Apparently, the drawings in the following description are only some embodiments of the present invention, and those skilled in the art can obtain other drawings based on these drawings without any creative effort.
图1是本发明一实施例提供的基于喷泉码的多路并行传输方法的流程图;Fig. 1 is a flow chart of a multi-channel parallel transmission method based on fountain codes provided by an embodiment of the present invention;
图2是本发明一实施例提供的基于喷泉码的多路并行传输装置的结构示意图;Fig. 2 is a schematic structural diagram of a multi-channel parallel transmission device based on fountain codes provided by an embodiment of the present invention;
图3是本发明一实施例提供的基于喷泉码的多路并行传输方法的流程图;3 is a flowchart of a fountain code-based multi-channel parallel transmission method provided by an embodiment of the present invention;
图4是本发明一实施例提供的基于喷泉码的多路并行传输装置的结构示意图;Fig. 4 is a schematic structural diagram of a multi-channel parallel transmission device based on fountain codes provided by an embodiment of the present invention;
图5是本发明一实施例提供的基于喷泉码的多路并行传输方法的工作流程图;Fig. 5 is a working flow diagram of a multi-channel parallel transmission method based on fountain codes provided by an embodiment of the present invention;
图6是本发明一实施例提供的发送端和接收端整体的结构模型示意图。Fig. 6 is a schematic diagram of an overall structural model of a sending end and a receiving end provided by an embodiment of the present invention.
具体实施方式detailed description
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only some, not all, embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the protection scope of the present invention.
以下对本发明实施例中提及的部分词语进行解释说明。Some words mentioned in the embodiments of the present invention are explained below.
喷泉码是一种码率可以随着信道传输状况变化而进行实时调整的“无码率”编码。发送端不需要预先设定码率,可以由k个原始数据分组生成任意数量的编码分组,然后按照一定的方式把打包好的编码数据包发送出去;接收端只需接收到足够多的包,即可恢复出原始数据分组,无需考虑接收到的是哪几个数据包以及是以何种顺序接收到这些数据包,也无需对收到的数据进行确认。因此,喷泉码适用于对信道条件不了解,受某些不确定性因素影响较大的通信场景。喷泉码的出现为提高网络可靠性和网络传输效率开辟了新思路,目前已在大规模网络信息分发、可靠多播传播、无线协作传输等场景中得到了广泛应用,而且正在被推广到越来越多的应用领域。本发明将喷泉码的优势应用到隧道通信场景中,来提高隧道的传输可靠性,同时,采用多隧道并行传输来实现隧道间负载均衡,减少拥塞,提高网络吞吐量。Fountain code is a "rateless" code whose code rate can be adjusted in real time as the channel transmission conditions change. The sending end does not need to pre-set the code rate, and can generate any number of encoded packets from k original data packets, and then send the packaged encoded data packets in a certain way; the receiving end only needs to receive enough packets, The original data packet can be recovered without considering which data packets are received and in what order these data packets are received, and there is no need to confirm the received data. Therefore, the fountain code is suitable for communication scenarios that do not know the channel conditions and are greatly affected by certain uncertain factors. The emergence of fountain codes has opened up new ideas for improving network reliability and network transmission efficiency. It has been widely used in large-scale network information distribution, reliable multicast transmission, wireless cooperative transmission and other scenarios, and is being extended to more and more more fields of application. The invention applies the advantages of the fountain code to the tunnel communication scene to improve the transmission reliability of the tunnel, and at the same time, adopts multi-tunnel parallel transmission to realize load balancing between tunnels, reduce congestion, and improve network throughput.
图1是本发明一实施例提供的基于喷泉码的多路并行传输方法的流程图。如图1所示,本发明一实施例提供的基于喷泉码的多路并行传输方法包括:FIG. 1 is a flowchart of a fountain code-based multi-channel parallel transmission method provided by an embodiment of the present invention. As shown in FIG. 1, a fountain code-based multi-channel parallel transmission method provided by an embodiment of the present invention includes:
在步骤S101中,根据待发送的原始数据包的目的地址得到对应的接收端地址,并根据所述接收端地址将待发送的原始数据包分别缓存在不同的队列中。In step S101, the corresponding receiving end address is obtained according to the destination address of the original data packet to be sent, and the original data packet to be sent is respectively buffered in different queues according to the receiving end address.
具体地,作为发送端的VPN服务器根据待发送的原始数据包的目的地址能够得到对应的作为接收端的VPN服务器的地址,并将要发送到同一VPN服务器的原始数据报缓存在同一队列中,也就是说,每一个队列对应同一个VPN服务器作为接收端。Specifically, the VPN server as the sending end can obtain the corresponding address of the VPN server as the receiving end according to the destination address of the original data packet to be sent, and buffer the original data packets to be sent to the same VPN server in the same queue, that is to say , each queue corresponds to the same VPN server as the receiving end.
更为具体地,在该步骤之前,所述方法还包括:根据预设的路由算法计算得到自身与任意一个接收端的多条不相交路径集。网络中的VPN服务器通过相互认证,分别建立三层隧道连接,构成一个基于隧道的VPN网络。作为发送端的VPN服务器能够通过预设的路由算法计算得到自身与接收端之间的多条不相交路径集。More specifically, before this step, the method further includes: calculating multiple disjoint path sets between itself and any receiving end according to a preset routing algorithm. The VPN servers in the network establish a layer-3 tunnel connection through mutual authentication to form a tunnel-based VPN network. The VPN server as the sending end can calculate multiple disjoint path sets between itself and the receiving end through preset routing algorithms.
接着,在步骤S102中,对于每个队列,判断队列中原始数据包的数目是否达到预设数目或队列中原始数据包的等待时间是否超过预设时间。Next, in step S102, for each queue, it is judged whether the number of original data packets in the queue reaches a preset number or whether the waiting time of the original data packets in the queue exceeds a preset time.
其中,预设数目为喷泉编码要求的原始数据包的个数。Wherein, the preset number is the number of original data packets required by fountain coding.
紧接着,在步骤S103中,在判断队列中原始数据包的数目达到预设数目或队列中原始数据包的等待时间超过预设时间的情况下,将队列中缓存的原始数据包分别进行喷泉编码,得到编码数据包。Next, in step S103, when it is judged that the number of original data packets in the queue reaches the preset number or the waiting time of the original data packets in the queue exceeds the preset time, the original data packets buffered in the queue are respectively subjected to fountain encoding , to get the encoded data packet.
具体地,如果在预设时间内队列中原始数据包的个数达到预设数目,便可以对队列中缓存的原始数据包进行喷泉编码,得到编码数据包;如果队列中原始数据包的个数没有达到预设数目,而原始数据包的等待时间超过预设时间,便可以对队列中缓存的原始数据包进行喷泉编码,得到编码数据包。Specifically, if the number of original data packets in the queue reaches the preset number within the preset time, fountain coding can be performed on the original data packets cached in the queue to obtain encoded data packets; if the number of original data packets in the queue If the preset number is not reached, but the waiting time of the original data packets exceeds the preset time, the original data packets buffered in the queue can be fountain encoded to obtain encoded data packets.
更为具体地,在判断队列中原始数据包的数目没有达到预设数目或队列中原始数据包的等待时间没有超过预设时间的情况下,继续等待,直到队列中原始数据包的数目达到预设数目或队列中原始数据包的等待时间超过预设时间。More specifically, when it is judged that the number of original data packets in the queue does not reach the preset number or the waiting time of the original data packets in the queue does not exceed the preset time, continue to wait until the number of original data packets in the queue reaches the preset number. Set the number or wait time of raw packets in the queue for more than a preset time.
最后,在步骤S104中,获取用于传输所述编码数据包的多个隧道的整体状况,并根据所述整体状况选择相应的传输模式,及在相应的传输模式下,根据所述编码数据包的度值为所述编码数据包选择相应的隧道,并在所述编码数据包传输过程中的不同阶段相应地调整其传输方式,从而实现所述原始数据包的多路并行传输。Finally, in step S104, the overall conditions of the multiple tunnels used to transmit the encoded data packets are acquired, and a corresponding transmission mode is selected according to the overall conditions, and in the corresponding transmission mode, according to the encoded data packets The degree value of is to select a corresponding tunnel for the coded data packet, and adjust its transmission mode correspondingly at different stages in the transmission process of the coded data packet, so as to realize multi-channel parallel transmission of the original data packet.
具体地,所述根据所述整体状况选择相应的传输模式,及在相应的传输模式下,并在所述编码数据包传输过程中的不同阶段相应地调整其传输方式,根据所述编码数据包的度值为所述编码数据包选择相应的隧道,包括:在根据所述整体状况判断所述多个隧道的整体传输性能良好的情况下,根据每个隧道的时延(latency)、带宽(bandwidth)、到达率(delivery rate)以及隧道之间的相关性(jointness)对每个隧道的传输质量进行评估分级,得到多个隧道的优先级顺序,采用优先级高于设定值的隧道传输度值低于预设值的第一编码数据包,优先级低于所述设定值的隧道传输度值高于预设值的第二编码数据包,在所述第一编码数据包的传输数量达到第一预设数量的情况下,采用优先级高于所述设定值的隧道传输所述第二编码数据包,优先级低于所述设定值的隧道传输所述第一编码数据包;在根据所述整体状况判断所述多个隧道的整体传输性能不佳的情况下,在所有隧道上传输所述第一编码数据包,在所述第一编码数据包的传输数量达到第二预设数量的情况下,在所有隧道上传输所述第二编码数据包。其中,所述第一编码数据包指的是度值低于预设值的编码数据包,所述第二编码数据包指的是度值高于预设值的编码数据包。Specifically, selecting the corresponding transmission mode according to the overall situation, and in the corresponding transmission mode, and adjusting the transmission mode correspondingly at different stages in the transmission process of the encoded data packet, according to the encoded data packet The degree value of is to select the corresponding tunnel for the coded data packet, including: under the condition that the overall transmission performance of the plurality of tunnels is judged to be good according to the overall condition, according to the delay (latency), bandwidth ( bandwidth), arrival rate (delivery rate) and the correlation (jointness) between tunnels to evaluate and classify the transmission quality of each tunnel, get the priority order of multiple tunnels, and use the tunnel transmission with a priority higher than the set value The first coded data packet whose degree value is lower than the preset value, the tunnel transmission second coded data packet whose degree value is higher than the preset value, and the transmission of the first coded data packet When the number reaches the first preset number, the second encoded data packet is transmitted using a tunnel with a priority higher than the set value, and the tunnel with a priority lower than the set value is used to transmit the first encoded data packet packets; if the overall transmission performance of the plurality of tunnels is judged to be poor according to the overall condition, transmit the first encoded data packets on all tunnels, and when the number of transmissions of the first encoded data packets reaches the second In the case of two preset numbers, the second coded data packet is transmitted on all tunnels. Wherein, the first encoded data packet refers to an encoded data packet whose degree value is lower than a preset value, and the second encoded data packet refers to an encoded data packet whose degree value is higher than a preset value.
数字喷泉编码所采用的度分布是影响编码性能和译码效率的关键因素,低度值的存在可以保证译码过程的启动,高度值的存在可以保证所有源数据(原始数据)均能参与编码,以保证不遗漏原始信息。合理的度分布设计能够让作为接收端的VPN服务器从尽可能少的编码数据包中恢复出所有的原始数据包。此处,本申请考虑结合喷泉码度分布特性和隧道多路径特性进行设计,提升链路利用率和译码成功率。在设计如何利用现存多条路径进行并行编码数据包传输时,考虑到隧道的不同传输性能,设计了以下两种传输模式:The degree distribution used in digital fountain encoding is a key factor affecting encoding performance and decoding efficiency. The existence of low degree values can ensure the start of the decoding process, and the existence of high values can ensure that all source data (original data) can participate in encoding , so as not to omit the original information. A reasonable degree distribution design can allow the VPN server as the receiving end to recover all original data packets from as few encoded data packets as possible. Here, this application considers designing in combination with fountain code degree distribution characteristics and tunnel multipath characteristics to improve link utilization and decoding success rate. When designing how to use existing multiple paths for parallel encoded data packet transmission, considering the different transmission performance of tunnels, the following two transmission modes are designed:
模式一:隧道整体传输性能良好Mode 1: The overall transmission performance of the tunnel is good
根据每条路径的时延、带宽、到达率以及路径之间的相关性对每条路径的传输质量进行评估分级,按照质量从好到坏设置相应路径优先级的由高到低。比如,在实际隧道中,一共有10条隧道,可按照质量从好到坏相应地把优先级设定为一级、二级和三级,其中一级隧道有4条,二级隧道有3条,三级隧道有3条。Evaluate and classify the transmission quality of each path according to the delay, bandwidth, arrival rate and correlation between paths of each path, and set the corresponding path priority from high to low according to the quality from good to bad. For example, in the actual tunnel, there are a total of 10 tunnels, and the priority can be set to level one, level two, and level three according to the quality from good to bad. Among them, there are four tunnels in the first level and three tunnels in the second level There are 3 grade-3 tunnels.
例如,实际传输编码数据包时,可把每10个原始数据包作为1个分组,在对它们进行喷泉编码后,送入隧道多路传输,直到接收端可以成功译码出原始数据包之后,再对下一个原始数据包分组进行相同处理和传输。具体到编码数据包的传输,分为以下两个阶段:For example, when actually transmitting encoded data packets, every 10 original data packets can be regarded as a packet, and after they are fountain-encoded, they are sent to the tunnel for multiplexing until the receiving end can successfully decode the original data packets. Perform the same processing and transmission on the next original data packet group. Specific to the transmission of encoded data packets, it is divided into the following two stages:
第一阶段:优先级高于设定值的链路传输度值低于预设值的第一编码数据包,优先级低于设定值的链路传输度值高于预设值的第二编码数据包。The first stage: the first encoded data packet whose priority is higher than the set value is the first coded data packet whose transmission degree value is lower than the preset value, and the second coded packet whose priority is lower than the set value is higher than the preset value. Encode the packet.
在编码数据包传输的开始阶段,选择优先级高于设定值的路径传输度值低于预设值的第一编码数据包,优先级低于设定值的路径传输其他度值的编码数据包,使译码端收到足够多的度为1和其他低度的编码数据包,一方面保证译码过程的开始,另一方面保证译码器可以在后续译码过程中译码度值更大的编码数据包。在实际隧道中,选用一级和二级隧道传输度值低于预设值的第一编码数据包,三级隧道传输度值高于预设值的第二编码数据包。At the beginning of the transmission of encoded data packets, select a path with a priority higher than the set value to transmit the first encoded data packet with a degree value lower than the preset value, and a path with a priority lower than the set value to transmit encoded data with other degree values packets, so that the decoding end receives enough coded data packets with degree 1 and other low degrees, on the one hand to ensure the start of the decoding process, and on the other hand to ensure that the decoder can decode the degree value in the subsequent decoding process Larger encoded packets. In an actual tunnel, first-level and second-level tunnels are selected to transmit the first encoded data packets whose degrees are lower than a preset value, and third-level tunnels are selected to transmit second encoded data packets whose degrees are higher than a preset value.
第二阶段:优先级高于设定值的链路传输度值高于预设值的第二编码数据包,优先级低于设定值的链路传输度值低于预设值的第一编码数据包。The second stage: the second coded data packet whose priority is higher than the set value is the second coded data packet whose transmission degree value is higher than the preset value, and the first encoded data packet whose priority is lower than the set value is lower than the preset value. Encode the packet.
在译码端可以顺利译出一定数量的编码数据包之后,如果仍优先传输度值低于预设值的第一编码数据包,译码器将会收到很多冗余的编码数据包,就需要作为发送端的VPN服务器产生更多的编码数据包才能译出所有的原始数据包。此时进入传输的第二阶段,改用优先级高于设定值的几条路径传递度值高于预设值的第二编码数据包,优先级低于设定值的路径传输度值低于预设值的第一编码数据包,减少冗余数据包的数量,增加覆盖所有源数据包的概率,从而可以减少编码数据包的传输次数。例如,在实际隧道中,选用一级和二级隧道传输度值高于预设值的第二编码数据包,三级隧道传输度值低于预设值的第一编码数据包。After a certain number of encoded data packets can be successfully decoded at the decoding end, if the first encoded data packet whose degree value is lower than the preset value is still given priority, the decoder will receive a lot of redundant encoded data packets, and the The VPN server as the sender needs to generate more encoded data packets to decipher all the original data packets. At this time, enter the second stage of transmission, use several paths with higher priority than the set value instead of the second coded data packet whose transmission degree value is higher than the preset value, and the transmission degree value of the path with priority lower than the set value is low The number of redundant data packets is reduced, and the probability of covering all source data packets is increased, thereby reducing the number of times of transmission of encoded data packets. For example, in an actual tunnel, the first-level and second-level tunnels are selected to transmit the second encoded data packets whose degree values are higher than the preset value, and the third-level tunnels are selected to transmit the first encoded data packets whose degree values are lower than the preset value.
在设计多路传输喷泉编码数据包时,很重要的一点是如何界定进入第二阶段的编码数据包的数量。如果这个数量设定太小,译码器未能收到足够多的度值低于预设值的第一编码数据包,这样,在译码时,可能没有度为1的编码数据包,译码过程无法持续下去;如果这个数量设定太大,传输过程中的冗余信息可能会大大增加。对于这两种情况,为了让译码器恢复原始信息,编码器都需要发送更多的编码数据包。针对不同的实际路径情况,这个值可以通过在实践中进行测试来合理设置。具体地,在实践过程中,发送端的分组调度模块根据接收端的反馈模块反馈的解码情况调试得到进入模式一的第二阶段的编码数据包的数量,也即是第一预设数量,该第一预设数量不会太大,也不会太小,不仅能够让译码过程持续下去,而且在传输过程中不会大量增加冗余信息。然后,将该第一预设数量赋给程序的相关变量,程序可以执行相应的操作。由于对原始数据包进行了喷泉编码,在发送端可以源源不断产生编码数据包,在接收端只要收到足够成功译码的编码数据包便可以停止发送端发送编码数据包,自适应性与灵活性有所增强。When designing multiplexed fountain encoded packets, it is important to define how many encoded packets enter the second stage. If the number is set too small, the decoder cannot receive enough first encoded data packets whose degree value is lower than the preset value. In this way, when decoding, there may be no encoded data packets with degree 1, and the decoding The encoding process cannot continue; if this number is set too large, the redundant information in the transmission process may be greatly increased. In both cases, the encoder needs to send more encoded packets in order for the decoder to recover the original information. For different actual path conditions, this value can be set reasonably by testing in practice. Specifically, in practice, the packet scheduling module at the sending end debugs according to the decoding situation fed back by the feedback module at the receiving end to obtain the number of encoded data packets entering the second stage of mode 1, that is, the first preset number. The preset number will not be too large, nor too small, not only can the decoding process continue, but also will not increase a large amount of redundant information in the transmission process. Then, the first preset quantity is assigned to the relevant variables of the program, and the program can perform corresponding operations. Due to the fountain encoding of the original data packets, the encoded data packets can be continuously generated at the sending end, and the sending end can stop sending encoded data packets at the receiving end as long as enough encoded data packets are successfully decoded. Adaptive and flexible Sex has increased.
模式二:隧道整体传输性能不佳Mode 2: The overall transmission performance of the tunnel is poor
因隧道整体传输性能不佳,这里就不再对隧道进行分级处理。和模式一相同,把每10个原始数据包作为一个分组,在对它们进行喷泉编码后,送入隧道多路传输,直到接收端可以成功译码出原始数据包之后,再对下一个原始数据包分组进行相同处理和传输。具体到数据包的传输,也分为两个阶段:Because the overall transmission performance of the tunnel is not good, the tunnel is no longer classified here. Same as mode 1, every 10 original data packets are regarded as a packet, after they are fountain coded, they are sent to the tunnel for multiplexing, until the receiving end can successfully decode the original data packet, and then the next original data Packets are processed and transmitted in the same way. Specific to the transmission of data packets, it is also divided into two stages:
第一阶段:在所有隧道上传输度值低于预设值的第一编码数据包Phase 1: Transmit the first encoded data packet with degree value lower than the preset value on all tunnels
隧道整体性能不佳,隧道间的差异性相比模式一不明显,此时在所有隧道上同时传输相同的度值低于预设值的第一编码数据包,使译码端收到足够多的度为1和其他低度的编码数据包,一方面可立即开始译码,降低传输时延;另一方面为后续译码度值更大的编码数据包打好基础,提高传输可靠性。The overall performance of the tunnel is not good, and the difference between the tunnels is not obvious compared with mode 1. At this time, the same first encoded data packet whose degree value is lower than the preset value is transmitted on all tunnels at the same time, so that the decoding end receives enough On the one hand, encoding data packets with a degree of 1 and other low degrees can be decoded immediately to reduce transmission delay; on the other hand, it can lay a solid foundation for subsequent encoded data packets with higher decoding degrees and improve transmission reliability.
第二阶段:在所有隧道上传输度值高于预设值的第二编码数据包Phase 2: Transmit a second encoded packet with a degree value higher than the preset value on all tunnels
在译码端可以顺利译出一定数量的编码数据包之后,如果仍优先传输度值低于预设值的第一编码数据包,译码器将会收到很多冗余的数据包,发送端就需要产生更多的编码数据包才能译出所有的原始数据包。此时进入传输的第二阶段,全部隧道传输度值高于预设值的第二编码数据包,覆盖所有源数据包的概率,保证译码所有数据包。在第二阶段,传输度值高于预设值的第二编码数据包时,可以在不同隧道上传输不同的编码数据包以提高传输效率,也可以在不同隧道上传输相同的数据包,通过获得分集增益来提高传输可靠性。After the decoding end can successfully decode a certain number of encoded data packets, if the first encoded data packet whose degree value is lower than the preset value is still given priority, the decoder will receive a lot of redundant data packets, and the sending end It is necessary to generate more encoded data packets to decipher all the original data packets. At this time, the second stage of transmission is entered, and all the second encoded data packets whose degree value is higher than the preset value are transmitted through the tunnel, covering the probability of all source data packets, so as to ensure that all data packets are decoded. In the second stage, when transmitting the second coded data packet whose degree value is higher than the preset value, different coded data packets can be transmitted on different tunnels to improve transmission efficiency, or the same data packet can be transmitted on different tunnels, through Gain diversity gain to improve transmission reliability.
与模式一相同,在模式二中的第二阶段提到的一定数量的编码数据包,如何来界定这个数量会是实际操作时需要考虑的问题。针对不同的实际路径情况,这个值依旧可以通过在实践中进行测试来合理设置。具体地,在实际操作的过程中,发送端的分组调度模块根据接收端的反馈模块反馈的解码情况调试得到进入模式二的第二阶段的编码数据包的数量,也即是第二预设数量。然后,将该第二预设数量赋给程序的相关变量,程序可以执行相应的操作。Same as Mode 1, how to define the certain number of encoded data packets mentioned in the second stage of Mode 2 will be a problem that needs to be considered in actual operation. For different actual path conditions, this value can still be set reasonably through testing in practice. Specifically, in the process of actual operation, the packet scheduling module at the sending end debugs according to the decoding situation fed back by the feedback module at the receiving end to obtain the number of encoded data packets entering the second stage of mode 2, that is, the second preset number. Then, the second preset quantity is assigned to the relevant variables of the program, and the program can perform corresponding operations.
以隧道性能为依据,设计了两种传输模式,模式一体现了在隧道性能良好的情况下对传输有效性的提升;模式二体现了在隧道性能不佳的情况下对传输可靠性的提升,两种模式互相补充,在不同的应用场景下有各自的优势。在每种模式下各自设计了两个传输阶段,充分结合了喷泉码的特点,合理利用编码数据包的度值设计传输方案。Based on tunnel performance, two transmission modes are designed. Mode 1 reflects the improvement of transmission effectiveness when the tunnel performance is good; mode 2 reflects the improvement of transmission reliability when the tunnel performance is poor. The two modes complement each other and have their own advantages in different application scenarios. In each mode, two transmission stages are designed respectively, fully combining the characteristics of the fountain code, and rationally using the degree value of the encoded data packet to design the transmission scheme.
优选地,所述方法还包括:接收接收端对所述编码数据包解码而反馈的解码信息,在根据所述解码信息得到所述接收端成功解码出原始数据包的情况下,停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。藉此,能够进一步提升隧道多路传输的可靠性。Preferably, the method further includes: receiving decoding information fed back by the receiving end for decoding the encoded data packet, and stopping transmission of the original data packet when the receiving end successfully decodes the original data packet according to the decoding information Encode the packet, and do the same processing and transmission for the next batch of raw packets. Thereby, the reliability of tunnel multiplex transmission can be further improved.
本实施例在网络层应用喷泉码,对两个网络之间传输的数据包进行编解码,实现了数据包在两个网络之间的透明传输,相比于在物理层和应用层的部署而言,本实施例部署更加高效,只需在VPN服务器上部署本协议,无需改动终端和其他中间数据转发设备。不同于基于MPTCP协议的多路径传输方式,尽管有多条路径,但最终仍只选择一条路径进行数据传输,本实施例因为在网络层上考虑数据包的并行多路传输,所以可以充分利用存在的所有隧道,充分利用网络容量,提高了隧道利用率。This embodiment applies the fountain code at the network layer to encode and decode the data packets transmitted between the two networks, and realizes the transparent transmission of the data packets between the two networks. Compared with the deployment at the physical layer and the application layer In other words, the deployment of this embodiment is more efficient, and the protocol only needs to be deployed on the VPN server without changing terminals and other intermediate data forwarding devices. Different from the multi-path transmission method based on the MPTCP protocol, although there are multiple paths, only one path is finally selected for data transmission. This embodiment considers the parallel multiplex transmission of data packets on the network layer, so it can make full use of existing All the tunnels can make full use of the network capacity and improve the tunnel utilization.
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。For the method embodiment, for the sake of simple description, it is expressed as a series of action combinations, but those skilled in the art should know that the embodiment of the present invention is not limited by the described action order, because according to the embodiment of the present invention , certain steps may be performed in other order or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification belong to preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.
图2是本发明一实施例提供的基于喷泉码的多路并行传输装置的结构示意图。如图2所示,本发明一实施例提供的基于喷泉码的多路并行传输装置包括:Fig. 2 is a schematic structural diagram of a fountain code-based multi-channel parallel transmission device provided by an embodiment of the present invention. As shown in Figure 2, the multi-channel parallel transmission device based on fountain codes provided by an embodiment of the present invention includes:
第一缓存模块201,用于根据待发送的原始数据包的目的地址得到对应的接收端地址,并根据所述接收端地址将待发送的原始数据包分别缓存在不同的队列中;The first cache module 201 is used to obtain the corresponding receiving end address according to the destination address of the original data packet to be sent, and cache the original data packet to be sent in different queues according to the receiving end address;
第一判断模块202,用于对于每个队列,判断队列中原始数据包的数目是否达到预设数目或队列中原始数据包的等待时间是否超过预设时间;The first judging module 202 is used for, for each queue, judging whether the number of original data packets in the queue reaches a preset number or whether the waiting time of the original data packets in the queue exceeds a preset time;
喷泉码编码模块203,用于在判断队列中原始数据包的数目达到预设数目或队列中原始数据包的等待时间超过预设时间的情况下,将队列中缓存的原始数据包分别进行喷泉编码,得到编码数据包;Fountain code encoding module 203, for judging that the number of original data packets in the queue reaches the preset number or the waiting time of the original data packets in the queue exceeds the preset time, perform fountain encoding on the original data packets cached in the queue respectively , to get the encoded data packet;
分组调度模块204,用于获取用于传输所述编码数据包的多个隧道的整体状况,并根据所述整体状况选择相应的传输模式,及在相应的传输模式下,根据所述编码数据包的度值为所述编码数据包选择相应的隧道,并在所述编码数据包传输过程中的不同阶段相应地调整其传输方式,从而实现所述原始数据包的多路并行传输。A packet scheduling module 204, configured to acquire the overall status of multiple tunnels used to transmit the encoded data packets, and select a corresponding transmission mode according to the overall status, and in the corresponding transmission mode, according to the encoded data packets The degree value of is to select a corresponding tunnel for the coded data packet, and adjust its transmission mode correspondingly at different stages in the transmission process of the coded data packet, so as to realize multi-channel parallel transmission of the original data packet.
在本发明一可选实施例中,所述装置还包括:In an optional embodiment of the present invention, the device further includes:
路径管理模块205,用于根据预设的路由算法计算得到自身与任意一个接收端的多条不相交路径集。The path management module 205 is configured to calculate multiple disjoint path sets between itself and any receiving end according to a preset routing algorithm.
在本发明一可选实施例中,所述分组调度模块204,还用于:In an optional embodiment of the present invention, the packet scheduling module 204 is further configured to:
接收接收端对所述编码数据包解码而反馈的解码信息,在根据所述解码信息得到所述接收端成功解码出原始数据包的情况下,停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。receiving the decoding information fed back by the receiving end for decoding the encoded data packet, and stopping the transmission of the encoded data packet when the receiving end has successfully decoded the original data packet according to the decoding information, and sending the next batch of Raw packets are processed and transmitted in the same way.
在本发明一可选实施例中,所述分组调度模块204,具体用于:In an optional embodiment of the present invention, the packet scheduling module 204 is specifically used for:
在根据所述整体状况判断所述多个隧道的整体传输性能良好的情况下,When it is judged according to the overall condition that the overall transmission performance of the multiple tunnels is good,
根据每个隧道的时延、带宽、到达率以及隧道之间的相关性对每个隧道的传输质量进行评估分级,得到多个隧道的优先级顺序,Evaluate and classify the transmission quality of each tunnel according to the delay, bandwidth, arrival rate of each tunnel, and the correlation between tunnels, and obtain the priority order of multiple tunnels.
采用优先级高于设定值的隧道传输度值低于预设值的第一编码数据包,优先级低于所述设定值的隧道传输度值高于预设值的第二编码数据包,Using the first encoded data packet whose priority is higher than the set value of the tunnel transmission degree value is lower than the preset value, and the priority is lower than the set value The second encoded data packet whose tunnel transmission degree value is higher than the preset value ,
在所述第一编码数据包的传输数量达到第一预设数量的情况下,采用优先级高于所述设定值的隧道传输所述第二编码数据包,优先级低于所述设定值的隧道传输所述第一编码数据包;When the number of transmissions of the first encoded data packets reaches the first preset number, transmit the second encoded data packets using a tunnel with a priority higher than the set value, and a priority lower than the set value tunneling of said first encoded data packet;
在根据所述整体状况判断所述多个隧道的整体传输性能不佳的情况下,In the case where the overall transmission performance of the plurality of tunnels is judged to be poor according to the overall condition,
在所有隧道上传输所述第一编码数据包,transmitting said first encoded data packet on all tunnels,
在所述第一编码数据包的传输数量达到第二预设数量的情况下,在所有隧道上传输所述第二编码数据包。When the number of transmissions of the first encoded data packets reaches a second preset number, the second encoded data packets are transmitted on all tunnels.
对于本发明一实施例提供的基于喷泉码的多路并行传输装置中还涉及的具体细节已在本发明一实施例提供的基于喷泉码的多路并行传输方法中作了详细的描述,在此不再赘述。对于本发明一实施例提供的基于喷泉码的多路并行传输装置可设置于发送端中。The specific details involved in the fountain code-based multi-channel parallel transmission device provided by an embodiment of the present invention have been described in detail in the fountain code-based multiple-channel parallel transmission method provided by an embodiment of the present invention, here No longer. The fountain code-based multi-channel parallel transmission device provided by an embodiment of the present invention can be set in the sending end.
图3是本发明一实施例提供的基于喷泉码的多路并行传输方法的流程图。如图3所示,本发明一实施例提供的基于喷泉码的多路并行传输方法包括:Fig. 3 is a flowchart of a fountain code-based multi-channel parallel transmission method provided by an embodiment of the present invention. As shown in FIG. 3, the multi-channel parallel transmission method based on fountain codes provided by an embodiment of the present invention includes:
在步骤S301中,接收多个隧道传输的数据包,并采用隧道协议对所述数据包进行解封装,过滤得到编码数据包。In step S301, a plurality of tunneled data packets are received, and the tunneling protocol is used to decapsulate the data packets, and the encoded data packets are obtained by filtering.
具体地,数据包通过多路径达到作为接收端的VPN服务器,隧道协议对数据包进行解封装,在VPN服务器中过滤得到编码数据包。Specifically, the data packet reaches the VPN server as the receiving end through multiple paths, the tunnel protocol decapsulates the data packet, and filters the encoded data packet in the VPN server.
接着,在步骤S302中,根据所述编码数据包的源地址将所述编码数据包分别缓存在不同的队列中。Next, in step S302, the encoded data packets are respectively buffered in different queues according to the source addresses of the encoded data packets.
具体地,将源地址相同的编码数据包缓存在同一队列中,也就是说,一个队列对应一个作为发送端的VPN服务器。Specifically, encoded data packets with the same source address are cached in the same queue, that is, one queue corresponds to one VPN server as the sending end.
紧接着,在步骤S303中,对于每个队列,判断队列中编码数据包的数目是否达到解码要求的数目。Next, in step S303, for each queue, it is judged whether the number of encoded data packets in the queue reaches the number required for decoding.
最后,在步骤S304中,在判断队列中编码数据包的数目达到解码要求的数目的情况下,对队列中缓存的编码数据包分别进行喷泉解码,得到原始数据包,从而实现所述原始数据包的多路并行传输。Finally, in step S304, when it is judged that the number of encoded data packets in the queue reaches the number required for decoding, fountain decoding is performed on the encoded data packets buffered in the queue to obtain the original data packets, thereby realizing the original data packet multiple parallel transmissions.
具体地,在判断队列中编码数据包的数目没有达到解码要求的数目的情况下,继续等待,直到队列中缓存的编码数据包达到解码要求的数目。Specifically, when it is judged that the number of encoded data packets in the queue does not reach the number required for decoding, continue to wait until the number of encoded data packets buffered in the queue reaches the number required for decoding.
优选地,所述方法还包括:根据解码情况向发送端反馈解码信息,以使得所述发送端根据所述解码信息停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。藉此,能够进一步提升隧道多路传输的可靠性。Preferably, the method further includes: feeding back decoding information to the sending end according to the decoding situation, so that the sending end stops transmitting the encoded data packets according to the decoding information, and performs the same processing and processing on the next batch of original data packets transmission. Thereby, the reliability of tunnel multiplex transmission can be further improved.
本实施例通过将要发送到同一接收端的原始数据包进行缓存,在原始数据包达到预设数目后或原始数据包等待超时后,对原始数据包进行喷泉编码,得到编码数据包,然后,根据隧道的整体状态和编码数据包的度值为编码数据包选择相应的隧道,并将编码数据包并行传输至接收端,接收端采用隧道协议对多个隧道传输的数据包进行解封装,过滤得到编码数据包,并根据编码数据包的源地址将编码数据包分别缓存在不同的队列中,在判断队列中编码数据包的数目达到解码要求的数目的情况下,对队列中缓存的编码数据包分别进行喷泉解码,得到原始数据包,不仅能够有效提高隧道的传输可靠性,而且还能够采用多隧道并行传输来实现隧道间负载均衡,减少拥堵,提高网络的吞吐量。In this embodiment, the original data packets to be sent to the same receiving end are cached, and after the original data packets reach the preset number or after the original data packets wait for timeout, fountain coding is performed on the original data packets to obtain the encoded data packets, and then, according to the tunnel The overall state of the encoded data packet and the degree value of the encoded data packet select the corresponding tunnel, and transmit the encoded data packet to the receiving end in parallel. The receiving end uses the tunnel protocol to decapsulate the data packets transmitted by multiple tunnels, and filters to obtain the encoded data packet. data packets, and cache the encoded data packets in different queues according to the source address of the encoded data packets. Performing fountain decoding to obtain original data packets can not only effectively improve the transmission reliability of the tunnel, but also use multi-tunnel parallel transmission to achieve load balancing between tunnels, reduce congestion, and improve network throughput.
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。For the method embodiment, for the sake of simple description, it is expressed as a series of action combinations, but those skilled in the art should know that the embodiment of the present invention is not limited by the described action order, because according to the embodiment of the present invention , certain steps may be performed in other order or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification belong to preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.
图4是本发明一实施例提供的基于喷泉码的多路并行传输装置的结构示意图。如图4所示,本发明一实施例提供的基于喷泉码的多路并行传输装置包括:Fig. 4 is a schematic structural diagram of a fountain code-based multi-channel parallel transmission device provided by an embodiment of the present invention. As shown in Figure 4, the multi-channel parallel transmission device based on fountain codes provided by an embodiment of the present invention includes:
接收模块401,用于接收多个隧道传输的数据包,并采用隧道协议对所述数据包进行解封装,过滤得到编码数据包;The receiving module 401 is configured to receive multiple tunnel-transmitted data packets, and use a tunneling protocol to decapsulate the data packets, and filter to obtain encoded data packets;
第二缓存模块402,用于根据所述编码数据包的源地址将所述编码数据包分别缓存在不同的队列中;The second caching module 402 is configured to respectively buffer the encoded data packets in different queues according to the source address of the encoded data packets;
第二判断模块403,用于对于每个队列,判断队列中编码数据包的数目是否达到解码要求的数目;The second judging module 403 is used for, for each queue, judging whether the number of encoded data packets in the queue reaches the number required for decoding;
喷泉码解码模块404,用于在判断队列中编码数据包的数目达到解码要求的数目的情况下,对队列中缓存的编码数据包分别进行喷泉解码,得到原始数据包,从而实现所述原始数据包的多路并行传输。Fountain code decoding module 404, for judging that the number of encoded data packets in the queue reaches the number required for decoding, perform fountain decoding on the encoded data packets cached in the queue respectively to obtain original data packets, thereby realizing the original data Multiple parallel transmission of packets.
在本发明一可选实施例中,所述装置还包括:In an optional embodiment of the present invention, the device further includes:
反馈模块405,用于根据解码情况向发送端反馈解码信息,以调控多条隧道中编码数据包的传输。此外,还用于发送端根据所述解码信息停止传输所述编码数据包,并对下一批原始数据包进行相同处理和传输。The feedback module 405 is configured to feed back decoding information to the sending end according to the decoding situation, so as to regulate the transmission of encoded data packets in multiple tunnels. In addition, it is also used for the sending end to stop transmitting the encoded data packets according to the decoding information, and perform the same processing and transmission on the next batch of original data packets.
对于本发明一实施例提供的基于喷泉码的多路并行传输装置中还涉及的具体细节已在本发明一实施例提供的基于喷泉码的多路并行传输方法中作了详细的描述,在此不再赘述。对于本发明一实施例提供的基于喷泉码的多路并行传输装置可设置于接收端中。The specific details involved in the fountain code-based multi-channel parallel transmission device provided by an embodiment of the present invention have been described in detail in the fountain code-based multiple-channel parallel transmission method provided by an embodiment of the present invention, here No longer. The fountain code-based multi-channel parallel transmission device provided by an embodiment of the present invention can be set in the receiving end.
图5是本发明一实施例提供的基于喷泉码的多路并行传输方法的工作流程图。如图5所示,具体工作流程的步骤如下:Fig. 5 is a working flowchart of a fountain code-based multi-channel parallel transmission method provided by an embodiment of the present invention. As shown in Figure 5, the specific workflow steps are as follows:
步骤(1),网络中的VPN服务器(以下简称服务器)通过相互认证,分别建立三层隧道连接,构成一个基于隧道的VPN网络;Step (1), the VPN server (hereinafter referred to as the server) in the network establishes respectively three layers of tunnel connections through mutual authentication, forming a tunnel-based VPN network;
步骤(2),路径管理模块通过路由算法得到任意两个服务器之间的多条不相交路径集;Step (2), the path management module obtains multiple disjoint path sets between any two servers through a routing algorithm;
步骤(3),在发送方服务器中,根据要发送的IP包的目的地址得到对应的目的VPN服务器地址,根据目的服务器地址将IP包分别缓存在不同的队列中;Step (3), in the sender server, obtain the corresponding destination VPN server address according to the destination address of the IP packet to be sent, and cache the IP packets in different queues respectively according to the destination server address;
步骤(4),对于每个缓存队列,判断队列中的数据包数目是否达到喷泉码的编码要求,或者等待是否超时,如果是,将队列中的数据包进行喷泉编码,并继续进行下一步,如果否,继续步骤(3);Step (4), for each cache queue, judge whether the number of data packets in the queue reaches the encoding requirement of the fountain code, or whether the wait is timed out, if so, carry out fountain coding to the data packets in the queue, and proceed to the next step, If not, proceed to step (3);
步骤(5),分组调度模块根据隧道状态选择相应的传输模式,在相应模式下为每个编码数据包选择相应的隧道进行发送,隧道(子路径)封装编码数据包并发送数据包。Step (5), the packet scheduling module selects the corresponding transmission mode according to the tunnel state, selects the corresponding tunnel for each encoded data packet in the corresponding mode to send, and the tunnel (sub-path) encapsulates the encoded data packet and sends the data packet.
步骤(6),数据包通过多路径到达接收方服务器,隧道协议对数据包进行解封装,在接收服务器中过滤出编码数据包,并根据编码数据包的源服务器地址分别进行缓存;Step (6), the data packet arrives at the receiver server through multiple paths, the tunnel protocol decapsulates the data packet, filters out the encoded data packet in the receiving server, and caches them respectively according to the source server address of the encoded data packet;
步骤(7),同一源地址的编码数据包达到解码要求后被送到解码模块进行解码,并将解码情况反馈到步骤(5)中的分组调度模块,参与数据包的路径分配;In step (7), the encoded data packet of the same source address is sent to the decoding module for decoding after reaching the decoding requirement, and the decoding situation is fed back to the packet scheduling module in the step (5) to participate in the path distribution of the data packet;
步骤(8),解码后的数据包被交给IP协议处理。In step (8), the decoded data packet is handed over to the IP protocol for processing.
隧道是基于现有的公用网络搭建的,根据一定的路由算法可以得到发送端和接收端之间多条质量情况不同的路径。为了提高隧道通信网络的可靠性,减少丢包对网络性能的影响,提升网络吞吐量,本发明结合多路传输及喷泉码的优势,提出一种基于喷泉码的隧道多路并行可靠传输方法和装置。其基本思想是:首先根据路由算法计算得到发送端到接收端服务器之间的多条路径集,然后在发送端的VPN服务器中,把要发送到同一个目的VPN服务器的IP数据包进行缓存,在数据包达到编码要求的个数后送到编码模块进行编码,最后分组调度模块根据编码包的度值以及反馈模块反馈的信息,为编码包选择相应的隧道发送出去,其中隧道封装时传输层可采用UDP协议,来保证实时性;在接收端的VPN服务器中,通过各子路径传输的数据包到达服务器后隧道协议进行解封装,然后将源地址为同一VPN服务器的数据包进行缓存,当达到解码要求后送去解码模块进行解码,并继续对被恢复的原始数据包进行后续处理。这样,在数据包进隧道前进行喷泉编码,并采用多路并行传输,可以有效提高传输可靠性,充分利用网络资源,提高网络吞吐量。图6是本发明一实施例提供的发送端和接收端整体的结构模型示意图。The tunnel is built based on the existing public network. According to a certain routing algorithm, multiple paths with different quality conditions between the sending end and the receiving end can be obtained. In order to improve the reliability of the tunnel communication network, reduce the impact of packet loss on network performance, and improve network throughput, the present invention combines the advantages of multi-channel transmission and fountain codes, and proposes a tunnel multi-channel parallel reliable transmission method based on fountain codes and device. The basic idea is: firstly calculate the multiple path sets between the sending end and the receiving end server according to the routing algorithm, and then cache the IP data packets to be sent to the same destination VPN server in the VPN server at the sending end, After the number of data packets reaches the encoding requirement, it is sent to the encoding module for encoding. Finally, the packet scheduling module selects the corresponding tunnel for the encoding packet to send out according to the degree value of the encoding packet and the information fed back by the feedback module. When the tunnel is encapsulated, the transport layer can The UDP protocol is used to ensure real-time performance; in the VPN server at the receiving end, after the data packets transmitted through each sub-path arrive at the server, the tunnel protocol decapsulates, and then caches the data packets whose source address is the same VPN server. After requesting, it is sent to the decoding module for decoding, and continues to perform subsequent processing on the restored original data packet. In this way, fountain coding is performed before data packets enter the tunnel, and multi-channel parallel transmission is adopted, which can effectively improve transmission reliability, make full use of network resources, and increase network throughput. Fig. 6 is a schematic diagram of an overall structural model of a sending end and a receiving end provided by an embodiment of the present invention.
应当注意的是,在本发明的系统的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。It should be noted that among the various components of the system of the present invention, the components are logically divided according to the functions to be realized, but the present invention is not limited thereto, and each component can be re-divided as required Or combined, for example, some components can be combined into a single component, or some components can be further broken down into more subcomponents.
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。The various component embodiments of the present invention may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art should understand that a microprocessor or a digital signal processor (DSP) may be used in practice to implement some or all functions of some or all components in the system according to the embodiments of the present invention. The present invention can also be implemented as an apparatus or an apparatus program (for example, a computer program and a computer program product) for performing a part or all of the methods described herein. Such a program for realizing the present invention may be stored on a computer-readable medium, or may be in the form of one or more signals. Such a signal may be downloaded from an Internet site, or provided on a carrier signal, or provided in any other form.
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a unit claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The use of the words first, second, and third, etc. does not indicate any order. These words can be interpreted as names.
以上实施方式仅适于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。The above embodiments are only suitable for illustrating the present invention, rather than limiting the present invention. Those of ordinary skill in the relevant technical fields can make various changes and modifications without departing from the spirit and scope of the present invention. Therefore, all Equivalent technical solutions also belong to the category of the present invention, and the scope of patent protection of the present invention should be defined by the claims.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610757584.6A CN106254202B (en) | 2016-08-29 | 2016-08-29 | A kind of multidiameter delay transmission method and device based on fountain codes |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201610757584.6A CN106254202B (en) | 2016-08-29 | 2016-08-29 | A kind of multidiameter delay transmission method and device based on fountain codes |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN106254202A true CN106254202A (en) | 2016-12-21 |
| CN106254202B CN106254202B (en) | 2019-08-02 |
Family
ID=57596684
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201610757584.6A Active CN106254202B (en) | 2016-08-29 | 2016-08-29 | A kind of multidiameter delay transmission method and device based on fountain codes |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN106254202B (en) |
Cited By (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107666372A (en) * | 2017-09-15 | 2018-02-06 | 北京邮电大学 | A multi-link coordinated transmission method and device based on rateless coding |
| WO2018146521A1 (en) * | 2017-02-11 | 2018-08-16 | Pismo Labs Technology Ltd. | Methods and systems for transmitting information packets through tunnel groups at a network node |
| WO2018171599A1 (en) * | 2017-03-24 | 2018-09-27 | 华为技术有限公司 | Data transmission method and network-side node |
| CN108809515A (en) * | 2018-04-26 | 2018-11-13 | 西安交通大学 | Multicast security transmission method based on fountain codes under a kind of wireless buffer network |
| CN109379287A (en) * | 2018-12-25 | 2019-02-22 | 广东浪潮大数据研究有限公司 | A kind of the input way to play for time and input buffer unit of data packet |
| CN109951260A (en) * | 2018-02-12 | 2019-06-28 | 华为技术有限公司 | A kind of data packet sending method and related equipment |
| CN110191342A (en) * | 2019-07-02 | 2019-08-30 | 北京字节跳动网络技术有限公司 | Method for video coding and equipment, video encoding/decoding method and equipment |
| CN110661860A (en) * | 2019-09-18 | 2020-01-07 | 华为技术有限公司 | Method and device for establishing a call |
| CN111262659A (en) * | 2020-03-04 | 2020-06-09 | 华南理工大学 | Bulk acknowledgment and reply method for Semi-TCP packet based on fountain code |
| CN112436994A (en) * | 2020-11-17 | 2021-03-02 | 联想(北京)有限公司 | Data transmission method and electronic equipment |
| CN113377898A (en) * | 2021-08-16 | 2021-09-10 | 南京东大智能化系统有限公司 | Analysis method based on mass discrete data |
| CN113438056A (en) * | 2021-06-24 | 2021-09-24 | 国汽(北京)智能网联汽车研究院有限公司 | Fountain code-based Internet of vehicles data transmission method and device and storage medium |
| CN114070780A (en) * | 2021-11-30 | 2022-02-18 | 中国石油大学(华东) | Fountain coding-based multi-path transmission method and system |
| CN114499752A (en) * | 2021-12-30 | 2022-05-13 | 西安交通大学 | A method for safe transmission of fountain codes based on multi-channel interlocking |
| CN115756951A (en) * | 2022-10-12 | 2023-03-07 | 上海慧程工程技术服务有限公司 | Industrial Internet of things data real-time uploading method and device |
| CN116170115A (en) * | 2023-04-19 | 2023-05-26 | 华南师范大学 | Digital fountain coding and decoding method, device and system based on codebook |
| WO2023160403A1 (en) * | 2022-02-25 | 2023-08-31 | 阿里巴巴(中国)有限公司 | Data processing method and apparatus |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104885397A (en) * | 2012-12-14 | 2015-09-02 | 华为技术有限公司 | Systems and methods for UE fountain relay based networks |
| US20160217039A1 (en) * | 2014-02-13 | 2016-07-28 | Quantum Corporation | Combined asynchronous and synchronous fountain code storage in an object store |
-
2016
- 2016-08-29 CN CN201610757584.6A patent/CN106254202B/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104885397A (en) * | 2012-12-14 | 2015-09-02 | 华为技术有限公司 | Systems and methods for UE fountain relay based networks |
| US20160217039A1 (en) * | 2014-02-13 | 2016-07-28 | Quantum Corporation | Combined asynchronous and synchronous fountain code storage in an object store |
Non-Patent Citations (2)
| Title |
|---|
| 朱宏鹏 等: ""喷泉码中LT码的次优度分布"", 《应用科学学报》 * |
| 赵旦峰 等: ""水声网络中喷泉码的应用研究现状与发展前景"", 《系统工程与电子技术》 * |
Cited By (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11799686B2 (en) | 2017-02-11 | 2023-10-24 | Pismo Labs Technology Limited | Methods and systems for transmitting information packets through tunnel groups at a network node |
| GB2567026A (en) * | 2017-02-11 | 2019-04-03 | Pismo Labs Technology Ltd | Methods and systems for transmitting information packets through tunnel groups at a network node |
| GB2567026B (en) * | 2017-02-11 | 2022-03-23 | Pismo Labs Technology Ltd | Methods and systems for transmitting information packets through tunnel groups at a network node |
| US10833891B2 (en) | 2017-02-11 | 2020-11-10 | Pismo Labs Technology Limited | Methods and systems for transmitting information packets through tunnel groups at a network node |
| WO2018146521A1 (en) * | 2017-02-11 | 2018-08-16 | Pismo Labs Technology Ltd. | Methods and systems for transmitting information packets through tunnel groups at a network node |
| WO2018171599A1 (en) * | 2017-03-24 | 2018-09-27 | 华为技术有限公司 | Data transmission method and network-side node |
| CN108631963A (en) * | 2017-03-24 | 2018-10-09 | 华为技术有限公司 | It is used for transmission the method and network side node of data |
| CN107666372B (en) * | 2017-09-15 | 2021-01-08 | 北京邮电大学 | Multilink cooperative transmission method and device based on rateless coding |
| CN107666372A (en) * | 2017-09-15 | 2018-02-06 | 北京邮电大学 | A multi-link coordinated transmission method and device based on rateless coding |
| CN109951260A (en) * | 2018-02-12 | 2019-06-28 | 华为技术有限公司 | A kind of data packet sending method and related equipment |
| US11444867B2 (en) | 2018-02-12 | 2022-09-13 | Huawei Technologies Co., Ltd. | Packet sending method and related device |
| CN109951260B (en) * | 2018-02-12 | 2020-04-03 | 华为技术有限公司 | Data packet sending method and related equipment |
| CN108809515A (en) * | 2018-04-26 | 2018-11-13 | 西安交通大学 | Multicast security transmission method based on fountain codes under a kind of wireless buffer network |
| CN108809515B (en) * | 2018-04-26 | 2020-08-18 | 西安交通大学 | A multicast security transmission method based on fountain code in wireless cache network |
| CN109379287A (en) * | 2018-12-25 | 2019-02-22 | 广东浪潮大数据研究有限公司 | A kind of the input way to play for time and input buffer unit of data packet |
| CN109379287B (en) * | 2018-12-25 | 2022-03-11 | 广东浪潮大数据研究有限公司 | Input buffering method and input buffering component for data packet |
| CN110191342A (en) * | 2019-07-02 | 2019-08-30 | 北京字节跳动网络技术有限公司 | Method for video coding and equipment, video encoding/decoding method and equipment |
| CN110661860A (en) * | 2019-09-18 | 2020-01-07 | 华为技术有限公司 | Method and device for establishing a call |
| CN111262659A (en) * | 2020-03-04 | 2020-06-09 | 华南理工大学 | Bulk acknowledgment and reply method for Semi-TCP packet based on fountain code |
| CN112436994A (en) * | 2020-11-17 | 2021-03-02 | 联想(北京)有限公司 | Data transmission method and electronic equipment |
| CN112436994B (en) * | 2020-11-17 | 2022-04-19 | 联想(北京)有限公司 | Data transmission method and electronic equipment |
| CN113438056A (en) * | 2021-06-24 | 2021-09-24 | 国汽(北京)智能网联汽车研究院有限公司 | Fountain code-based Internet of vehicles data transmission method and device and storage medium |
| CN113377898A (en) * | 2021-08-16 | 2021-09-10 | 南京东大智能化系统有限公司 | Analysis method based on mass discrete data |
| CN114070780B (en) * | 2021-11-30 | 2023-03-21 | 中国石油大学(华东) | Fountain coding-based multi-path transmission method and system |
| CN114070780A (en) * | 2021-11-30 | 2022-02-18 | 中国石油大学(华东) | Fountain coding-based multi-path transmission method and system |
| CN114499752A (en) * | 2021-12-30 | 2022-05-13 | 西安交通大学 | A method for safe transmission of fountain codes based on multi-channel interlocking |
| CN114499752B (en) * | 2021-12-30 | 2023-12-22 | 西安交通大学 | Fountain code safe transmission method based on multipath interlocking |
| WO2023160403A1 (en) * | 2022-02-25 | 2023-08-31 | 阿里巴巴(中国)有限公司 | Data processing method and apparatus |
| CN115756951A (en) * | 2022-10-12 | 2023-03-07 | 上海慧程工程技术服务有限公司 | Industrial Internet of things data real-time uploading method and device |
| CN115756951B (en) * | 2022-10-12 | 2024-03-26 | 上海慧程工程技术服务有限公司 | Industrial Internet of things data real-time uploading method and device |
| CN116170115A (en) * | 2023-04-19 | 2023-05-26 | 华南师范大学 | Digital fountain coding and decoding method, device and system based on codebook |
| CN116170115B (en) * | 2023-04-19 | 2023-06-27 | 华南师范大学 | Digital fountain coding and decoding method, device and system based on codebook |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106254202B (en) | 2019-08-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106254202B (en) | A kind of multidiameter delay transmission method and device based on fountain codes | |
| CN110912798B (en) | Method and system for transmitting data through aggregated connections | |
| JP6275751B2 (en) | Improved acknowledgment and retransmission mechanism | |
| Xu et al. | CMT-NC: improving the concurrent multipath transfer performance using network coding in wireless networks | |
| CN104159166B (en) | Based on the live video data transmission error control method of mobile network's packet loss state | |
| Xu et al. | Pipeline network coding-based multipath data transfer in heterogeneous wireless networks | |
| EP3860013B1 (en) | Message processing method and apparatus | |
| EP2613497B1 (en) | Method of transporting data in a sub-segmented manner | |
| CN109412677B (en) | Communication broadcast self-adaptive fusion method in satellite-ground cooperative block chain system | |
| CN102209079A (en) | Transmission control protocol (TCP)-based adaptive network control transmission method and system | |
| EP2962428A1 (en) | Method, apparatus, and protocol for improving performance in a wireless network | |
| US20110141904A1 (en) | Method and apparatus for transmitting packets of a two-way passenger data stream | |
| CN100505608C (en) | An adaptive congestion control method and system suitable for satellite networks | |
| CN102752184A (en) | Data communication system for real-time multicast service and method thereof | |
| WO2023093804A1 (en) | Packet loss management method and related apparatus | |
| CN106302213A (en) | A kind of method and device of data transmission | |
| JP2017092692A (en) | Data transmission control system and method, and data transmission control program | |
| CN105227276B (en) | A kind of peer-to-peer network data transmission method based on UDT | |
| JP4953965B2 (en) | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND PACKET TRANSMISSION METHOD | |
| WO2015109500A1 (en) | Data transmission method and apparatus | |
| JP6200870B2 (en) | Data transfer control device, method and program | |
| Hwang et al. | HMTP: Multipath transport protocol for multihoming wireless erasure networks | |
| Xylomenos et al. | Wireless link layer enhancements for TCP and UDP applications | |
| CN115102933B (en) | A real-time streaming media transmission method in a multi-interface environment | |
| US9172774B2 (en) | Technique for managing communications at a router |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |