欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于檢測(cè)TCP網(wǎng)絡(luò)連接上出界進(jìn)行Nagle的系統(tǒng)和方法

文檔序號(hào):7951860閱讀:149來(lái)源:國(guó)知局
專利名稱:用于檢測(cè)TCP網(wǎng)絡(luò)連接上出界進(jìn)行Nagle的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域。更具體而言,本發(fā)明涉及用于管理傳輸控制協(xié)議(TCP)網(wǎng)絡(luò)連接,尤其是用于管理實(shí)現(xiàn)Nagle算法[RFC896]機(jī)制的TCP網(wǎng)絡(luò)連接的系統(tǒng)、方法和介質(zhì)。
背景技術(shù)
個(gè)人計(jì)算機(jī)系統(tǒng)在本領(lǐng)域是眾所周知的。對(duì)于向當(dāng)今現(xiàn)代社會(huì)的許多部門提供計(jì)算機(jī)能力而言,它們已獲得廣泛應(yīng)用。個(gè)人計(jì)算機(jī)(PC)可以定義為包括具有一個(gè)或多個(gè)中央處理單元(CPU)及相關(guān)易失和非易失存儲(chǔ)器、系統(tǒng)監(jiān)視器、鍵盤、一個(gè)或多個(gè)活動(dòng)磁盤驅(qū)動(dòng)器、CD-ROM驅(qū)動(dòng)器、固定磁盤存儲(chǔ)器驅(qū)動(dòng)器(也稱為“硬盤驅(qū)動(dòng)器”)、如鼠標(biāo)的定點(diǎn)設(shè)備及可選網(wǎng)絡(luò)接口適配器的系統(tǒng)單元的桌面、立式或便攜式微型計(jì)算機(jī),其中易失和非易失存儲(chǔ)器包括隨機(jī)存取存儲(chǔ)器(RAM)和基本輸入/輸出系統(tǒng)只讀存儲(chǔ)器(BIOS ROM)。這種個(gè)人計(jì)算機(jī)系統(tǒng)的例子是國(guó)際商業(yè)機(jī)器公司(IBM)的ThinkCenterTM、ThinkPadTM、AptivaTM和IntelliStationTM個(gè)人計(jì)算機(jī)系列。
而且,PC和其它計(jì)算機(jī)系統(tǒng)已經(jīng)由如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、廣域網(wǎng)(WAN)和局域網(wǎng)(LAN)的網(wǎng)絡(luò)越來(lái)越多地連接在一起。網(wǎng)絡(luò)常常使用一種或多種協(xié)議來(lái)方便網(wǎng)絡(luò)中及其它網(wǎng)絡(luò)上計(jì)算機(jī)之間的通信。如因特網(wǎng)協(xié)議(IP)和TCP的協(xié)議是網(wǎng)絡(luò)上計(jì)算機(jī)之間通信的預(yù)建立方式。IP允許數(shù)據(jù)包(包括數(shù)據(jù)和頭)從節(jié)點(diǎn)到節(jié)點(diǎn)的路由、基于4字節(jié)目的地地址(IP號(hào))轉(zhuǎn)發(fā)數(shù)據(jù)包。TCP在有點(diǎn)不可靠的包IP之上創(chuàng)建可靠的通信流(當(dāng)它們結(jié)合時(shí)稱為TCP/IP)。TCP增加了對(duì)檢測(cè)錯(cuò)誤或丟失數(shù)據(jù)及觸發(fā)重新發(fā)送直到數(shù)據(jù)被正確和完整接收的支持。TCP將數(shù)據(jù)看作是包括指明起始字節(jié)和大小、使接收方能夠檢測(cè)丟失或順序不正確包的頭的字節(jié)流。
一旦建立了TCP連接,大部分發(fā)送最終都導(dǎo)致來(lái)自接收方的響應(yīng)(如ACK,或確認(rèn))。但是,在給定與TCP和IP關(guān)聯(lián)的開(kāi)銷的情況下,每次發(fā)送的明確確認(rèn)會(huì)產(chǎn)生顯著的附加通信量。因此,TCP試圖將最少可能的包發(fā)送到網(wǎng)絡(luò)中,以避免使網(wǎng)絡(luò)擁塞及增加路由器和交換機(jī)的負(fù)擔(dān)。為了方便發(fā)送,包可以分成多個(gè)段。“小”段是任何小于當(dāng)TCP連接建立時(shí)由發(fā)送方和接收方協(xié)商的最大段尺寸(MSS)的段。[在1984年1月6日發(fā)表的標(biāo)題為“Congestion Control in IP/TCPInternetworks”的網(wǎng)絡(luò)工作組請(qǐng)求注釋(RFC)896中描述的]Nagle算法是一種由TCP用于減少網(wǎng)絡(luò)連接上發(fā)送的確認(rèn)數(shù)的機(jī)制。當(dāng)其實(shí)現(xiàn)時(shí),Nalge算法要求發(fā)送方不會(huì)有多于一個(gè)未確認(rèn)的小段未完成。當(dāng)未確認(rèn)的小段未完成時(shí),發(fā)送方保留任何來(lái)自應(yīng)用程序的任何更多數(shù)據(jù),直到該未完成的段由接收方確認(rèn)。TCP使接收方有可能將確認(rèn)附加到另一響應(yīng)(也稱為“背負(fù)(piggyback)”的處理),以消除兩次發(fā)送的需要,從而減小網(wǎng)絡(luò)負(fù)擔(dān)。當(dāng)TCP連接主要具有單向通信時(shí),附加確認(rèn)的機(jī)會(huì)是有限的。因此,Nagle算法常常導(dǎo)致每個(gè)往返時(shí)間(RTT)只有一個(gè)小段在給定連接上發(fā)送,其中RTT是發(fā)送數(shù)據(jù)和隨后接收該數(shù)據(jù)的確認(rèn)所花費(fèi)的時(shí)間,在許多情況下導(dǎo)致發(fā)送中不期望的延遲。
發(fā)送小段時(shí)由RTT造成的延遲由于TCP的延遲確認(rèn)策略而更加劇了。傳統(tǒng)的接收方TCP實(shí)現(xiàn)延遲向發(fā)送方發(fā)送確認(rèn),直到在反向路徑上有數(shù)據(jù)要發(fā)送(使它能夠?qū)CK附加到該數(shù)據(jù))、直到至少有兩個(gè)滿尺寸的段(2乘MSS字節(jié))要確認(rèn)或者直到延遲確認(rèn)定時(shí)器(一般是大約200毫秒)到期。當(dāng)發(fā)送方發(fā)送小段時(shí),確認(rèn)一般要到延遲確認(rèn)定時(shí)器到期才發(fā)送,導(dǎo)致應(yīng)當(dāng)快得多完成的操作延遲幾百毫秒并在RTT之上給出另外的延遲。由于延遲確認(rèn)定時(shí)器,因此其它延遲也是有可能的,如在某些操作系統(tǒng)(OS)中當(dāng)發(fā)送方試圖發(fā)送尺寸大于OS網(wǎng)絡(luò)緩沖區(qū)大小的包時(shí)所發(fā)生的延遲,這種延遲會(huì)導(dǎo)致一個(gè)小段保持未確認(rèn),直到延遲確認(rèn)定時(shí)器到期。
由于小段的確認(rèn)很少能夠利用其它數(shù)據(jù)背負(fù),因此由延遲確認(rèn)時(shí)間造成的延遲在主要具有單向通信的環(huán)境中是尤其不期望的。由于對(duì)某些網(wǎng)絡(luò)連接與Nagle算法相關(guān)的問(wèn)題,因此有些應(yīng)用程序開(kāi)發(fā)人員通過(guò)使用TCP_NODELAY套接字選項(xiàng)簡(jiǎn)單地對(duì)給定網(wǎng)絡(luò)連接關(guān)掉Nagle算法。此外,在某些操作系統(tǒng)上,系統(tǒng)管理員可以利用OS調(diào)整參數(shù)關(guān)掉Nagle算法。盡管對(duì)于某些應(yīng)用程序這提高了性能,但是對(duì)于許多應(yīng)用程序,關(guān)掉Nagle算法將導(dǎo)致網(wǎng)絡(luò)壓力增加,尤其是當(dāng)網(wǎng)絡(luò)上有些發(fā)送方有錯(cuò)誤輸出緩沖區(qū)管理時(shí)。由于關(guān)掉Nagle算法常常比Nagle算法本身使網(wǎng)絡(luò)減速更多,因此簡(jiǎn)單地關(guān)掉Nagle算法不能對(duì)由Nagle導(dǎo)致的減速提供滿意的解決方案。而且,關(guān)掉Nagle算法還會(huì)導(dǎo)致?lián)p失由Nagle算法提供的好處。
關(guān)掉Nagle算法的另一問(wèn)題是這種解決方案首先要求對(duì)由Nagle導(dǎo)致的減速的正確診斷。當(dāng)前操作系統(tǒng)不能識(shí)別何時(shí)減速是由Nagle導(dǎo)致的延遲造成的。當(dāng)網(wǎng)絡(luò)減速發(fā)生時(shí),如果不去分析日志或執(zhí)行跟蹤分析,那么管理員可能不會(huì)知道是什么造成了減速。即使當(dāng)網(wǎng)絡(luò)減速可以通過(guò)關(guān)掉Nagle算法改善時(shí),管理員也不能很快確定這種解決方案將提供好處,從而導(dǎo)致它常常被忽略。
因此,需要有一種有效的機(jī)制來(lái)檢測(cè)和管理TCP網(wǎng)絡(luò)中Nagle算法的使用,尤其是當(dāng)那些網(wǎng)絡(luò)容易受由Nagle導(dǎo)致的減速影響時(shí)。當(dāng)應(yīng)用程序在它們數(shù)據(jù)包的發(fā)送中效率不高時(shí)這種機(jī)制的需求甚至更大。

