在通信设备中管理待发送的确认数据包的制作方法
【技术领域】
[0001]所描述的实施例一般涉及通信技术,并且更具体地涉及在通信设备中管理待发送的确认(ACK)数据包。
【背景技术】
[0002]当两个计算设备通过网络进行通信时,第一设备可以发送数据至第二设备。第二设备可通过发送一个或多个ACK数据包至第一设备来确认成功地接收由第一设备发送的数据。例如,执行特定传输层协议(诸如传输控制协议(TCP))的设备和网络可使用ACK数据包作为流控制机制。就这一点而言,发送一系列数据包至第二设备的设备可被允许在接收确认成功地接收已发送的未确认数据包的ACK数据包之前,最多可发送预定义的最大数目的未确认数据包至第二设备。如果发送一系列数据包的发送设备已发送最大数量的未确认数据包,则发送设备必须停止发送一系列数据包中的另外的连续数据包,和/或重新发送一个或多个之前已发送的数据包,直到其从第二设备接收ACK。如此,如果第二设备发送ACK数据包以确认接收到由发送设备发送的数据包存在延迟,则可减少与发送设备的通信会话的吞吐量和往返时间(RTT),因为由发送设备发送数据包可被暂停。
[0003]在许多情况下,在网络上沿一个方向发送数据的可用带宽不同于沿另一方向发送数据的带宽。例如,在许多蜂窝通信系统中,可用的下行链路(DL)带宽通常显著高于可用的上行链路(UL)带宽,因为由移动终端从网络下载的数据量可远远高于由该移动终端上载到网络的数据。然而,有时UL带宽甚至不足以允许TCP ACK数据包的传输。如果当设备在发送TCP ACK数据包以确认DL上接收到的数据的同时正在向网络上载数据,则此情况可能恶化。由于UL上的这种拥塞,TCP设备的RTT可增加,并且DL吞吐量可被影响,因为DL上的数据包的发送可由于TCP ACK数据包的延迟传输而暂停。
【发明内容】
[0004]本文所公开的一些示例性实施例提供在通信设备中管理待发送的ACK数据包的方法。更具体地,根据一些示例性实施例的通信设备可被配置为响应于拥塞状况而丢弃传输队列中的待发送的一个或多个最旧ACK数据包。就这一点而言,根据此实施例,可避免在拥塞状况下发送较旧ACK数据包而使用带宽,因为较新的待发送的ACK数据包可被发送,该待发送的ACK数据包累积地确认接收到被已丢弃数据包确认的数据包,而无需等待发送已被丢弃的待发送的ACK数据包。因此,从确认接收到数据的减少的延迟,RTT可能减少且通信会话的吞吐量可能增加。
[0005]在第一实施例中,提供了无线通信设备。第一实施例的无线通信设备可包括通信接口和耦接到该通信接口的处理电路。通信接口可被配置为在上行链路上将数据发送至蜂窝网络,并在下行链路上从蜂窝网络接收数据。第一实施例的处理电路可被配置为控制无线通信设备以至少:监测上行链路上待发送的数据包的传输队列的状态;检测指示上行链路拥塞的队列状况,该上行链路拥塞使得发送传输队列中的待发送的多个TCP ACK数据包中的一个或多个TCP ACK数据包延迟;以及响应于所述队列状况,丢弃来自传输队列的多个TCP ACK数据包中的一组一个或多个TCP ACK数据包。所丢弃的一组一个或多个TCPACK数据包可包括传输队列中的待发送的多个TCP ACK数据包的一个或多个最旧TCP ACK数据包。在一组一个或多个TCP ACK数据包已被丢弃之后,传输队列中的待发送的多个TCPACK数据包中的最新TCP ACK数据包可在传输队列中保持待发送。
[0006]在第二实施例中,提供了用于在通信设备中管理待发送的ACK数据包的方法。第二实施例的方法可包括以下通信设备:用于监测通过网络待发送的数据包的传输队列的状态;检测指示上行链路拥塞的队列状况,该上行链路拥塞使得发送传输队列中的待发送的多个ACK数据包中的一个或多个ACK数据包延迟;以及响应于所述队列状况,丢弃来自传输队列的多个ACK数据包中的一组一个或多个ACK数据包。所丢弃的一组一个或多个ACK数据包可包括传输队列中的待发送的多个ACK数据包的一个或多个最旧ACK数据包。在该组一个或多个ACK数据包已被丢弃之后,传输队列中的待发送的多个ACK数据包中的最新ACK数据包可在传输队列中保持待发送。
[0007]在第三实施例中,提供了一种在通信设备中管理待发送的ACK数据包的计算机程序产品。第三实施例的计算机程序产品可包括在其上存储有程序代码的至少一个非暂态计算机可读存储介质。第三实施例的程序代码可包括:用于监测通过网络待发送的数据包的传输队列的状态的程序代码;用于检测指示拥塞的队列状况的程序代码,该拥塞使得发送传输队列中的待发送的多个ACK数据包中的一个或多个ACK数据包延迟;以及用于响应于所述队列状况,丢弃来自传输队列的多个ACK数据包中的一组一个或多个ACK数据包的程序代码。所丢弃的一组一个或多个ACK数据包可包括传输队列中的待发送的多个ACK数据包的一个或多个最旧ACK数据包。在该组一个或多个ACK数据包已被丢弃之后,传输队列中的待发送的多个ACK数据包中的最新ACK数据包可在传输队列中保持待发送。
[0008]在第四实施例中,提供了一种管理待发送的ACK数据包的装置。第四实施例的设备可包括:用于监测通过网络待发送的数据包的传输队列的状态的装置;用于检测指示拥塞的队列状况的装置,该拥塞使得发送传输队列中的待发送的多个ACK数据包中的一个或多个ACK数据包延迟;以及用于响应于所述队列状况,丢弃来自传输队列的多个ACK数据包中的一组一个或多个ACK数据包的装置。所丢弃的该组一个或多个ACK数据包可包括传输队列中的待发送的多个ACK数据包的一个或多个最旧ACK数据包。在该组一个或多个ACK数据包已被丢弃之后,传输队列中的待发送的多个ACK数据包中的最新ACK数据包可在传输队列中保持待发送。
[0009]提供所述
【发明内容】
仅仅是为了概述一些示例性实施例,以便提供对本公开的一些方面的基本了解。因此,应当理解,上文所述的示例性实施例仅为实例,且不应理解为以任何方式缩小本发明的范围或实质。根据在结合以举例的方式示出所描述的实施例的原理的附图的情况下进行的以下详细描述,其他实施例、方面和优点将变得显而易见。
【附图说明】
[0010]通过参考结合附图所作的以下描述可最佳地理解所述实施例及其优点。这些附图未必按比例绘制,并且决不会限制本领域的技术人员在不脱离所描述的实施例的实质和范围的前提下对所描述的实施例所作的在形式和细节方面的任何修改。
[0011]图1示出了根据一些示例性实施例的通信系统。
[0012]图2示出了示例性的TCP ACK数据包格式。
[0013]图3示出了根据一些示例性实施例的可在通信设备上实现的装置的框图。
[0014]图4A和图4B示出了根据一些示例性实施例对传输队列中的待发送的ACK数据包的管理。
[0015]图5示出了根据一些示例性实施例的用于管理待发送的ACK数据包的示例性方法的流程图。
[0016]图6示出了根据一些示例性实施例的用于管理待发送的ACK数据包的另一个示例性方法的流程图。
[0017]图7示出了根据一些示例性实施例的用于管理待发送的ACK数据包的又一个示例性方法的流程图。
【具体实施方式】
[0018]在许多通信系统中,接收数据的设备可通过发送ACK数据包至发送设备来确认接收到数据。然而,如果发送ACK数据包存在延迟,诸如可发生在拥塞状况下,则由发送设备发送额外数据可被暂停,同时发送设备在以下实例中等待接收ACK数据包:在此实例中发送设备已发送可允许的最大数量的未确认数据包。如此,发送ACK数据包的延迟可导致拥塞状况,该延迟导致不期望的RTT减少和吞吐量增加。
[0019]本文所公开的一些示例性实施例提供在通信设备中管理待发送的ACK数据包的系统、方法、装置和计算机程序产品,其可在导致发送传输队列中的待发送的ACK数据包延迟的拥塞状况下增加通信会话中的吞吐量并减少RTT。更具体地,一些示例性实施例可被配置为响应于拥塞状况,丢弃传输队列中的待发送的一个或多个最旧ACK数据包。就这一点而言,根据此类实施例,可以避免在拥塞状况下发送较旧ACK数据包而使用带宽,因为较新的待发送的ACK数据包可被发送,该待发送的ACK数据累积地确认接收到被已丢弃数据包确认的数据包,而无需等待发送已被丢弃的待发送的ACK数据包。因此,从在拥塞状况下确认接收到数据的减少的延迟,RTT可能减少且通信会话的吞吐量可能增加。
[0020]图1示出了根据一些示例性实施例的通信系统100。系统100可包括通信设备102,该通信设备可连接至网络104。通信设备102可实施为任何计算设备,该计算设备可被配置为连接至网络并通过该网络通信,诸如包括有线网络、无线网络、它们的某种组合等。以非限制性示例进行说明,通信设备102可实施为无线通信设备(例如,移动终端、蜂窝电话、智能手机、平板计算设备、膝上型电脑、台式计算机和/或包括被配置为支持通过无线网络通信的无线通信接口的其他计算设备)、膝上型电脑、台式计算机、服务器、网络电视、网络音频/视频接收器、联网家电和/或可被配置为连接至网络并通过该网络通信的任何其他设备。
[0021]网络104可实施为可支持两个联网设备之间(诸如通信设备102)通信的任何网络。例如,网络104可实施为有线网络(例如,以太网网络、有线局域网、光纤网络、可由电话/有线服务供应商维护的有线网络、或它们的某种组合等)、无线网络(例如,蜂窝网络、无线局域网、无线广域网、或它们的某种组合等)或它们的组合,且在一些示例性实施例中可包括互联网。
[0022]如此,应当理解通信设备102可经由多种链路和/或访问网络中的任一种连接至