CN114785870A - 一种面向tcp/ip和ble集成协议栈的优化方法 - Google Patents

一种面向tcp/ip和ble集成协议栈的优化方法 Download PDF

Info

Publication number
CN114785870A
CN114785870A CN202210359043.3A CN202210359043A CN114785870A CN 114785870 A CN114785870 A CN 114785870A CN 202210359043 A CN202210359043 A CN 202210359043A CN 114785870 A CN114785870 A CN 114785870A
Authority
CN
China
Prior art keywords
ble
tcp
data
protocol stack
packet
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
Application number
CN202210359043.3A
Other languages
English (en)
Other versions
CN114785870B (zh
Inventor
董玮
高艺
吕嘉美
李烨明
龚凯杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202210359043.3A priority Critical patent/CN114785870B/zh
Publication of CN114785870A publication Critical patent/CN114785870A/zh
Application granted granted Critical
Publication of CN114785870B publication Critical patent/CN114785870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Abstract

一种面向TCP/IP和BLE集成协议栈的优化方法,包括:在TCP/IP协议栈和BLE协议栈之间添加了一个额外的自适应层;在所述自适应层中设置BLE连接事件长度自适应机制,自适应地更新连接事件的容量;在所述自适应层中设置BLE连接维护机制,通过预取TCP层等待的数据包以维护连接事件;将添加有所述自适应层的TCP/IP和BLE集成协议栈,分别应用于BLE主设备和BLE从设备;判断BLE设备是否为从设备,若是,则所述自适应层取消BLE连接事件长度自适应机制的设置,若否,则忽略此步骤。与现有技术相比,本发明在不违反TCP/IP和BLE规范的前提下显著提高了BLE设备上TCP有效吞吐量。

Description

一种面向TCP/IP和BLE集成协议栈的优化方法
技术领域
本发明涉及网络通信领域,尤其是涉及一种面向TCP/IP和BLE集成协议栈的优化方法。
背景技术
蓝牙(BLE)是一种低功耗的无线技术,可以在短距离内使用,使设备能够进行通信。传统的BLE设备大多隐藏在无线电网关后面,并依靠网关转换连接到互联网。最近有研究人员将TCP/IP协议栈和BLE协议栈集成起来,这样做的有如下的两个优势。1)互操作性:TCP/IP有助于BLE与传统的TCP/IP网络进行互操作,使用TCP大大简化了物联网网关设计。2)协议支持:广泛使用的物联网应用协议,如MQTT,ZeroMQ等,都建立在TCP协议上,从而BLE设备可以支持更多的上层协议和应用程序。
TCP-over-BLE协议栈的TCP与其他无线通信技术上的TCP相比,TCP有效吞吐量显著下降,BLE上的TCP设备仅达到BLE物理比特率的9.1%,远低于TCP-over-802.11、TCP-over-802.11b和TCP-over-802.15.4协议栈的比率。造成TCP-over-BLE协议栈的TCP有效吞吐量低下的主要原因在于BLE连接事件效率低下。当通过BLE传输TCP时,一般有以下两种情况导致连接事件效率低下,严重造成TCP有效吞吐量下降:1)实际连接事件长度远小于连接间隔。当它们的差异大于TCP的往返时间(RTT)时,TCP ACK每次都必须在BLE缓冲区中等待。2)连接事件在传输完成后,TCP接收器发送ACK后端,导致后续的TCP数据包必须在BLE缓冲区中等待近一个连接间隔。
目前,针对此问题,现存的工作聚焦于架构设计或者BLE性能本身的优化,未能探索当TCP/IP协议栈和BLE协议栈集成时的TCP-over-BLE协议栈的性能优化,造成TCP有效吞吐量严重下降的原因出发。
发明内容
本发明要克服现有技术的上述缺点,对TCP/IP协议栈和BLE协议栈的集成协议栈进行优化,提出一种面向TCP/IP和BLE集成协议栈的优化方法。
本发明的目的是提高TCP在配备TCP协议的BLE设备上的有效吞吐量,而提出的一种面向TCP/IP和BLE集成协议栈的优化方法。
本发明的目的可以通过以下技术方案来实现:
一种面向TCP/IP和BLE集成协议栈的优化方法,包括以下步骤:
1)在TCP/IP协议栈和BLE协议栈之间添加了一个额外的自适应层,构建新型的TCP/IP和BLE集成协议栈;
2)在所述自适应层中设置BLE连接事件长度自适应机制,自适应地更新连接事件的容量;
3)在所述自适应层中设置BLE连接维护机制,通过预取TCP层等待的数据包以维护连接事件;
4)将添加有所述自适应层的TCP/IP和BLE集成协议栈,应用于BLE主设备和BLE从设备;
5)判断BLE设备是否为从设备,若是,则所述自适应层取消BLE连接事件长度自适应机制的设置,若否,则忽略此步骤。
所述的步骤2)具体为:
21)定义最大连接事件长度Lmax、实际连接事件长度Lact以及它们的比值Rlu
Figure BDA0003583088020000021
其中,最大连接事件长度Lmax为固定连接间隔内连接事件长度的上限,实际连接事件长度Lact为连接事件实际发送的数据量大小,并且Lact≤Lmax,Rlu描述最大连接事件长度和事件连接事件长度的间隙,其值在0和1之间,通过调节最大的连接事件长度Lmax,使其接近Lact,以提高TCP有效吞吐量;
22)通过下式获得最大连接事件长度Lmax
Figure BDA0003583088020000022
其中,RTT为TCP数据包的往返时间,由所述自适应层还包括的RTT估计方法获得,附加的0.2*Lact用于减小参数更新的开销;
23)通过下式获得实际连接事件长度Lact
Figure BDA0003583088020000023
其中ps为当前BLE协议栈缓冲区中的数据包的大小,pr为由于链路质量差而重传的数据包的大小,r为每秒传输的有效载荷大小;
24)通过下式获得BLE协议栈缓冲区中的数据包大小ps
ps=min(Sdata,Ssnd,Sble) (4)
其中Sdata为剩余要发送的数据包大小,Ssnd为TCP发送窗口限制的数据包大小,Sble为蓝牙协议栈限制的数据包大小;
25)通过下式获得BLE由于链路质量差而重传的数据包大小pr
Figure BDA0003583088020000031
其中e为给定帧错误率(FER),通过在线学习的方法预测当前e的大小,所述
Figure BDA0003583088020000032
是发送数据包ps总共需要发送的次数,通过下式获得
Figure BDA0003583088020000033
所述
Figure BDA0003583088020000034
为BLE发送方发送ps字节数据而需要发送的实际字节数据大小。所述的步骤22)中自适应层还包括RTT的估计方法包括以下步骤:
221)构建了一个等待时间表,记录每个数据包从进入缓冲区到离开的Twdata的持续时间;
222)对于传出的包,首先使用跨层信息来判断它是否是ACK包,如果是,将根据其BLE控制器的状态来估计等待时间Twack
223)遍历等待时间表,根据数据包报头中的“ACK”字段,找出与ACK对应的数据包的等待时间,一旦找到,将获取数据并从表中删除该项,那些在表中停留的时间超过了阈值的项也将被删除;
224)通过下式获得RTT在当前网络环境下的真实值RTTr
RTTr=Ts-Tr-(Twdata+Twack) (7)
其中Ts是发送数据包的时间戳,Tr是接收到ACK的时间戳。
所述的步骤25)中用于预测e的在线学习的方法包括以下步骤:
251)通过下式构建逻辑回归模型
Figure BDA0003583088020000035
其中X为模型的输入向量X=<X1…Xn>,Y为表示链路质量的二进制变量,
Figure BDA0003583088020000041
β是待估计的权重参数的一个向量;
252)给定M个数据包,通过下式获得模型的输入X
Xi=[PKTi-1,PKTi-2,…,PKTi-m] (9)
其中
Figure BDA0003583088020000042
Figure BDA0003583088020000043
FERi为每个数据包对应的帧错误率。RSSIi是为个数据包对应的信号强度指示器,SNRi为每个数据包对应的信号噪声比;
253)通过极大似然估计来训练逻辑回归模型,对似然函数求偏导获得梯度向量
Figure BDA0003583088020000044
Figure BDA0003583088020000045
254)通过随机梯度下降法进行权重参数βi更新
Figure BDA0003583088020000046
其中
Figure BDA0003583088020000047
为第lth个样本的梯度
Figure BDA0003583088020000048
所述的步骤3)具体为:
31)TCP发送方当等待ACK返回时,向上层生成一个数据请求,以从TCP层预取数据包到BLE链路层的缓冲区,一旦接收到ACK,BLE控制器将间隔t时间发送这些数据包,若剩余的数据不足以发送t时间,将生成一些空包,这些包将在接收方的适应层中丢弃;
32)TCP发送方保留一个计数器,用来记录预先发送给接收方的数据包的数量;假设该数字大于下一次往返发送窗口的上限,就将发送所有空数据包来维护连接事件,
若提前发送的数据大于或等于新的发送窗口snd′,则将停止预取数据,
若提前发送的数据小于snd′,则继续发送数据,直到发送的数据量达到snd′或没有要发送的数据;
33)当TCP发送方完成发送数据时,TCP发送方会向TCP接收方发送一个包含snd′的通知数据包,同时,计数器减去snd′;
34)TCP接收方将数据包存储在自适应层中的接收缓冲区中,当接收到通知数据包时,将缓冲区中的snd′数据包发送到上层,并将其转发到目的地。
优选地,步骤31)所述的时间t取2-3ms。
本发明的工作原理是:
本发明在TCP/IP和BLE集成协议栈之间添加一个额外的自适应层,自适应层包括BLE连接时间长度自适应机制和BLE连接维护机制;BLE连接事件长度自适应机制是通过基于在线学习的方法预测要发送的数据大小,并自适应地更新连接事件的容量以减少ACK返回到TCP发送方的长时间等待时间;BLE连接维护机制是通过预取TCP层等待的数据包以维护连接事件以减少ACK返回后发送方数据包的长时间等待时间。
本发明的有益效果是:
本发明的一种面向TCP/IP和BLE集成协议栈的优化方法在不违反TCP/IP和BLE规范的前提下显著提高了BLE设备上TCP有效吞吐量。
附图说明
图1是本发明方法的流程图;
图2是本发明提出的实施例的协议栈架构图;
图3是本发明提出的实施例搭建的测试平台架构图;
图4是本发明提出的实施例的评估结果柱状图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例进行详细说明。实施例是以本发明技术方案为前提进行实施,给出详细的实施方案和具体的操作过程,但本发明的保护范围不限于下述实施例。
图1和图2分别是本发明所述一种面向TCP/IP和BLE集成协议栈的优化方法的流程图以及基于本优化方法的一个具体TCP/IP和BLE集成协议栈实施例架构图;
如图1和图2所示,一种面向TCP/IP和BLE集成协议栈的优化方法的具体实施包括以下步骤:
1)在TCP/IP协议栈和BLE协议栈之间添加了一个额外的自适应层,构建新型的TCP/IP和BLE集成协议栈;
2)在所述自适应层中设置BLE连接事件长度自适应机制,自适应地更新连接事件的容量,用于减少ACK返回到TCP发送方的长时间等待时间;
3)在所述自适应层中设置BLE连接维护机制,通过预取TCP层等待的数据包以维护连接事件,用于减少ACK返回后发送方数据包的长时间等待时间;
4)将添加有所述自适应层的TCP/IP和BLE集成协议栈,应用于BLE主设备和BLE从设备;
5)判断BLE设备是否为从设备,若是,则所述自适应层取消BLE连接事件长度自适应机制的设置,若否,则忽略此步骤。
所述的步骤2)中BLE连接事件长度自适应机制的具体实施包括链路质量估计模块、数据模式识别模块以及连接参数更新模块;
所述链路质量估计模块,涉及一个在线学习模型,用于预测下一次连接事件由于链路质量差而重传的数据包大小;
所述数据模式识别模块用于识别TCP数据包并提取有效参数,包括TCP数据包的类别以及需要发送的数据包大小;
所述连接参数更新模块定义最大连接事件长度Lmax的更新方法;
所述连接参数更新模块通过共享内存通信方式与链路质量估计模块以及数据模式识别模块相连接。
以上所述BLE连接事件长度自适应机制的具体实施,即将链路质量估计模块、数据模式识别模块以及连接参数更新模块整合起来,有如下步骤:
21)在连接参数更新模块上定义最大连接事件长度Lmax、实际连接事件长度Lact以及它们的比值Rlu
Figure BDA0003583088020000061
其中,最大连接事件长度Lmax为固定连接间隔内连接事件长度的上限,实际连接事件长度Lact为连接事件实际发送的数据量大小,并且Lact≤Lmax,Rlu描述最大连接事件长度和事件连接事件长度的间隙,其值在0和1之间;
通过增加Lact或降低Lmax,可以增大Rlu,即提高链路利用率,由于实际的连接事件长度Lact是由发送数据的大小决定的,所以通过调节最大的连接事件长度Lmax,使其接近Lact,以提高TCP有效吞吐量;
22)在连接参数更新模块上定义Lmax的更新方法,通过下式获得最大连接事件长度Lmax
Figure BDA0003583088020000071
其中,RTT为TCP数据包的往返时间,由所述自适应层还包括的RTT估计方法获得,附加的0.2*Lact用于减小参数更新的开销;
23)在数据模式识别模块上定义实际连接事件长度Lact的获得方法,通过下式获得Lact
Figure BDA0003583088020000072
其中ps为当前BLE协议栈缓冲区中的数据包的大小,pr为由于链路质量差而重传的数据包的大小,r为每秒传输的有效载荷大小,r在本实施例为83.3byte/s;
24)通过下式获得BLE协议栈缓冲区中的数据包大小ps
ps=min(Sdata,Ssnd,Sble) (4)
其中Sdata为剩余要发送的数据包大小,Ssnd为TCP发送窗口限制的数据包大小,Sble为蓝牙协议栈限制的数据包大小;
所述ps对于有效载荷较小的周期性数据包(例如,携带光传感器数据的MQTT数据包),主要受到Sdata的限制;
所述ps对于连续的流式数据,则瓶颈是TCP的发送窗口Ssnd
所述ps对于一些由于协议栈大小小,每个连接间隔只支持一个数据包的旧设备,Sble是瓶颈;
25)在链路质量估计模块定义BLE由于链路质量差而重传的数据包大小pr的获得方法,通过下式获得pr
Figure BDA0003583088020000073
其中e为给定帧错误率(FER),通过在线学习的方法预测当前e的大小,所述
Figure BDA0003583088020000074
是发送数据包ps总共需要发送的次数,通过下式获得
Figure BDA0003583088020000075
所述
Figure BDA0003583088020000076
为BLE发送方发送ps字节数据而需要发送的实际字节数据大小。
所述的步骤3)中BLE连接维护机制的具体实施包括数据请求模块、数据包计数模块、通知数据包生成模块以及RTT估计模块;
所述数据请求模块用于向上层发送数据请求;所述数据包计数模块用于记录数据包数量;所述通知数据包生成模块用于在TCP发送方完成发送数据时生成通知数据包;
所述通知数据包生成模块与BLE协议栈相连;所述数据请求模块与TCP/IP协议栈相连;所述数据包计时模块同时与BLE协议栈和TCP/IP协议栈相连;
所述RTT估计模块包括等待时间表模块、通知数据包处理模块、接收队列模块以及RTT校准模块;
所述等待时间表模块用于记录每个数据包从进入缓冲区到离开的持续时间;所述通知数据包处理模块用于接收和处理通知数据包;所述接收队列模块用于存储通知数据包处理模块处理完的数据包;所述RTT校准模块用于获得当前网络环境下真实的RTT;
所述通知数据包处理模块通过共享内存通信方式与接收队列模块相连;所述接收队列模块通过共享内存通信方式与等待时间表模块以及RTT校准模块相连;所述等待时间表模块通过共享内存通信方式与RTT校准模块相连。
以上所述的BLE连接维护机制的具体实施,即将数据请求模块、数据包计数模块、通知数据包生成模块以及RTT估计模块整合起来,有如下步骤:
31)TCP发送方当等待ACK返回时,向上层生成一个数据请求,以从TCP层预取数据包到BLE链路层的缓冲区,一旦接收到ACK,BLE控制器将间隔t时间发送这些数据包,若剩余的数据不足以发送t时间,将生成一些空包,这些包将在接收方的适应层中丢弃;所述t时间通常取2-3ms;
32)TCP发送方保留一个计数器,用来记录预先发送给接收方的数据包的数量;假设该数字大于下一次往返发送窗口的上限,就将发送所有空数据包来维护连接事件,
若提前发送的数据大于或等于新的发送窗口snd′,则将停止预取数据,
若提前发送的数据小于snd′,则继续发送数据,直到发送的数据量达到snd′或没有要发送的数据;
33)当TCP发送方完成发送数据时,TCP发送方会向TCP接收方发送一个包含snd′的通知数据包,同时,计数器减去snd′;
34)TCP接收方将数据包存储在自适应层中的接收缓冲区中,当接收到通知数据包时,将缓冲区中的snd′数据包发送到上层,并将其转发到目的地。
所述的步骤22)中自适应层还包括RTT的估计方法是通过以上所述RTT估计模块实现,包括以下步骤:
221)构建了一个等待时间表,记录每个数据包从进入缓冲区到离开的Twdata的持续时间;
222)对于传出的包,首先使用跨层信息来判断它是否是ACK包,如果是,将根据其BLE控制器的状态来估计等待时间Twack
223)遍历等待时间表,根据数据包报头中的“ACK”字段,找出与ACK对应的数据包的等待时间,一旦找到,将获取数据并从表中删除该项,那些在表中停留的时间超过了阈值的项也将被删除;
224)通过下式获得RTT在当前网络环境下的真实值RTTr
RTTr=Ts-Tr-(Twdata+Twack) (7)
其中Ts是发送数据包的时间戳,Tr是接收到ACK的时间戳。
所述的步骤25)中用于预测e的在线学习的方法包括以下步骤:
251)通过下式构建逻辑回归模型
Figure BDA0003583088020000091
其中X为模型的输入向量X=<X1…Xn>,Y为表示链路质量的二进制变量,
Figure BDA0003583088020000092
β是待估计的权重参数的一个向量;
252)给定M个数据包,通过下式获得模型的输入X
Xi=[PKTi-1,PKTi-2,…,PKTi-m] (9)
其中PKTi=[FERi,PHYi],
Figure BDA0003583088020000093
FERi为每个数据包对应的帧错误率。RSSIi是为个数据包对应的信号强度指示器,SNRi为每个数据包对应的信号噪声比;
253)通过极大似然估计来训练逻辑回归模型,对似然函数求偏导获得梯度向量
Figure BDA0003583088020000094
Figure BDA0003583088020000101
254)通过随机梯度下降法进行权重参数βi更新
Figure BDA0003583088020000102
其中
Figure BDA0003583088020000103
为第lth个样本的梯度
Figure BDA0003583088020000104
在本实施例中,在TCP数据包传输前,会预测当下一个连接事件到达时,当前BLE协议栈缓冲区的数据包大小以及由于链路质量差而重传的数据包大小。给定的Lmax,即当前最大的连接事件长度,若Lact在[0.8*Lmax,0.9*Lmax]范围内,则更新最大连接事件长度,否则不会更新最大连接事件长度。
以上所述的TCP/IP协议栈,可以为多种不同的协议栈,在本实施例中选用了IwIP,如图2所示,用于提供TCP,Ipv6,6LowPAN服务,与其他嵌入式TCP协议栈相比,lwIP提供了多重分段、保持活力等,IwIP TCP/IP实现的重点是在保持全规模TCP的同时减少资源使用,这使得lwIP适合用于具有数十KB的免费RAM和大约40KB的代码ROM空间的嵌入式系统。
以上所述的BLE协议栈,可以为多种不同的协议栈实现,如图2所示,在本实施例中选用了Apache NimBLE,用于提供稳定的BLE连接,并且开启外设、中心设备角色以及传统配对等功能,最小仅占用4.5KB RAM,69KB Flash。
本实施例的硬件为nRF52840DK,它的特征是ARM Cortex TM-M4,512KB RAM和1MB闪存。
本实施例的操作系统为RIOTOS,它通过限制中断延迟(约为50个时钟周期)而具有实时能力,并支持基于优先级的超低开销调度多线程,此外,RIOTOS还提供了NimBLE和lwIP的基本集成。
本实施例还需要对TCP最大报文长度(MSS)设置为5帧。
图3是应用本发明面向TCP/IP和BLE集成协议栈的优化方法,并且基于以上所述实施例搭建的一个测试平台,用于对本发明提出的优化方法的具体实施效果进行验证。如图3所示,基于本实施例搭建的测试平台,包括BLE网关和私有云,BLE网关由多个nRF52840DKBLE节点和树莓派组成,
所述nRF52840DK BLE节点与所述树莓派通过串行通信相连接;
所述BLE网关通过以太网与私有云相连,并将数据包路由到云中;
所述BLE网关是TCP发送方,将数据上传云中,所述私有云运行了TCP服务端线程接收TCP发送方上传的数据包,并将ACK发送回相应的BLE节点。
通过所述测试平台以比较本发明相比现存的在BLE上传输TCP数据包方法的优势。
所述现存的在BLE上传输TCP数据包方法包括BLEach和TCPlp,TCPlp是一种TCP-over-IEEE 802.15.4方法,通过验证,该方法可以应用到BLE上。
图4是traffic pattern对不同TCP/IP和BLE集成协议栈实现的BLE节点的影响,通过改变了TCP客户端的traffic pattern,并计算计算结果;结果如图4所示,x轴中的“s/t”表示TCP客户端每t ms向TCP服务器发送s字节。在传输周期数据(即“10/10”、“100/10”、“1000/100”)时,本实施例的TCP Goodput分别为BLEAch和TCPlp的7倍和4倍;在传输流数据时,本实施例的TCP Goodput分别为BLEAch和TCPlp的40倍和2倍。

