CN114785870A - 一种面向tcp/ip和ble集成协议栈的优化方法 - Google Patents
一种面向tcp/ip和ble集成协议栈的优化方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000005457 optimization Methods 0.000 title claims abstract description 20
- 230000003044 adaptive effect Effects 0.000 claims abstract description 15
- 230000007246 mechanism Effects 0.000 claims abstract description 12
- 230000008531 maintenance mechanism Effects 0.000 claims abstract description 8
- 239000000872 buffer Substances 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000006978 adaptation Effects 0.000 claims description 7
- 238000007477 logistic regression Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 4
- 238000007476 Maximum Likelihood Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 claims description 3
- 238000011478 gradient descent method Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 7
- 238000003909 pattern recognition Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 239000007844 bleaching agent Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 240000007651 Rubus glaucus Species 0.000 description 2
- 235000011034 Rubus glaucus Nutrition 0.000 description 2
- 235000009122 Rubus idaeus Nutrition 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 241001137251 Corvidae Species 0.000 description 1
- 239000007983 Tris buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- JVTAAEKCZFNVCJ-UHFFFAOYSA-N lactic acid Chemical compound CC(O)C(O)=O JVTAAEKCZFNVCJ-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 235000015108 pies Nutrition 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services 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集成协议栈的优化方法。
背景技术
蓝牙(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;
其中,最大连接事件长度Lmax为固定连接间隔内连接事件长度的上限,实际连接事件长度Lact为连接事件实际发送的数据量大小,并且Lact≤Lmax,Rlu描述最大连接事件长度和事件连接事件长度的间隙,其值在0和1之间,通过调节最大的连接事件长度Lmax,使其接近Lact,以提高TCP有效吞吐量;
22)通过下式获得最大连接事件长度Lmax
其中,RTT为TCP数据包的往返时间,由所述自适应层还包括的RTT估计方法获得,附加的0.2*Lact用于减小参数更新的开销;
23)通过下式获得实际连接事件长度Lact
其中ps为当前BLE协议栈缓冲区中的数据包的大小,pr为由于链路质量差而重传的数据包的大小,r为每秒传输的有效载荷大小;
24)通过下式获得BLE协议栈缓冲区中的数据包大小ps
ps=min(Sdata,Ssnd,Sble) (4)
其中Sdata为剩余要发送的数据包大小,Ssnd为TCP发送窗口限制的数据包大小,Sble为蓝牙协议栈限制的数据包大小;
25)通过下式获得BLE由于链路质量差而重传的数据包大小pr
221)构建了一个等待时间表,记录每个数据包从进入缓冲区到离开的Twdata的持续时间;
222)对于传出的包,首先使用跨层信息来判断它是否是ACK包,如果是,将根据其BLE控制器的状态来估计等待时间Twack;
223)遍历等待时间表,根据数据包报头中的“ACK”字段,找出与ACK对应的数据包的等待时间,一旦找到,将获取数据并从表中删除该项,那些在表中停留的时间超过了阈值的项也将被删除;
224)通过下式获得RTT在当前网络环境下的真实值RTTr
RTTr=Ts-Tr-(Twdata+Twack) (7)
其中Ts是发送数据包的时间戳,Tr是接收到ACK的时间戳。
所述的步骤25)中用于预测e的在线学习的方法包括以下步骤:
251)通过下式构建逻辑回归模型
252)给定M个数据包,通过下式获得模型的输入X
Xi=[PKTi-1,PKTi-2,…,PKTi-m] (9)
254)通过随机梯度下降法进行权重参数βi更新
所述的步骤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;
其中,最大连接事件长度Lmax为固定连接间隔内连接事件长度的上限,实际连接事件长度Lact为连接事件实际发送的数据量大小,并且Lact≤Lmax,Rlu描述最大连接事件长度和事件连接事件长度的间隙,其值在0和1之间;
通过增加Lact或降低Lmax,可以增大Rlu,即提高链路利用率,由于实际的连接事件长度Lact是由发送数据的大小决定的,所以通过调节最大的连接事件长度Lmax,使其接近Lact,以提高TCP有效吞吐量;
22)在连接参数更新模块上定义Lmax的更新方法,通过下式获得最大连接事件长度Lmax
其中,RTT为TCP数据包的往返时间,由所述自适应层还包括的RTT估计方法获得,附加的0.2*Lact用于减小参数更新的开销;
23)在数据模式识别模块上定义实际连接事件长度Lact的获得方法,通过下式获得Lact
其中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
所述的步骤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)通过下式构建逻辑回归模型
252)给定M个数据包,通过下式获得模型的输入X
Xi=[PKTi-1,PKTi-2,…,PKTi-m] (9)
254)通过随机梯度下降法进行权重参数βi更新
在本实施例中,在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;
其中,最大连接事件长度Lmax为固定连接间隔内连接事件长度的上限,实际连接事件长度Lact为连接事件实际发送的数据量大小,并且Lact≤Lmax,Rlu描述最大连接事件长度和事件连接事件长度的间隙,其值在0和1之间,通过调节最大的连接事件长度Lmax,使其接近Lact,以提高TCP有效吞吐量;
22)通过下式获得最大连接事件长度Lmax:
其中,RTT为TCP数据包的往返时间,由所述自适应层包括的RTT估计方法获得,附加的0.2*Lact用于减小参数更新的开销;
23)通过下式获得实际连接事件长度Lact:
其中ps为当前BLE协议栈缓冲区中的数据包的大小,pr为由于链路质量差而重传的数据包的大小,r为每秒传输的有效载荷大小;
24)通过下式获得BLE协议栈缓冲区中的数据包大小ps:
ps=min(Sdata,Ssnd,Sble) (4)
其中Sdata为剩余要发送的数据包大小,Ssnd为TCP发送窗口限制的数据包大小,Sble为蓝牙协议栈限制的数据包大小;
25)通过下式获得BLE由于链路质量差而重传的数据包大小pr:
其中e为给定帧错误率(FER),通过在线学习的方法预测当前e的大小,
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)通过下式构建逻辑回归模型:
252)给定M个数据包,通过下式获得模型的输入X:
Xi=[PKTi-1,PKTi-2,...,PKTi-m] (9)
254)通过随机梯度下降法进行权重参数βi更新:
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。
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)
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定位的實體層考慮 |
-
2022
- 2022-04-06 CN CN202210359043.3A patent/CN114785870B/zh active Active
Patent Citations (6)
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 |