分組交換網(wǎng)絡(luò)中的有效電路的制作方法
【專利摘要】本文描述了通過(guò)分組交換網(wǎng)絡(luò)在發(fā)送方設(shè)備和接收方設(shè)備之間創(chuàng)建有效電路。為了建立有效電路,發(fā)送方設(shè)備通過(guò)分組交換網(wǎng)絡(luò)向接收方設(shè)備發(fā)送請(qǐng)求。該請(qǐng)求與來(lái)自接收方設(shè)備用于從發(fā)送方設(shè)備接收消息的帶寬保留相關(guān)聯(lián)。接收方設(shè)備從多個(gè)發(fā)送方設(shè)備接收到多個(gè)請(qǐng)求,并且為這些發(fā)送方設(shè)備中的至少一個(gè)發(fā)送方設(shè)備保留帶寬。接收方設(shè)備隨后向該至少一個(gè)發(fā)送方設(shè)備發(fā)送響應(yīng),該響應(yīng)提供了使用保留帶寬向接收方設(shè)備發(fā)送消息的許可,該請(qǐng)求和響應(yīng)從而建立了有效電路。接收方設(shè)備還可拒絕其他發(fā)送方設(shè)備的請(qǐng)求,從而致使該其他發(fā)送方設(shè)備向其他接收方設(shè)備發(fā)送其他請(qǐng)求。
【專利說(shuō)明】分組交換網(wǎng)絡(luò)中的有效電路
[0001]背景
[0002]消息常常使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議套件通過(guò)分組交換網(wǎng)絡(luò)來(lái)傳送。TCP/IP使用反復(fù)試驗(yàn)的方法確定用于發(fā)送機(jī)設(shè)備進(jìn)行消息傳輸?shù)穆窂綆?。發(fā)送機(jī)設(shè)備發(fā)送消息的速率增大直到分組丟失發(fā)生。TCP/IP通過(guò)注意到未收到針對(duì)已發(fā)送消息的確認(rèn)來(lái)檢測(cè)分組丟失。分組丟失常常源自諸如在中介或端點(diǎn)設(shè)備處發(fā)生的緩沖器溢出等事件。在檢測(cè)到分組丟失后,TCP/IP降低傳輸速率并且以逐漸增大的速率來(lái)傳送消息直到再次檢測(cè)到分組丟失。盡管這種方法針對(duì)在設(shè)備對(duì)之間傳送大量消息的情況可以良好地工作,但對(duì)于傳送小的消息或者少量消息是不高效的,因?yàn)樵赥CP/IP有機(jī)會(huì)檢測(cè)到分組丟失之前消息可能就全部被傳送了。如果所使用的初始速率太過(guò),則可能需要重傳已發(fā)送的全部消息。
[0003]除了重傳之外,分組丟失還可導(dǎo)致來(lái)自發(fā)送機(jī)設(shè)備的消息傳輸?shù)呐R時(shí)暫停。當(dāng)TCP/IP在一段時(shí)間內(nèi)檢測(cè)到某一數(shù)量的分組丟失時(shí),就認(rèn)為網(wǎng)絡(luò)擁塞并且TCP/IP增大從正在經(jīng)歷分組丟失的發(fā)送機(jī)設(shè)備傳送消息之間的延遲。這種延遲對(duì)于整體性能來(lái)說(shuō)在成本上可能遠(yuǎn)高于重傳。具有允許向許多接收方并行傳送許多小的消息的充足帶寬的發(fā)送機(jī)設(shè)備在使用TCP/IP時(shí)可能面臨傳輸暫停的特定風(fēng)險(xiǎn)。
[0004]完全二等分帶寬網(wǎng)絡(luò)的使用可以緩解核心中的擁塞,但分組丟失可能仍然在終端站處發(fā)生。如果TCP使用丟失作為擁塞信號(hào),則可能仍然發(fā)生不必要的重傳延遲。
[0005]用于消息傳送的另一種方法是在跨網(wǎng)絡(luò)的兩個(gè)設(shè)備之間建立電路。電路通常涉及在設(shè)備本身處以及在每一個(gè)中介設(shè)備處對(duì)設(shè)備之間的通信信道的帶寬分配。然而,由于建立和拆除電路的高成本,作為許多網(wǎng)絡(luò)應(yīng)用的典范的短消息可能無(wú)法成為電路建立成本的正當(dāng)理由。
[0006]概述
[0007]通過(guò)分組交換網(wǎng)絡(luò)進(jìn)行通信的發(fā)送方和接收方設(shè)備通過(guò)交換請(qǐng)求來(lái)發(fā)送消息以及提供用于發(fā)送該消息的許可的響應(yīng)來(lái)在他們自身之間建立有效電路。通過(guò)限制要并行傳送的消息數(shù)量來(lái)確保發(fā)送方設(shè)備處的充足帶寬,并且響應(yīng)于接收方設(shè)備接收到請(qǐng)求傳送消息在接收方設(shè)備處保留充足帶寬。發(fā)送方和接收方設(shè)備之間的分組交換網(wǎng)絡(luò)可以是完全二等分帶寬網(wǎng)絡(luò)或高二等分帶寬網(wǎng)絡(luò),從而使得在中介設(shè)備處保留帶寬變得不必要。接收方設(shè)備還可被配置成在接收到的請(qǐng)求將利用比接收方設(shè)備可用帶寬更多的帶寬時(shí)拒絕發(fā)送方請(qǐng)求。響應(yīng)于其請(qǐng)求被拒絕,發(fā)送方設(shè)備可選擇定向到不同接收方設(shè)備的不同消息,并且可以向該不同接收方設(shè)備傳送要發(fā)送該消息的請(qǐng)求。通過(guò)切換至不同的消息和不同的接收方設(shè)備,發(fā)送方設(shè)備確保了它不會(huì)處于空閑而是仍然有要傳送的消息。
[0008]提供本概述以便以簡(jiǎn)化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)主題的范圍。
【專利附圖】
【附圖說(shuō)明】[0009]參考附圖來(lái)闡明詳細(xì)描述,附圖中,附圖標(biāo)記最左邊的數(shù)字標(biāo)識(shí)該附圖標(biāo)記首次出現(xiàn)的附圖。在不同附圖中使用同一附圖標(biāo)記指示相似或相同的項(xiàng)或特征。
[0010]圖1圖解了根據(jù)各實(shí)施例的示例環(huán)境。
[0011]圖2a_2b示出了根據(jù)各實(shí)施例的發(fā)送方設(shè)備的示例隊(duì)列。
[0012]圖3示出了根據(jù)各種實(shí)施例的接收方設(shè)備的示例隊(duì)列。
[0013]圖4是示出了根據(jù)各實(shí)施例的用于通過(guò)分組交換網(wǎng)絡(luò)與接收方設(shè)備建立有效電路的由發(fā)送方設(shè)備執(zhí)行的多個(gè)操作的流程圖。
[0014]圖5是示出了根據(jù)各實(shí)施例的用于基于對(duì)接收方設(shè)備帶寬的保留通過(guò)分組交換網(wǎng)絡(luò)與發(fā)送方設(shè)備建立有效電路的由接收方設(shè)備執(zhí)行的多個(gè)操作的流程圖。
[0015]圖6是根據(jù)各個(gè)實(shí)施例的示例計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)的框圖。
【具體實(shí)施方式】
[0016]本文描述了用于通過(guò)分組交換網(wǎng)絡(luò)在發(fā)送方設(shè)備和接收方設(shè)備之間建立有效電路的技術(shù)。如本文所使用的,術(shù)語(yǔ)“有效電路”是指兩個(gè)端點(diǎn)設(shè)備之間其中信道帶寬被確保的通信信道。與傳統(tǒng)電路相反,文本討論的有效電路不要求用于建立的大量開銷。通過(guò)利用完全二等分帶寬或高二等分帶寬的分組交換網(wǎng)絡(luò),在中介設(shè)備處進(jìn)行帶寬保留變得不必要。通過(guò)限制發(fā)送方設(shè)備處的消息傳送以及在接收方設(shè)備處保留針對(duì)發(fā)送方設(shè)備的消息的帶寬來(lái)確保有效電路的端點(diǎn)處的帶寬。
[0017]本公開利用了這樣的一個(gè)觀測(cè)結(jié)論:在高或完全二等分帶寬網(wǎng)絡(luò)中,擁塞完全在終端站(發(fā)送方和接收方設(shè)備)處發(fā)生而不在網(wǎng)絡(luò)核心中發(fā)生。因此,相比于觀測(cè)分組丟失(作為來(lái)自網(wǎng)絡(luò)核心的隱式信號(hào))的傳統(tǒng)方法,在網(wǎng)絡(luò)邊緣處進(jìn)行帶寬分配變得可行。
[0018]為了保留接收方設(shè)備帶寬,發(fā)送方設(shè)備向接收方設(shè)備傳送針對(duì)該發(fā)送方設(shè)備需要發(fā)送的每一數(shù)據(jù)消息的請(qǐng)求發(fā)送(RTS)消息。發(fā)送方設(shè)備可以具有要傳送到一個(gè)或多個(gè)接收方設(shè)備的多個(gè)數(shù)據(jù)消息,并且可以基于發(fā)送方設(shè)備用于傳送數(shù)據(jù)消息的帶寬來(lái)限制所發(fā)送的RTS消息的數(shù)量。在限制RTS消息的數(shù)量時(shí),發(fā)送方設(shè)備可以對(duì)至少某些RTS消息采取消極響應(yīng)并因而請(qǐng)求對(duì)原本共同將使用比發(fā)送方設(shè)備可用的帶寬更高的帶寬的數(shù)據(jù)消息的傳送。在一些實(shí)施例中,發(fā)送方設(shè)備可以具有要傳送給單個(gè)接收方設(shè)備的多個(gè)數(shù)據(jù)消息并且可以針對(duì)該多個(gè)數(shù)據(jù)消息發(fā)送一個(gè)RTS消息。
[0019]接收方設(shè)備可以從多個(gè)發(fā)送方設(shè)備接收RTS消息。這些RTS消息可以請(qǐng)求對(duì)發(fā)送原本共同將使用比接收方設(shè)備可用的帶寬更高的帶寬的數(shù)據(jù)消息的許可。為了確保接收方設(shè)備只接收它有帶寬來(lái)接收的那么多的同時(shí)或并發(fā)數(shù)據(jù)消息,接收方設(shè)備可以為一個(gè)或多個(gè)發(fā)送方設(shè)備保留用于傳送他們的數(shù)據(jù)消息的帶寬,并且用拒絕其他發(fā)送方設(shè)備請(qǐng)求發(fā)送數(shù)據(jù)消息的消息來(lái)對(duì)他們的RTS消息作出響應(yīng)(這些消極響應(yīng)在此處被稱為“繁忙稍后再試”(BTL)消息)。接收方設(shè)備用向發(fā)送數(shù)據(jù)消息提供許可(clearance)的消息來(lái)對(duì)已經(jīng)為其保留了帶寬的發(fā)送方設(shè)備作出響應(yīng)(這些提供發(fā)送許可的消息在此處被稱為“CTS”消息)。在選擇要用CTS消息對(duì)哪些發(fā)送方設(shè)備作出響應(yīng)時(shí),接收方設(shè)備可以按照某種方式對(duì)RTS消息進(jìn)行排序。例如,接收方設(shè)備可以基于RTS消息中包括的優(yōu)先級(jí)或者基于先前發(fā)送給RTS消息的發(fā)送方設(shè)備的BTL消息的數(shù)量來(lái)對(duì)RTS消息進(jìn)行排序。
[0020]在接收到CTS消息后,在接收CTS消息的發(fā)送方設(shè)備和接收方設(shè)備之間建立有效電路。發(fā)送方設(shè)備隨后可繼續(xù)向接收方設(shè)備發(fā)送已經(jīng)接收到對(duì)其的許可的數(shù)據(jù)消息。在一些實(shí)施例中,接收方設(shè)備可以僅僅用CTS消息對(duì)由發(fā)送方設(shè)備發(fā)送給該接收方設(shè)備的RTS消息的子集作出響應(yīng)。
[0021]響應(yīng)于接收到BTL消息,發(fā)送方設(shè)備可以選擇定向到不同接收方設(shè)備的不同數(shù)據(jù)消息,并且向該接收方設(shè)備發(fā)送針對(duì)該數(shù)據(jù)消息的RTS消息。在一些實(shí)施例中,數(shù)據(jù)消息可由發(fā)送方設(shè)備進(jìn)行排隊(duì),并且發(fā)送方設(shè)備可以從該隊(duì)列中選擇被定向到不同接收方設(shè)備且先前尚未發(fā)送對(duì)其的RTS的第一消息。通過(guò)在一替換性的接收方設(shè)備處保留帶寬,發(fā)送方設(shè)備確保了它不會(huì)具有空閑帶寬而是仍然有要發(fā)送的數(shù)據(jù)消息。
[0022]在一些實(shí)施例中,發(fā)送方設(shè)備不必針對(duì)每一個(gè)數(shù)據(jù)消息都發(fā)送RTS。作為控制消息的數(shù)據(jù)消息或者小于閾值大小的數(shù)據(jù)消息可被簡(jiǎn)單地發(fā)送給接收方設(shè)備而不建立有效電路。這進(jìn)一步降低了該方案的總體開銷。
[0023]示例環(huán)塏
[0024]圖1圖解了根據(jù)各實(shí)施例的示例環(huán)境。如圖1所示,發(fā)送方設(shè)備102可通過(guò)分組交換網(wǎng)絡(luò)106與接收方設(shè)備104通信。發(fā)送方設(shè)備102可配備有網(wǎng)絡(luò)模塊108,該網(wǎng)絡(luò)模塊108從發(fā)送方設(shè)備102的應(yīng)用112接收要傳送到接收方設(shè)備104的消息110。網(wǎng)絡(luò)模塊108可將消息110排列在發(fā)送方設(shè)備102的隊(duì)列114中。在將消息110傳送到接收方設(shè)備104之前,網(wǎng)絡(luò)模塊108可經(jīng)由發(fā)送方設(shè)備102的接口 118向接收方設(shè)備104傳送針對(duì)消息110的請(qǐng)求發(fā)送(RTS)消息116。這些RTS消息116隨后可經(jīng)由接收方設(shè)備104的接口120被接收并且由接收方設(shè)備104的網(wǎng)絡(luò)模塊122來(lái)處理。網(wǎng)絡(luò)模塊122可以將RTS消息116排列在接收方設(shè)備104的用于對(duì)RTS消息116進(jìn)行排序的隊(duì)列124中。接收方設(shè)備104隨后可用提供消息110的發(fā)送許可(即,CTS消息)的消息126或者用拒絕RTS消息116的消息126 (即,BTL消息)來(lái)對(duì)RTS消息116作出響應(yīng)。接收到CTS消息126的發(fā)送方設(shè)備102隨后可向接收方設(shè)備104的應(yīng)用128傳送消息110,消息110由發(fā)送方設(shè)備102的應(yīng)用112被定向到那些應(yīng)用128。接收到BTL消息126的發(fā)送方設(shè)備102可選擇其他接收方設(shè)備 104。
[0025]盡管發(fā)送方設(shè)備102和接收方設(shè)備104在此處被示為分開的且不同的設(shè)備,但應(yīng)當(dāng)理解,任何計(jì)算設(shè)備可以既是一些消息110的發(fā)送方設(shè)備102又是其他消息110的接收方設(shè)備104。因而這樣的計(jì)算設(shè)備將配備有發(fā)送方設(shè)備102的網(wǎng)絡(luò)模塊108、應(yīng)用112和隊(duì)列114以及配備有接收方設(shè)備104的網(wǎng)絡(luò)模塊122、隊(duì)列124和應(yīng)用128。被配置成既能夠充當(dāng)發(fā)送方設(shè)備102又能夠充當(dāng)接收方設(shè)備104的計(jì)算設(shè)備也可具有單個(gè)接口集(在這種情形中接口 118和接口 120將指代同一接口集),或者兩個(gè)接口集(在這種情形中一個(gè)集合(接口 118)可專用于發(fā)送消息110而另一集合(接口 120)可專用于接收消息110)。
[0026]在各個(gè)實(shí)施例中,發(fā)送方設(shè)備102和接收方設(shè)備104可以是任何類型的計(jì)算設(shè)備。例如,發(fā)送方設(shè)備102和接收方設(shè)備104可以是或者包括個(gè)人計(jì)算機(jī)(PC)、膝上型計(jì)算機(jī)、服務(wù)器或服務(wù)器場(chǎng)、大型機(jī)、平板計(jì)算機(jī)、工作站、電信設(shè)備、個(gè)人數(shù)字助理(PDA)、媒體播放器、媒體中心設(shè)備、個(gè)人視頻記錄器(PVR)、電視機(jī)、或任何其他類型的一個(gè)或多個(gè)設(shè)備。在一些實(shí)現(xiàn)中,發(fā)送方設(shè)備102和接收方設(shè)備104中的一者或多者代表在一個(gè)或多個(gè)計(jì)算設(shè)備上實(shí)現(xiàn)的一個(gè)或多個(gè)虛擬機(jī)。本文將進(jìn)一步描述發(fā)送方設(shè)備102和接收方設(shè)備102的模塊和數(shù)據(jù)的特性和功能。用于實(shí)現(xiàn)發(fā)送方設(shè)備102和接收方設(shè)備104中的一者或兩者的示例計(jì)算設(shè)備在圖6中示出,并且在下文中將參考該附圖進(jìn)行更詳細(xì)地描述。
[0027]在各個(gè)實(shí)現(xiàn)中,網(wǎng)絡(luò)106可以是任何一種或多種類型的網(wǎng)絡(luò),諸如廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)或因特網(wǎng)。而且,網(wǎng)絡(luò)106可以是公共的、私有的,或者包括公共和私有網(wǎng)絡(luò)兩者。此外,網(wǎng)絡(luò)106可以是有線的、無(wú)線的,或者包括有線和無(wú)線網(wǎng)絡(luò)兩者。網(wǎng)絡(luò)106可利用任何一個(gè)或多個(gè)協(xié)議來(lái)進(jìn)行通信,諸如TCP/IP、其他基于分組的協(xié)議、或其他協(xié)議。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)106可包括連接云計(jì)算環(huán)境的多個(gè)節(jié)點(diǎn)的云計(jì)算環(huán)境。在這樣的一個(gè)實(shí)施例中,發(fā)送方設(shè)備102和接收方設(shè)備104可以是云計(jì)算環(huán)境的節(jié)點(diǎn)。
[0028]如上文所提及的,網(wǎng)絡(luò)106可以是分組交換網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)106還可以是完全二等分帶寬或高二等分帶寬網(wǎng)絡(luò),從而允許網(wǎng)絡(luò)的任何節(jié)點(diǎn)以全速與任何其他節(jié)點(diǎn)通信而沒(méi)有中介節(jié)點(diǎn)引入的任何傳輸延遲。在其他實(shí)施例中,網(wǎng)絡(luò)106可以是無(wú)限帶寬網(wǎng)絡(luò)。網(wǎng)絡(luò)106還可包括一個(gè)或多個(gè)交換機(jī)。該交換機(jī)可以是任何類型的交換機(jī),并且可以各自包括網(wǎng)絡(luò)接口組件,諸如傳入和傳出網(wǎng)絡(luò)接口組件,每一個(gè)網(wǎng)絡(luò)接口組件具有帶寬。例如,交換機(jī)可具有多個(gè)傳入以太網(wǎng)端口和傳入無(wú)線端口,以及傳出以太網(wǎng)和無(wú)線端口。在一些實(shí)施例中,交換機(jī)的傳入帶寬與交換機(jī)的傳出帶寬成比例。例如,為網(wǎng)絡(luò)分層結(jié)構(gòu)中交換機(jī)“下方”的設(shè)備提供服務(wù)的網(wǎng)絡(luò)接口的總傳入帶寬可以是每秒10GB,而上至核心交換機(jī)的網(wǎng)絡(luò)接口組件的總帶寬也可以是每秒10GB。通過(guò)使交換機(jī)的傳入帶寬與傳出帶寬成比例,避免引入與交換機(jī)相關(guān)聯(lián)的瓶頸。這種具有成比例帶寬的交換機(jī)在2009年3月25日提交的題為“Data Center Without Structural Bottlenecks (沒(méi)有結(jié)構(gòu)性瓶頸的數(shù)據(jù)中心)”的N0.12/410,697美國(guó)專利申請(qǐng)、在2009年3月25日提交的題為“Data Center Interconnectand Traffic Engineering (數(shù)據(jù)中心互連和流量工程)”的N0.12/410,745美國(guó)專利申請(qǐng)以及在 2009 年 10 月 14 日提交的題為“Agile Data Center Network Architecture (靈活的數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu))”的N0.12/578,608美國(guó)專利申請(qǐng)中更詳細(xì)地描述。
[0029]在一些實(shí)施例中,如圖1中所示,發(fā)送方設(shè)備102和接收方設(shè)備104可各自包括應(yīng)用。發(fā)送方設(shè)備102可包括應(yīng)用112而接收方設(shè)備104可包括應(yīng)用128。應(yīng)用112和128可以是能夠讀取和寫入數(shù)據(jù)(諸如數(shù)據(jù)消息110)的任何類型的應(yīng)用。應(yīng)用112和128可以是相同類型的應(yīng)用或不同類型的應(yīng)用。而且,應(yīng)用112可以代表多個(gè)應(yīng)用而應(yīng)用128可以代表對(duì)應(yīng)的多個(gè)應(yīng)用。應(yīng)用112可以是客戶機(jī)、服務(wù)器或者應(yīng)用128的對(duì)等體。從應(yīng)用112和128的角度,交換的數(shù)據(jù)消息110被直接發(fā)送而不必知曉RTS/CTS消息交換或有效電路。
[0030]在各個(gè)實(shí)施例中,數(shù)據(jù)消息110可包括任何種類的任何類型的數(shù)據(jù),并且可以具有任意大小。每一個(gè)數(shù)據(jù)消息110可被分組化到一個(gè)或多個(gè)分組中以供由發(fā)送方設(shè)備102的應(yīng)用112、網(wǎng)絡(luò)模塊108或某一其他組件(諸如發(fā)送方設(shè)備102的平臺(tái)或網(wǎng)絡(luò)堆棧)通過(guò)網(wǎng)絡(luò)106來(lái)傳送。包括數(shù)據(jù)消息110的分組的數(shù)量可以隨著數(shù)據(jù)消息110的大小以及用于傳送數(shù)據(jù)消息110的網(wǎng)絡(luò)協(xié)議而變化。除了其數(shù)據(jù)之外,每一個(gè)數(shù)據(jù)消息110還可與元數(shù)據(jù)相關(guān)聯(lián)。這樣的元數(shù)據(jù)可包括對(duì)數(shù)據(jù)消息110被定向到的接收方設(shè)備104的標(biāo)識(shí),并且如果數(shù)據(jù)消息110是數(shù)據(jù)消息110組的一部分,則元數(shù)據(jù)還可包括標(biāo)識(shí)了數(shù)據(jù)消息110在該組內(nèi)的位置的序列號(hào)。
[0031]在一些實(shí)施例中,網(wǎng)絡(luò)模塊108可包括任何一個(gè)或多個(gè)模塊、應(yīng)用、進(jìn)程、線程或功能。網(wǎng)絡(luò)模塊108可以是發(fā)送方設(shè)備102的平臺(tái)或發(fā)送方設(shè)備102的網(wǎng)絡(luò)堆棧的組件,或者可以獨(dú)立于其他發(fā)送方設(shè)備102模塊和應(yīng)用。如上文所提及的,網(wǎng)絡(luò)模塊108可被配置成執(zhí)行以下各項(xiàng)中的至少一項(xiàng):接收數(shù)據(jù)消息110、使接收到的數(shù)據(jù)消息110分支、使數(shù)據(jù)消息110排隊(duì)、選擇供傳輸?shù)臄?shù)據(jù)消息110、對(duì)所選的數(shù)據(jù)消息110傳送RTS消息116、作為響應(yīng)接收CTS消息126或BTL消息126、響應(yīng)于CTS消息126來(lái)傳送數(shù)據(jù)消息110、或者響應(yīng)于BTL消息126來(lái)選擇替換性數(shù)據(jù)消息110。除了這些操作之外,網(wǎng)絡(luò)模塊108還可管理發(fā)送方設(shè)備102的接口 118。這些接口 118可由網(wǎng)絡(luò)模塊108選擇以供傳輸RTS消息116和數(shù)據(jù)消息110。而且,網(wǎng)絡(luò)模塊108可并發(fā)地對(duì)任何數(shù)量的數(shù)據(jù)消息110執(zhí)行這些操作。例如,網(wǎng)絡(luò)模塊108可從應(yīng)用112接收數(shù)據(jù)消息110同時(shí)傳送針對(duì)另一數(shù)據(jù)消息110的RTS消息116。
[0032]在一些實(shí)施例中,在從應(yīng)用112接收到數(shù)據(jù)消息110后,網(wǎng)絡(luò)模塊108可確定該數(shù)據(jù)消息110是控制消息還是大小小于閾值的的消息以便對(duì)接收到的數(shù)據(jù)消息110進(jìn)行分叉。網(wǎng)絡(luò)模塊108將作為控制消息或小于閾值的數(shù)據(jù)消息110提供給發(fā)送方設(shè)備102的網(wǎng)絡(luò)堆棧以供使用發(fā)送方設(shè)備102的接口 118進(jìn)行傳輸。不是控制消息且大于閾值的數(shù)據(jù)消息110隨后由網(wǎng)絡(luò)模塊108進(jìn)行排隊(duì)以供后續(xù)傳輸。
[0033]在各個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊108將接收到的數(shù)據(jù)消息110存儲(chǔ)在一個(gè)隊(duì)列114或若干隊(duì)列114中。發(fā)送方設(shè)備102可以具有其中存儲(chǔ)了所有接收方設(shè)備104的數(shù)據(jù)消息110的單個(gè)隊(duì)列114,或者可以具有與每一個(gè)接收方設(shè)備104相關(guān)聯(lián)的隊(duì)列114。在其他實(shí)施例中,發(fā)送方設(shè)備102可利用與接收方設(shè)備104具有其他關(guān)聯(lián)關(guān)系的其他數(shù)量的隊(duì)列114。
[0034]例如,圖2a解說(shuō)了用于存儲(chǔ)定向到多個(gè)接收方設(shè)備104的數(shù)據(jù)消息110的隊(duì)列114的示例。如圖2a中所示,隊(duì)列202 (其可以作為隊(duì)列114的示例)包括多個(gè)數(shù)據(jù)消息110的條目204。盡管這些條目204被示為表的各行,但應(yīng)該理解,條目204也可被表示為各列或者采用某種非表格形式的項(xiàng)。每一個(gè)條目204包括消息標(biāo)識(shí)符206、是否發(fā)送了針對(duì)由該條目204表示的數(shù)據(jù)消息110的RTS消息116的指示符208、以及目標(biāo)接收方設(shè)備104的標(biāo)識(shí)符210。每一個(gè)消息標(biāo)識(shí)符206可以是唯一地標(biāo)識(shí)了數(shù)據(jù)消息110的任何類型的數(shù)據(jù)值,諸如整數(shù)或串。每一個(gè)指示符208可以例如是指示了是否發(fā)送了 RTS消息116的二進(jìn)制值或其他值類型的有限集合之一。每一個(gè)對(duì)目標(biāo)接收方設(shè)備105的標(biāo)識(shí)符210可以是接收方設(shè)備104的網(wǎng)絡(luò)標(biāo)識(shí)符,諸如IP地址或其他形式的地址。
[0035]圖2b解說(shuō)了用于存儲(chǔ)數(shù)據(jù)消息110的多個(gè)隊(duì)列114的示例,其中一個(gè)隊(duì)列114針對(duì)多個(gè)接收方設(shè)備104中的每一個(gè)設(shè)備。如圖2b中所示,隊(duì)列212、214、和216中的每一個(gè)隊(duì)列(其可以作為隊(duì)列114的示例)包括一個(gè)或多個(gè)數(shù)據(jù)消息110的條目204。盡管這些條目204被示為表的各行,但應(yīng)該理解,條目204也可被等同地表示為各列或者采用某種非表格形式的項(xiàng)。每一個(gè)條目204包括消息標(biāo)識(shí)符206、以及是否發(fā)送了針對(duì)由該條目204表示的數(shù)據(jù)消息110的RTS消息116的指示符208。不需要存在表示數(shù)據(jù)消息110的目標(biāo)接收方設(shè)備104的標(biāo)識(shí)符210的字段,因?yàn)殛?duì)列212、214和216中的每一個(gè)隊(duì)列與特定的接收方設(shè)備104相關(guān)聯(lián)。每一個(gè)消息標(biāo)識(shí)符206可以是唯一地標(biāo)識(shí)了數(shù)據(jù)消息110的任何類型的數(shù)據(jù)值,諸如整數(shù)或串。每一個(gè)指示符208可以例如是指示了是否發(fā)送了 RTS消息116的二進(jìn)制值或其他值類型的有限集合之一。
[0036]隊(duì)列114可以是本領(lǐng)域公知的任何類型的數(shù)據(jù)結(jié)構(gòu),包括模塊的數(shù)據(jù)結(jié)構(gòu),諸如網(wǎng)絡(luò)模塊108或其他文件或數(shù)據(jù)庫(kù)。而且,隊(duì)列114可以是如本領(lǐng)域所公知的先進(jìn)先出(FIFO)數(shù)據(jù)結(jié)構(gòu),或者可以按照不同順序?qū)?shù)據(jù)消息110添加到隊(duì)列114或從隊(duì)列114中移除。例如,數(shù)據(jù)消息Iio可被添加到隊(duì)列114末端但可以按照不同順序從隊(duì)列114中被移除。在這樣的一個(gè)示例中,數(shù)據(jù)消息110在隊(duì)列中的位置可以是在選擇數(shù)據(jù)消息110并從隊(duì)列114中移除數(shù)據(jù)消息110以供傳輸時(shí)的多個(gè)因素之一。
[0037]在各個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊108響應(yīng)于被添加到隊(duì)列114的數(shù)據(jù)消息110、響應(yīng)于估算了發(fā)送方設(shè)備102將完成其他數(shù)據(jù)消息的傳輸?shù)臅r(shí)間的計(jì)時(shí)器、或者響應(yīng)于來(lái)自發(fā)送方設(shè)備102的平臺(tái)的輸入來(lái)從隊(duì)列114中的一個(gè)或多個(gè)隊(duì)列中選擇一個(gè)或多個(gè)數(shù)據(jù)消息110。網(wǎng)絡(luò)模塊108可以基于一個(gè)或多個(gè)因素來(lái)從隊(duì)列114中選擇數(shù)據(jù)消息110。這些因素可包括數(shù)據(jù)消息110在隊(duì)列114中的位置、先前從哪個(gè)隊(duì)列114中選擇了數(shù)據(jù)消息110、數(shù)據(jù)消息110的大小、發(fā)送方設(shè)備接口 118的可用帶寬、將多個(gè)數(shù)據(jù)消息110鏈接在一起以供傳輸?shù)絾蝹€(gè)接收方設(shè)備104的能力。這些因素僅僅出于說(shuō)明的目的而提供,并且在替換性實(shí)施例中可以使用任何其他數(shù)量的因素。
[0038]在一些實(shí)施例中,網(wǎng)絡(luò)模塊108首先確定發(fā)送方設(shè)備接口 118的可用帶寬。該可用帶寬可以是網(wǎng)絡(luò)模塊108知曉的預(yù)設(shè)數(shù)字,諸如表示接口 118的總帶寬的百分之八十或百分之九十的數(shù)字。在其他實(shí)施例中,該可用帶寬可以變化并且可以在不同時(shí)間被重復(fù)地確定。
[0039]網(wǎng)絡(luò)模塊108隨后可以選擇將盡可能多的利用可用帶寬來(lái)進(jìn)行傳輸?shù)臄?shù)據(jù)消息110。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊108從一個(gè)或多個(gè)隊(duì)列114的頭部選擇數(shù)據(jù)消息110而不參考接收方設(shè)備104,直到所選數(shù)據(jù)消息110的共同大小逼近可用帶寬為止。在發(fā)送方設(shè)備102具有針對(duì)多個(gè)接收方設(shè)備104的多個(gè)隊(duì)列114的其他實(shí)施例中,網(wǎng)絡(luò)模塊108可以按照循環(huán)方式來(lái)向隊(duì)列提供服務(wù),從而從要向其提供服務(wù)的下一隊(duì)列114中選擇數(shù)據(jù)消息110。在其他實(shí)施例中,優(yōu)選于選擇單個(gè)接收方設(shè)備104的多個(gè)數(shù)據(jù)消息110,網(wǎng)絡(luò)模塊108可以將單個(gè)接收方設(shè)備104的數(shù)據(jù)消息110進(jìn)行鏈接以便減少接收方設(shè)備所需的帶寬保留的數(shù)目。在這樣的實(shí)施例中,網(wǎng)絡(luò)模塊108跟蹤已經(jīng)向其傳送了經(jīng)鏈接數(shù)據(jù)消息110的接收方設(shè)備104以便阻止單個(gè)接收方設(shè)備104支配消息傳輸。在還有一些其他實(shí)施例中,網(wǎng)絡(luò)模塊108對(duì)先前已經(jīng)發(fā)送過(guò)RTS消息116的數(shù)據(jù)消息110以及已經(jīng)超過(guò)閾值時(shí)間量的數(shù)據(jù)消息110排定優(yōu)先級(jí)。等待閾值時(shí)間量的原因在于允許提供了 BTL消息126的接收方設(shè)備104完成其對(duì)其他數(shù)據(jù)消息110的接收并且釋放其保留的帶寬。
[0040]在一些實(shí)施例中,通過(guò)在選擇數(shù)據(jù)消息110時(shí)考慮接口 118的可用帶寬,網(wǎng)絡(luò)模塊108限制了可被并行傳送的數(shù)據(jù)消息110的數(shù)量以便避免發(fā)送方設(shè)備102上的傳輸瓶頸。然而,在多個(gè)所選數(shù)據(jù)消息110的RTS消息116可被拒絕的情況下,網(wǎng)絡(luò)模塊108可以選擇比用于傳送的可用帶寬更多數(shù)量的數(shù)據(jù)消息110以便確保對(duì)可用帶寬的完全利用。
[0041]在各個(gè)實(shí)施例中,在選擇數(shù)據(jù)消息110后,網(wǎng)絡(luò)模塊108生成并傳送所選數(shù)據(jù)消息110的RTS消息116。網(wǎng)絡(luò)模塊108可針對(duì)每一個(gè)所選數(shù)據(jù)消息110生成和傳送RTS消息116,或者可以針對(duì)要被并行傳送到單個(gè)接收方設(shè)備104的一組數(shù)據(jù)消息110生成和傳送RTS消息116。RTS消息116可以是標(biāo)識(shí)了與其相關(guān)聯(lián)的特定數(shù)據(jù)消息110、與該RTS消息相關(guān)聯(lián)的一個(gè)或多個(gè)數(shù)據(jù)消息110的一個(gè)大小或多個(gè)大小、對(duì)目標(biāo)接收方設(shè)備104的標(biāo)識(shí)符和/或消息優(yōu)先級(jí)的小消息。消息優(yōu)先級(jí)可由網(wǎng)絡(luò)模塊108基于針對(duì)RTS消息的目標(biāo)接收方設(shè)備104排隊(duì)的數(shù)據(jù)消息110與針對(duì)其他接收方設(shè)備104排隊(duì)的數(shù)據(jù)消息110之比以及一個(gè)或多個(gè)隊(duì)列114的總大小來(lái)確定。在其中RTS消息116與數(shù)據(jù)消息110鏈相關(guān)聯(lián)的實(shí)施例中,RTS消息116可標(biāo)識(shí)針對(duì)該接收方設(shè)備104的數(shù)據(jù)消息110的數(shù)量。
[0042]在生成RTS消息116后,網(wǎng)絡(luò)模塊108選擇一個(gè)或多個(gè)可用接口 118以供傳輸RTS消息116。接口 118可以是本領(lǐng)域公知的任何類型的網(wǎng)絡(luò)接口,諸如用于WAN或LAN的有線或無(wú)線接口、用于PAN或藍(lán)^ K網(wǎng)絡(luò)的無(wú)線接口、或任何其他類型的接口。例如,接口 118可包括一個(gè)或多個(gè)網(wǎng)卡。這些接口 118可包括由網(wǎng)絡(luò)模塊108或另一組件管理的接口池作為共享相同隊(duì)列集和隊(duì)列狀態(tài)(即,隊(duì)列114)的共同資源。在一個(gè)實(shí)施例中,接口 118的帶寬可被分配給不同進(jìn)程,包括網(wǎng)絡(luò)模塊108的一個(gè)或多個(gè)進(jìn)程。這可包括由多個(gè)進(jìn)程對(duì)單個(gè)網(wǎng)絡(luò)接口 118的獨(dú)立使用。只要這些進(jìn)程提前靜態(tài)地劃分了網(wǎng)絡(luò)帶寬,這些進(jìn)程就可使用所分配的帶寬而無(wú)需協(xié)調(diào)。在選擇一個(gè)或多個(gè)可用接口 118后,網(wǎng)絡(luò)模塊108通過(guò)一個(gè)或多個(gè)可用接口 118來(lái)傳送RTS消息116。
[0043]響應(yīng)于發(fā)送RTS消息116,發(fā)送方設(shè)備102接收CTS消息126、BTL消息126或兩者。對(duì)于發(fā)送方設(shè)備102發(fā)送的每一個(gè)RTS消息116,可向其返回一個(gè)CTS消息126或BTL消息126。
[0044]在經(jīng)由接口 118接收到CTS消息126后,網(wǎng)絡(luò)模塊108確定CTS消息126向哪個(gè)數(shù)據(jù)消息110或哪些數(shù)據(jù)消息110提供許可。如上文所提及的,從接收方設(shè)備104接收到CTS消息126在發(fā)送方設(shè)備102和該接收方設(shè)備104之間建立了有效電路。CTS消息126可通過(guò)消息標(biāo)識(shí)符206來(lái)標(biāo)識(shí)特定數(shù)據(jù)消息110,或者可以指代特定RTS消息116,該特定RTS消息116可進(jìn)而由網(wǎng)絡(luò)模塊108將其與特定數(shù)據(jù)消息110相關(guān)。CTS消息126還可標(biāo)識(shí)被許可傳送到發(fā)送了該CTS消息126的接收方設(shè)備104的多個(gè)數(shù)據(jù)消息110。例如,CTS消息126可響應(yīng)于請(qǐng)求將若干數(shù)據(jù)消息110發(fā)送到接收方設(shè)備104的許可的RTS消息116。這樣的CTS消息126可向RTS消息116中標(biāo)識(shí)的一個(gè)、一些或全部數(shù)據(jù)消息110提供發(fā)送許可。
[0045]在各個(gè)實(shí)施例中,在確定由CTS消息126標(biāo)識(shí)的數(shù)據(jù)消息110后,網(wǎng)絡(luò)模塊108可選擇用于傳送數(shù)據(jù)消息110的 接口 118中的一個(gè)或多個(gè)接口并且經(jīng)由所選接口 118來(lái)傳送數(shù)據(jù)消息110。在一個(gè)實(shí)施例中,用于傳送數(shù)據(jù)消息110的接口 118可以不同于用于傳送針對(duì)該數(shù)據(jù)消息110的RTS消息116的接口 118。在傳送數(shù)據(jù)消息110后,網(wǎng)絡(luò)模塊108可將數(shù)據(jù)消息110從一個(gè)或多個(gè)隊(duì)列114中移除。
[0046]作為接收到一個(gè)或多個(gè)CTS消息126的補(bǔ)充或替代,發(fā)送方設(shè)備102可經(jīng)由接口118接收到一個(gè)或多個(gè)BTL消息126。在接收到BTL消息126后,網(wǎng)絡(luò)模塊108確定該BTL消息126拒絕了哪個(gè)數(shù)據(jù)消息110或哪些數(shù)據(jù)消息110。網(wǎng)絡(luò)模塊108隨后可在隊(duì)列114中更新關(guān)于那些數(shù)據(jù)消息110的指示符208以反映針對(duì)那些數(shù)據(jù)消息110的RTS消息116已經(jīng)被拒絕。
[0047]網(wǎng)絡(luò)模塊108隨后可繼續(xù)選擇以供傳送的一個(gè)或多個(gè)替換性數(shù)據(jù)消息110來(lái)代替被拒絕的數(shù)據(jù)消息110。在一些實(shí)施例中,在選擇替換性數(shù)據(jù)消息110時(shí),網(wǎng)絡(luò)模塊108可利用用于選擇現(xiàn)在拒絕的數(shù)據(jù)消息110的上述因素。在選擇一個(gè)或多個(gè)替換性數(shù)據(jù)消息110時(shí),網(wǎng)絡(luò)模塊108還可考慮被拒絕的數(shù)據(jù)消息110的大小或多個(gè)被拒絕的數(shù)據(jù)消息110的共同大小。而且,在選擇一個(gè)或多個(gè)替換性消息時(shí),網(wǎng)絡(luò)模塊108可過(guò)濾掉針對(duì)其的RTS消息116已經(jīng)被拒絕的數(shù)據(jù)消息110以及定向到從其接收了 BTL消息126的接收方設(shè)備104的數(shù)據(jù)消息110。一旦選擇了替換性數(shù)據(jù)消息110,網(wǎng)絡(luò)模塊108就生成該替換性數(shù)據(jù)消息110的RTS消息116,選擇在傳送該RTS消息116時(shí)使用的接口 118,并且傳送該RTS消息116。通過(guò)選擇替換性數(shù)據(jù)消息110而非等待傳送先前所選的數(shù)據(jù)消息110,網(wǎng)絡(luò)模塊108確保了發(fā)送方設(shè)備102不會(huì)處于空閑而是仍然有等待傳送的數(shù)據(jù)消息110。
[0048]在一些實(shí)施例中,如上文所提及的,發(fā)送方設(shè)備102可利用計(jì)時(shí)器來(lái)確定何時(shí)選擇供傳送的其他數(shù)據(jù)消息110。計(jì)時(shí)器可以是網(wǎng)絡(luò)模塊108的一部分或者是單獨(dú)的組件。計(jì)時(shí)器要么在數(shù)據(jù)消息110被選擇時(shí)要么在數(shù)據(jù)消息110的傳輸開始時(shí)被發(fā)起,并且計(jì)時(shí)器基于可用帶寬和數(shù)據(jù)消息110的大小來(lái)估算用于傳送數(shù)據(jù)消息110的時(shí)間。一旦到達(dá)該估算時(shí)間,計(jì)時(shí)器向網(wǎng)絡(luò)模塊108通知已經(jīng)到達(dá)時(shí)間以使得網(wǎng)絡(luò)模塊108能夠選擇供傳輸?shù)钠渌麛?shù)據(jù)消息110。
[0049]在各個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊116可包括任何一個(gè)或多個(gè)模塊、應(yīng)用、進(jìn)程、線程或功能。網(wǎng)絡(luò)模塊116可以是接收方設(shè)備104的平臺(tái)或接收方設(shè)備104的網(wǎng)絡(luò)堆棧的組件,或者可以獨(dú)立于其他接收方設(shè)備104模塊和應(yīng)用。如上文所提及的,網(wǎng)絡(luò)模塊116可被配置成執(zhí)行以下各項(xiàng)中的至少一項(xiàng):接收RTS消息116、對(duì)RTS消息116排序、為RTS消息116的一個(gè)或多個(gè)發(fā)送方設(shè)備102保留帶寬、生成CTS消息126并將CTS消息126發(fā)送到已經(jīng)為其保留了帶寬的發(fā)送方設(shè)備102、生成BTL消息126并且將BTL消息126發(fā)送到其他發(fā)送方設(shè)備102、跟蹤BTL消息126已經(jīng)被發(fā)送到一發(fā)送方設(shè)備102的次數(shù)、以及使用保留帶寬來(lái)接收數(shù)據(jù)消息110。而且,網(wǎng)絡(luò)模塊116可并發(fā)地對(duì)任何數(shù)量的數(shù)據(jù)消息110執(zhí)行這些操作。例如,網(wǎng)絡(luò)模塊116可接收數(shù)據(jù)消息110同時(shí)響應(yīng)于另一數(shù)據(jù)消息110的RTS消息116來(lái)傳送CTS消息126。
[0050]在一個(gè)實(shí)施例中,當(dāng)網(wǎng)絡(luò)模塊116經(jīng)由接口 120接收到RTS消息116時(shí),網(wǎng)絡(luò)模塊116可將這些RTS消息在隊(duì)列124中排隊(duì)以進(jìn)行排序。RTS消息116可接收自多個(gè)發(fā)送方設(shè)備102,并且接收那些RTS消息116的接口 120可以是任何類型的接口,諸如與上述接口118相同或不同類型的接口。隊(duì)列124可以是任何類型的數(shù)據(jù)結(jié)構(gòu),諸如網(wǎng)絡(luò)模塊116的數(shù)據(jù)結(jié)構(gòu)。
[0051]例如,圖3解說(shuō)了包括用于對(duì)接收到的RTS消息116進(jìn)行排序的RTS消息條目的隊(duì)列124的示例。如圖所示,隊(duì)列302 (其可以作為隊(duì)列124的示例)包括多個(gè)RTS消息116的條目304。盡管這些條目304被示為表的各行,但應(yīng)該理解,條目304也可被等同地表示為各列或者某種非表格形式的項(xiàng)。每一個(gè)條目304包括消息標(biāo)識(shí)符306、響應(yīng)于與特定數(shù)據(jù)消息110相關(guān)聯(lián)的RTS消息116被發(fā)送到發(fā)送方設(shè)備102的BTL消息126的計(jì)數(shù)308、對(duì)與條目304的RTS消息116相關(guān)聯(lián)的數(shù)據(jù)消息110的優(yōu)先級(jí)的指示符310、以及對(duì)發(fā)送了條目304的RTS消息116的發(fā)送方設(shè)備102的標(biāo)識(shí)符312。每一個(gè)消息標(biāo)識(shí)符306可以是唯一地標(biāo)識(shí)了 RTS消息116或與RTS消息116相關(guān)聯(lián)的數(shù)據(jù)消息110的任何類型的數(shù)據(jù)值,諸如整數(shù)或串。每一個(gè)計(jì)數(shù)308可以是從接收方設(shè)備104的另一數(shù)據(jù)結(jié)構(gòu)檢索的整數(shù)或某一其他數(shù)值,該計(jì)數(shù)用于跟蹤響應(yīng)于與特定數(shù)據(jù)消息110相關(guān)聯(lián)的RTS消息116而被發(fā)送的BTL消息126。當(dāng)接收到RTS消息116時(shí),網(wǎng)絡(luò)模塊116檢查該數(shù)據(jù)結(jié)構(gòu)以尋找與由接收到的RTS消息116所指代的數(shù)據(jù)消息110相關(guān)聯(lián)的BTL消息126的數(shù)量。每一個(gè)指示符310可以例如是指示了是否被排定優(yōu)先級(jí)的二進(jìn)制值或其他值類型的有限集合之一。另選地,如果有若干優(yōu)先級(jí)水平可用,則每一個(gè)條目304的指示符310可指示數(shù)據(jù)消息110的特定優(yōu)先級(jí)水平。每一個(gè)對(duì)發(fā)送方設(shè)備102的標(biāo)識(shí)符312可以是發(fā)送方設(shè)備102的網(wǎng)絡(luò)標(biāo)識(shí)符,諸如IP地址或其他形式的地址。
[0052]在各個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊116可基于任何數(shù)量的因素對(duì)隊(duì)列124中的RTS消息116進(jìn)行排序。例如,網(wǎng)絡(luò)模塊116可基于消息優(yōu)先級(jí)和/或基于上文提及的BTL消息126的計(jì)數(shù)來(lái)對(duì)RTS消息116排序。網(wǎng)絡(luò)模塊116還可考慮接收方設(shè)備可供保留的帶寬以及與RTS消息116對(duì)應(yīng)的數(shù)據(jù)消息110的大小。
[0053]基于該排序,網(wǎng)絡(luò)模塊可為與接收到的RTS消息116相關(guān)聯(lián)的一個(gè)或多個(gè)發(fā)送方設(shè)備102保留帶寬。這些可以是與排序最高的RTS消息116對(duì)應(yīng)的發(fā)送方設(shè)備102。在一些實(shí)施例中,網(wǎng)絡(luò)模塊116可為發(fā)送方設(shè)備102應(yīng)用最大帶寬保留從而使得沒(méi)有發(fā)送方設(shè)備102可被分配到接收方設(shè)備102的整個(gè)可用帶寬。該最大帶寬保留可阻止發(fā)送方設(shè)備102壟斷接收方設(shè)備帶寬。
[0054]為了使帶寬保留有效,網(wǎng)絡(luò)模塊116將CTS消息126發(fā)送到為其保留了帶寬的發(fā)送方設(shè)備102。CTS消息126可標(biāo)識(shí)它們對(duì)其作出響應(yīng)的RTS消息116或者向其提供許可的數(shù)據(jù)消息110。在一些實(shí)施例中,在RTS消息116標(biāo)識(shí)多個(gè)數(shù)據(jù)消息110的情形中,CTS消息126還可標(biāo)識(shí)多個(gè)數(shù)據(jù)消息110的數(shù)量或身份。
[0055]網(wǎng)絡(luò)模塊116隨后可響應(yīng)于未導(dǎo)致帶寬保留和CTS消息126響應(yīng)的RTS消息116來(lái)生成和發(fā)送BTL消息126。BTL消息126可標(biāo)識(shí)它們對(duì)其作出響應(yīng)的RTS消息116或者對(duì)其拒絕許可的數(shù)據(jù)消息110。在一些實(shí)施例中,在RTS消息116標(biāo)識(shí)多個(gè)數(shù)據(jù)消息110的情形中,BTL消息126還可標(biāo)識(shí)多個(gè)數(shù)據(jù)消息110的數(shù)量或身份。在發(fā)送BTL消息126之后,網(wǎng)絡(luò)模塊116可更新如上所討論的存儲(chǔ)在接收方設(shè)備104的數(shù)據(jù)結(jié)構(gòu)中的特定數(shù)據(jù)消息110的BTL消息的計(jì)數(shù)。在用CTS消息126或BTL消息126對(duì)隊(duì)列124中的每一個(gè)條目304作出響應(yīng)之后,網(wǎng)絡(luò)模塊116還可轉(zhuǎn)儲(chǔ)清除隊(duì)列124中的條目304。
[0056]在各個(gè)實(shí)施例中,網(wǎng)絡(luò)模塊116隨后可使用被保留的帶寬來(lái)接收數(shù)據(jù)消息110。因?yàn)榻邮辗皆O(shè)備104僅接收它向其提供了發(fā)送許可的數(shù)據(jù)消息110,防止了接收方設(shè)備104處的緩沖器溢出的風(fēng)險(xiǎn)。在接收到數(shù)據(jù)消息110后,網(wǎng)絡(luò)模塊116將數(shù)據(jù)消息110提供給它們被定向到的應(yīng)用128并且釋放與數(shù)據(jù)消息110相關(guān)聯(lián)的帶寬保留。在一些實(shí)施例中,完成接收數(shù)據(jù)消息HO和釋放帶寬保留會(huì)觸發(fā)發(fā)送下一 CTS消息126。
[0057]示例操作
[0058]圖4和5是解說(shuō)了各過(guò)程的示例操作的流程圖。這些過(guò)程的示例操作在單獨(dú)的框中示出,并且參考這些框來(lái)概括。這些過(guò)程被示為邏輯流程圖,每個(gè)操作可表示可用硬件、軟件或其組合實(shí)現(xiàn)的一組操作。在軟件的上下文中,這些操作表示存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行指令,這些指令在由一個(gè)或多個(gè)處理器執(zhí)行時(shí)執(zhí)行既定操作。一般而言,計(jì)算機(jī)可執(zhí)行指令包括執(zhí)行特定功能或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。描述操作的次序并不旨在解釋為限制,并且任何數(shù)量的所述操作可以按任何次序和/或并行組合以實(shí)現(xiàn)該過(guò)程。
[0059]圖4是示出了根據(jù)各實(shí)施例的用于通過(guò)分組交換網(wǎng)絡(luò)與接收方設(shè)備建立有效電路的由發(fā)送方設(shè)備執(zhí)行的多個(gè)操作的流程圖。如框402所示,發(fā)送方設(shè)備可接收以供從該發(fā)送方設(shè)備的一個(gè)或多個(gè)應(yīng)用傳送到接收方設(shè)備的消息。發(fā)送方設(shè)備和接收方設(shè)備可由分組交換網(wǎng)絡(luò)連接,諸如完全二等分帶寬網(wǎng)絡(luò)或高二等分帶寬網(wǎng)絡(luò)。在框404,在接收到消息后,發(fā)送方設(shè)備可確定該消息是否是控制消息或具有小于閾值大小的大小。在框406,如果該消息是控制消息或小于閾值大小,則發(fā)送方設(shè)備可將該消息傳送到該消息所指定的接收方設(shè)備。在框408,如果消息不是控制消息或大于閾值大小,則發(fā)送方設(shè)備將消息排隊(duì)以供后續(xù)傳送。
[0060]在框410,發(fā)送方設(shè)備選擇供傳送到接收方設(shè)備的消息。發(fā)送方設(shè)備可從發(fā)送方設(shè)備隊(duì)列中選擇消息,諸如隊(duì)列中的第一消息。在一些實(shí)施例中,發(fā)送方設(shè)備可選擇以供傳送的多個(gè)消息,諸如供鏈接傳送到同一接收方設(shè)備的多個(gè)消息或到多個(gè)接收方設(shè)備的多個(gè)消息。在框410a,發(fā)送方設(shè)備基于發(fā)送方設(shè)備的可用傳送帶寬來(lái)限制所選消息的數(shù)量,從而使得全部所選消息可并發(fā)地被傳送而不必等待任何其他所選消息完成發(fā)送。在框410b,發(fā)送方設(shè)備可從隊(duì)列中選擇與先前的發(fā)送請(qǐng)求(RTS)相關(guān)聯(lián)的消息。發(fā)送方設(shè)備可具有針對(duì)該消息的先前發(fā)送的RTS,并且可接收到拒絕發(fā)送該消息的許可的響應(yīng)。
[0061]在框412,發(fā)送方設(shè)備發(fā)送針對(duì)所選消息的RTS。該RTS可包括消息的大小。在一些實(shí)施例中,發(fā)送包括:經(jīng)由發(fā)送方設(shè)備的多個(gè)接口發(fā)送多個(gè)請(qǐng)求,該多個(gè)接口共享同一消息隊(duì)列和隊(duì)列狀態(tài)集合。在一個(gè)實(shí)施例中,RTS可經(jīng)由不同于消息的接口來(lái)發(fā)送。在框412a,發(fā)送方設(shè)備并行地將多個(gè)RTS發(fā)送到多個(gè)接收方設(shè)備。在框412b,發(fā)送方設(shè)備將前往單個(gè)接收方設(shè)備的RTS鏈接,并發(fā)地將經(jīng)鏈接的RTS發(fā)送到接收方設(shè)備。在412c,鏈接可包括:在單個(gè)RTS中指示該發(fā)送方設(shè)備需要向該接收方設(shè)備發(fā)送的消息的數(shù)量。
[0062]響應(yīng)于該RTS,發(fā)送方設(shè)備在框414接收發(fā)送許可(CTS)或在框422接收拒絕該RTS的響應(yīng)(此處被稱為“繁忙稍后再試”(BTL)消息)。在框414,發(fā)送方設(shè)備從接收方設(shè)備接收CTS。RTS和CTS在通過(guò)分組交換網(wǎng)絡(luò)在發(fā)送方設(shè)備和接收方設(shè)備之間建立了有效電路。接收方設(shè)備將CTS消息發(fā)送到為其保留了帶寬的發(fā)送方設(shè)備。在框416,發(fā)送方設(shè)備確定哪些消息被CTS許可。例如,如果發(fā)送方設(shè)備在框412c指示發(fā)送方設(shè)備具有要傳送的十條消息,則接收方設(shè)備可能僅用許可了消息中的五條消息的一個(gè)或多個(gè)CTS來(lái)作出響應(yīng)。在框418,發(fā)送方設(shè)備將被許可的一個(gè)或多個(gè)消息發(fā)送給接收方設(shè)備,該接收方設(shè)備將使用被保留的帶寬來(lái)接收該被許可的一個(gè)或多個(gè)消息。通過(guò)利用發(fā)送方設(shè)備的全部帶寬以及接收方設(shè)備的保留帶寬,發(fā)送方設(shè)備確保了消息在沒(méi)有任何延遲、分組丟失或未使用的帶寬的情況下被發(fā)送。
[0063]在框420,發(fā)送方設(shè)備利用計(jì)時(shí)器來(lái)估算何時(shí)應(yīng)該將下一消息傳送到接收方設(shè)備。計(jì)時(shí)器估算要發(fā)送所選的一個(gè)或多個(gè)消息的時(shí)間以及因而估算消息傳送將何時(shí)完成以及發(fā)送方設(shè)備帶寬將何時(shí)可用的時(shí)間。
[0064]在框422,代替接收到CTS,發(fā)送方設(shè)備從接收方設(shè)備接收到拒絕請(qǐng)求發(fā)送消息的BTL0在框424,響應(yīng)于BTL,發(fā)送方設(shè)備選擇要發(fā)送給另一接收方設(shè)備的另一消息。在一些實(shí)施例中,發(fā)送方設(shè)備選擇隊(duì)列中其RTS尚未被發(fā)送且被定向到另一接收方設(shè)備的第一消息。隨后在框412發(fā)送其他消息的RTS消息。發(fā)送方設(shè)備在RTS被拒絕的情況下選擇另一消息進(jìn)行傳送以確保該發(fā)送方設(shè)備不會(huì)靜止處于空閑而是仍然有要傳送的消息以及傳送那些消息的可用帶寬。
[0065]圖5是示出了根據(jù)各實(shí)施例的用于基于接收方設(shè)備帶寬的保留通過(guò)分組交換網(wǎng)絡(luò)與發(fā)送方設(shè)備建立有效電路的由接收方設(shè)備執(zhí)行的多個(gè)操作的流程圖。如框502所示,接收方設(shè)備可從多個(gè)發(fā)送方設(shè)備接收到多個(gè)請(qǐng)求發(fā)送(RTS)消息。在一些實(shí)施例中,RTS消息包括發(fā)送方設(shè)備正請(qǐng)求要發(fā)送的消息的大小。在框504,在接收到這些RTS消息后,接收方設(shè)備可至少基于這些RTS消息中的一個(gè)或多個(gè)消息中包括的優(yōu)先級(jí)或者發(fā)送方設(shè)備已經(jīng)接收到拒絕其RTS消息的響應(yīng)的次數(shù)中的一者來(lái)對(duì)RTS消息進(jìn)行排序。
[0066]在框506,接收方設(shè)備可為至少一個(gè)發(fā)送方設(shè)備保留用于從該少一個(gè)發(fā)送方設(shè)備接收消息的帶寬。該至少一個(gè)發(fā)送方設(shè)備可使其RTS消息選擇自經(jīng)排序的RTS消息。在一些實(shí)施例中,接收方設(shè)備保留帶寬用于從接收方設(shè)備接收與多個(gè)RTS消息對(duì)應(yīng)的多個(gè)消息。而且,在其他實(shí)施例中,為其保留的帶寬的發(fā)送方設(shè)備的數(shù)量可以與正在請(qǐng)求發(fā)送的發(fā)送方設(shè)備的消息大小有關(guān)。在框508,接收方設(shè)備隨后對(duì)該至少一個(gè)發(fā)送方設(shè)備的一個(gè)或多個(gè)RTS消息作出響應(yīng),從而向該至少一個(gè)發(fā)送方設(shè)備提供使用保留的帶寬的一個(gè)或多個(gè)發(fā)送許可(CTS)消息。
[0067]在框510,接收方設(shè)備用拒絕其他發(fā)送方設(shè)備的RTS消息的響應(yīng)來(lái)對(duì)其他發(fā)送方設(shè)備作出響應(yīng)。這些消極響應(yīng)在此處被稱為“繁忙稍后再試”(BTL)消息。該BTL消息向該其他發(fā)送方設(shè)備指示它們應(yīng)該將RTS消息發(fā)送給其他接收方設(shè)備以便完全利用它們的發(fā)送方設(shè)備的帶寬。在一些實(shí)施例中,當(dāng)接收方設(shè)備將BTL消息發(fā)送給發(fā)送方設(shè)備時(shí),它使發(fā)送給該發(fā)送方設(shè)備的BTL消息的數(shù)量表示遞增。該表示隨后被用于后續(xù)排序操作。
[0068]在框512,接收方設(shè)備使用保留的帶寬從該至少一個(gè)發(fā)送方設(shè)備接收一個(gè)或多個(gè)消息。
[0069]示例系統(tǒng)體系結(jié)構(gòu)
[0070]圖6是根據(jù)各個(gè)實(shí)施例的用于發(fā)送方設(shè)備102或接收方設(shè)備104的示例計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)的框圖。如圖所示,發(fā)送方設(shè)備102/接收方設(shè)備104可至少包括存儲(chǔ)器602(包括高速緩存存儲(chǔ)器)以及一個(gè)或多個(gè)處理單元(或處理器)604。處理單元604可在適當(dāng)時(shí)用硬件、軟件、固件、或其組合來(lái)實(shí)現(xiàn)。處理器604的軟件或固件實(shí)現(xiàn)可包括用任何合適的編程語(yǔ)言編寫的、用于執(zhí)行所述各種功能的計(jì)算機(jī)或機(jī)器可執(zhí)行指令。處理器604還可以或者替換地包括一個(gè)或多個(gè)圖形處理單元(GPU)。
[0071]存儲(chǔ)器602可以存儲(chǔ)可在處理器604上加載并執(zhí)行的程序指令以及在執(zhí)行這些程序期間生成的數(shù)據(jù)。取決于計(jì)算設(shè)備的配置和類型,存儲(chǔ)器602可以是易失性的(諸如隨機(jī)存取存儲(chǔ)器(RAM))和/或非易失性的(諸如只讀存儲(chǔ)器(ROM)、閃存等)。計(jì)算設(shè)備或服務(wù)器還可包括附加可移動(dòng)存儲(chǔ)606和/或不可移動(dòng)存儲(chǔ)608,其包括但不限于磁盤、光盤和/或磁帶。盤驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)可為計(jì)算設(shè)備提供對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其它數(shù)據(jù)的非易失性存儲(chǔ)。在某些實(shí)現(xiàn)中,存儲(chǔ)器602可包括多種不同類型的存儲(chǔ)器,如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、或ROM。
[0072]計(jì)算機(jī)可讀介質(zhì)包括至少兩種類型的計(jì)算機(jī)可讀介質(zhì),即計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。
[0073]計(jì)算機(jī)存儲(chǔ)介質(zhì)包括用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的任何方法或技術(shù)來(lái)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)的介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、可擦除可編程只讀存儲(chǔ)器(EPROM)、閃存或者其他存儲(chǔ)技術(shù)、緊致盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(DVD)或者其他光存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或者其他磁存儲(chǔ)設(shè)備、或者能夠用來(lái)存儲(chǔ)信息以供計(jì)算設(shè)備訪問(wèn)的任何其他非傳輸介質(zhì)。
[0074]相反,通信介質(zhì)可用諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。如此所定義的,計(jì)算機(jī)存儲(chǔ)介質(zhì)不包括通信介質(zhì)。
[0075]發(fā)送方設(shè)備102/接收方設(shè)備104還可包含允許發(fā)送方設(shè)備102/接收方設(shè)備104與所存儲(chǔ)的數(shù)據(jù)庫(kù)、另一計(jì)算設(shè)備或服務(wù)器、用戶終端、和/或網(wǎng)絡(luò)上的其它設(shè)備進(jìn)行通信的通信連接610,諸如網(wǎng)絡(luò)106。發(fā)送方設(shè)備102/接收方設(shè)備104還可包括輸入設(shè)備612,如鍵盤、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等等,和輸出設(shè)備614,如顯示器、揚(yáng)聲器、打印機(jī)等等。
[0076]發(fā)送方設(shè)備102/接收方設(shè)備104可進(jìn)一步包括用于跨網(wǎng)絡(luò)106發(fā)送和接收數(shù)據(jù)的接口 118/120。如上文所提及的,接口 118/120可包括任何數(shù)量的網(wǎng)絡(luò)接口,每一個(gè)網(wǎng)絡(luò)接口具有用于傳送和接收數(shù)據(jù)的相關(guān)聯(lián)的帶寬。
[0077]轉(zhuǎn)到更詳細(xì)的存儲(chǔ)器602的內(nèi)容,存儲(chǔ)器602可包括平臺(tái)616。平臺(tái)616可包括操作系統(tǒng)和/或一個(gè)或多個(gè)應(yīng)用程序或服務(wù)。如果存儲(chǔ)器602屬于發(fā)送方設(shè)備102,則存儲(chǔ)器602還可包括網(wǎng)絡(luò)模塊108和應(yīng)用112以及一個(gè)或多個(gè)隊(duì)列114,該網(wǎng)絡(luò)模塊108和應(yīng)用112可各自表示任何一個(gè)或多個(gè)模塊、應(yīng)用、進(jìn)程、線程或功能,該隊(duì)列114可表示任何存儲(chǔ)格式或數(shù)據(jù)結(jié)構(gòu)。網(wǎng)絡(luò)模塊108、應(yīng)用112和隊(duì)列114在上文中更詳細(xì)地進(jìn)行了描述。如果存儲(chǔ)器602屬于接收方設(shè)備104,則存儲(chǔ)器602還可包括網(wǎng)絡(luò)模塊122和應(yīng)用128以及一個(gè)或多個(gè)隊(duì)列124,該網(wǎng)絡(luò)模塊122和應(yīng)用128可各自表示任何一個(gè)或多個(gè)模塊、應(yīng)用、進(jìn)程、線程或功能,該隊(duì)列124可表示任何存儲(chǔ)格式或數(shù)據(jù)結(jié)構(gòu)。網(wǎng)絡(luò)模塊122、應(yīng)用128和隊(duì)列124在上文中更詳細(xì)地進(jìn)行了描述。
[0078]結(jié)語(yǔ)
[0079]盡管已經(jīng)用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但要理解,所附權(quán)利要求書中定義的主題不必限于所描述的具體特征或動(dòng)作。相反地,這些具體特征和動(dòng)作是作為實(shí)現(xiàn)該權(quán)利要求的示例性形式而公開的。
【權(quán)利要求】
1.一種方法,包括: 由發(fā)送方設(shè)備向通過(guò)分組網(wǎng)絡(luò)連接至所述發(fā)送方設(shè)備的接收方設(shè)備發(fā)送請(qǐng)求,所述請(qǐng)求與來(lái)自所述接收方設(shè)備的用于從所述發(fā)送方設(shè)備接收消息的帶寬保留相關(guān)聯(lián); 由所述發(fā)送方設(shè)備從所述接收方設(shè)備接收提供了使用所述接收方設(shè)備的保留帶寬向所述接收方設(shè)備發(fā)送消息的許可的響應(yīng),所述請(qǐng)求和所述響應(yīng)創(chuàng)建了通過(guò)所述分組交換網(wǎng)絡(luò)的所述發(fā)送方設(shè)備和所述接收方設(shè)備之間的有效電路。
2.如權(quán)利要求1所述的方法,其特征在于,還包括: 確定另一消息是否是控制消息或小于閾值大??;以及 響應(yīng)于確定所述另一消息是控制消息或小于閾值大小,將所述另一消息發(fā)送給所述接收方設(shè)備而不必發(fā)送與帶寬保留相關(guān)聯(lián)的在先請(qǐng)求。
3.如權(quán)利要求1所述的方法,其特征在于,還包括并行地向多個(gè)接收方設(shè)備發(fā)送多個(gè)請(qǐng)求。
4.如權(quán)利要求3所述的方法,其特征在于,還包括基于所述發(fā)送方設(shè)備的可用帶寬來(lái)限制發(fā)送的請(qǐng)求的數(shù)量。
5.如權(quán)利要求1所述的方法,其特征在于,還包括并發(fā)地向所述接收方設(shè)備發(fā)送針對(duì)多個(gè)消息的多個(gè)請(qǐng)求。
6.如權(quán)利要求1所述的方法,其特征在于,所述請(qǐng)求指示所述發(fā)送方設(shè)備需要發(fā)送給所述接收方設(shè)備的消息的數(shù)量,且所述方法還包括接收提供了針對(duì)所述消息中的部分消息或全部消息的許可的響應(yīng)。
7.—種發(fā)送方設(shè)備,包括: 處理器;以及 被配置成由所述處理器操作以執(zhí)行以下操作的網(wǎng)絡(luò)模塊,所述操作包括: 向第一接收方設(shè)備發(fā)送第一請(qǐng)求發(fā)送(RTS)第一消息,所述第一 RTS向所述第一接收方設(shè)備尋求用于從所述發(fā)送方設(shè)備接收所述第一消息的第一帶寬保留; 從所述第一接收方設(shè)備接收到拒絕所述第一 RTS的響應(yīng);以及基于所述響應(yīng),向第二接收方設(shè)備發(fā)送第二 RTS,所述第二 RTS向所述第二接收方設(shè)備尋求用于從所述發(fā)送方設(shè)備接收第二消息的第二帶寬保留。
8.如權(quán)利要求7所述的發(fā)送方設(shè)備,其特征在于,還包括存儲(chǔ)供傳送到接收方設(shè)備的消息的一個(gè)或多個(gè)隊(duì)列。
9.如權(quán)利要求8所述的發(fā)送方設(shè)備,其特征在于,所述網(wǎng)絡(luò)模塊被進(jìn)一步配置成從所述一個(gè)或多個(gè)隊(duì)列中選擇所述隊(duì)列中未被定向到所述第一接收方設(shè)備且其RTS尚未被發(fā)送的消息作為所述第二消息。
10.一種或多種包括被配置成對(duì)接收方設(shè)備進(jìn)行編程以執(zhí)行以下操作的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述操作包括: 從多個(gè)發(fā)送方設(shè)備接收多個(gè)請(qǐng)求發(fā)送消息; 為所述發(fā)送方設(shè)備中的至少一個(gè)發(fā)送方設(shè)備保留帶寬;以及 向所述發(fā)送方設(shè)備中的所述至少一個(gè)發(fā)送方設(shè)備發(fā)送響應(yīng),所述響應(yīng)提供了使用保留帶寬向所述接收方設(shè)備發(fā)送一個(gè)或多個(gè)消息的許可。
【文檔編號(hào)】H04L12/911GK103493449SQ201280020755
【公開日】2014年1月1日 申請(qǐng)日期:2012年4月28日 優(yōu)先權(quán)日:2011年4月28日
【發(fā)明者】J·E·埃爾森, E·B·南丁格爾 申請(qǐng)人:微軟公司