Claims (6)

1.一种面向TCP/IP和BLE集成协议栈的优化方法,其特征在于,包括以下步骤:
1)在TCP/IP协议栈和BLE协议栈之间添加了一个额外的自适应层,构建新型的TCP/IP和BLE集成协议栈;
2)在所述自适应层中设置BLE连接事件长度自适应机制,自适应地更新连接事件的容量;
3)在所述自适应层中设置BLE连接维护机制,通过预取TCP层等待的数据包以维护连接事件;
4)将添加有所述自适应层的TCP/IP和BLE集成协议栈,应用于BLE主设备和BLE从设备;
5)判断BLE设备是否为从设备,若是,则所述自适应层取消BLE连接事件长度自适应机制的设置,若否,则忽略此步骤。
2.根据权利要求1所述的一种面向TCP/IP和BLE集成协议栈的优化方法,其特征在于,所述步骤2)具体为:
21)定义最大连接事件长度Lmax、实际连接事件长度Lact以及它们的比值Rlu
Figure FDA0003583088010000011
其中,最大连接事件长度Lmax为固定连接间隔内连接事件长度的上限,实际连接事件长度Lact为连接事件实际发送的数据量大小,并且Lact≤Lmax,Rlu描述最大连接事件长度和事件连接事件长度的间隙,其值在0和1之间,通过调节最大的连接事件长度Lmax,使其接近Lact,以提高TCP有效吞吐量;
22)通过下式获得最大连接事件长度Lmax
Figure FDA0003583088010000012
其中,RTT为TCP数据包的往返时间,由所述自适应层包括的RTT估计方法获得,附加的0.2*Lact用于减小参数更新的开销;
23)通过下式获得实际连接事件长度Lact
Figure FDA0003583088010000013
其中ps为当前BLE协议栈缓冲区中的数据包的大小,pr为由于链路质量差而重传的数据包的大小,r为每秒传输的有效载荷大小;
24)通过下式获得BLE协议栈缓冲区中的数据包大小ps
ps=min(Sdata,Ssnd,Sble) (4)
其中Sdata为剩余要发送的数据包大小,Ssnd为TCP发送窗口限制的数据包大小,Sble为蓝牙协议栈限制的数据包大小;
25)通过下式获得BLE由于链路质量差而重传的数据包大小pr
Figure FDA0003583088010000021
其中e为给定帧错误率(FER),通过在线学习的方法预测当前e的大小,
所述
Figure FDA0003583088010000022
是发送数据包ps总共需要发送的次数,通过下式获得:
Figure FDA0003583088010000023
所述
Figure FDA0003583088010000024
为BLE发送方发送ps字节数据而需要发送的实际字节数据大小。
3.根据权利要求2所述的一种面向TCP/IP和BLE集成协议栈的优化方法,其特征在于,所述步骤22)中自适应层包括的RTT估计方法包括:
221)构建了一个等待时间表,记录每个数据包从进入缓冲区到离开的Twdata的持续时间;
222)对于传出的包,首先使用跨层信息来判断它是否是ACK包,如果是,将根据其BLE控制器的状态来估计等待时间Twack
223)遍历等待时间表,根据数据包报头中的“ACK”字段,找出与ACK对应的数据包的等待时间,一旦找到,将获取数据并从表中删除该项,那些在表中停留的时间超过了阈值的项也将被删除;
224)通过下式获得RTT在当前网络环境下的真实值RTTr
RTTr=Ts-Tr-(Twdata+Twack) (7)
其中Ts是发送数据包的时间戳,Tr是接收到ACK的时间戳。
4.根据权利要求2所述的一种面向TCP/IP和BLE集成协议栈的优化方法,其特征在于,所述步骤25)用于预测e的在线学习的方法包括以下步骤:
251)通过下式构建逻辑回归模型:
Figure FDA0003583088010000031
其中X为模型的输入向量X=<X1...Xn>,Y为表示链路质量的二进制变量,
Figure FDA0003583088010000032
β是待估计的权重参数的一个向量;
252)给定M个数据包,通过下式获得模型的输入X:
Xi=[PKTi-1,PKTi-2,...,PKTi-m] (9)
其中PKTi=[FERi,PHYi],
Figure FDA0003583088010000033
FERi为每个数据包对应的帧错误率;RSSIi是为个数据包对应的信号强度指示器,SNRi为每个数据包对应的信号噪声比;
253)通过极大似然估计来训练逻辑回归模型,对似然函数求偏导获得梯度向量
Figure FDA0003583088010000034
Figure FDA0003583088010000035
254)通过随机梯度下降法进行权重参数βi更新:
Figure FDA0003583088010000036
其中
Figure FDA0003583088010000037
为第lth个样本的梯度:
Figure FDA0003583088010000038
5.根据权利要求1所述的一种面向TCP/IP和BLE集成协议栈的优化方法,其特征在于,所述的步骤3)具体包括:
31)TCP发送方当等待ACK返回时,向上层生成一个数据请求,以从TCP层预取数据包到BLE链路层的缓冲区,一旦接收到ACK,BLE控制器将间隔t时间发送这些数据包,若剩余的数据不足以发送t时间,将生成一些空包,这些包将在接收方的适应层中丢弃;
32)TCP发送方保留一个计数器,用来记录预先发送给接收方的数据包的数量;假设该数字大于下一次往返发送窗口的上限,就将发送所有空数据包来维护连接事件,
若提前发送的数据大于或等于新的发送窗口snd′,则将停止预取数据,
若提前发送的数据小于snd′,则继续发送数据,直到发送的数据量达到snd′或没有要发送的数据;
33)当TCP发送方完成发送数据时,TCP发送方会向TCP接收方发送一个包含snd′的通知数据包,同时,计数器减去snd′;
34)TCP接收方将数据包存储在自适应层中的接收缓冲区中,当接收到通知数据包时,将缓冲区中的snd′数据包发送到上层,并将其转发到目的地。
6.根据权利要求5所述的一种面向TCP/IP和BLE集成协议栈的优化方法,其特征在于,步骤31)所述的时间t取2-3ms。
CN202210359043.3A 2022-04-06 2022-04-06 一种面向tcp/ip和ble集成协议栈的优化方法 Active CN114785870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210359043.3A CN114785870B (zh) 2022-04-06 2022-04-06 一种面向tcp/ip和ble集成协议栈的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210359043.3A CN114785870B (zh) 2022-04-06 2022-04-06 一种面向tcp/ip和ble集成协议栈的优化方法

