在通信設(shè)備中管理待發(fā)送的確認(rèn)數(shù)據(jù)包的制作方法
【技術(shù)領(lǐng)域】
[0001]所描述的實(shí)施例一般涉及通信技術(shù),并且更具體地涉及在通信設(shè)備中管理待發(fā)送的確認(rèn)(ACK)數(shù)據(jù)包。
【背景技術(shù)】
[0002]當(dāng)兩個(gè)計(jì)算設(shè)備通過(guò)網(wǎng)絡(luò)進(jìn)行通信時(shí),第一設(shè)備可以發(fā)送數(shù)據(jù)至第二設(shè)備。第二設(shè)備可通過(guò)發(fā)送一個(gè)或多個(gè)ACK數(shù)據(jù)包至第一設(shè)備來(lái)確認(rèn)成功地接收由第一設(shè)備發(fā)送的數(shù)據(jù)。例如,執(zhí)行特定傳輸層協(xié)議(諸如傳輸控制協(xié)議(TCP))的設(shè)備和網(wǎng)絡(luò)可使用ACK數(shù)據(jù)包作為流控制機(jī)制。就這一點(diǎn)而言,發(fā)送一系列數(shù)據(jù)包至第二設(shè)備的設(shè)備可被允許在接收確認(rèn)成功地接收已發(fā)送的未確認(rèn)數(shù)據(jù)包的ACK數(shù)據(jù)包之前,最多可發(fā)送預(yù)定義的最大數(shù)目的未確認(rèn)數(shù)據(jù)包至第二設(shè)備。如果發(fā)送一系列數(shù)據(jù)包的發(fā)送設(shè)備已發(fā)送最大數(shù)量的未確認(rèn)數(shù)據(jù)包,則發(fā)送設(shè)備必須停止發(fā)送一系列數(shù)據(jù)包中的另外的連續(xù)數(shù)據(jù)包,和/或重新發(fā)送一個(gè)或多個(gè)之前已發(fā)送的數(shù)據(jù)包,直到其從第二設(shè)備接收ACK。如此,如果第二設(shè)備發(fā)送ACK數(shù)據(jù)包以確認(rèn)接收到由發(fā)送設(shè)備發(fā)送的數(shù)據(jù)包存在延遲,則可減少與發(fā)送設(shè)備的通信會(huì)話的吞吐量和往返時(shí)間(RTT),因?yàn)橛砂l(fā)送設(shè)備發(fā)送數(shù)據(jù)包可被暫停。
[0003]在許多情況下,在網(wǎng)絡(luò)上沿一個(gè)方向發(fā)送數(shù)據(jù)的可用帶寬不同于沿另一方向發(fā)送數(shù)據(jù)的帶寬。例如,在許多蜂窩通信系統(tǒng)中,可用的下行鏈路(DL)帶寬通常顯著高于可用的上行鏈路(UL)帶寬,因?yàn)橛梢苿?dòng)終端從網(wǎng)絡(luò)下載的數(shù)據(jù)量可遠(yuǎn)遠(yuǎn)高于由該移動(dòng)終端上載到網(wǎng)絡(luò)的數(shù)據(jù)。然而,有時(shí)UL帶寬甚至不足以允許TCP ACK數(shù)據(jù)包的傳輸。如果當(dāng)設(shè)備在發(fā)送TCP ACK數(shù)據(jù)包以確認(rèn)DL上接收到的數(shù)據(jù)的同時(shí)正在向網(wǎng)絡(luò)上載數(shù)據(jù),則此情況可能惡化。由于UL上的這種擁塞,TCP設(shè)備的RTT可增加,并且DL吞吐量可被影響,因?yàn)镈L上的數(shù)據(jù)包的發(fā)送可由于TCP ACK數(shù)據(jù)包的延遲傳輸而暫停。
【發(fā)明內(nèi)容】
[0004]本文所公開(kāi)的一些示例性實(shí)施例提供在通信設(shè)備中管理待發(fā)送的ACK數(shù)據(jù)包的方法。更具體地,根據(jù)一些示例性實(shí)施例的通信設(shè)備可被配置為響應(yīng)于擁塞狀況而丟棄傳輸隊(duì)列中的待發(fā)送的一個(gè)或多個(gè)最舊ACK數(shù)據(jù)包。就這一點(diǎn)而言,根據(jù)此實(shí)施例,可避免在擁塞狀況下發(fā)送較舊ACK數(shù)據(jù)包而使用帶寬,因?yàn)檩^新的待發(fā)送的ACK數(shù)據(jù)包可被發(fā)送,該待發(fā)送的ACK數(shù)據(jù)包累積地確認(rèn)接收到被已丟棄數(shù)據(jù)包確認(rèn)的數(shù)據(jù)包,而無(wú)需等待發(fā)送已被丟棄的待發(fā)送的ACK數(shù)據(jù)包。因此,從確認(rèn)接收到數(shù)據(jù)的減少的延遲,RTT可能減少且通信會(huì)話的吞吐量可能增加。
[0005]在第一實(shí)施例中,提供了無(wú)線通信設(shè)備。第一實(shí)施例的無(wú)線通信設(shè)備可包括通信接口和耦接到該通信接口的處理電路。通信接口可被配置為在上行鏈路上將數(shù)據(jù)發(fā)送至蜂窩網(wǎng)絡(luò),并在下行鏈路上從蜂窩網(wǎng)絡(luò)接收數(shù)據(jù)。第一實(shí)施例的處理電路可被配置為控制無(wú)線通信設(shè)備以至少:監(jiān)測(cè)上行鏈路上待發(fā)送的數(shù)據(jù)包的傳輸隊(duì)列的狀態(tài);檢測(cè)指示上行鏈路擁塞的隊(duì)列狀況,該上行鏈路擁塞使得發(fā)送傳輸隊(duì)列中的待發(fā)送的多個(gè)TCP ACK數(shù)據(jù)包中的一個(gè)或多個(gè)TCP ACK數(shù)據(jù)包延遲;以及響應(yīng)于所述隊(duì)列狀況,丟棄來(lái)自傳輸隊(duì)列的多個(gè)TCP ACK數(shù)據(jù)包中的一組一個(gè)或多個(gè)TCP ACK數(shù)據(jù)包。所丟棄的一組一個(gè)或多個(gè)TCPACK數(shù)據(jù)包可包括傳輸隊(duì)列中的待發(fā)送的多個(gè)TCP ACK數(shù)據(jù)包的一個(gè)或多個(gè)最舊TCP ACK數(shù)據(jù)包。在一組一個(gè)或多個(gè)TCP ACK數(shù)據(jù)包已被丟棄之后,傳輸隊(duì)列中的待發(fā)送的多個(gè)TCPACK數(shù)據(jù)包中的最新TCP ACK數(shù)據(jù)包可在傳輸隊(duì)列中保持待發(fā)送。
[0006]在第二實(shí)施例中,提供了用于在通信設(shè)備中管理待發(fā)送的ACK數(shù)據(jù)包的方法。第二實(shí)施例的方法可包括以下通信設(shè)備:用于監(jiān)測(cè)通過(guò)網(wǎng)絡(luò)待發(fā)送的數(shù)據(jù)包的傳輸隊(duì)列的狀態(tài);檢測(cè)指示上行鏈路擁塞的隊(duì)列狀況,該上行鏈路擁塞使得發(fā)送傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包中的一個(gè)或多個(gè)ACK數(shù)據(jù)包延遲;以及響應(yīng)于所述隊(duì)列狀況,丟棄來(lái)自傳輸隊(duì)列的多個(gè)ACK數(shù)據(jù)包中的一組一個(gè)或多個(gè)ACK數(shù)據(jù)包。所丟棄的一組一個(gè)或多個(gè)ACK數(shù)據(jù)包可包括傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包的一個(gè)或多個(gè)最舊ACK數(shù)據(jù)包。在該組一個(gè)或多個(gè)ACK數(shù)據(jù)包已被丟棄之后,傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包中的最新ACK數(shù)據(jù)包可在傳輸隊(duì)列中保持待發(fā)送。
[0007]在第三實(shí)施例中,提供了一種在通信設(shè)備中管理待發(fā)送的ACK數(shù)據(jù)包的計(jì)算機(jī)程序產(chǎn)品。第三實(shí)施例的計(jì)算機(jī)程序產(chǎn)品可包括在其上存儲(chǔ)有程序代碼的至少一個(gè)非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。第三實(shí)施例的程序代碼可包括:用于監(jiān)測(cè)通過(guò)網(wǎng)絡(luò)待發(fā)送的數(shù)據(jù)包的傳輸隊(duì)列的狀態(tài)的程序代碼;用于檢測(cè)指示擁塞的隊(duì)列狀況的程序代碼,該擁塞使得發(fā)送傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包中的一個(gè)或多個(gè)ACK數(shù)據(jù)包延遲;以及用于響應(yīng)于所述隊(duì)列狀況,丟棄來(lái)自傳輸隊(duì)列的多個(gè)ACK數(shù)據(jù)包中的一組一個(gè)或多個(gè)ACK數(shù)據(jù)包的程序代碼。所丟棄的一組一個(gè)或多個(gè)ACK數(shù)據(jù)包可包括傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包的一個(gè)或多個(gè)最舊ACK數(shù)據(jù)包。在該組一個(gè)或多個(gè)ACK數(shù)據(jù)包已被丟棄之后,傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包中的最新ACK數(shù)據(jù)包可在傳輸隊(duì)列中保持待發(fā)送。
[0008]在第四實(shí)施例中,提供了一種管理待發(fā)送的ACK數(shù)據(jù)包的裝置。第四實(shí)施例的設(shè)備可包括:用于監(jiān)測(cè)通過(guò)網(wǎng)絡(luò)待發(fā)送的數(shù)據(jù)包的傳輸隊(duì)列的狀態(tài)的裝置;用于檢測(cè)指示擁塞的隊(duì)列狀況的裝置,該擁塞使得發(fā)送傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包中的一個(gè)或多個(gè)ACK數(shù)據(jù)包延遲;以及用于響應(yīng)于所述隊(duì)列狀況,丟棄來(lái)自傳輸隊(duì)列的多個(gè)ACK數(shù)據(jù)包中的一組一個(gè)或多個(gè)ACK數(shù)據(jù)包的裝置。所丟棄的該組一個(gè)或多個(gè)ACK數(shù)據(jù)包可包括傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包的一個(gè)或多個(gè)最舊ACK數(shù)據(jù)包。在該組一個(gè)或多個(gè)ACK數(shù)據(jù)包已被丟棄之后,傳輸隊(duì)列中的待發(fā)送的多個(gè)ACK數(shù)據(jù)包中的最新ACK數(shù)據(jù)包可在傳輸隊(duì)列中保持待發(fā)送。
[0009]提供所述
【發(fā)明內(nèi)容】
僅僅是為了概述一些示例性實(shí)施例,以便提供對(duì)本公開(kāi)的一些方面的基本了解。因此,應(yīng)當(dāng)理解,上文所述的示例性實(shí)施例僅為實(shí)例,且不應(yīng)理解為以任何方式縮小本發(fā)明的范圍或?qū)嵸|(zhì)。根據(jù)在結(jié)合以舉例的方式示出所描述的實(shí)施例的原理的附圖的情況下進(jìn)行的以下詳細(xì)描述,其他實(shí)施例、方面和優(yōu)點(diǎn)將變得顯而易見(jiàn)。
【附圖說(shuō)明】
[0010]通過(guò)參考結(jié)合附圖所作的以下描述可最佳地理解所述實(shí)施例及其優(yōu)點(diǎn)。這些附圖未必按比例繪制,并且決不會(huì)限制本領(lǐng)域的技術(shù)人員在不脫離所描述的實(shí)施例的實(shí)質(zhì)和范圍的前提下對(duì)所描述的實(shí)施例所作的在形式和細(xì)節(jié)方面的任何修改。
[0011]圖1示出了根據(jù)一些示例性實(shí)施例的通信系統(tǒng)。
[0012]圖2示出了示例性的TCP ACK數(shù)據(jù)包格式。
[0013]圖3示出了根據(jù)一些示例性實(shí)施例的可在通信設(shè)備上實(shí)現(xiàn)的裝置的框圖。
[0014]圖4A和圖4B示出了根據(jù)一些示例性實(shí)施例對(duì)傳輸隊(duì)列中的待發(fā)送的ACK數(shù)據(jù)包的管理。
[0015]圖5示出了根據(jù)一些示例性實(shí)施例的用于管理待發(fā)送的ACK數(shù)據(jù)包的示例性方法的流程圖。
[0016]圖6示出了根據(jù)一些示例性實(shí)施例的用于管理待發(fā)送的ACK數(shù)據(jù)包的另一個(gè)示例性方法的流程圖。
[0017]圖7示出了根據(jù)一些示例性實(shí)施例的用于管理待發(fā)送的ACK數(shù)據(jù)包的又一個(gè)示例性方法的流程圖。
【具體實(shí)施方式】
[0018]在許多通信系統(tǒng)中,接收數(shù)據(jù)的設(shè)備可通過(guò)發(fā)送ACK數(shù)據(jù)包至發(fā)送設(shè)備來(lái)確認(rèn)接收到數(shù)據(jù)。然而,如果發(fā)送ACK數(shù)據(jù)包存在延遲,諸如可發(fā)生在擁塞狀況下,則由發(fā)送設(shè)備發(fā)送額外數(shù)據(jù)可被暫停,同時(shí)發(fā)送設(shè)備在以下實(shí)例中等待接收ACK數(shù)據(jù)包:在此實(shí)例中發(fā)送設(shè)備已發(fā)送可允許的最大數(shù)量的未確認(rèn)數(shù)據(jù)包。如此,發(fā)送ACK數(shù)據(jù)包的延遲可導(dǎo)致?lián)砣麪顩r,該延遲導(dǎo)致不期望的RTT減少和吞吐量增加。
[0019]本文所公開(kāi)的一些示例性實(shí)施例提供在通信設(shè)備中管理待發(fā)送的ACK數(shù)據(jù)包的系統(tǒng)、方法、裝置和計(jì)算機(jī)程序產(chǎn)品,其可在導(dǎo)致發(fā)送傳輸隊(duì)列中的待發(fā)送的ACK數(shù)據(jù)包延遲的擁塞狀況下增加通信會(huì)話中的吞吐量并減少RTT。更具體地,一些示例性實(shí)施例可被配置為響應(yīng)于擁塞狀況,丟棄傳輸隊(duì)列中的待發(fā)送的一個(gè)或多個(gè)最舊ACK數(shù)據(jù)包。就這一點(diǎn)而言,根據(jù)此類(lèi)實(shí)施例,可以避免在擁塞狀況下發(fā)送較舊ACK數(shù)據(jù)包而使用帶寬,因?yàn)檩^新的待發(fā)送的ACK數(shù)據(jù)包可被發(fā)送,該待發(fā)送的ACK數(shù)據(jù)累積地確認(rèn)接收到被已丟棄數(shù)據(jù)包確認(rèn)的數(shù)據(jù)包,而無(wú)需等待發(fā)送已被丟棄的待發(fā)送的ACK數(shù)據(jù)包。因此,從在擁塞狀況下確認(rèn)接收到數(shù)據(jù)的減少的延遲,RTT可能減少且通信會(huì)話的吞吐量可能增加。
[0020]圖1示出了根據(jù)一些示例性實(shí)施例的通信系統(tǒng)100。系統(tǒng)100可包括通信設(shè)備102,該通信設(shè)備可連接至網(wǎng)絡(luò)104。通信設(shè)備102可實(shí)施為任何計(jì)算設(shè)備,該計(jì)算設(shè)備可被配置為連接至網(wǎng)絡(luò)并通過(guò)該網(wǎng)絡(luò)通信,諸如包括有線網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)、它們的某種組合等。以非限制性示例進(jìn)行說(shuō)明,通信設(shè)備102可實(shí)施為無(wú)線通信設(shè)備(例如,移動(dòng)終端、蜂窩電話、智能手機(jī)、平板計(jì)算設(shè)備、膝上型電腦、臺(tái)式計(jì)算機(jī)和/或包括被配置為支持通過(guò)無(wú)線網(wǎng)絡(luò)通信的無(wú)線通信接口的其他計(jì)算設(shè)備)、膝上型電腦、臺(tái)式計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)電視、網(wǎng)絡(luò)音頻/視頻接收器、聯(lián)網(wǎng)家電和/或可被配置為連接至網(wǎng)絡(luò)并通過(guò)該網(wǎng)絡(luò)通信的任何其他設(shè)備。
[0021]網(wǎng)絡(luò)104可實(shí)施為可支持兩個(gè)聯(lián)網(wǎng)設(shè)備之間(諸如通信設(shè)備102)通信的任何網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)104可實(shí)施為有線網(wǎng)絡(luò)(例如,以太網(wǎng)網(wǎng)絡(luò)、有線局域網(wǎng)、光纖網(wǎng)絡(luò)、可由電話/有線服務(wù)供應(yīng)商維護(hù)的有線網(wǎng)絡(luò)、或它們的某種組合等)、無(wú)線網(wǎng)絡(luò)(例如,蜂窩網(wǎng)絡(luò)、無(wú)線局域網(wǎng)、無(wú)線廣域網(wǎng)、或它們的某種組合等)或它們的組合,且在一些示例性實(shí)施例中可包括互聯(lián)網(wǎng)。
[0022]如此,應(yīng)當(dāng)理解通信設(shè)備102可經(jīng)由多種鏈路和/或訪問(wèn)網(wǎng)絡(luò)中的任一種連接至