CN110190893A - 一种基于dpdk的卫星信道高速可靠数据传输方法 - Google Patents
一种基于dpdk的卫星信道高速可靠数据传输方法 Download PDFInfo
- Publication number
- CN110190893A CN110190893A CN201910524082.2A CN201910524082A CN110190893A CN 110190893 A CN110190893 A CN 110190893A CN 201910524082 A CN201910524082 A CN 201910524082A CN 110190893 A CN110190893 A CN 110190893A
- Authority
- CN
- China
- Prior art keywords
- data packet
- gateway
- dpdk
- data
- port
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/1851—Systems using a satellite or space-based relay
- H04B7/18513—Transmission in a satellite or space-based system
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于DPDK的卫星信道高速可靠数据传输方法,属于卫星通信技术领域。其利用DPDK在用户空间提供的轮询接收方式,将数据从网卡直接接收到应用程序,绕过Linux内核网络协议栈,避免了频繁的CPU中断和内存拷贝,显著提高了数据处理效率。在用户空间对接收到的数据报文根据其协议类型进行处理,对于非TCP报文,只是简单的缓存,在等到令牌后便从另一个端口转发出去;对于TCP报文,则需要按SCPS‑TP协议流程进行处理,以克服卫星信道长时延、高误码等特点。本发明能有效提高可靠数据传输的卫星信道利用率,完全兼容TCP协议,特别适合高通量卫星系统中的可靠数据传输。
Description
技术领域
本发明涉及卫星通信技术领域,特别是指一种基于DPDK的卫星信道高速可靠数据传输方法。
背景技术
卫星通信信道具有长时延、高误码等特点,传统TCP协议在这种信道条件下的传输效率很低,造成卫星信道带宽的浪费。SCPS-TP协议通过改进拥塞控制机制、选择性确认机制等,能够较好的克服卫星信道的影响,提高卫星信道带宽利用率。
但是,SCPS-TP的拥塞控制策略采用的是Vegas算法,Vegas的慢启动机制,在间隔一个RTT才会把cwnd增长一倍,cwnd增加方式显得保守缓慢,并且,其倍增cwnd的时候会造成包突发,过早结束指数增长的慢启动阶段,进入线性增长的拥塞避免阶段,对于网络性能影响很大。在连接建立后的初始传输阶段,传输速率增长较慢,需要十几秒甚至几十秒的时间才能到达理想速率。
此外,现有的TCP协议增强技术在收发数据时,数据包需要经过Linux内核网络协议栈,当收发数据量很大时,将导致频繁的CPU中断及内存拷贝,严重影响数据收发效率,无法满足高通量的卫星通信需求。
发明内容
有鉴于此,本发明提出一种基于DPDK的卫星信道高速可靠数据传输方法,该方法将DPDK技术与优化的SCPS-TP协议处理流程相结合,能够提高卫星信道数据传输带宽利用率,并提高数据的处理性能和传输效率,适用于卫星通信中的大量数据业务的高速可靠传输。
基于上述目的,本发明提供的技术方案是:
一种基于DPDK的卫星信道高速可靠数据传输方法,用于卫星通信的网关中,所述网关具有两个网卡;该方法包括以下步骤:
1.(1)将网关的两个网卡绑定到DPDK的用户态驱动上,分别作为网关的LAN端口和WAN端口,利用DPDK提供的rte_eth_rx_burst函数从网卡接收数据包,并将数据包直接送到实现SCPS-TP协议流程的用户空间;
2.(2)在SCPS-TP协议流程的用户空间中进行数据包的处理,记录数据包的MAC地址、MAC头部协议类型字段;
3.(3)根据数据包的MAC头部协议类型字段,识别数据包的协议类型,若非IP协议,则执行步骤(4);若为IP协议,则继续判断IP头部协议类型字段:若为TCP或SCPS-TP协议,则执行步骤(6),否则执行步骤(5);
4.(4)通过DPDK提供的rte_eth_tx_burst函数将数据包从网关的另一个端口转出;
5.(5)将数据包放入数据包缓存队列,在获取到令牌后通过DPDK提供的rte_eth_tx_burst函数将数据包从网关的另一个端口转出;
6.(6)根据TCP或SCPS-TP协议的传输层头部标志位字段分别按照步骤(7)(8)(9)进行处理;
7.(7)若头部标志位字段为SYN或SYN+ACK,则数据包的类型为TCP或SCPS-TP的连接建立请求或连接建立请求确认报文;此时执行如下步骤:
8.(701)记录数据包的连接信息,包括源IP地址、源端口、目的IP地址、目的端口;判断数据包来自网关的LAN端口还是WAN端口;
9.(702)若数据包来自网关的LAN端口,则将该数据包从TCP的SYN或SYN+ACK包转换为SCPS-TP的SYN或SYN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经WAN端口转发给对端的网关;
10.(703)若数据包来自网关的WAN端口,则将该数据包从SCPS-TP的SYN或SYN+ACK包转换为TCP的SYN或SYN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经LAN端口转发给数据业务终端;
11.(704)在建立SCPS-TP连接的过程中,进行数据接收缓冲区协商设置和SCPS-TP拥塞控制算法优化;
12.(8)若头部标志位字段为ACK,则数据包的类型为TCP或SCPS-TP的数据报文或确认报文;此时执行如下步骤:
13.(801)依据建立连接过程记录的连接信息,判断是否存在匹配的连接;
14.(802)若不存在,则丢弃该TCP报文;若存在,则进一步判断数据包来自网关的LAN端口还是WAN端口;
15.(803)若数据包来自网关的LAN端口,则通过DPDK提供的rte_rth_tx_burst函数经WAN端口将该TCP报文转发给对端的网关;此外,若数据包为TCP数据报文,则还需通过DPDK提供的rte_eth_tx_burst函数经LAN端口向数据业务发送终端回复数据已经到达目的终端的伪确认;
16.(804)若数据包来自网关的WAN端口,则通过DPDK提供的rte_rth_tx_burst函数经LAN端口将该TCP报文转发给数据业务终端;此外,若数据包为TCP数据报文,则还需跟据SCPS-TP的拥塞控制,通过DPDK提供的rte_eth_tx_burst函数经WAN端口向对端的网关回复伪确认;
17.(9)若头部标志位字段为FIN或FIN+ACK,则数据包的类型为TCP的拆除连接请求或拆除连接请求确认报文;执行如下步骤:
18.(901)依据建立连接过程记录的连接信息,匹配要拆除的连接;
19.(902)若匹配失败,则丢弃该拆除连接请求或拆除连接请求确认报文;若匹配成功,则进一步判断数据包来自网关的LAN端口还是WAN端口;
20.(903)若数据包来自网关的LAN端口,则将该数据包从TCP的FIN或FIN+ACK包转换为SCPS-TP的FIN或FIN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经WAN端口转发给对端网关;此外,若该数据包的头部标志位字段为FIN+ACK,则还需删除该数据包的TCP连接记录;
21.(904)若数据包来自网关的WAN端口,则将该数据包从SCPS-TP的FIN或FIN+ACK包转换为TCP的FIN或FIN+ACK包,然后通DPDK提供的rte_eth_tx_burst函数经LAN端口转发给数据业务终端;此外,若该数据包的头部标志位字段为FIN+ACK,则还需删除该数据包的SCPS-TP连接记录。
具体的,所述步骤(704)中,数据接收缓冲区协商设置的具体方式为:
23.(70411)在网关之间交换建立SCPS-TP连接申请时,利用TCP头部选项字段将自身设置的发送速率门限s_rate发送给对端网关,s_rate的单位为字节/秒;
24.(70412)对端网关根据发送速率门限s_rate和信道时延delay来设置数据接收缓冲区的大小,若s_rate×delay大于65535字节,则将缓冲区设置为s_rate×delay,否则将缓冲区设置为65535字节。
具体的,所述步骤(704)中,SCPS-TP拥塞控制算法优化的具体方式为:
26.(70421)将拥塞控制的初始窗口扩大因子设置为N,N的取值范围为1~10;
27.(70422)将网关WAN口的拥塞窗口初始值设置为BDP,其中,BDP是信道带宽与信道时延的乘积。
具体的,所述步骤(4)和步骤(5)中,将数据包从网关的另一个端口转出的具体方式为:若数据包从LAN口接收,则通过WAN口转出;若数据包从WAN口接收,则通过LAN口转出。
从上面的叙述可以看出,本发明技术方案的有益效果在于:
1、现有技术中的卫星信道存在长时延、高误码和带宽不对称的特点,这些特点会导致卫星信道数据传输带宽利用率较低的问题,本发明在两个TCP网关之间的空间链路中采用SCPS-TP协议,能够提高卫星信道数据传输带宽利用率。
2、本发明利用DPDK技术将数据包从网卡直接提取到用户空间,或者将数据从用户空间直接发送给网卡,从而可以绕过Linux内核网络协议栈,避免了频繁的CPU中断和内存拷贝,有效提高数据处理性能。
3、本发明在处理SCPS-TP建立连接流程时,引入缓冲区协商设置方法,能够保证接收缓冲区始终满足对端发送速率的要求,提高数据传输效率。
4、本发明通过优化拥塞控制参数,使得TCP数据传输的开始阶段迅速提升传输速率达到最高速率。
附图说明
为了更加清楚地描述本专利,下面提供一幅或多幅附图,这些附图旨在对本专利的背景技术、技术原理和/或某些具体实施方案做出辅助说明。
图1是本发明实施例中的数据流向示意图;
图2是本发明的应用场景示意图。
具体实施方式
为了便于本领域技术人员对本专利技术方案的理解,同时,为了使本专利的技术目的、技术方案和有益效果更加清楚,并使权利要求书的保护范围得到充分支持,下面以具体案例的形式对本专利的技术方案做出进一步的、更详细的说明。
一种基于DPDK的卫星信道高速可靠数据传输方法,用于卫星通信的网关中,所述网关具有两个网卡;该方法包括以下步骤:
28.(1)将网关的两个网卡绑定到DPDK的用户态驱动上,分别作为网关的LAN端口和WAN端口,利用DPDK提供的rte_eth_rx_burst函数从网卡接收数据包,并将数据包直接送到实现SCPS-TP协议流程的用户空间;
29.(2)在SCPS-TP协议流程的用户空间中进行数据包的处理,记录数据包的MAC地址、MAC头部协议类型字段;
30.(3)根据数据包的MAC头部协议类型字段,识别数据包的协议类型,若非IP协议,则执行步骤(4);若为IP协议,则继续判断IP头部协议类型字段:若为TCP或SCPS-TP协议,则执行步骤(6),否则执行步骤(5);
31.(4)通过DPDK提供的rte_eth_tx_burst函数将数据包从网关的另一个端口转出;
32.(5)将数据包放入数据包缓存队列,在获取到令牌后通过DPDK提供的rte_eth_tx_burst函数将数据包从网关的另一个端口转出;
33.(6)根据TCP或SCPS-TP协议的传输层头部标志位字段分别按照步骤(7)(8)(9)进行处理;
34.(7)若头部标志位字段为SYN或SYN+ACK,则数据包的类型为TCP或SCPS-TP的连接建立请求或连接建立请求确认报文;此时执行如下步骤:
35.(701)记录数据包的连接信息,包括源IP地址、源端口、目的IP地址、目的端口;判断数据包来自网关的LAN端口还是WAN端口;
36.(702)若数据包来自网关的LAN端口,则将该数据包从TCP的SYN或SYN+ACK包转换为SCPS-TP的SYN或SYN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经WAN端口转发给对端的网关;
37.(703)若数据包来自网关的WAN端口,则将该数据包从SCPS-TP的SYN或SYN+ACK包转换为TCP的SYN或SYN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经LAN端口转发给数据业务终端;
38.(704)在建立SCPS-TP连接的过程中,进行数据接收缓冲区协商设置和SCPS-TP拥塞控制算法优化;
39.(8)若头部标志位字段为ACK,则数据包的类型为TCP或SCPS-TP的数据报文或确认报文;此时执行如下步骤:
40.(801)依据建立连接过程记录的连接信息,判断是否存在匹配的连接;
41.(802)若不存在,则丢弃该TCP报文;若存在,则进一步判断数据包来自网关的LAN端口还是WAN端口;
42.(803)若数据包来自网关的LAN端口,则通过DPDK提供的rte_rth_tx_burst函数经WAN端口将该TCP报文转发给对端的网关;此外,若数据包为TCP数据报文,则还需通过DPDK提供的rte_eth_tx_burst函数经LAN端口向数据业务发送终端回复数据已经到达目的终端的伪确认;
43.(804)若数据包来自网关的WAN端口,则通过DPDK提供的rte_rth_tx_burst函数经LAN端口将该TCP报文转发给数据业务终端;此外,若数据包为TCP数据报文,则还需跟据SCPS-TP的拥塞控制,通过DPDK提供的rte_eth_tx_burst函数经WAN端口向对端的网关回复伪确认;
44.(9)若头部标志位字段为FIN或FIN+ACK,则数据包的类型为TCP的拆除连接请求或拆除连接请求确认报文;执行如下步骤:
45.(901)依据建立连接过程记录的连接信息,匹配要拆除的连接;
46.(902)若匹配失败,则丢弃该拆除连接请求或拆除连接请求确认报文;若匹配成功,则进一步判断数据包来自网关的LAN端口还是WAN端口;
47.(903)若数据包来自网关的LAN端口,则将该数据包从TCP的FIN或FIN+ACK包转换为SCPS-TP的FIN或FIN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经WAN端口转发给对端网关;此外,若该数据包的头部标志位字段为FIN+ACK,则还需删除该数据包的TCP连接记录;
48.(904)若数据包来自网关的WAN端口,则将该数据包从SCPS-TP的FIN或FIN+ACK包转换为TCP的FIN或FIN+ACK包,然后通DPDK提供的rte_eth_tx_burst函数经LAN端口转发给数据业务终端;此外,若该数据包的头部标志位字段为FIN+ACK,则还需删除该数据包的SCPS-TP连接记录。
具体的,所述步骤(704)中,数据接收缓冲区协商设置的具体方式为:
50.(70411)在网关之间交换建立SCPS-TP连接申请时,利用TCP头部选项字段将自身设置的发送速率门限s_rate发送给对端网关,s_rate的单位为字节/秒;
51.(70412)对端网关根据发送速率门限s_rate和信道时延delay来设置数据接收缓冲区的大小,若s_rate×delay大于65535字节,则将缓冲区设置为s_rate×delay,否则将缓冲区设置为65535字节。
具体的,所述步骤(704)中,SCPS-TP拥塞控制算法优化的具体方式为:
53.(70421)将拥塞控制的初始窗口扩大因子设置为N,N的取值范围为1~10;
54.(70422)将网关WAN口的拥塞窗口初始值设置为BDP,其中,BDP是信道带宽与信道时延的乘积。
具体的,所述步骤(4)和步骤(5)中,将数据包从网关的另一个端口转出的具体方式为:若数据包从LAN口接收,则通过WAN口转出;若数据包从WAN口接收,则通过LAN口转出。
具体来说,本方法在实际实施过程中包括以下环节:
1. DPDK部署
参照图1,将DPDK部署到TCP网关的Linux操作系统上。
首先编译DPDK源码包提供的脚本工具和加载模块,设置大页内存,然后关闭在Linux系统中预留给网关使用的两个网卡(端口),将关闭后的网卡绑定到DPDK的用户态驱动uio-igb上,分别作为TCP网关的局域网(LAN)口和广域网(WAN)口,记录各端口ID。
2. 程序启动
通过命令行指定程序所需的端口数量为2,所需CPU逻辑核数量为2,启动TCP协议增强软件可执行文件。
3. 数据接收
数据接收线程调用数据平面开发工作集DPDK提供的接收函数,接收客户端发送的数据包,所述接收函数为rte_eth_rx_burst函数,所述DPDK为预先构建于TCP增强应用底层的DPDK;
将网卡设置为混杂模式,当数据包到达网卡时,接收所有经过网卡的数据包,记录数据包接收端口ID。
将接收到的数据包放入共享队列。
4. 数据处理与发送
数据处理与发送线程从共享队列中获取数据接收线程接收到用户空间的数据包;
确定网关接收数据包的类型,并基于所述数据包的类型对所述数据包进行处理,包括:
4.1基于数据包MAC头部的协议类型字段确定所述数据包的类型为ARP包;
则通过DPDK提供的rte_eth_tx_burst函数从另一个端口转出。具体方式为:若从LAN口接收,则通过WAN口转出;若从WAN口接收,则通过LAN口转出;
4.2基于数据包MAC头部的协议类型字段确定所述数据包的类型为IP包;则需进一步判断数据包IP头部的协议类型。
4.3基于数据包IP头部的协议类型字段确定所述数据包的传输层协议类型为ICMP协议或UDP协议;
则进入数据包缓存队列,在获取到令牌后通过DPDK提供的rte_eth_tx_burst函数从另一个端口转出。具体方式为:若从LAN口接收,则通过WAN口转出;若从WAN口接收,则通过LAN口转出;
4.5基于数据包IP头部的协议类型字段确定所述数据包的传输层协议类型为TCP协议或SCPS-TP协议;
则根据TCP或SCPS-TP协议的传输层头部标志位字段确定所述TCP或SCPS-TP数据包的请求类型,分别按照下面步骤(1)(2)(3)进行处理;
(1)所述头部标志位字段为SYN或SYN+ACK,确定所述数据包的类型为TCP或SCPS-TP连接建立请求或连接建立请求确认;
①记录该SYN或SYN+ACK包的连接信息,包括源IP地址、源端口、目的IP地址、目的端口;接下来判断数据包来自网关的LAN口还是WAN口;
②若数据包来自网关的LAN口,将TCP连接建立请求或连接建立请求确认转换为SCPS-TP连接建立请求或连接建立请求确认,通过DPDK提供的rte_eth_tx_burst函数经WAN口转发给对端的网关;
③若数据包来自网关的WAN口,将SCPS-TP连接建立请求或连接建立请求确认转换为TCP连接建立请求或连接建立请求确认,通过DPDK提供的rte_eth_tx_burst函数经LAN口转发给数据业务终端;
④建立SCPS-TP连接过程中进行缓冲区协商设置,具体方式如下:
网关之间交换建立连接申请时,将自身设置的发送速率门限s_rate发送给对端网关;
网关根据对端发送速率门限s_rate和时延delay来设置自身的缓冲区大小,若s_rate×delay大于65535字节,则将缓冲区设置为s_rate×delay,否则将缓冲区设置为65535字节。
⑤建立SCPS-TP连接过程中优化拥塞控制算法的相关参数,具体方式如下:
将初始窗口扩大因子设置为N,N根据信道带宽设置,范围为1~10;
设置WAN口的拥塞窗口初始值为BDP,其中BDP是信道带宽与时延的乘积。
(2)所述头部标志位字段为ACK,确定所述数据包的类型为TCP或SCPS-TP数据报文或确认报文;
①依据建立连接过程记录的连接信息,判断是否存在匹配的连接;
②若不存在,则丢弃该TCP报文;
③若存在,则需进一步判断数据包来自网关的LAN口还是WAN口;
④若数据包来自网关的LAN口,则通过WAN口将该TCP报文转发给对端的网关,对于TCP数据报文,通过DPDK提供的rte_eth_tx_burst函数经LAN口向数据报文发送终端回复数据已经到达目的终端的伪确认;
⑤若数据包来自网关的WAN口,通过LAN口将该TCP报文转发给数据业务终端,对于TCP数据报文,还需要跟据SCPS-TP的拥塞控制,通过DPDK提供的rte_eth_tx_burst函数经WAN口向对端的网关回复伪确认。
(3)所述头部标志位字段为FIN或FIN+ACK,确定所述TCP协议包的请求类型为拆除连接请求或拆除连接请求确认;
①依据建立连接过程记录的连接信息,匹配要拆除的连接;
②若匹配失败,则丢弃该拆除连接请求或拆除连接请求确认报文;
③若匹配成功,则需进一步判断数据包来自网关的LAN口还是WAN口;
④若数据包来自网关的LAN口,则将TCP拆除连接请求或拆除连接请求确认转换为SCPS-TP拆除连接请求或拆除连接请求确认,通过DPDK提供的rte_eth_tx_burst函数经WAN口转发给对端的网关,若是拆除连接请求确认,需删除该TCP连接记录;
⑤若数据包来自网关的WAN口,则将SCPS-TP拆除连接请求或拆除连接请求确认转换为TCP拆除连接请求或拆除连接请求确认,通DPDK提供的rte_eth_tx_burst函数经过LAN口转发给数据业务终端,若是拆除连接请求确认,需删除该SCPS-TP连接记录。
总之,本发明公开了一种卫星通信系统中高速可靠数据传输方法,其利用DPDK在用户空间提供的轮询接收方式,将数据从网卡直接接收到应用程序,绕过Linux内核网络协议栈,避免了频繁的CPU中断和内存拷贝,显著提高了数据处理效率。在用户空间对接收到的数据报文根据其协议类型进行处理,对于非TCP报文,只是简单的缓存,在等到令牌后便从另一个端口转发出去;对于TCP报文,则需要按SCPS-TP协议流程进行处理,以克服卫星信道长时延、高误码等特点。本发明能有效提高可靠数据传输的卫星信道利用率,完全兼容TCP协议,特别适合高通量卫星系统中的可靠数据传输。
需要理解的是,上述对于本专利具体实施方式的叙述仅仅是为了便于本领域普通技术人员理解本专利方案而列举的示例性描述,并非暗示本专利的保护范围仅仅被限制在这些个例中,本领域普通技术人员完全可以在对本专利技术方案做出充分理解的前提下,以不付出任何创造性劳动的形式,通过对本专利所列举的各个例采取组合技术特征、替换部分技术特征、加入更多技术特征等等方式,得到更多的具体实施方式,所有这些具体实施方式均在本专利权利要求书的涵盖范围之内,因此,这些新的具体实施方式也应在本专利的保护范围之内。
此外,出于简化叙述的目的,本专利也可能没有列举一些寻常的具体实施方案,这些方案是本领域普通技术人员在理解了本专利技术方案后能够自然而然想到的,显然,这些方案也应包含在本专利的保护范围之内。
出于简化叙述的目的,上述各具体实施方式对于技术细节的公开程度可能仅仅达到本领域技术人员可以自行决断的程度,即,对于上述具体实施方式没有公开的技术细节,本领域普通技术人员完全可以在不付出任何创造性劳动的情况下,在本专利技术方案的充分提示下,借助于教科书、工具书、论文、专利、音像制品等等已公开文献予以完成,或者,这些细节是在本领域普通技术人员的通常理解下,可以根据实际情况自行作出决定的内容。可见,即使不公开这些技术细节,也不会对本专利技术方案的公开充分性造成影响。
总之,在结合了本专利说明书对权利要求书保护范围的解释作用的基础上,任何落入本专利权利要求书涵盖范围的具体实施方案,均在本专利的保护范围之内。
Claims (4)
1.一种基于DPDK的卫星信道高速可靠数据传输方法,其特征在于,用于卫星通信的网关中,所述网关具有两个网卡;包括以下步骤:
(1)将网关的两个网卡绑定到DPDK的用户态驱动上,分别作为网关的LAN端口和WAN端口,利用DPDK提供的rte_eth_rx_burst函数从网卡接收数据包,并将数据包直接送到实现SCPS-TP协议流程的用户空间;
(2)在SCPS-TP协议流程的用户空间中进行数据包的处理,记录数据包的MAC地址、MAC头部协议类型字段;
(3)根据数据包的MAC头部协议类型字段,识别数据包的协议类型,若非IP协议,则执行步骤(4);若为IP协议,则继续判断IP头部协议类型字段:若为TCP或SCPS-TP协议,则执行步骤(6),否则执行步骤(5);
(4)通过DPDK提供的rte_eth_tx_burst函数将数据包从网关的另一个端口转出;
(5)将数据包放入数据包缓存队列,在获取到令牌后通过DPDK提供的rte_eth_tx_burst函数将数据包从网关的另一个端口转出;
(6)根据TCP或SCPS-TP协议的传输层头部标志位字段分别按照步骤(7)(8)(9)进行处理;
(7)若头部标志位字段为SYN或SYN+ACK,则数据包的类型为TCP或SCPS-TP的连接建立请求或连接建立请求确认报文;此时执行如下步骤:
(701)记录数据包的连接信息,包括源IP地址、源端口、目的IP地址、目的端口;判断数据包来自网关的LAN端口还是WAN端口;
(702)若数据包来自网关的LAN端口,则将该数据包从TCP的SYN或SYN+ACK包转换为SCPS-TP的SYN或SYN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经WAN端口转发给对端的网关;
(703)若数据包来自网关的WAN端口,则将该数据包从SCPS-TP的SYN或SYN+ACK包转换为TCP的SYN或SYN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经LAN端口转发给数据业务终端;
(704)在建立SCPS-TP连接的过程中,进行数据接收缓冲区协商设置和SCPS-TP拥塞控制算法优化;
(8)若头部标志位字段为ACK,则数据包的类型为TCP或SCPS-TP的数据报文或确认报文;此时执行如下步骤:
(801)依据建立连接过程记录的连接信息,判断是否存在匹配的连接;
(802)若不存在,则丢弃该TCP报文;若存在,则进一步判断数据包来自网关的LAN端口还是WAN端口;
(803)若数据包来自网关的LAN端口,则通过DPDK提供的rte_rth_tx_burst函数经WAN端口将该TCP报文转发给对端的网关;此外,若数据包为TCP数据报文,则还需通过DPDK提供的rte_eth_tx_burst函数经LAN端口向数据业务发送终端回复数据已经到达目的终端的伪确认;
(804)若数据包来自网关的WAN端口,则通过DPDK提供的rte_rth_tx_burst函数经LAN端口将该TCP报文转发给数据业务终端;此外,若数据包为TCP数据报文,则还需跟据SCPS-TP的拥塞控制,通过DPDK提供的rte_eth_tx_burst函数经WAN端口向对端的网关回复伪确认;
(9)若头部标志位字段为FIN或FIN+ACK,则数据包的类型为TCP的拆除连接请求或拆除连接请求确认报文;执行如下步骤:
(901)依据建立连接过程记录的连接信息,匹配要拆除的连接;
(902)若匹配失败,则丢弃该拆除连接请求或拆除连接请求确认报文;若匹配成功,则进一步判断数据包来自网关的LAN端口还是WAN端口;
(903)若数据包来自网关的LAN端口,则将该数据包从TCP的FIN或FIN+ACK包转换为SCPS-TP的FIN或FIN+ACK包,然后通过DPDK提供的rte_eth_tx_burst函数经WAN端口转发给对端网关;此外,若该数据包的头部标志位字段为FIN+ACK,则还需删除该数据包的TCP连接记录;
(904)若数据包来自网关的WAN端口,则将该数据包从SCPS-TP的FIN或FIN+ACK包转换为TCP的FIN或FIN+ACK包,然后通DPDK提供的rte_eth_tx_burst函数经LAN端口转发给数据业务终端;此外,若该数据包的头部标志位字段为FIN+ACK,则还需删除该数据包的SCPS-TP连接记录。
2.根据权利要求1所述的基于DPDK的卫星信道高速可靠数据传输方法,其特征在于,所述步骤(704)中,数据接收缓冲区协商设置的具体方式为:
(70411)在网关之间交换建立SCPS-TP连接申请时,利用TCP头部选项字段将自身设置的发送速率门限s_rate发送给对端网关,s_rate的单位为字节/秒;
(70412)对端网关根据发送速率门限s_rate和信道时延delay来设置数据接收缓冲区的大小,若s_rate×delay大于65535字节,则将缓冲区设置为s_rate×delay,否则将缓冲区设置为65535字节。
3.根据权利要求1所述的基于DPDK的卫星信道高速可靠数据传输方法,其特征在于,所述步骤(704)中,SCPS-TP拥塞控制算法优化的具体方式为:
(70421)将拥塞控制的初始窗口扩大因子设置为N,N的取值范围为1~10;
(70422)将网关WAN口的拥塞窗口初始值设置为BDP,其中,BDP是信道带宽与信道时延的乘积。
4.根据权利要求1所述的基于DPDK的卫星信道高速可靠数据传输方法,其特征在于,所述步骤(4)和步骤(5)中,将数据包从网关的另一个端口转出的具体方式为:若数据包从LAN口接收,则通过WAN口转出;若数据包从WAN口接收,则通过LAN口转出。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910524082.2A CN110190893A (zh) | 2019-06-18 | 2019-06-18 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
PCT/CN2020/096326 WO2020253674A1 (zh) | 2019-06-18 | 2020-06-16 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910524082.2A CN110190893A (zh) | 2019-06-18 | 2019-06-18 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110190893A true CN110190893A (zh) | 2019-08-30 |
Family
ID=67722181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910524082.2A Pending CN110190893A (zh) | 2019-06-18 | 2019-06-18 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110190893A (zh) |
WO (1) | WO2020253674A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110661565A (zh) * | 2019-09-23 | 2020-01-07 | 北京控制工程研究所 | 一种多信源的测控信道调度方法 |
CN111262845A (zh) * | 2020-01-13 | 2020-06-09 | 中科全维科技(苏州)有限公司 | 一种面向通信端的移动端通信框架、系统和方法 |
WO2020253674A1 (zh) * | 2019-06-18 | 2020-12-24 | 中国电子科技集团公司第五十四研究所 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
WO2021078233A1 (zh) * | 2019-10-24 | 2021-04-29 | 北京大学 | 一种多路径传输设备及架构 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113067849B (zh) * | 2021-02-05 | 2022-05-10 | 湖南国科亿存信息科技有限公司 | 基于Glusterfs的网络通信优化方法及装置 |
CN113691619B (zh) * | 2021-08-24 | 2023-01-10 | 北京天融信网络安全技术有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
CN115720222B (zh) * | 2022-12-19 | 2023-06-02 | 广西大学 | 在arm多核架构上实现http转发的方法及存储介质 |
CN115801770B (zh) * | 2023-02-07 | 2023-04-18 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种基于全用户态quic协议的大文件传输方法 |
CN116131923B (zh) * | 2023-02-15 | 2024-07-05 | 航天科工空间工程网络技术发展(杭州)有限公司 | 一种基于卫星通信的数据传输方法、装置及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040258053A1 (en) * | 2003-06-16 | 2004-12-23 | Mentat Inc. | Pre-fetch communication systems and methods |
US20090080460A1 (en) * | 2007-08-14 | 2009-03-26 | Kronewitter Iii Frank Dell | System and method for providing bandwidth signaling across cryptographic boundaries in a network |
CN102694810A (zh) * | 2012-05-31 | 2012-09-26 | 航天恒星科技有限公司 | 一种卫星网络tcp地面加速方法 |
CN102739569A (zh) * | 2011-04-01 | 2012-10-17 | 中国科学院空间科学与应用研究中心 | 一种用于卫星通信中的网关及其tcp性能增强的方法 |
CN104320405A (zh) * | 2014-11-06 | 2015-01-28 | 中国电子科技集团公司第五十四研究所 | 一种适用于星型卫星网络的上网优化方法 |
CN104955079A (zh) * | 2015-05-27 | 2015-09-30 | 北京京东尚科信息技术有限公司 | 一种无线自组网络中数据传输方法和性能增强代理 |
CN107911237A (zh) * | 2017-11-10 | 2018-04-13 | 南京邮电大学 | 一种基于dpdk的用户空间内数据包快速检测方法 |
CN109639340A (zh) * | 2018-12-11 | 2019-04-16 | 成都天奥信息科技有限公司 | 一种适用于卫星链路的tcp加速方法 |
US20190173789A1 (en) * | 2015-12-29 | 2019-06-06 | Amazon Technologies, Inc. | Connectionless reliable transport |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110190893A (zh) * | 2019-06-18 | 2019-08-30 | 中国电子科技集团公司第五十四研究所 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
-
2019
- 2019-06-18 CN CN201910524082.2A patent/CN110190893A/zh active Pending
-
2020
- 2020-06-16 WO PCT/CN2020/096326 patent/WO2020253674A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040258053A1 (en) * | 2003-06-16 | 2004-12-23 | Mentat Inc. | Pre-fetch communication systems and methods |
US20090080460A1 (en) * | 2007-08-14 | 2009-03-26 | Kronewitter Iii Frank Dell | System and method for providing bandwidth signaling across cryptographic boundaries in a network |
CN102739569A (zh) * | 2011-04-01 | 2012-10-17 | 中国科学院空间科学与应用研究中心 | 一种用于卫星通信中的网关及其tcp性能增强的方法 |
CN102694810A (zh) * | 2012-05-31 | 2012-09-26 | 航天恒星科技有限公司 | 一种卫星网络tcp地面加速方法 |
CN104320405A (zh) * | 2014-11-06 | 2015-01-28 | 中国电子科技集团公司第五十四研究所 | 一种适用于星型卫星网络的上网优化方法 |
CN104955079A (zh) * | 2015-05-27 | 2015-09-30 | 北京京东尚科信息技术有限公司 | 一种无线自组网络中数据传输方法和性能增强代理 |
US20190173789A1 (en) * | 2015-12-29 | 2019-06-06 | Amazon Technologies, Inc. | Connectionless reliable transport |
CN107911237A (zh) * | 2017-11-10 | 2018-04-13 | 南京邮电大学 | 一种基于dpdk的用户空间内数据包快速检测方法 |
CN109639340A (zh) * | 2018-12-11 | 2019-04-16 | 成都天奥信息科技有限公司 | 一种适用于卫星链路的tcp加速方法 |
Non-Patent Citations (3)
Title |
---|
J. DOFFOH 等: "Analysis and comparisons of acceleration protocols for TCP over satellite", 《MILCOM 2005 - 2005 IEEE MILITARY COMMUNICATIONS CONFERENCE》 * |
张亚生 等: "卫星TCP加速技术研究", 《无线电通信技术》 * |
申曲: "基于云计算的卫星网络高速云加速技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020253674A1 (zh) * | 2019-06-18 | 2020-12-24 | 中国电子科技集团公司第五十四研究所 | 一种基于dpdk的卫星信道高速可靠数据传输方法 |
CN110661565A (zh) * | 2019-09-23 | 2020-01-07 | 北京控制工程研究所 | 一种多信源的测控信道调度方法 |
WO2021078233A1 (zh) * | 2019-10-24 | 2021-04-29 | 北京大学 | 一种多路径传输设备及架构 |
CN111262845A (zh) * | 2020-01-13 | 2020-06-09 | 中科全维科技(苏州)有限公司 | 一种面向通信端的移动端通信框架、系统和方法 |
CN111262845B (zh) * | 2020-01-13 | 2022-05-17 | 中科全维科技(苏州)有限公司 | 一种面向通信端的移动端通信框架、系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020253674A1 (zh) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110190893A (zh) | 一种基于dpdk的卫星信道高速可靠数据传输方法 | |
US11799790B2 (en) | Data transmission method, computing device, network device, and data transmission system | |
US7912064B2 (en) | System and method for handling out-of-order frames | |
US11012367B2 (en) | Technologies for managing TCP/IP packet delivery | |
EP1690391B1 (en) | Transparent optimization for transmission control protocol initial session establishment | |
US7940665B2 (en) | Transparent optimization for transmission control protocol flow control | |
US8311059B2 (en) | Receive coalescing and automatic acknowledge in network interface controller | |
US8174975B2 (en) | Network adapter with TCP support | |
CN101436978A (zh) | 使用udp协议进行可靠数据传输的方法 | |
CN104025525A (zh) | 网络元件关于分组丢弃的通知 | |
WO2014037760A1 (zh) | 增加数据流传输的方法和系统 | |
CN102694810B (zh) | 一种卫星网络tcp地面加速方法 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
Eddy | Rfc 9293: Transmission control protocol (tcp) | |
CN111865940A (zh) | 一种传输优化的方法及装置 | |
JP2005520374A (ja) | Tcp/ipに対する変更 | |
CN115052049A (zh) | 一种基于IPsec隧道的报文转发方法及系统 | |
EP1460804B1 (en) | System and method for handling out-of-order frames (fka reception of out-of-order tcp data with zero copy service) | |
JP2005136684A (ja) | データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム | |
JP2008199431A (ja) | 通信装置 | |
WO2013097611A1 (zh) | 一种数据处理方法、装置及系统 | |
Lv et al. | Research of TCP optimization technology for long-distance and high bandwidth-delay private network | |
Landström et al. | TCP-Aix: making TCP robust to reordering and delay variations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190830 |