Publications (2)

Publication Number Publication Date
CN114785870A true CN114785870A (zh) 2022-07-22
CN114785870B CN114785870B (zh) 2024-01-19

Family

ID=82428039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210359043.3A Active CN114785870B (zh) 2022-04-06 2022-04-06 一种面向tcp/ip和ble集成协议栈的优化方法

Country Status (1)

Country Link
CN (1) CN114785870B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018176A (zh) * 2007-03-09 2007-08-15 中国科学院软件研究所 自组织网络中的短报文可靠传输方法
CN105939184A (zh) * 2016-03-04 2016-09-14 哈尔滨工业大学深圳研究生院 基于无迹卡尔曼滤波的空天DTN网络bundle传输时延估计算法
CN109768939A (zh) * 2018-11-27 2019-05-17 中国科学院计算技术研究所 一种支持优先级的标签化网络栈方法和系统
CN110830472A (zh) * 2019-11-07 2020-02-21 西北工业大学 基于tcp/ip协议的灵活数据传输协议的灵活数据传输方法
US20210076222A1 (en) * 2019-09-10 2021-03-11 Arris Enterprises Llc Coordinated and Distributed Frequency Separation During Coexisting Communication
TW202135513A (zh) * 2020-03-10 2021-09-16 美商高通公司 用於ue定位的實體層考慮

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018176A (zh) * 2007-03-09 2007-08-15 中国科学院软件研究所 自组织网络中的短报文可靠传输方法
CN105939184A (zh) * 2016-03-04 2016-09-14 哈尔滨工业大学深圳研究生院 基于无迹卡尔曼滤波的空天DTN网络bundle传输时延估计算法
CN109768939A (zh) * 2018-11-27 2019-05-17 中国科学院计算技术研究所 一种支持优先级的标签化网络栈方法和系统
US20210076222A1 (en) * 2019-09-10 2021-03-11 Arris Enterprises Llc Coordinated and Distributed Frequency Separation During Coexisting Communication
CN110830472A (zh) * 2019-11-07 2020-02-21 西北工业大学 基于tcp/ip协议的灵活数据传输协议的灵活数据传输方法
TW202135513A (zh) * 2020-03-10 2021-09-16 美商高通公司 用於ue定位的實體層考慮