發(fā)明內(nèi)容
上面識(shí)別的問(wèn)題很大部分是由用于檢測(cè)TCP網(wǎng)絡(luò)連接上出界進(jìn)行Nagle的系統(tǒng)、方法和介質(zhì)解決的。一種實(shí)施方式包括由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段、由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段及確定先前發(fā)送的小段是否未由接收方計(jì)算機(jī)確認(rèn)。如果先前發(fā)送的小段未由接收方計(jì)算機(jī)確認(rèn)并且至少一個(gè)要發(fā)送的段是小段,則實(shí)施方式還可以包括由發(fā)送方計(jì)算機(jī)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài)。進(jìn)一步的實(shí)施方式還可以包括響應(yīng)檢測(cè)到的進(jìn)行Nagle狀態(tài),通過(guò)對(duì)網(wǎng)絡(luò)連接關(guān)掉Nagle算法或?qū)W(wǎng)絡(luò)連接減小延遲確認(rèn)定時(shí)器中的一個(gè)或多個(gè)修改網(wǎng)絡(luò)連接的Nagle算法配置。在進(jìn)一步的實(shí)施方式中,檢測(cè)步驟可以包括由發(fā)送方計(jì)算機(jī)產(chǎn)生并發(fā)送進(jìn)行Nagle狀態(tài)的通知、由發(fā)送方計(jì)算機(jī)遞增Nagle監(jiān)視器計(jì)數(shù)器、由發(fā)送方計(jì)算機(jī)顯示進(jìn)行Nagle狀態(tài)存在的指示或由發(fā)送方計(jì)算機(jī)將進(jìn)行Nagle狀態(tài)的指示記錄在日志中。
另一實(shí)施方式提供了包含指令的機(jī)器可訪問(wèn)介質(zhì),當(dāng)在數(shù)據(jù)處理系統(tǒng)中執(zhí)行時(shí),這些指令有效地使系統(tǒng)執(zhí)行用于管理用戶行進(jìn)路線(itinerary)的一系列操作。這一系列操作通常包括由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段、由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段及確定先前發(fā)送的小段是否未由接收方計(jì)算機(jī)確認(rèn)。如果先前發(fā)送的小段未由接收方計(jì)算機(jī)確認(rèn)并且至少一個(gè)要發(fā)送的段是小段,則這一系列操作還可以包括由發(fā)送方計(jì)算機(jī)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài)。進(jìn)一步的實(shí)施方式還可以包括響應(yīng)檢測(cè)到的進(jìn)行Nagle狀態(tài),通過(guò)對(duì)網(wǎng)絡(luò)連接關(guān)掉Nagle算法或?qū)W(wǎng)絡(luò)連接減小延遲確認(rèn)定時(shí)器中的一個(gè)或多個(gè)修改網(wǎng)絡(luò)連接的Nagle算法配置。在進(jìn)一步的實(shí)施方式中,檢測(cè)步驟可以包括由發(fā)送方計(jì)算機(jī)產(chǎn)生并發(fā)送進(jìn)行Nagle狀態(tài)的通知、由發(fā)送方計(jì)算機(jī)遞增Nagle監(jiān)視器計(jì)數(shù)器、由發(fā)送方計(jì)算機(jī)顯示進(jìn)行Nagle狀態(tài)的指示或由發(fā)送方計(jì)算機(jī)將進(jìn)行Nagle狀態(tài)的指示記錄在日志中。
另一實(shí)施方式提供了用于檢測(cè)發(fā)送方計(jì)算機(jī)和接收方計(jì)算機(jī)之間網(wǎng)絡(luò)連接上進(jìn)行Nagle狀態(tài)的數(shù)據(jù)處理系統(tǒng)。該系統(tǒng)通??梢园ǚ奖阃ㄟ^(guò)網(wǎng)絡(luò)連接向接收方計(jì)算機(jī)系統(tǒng)發(fā)送和接收數(shù)據(jù)的網(wǎng)絡(luò)模塊和傳輸模塊。傳輸模塊可以從應(yīng)用程序接收發(fā)送數(shù)據(jù)的請(qǐng)求并基于發(fā)送數(shù)據(jù)的請(qǐng)求創(chuàng)建一個(gè)或多個(gè)數(shù)據(jù)段并將一個(gè)或多個(gè)數(shù)據(jù)段傳遞到網(wǎng)絡(luò)模塊進(jìn)行發(fā)送。該系統(tǒng)還可以包括如果當(dāng)網(wǎng)絡(luò)連接上還有未確認(rèn)的小段未完成時(shí)傳輸模塊試圖在網(wǎng)絡(luò)連接上發(fā)送小段則產(chǎn)生進(jìn)行Nagle狀態(tài)存在的警告的Nagle檢測(cè)器。進(jìn)一步的實(shí)施方式還可以包括顯示進(jìn)行Nagle狀態(tài)存在的指示的用戶接口。


通過(guò)閱讀以下具體描述并參考附圖,本發(fā)明的其它目的和優(yōu)點(diǎn)將變得顯而易見(jiàn),其中相同的標(biāo)號(hào)可以指示類似的元件圖1描述了根據(jù)一種實(shí)施方式的用于Nagle檢測(cè)系統(tǒng)的環(huán)境;圖2描述了根據(jù)一種實(shí)施方式的用于檢測(cè)進(jìn)行Nagle狀態(tài)及產(chǎn)生和發(fā)送狀態(tài)通知的流程圖的例子;圖3描述了根據(jù)一種實(shí)施方式的用于檢測(cè)進(jìn)行Nagle狀態(tài)及遞增Nagle監(jiān)視器計(jì)數(shù)器的流程圖的例子;及圖4描述了根據(jù)一種實(shí)施方式的用于檢測(cè)進(jìn)行Nagle狀態(tài)并將進(jìn)行Nagle狀態(tài)的指示記錄在日志中的流程圖的例子。
具體實(shí)施例方式
以下是附圖中所描述的本發(fā)明例子實(shí)施方式的具體描述。該例子實(shí)施方式具體到足以清楚地表達(dá)本發(fā)明。但是,所提供的細(xì)節(jié)量不是要限制本發(fā)明預(yù)期的變體;相反,其意圖是要覆蓋屬于由所附權(quán)利要求定義的本發(fā)明主旨和范圍的所有修改、等價(jià)物和可選物。以下具體描述設(shè)計(jì)成使這種實(shí)施方式對(duì)本領(lǐng)域普通技術(shù)人員顯而易見(jiàn)。
公開(kāi)了用于檢測(cè)TCP網(wǎng)絡(luò)連接上出界進(jìn)行Nagle的系統(tǒng)、方法和介質(zhì)。實(shí)施方式可以包括由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段、由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段及確定先前發(fā)送的小段是否未由接收方計(jì)算機(jī)確認(rèn)。如果先前發(fā)送的小段未由接收方計(jì)算機(jī)確認(rèn)并且至少一個(gè)要發(fā)送的段是小段,則實(shí)施方式還可以包括由發(fā)送方計(jì)算機(jī)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài)。進(jìn)一步的實(shí)施方式還可以包括響應(yīng)檢測(cè)到的進(jìn)行Nagle狀態(tài),通過(guò)對(duì)網(wǎng)絡(luò)連接關(guān)掉Nagle算法或?qū)W(wǎng)絡(luò)連接減小延遲確認(rèn)定時(shí)器中的一個(gè)或多個(gè)修改網(wǎng)絡(luò)連接的Nagle算法配置。
通過(guò)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài),所公開(kāi)實(shí)施方式的Nagle檢測(cè)系統(tǒng)為用戶或管理員提供了診斷并可能校正網(wǎng)絡(luò)問(wèn)題的有效機(jī)制。所公開(kāi)實(shí)施方式的Nagle檢測(cè)系統(tǒng)在網(wǎng)絡(luò)連接的發(fā)送方側(cè)提供了用于檢測(cè)由Nagle算法造成的延遲的確定性算法。在一種例子中,如果網(wǎng)絡(luò)減速發(fā)生,則發(fā)送方計(jì)算機(jī)的管理員可以利用所公開(kāi)的Nagle檢測(cè)系統(tǒng)實(shí)時(shí)診斷由Nagle算法造成的延遲,從而使得比管理員在事實(shí)之后通過(guò)分析或細(xì)查日志對(duì)網(wǎng)絡(luò)狀態(tài)有更快更準(zhǔn)確的診斷。
盡管以下將參考硬件和/或軟件的特定配置描述特定實(shí)施方式,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到本發(fā)明的實(shí)施方式可以有利地利用其它基本等效的硬件和/或軟件系統(tǒng)來(lái)實(shí)現(xiàn)。
現(xiàn)在轉(zhuǎn)向附圖,圖1描述了根據(jù)一種實(shí)施方式的用于Nagle檢測(cè)系統(tǒng)的環(huán)境。在所述實(shí)施方式中,Nagle檢測(cè)系統(tǒng)100包括通過(guò)網(wǎng)絡(luò)106與接收方計(jì)算機(jī)系統(tǒng)104通信的發(fā)送方計(jì)算機(jī)系統(tǒng)102(發(fā)送方計(jì)算機(jī))。發(fā)送方計(jì)算機(jī)系統(tǒng)102可以包括應(yīng)用程序108、傳輸模塊110和網(wǎng)絡(luò)模塊112。類似地,接收方計(jì)算機(jī)系統(tǒng)104(接收方計(jì)算機(jī))可以包括應(yīng)用程序108、傳輸模塊110和網(wǎng)絡(luò)模塊112。發(fā)送方計(jì)算機(jī)系統(tǒng)102還可以包括用戶接口114和Nagle檢測(cè)器116。在所述實(shí)施方式中,發(fā)送方計(jì)算機(jī)系統(tǒng)102可以通過(guò)網(wǎng)絡(luò)106上的網(wǎng)絡(luò)連接利用如TCP的協(xié)議向接收方計(jì)算機(jī)系統(tǒng)104發(fā)送數(shù)據(jù)。除了產(chǎn)生進(jìn)行Nagle狀態(tài)的警告,發(fā)送方計(jì)算機(jī)系統(tǒng)102的Nagle檢測(cè)器116還可以檢測(cè)何時(shí)Nagle算法實(shí)現(xiàn)(并潛在地造成網(wǎng)絡(luò)連接性能的減速)。用戶接口114可以方便從用戶或管理員接收輸入及向用戶或管理員傳送信息。
發(fā)送方計(jì)算機(jī)系統(tǒng)102和接收方計(jì)算機(jī)系統(tǒng)104可以是任何類型計(jì)算機(jī)系統(tǒng)中的一種或多種,任何類型計(jì)算機(jī)系統(tǒng)包括服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、大型計(jì)算機(jī)、筆記本或膝上計(jì)算機(jī)、桌面計(jì)算機(jī)等。發(fā)送方計(jì)算機(jī)系統(tǒng)102可以是和接收方計(jì)算機(jī)系統(tǒng)104相同類型的計(jì)算機(jī)系統(tǒng)或不同類型的計(jì)算機(jī)系統(tǒng)。在一種實(shí)施方式中,接收方計(jì)算機(jī)系統(tǒng)104是具有一個(gè)或多個(gè)處理器或者處理器線程、執(zhí)行與如隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃速存儲(chǔ)器、光盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器等的數(shù)據(jù)存儲(chǔ)設(shè)備耦合的軟件和/或一個(gè)或多個(gè)狀態(tài)機(jī)的IBMeServer或類似服務(wù)器。在這種實(shí)施方式中,接收方計(jì)算機(jī)系統(tǒng)104可以與多個(gè)發(fā)送方計(jì)算機(jī)系統(tǒng)102通信(并與其具有網(wǎng)絡(luò)連接)。在這種實(shí)施方式中,每個(gè)發(fā)送方計(jì)算機(jī)系統(tǒng)102都可以是例如具有一個(gè)或多個(gè)處理器或者處理器線程、執(zhí)行與如RAM、ROM、閃速存儲(chǔ)器、光盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器等的數(shù)據(jù)存儲(chǔ)設(shè)備耦合的軟件和/或一個(gè)或多個(gè)狀態(tài)機(jī)的IBMThinkCenterTM或ThinkPadTM個(gè)人計(jì)算機(jī)系統(tǒng)。發(fā)送方計(jì)算機(jī)系統(tǒng)102和接收方計(jì)算機(jī)系統(tǒng)104可以位于相同位置,如在同一建筑或計(jì)算機(jī)實(shí)驗(yàn)室中,或者可以是遠(yuǎn)程的。盡管術(shù)語(yǔ)“遠(yuǎn)程”是參考Nagle檢測(cè)系統(tǒng)100組件之間的距離使用的,但該術(shù)語(yǔ)是就指示某種類型間隔的意義,而不是就指示系統(tǒng)之間大物理距離的意義使用的。
網(wǎng)絡(luò)106可以是任何類型的數(shù)據(jù)通信通道,如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、LAN、WAN、以太網(wǎng)或無(wú)線網(wǎng)。在一種實(shí)施方式中,網(wǎng)絡(luò)106使用TCP/IP協(xié)議。但是,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,在不背離本發(fā)明范圍與主旨的前提下,發(fā)送方計(jì)算機(jī)系統(tǒng)102和接收方計(jì)算機(jī)系統(tǒng)104之間其它類型的數(shù)據(jù)通信通道也可以使用。
計(jì)算機(jī)網(wǎng)絡(luò)最基本的標(biāo)準(zhǔn)是計(jì)算機(jī)之間允許它們通信的一系列連接。如TCP和IP的協(xié)議是用于在網(wǎng)絡(luò)上通信的預(yù)建立機(jī)制,它幫助定義網(wǎng)絡(luò)的速度、內(nèi)容和可靠性。使用TCP/IP協(xié)議的計(jì)算機(jī)系統(tǒng)可以使用包作為在網(wǎng)絡(luò)106上發(fā)送的基本單元。包一般可以包括數(shù)據(jù)和如校驗(yàn)和、協(xié)議標(biāo)識(shí)符、目的地和源地址的頭信息及狀態(tài)信息。為了發(fā)送,包可以分成多個(gè)段。
TCP/IP將整個(gè)網(wǎng)絡(luò)協(xié)議集分成了多個(gè)任務(wù)(有些是由傳輸模塊110或網(wǎng)絡(luò)模塊112執(zhí)行的),因此每個(gè)應(yīng)用程序108不需要有完整的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn),相反,可以依賴網(wǎng)絡(luò)協(xié)議的其它“層”。TCP/IP通常包括鏈接層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。每層都可以添加自己的頭信息,以方便數(shù)據(jù)的處理。應(yīng)用程序108可以是任何充當(dāng)應(yīng)用層的軟件程序。在一種例子中,應(yīng)用程序108可以方便用戶通過(guò)網(wǎng)絡(luò)106利用從傳輸模塊110的傳輸層發(fā)送和接收數(shù)據(jù)來(lái)發(fā)送或接收數(shù)據(jù)。應(yīng)用程序108可以包括如遠(yuǎn)程登錄、文件傳輸協(xié)議(ftp)、電子郵件程序、在線聊天系統(tǒng)(IRC)和web瀏覽器的通信程序。
可以由傳輸模塊110實(shí)現(xiàn)的傳輸層可以向應(yīng)用層(可以由應(yīng)用程序108實(shí)現(xiàn))提供數(shù)據(jù)流和可靠性保證。傳輸模塊110可以使用TCP協(xié)議來(lái)幫助確保包是以其發(fā)送的順序接收的,而且丟失的包被重新發(fā)送。應(yīng)用程序108可以使用傳輸模塊110來(lái)與網(wǎng)絡(luò)模塊112,從而與網(wǎng)絡(luò)106,交互。
網(wǎng)絡(luò)層可以由網(wǎng)絡(luò)模塊112實(shí)現(xiàn),而且可以確定如何使數(shù)據(jù)到達(dá)其預(yù)定的目的地。在一種實(shí)施方式中,網(wǎng)絡(luò)模塊112可以使用IP協(xié)議來(lái)發(fā)送和接收數(shù)據(jù)包。當(dāng)要從計(jì)算機(jī)系統(tǒng)發(fā)送的數(shù)據(jù)從傳輸模塊110接收到時(shí),網(wǎng)絡(luò)模塊112可以基于IP地址確定將包發(fā)送到哪里及為了使其到達(dá)目的地該如何路由包。當(dāng)網(wǎng)絡(luò)模塊112從鏈接層(鏈接層從網(wǎng)絡(luò)106接收數(shù)據(jù))接收到數(shù)據(jù)時(shí),它可以將包交給傳輸模塊110的傳輸層(在有些情況下如果包有問(wèn)題則丟棄它)。鏈接層可以用于與實(shí)際的網(wǎng)絡(luò)硬件,如以太網(wǎng)或其它網(wǎng)卡通信,而且可以包括硬件設(shè)備驅(qū)動(dòng)器。鏈接層可以從網(wǎng)絡(luò)106接收數(shù)據(jù)、剝?nèi)ト魏捂溄訉宇^信息并將數(shù)據(jù)交給網(wǎng)絡(luò)模塊112的網(wǎng)絡(luò)層。鏈接層還可以從網(wǎng)絡(luò)模塊112接收數(shù)據(jù)、在數(shù)據(jù)上放置鏈接層頭并將其放到網(wǎng)絡(luò)106上。
發(fā)送方計(jì)算機(jī)系統(tǒng)102的用戶接口114可以從發(fā)送方計(jì)算機(jī)系統(tǒng)102的用戶接收輸入,如打開(kāi)或關(guān)掉Nagle檢測(cè)器116的請(qǐng)求或改變Nagle檢測(cè)器116設(shè)置的請(qǐng)求。用戶接口114可以包括如鍵盤、鼠標(biāo)、聲音激活的輸入等的用戶輸入設(shè)備來(lái)接收用戶輸入。用戶接口114還可以通過(guò)任何類型的通信設(shè)備,如顯示器或揚(yáng)聲器,向發(fā)送方計(jì)算機(jī)系統(tǒng)102的用戶傳送如與Nagle算法相關(guān)的統(tǒng)計(jì)數(shù)據(jù)或當(dāng)前設(shè)置的信息。
Nagle檢測(cè)器116可以確定何時(shí)Nagle算法被觸發(fā)(即,何時(shí)進(jìn)行Nagle狀態(tài)存在),作為響應(yīng),產(chǎn)生警告或采取不同的動(dòng)作。由于Nagle算法一般是在傳輸層實(shí)現(xiàn)的,因此Nagle檢測(cè)器116可以與傳輸模塊110交互??蛇x地,傳輸模塊110可以包括Nagle檢測(cè)器116?;趥鬏斈K110的活動(dòng)性,Nagle檢測(cè)器116可以確定當(dāng)發(fā)送方計(jì)算機(jī)系統(tǒng)102和接收方計(jì)算機(jī)系統(tǒng)104之間的網(wǎng)絡(luò)連接上有未完成的未確認(rèn)小段時(shí)是否嘗試發(fā)送小數(shù)據(jù)段。小數(shù)據(jù)段是任何小于協(xié)商的網(wǎng)絡(luò)連接TCP MSS的段。這種嘗試提供了第二個(gè)段的發(fā)送被由傳輸模塊110實(shí)現(xiàn)的Nagle算法延遲的有力指示。
一旦Nagle檢測(cè)器116檢測(cè)到進(jìn)行Nagle狀態(tài),作為響應(yīng),它就產(chǎn)生警告或采取其它動(dòng)作。在一種實(shí)施方式中,Nagle檢測(cè)器116可以產(chǎn)生并向用戶、管理員或性能監(jiān)視和/或分析軟件發(fā)送進(jìn)行Nagle狀態(tài)的警告。在可選實(shí)施方式中,Nagle檢測(cè)器116可以產(chǎn)生并向接收方計(jì)算機(jī)系統(tǒng)104發(fā)送進(jìn)行Nagle狀態(tài)的警告。接收方計(jì)算機(jī)系統(tǒng)104(或管理員或其它用戶)可以使用該警告來(lái)診斷網(wǎng)絡(luò)上的問(wèn)題、識(shí)別具有效率不高的應(yīng)用程序108的發(fā)送方計(jì)算機(jī)系統(tǒng)102或?yàn)榱似渌康?。由于接收方?jì)算機(jī)系統(tǒng)104的操作員能夠很快診斷出由發(fā)送方計(jì)算機(jī)系統(tǒng)102造成的Nagle引起的減速,因此當(dāng)接收方計(jì)算機(jī)系統(tǒng)104與大量具有不熟練用戶的發(fā)送方計(jì)算機(jī)系統(tǒng)102通信時(shí),這尤其有用。在另一實(shí)施方式中,Nagle檢測(cè)器116可以記錄進(jìn)行Nagle狀態(tài)的指示,如通過(guò)記錄在日志中或遞增Nagle監(jiān)視器計(jì)數(shù)器。這使得管理員或其它用戶能夠很快找到進(jìn)行Nagle狀態(tài)多長(zhǎng)時(shí)間發(fā)生一次的記錄,而不需要在事實(shí)之后憑直覺(jué)從日志獲得信息或分析日志或報(bào)告。
在另一實(shí)施方式中,Nagle檢測(cè)器116可以向請(qǐng)求數(shù)據(jù)發(fā)送的應(yīng)用程序108發(fā)送進(jìn)行Nagle狀態(tài)的警告。在這種實(shí)施方式中,警告可以是返回碼或其它進(jìn)行Nagle發(fā)生的可編程指示。應(yīng)用程序108可能需要修改,來(lái)等待警告的接收。在一種實(shí)施方式中,在接收到警告后,應(yīng)用程序108(如通過(guò)用戶接口114)向用戶通知進(jìn)行Nagle狀態(tài)。在其它實(shí)施方式中,應(yīng)用程序108可以(例如通過(guò)用戶請(qǐng)求)被修改成改變其數(shù)據(jù)發(fā)送請(qǐng)求,以減少造成更多進(jìn)行Nagle狀態(tài)的可能性。例如,如果應(yīng)用程序108請(qǐng)求大量小數(shù)據(jù)發(fā)送,則在有些情況下它就可以修改其請(qǐng)求,使它請(qǐng)求較大的發(fā)送,從而減少進(jìn)行Nagle引起的延遲的發(fā)生。在這種實(shí)施方式中,應(yīng)用程序108還可以是自我修復(fù)的應(yīng)用程序,通過(guò)修改其緩沖區(qū)管理策略來(lái)響應(yīng)Nagle警告。在另一實(shí)施方式中,應(yīng)用程序108可以對(duì)發(fā)生進(jìn)行Nagle的特定網(wǎng)絡(luò)連接在應(yīng)用程序級(jí)關(guān)掉Nagle算法。
所公開(kāi)的Nagle檢測(cè)系統(tǒng)100的實(shí)施方式提供了檢測(cè)Nagle狀態(tài)和管理網(wǎng)絡(luò)連接的有效方式。所公開(kāi)實(shí)施方式的方法提供了可以精確確定在發(fā)送小段過(guò)程中何時(shí)Nagle算法造成延遲的確定性算法。通過(guò)檢測(cè)Nagle狀態(tài)并產(chǎn)生警告,Nagle檢測(cè)系統(tǒng)100提供了用于分析網(wǎng)絡(luò)性能、診斷網(wǎng)絡(luò)減速并可能提高網(wǎng)絡(luò)性能的接收方側(cè)的有效機(jī)制。在一種實(shí)施方式中,進(jìn)行Nagle狀態(tài)警告可以警告發(fā)送方計(jì)算機(jī)系統(tǒng)102或接收方計(jì)算機(jī)系統(tǒng)104的用戶或網(wǎng)絡(luò)管理員,使他們能夠采取校正動(dòng)作或診斷問(wèn)題。在另一實(shí)施方式中,為了方便以后分析,Nagle檢測(cè)器116可以在進(jìn)行Nagle狀態(tài)發(fā)生時(shí)記錄它們的歷史。當(dāng)與現(xiàn)有系統(tǒng)比較時(shí),所公開(kāi)實(shí)施方式的Nagle檢測(cè)系統(tǒng)100為用戶或管理員提供了對(duì)網(wǎng)絡(luò)連接上Nagle算法運(yùn)行有價(jià)值的理解,從而方便對(duì)Nagle引起的減速的診斷或校正。
圖2描述了根據(jù)一種實(shí)施方式用于檢測(cè)進(jìn)行Nagle狀態(tài)并產(chǎn)生和發(fā)送該狀態(tài)通知的流程圖的例子。在一種實(shí)施方式中,流程圖200的方法的單元可以由發(fā)送方計(jì)算機(jī)系統(tǒng)102的組件執(zhí)行。在單元202,發(fā)送方計(jì)算機(jī)系統(tǒng)102的組件,如傳輸模塊110,可以接收向接收方計(jì)算機(jī)系統(tǒng)104發(fā)送數(shù)據(jù)的請(qǐng)求。該請(qǐng)求可以從任何源,如通過(guò)用戶接口114從用戶或從應(yīng)用程序108接收。
在單元202,傳輸模塊110可以基于要發(fā)送的數(shù)據(jù)創(chuàng)建一個(gè)或多個(gè)數(shù)據(jù)包和/或段。傳輸模塊110可以在包中插入數(shù)據(jù)和頭信息,如檢驗(yàn)和、協(xié)議標(biāo)識(shí)符、目的地和源地址及狀態(tài)信息。數(shù)據(jù)包和/或段的個(gè)數(shù)與大小是基于多種因素確定的,包括用于網(wǎng)絡(luò)連接的MSS和OS網(wǎng)絡(luò)緩沖區(qū)大小。
一旦包分成了段,傳輸模塊110就可以確定要發(fā)送的特定段何時(shí)小于MSS。如果段不小于MSS,則方法繼續(xù)到單元218,在那里段被交給網(wǎng)絡(luò)模塊112并發(fā)送到接收方計(jì)算機(jī)系統(tǒng)104。如果段小于MSS,則方法繼續(xù)到單元208。在單元208,傳輸模塊110可以確定是否已發(fā)送了一個(gè)還未由接收方計(jì)算機(jī)系統(tǒng)104確認(rèn)的小段。如果沒(méi)有未確認(rèn)的小段被掛起,則方法繼續(xù)到單元218,在那里段被發(fā)送到接收方計(jì)算機(jī)系統(tǒng)104。如果有未確認(rèn)的小段未完成,則方法繼續(xù)到單元210。在傳統(tǒng)Nagle算法下,當(dāng)傳輸模塊110試圖發(fā)送第二個(gè)小段時(shí)未確認(rèn)小段的存在將導(dǎo)致第二個(gè)小段發(fā)送的延遲,直到接收到第一個(gè)小段的確認(rèn)。
在單元210,檢測(cè)到進(jìn)行Nagle狀態(tài),Nagle檢測(cè)器116可以可選地產(chǎn)生進(jìn)行Nagle狀態(tài)的警告,然后可以在單元212發(fā)送該警告。如上所述,警告可以發(fā)送到用戶、管理員、應(yīng)用程序108或性能監(jiān)視和/或分析軟件,它們?nèi)魏我粋€(gè)都可以位于或與發(fā)送方計(jì)算機(jī)系統(tǒng)102、接收方計(jì)算機(jī)系統(tǒng)104或任何其它計(jì)算機(jī)系統(tǒng)關(guān)聯(lián)。進(jìn)行Nagle狀態(tài)的警告可以用來(lái)幫助用戶或管理員分析網(wǎng)絡(luò)性能并診斷網(wǎng)絡(luò)性能的減速。在一種實(shí)施方式中,當(dāng)接收到進(jìn)行Nagle狀態(tài)的通知后,用戶或管理員可以使用創(chuàng)建顯示進(jìn)行Nagle狀態(tài)出現(xiàn)頻率或其它性能信息的實(shí)時(shí)顯示的實(shí)時(shí)性能分析工具。利用這種軟件,用戶或管理員能夠很快診斷出網(wǎng)絡(luò)減速是否是Nagle引起的。警告可以包括任何類型的信息,如關(guān)于接收方計(jì)算機(jī)系統(tǒng)104的信息(如IP地址、端口號(hào)或其它標(biāo)識(shí)符)、發(fā)送數(shù)據(jù)的應(yīng)用程序108的身份或時(shí)間戳。
在可選單元214,傳輸模塊110可以響應(yīng)進(jìn)行Nagle狀態(tài)的警告或其它因素而修改Nagle算法配置。Nagle算法配置可以在例如進(jìn)行Nagle狀態(tài)發(fā)生頻率超過(guò)所定義的閾值時(shí)被修改。Nagle算法配置可以任何合適的方式修改,如通過(guò)對(duì)特定網(wǎng)絡(luò)連接關(guān)掉Nagle算法或使其更難觸發(fā)。例如,如果進(jìn)行Nagle狀態(tài)被過(guò)于頻繁地觸發(fā),則傳輸模塊110可以對(duì)該網(wǎng)絡(luò)連接關(guān)掉Nagle算法(如通過(guò)TCP_NODELAY套接字選項(xiàng)),因此過(guò)多的進(jìn)行Nagle事件將不會(huì)過(guò)度減慢網(wǎng)絡(luò)。在另一例子中,傳輸模塊110可以減小延遲確認(rèn)定時(shí)器,使得Nagle引起的延遲減少。可選地,Naglc檢測(cè)器116或應(yīng)用程序108也可以修改Nagle算法配置。這個(gè)可選單元在其它實(shí)施方式中也是有用的,如圖3和4的流程圖300和400各自的可選單元。
在傳輸模塊110發(fā)送完進(jìn)行Nagle狀態(tài)的警告后,它繼續(xù)到單元216。在單元216,傳輸模塊110接收先前未確認(rèn)小段由接收方計(jì)算機(jī)系統(tǒng)104確認(rèn)的確認(rèn)。傳輸模塊110可以通過(guò)網(wǎng)絡(luò)模塊112從接收方計(jì)算機(jī)系統(tǒng)104接收確認(rèn)。一旦接收到確認(rèn),傳輸模塊110就可以在單元218發(fā)送被延遲的小段。在單元218后,方法或者終止,或者返回單元202繼續(xù)數(shù)據(jù)的發(fā)送。
圖3描述了根據(jù)一種實(shí)施方式用于檢測(cè)進(jìn)行Nagle狀態(tài)并遞增Nagle監(jiān)視器計(jì)數(shù)器的流程圖的例子。在一種實(shí)施方式中,流程圖300的方法的單元可以由發(fā)送方計(jì)算機(jī)系統(tǒng)102的組件執(zhí)行。流程圖300從單元302、304、306和308開(kāi)始,這些單元與流程圖200的方法的類似編號(hào)的單元基本類似。當(dāng)要發(fā)送的段是小段且還有未確認(rèn)的小段時(shí),決定塊308的肯定響應(yīng)指示存在進(jìn)行Nagle狀態(tài)。在單元310,發(fā)送方計(jì)算機(jī)系統(tǒng)102的Nagle檢測(cè)器116或其它組件將響應(yīng)在決定塊306和308識(shí)別出的進(jìn)行Nagle狀態(tài)而遞增Nagle監(jiān)視器計(jì)數(shù)器??蛇x地,傳輸模塊110可以代替Nagle檢測(cè)器116遞增Nagle監(jiān)視器計(jì)數(shù)器。
Nagle監(jiān)視器計(jì)數(shù)器可以是傳輸模塊110、Nagle檢測(cè)器116或位于發(fā)送方計(jì)算機(jī)系統(tǒng)102上的任何其它軟件的一部分。在一種實(shí)施方式中,Nagle監(jiān)視器計(jì)數(shù)器可以實(shí)現(xiàn)為可以由實(shí)用程序訪問(wèn)的操作系統(tǒng)(OS)計(jì)數(shù)器。例如,Linux和Unix操作系統(tǒng)中的netstat命令可以充當(dāng)用于維護(hù)Nagle監(jiān)視器計(jì)數(shù)器的機(jī)制。然后發(fā)送方計(jì)算機(jī)系統(tǒng)102的實(shí)用程序可以訪問(wèn)該信息以便傳送給用戶或管理員。在另一實(shí)施方式中,Nagle監(jiān)視器計(jì)數(shù)器可以位于接收方計(jì)算機(jī)系統(tǒng)104上,使得從發(fā)送方計(jì)算機(jī)系統(tǒng)102向接收方計(jì)算機(jī)系統(tǒng)104發(fā)送遞增Nagle監(jiān)視器計(jì)數(shù)器的請(qǐng)求的指示成為必要。Nagle監(jiān)視器計(jì)數(shù)器使用戶或管理員能夠很快確定Nagle算法多長(zhǎng)時(shí)間延遲一次小段的發(fā)送,因此個(gè)人可以診斷網(wǎng)絡(luò)問(wèn)題或提高網(wǎng)絡(luò)連接的性能。
在遞增Nagle監(jiān)視器計(jì)數(shù)器以后,流程圖300的方法繼續(xù)到單元312。在單元312,傳輸模塊110接收先前未確認(rèn)小段由接收方計(jì)算機(jī)系統(tǒng)104確認(rèn)的確認(rèn)。傳輸模塊110可以通過(guò)網(wǎng)絡(luò)模塊112從接收方計(jì)算機(jī)系統(tǒng)104接收該確認(rèn)。一旦接收到確認(rèn),傳輸模塊110就可以在單元314發(fā)送被延遲的小段。在單元314之后,方法或者終止,或者返回單元302繼續(xù)數(shù)據(jù)的發(fā)送。
圖4描述了根據(jù)一種實(shí)施方式用于檢測(cè)進(jìn)行Nagle狀態(tài)并將進(jìn)行Nagle狀態(tài)的指示記錄在日志中的流程圖的例子。在一種實(shí)施方式中,流程圖400的方法的單元可以由發(fā)送方計(jì)算機(jī)系統(tǒng)102的組件執(zhí)行。流程圖400從單元402、404、406和408開(kāi)始,這些單元與流程圖200的方法的類似編號(hào)的單元基本類似。當(dāng)要發(fā)送的段是小段且還有未確認(rèn)的小段時(shí),決定塊408的肯定響應(yīng)指示存在進(jìn)行Nagle狀態(tài)。在單元410,發(fā)送方計(jì)算機(jī)系統(tǒng)102的Nagle檢測(cè)器116或其它組件將響應(yīng)在決定塊406和408識(shí)別出的進(jìn)行Nagle狀態(tài)而將進(jìn)行Nagle狀態(tài)的指示記錄在日志中。可選地,傳輸模塊110可以代替Nagle檢測(cè)器116將進(jìn)行Nagle狀態(tài)的指示記錄在日志中,如系統(tǒng)事件監(jiān)視器或事件日志。通過(guò)記錄網(wǎng)絡(luò)連接進(jìn)行Nagle狀態(tài)的歷史,管理員或用戶可以很快確定Nagle算法多長(zhǎng)時(shí)間延遲一次小段的發(fā)送,因此個(gè)人可以診斷網(wǎng)絡(luò)問(wèn)題,而不需要細(xì)查長(zhǎng)長(zhǎng)的事件日志,試著分析或憑直覺(jué)獲知網(wǎng)絡(luò)減速的原因。
在將進(jìn)行Nagle狀態(tài)的指示記錄到日志中后,流程圖400的方法繼續(xù)到單元412。在單元412,傳輸模塊110接收先前未確認(rèn)小段由接收方計(jì)算機(jī)系統(tǒng)104確認(rèn)的確認(rèn)。一旦接收到確認(rèn),傳輸模塊110就可以在單元414發(fā)送被延遲的小段,其后方法或者終止,或者返回單元302繼續(xù)數(shù)據(jù)的發(fā)送。
總的來(lái)說(shuō),為實(shí)現(xiàn)本發(fā)明實(shí)施方式而執(zhí)行的例程可以是操作系統(tǒng)或者是特定應(yīng)用程序、組件、程序、模塊、對(duì)象或指令序列的一部分。本發(fā)明的計(jì)算機(jī)程序一般包括由本地計(jì)算機(jī)轉(zhuǎn)換成機(jī)器可讀格式因而成為可執(zhí)行指令的許多指令。而且,程序包括本地駐留在程序中或在存儲(chǔ)器或存儲(chǔ)設(shè)備中找到的變量和數(shù)據(jù)結(jié)構(gòu)。此外,下文描述的各種程序可以基于在本發(fā)明特定實(shí)施方式中實(shí)現(xiàn)其的應(yīng)用識(shí)別。但是,應(yīng)當(dāng)理解,接下來(lái)任何特定的程序術(shù)語(yǔ)都只是為了方便而使用的,因此本發(fā)明不應(yīng)當(dāng)限定為只用于由這些術(shù)語(yǔ)識(shí)別和/或暗示的任何特定應(yīng)用。
本發(fā)明設(shè)想了用于檢測(cè)TCP網(wǎng)絡(luò)連接上出界進(jìn)行Nagle的方法、系統(tǒng)和介質(zhì),這對(duì)受益于本公開(kāi)內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。應(yīng)當(dāng)理解,在具體描述和附圖中示出和描述的本發(fā)明的形式應(yīng)當(dāng)僅僅視為例子。以下權(quán)利要求打算可以更廣地解釋,以包含所公開(kāi)例子實(shí)施方式的所有變體。
權(quán)利要求
1.一種用于檢測(cè)傳輸控制協(xié)議(TCP)網(wǎng)絡(luò)連接上進(jìn)行Nagle狀態(tài)的方法,該方法包括由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段;由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段及先前發(fā)送的小段是否未由接收方計(jì)算機(jī)確認(rèn);及如果先前發(fā)送的小段未由接收方計(jì)算機(jī)確認(rèn)且至少一個(gè)要發(fā)送的段是小段,則由發(fā)送方計(jì)算機(jī)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài)。
2.如權(quán)利要求1所述的方法,還包括在從接收方計(jì)算機(jī)接收到先前發(fā)送的小段的確認(rèn)后,由發(fā)送方計(jì)算機(jī)發(fā)送所述一個(gè)或多個(gè)要發(fā)送的段。
3.如權(quán)利要求1所述的方法,還包括其中網(wǎng)絡(luò)連接具有Nagle算法配置;及響應(yīng)檢測(cè)到的進(jìn)行Nagle狀態(tài),通過(guò)對(duì)于網(wǎng)絡(luò)連接關(guān)掉Nagle算法或?qū)τ诰W(wǎng)絡(luò)連接減小延遲確認(rèn)定時(shí)器中的一個(gè)或多個(gè),由發(fā)送方計(jì)算機(jī)系統(tǒng)修改Nagle算法配置。
4.如權(quán)利要求1所述的方法,其中創(chuàng)建步驟包括由發(fā)送方計(jì)算機(jī)接收來(lái)自應(yīng)用程序的通過(guò)網(wǎng)絡(luò)連接向接收方計(jì)算機(jī)發(fā)送數(shù)據(jù)的請(qǐng)求并響應(yīng)接收到的請(qǐng)求,由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段。
5.如權(quán)利要求1所述的方法,其中由發(fā)送方計(jì)算機(jī)確定一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段包括由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)段中是否有任何一個(gè)小于網(wǎng)絡(luò)連接的最大段尺寸(MSS)。
6.如權(quán)利要求1所述的方法,其中檢測(cè)步驟包括由發(fā)送方計(jì)算機(jī)產(chǎn)生并發(fā)送進(jìn)行Nagle狀態(tài)的通知、由發(fā)送方計(jì)算機(jī)遞增Nagle監(jiān)視器計(jì)數(shù)器、由發(fā)送方計(jì)算機(jī)顯示進(jìn)行Nagle狀態(tài)存在的指示或由發(fā)送方計(jì)算機(jī)將進(jìn)行Nagle狀態(tài)的指示記錄到日志中的一個(gè)或多個(gè)。
7.一種包含指令的機(jī)器可訪問(wèn)介質(zhì),該指令當(dāng)在數(shù)據(jù)處理系統(tǒng)中執(zhí)行時(shí),有效地使所述數(shù)據(jù)處理系統(tǒng)執(zhí)行包括以下的操作由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段;由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段及先前發(fā)送的小段是否未由接收方計(jì)算機(jī)確認(rèn);及如果先前發(fā)送的小段未由接收方計(jì)算機(jī)確認(rèn)且至少一個(gè)要發(fā)送的段是小段,則由發(fā)送方計(jì)算機(jī)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài)。
8.如權(quán)利要求7所述的機(jī)器可訪問(wèn)介質(zhì),還包括在從接收方計(jì)算機(jī)接收到先前發(fā)送的小段的確認(rèn)后,由發(fā)送方計(jì)算機(jī)發(fā)送一個(gè)或多個(gè)要發(fā)送的段。
9.如權(quán)利要求7所述的機(jī)器可訪問(wèn)介質(zhì),還包括其中網(wǎng)絡(luò)連接具有Nagle算法配置;及響應(yīng)檢測(cè)到的進(jìn)行Nagle狀態(tài),通過(guò)對(duì)于網(wǎng)絡(luò)連接關(guān)掉Nagle算法或?qū)τ诰W(wǎng)絡(luò)連接減小延遲確認(rèn)定時(shí)器中的一個(gè)或多個(gè),由發(fā)送方計(jì)算機(jī)系統(tǒng)修改Nagle算法配置。
10.如權(quán)利要求7所述的機(jī)器可訪問(wèn)介質(zhì),其中創(chuàng)建步驟包括由發(fā)送方計(jì)算機(jī)接收來(lái)自應(yīng)用程序的通過(guò)網(wǎng)絡(luò)連接向接收方計(jì)算機(jī)發(fā)送數(shù)據(jù)的請(qǐng)求并響應(yīng)接收到的請(qǐng)求,由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段。
11.如權(quán)利要求7所述的機(jī)器可訪問(wèn)介質(zhì),其中由發(fā)送方計(jì)算機(jī)確定一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段包括由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)段中是否有任何一個(gè)小于網(wǎng)絡(luò)連接的最大段尺寸(MSS)。
12.如權(quán)利要求7所述的機(jī)器可訪問(wèn)介質(zhì),其中檢測(cè)步驟包括由發(fā)送方計(jì)算機(jī)產(chǎn)生并發(fā)送進(jìn)行Nagle狀態(tài)的通知、由發(fā)送方計(jì)算機(jī)遞增Nagle監(jiān)視器計(jì)數(shù)器、由發(fā)送方計(jì)算機(jī)顯示進(jìn)行Nagle狀態(tài)存在的指示或由發(fā)送方計(jì)算機(jī)將進(jìn)行Nagle狀態(tài)的指示記錄到日志中的一個(gè)或多個(gè)。
13.一種數(shù)據(jù)處理系統(tǒng),用于檢測(cè)發(fā)送方計(jì)算機(jī)和接收方計(jì)算機(jī)之間網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài),該系統(tǒng)包括網(wǎng)絡(luò)模塊,該網(wǎng)絡(luò)模塊適于方便通過(guò)網(wǎng)絡(luò)連接向接收方計(jì)算機(jī)發(fā)送和接收數(shù)據(jù);傳輸模塊,與網(wǎng)絡(luò)模塊通信,該傳輸模塊適于從應(yīng)用程序接收發(fā)送數(shù)據(jù)的請(qǐng)求,該傳輸模塊還適于根據(jù)發(fā)送數(shù)據(jù)的請(qǐng)求創(chuàng)建一個(gè)或多個(gè)數(shù)據(jù)段并將這一個(gè)或多個(gè)數(shù)據(jù)段傳送到網(wǎng)絡(luò)模塊進(jìn)行發(fā)送;及Nagle檢測(cè)器,與傳輸模塊通信,如果在網(wǎng)絡(luò)連接上還有未確認(rèn)的小段未完成的同時(shí)傳輸模塊試圖通過(guò)網(wǎng)絡(luò)連接發(fā)送小段,則該Nagle檢測(cè)器適于產(chǎn)生進(jìn)行Nagle狀態(tài)存在的警告。
14.如權(quán)利要求13所述的系統(tǒng),還包括用戶接口,該用戶接口與Nagle檢測(cè)器通信,該用戶接口適于顯示進(jìn)行Nagle狀態(tài)存在的指示。
15.如權(quán)利要求13所述的系統(tǒng),還包括應(yīng)用程序,該應(yīng)用程序與傳輸模塊通信,該應(yīng)用程序適于請(qǐng)求向接收方計(jì)算機(jī)發(fā)送數(shù)據(jù)。
16.如權(quán)利要求13所述的系統(tǒng),還包括Nagle監(jiān)視器計(jì)數(shù)器,用于跟蹤一個(gè)或多個(gè)進(jìn)行Nagle狀態(tài)的發(fā)生,其中Nagle遞增檢測(cè)器還適于遞增Nagle監(jiān)視器計(jì)數(shù)器。
17.如權(quán)利要求13所述的系統(tǒng),還包括日志,該日志用于記錄進(jìn)行Nagle狀態(tài)的指示,其中Nagle檢測(cè)器還適于將進(jìn)行Nagle狀態(tài)的指示記錄在日志中。
18.如權(quán)利要求13所述的系統(tǒng),其中Nagle檢測(cè)器還適于產(chǎn)生并向應(yīng)用程序、接收方計(jì)算機(jī)、用戶或管理員中的至少一個(gè)發(fā)送進(jìn)行Nagle狀態(tài)的通知。
19.如權(quán)利要求13所述的系統(tǒng),其中警告包括IP地址、端口號(hào)或時(shí)間戳中的至少一個(gè)。
20.如權(quán)利要求13所述的系統(tǒng),其中網(wǎng)絡(luò)連接是TCP網(wǎng)絡(luò)連接。
全文摘要
公開(kāi)了用于檢測(cè)TCP網(wǎng)絡(luò)連接上出界進(jìn)行Nagle的系統(tǒng)、方法和介質(zhì)。實(shí)施方式可以包括由發(fā)送方計(jì)算機(jī)創(chuàng)建一個(gè)或多個(gè)要發(fā)送到接收方計(jì)算機(jī)的段并由發(fā)送方計(jì)算機(jī)確定這一個(gè)或多個(gè)要發(fā)送的段中是否有任何一個(gè)是小段并確定先前發(fā)送的小段是否未由接收方計(jì)算機(jī)確認(rèn)。如果先前發(fā)送的小段未由接收方計(jì)算機(jī)確認(rèn)且至少一個(gè)要發(fā)送的段是小段,則實(shí)施方式還可以包括由發(fā)送方計(jì)算機(jī)檢測(cè)網(wǎng)絡(luò)連接上的進(jìn)行Nagle狀態(tài)。進(jìn)一步的實(shí)施方式還可以包括響應(yīng)檢測(cè)到的進(jìn)行Nagle狀態(tài),通過(guò)對(duì)于網(wǎng)絡(luò)連接關(guān)掉Nagle算法或減小延遲確認(rèn)定時(shí)器,來(lái)修改網(wǎng)絡(luò)連接的Nagle算法配置。
文檔編號(hào)H04L29/06GK1812413SQ200610002470
公開(kāi)日2006年8月2日 申請(qǐng)日期2006年1月26日 優(yōu)先權(quán)日2005年1月27日
發(fā)明者拉齊夫·阿羅拉, 杰西·M·戈登 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
大竹县| 武强县| 正宁县| 凤台县| 金阳县| 桑日县| 阿拉善左旗| 涿州市| 广东省| 防城港市| 安仁县| 宽甸| 交口县| 察雅县| 湘乡市| 大厂| 临海市| 铁岭市| 定安县| 蒙阴县| 淮滨县| 云南省| 壤塘县| 广饶县| 玉屏| 河北区| 高陵县| 岫岩| 兴化市| 呈贡县| 大田县| 论坛| 泾阳县| 平乡县| 桂阳县| 德保县| 中牟县| 万安县| 宁波市| 新龙县| 清徐县|