TCP 数据流的处理方法以及通信设备 【技术领域】
本发明涉及通信技术领域, 特别涉及一种 TCP 数据流的处理方法以及通信设备。背景技术 TCP(Transmission Control Protocol, 传输控制协议 ) 是一种面向连接的、 可 靠的、 基于字节流的传输层 (Transport layer) 通信协议, 通过 “三次握手”建立连接, 在数据传输完成时要拆除连接。在 TCP/IP(Transmission Control Protocol/Internet Protocol) 协议层级模型中, TCP 层是位于 IP 层之上, 应用层之下的传输层。
TCP 报文是应用传输控制协议的报文, 通常包括 TCP 首部和实际数据, 其中 TCP 首部包括发送端的端口号 (Source Port)、 接收端的端口号 (Destination Port)、 顺序号 (Sequence Number)、 确认号 (Acknowledgment Number) 以及校验和 (Checknum) 等。通常, 应用层向 TCP 层发送用于网间传输的、 用 8 位字节表示的数据流。然后, TCP 层把该数据流 分割成适当长度的报文段, 并把结果包传给 IP 层, 由 IP 层来通过网络将包传送给对等层 ( 即接收端的 TCP 层 )。TCP 层为了保证不发生丢包, 会给每个 TCP 报文一个序号, 同时序号 也保证了传送到接收端的包是按序接收。然后, 接收端对已成功收到的字节发回一个相应 的确认 (ACK 报文 ) ; 如果发送端在合理的往返时延 (RTT) 内未收到确认, 那么对应的数据 将会被重传。 TCP 报文用一个校验和函数来检验数据是否有错误, 一般在发送和接收时都要 计算校验和。
如图 1 所示的一种 TCP 数据流中 TCP 报文和 TCP ACK 报文的传送过程示意图。参 考图 1, 在终端侧和网络侧之间相互发送 TCP 报文和 TCP ACK 报文, TCP 数据流的传输速率 通常在一定程度上依赖于所接收到的与此 TCP 报文所对应的确认号 ( 即 ACK 报文 ) 的传输 速率。而在同时存在上下行并发情况下, 对等层 ( 即在计算机网络协议层中终端侧和网络 侧相对应的两个层 ) 的 ACK 报文会受到同一方向的 TCP 报文传输的影响, 可能在同一方向 的 TCP 报文传输之后再被传送到数据链路层 ( 未示出 ), 从而影响传输速率。同时, 数据链 路层对所接收到的 TCP 报文和 ACK 报文按序传送至对等层, 而不考虑时延、 报文次序对 TCP 数据传输速率的影响。
更多关于 TCP 数据流传输的技术可以参考公开号为 US2008080464A1, 发明名称为 “Efficient TCP ACK prioritization in wireless networks” ( 在无线网络的高效的 TCP ACK 的优先次序 ) 的美国专利申请文件提供的技术方案, 然而同样没有解决上述问题。
发明内容
本发明解决的问题是使发送至数据链路层的 TCP 数据流的上下行并发传输速率 达到或接近理论值。
为解决上述问题, 本发明实施例提供一种 TCP 数据流的处理方法, 所述 TCP 数据流 包括 TCP 报文和 TCP ACK 报文, 所述处理方法包括 : 根据前一周期内上行发送的数据量和下 行接收的数据量确定当前周期内 TCP 数据流的发送方式 ; 基于所述发送方式确定当前周期内与所述发送方式相适应的发送 TCP 数据流的调整参数 ; 基于所述调整参数对所述 TCP 报 文和所述 TCPACK 报文的发送次序进行调整 ; 依照调整后的发送次序将 TCP 数据流发送至数 据链路层。
可选地, 所述发送方式包括 : 上行数据优先发送和下行数据优先发送。
可选地, 所述调整参数指的是 : 当所述发送方式为上行数据优先发送时, 优先传输 TCP 报文的数目 ; 当所述发送方式为下行数据优先发送时, 优先传输 TCP ACK 报文的数目。
可选地, 所述前一周期和所述当前周期根据预测定时器的设置所确定。
可选地, 所述前一周期和所述当前周期相等。
可选地, 所述根据前一周期内上行发送的数据量和下行接收的数据量确定当前周 期内 TCP 数据流的发送方式包括 :
若在前一周期内, 上行发送的数据量大于下行接收的数据量时, 则确定当前周期 内所述发送方式为上行数据优先发送 ;
若在前一周期内, 上行发送的数据量小于或等于下行接收的数据量时, 则确定当 前周期内所述发送方式为下行数据优先发送。
可选地, 所述基于所述发送方式确定当前周期内与所述发送方式相适应的发送 TCP 数据流的调整参数包括 : 当所述发送方式为上行数据优先发送时, 所述优先传输 TCP 报文的数目根据第一 传输速率比与第一传输时间间隔比之间的比值所确定 ; 其中所述第一传输速率比为上行发 送的数据量与下行接收的数据量之间的比值、 所述第一传输时间间隔比为上行所对应的传 输信道的传输时间间隔与下行所对应的传输信道的传输时间间隔之间的比值 ;
当所述发送方式为下行数据优先发送时, 所述优先传输 TCP ACK 报文的数目根据 第二传输速率比与第二传输时间间隔比之间的比值所确定 ; 其中所述第二传输速率比为下 行接收的数据量与上行发送的数据量之间的比值、 所述第二传输时间间隔比为下行所对应 的传输信道的传输时间间隔与上行所对应的传输信道的传输时间间隔之间的比值。
可选地, 所述调整参数设置有门限值 ; 当所述优先传输 TCP 报文的数目或者所述 优先传输 TCPACK 报文的数目大于所述门限值时, 以所述门限值确定所述优先传输 TCP 报文 的数目或优先传输 TCP ACK 报文的数目。
可选地, 所述基于所述调整参数对所述 TCP 报文和所述 TCP ACK 报文的发送次序 进行调整包括 :
当所述发送方式为上行数据优先发送时, 发送次序为每发送 N 个 TCP 报文后再发 送 1 个 TCP ACK 报文, 其中 N 根据所述优先传输 TCP 报文的数目确定 ;
当所述发送方式为下行数据优先发送时, 发送次序为每发送 M 个 TCPACK 报文后再 发送 1 个 TCP 报文, 其中 M 根据所述优先传输 TCPACK 报文的数目确定。
可选地, 若所述 TCP 数据流具有不同优先级, 则所述基于所述调整参数对所述 TCP 报文和所述 TCPACK 报文的发送次序进行调整包括 :
将具有相同优先级的 TCP 数据流分在同一组别, 每一组别中的 TCP 报文和 TCPACK 报文具有相同优先级 ;
基于所述调整参数分别对每一组别的 TCP 数据流中的所述 TCP 报文和所述 TCPACK 报文的发送次序进行调整。
本发明实施例还提供了一种通信设备, 用于对 TCP 数据流进行处理, 其中所述 TCP 数据流包括 TCP 报文和 TCPACK 报文, 所述通信设备包括 :
自适应处理单元, 根据前一周期内上行发送的数据量和下行接收的数据量确定当 前周期内 TCP 数据流的发送方式 ; 参数确定单元, 用于根据所述自适应处理单元确定的所 述发送方式确定当前周期内与所述发送方式相适应的发送 TCP 数据流的调整参数 ; 排序单 元, 用于基于所述参数确定单元确定的所述调整参数对所述 TCP 报文和所述 TCP ACK 报文 的发送次序进行调整 ; 发送单元, 用于依照所述排序单元确定的调整后的发送次序将 TCP 数据流发送至数据链路层。
可选地, 所述发送方式包括 : 上行数据优先发送和下行数据优先发送。
可选地, 所述调整参数指的是 : 当所述发送方式为上行数据优先发送时, 优先传输 TCP 报文的数目 ; 当所述发送方式为下行数据优先发送时, 优先传输 TCP ACK 报文的数目。
可选地, 所述前一周期和所述当前周期根据预测定时器的设置所确定。
可选地, 所述前一周期和所述当前周期相等。
可选地, 所述自适应处理单元用于 : 若在前一周期内, 上行发送的数据量大于下行 接收的数据量时, 则确定当前周期内所述发送方式为上行数据优先发送 ; 若在前一周期内, 上行发送的数据量小于或等于下行接收的数据量时, 则确定当前周期内所述发送方式为下 行数据优先发送。 可选地, 所述参数确定单元用于 :
当所述发送方式为上行数据优先发送时, 所述优先传输 TCP 报文的数目根据第一 传输速率比与第一传输时间间隔比之间的比值所确定 ; 其中所述第一传输速率比为上行发 送的数据量与下行接收的数据量之间的比值、 所述第一传输时间间隔比为上行所对应的传 输信道的传输时间间隔与下行所对应的传输信道的传输时间间隔之间的比值 ;
当所述发送方式为下行数据优先发送时, 所述优先传输 TCP ACK 报文的数目根据 第二传输速率比与第二传输时间间隔比之间的比值所确定 ; 其中所述第二传输速率比为下 行接收的数据量与上行发送的数据量之间的比值、 所述第二传输时间间隔比为下行所对应 的传输信道的传输时间间隔与上行所对应的传输信道的传输时间间隔之间的比值。
可选地, 所述调整参数设置有门限值 ; 当所述优先传输 TCP 报文的数目或者所述 优先传输 TCPACK 报文的数目大于所述门限值时, 以所述门限值确定所述优先传输 TCP 报文 的数目或优先传输 TCP ACK 报文的数目。
可选地, 所述排序单元用于 : 当所述发送方式为上行数据优先发送时, 发送次序为 每发送 N 个 TCP 报文后再发送 1 个 TCP ACK 报文, 其中 N 根据所述优先传输 TCP 报文的数 目确定 ; 当所述发送方式为下行数据优先发送时, 发送次序为每发送 M 个 TCP ACK 报文后再 发送 1 个 TCP 报文, 其中 M 根据所述优先传输 TCP ACK 报文的数目确定。
可选地, 若所述 TCP 数据流具有不同优先级, 则所述排序单元还用于 : 将具有相同 优先级的 TCP 数据流分在同一组别, 每一组别中的 TCP 报文和 TCPACK 报文具有相同优先 级; 基于所述调整参数分别对每一组别的 TCP 数据流中的所述 TCP 报文和所述 TCP ACK 报 文的发送次序进行调整。
可选地, 所述通信设备包括终端侧的通信终端或者网络侧的服务器。
与现有技术相比, 本发明技术方案具有以下有益效果 :
根据前一周期内上行发送的数据量和下行接收的数据量确定当前周期内 TCP 数 据流的发送方式, 即确定上行数据优先发送还是下行数据优先发送 ; 然后, 根据所确定的发 送方式确定当前周期内与所述发送方式相适应的发送 TCP 数据流的调整参数, 通过所述调 整参数对所述 TCP 数据流中的 TCP 报文和所述 TCP ACK 报文的发送次序进行调整, 并依照调 整后的发送次序将 TCP 数据流发送至数据链路层。本技术方案使发送至数据链路层的 TCP 数据流的上下行并发传输速率达到或接近理论值。
在具体实施例中, 若 TCP 数据流具有不同的优先级, 则先将具有相同优先级的 TCP 数据流分在同一组别, 然后基于调整参数分别对每一组别的 TCP 数据流中的所述 TCP 报文 和所述 TCP ACK 报文的发送次序进行调整, 再依照调整后的发送次序将 TCP 数据流发送至 数据链路层。本技术方案使发送至数据链路层的 TCP 数据流的上下行并发传输速率达到或 接近理论值。 附图说明
图 1 是现有技术的一种 TCP 数据流中 TCP 报文和 TCP ACK 报文的传送过程示意 图;
图 2 是本发明的一种 TCP 数据流的处理方法的具体实施方式的流程示意图 ; 图 3 是本发明的一种 TCP 数据流的处理方法的具体实施例的示意图 ; 图 4 是本发明的一种通信终端的具体实施例的结构示意图。具体实施方式
发明人发现 TCP 数据流的传输速率通常在一定程度上依赖于所接收到的与此 TCP 报文所对应的确认号 ( 即 ACK 报文 ) 的传输速率, 而在同时存在上下行并发情况下, 对等层 的 ACK 报文会受到同一方向的 TCP 报文传输的影响, 可能在同一方向的 TCP 报文传输之后 再被传送到数据链路层, 从而影响传输速率。同时, 数据链路层对所接收到的 TCP 报文和 ACK 报文按序传送至对等层, 而不考虑时延、 报文次序对 TCP 数据传输速率的影响。
针对上述问题, 发明人经过研究, 提供了一种 TCP 数据流的处理方法以及终端, 使 发送至数据链路层的 TCP 数据流的上下行并发传输速率达到或接近理论值。
如图 2 所示的本发明的一种 TCP 数据流的处理方法的具体实施方式的流程示意 图。参考图 2, 该处理方法包括 :
步骤 S1 : 根据前一周期内上行发送的数据量和下行接收的数据量确定当前周期 内 TCP 数据流的发送方式。
具体地, 在本实施例中, 所述前一周期和所述当前周期可以根据预测定时器的设 置所确定, 通常所述预测定时器设置的默认时长 ( 即周期 ) 为 1 秒, 本领域技术人员也可以 根据实际情况改变默认时长的设置, 这并不影响本发明的实质。 需要说明的是, 为了便于本 技术方案的实施, 优选的方式是所述预测定时器设置的每一周期的时长都相等, 即所述前 一周期和所述当前周期相等, 从而使得在前一周期内测得的上行发送的数据量和下行接收 的数据量对于当前周期具有参考价值。
另一方面, 所述预测定时器可以设置于终端侧的通信终端内, 也可以设置于网络 侧的服务器内。由于在本实施例中, 所述终端侧和网络侧是对等层, 因此在本步骤中, 可以根据前一周期内任一侧上行发送的数据量和下行接收的数据量来确定当前周期内 TCP 数 据流的发送方式。
然后, 基于前一周期结束时 ( 或者说预测定时器到期时 ), 分别统计数据链路层 ( 终端侧或者网络侧 ) 上在所述前一周期内上行发送的数据量和下行接收的数据量, 并根 据统计结果确定当前 TCP 数据流的发送方式。在本实施例中, 所述发送方式包括上行数据 优先发送和下行数据优先发送。
具体地, 确定的所述发送方式为 :
若在前一周期内, 上行发送的数据量大于下行接收的数据量时, 则确定当前周期 内所述发送方式为上行数据优先发送 ; 若在前一周期内, 上行发送的数据量小于或等于下 行接收的数据量时, 则确定当前周期内所述发送方式为下行数据优先发送。
步骤 S2 : 基于所述发送方式确定当前周期内与所述发送方式相适应的发送 TCP 数 据流的调整参数。
具体地, 根据上述步骤 S1 可以确定在当前周期内 TCP 数据流的发送方式, 所述发 送方式包括上行数据优先发送和下行数据优先发送两种情形。在本实施例中, 所述调整参 数指的是 : 当所述发送方式为上行数据优先发送时, 优先传输 TCP 报文的数目 ; 当所述发送 方式为下行数据优先发送时, 优先传输 TCP ACK 报文的数目。
本步骤具体包括 :
当所述发送方式为上行数据优先发送时, 所述优先传输 TCP 报文的数目根据第一 传输速率比与第一传输时间间隔比之间的比值所确定。
具体地, 根据上述步骤 S1 中得到的前一周期内上行发送的数据量和下行接收的 数据量可以确定所述第一传输速率比, 即所述第一传输速率比为 : 上行发送的数据量与下 行接收的数据量之间的比值。进一步地, 所述第一传输时间间隔比为上行所对应的传输信 道的传输时间间隔 (Transmission Time Interval, TTI) 与下行所对应的传输信道的传输 时间间隔之间的比值, 其中所谓传输时间间隔是指给定的传输信道 ( 包括上行对应的传输 信道和下行对应的传输信道 ) 传输数据所使用的最小时间单位, 典型值是 2ms( 毫秒 ), 5ms, 10ms, 20ms, 40ms 和 80ms。
当所述发送方式为下行数据优先发送时, 所述优先传输 TCP ACK 报文的数目根据 第二传输速率比与第二传输时间间隔比之间的比值所确定。
具体地, 与上述确定第一传输速率比相类似地, 所述第二传输速率比为下行接收 的数据量与上行发送的数据量之间的比值。进一步地, 所述第二传输时间间隔比为下行所 对应的传输信道的传输时间间隔与上行所对应的传输信道的传输时间间隔之间的比值。
需要说明的是, 在本实施例中, 所述调整参数设置有门限值 ; 当所述优先传输 TCP 报文的数目或者所述优先传输 TCP ACK 报文的数目大于所述门限值时, 以所述门限值确定 所述优先传输 TCP 报文的数目或优先传输 TCPACK 报文的数目。在实际应用中, 设置所述门 限值的是为了避免 TCP 报文和 TCPACK 报文得不到传输而设置的最大值, 通常所述门限值的 默认值为 16。
步骤 S3 : 基于所述调整参数对所述 TCP 报文和所述 TCP ACK 报文的发送次序进行 调整。
具体地, 在本实施例中, 结合参考图 3 所示的本发明的一种 TCP 数据流的方法的具体实施例的示意图。 如图 3 所示, 通过数据发生器 11 产生 TCP 数据流, 并按时间的先后顺序 依次准备发送至数据链路层 13。 需要说明的是, 本实施例中, 所述 TCP 数据流是具有相同优 先级, 即所述 TCP 数据流中的 TCP 报文和 TCP ACK 报文也具有相同优先级。本领域技术人 员理解, 通常 TCP 数据流中的报文都包含优先级信息, 通过读取所述报文的优先级信息可 以确定该报文的服务质量, 例如, 优先级高的报文比优先级低的报文在传输时的时延更短。 为了便于描述, 对所述 TCP 数据流作如下编号 :
d1_1, d1_2, d1_3, d1_4, d1_5, d1_6, d1_7, d1_8, d1_9, d1_10, d1_11, d1_12, ..., d1_m ;
在本实施例中, 所述 TCP 数据流包括两种数据报文, 一种是 TCP 报文, 另一种是 TCPACK 报文。通过数据处理层 12 将所述 TCP 数据流分成 TCP 报文数据流和 TCP ACK 报文 数据流。
具体地, 如图 3 所示, 假设所述 TCP 数据流中的 TCP 报文为 : d1_1, d1_3, d1_5, d1_7, d1_9, d1_11, ..., d1_m ; TCP ACK 报文为 : d1_2, d1_4, d1_6, d1_8, d1_10, d1_12, ...。
然后, 根据上述步骤 S1 确定的 TCP 数据流的发送方式以及步骤 S2 确定的调整参 数来调整 TCP 数据流的发送次序, 即在 TCP 数据流中 TCP 报文和 TCP ACK 报文的发送次序。 当所述发送方式为上行数据优先发送时, 根据已确定的所述调整参数 ( 即优先传 输 TCP 报文的数目 ) 对所述 TCP 报文和所述 TCP ACK 报文的发送次序进行调整。在本实施 例中, 例如, 发送次序为 : 每发送 N 个 TCP 报文后再发送 1 个 TCP ACK 报文, 其中 N 根据所述 优先传输 TCP 报文的数目确定。为了便于描述, 假设所述优先传输 TCP 报文的数目为 2, 那 么 N 的取值也为 2, 即每发送 2 个 TCP 报文后再发送 1 个 TCP ACK 报文, 如图 3 所示, 经过调 整后的 TCP 数据流的发送次序如下 :
d1_1, d1_3, d1_2, d1_5, d1_7, d1_4, d1_9, d1_11, d1_6, ..., d1_m。
需要说明的是, 在本实施例中, 是将第 1 个 TCP ACK 报文 ( 即 d1_2) 插在前 2 个 TCP 报文 ( 即 d1_1, d1_3) 之后, 但并不限于此, 实际应用中也可以是将第 1 个 TCP ACK 报 文插在前 2 个 TCP 报文之前, 后续仍旧依照每发送 2 个 TCP 报文后再发送 1 个 TCPACK 报文 的发送次序。
当所述发送方式为下行数据优先发送时, 根据已确定的所述调整参数 ( 即优先传 输 TCP ACK 报文的数目 ) 对所述 TCP 报文和所述 TCP ACK 报文的发送次序进行调整。在本 实施例中, 例如, 发送次序为 : 每发送 M 个 TCPACK 报文后再发送 1 个 TCP 报文, 其中 M 根据 所述优先传输 TCP ACK 报文的数目确定。为了便于描述, 假设所述优先传输 TCP ACK 报文 的数目为 2, 那么 M 的取值也为 2, 即每发送 2 个 TCP ACK 报文后再发送 1 个 TCP 报文, 如图 3 所示, 经过调整后的 TCP 数据流的发送次序如下 :
d1_2, d1_4, d1_1, d1_6, d1_8, d1_3, d1_10, d1_12, d1_5, ...。
需要说明的是, 在本实施例中, 是将第 1 个 TCP 报文 ( 即 d1_1) 插在前 2 个 TCP ACK 报文 ( 即 d1_2, d1_4) 之后, 但并不限于此, 实际应用中, 也可以是将第 1 个 TCP 报文插在前 2 个 TCP ACK 报文之前, 后续仍旧依照每发送 2 个 TCP ACK 报文后再发送 1 个 TCP 报文。
步骤 S4 : 依照调整后的发送次序将 TCP 数据流发送至数据链路层。
具体地, 继续结合参考图 2, 若当前的发送方式是上行数据优先发送, 则将对应于 该发送方式调整发送次序后的 TCP 数据流发送至数据链路层 ; 若当前的发送方式是下行数
据优先发送, 则将对应于该发送方式调整发送次序后的 TCP 数据流发送至数据链路层。具 体的发送过程与现有技术相类似, 在此不作赘述。
进一步地, 在本实施例的一个变化例中, 当所述数据发生器 11 产生的是具有不同 优先级的 TCP 数据流时, 所述数据处理层 12 的处理过程将变化为 : 首先, 将具有相同优先 级的 TCP 数据流分在同一组别, 每一组别中的 TCP 报文和 TCPACK 报文具有相同优先级。通 常, 所述数据处理层 12 可以获取 TCP 数据流中的优先级信息, 从而按照优先级由高到低的 顺序, 将优先级高的 TCP 数据流排在优先级低的 TCP 数据流的前面。然后, 基于所述调整参 数分别对每一组别的 TCP 数据流中的所述 TCP 报文和所述 TCP ACK 报文的发送次序进行调 整。具体地, 在对每一组别的 TCP 数据流进行发送次序调整时, 则与上述步骤 S3 的过程相 类似, 在此不作赘述。
可以看出, 与上述 TCP 数据流具有相同优先级时的处理方法不同的是 : 当所述数 据发生器 11 产生的 TCP 数据流具有不同优先级时, 实际上是进行了两次发送次序的调整过 程。具体地说, 先根据优先级的高低对 TCP 数据流作了一次排序, 如将优先级高的 TCP 数据 流排在优先级低的 TCP 数据流之前发送 ; 然后, 基于具有相同优先级的 TCP 数据流, 再根据 上述实施例中的步骤 S3 的处理方法再对 TCP 数据流中的 TCP 报文和 TCPACK 报文进行排序, 从而最终确定发送至数据链路层的 TCP 数据流的发送次序。 进一步地, 在之后的每个周期内 ( 即每次预测定时器到期后 ), 继续采用如上述步 骤 S1 至步骤 S4 的实施方式调整发送至数据链路层的 TCP 数据流的发送次序, 从而使得在 上下行数据并发传输时的传输速率达到或接近理论值。
本发明实施例还提供了一种如图 4 所示的通信设备, 参考图 4, 所述通信设备 2 用 于对 TCP 数据流进行处理, 其中所述 TCP 数据流包括 TCP 报文和 TCPACK 报文。
具体地, 所述通信设备 2 包括 : 自适应处理单元 21, 根据前一周期内上行发送的数 据量和下行接收的数据量确定当前周期内 TCP 数据流的发送方式 ; 参数确定单元 22, 用于 根据所述自适应处理单元 21 确定的所述发送方式确定当前周期内与所述发送方式相适应 的发送 TCP 数据流的调整参数 ; 排序单元 23, 用于基于所述参数确定单元 22 确定的所述调 整参数对所述 TCP 报文和所述 TCPACK 报文的发送次序进行调整 ; 发送单元 24, 用于依照所 述排序单元 23 确定的调整后的发送次序将 TCP 数据流发送至数据链路层。
具体地, 所述前一周期和所述当前周期可以根据预测定时器的设置所确定, 通常 所述预测定时器 ( 未示出 ) 设置的默认时长 ( 即周期 ) 为 1 秒, 但不限于此。在本实施例 中, 所述前一周期和所述当前周期相等。 所述自适应处理单元 21 用于 : 若在前一周期内, 上 行发送的数据量大于下行接收的数据量时, 则确定当前周期内所述发送方式为上行数据优 先发送 ; 若在前一周期内, 上行发送的数据量小于或等于下行接收的数据量时, 则确定当前 周期内所述发送方式为下行数据优先发送。
进一步地, 所述调整参数指的是 : 当所述发送方式为上行数据优先发送时, 优先传 输 TCP 报文的数目 ; 当所述发送方式为下行数据优先发送时, 优先传输 TCP ACK 报文的数 目。
所述参数确定单元 22 用于 :
当所述发送方式为上行数据优先发送时, 所述优先传输 TCP 报文的数目根据第一 传输速率比与第一传输时间间隔比之间的比值所确定 ; 其中所述第一传输速率比为上行发
送的数据量与下行接收的数据量之间的比值、 所述第一传输时间间隔比为上行所对应的传 输信道的传输时间间隔与下行所对应的传输信道的传输时间间隔之间的比值。
当所述发送方式为下行数据优先发送时, 所述优先传输 TCP ACK 报文的数目根据 第二传输速率比与第二传输时间间隔比之间的比值所确定 ; 其中所述第二传输速率比为下 行接收的数据量与上行发送的数据量之间的比值、 所述第二传输时间间隔比为下行所对应 的传输信道的传输时间间隔与上行所对应的传输信道的传输时间间隔之间的比值。
需要说明的是, 在本实施例中, 所述调整参数设置有门限值 ; 当所述优先传输 TCP 报文的数目或者所述优先传输 TCP ACK 报文的数目大于所述门限值时, 以所述门限值确定 所述优先传输 TCP 报文的数目或优先传输 TCPACK 报文的数目。
所述排序单元 23 用于 : 当所述发送方式为上行数据优先发送时, 发送次序为每发 送 N 个 TCP 报文后再发送 1 个 TCP ACK 报文, 其中 N 根据所述优先传输 TCP 报文的数目确 定; 当所述发送方式为下行数据优先发送时, 发送次序为每发送 M 个 TCP ACK 报文后再发送 1 个 TCP 报文, 其中 M 根据所述优先传输 TCP ACK 报文的数目确定。需要说明的是, 这里的 排序过程针对 TCP 数据流具有相同优先级的情形。
在本实施例的一个变化例中, 若所述 TCP 数据流具有不同优先级, 所述排序单元 23 用于将具有相同优先级的 TCP 数据流分在同一组别, 每一组别中的 TCP 报文和 TCP ACK 报文具有相同优先级 ; 基于所述调整参数分别对每一组别的 TCP 数据流中的所述 TCP 报文 和所述 TCP ACK 报文的发送次序进行调整。 需要说明的是, 由于在本实施例中, 所述终端侧和网络侧是对等层, 因此本技术方 案的 TCP 数据流的处理过程可以在终端侧执行, 也可以在网络侧执行, 因此图 4 所示的通信 设备 2 可以是终端侧的通信终端、 也可以是网络侧的服务器。
综上所述, 本技术方案根据前一周期内上行发送的数据量和下行接收的数据量确 定当前周期内 TCP 数据流的发送方式, 即确定上行数据优先发送还是下行数据优先发送 ; 然后, 根据所确定的发送方式确定当前周期内与所述发送方式相适应的发送 TCP 数据流的 调整参数, 通过所述调整参数对所述 TCP 数据流中的 TCP 报文和所述 TCP ACK 报文的发送 次序进行调整, 并依照调整后的发送次序将 TCP 数据流发送至数据链路层。
在具体实施例中, 若 TCP 数据流具有不同的优先级, 则先将具有相同优先级的 TCP 数据流分在同一组别, 然后基于调整参数分别对每一组别的 TCP 数据流中的所述 TCP 报文 和所述 TCP ACK 报文的发送次序进行调整, 再依照调整后的发送次序将 TCP 数据流发送至 数据链路层。本技术方案使发送至数据链路层的 TCP 数据流的上下行并发传输速率达到或 接近理论值。
本发明虽然已以较佳实施例公开如上, 但其并不是用来限定本发明, 任何本领域 技术人员在不脱离本发明的精神和范围内, 都可以利用上述揭示的方法和技术内容对本发 明技术方案做出可能的变动和修改, 因此, 凡是未脱离本发明技术方案的内容, 依据本发明 的技术实质对以上实施例所作的任何简单修改、 等同变化及修饰, 均属于本发明技术方案 的保护范围。