Also Published As

Publication number Publication date
CN114785870B (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
US9391907B2 (en) Packet aggregation
Kliazovich et al. Cross-layer congestion control in ad hoc wireless networks
CN106160953B (zh) 一种基于学习型能效模型的传输方法
US6901593B2 (en) Active queue management with flow proportional buffering
WO2021103706A1 (zh) 控制数据包发送方法、模型训练方法、装置及系统
CN113259365B (zh) 一种窄带弱连接自适应服务框架装置及服务调用方法
CN110167071B (zh) 一种基于竞争的mac层逐跳双向拥塞控制方法
CN107070802A (zh) 基于pid控制器的无线传感器网络拥塞控制技术
JP2014532379A (ja) データ送信制御
CN113890854A (zh) 一种基于深度增强学习的数据中心网络传输方法
CN114785870B (zh) 一种面向tcp/ip和ble集成协议栈的优化方法
EP3108631B1 (en) Buffer bloat control
Dunaytsev et al. TCP NewReno throughput in the presence of correlated losses: The slow-but-steady variant
CN111314961A (zh) Tcp传输方法、装置和系统
CN114389999B (zh) 一种基于数据包的网络传输方法、装置、设备及存储介质
EP2002609A1 (en) Method and termination node for bundling multiple messages into a packet
Ramana et al. Learning-TCP: a novel learning automata based congestion window updating mechanism for ad hoc wireless networks
Argyriou Data collection from resource-limited wireless sensors for cloud-based applications
Shimonishi et al. A congestion control algorithm for data center area communications
CN110650491B (zh) 一种用于车载自组网通信的前向纠错fec参数分析方法
CN112822230B (zh) 一种基于概率的发送端初始速率设置方法和系统
Qin et al. Failure-Aware and Delay-Predicted Multipath Virtual Queue Scheduling for Multimedia Transmission in Edge IoT
Mišić et al. Performance of caching in a layered CoAP proxy
Liu et al. A novel cross-layer congestion control strategy for wireless sensor networks
Zhang et al. Cross-layer transport layer enhancement mechanism in wireless cellular networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant