專利名稱:在用戶模式中分派網(wǎng)絡(luò)連接的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于向網(wǎng)絡(luò)監(jiān)聽器提供在用戶模式中將網(wǎng)絡(luò)連接的控制移交給所請(qǐng)求的進(jìn)程的能力的系統(tǒng)、方法以及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
隨著越來越多的人和機(jī)構(gòu)無論在工作、家庭或是娛樂環(huán)境中都實(shí)現(xiàn)計(jì)算機(jī)化的系統(tǒng),對(duì)共享計(jì)算資源的需求也在增加。一種類型的共享環(huán)境即分布式文件系統(tǒng),其通常為基于客戶機(jī)/服務(wù)器的應(yīng)用程序,它允許客戶機(jī)通過網(wǎng)絡(luò)訪問并處理儲(chǔ)存在中央服務(wù)器中的數(shù)據(jù),如同該服務(wù)器就是客戶機(jī)自己的計(jì)算機(jī)一樣。例如,公司的幾個(gè)員工可被允許從多個(gè)個(gè)人計(jì)算機(jī)電子地訪問位于遠(yuǎn)程網(wǎng)絡(luò)驅(qū)動(dòng)器中的某些文件。又比如說,位于一個(gè)位置的計(jì)算系統(tǒng)可能需要使用位于另一個(gè)位置的另一臺(tái)計(jì)算機(jī)的處理資源,以協(xié)助完成特定的作業(yè)。
當(dāng)然,恰恰因?yàn)橥ㄟ^網(wǎng)絡(luò)共享各種文件和進(jìn)程可提供許多明顯的優(yōu)點(diǎn),網(wǎng)絡(luò)化的問題和不足也是公知的。這樣的問題范圍從良性的體系結(jié)構(gòu)問題到惡意預(yù)謀的問題。良性體系結(jié)構(gòu)問題的一個(gè)示例是網(wǎng)絡(luò)計(jì)算機(jī)只有有限數(shù)量的端口的這一事實(shí),這進(jìn)而通常只允許向客戶機(jī)組件提供對(duì)有限數(shù)量的網(wǎng)絡(luò)組件的訪問,如網(wǎng)絡(luò)進(jìn)程、模塊等等。在大量客戶機(jī)組件需要通過同一端口來訪問幾個(gè)網(wǎng)絡(luò)組件時(shí),這就可能造成問題。
另一方面,惡意網(wǎng)絡(luò)問題的公知示例包括計(jì)算機(jī)病毒以及網(wǎng)絡(luò)入侵者。病毒是通常電子地從一個(gè)不知情的接收者傳播到下一接收者的計(jì)算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時(shí),它會(huì)變更或擦除重要的系統(tǒng)文件、盜取個(gè)人信息等等。類似地,網(wǎng)絡(luò)入侵者可以是對(duì)外部連接開放的網(wǎng)絡(luò)的問題,諸如具有到因特網(wǎng)的連接的關(guān)閉網(wǎng)絡(luò)。例如,惡意的人可能找到以非預(yù)期的方式獲取對(duì)公司網(wǎng)絡(luò)服務(wù)器的電子訪問的方法,并獲取對(duì)網(wǎng)絡(luò)內(nèi)發(fā)現(xiàn)的有價(jià)值的公司或者雇員文檔的訪問。
因此,對(duì)網(wǎng)絡(luò)上的計(jì)算機(jī)而言,計(jì)算機(jī)化系統(tǒng)的操作系統(tǒng)安全性正變得越來越重要。當(dāng)前,有各種各樣的方法和處理供計(jì)算機(jī)化系統(tǒng)使用,以加強(qiáng)安全性。這些方法和處理通??煞譃閹追N進(jìn)程或組件運(yùn)行的許可類型,如在用戶模式(較多限制,較少控制)控制級(jí)別運(yùn)行,或者在核心模式(較少限制,較多控制)控制級(jí)別運(yùn)行。一般而言,例如,若客戶機(jī)組件和網(wǎng)絡(luò)計(jì)算機(jī)處所請(qǐng)求的網(wǎng)絡(luò)進(jìn)程正在用戶模式中傳遞信息,則客戶機(jī)組件僅能對(duì)網(wǎng)絡(luò)進(jìn)程進(jìn)行有限的訪問(如果有的話),而且它僅能對(duì)網(wǎng)絡(luò)計(jì)算機(jī)的系統(tǒng)存儲(chǔ)器或服務(wù)進(jìn)行有限的訪問(如果有的話)。
然而,如果客戶機(jī)組件通過在網(wǎng)絡(luò)計(jì)算機(jī)上運(yùn)行的核心模式驅(qū)動(dòng)程序連接到網(wǎng)絡(luò)計(jì)算機(jī)組件,則客戶機(jī)就具有更多的靈活性。具體地,在某些情況下,客戶機(jī)進(jìn)程可不受限地訪問系統(tǒng)存儲(chǔ)器,和/或網(wǎng)絡(luò)計(jì)算機(jī)中的其它服務(wù)、進(jìn)程或組件。具體地,在網(wǎng)絡(luò)上監(jiān)聽的核心模式驅(qū)動(dòng)程序幾乎或者完全不可能控制誰將對(duì)其發(fā)送消息。若核心模式驅(qū)動(dòng)程序被消息發(fā)送者“愚弄”,則幾乎或完全不存在對(duì)消息發(fā)送者可造成的破壞的限制。相反,在用戶模式中運(yùn)行的進(jìn)程可能受到操作系統(tǒng)安全性的限制。
由此,運(yùn)行組件的用戶模式和核心模式級(jí)別可具有多種優(yōu)點(diǎn)和不足,因此這兩種級(jí)別通常在特定類型的情況下實(shí)現(xiàn)。例如,諸如在網(wǎng)絡(luò)棧上實(shí)現(xiàn)TCP協(xié)議上的HTTP請(qǐng)求的組件等用戶模式監(jiān)聽器通過經(jīng)由任意數(shù)量的通信機(jī)制,諸如共享存儲(chǔ)器空間、命名管道、遠(yuǎn)程過程協(xié)議(“RPC”)、分布式組件對(duì)象模型(“DCOM”)等等,將客戶機(jī)進(jìn)程數(shù)據(jù)中繼到請(qǐng)求的網(wǎng)絡(luò)進(jìn)程來操作。請(qǐng)求的進(jìn)程然后通過相關(guān)的通信機(jī)制采取所中繼的客戶機(jī)進(jìn)程數(shù)據(jù),又同樣僅通過相關(guān)的通信機(jī)制對(duì)客戶機(jī)進(jìn)程做出響應(yīng)。這樣,客戶機(jī)進(jìn)程和請(qǐng)求的網(wǎng)絡(luò)計(jì)算機(jī)進(jìn)程總是不直接通信。
具體地,由于在用戶模式中工作的監(jiān)聽器僅能對(duì)系統(tǒng)存儲(chǔ)器進(jìn)行有限的訪問,且也只能對(duì)其它系統(tǒng)進(jìn)程或組件進(jìn)行有限的訪問,所以就顯著地阻止了惡意客戶機(jī)進(jìn)程對(duì)網(wǎng)絡(luò)計(jì)算機(jī)進(jìn)行破壞或訪問敏感信息。另一方面,由于用戶模式監(jiān)聽器擔(dān)當(dāng)使用共享存儲(chǔ)器、命名管道等中間中繼機(jī)制,因此用戶模式監(jiān)聽器就可成為網(wǎng)絡(luò)通信速度的重大瓶頸,尤其是對(duì)于大量外部客戶機(jī)連接或大量數(shù)據(jù)傳輸?shù)那闆r。
反之,諸如在核心模式中工作的網(wǎng)絡(luò)驅(qū)動(dòng)程序等核心模式監(jiān)聽器將來自客戶機(jī)進(jìn)程的連接數(shù)據(jù)直接寫到系統(tǒng)存儲(chǔ)器,且在適當(dāng)時(shí)甚至可將整個(gè)連接的控制分派給請(qǐng)求的網(wǎng)絡(luò)進(jìn)程。在任一情況下,核心模式監(jiān)聽器允許網(wǎng)絡(luò)進(jìn)程使用比使用共享存儲(chǔ)器空間、命名管道等快得多的機(jī)制與客戶機(jī)進(jìn)程進(jìn)行通信,就像用戶模式監(jiān)聽器一樣。令人遺憾的是,由于核心模式監(jiān)聽器能夠相當(dāng)自由地訪問網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)和存儲(chǔ)器,所以惡意的人或程序就可能使網(wǎng)絡(luò)計(jì)算機(jī)存儲(chǔ)器過限,并能夠獲取對(duì)網(wǎng)絡(luò)計(jì)算機(jī)上的敏感系統(tǒng)文件或者其它網(wǎng)絡(luò)進(jìn)程的訪問。因此,核心模式監(jiān)聽器在其中與其相關(guān)聯(lián)的速度可能會(huì)有益的多數(shù)情況下一般是被避免的。
因此,本領(lǐng)域的優(yōu)點(diǎn)可通過允許用戶模式監(jiān)聽器促進(jìn)客戶機(jī)進(jìn)程和請(qǐng)求的網(wǎng)絡(luò)進(jìn)程之間的通信,而并不導(dǎo)致與其相關(guān)聯(lián)的典型的速度或瓶頸問題的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn)。此外,可以用在適當(dāng)時(shí)促進(jìn)客戶機(jī)進(jìn)程和請(qǐng)求的網(wǎng)絡(luò)計(jì)算機(jī)之間的通信,同時(shí)不暴露網(wǎng)絡(luò)計(jì)算機(jī)中的系統(tǒng)存儲(chǔ)器或者其它敏感系統(tǒng)進(jìn)程的系統(tǒng)來實(shí)現(xiàn)一個(gè)優(yōu)點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明用允許用戶模式監(jiān)聽器以安全的方式有效地將客戶機(jī)連接的控制分派給網(wǎng)絡(luò)計(jì)算機(jī)組件的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品解決了本領(lǐng)域中一個(gè)或幾個(gè)上述問題。具體地,依照本發(fā)明,用戶模式監(jiān)聽器可將客戶機(jī)連接的控制分派給請(qǐng)求的網(wǎng)絡(luò)組件,而并不暴露網(wǎng)絡(luò)計(jì)算機(jī)中的系統(tǒng)存儲(chǔ)器和/或系統(tǒng)服務(wù)。
例如,在本發(fā)明的至少一個(gè)實(shí)現(xiàn)中,監(jiān)聽器(如在網(wǎng)絡(luò)計(jì)算機(jī)上以用戶模式操作的網(wǎng)絡(luò)連接進(jìn)程)接收來自客戶機(jī)組件的請(qǐng)求,用于對(duì)網(wǎng)絡(luò)組件進(jìn)行通信訪問。如果適當(dāng),用戶模式監(jiān)聽器就將對(duì)于套接字復(fù)制的請(qǐng)求傳遞給第一應(yīng)用程序服務(wù),如應(yīng)用程序接口(“API”)或者其它組件、模塊,該第一應(yīng)用程序服務(wù)返回包括用戶模式上下文信息的第一組數(shù)據(jù)。然后,用戶模式監(jiān)聽器使用常規(guī)的中繼機(jī)制(如共享存儲(chǔ)器、命名管道等)將由第一應(yīng)用程序服務(wù)所發(fā)送的第一組數(shù)據(jù)傳遞給請(qǐng)求的網(wǎng)絡(luò)組件。
在適當(dāng)時(shí),請(qǐng)求的網(wǎng)絡(luò)組件隨后調(diào)用應(yīng)用程序服務(wù),如第一或第二應(yīng)用程序服務(wù),以復(fù)制由用戶模式監(jiān)聽器所控制的套接字,并將第一組數(shù)據(jù)作為參數(shù)傳遞。接著,所調(diào)用的應(yīng)用程序服務(wù)向網(wǎng)絡(luò)組件提供具有對(duì)指定套接字的控制的參數(shù)以及第一組數(shù)據(jù)的參數(shù)的響應(yīng)。有了對(duì)指定套接字的控制,請(qǐng)求的網(wǎng)絡(luò)組件就能夠通過用于客戶機(jī)連接的剩余部分的套接字來與客戶機(jī)計(jì)算機(jī)組件進(jìn)行直接通信。這樣,依照本發(fā)明的用戶模式監(jiān)聽器就可將客戶機(jī)連接控制分派給網(wǎng)絡(luò)計(jì)算機(jī)組件中,而不暴露系統(tǒng)存儲(chǔ)器或其它敏感系統(tǒng)服務(wù)、組件或進(jìn)程。這就允許客戶機(jī)組件和網(wǎng)絡(luò)計(jì)算機(jī)組件以與在核心模式中操作時(shí)的速度相似的速度進(jìn)行通信,并其安全性通常與用戶模式相關(guān)聯(lián)。
本發(fā)明的示例性實(shí)現(xiàn)的其它特征和優(yōu)點(diǎn)將在下面的描述中闡述,這些特征和優(yōu)點(diǎn)部分將從該描述中顯而易見,或者也可通過對(duì)這樣的示例性實(shí)現(xiàn)的實(shí)踐來領(lǐng)會(huì)??赏ㄟ^在所附權(quán)利要求書中特別指出的裝置和組合來實(shí)現(xiàn)和獲取這些實(shí)現(xiàn)的特征和優(yōu)點(diǎn)。通過下面的描述以及所附權(quán)利要求書,這些和其它特征會(huì)變得更加顯而易見,或者也可通過對(duì)下述這樣的示例性實(shí)現(xiàn)的實(shí)踐來了解。
為描述可獲得本發(fā)明的上述和其它優(yōu)點(diǎn)和特征的方式,將通過參考附圖中示出的其具體實(shí)施例來呈現(xiàn)上面簡述的本發(fā)明的更具體描述。要認(rèn)識(shí)到,這些附圖描述的僅是本發(fā)明的典型實(shí)施例,因此并不能認(rèn)為這是對(duì)本發(fā)明范圍的限制。通過使用附圖,本發(fā)明將用附加的特殊性和細(xì)節(jié)來描述和解釋,附圖中圖1A示出依照本發(fā)明的的一個(gè)實(shí)現(xiàn),在用戶模式中操作的監(jiān)聽器開始轉(zhuǎn)交客戶機(jī)組件和網(wǎng)絡(luò)組件之間連接的示意性綜述;圖1B示出圖1A的示意性綜述,其中網(wǎng)絡(luò)組件具有連接控制;圖2示出依照本發(fā)明的一個(gè)實(shí)現(xiàn),監(jiān)聽器用于終止連接、以及網(wǎng)絡(luò)組件用于從監(jiān)聽器接收連接控制的動(dòng)作的流程圖;圖3示出用于實(shí)現(xiàn)依照本發(fā)明的系統(tǒng)和方法的合適的計(jì)算環(huán)境的示意圖。
具體實(shí)施例方式
本發(fā)明涉及允許用戶模式監(jiān)聽器以安全方式有效地將客戶機(jī)連接的控制分派到網(wǎng)絡(luò)計(jì)算機(jī)組件的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。具體地,依照本發(fā)明,用戶模式監(jiān)聽器可將客戶機(jī)連接的控制分派到請(qǐng)求網(wǎng)絡(luò)組件,而并不暴露網(wǎng)絡(luò)計(jì)算機(jī)的系統(tǒng)存儲(chǔ)器和/或系統(tǒng)服務(wù)。
由此,通過本說明書和權(quán)利要求書可以理解,本發(fā)明的一個(gè)方面包含將與客戶機(jī)組件(如進(jìn)程、接口或模塊等)的連接控制分派給請(qǐng)求的網(wǎng)絡(luò)組件(如進(jìn)程、接口或模塊等)。此外,盡管可以理解,此處闡述的連接可位于客戶機(jī)計(jì)算機(jī)系統(tǒng)的客戶機(jī)組件和不同網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)組件之間,但是此處所述的本發(fā)明的原理也可用于同一本地計(jì)算機(jī)的組件間連接的環(huán)境中。即,存在這樣的情況,即同一計(jì)算機(jī)系統(tǒng)的客戶機(jī)和網(wǎng)絡(luò)組件通過中間進(jìn)程,諸如監(jiān)聽器彼此交換數(shù)據(jù)。
在任何情況下,當(dāng)客戶機(jī)組件建立連接時(shí),與網(wǎng)絡(luò)棧接口的用戶模式監(jiān)聽器可實(shí)現(xiàn)分派邏輯,以確定是否要將客戶機(jī)連接的控制分派到網(wǎng)絡(luò)組件。盡管并非所需,但本發(fā)明的另一方面可包括請(qǐng)求的網(wǎng)絡(luò)組件實(shí)現(xiàn)類似的演算以確定是否應(yīng)從用戶模式監(jiān)聽器接受客戶機(jī)連接的控制。當(dāng)網(wǎng)絡(luò)組件控制在每種環(huán)境下都適當(dāng)時(shí),網(wǎng)絡(luò)組件就可接受連接控制,并通過網(wǎng)絡(luò)棧直接與客戶機(jī)組件進(jìn)行對(duì)話。因此,客戶機(jī)組件和網(wǎng)絡(luò)組件能以在核心模式中通信時(shí)的速度類似的速度進(jìn)行通信,而不會(huì)有其一個(gè)或幾個(gè)缺陷的風(fēng)險(xiǎn)。
例如,圖1A示出用于在兩臺(tái)計(jì)算機(jī)之間實(shí)現(xiàn)本發(fā)明的示意圖,其中用戶模式監(jiān)聽器100控制來自客戶機(jī)計(jì)算機(jī)140的客戶機(jī)組件105和網(wǎng)絡(luò)計(jì)算機(jī)150中的網(wǎng)絡(luò)組件110之間的連接。在一個(gè)實(shí)現(xiàn)中,用戶模式監(jiān)聽器100是在用戶模式中操作的網(wǎng)絡(luò)連接進(jìn)程,盡管用戶模式監(jiān)聽器100一般被認(rèn)為是與網(wǎng)絡(luò)棧115連接的接口、組件或模塊,而且其最初控制客戶機(jī)組件和網(wǎng)絡(luò)組件之間的用戶模式網(wǎng)絡(luò)連接。這樣,圖1A示出客戶機(jī)組件105已經(jīng)通過網(wǎng)絡(luò)棧115與網(wǎng)絡(luò)計(jì)算機(jī)150建立了連接。此外,圖1A示出監(jiān)聽器100通過套接字130控制客戶機(jī)組件105和網(wǎng)絡(luò)組件110之間的該連接。
最初,當(dāng)客戶機(jī)組件105和監(jiān)聽器100建立連接時(shí),監(jiān)聽器100讀取由客戶機(jī)組件105所發(fā)送的一個(gè)或多個(gè)初始數(shù)據(jù)包中的至少一部分。在一個(gè)實(shí)現(xiàn)中,用戶模式監(jiān)聽器100在適當(dāng)時(shí)如此操作,以標(biāo)識(shí)如請(qǐng)求的網(wǎng)絡(luò)組件(如110)等因素,和/或有關(guān)請(qǐng)求的連接長度的某些指示。監(jiān)聽器100也可在從客戶機(jī)組件105讀取初始一個(gè)或多個(gè)數(shù)據(jù)包的時(shí)候?qū)崿F(xiàn)“分派邏輯”,以基于一個(gè)或多個(gè)客戶機(jī)消息屬性或系統(tǒng)屬性來確定是否可通過傳遞連接控制而提高效率。
例如,客戶機(jī)消息屬性可包括由客戶機(jī)組件105發(fā)送的所有或絕大多數(shù)數(shù)據(jù)包是否打算供同一請(qǐng)求的網(wǎng)絡(luò)組件110使用,或者要發(fā)送的連接會(huì)話的長度或消息大小是否使得控制分派適當(dāng),等等。相反,系統(tǒng)屬性可包括負(fù)載平衡或安全策略問題的考慮,它可通過將連接分派到請(qǐng)求的網(wǎng)絡(luò)組件來更好地實(shí)現(xiàn)。因此,分派邏輯可評(píng)估多個(gè)客戶機(jī)或其它系統(tǒng)因素,以向監(jiān)聽器100表明轉(zhuǎn)交連接控制是節(jié)省成本的。
若分派邏輯向監(jiān)聽器100表明從資源角度而言,傳遞已建立的客戶機(jī)連接控制是節(jié)省成本的,則監(jiān)聽器100可啟動(dòng)所建立的連接控制的傳遞。為此,監(jiān)聽器100將功能調(diào)用發(fā)送到應(yīng)用程序服務(wù)120處,諸如應(yīng)用程序接口(“API”),或者管理套接字控制的其它組件或模塊。在一個(gè)實(shí)現(xiàn)中,監(jiān)聽器100也傳遞客戶機(jī)組件105所請(qǐng)求的網(wǎng)絡(luò)組件110以及對(duì)套接字復(fù)制的請(qǐng)求,作為功能調(diào)用參數(shù)。然后,應(yīng)用程序服務(wù)120用第一組數(shù)據(jù)(即“數(shù)據(jù)1”)做出響應(yīng),該數(shù)據(jù)是對(duì)客戶機(jī)組件105和網(wǎng)絡(luò)組件110之間的所建立的連接專用的。在一個(gè)實(shí)現(xiàn)中,該第一組數(shù)據(jù)包括這樣的數(shù)據(jù),比如有關(guān)所建立的連接的網(wǎng)絡(luò)棧115的一個(gè)或多個(gè)狀態(tài)變量,以及有關(guān)該連接的用戶模式上下文信息,以及在建立連接時(shí)由客戶機(jī)組件105所發(fā)送的任何數(shù)據(jù)。
在接收到第一組數(shù)據(jù)(即“數(shù)據(jù)1”)之后,圖1A示出監(jiān)聽器100使用用于用戶模式連接的通信機(jī)制將第一組數(shù)據(jù)和上下文信息發(fā)送到請(qǐng)求的網(wǎng)絡(luò)組件110。例如,現(xiàn)有的連接路徑可涉及對(duì)共享存儲(chǔ)器空間、命名管道、RPC、DCOM等的使用。對(duì)于共享存儲(chǔ)器空間,這通常涉及監(jiān)聽器100將第一組數(shù)據(jù)和上下文信息置于先前分配的共享存儲(chǔ)器中。在這樣的境況下,監(jiān)聽器100也可將單獨(dú)的信號(hào)(未示出)發(fā)送到網(wǎng)絡(luò)組件110,該信號(hào)表明在網(wǎng)絡(luò)組件110的共享存儲(chǔ)器中存在第一組數(shù)據(jù)要被提取。
一旦網(wǎng)絡(luò)組件110接收到第一組數(shù)據(jù)和上下文信息,網(wǎng)絡(luò)組件110就可啟動(dòng)接受連接控制的步驟。在一個(gè)實(shí)現(xiàn)中,這涉及網(wǎng)絡(luò)組件110也執(zhí)行類似于監(jiān)聽器100所使用的“分派邏輯”的附加評(píng)估。例如,網(wǎng)絡(luò)組件110可試圖標(biāo)識(shí)客戶機(jī)組件105是否是可信客戶機(jī),或者客戶機(jī)組件105要傳遞的數(shù)據(jù)類型是否適于被直接傳遞到網(wǎng)絡(luò)組件110中。在任何情況下,若網(wǎng)絡(luò)組件110決定接受連接控制,則網(wǎng)絡(luò)組件110啟動(dòng)復(fù)制套接字130的步驟。為此,網(wǎng)絡(luò)組件100將功能調(diào)用傳遞到應(yīng)用程序服務(wù),附帶第一數(shù)據(jù)集參數(shù),以及復(fù)制由監(jiān)聽器100控制的套接字130的請(qǐng)求。
如圖1A中所示,網(wǎng)絡(luò)組件通過調(diào)用應(yīng)用程序服務(wù)125來請(qǐng)求復(fù)制套接字130,該應(yīng)用程序服務(wù)125是與應(yīng)用程序服務(wù)120不同的第二應(yīng)用程序服務(wù)、組件或模塊。然而,可以認(rèn)識(shí)到,使用相同的應(yīng)用程序服務(wù)可適用于某些情形,但是網(wǎng)絡(luò)組件110和監(jiān)聽器100使用兩種不同的應(yīng)用程序服務(wù)可適用于其它情形。在任何情況下,圖1示出應(yīng)用程序服務(wù)125評(píng)估功能調(diào)用以及從網(wǎng)絡(luò)組件110中傳遞出的所包括的數(shù)據(jù)。接著,應(yīng)用程序服務(wù)125將數(shù)據(jù)返回到網(wǎng)絡(luò)組件110,該應(yīng)用程序服務(wù)125允許網(wǎng)絡(luò)組件110控制套接字130。例如,應(yīng)用程序服務(wù)可返回套接字130的名稱或地址,在分派連接前從客戶機(jī)組件接收到數(shù)據(jù)的大初始包等、以及應(yīng)當(dāng)被中繼回到監(jiān)聽器100和網(wǎng)絡(luò)棧115的任何其它網(wǎng)絡(luò)棧狀態(tài)變量。應(yīng)用程序服務(wù)125也可在適當(dāng)時(shí)返回用戶模式上下文信息。
接下來,網(wǎng)絡(luò)組件110使用從應(yīng)用程序服務(wù)125返回的數(shù)據(jù),以操控套接字130,并從而控制建立的連接。在至少一種實(shí)現(xiàn)中,用于操控連接的該步驟可涉及由網(wǎng)絡(luò)組件110和監(jiān)聽器100所執(zhí)行的附加動(dòng)作。例如,在一種實(shí)現(xiàn)中,網(wǎng)絡(luò)組件110將指示符發(fā)送到監(jiān)聽器100處,該指示符指示網(wǎng)絡(luò)組件110已經(jīng)操控了套接字130。響應(yīng)于該指示符,監(jiān)聽器100將另一個(gè)指示符發(fā)送到例如網(wǎng)絡(luò)棧的傳輸層107,該指示符表明監(jiān)聽器100不能再接收任何客戶機(jī)組件105數(shù)據(jù)。在某些情形下,監(jiān)聽器100也可將信號(hào)發(fā)送到網(wǎng)絡(luò)棧115,該信號(hào)告知相關(guān)層即刻緩沖傳入的客戶機(jī)組件105數(shù)據(jù),直到網(wǎng)絡(luò)組件110以某種方式建立套接字130的控制為止。
一旦所有的相關(guān)組件理解所請(qǐng)求的網(wǎng)絡(luò)組件110已經(jīng)接受了所建立的套接字130的控制,網(wǎng)絡(luò)組件110就被認(rèn)為已經(jīng)接受了所的連接的控制。具體地,圖1B示出圖1A的示意圖,其中網(wǎng)絡(luò)組件110已經(jīng)獲取了對(duì)套接字130的控制。在此圖中,監(jiān)聽器100不再用作客戶機(jī)組件105和網(wǎng)絡(luò)組件110之間的中繼中介,這樣以使網(wǎng)絡(luò)組件110和客戶機(jī)組件105直接通過網(wǎng)絡(luò)棧115進(jìn)行通信。
如上所述,該直接通信通常比借助用戶模式中的監(jiān)聽器100通過共享存儲(chǔ)器、命名管道等進(jìn)行通信的速度快得多。此外,諸如可涉及安全問題的一個(gè)或多個(gè)附加優(yōu)點(diǎn)可被實(shí)現(xiàn),這是由于可使套接字130控制的開關(guān)對(duì)客戶機(jī)組件105是透明的,這樣以使客戶機(jī)組件105不知道在從監(jiān)聽器100到請(qǐng)求網(wǎng)絡(luò)組件110的套接字控制中已存在開關(guān)。即,客戶機(jī)組件105最初可能完全不知道其連接正由監(jiān)聽器100處理。即使客戶機(jī)組件105知道它正在與監(jiān)聽器100對(duì)話,本發(fā)明的實(shí)現(xiàn)也不需要將表示網(wǎng)絡(luò)組件110現(xiàn)在正控制套接字130的信號(hào)發(fā)送到客戶機(jī)組件105。
本發(fā)明也可按照用于實(shí)現(xiàn)功能結(jié)果的特定、非功能性動(dòng)作來描述,這些動(dòng)作作為依照本發(fā)明的實(shí)現(xiàn)的一個(gè)或多個(gè)方法的一部分。具體地,圖2示出相互關(guān)聯(lián)的流程圖中的兩種方法,其中一方示出從用戶模式監(jiān)聽器100的觀點(diǎn)來執(zhí)行的動(dòng)作,而另一方示出從請(qǐng)求的網(wǎng)絡(luò)組件110的觀點(diǎn)來執(zhí)行的動(dòng)作。下面將按照?qǐng)D1A和1B中所示示意圖來描述圖2的動(dòng)作。
例如,圖2示出依照本發(fā)明將連接控制從監(jiān)聽器100一方分派給用戶模式中的網(wǎng)絡(luò)組件的方法包含建立連接的動(dòng)作200。動(dòng)作200包括在用戶模式中通過用戶模式中的套接字建立客戶機(jī)組件和監(jiān)聽器之間的連接。例如,客戶機(jī)組件105,如相同或不同的遠(yuǎn)程計(jì)算機(jī)中的進(jìn)程啟動(dòng)與監(jiān)聽器100的連接,并請(qǐng)求特定的網(wǎng)絡(luò)組件110,如相同或不同的遠(yuǎn)程網(wǎng)絡(luò)計(jì)算機(jī)中的另一個(gè)進(jìn)程,作為連接參數(shù)的一部分。由于該連接是在用戶模式中的,因此與網(wǎng)絡(luò)棧115接口的監(jiān)聽器100將通過套接字,如通過圖1A中所示的套接字130來控制連接。
在某些情況下,監(jiān)聽器100也會(huì)在監(jiān)聽器100開始分派連接之前或同時(shí)將連接數(shù)據(jù)的初始部分傳遞到網(wǎng)絡(luò)組件110。因此,來自網(wǎng)絡(luò)組件110一方的方法可包含從客戶機(jī)組件接收數(shù)據(jù)的動(dòng)作250。動(dòng)作250包括通過用戶模式監(jiān)聽器100從客戶機(jī)組件105接收初始數(shù)據(jù)集。例如,網(wǎng)絡(luò)組件110可在監(jiān)聽器100決定對(duì)所建立的連接做什么時(shí)通過共享存儲(chǔ)器、命名管道、RPC、DCOM等接收一個(gè)或多個(gè)數(shù)據(jù)包。
再次參考監(jiān)聽器100的觀點(diǎn),分派連接的方法還包含請(qǐng)求套接字的復(fù)制的動(dòng)作210。動(dòng)作210包括根據(jù)與連接相關(guān)聯(lián)的信息來請(qǐng)求套接字的復(fù)制,其中第一組數(shù)據(jù)被接收到。例如,在讀取由客戶機(jī)組件105啟動(dòng)的連接中的初始數(shù)據(jù)集之后,監(jiān)聽器100可實(shí)現(xiàn)分派邏輯。如此處所描述的,分派邏輯可包括評(píng)估有關(guān)網(wǎng)絡(luò)棧115的狀態(tài)變量的這樣的因素?cái)?shù)據(jù)、要在建立的連接中傳遞的數(shù)據(jù)量、連接的長度、客戶機(jī)是否是可信客戶機(jī)等等的功能。
若分派邏輯分析建議將控制轉(zhuǎn)交給網(wǎng)絡(luò)組件110,則在某些情況下,監(jiān)聽器100可執(zhí)行任何數(shù)量的附加步驟。例如,如上所述,監(jiān)聽器100可將功能調(diào)用發(fā)送到應(yīng)用程序服務(wù)120。在一種實(shí)現(xiàn)中,功能調(diào)用的參數(shù)包括客戶機(jī)請(qǐng)求的網(wǎng)絡(luò)組件、由客戶機(jī)組件105發(fā)送的某些初始數(shù)據(jù)量、對(duì)套接字復(fù)制的請(qǐng)求,和/或前述的任何組合。然后,應(yīng)用程序服務(wù)120可返回第一組數(shù)據(jù)(如“數(shù)據(jù)1”),該數(shù)據(jù)包括用戶模式上下文信息,作為其參數(shù)的一部分。如動(dòng)作230中所示,監(jiān)聽器100隨后將任何諸如此類的相關(guān)數(shù)據(jù)繼續(xù)傳遞到網(wǎng)絡(luò)組件110。
因此,圖2中從網(wǎng)絡(luò)組件110的觀點(diǎn)來看的方法包含從監(jiān)聽器接收連接信息的動(dòng)作260。動(dòng)作260包括從用戶模式監(jiān)聽器接收連接信息,其中連接信息標(biāo)識(shí)有關(guān)客戶機(jī)組件和所建立的連接的信息。例如,網(wǎng)絡(luò)組件110可接收第一組數(shù)據(jù)(如“數(shù)據(jù)1”),該數(shù)據(jù)通過諸如共享存儲(chǔ)器、命名管道等傳遞通信機(jī)制而被傳遞。在某些情況下,該第一組數(shù)據(jù)也可包括建立的客戶機(jī)連接中還沒有從客戶機(jī)組件105接收到的其它數(shù)據(jù),以及網(wǎng)絡(luò)組件110可用來標(biāo)識(shí)接受套接字130的控制是否恰當(dāng)?shù)娜魏螖?shù)據(jù)。例如,監(jiān)聽器100可決定將套接字130的控制轉(zhuǎn)交給網(wǎng)絡(luò)組件110是適當(dāng)?shù)?,但是網(wǎng)絡(luò)組件110可實(shí)現(xiàn)其自己的類似的分派邏輯,以決定網(wǎng)絡(luò)組件110不適合處理連接的控制。例如,網(wǎng)絡(luò)組件110可確定客戶機(jī)組件105不是可信的?;蛘?,網(wǎng)絡(luò)組件110可被簡單地配置成接受來自監(jiān)聽器100的所有所分派的連接。
然而,若網(wǎng)絡(luò)組件110已經(jīng)確定能夠接受套接字130的控制,則圖2示出網(wǎng)絡(luò)組件110執(zhí)行請(qǐng)求套接字的復(fù)制的動(dòng)作270。動(dòng)作270包括請(qǐng)求與連接相關(guān)聯(lián)的套接字復(fù)制。例如,網(wǎng)絡(luò)組件110將功能調(diào)用傳遞到應(yīng)用程序服務(wù),無論是與之前一樣的同一應(yīng)用程序服務(wù)120,還是不同的應(yīng)用程序服務(wù),如應(yīng)用程序服務(wù)125。功能調(diào)用的參數(shù)包括先前被傳遞給監(jiān)聽器100的第一組數(shù)據(jù)(如“數(shù)據(jù)1”)。相關(guān)應(yīng)用程序服務(wù),如應(yīng)用程序服務(wù)125隨后處理功能調(diào)用并將套接字信息返回給網(wǎng)絡(luò)組件110。套接字信息也可包括網(wǎng)絡(luò)棧115的與所建立的連接相關(guān)聯(lián)的一個(gè)或多個(gè)狀態(tài)變量。在任何情況下,返回的信息允許網(wǎng)絡(luò)組件110操控套接字130。
因此,從網(wǎng)絡(luò)組件觀點(diǎn)來看的方法也包含接受套接字的控制的動(dòng)作280。動(dòng)作280包括從監(jiān)聽器接受套接字的控制,其中網(wǎng)絡(luò)組件通過用戶模式中的連接直接與客戶機(jī)組件進(jìn)行通信。例如,在一種實(shí)現(xiàn)中,網(wǎng)絡(luò)組件110將信號(hào)發(fā)送給監(jiān)聽器100,該信號(hào)表明網(wǎng)絡(luò)組件110已經(jīng)接受了套接字的控制(如圖1B)。然而,在另一種實(shí)現(xiàn)中,網(wǎng)絡(luò)組件110可直接與網(wǎng)絡(luò)棧115進(jìn)行通信,并告知網(wǎng)絡(luò)棧115停止通過監(jiān)聽器100發(fā)送信息。
然而,圖2中從監(jiān)聽器100觀點(diǎn)來看的方法示出用于分派控制的方法可包含接收網(wǎng)絡(luò)組件已經(jīng)接受控制的指示符的動(dòng)作240。動(dòng)作280包括接收網(wǎng)絡(luò)組件已經(jīng)接受套接字控制的指示符,這樣以使監(jiān)聽器不再從客戶機(jī)組件接受用于連接的連接數(shù)據(jù),并且使網(wǎng)絡(luò)組件和客戶機(jī)組件通過沒有監(jiān)聽器的連接而進(jìn)行通信。例如,由于監(jiān)聽器在用戶模式中傳遞套接字130的控制,所以網(wǎng)絡(luò)組件110也在用戶模式中有效地連接到客戶機(jī)組件105。即,客戶機(jī)組件105和網(wǎng)絡(luò)組件110通過網(wǎng)絡(luò)協(xié)議棧115而直接相連,盡管是在關(guān)于存儲(chǔ)器使用有限制或其它限制許可的模式中,且從而避免了對(duì)網(wǎng)絡(luò)計(jì)算機(jī)的惡意利用。
因此,本發(fā)明的實(shí)現(xiàn)提供了本領(lǐng)域的眾多優(yōu)點(diǎn)。具體地,可以在不同計(jì)算機(jī)之間或同一計(jì)算機(jī)上的網(wǎng)絡(luò)和客戶機(jī)組件之間在必要時(shí)以快得多的速度做出相對(duì)安全或受限更多的連接,甚至達(dá)到核心模式連接速度或者更佳。此外,本發(fā)明的實(shí)現(xiàn)允許監(jiān)聽器主要在連接可能對(duì)系統(tǒng)產(chǎn)生瓶頸問題時(shí)終止到網(wǎng)絡(luò)組件的連接。由此,監(jiān)聽器就仍舊可繼續(xù)在用戶模式中處理不能堅(jiān)持從分派連接中顯著獲益的大量連接,并以更有效的方式進(jìn)行分派。
圖3和下面的討論旨在提供其中可實(shí)現(xiàn)本發(fā)明的合適計(jì)算環(huán)境的簡要概括描述。盡管并非所需,但本發(fā)明將在諸如由網(wǎng)絡(luò)環(huán)境中的計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。計(jì)算機(jī)可執(zhí)行指令、相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)、以及程序模塊代表用于執(zhí)行此處所描述的方法的程序代碼裝置的示例。這些可執(zhí)行指令的特定序列或相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)代表用于實(shí)現(xiàn)這些步驟中所描述的功能的相應(yīng)動(dòng)作的示例。
本領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到,本發(fā)明可在具有多種類型計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)現(xiàn),包括個(gè)人計(jì)算機(jī)、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)等等。本發(fā)明也可在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中通過通信網(wǎng)絡(luò)鏈接(或者通過有線鏈路、無線鏈路,或者通過有線和無線鏈路的組合)本地和遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可位于本地或遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
參考圖3,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括形式為常規(guī)計(jì)算機(jī)320的通用計(jì)算設(shè)備,包括處理單元321、系統(tǒng)存儲(chǔ)器322,以及將包括系統(tǒng)存儲(chǔ)器322在內(nèi)的不同系統(tǒng)組件耦合到處理單元321的系統(tǒng)總線323。系統(tǒng)總線323可以是幾種類型的總線結(jié)構(gòu)中的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線,以及使用幾種總線體系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM)324和隨機(jī)存取存儲(chǔ)器(RAM)325?;据斎?輸出系統(tǒng)(BIOS)326可被儲(chǔ)存在ROM 324中,BIOS包含如在啟動(dòng)階段幫助在計(jì)算機(jī)320內(nèi)的元件之間傳遞信息的基本例程。
計(jì)算機(jī)320也可包括用于對(duì)硬磁盤339進(jìn)行讀寫的硬磁盤驅(qū)動(dòng)器327,用于對(duì)可移動(dòng)磁盤329進(jìn)行讀寫的磁盤驅(qū)動(dòng)器328,以及用于對(duì)諸如CD ROM或其它光介質(zhì)這樣的可移動(dòng)光盤331進(jìn)行讀寫的光盤驅(qū)動(dòng)器330。硬磁盤驅(qū)動(dòng)器327、磁盤驅(qū)動(dòng)器328和光盤驅(qū)動(dòng)器330分別通過硬磁盤驅(qū)動(dòng)器接口332、磁盤驅(qū)動(dòng)器接口333和光盤驅(qū)動(dòng)器接口334連接到系統(tǒng)總線323。驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)320提供了計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。盡管這里示出的示例性環(huán)境使用硬磁盤339、可移動(dòng)磁盤329和可移動(dòng)光盤331,但是也可使用用于儲(chǔ)存數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),包括盒式磁帶、閃存卡、數(shù)字多功能盤、伯努利盒式磁帶、RAM、ROM等等。
包括一個(gè)或多個(gè)程序模塊的程序代碼裝置可被儲(chǔ)存在硬盤339、磁盤329、光盤331、ROM 324或者RAM 325中,其中包括操作系統(tǒng)335、一個(gè)或多個(gè)應(yīng)用程序336、其它程序模塊337以及程序數(shù)據(jù)338。用戶可通過鍵盤340、定點(diǎn)設(shè)備342、或者其它輸入設(shè)備(未示出),如麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星電視天線、掃描儀等來將命令和信息輸入到計(jì)算機(jī)320中。這些和其它的輸入設(shè)備一般通過與系統(tǒng)總線323耦合的串行端口接口346連接到處理單元321。另外,輸入設(shè)備可通過諸如并行端口、游戲端口或通用串行總線端口(USB)這樣的其它接口相連。監(jiān)視器347或另一顯示設(shè)備也通過諸如視頻適配器348這樣的接口與系統(tǒng)總線323相連。除監(jiān)視器之外,個(gè)人計(jì)算機(jī)通常包括其它的外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。
計(jì)算機(jī)320可使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)349a和349b的邏輯連接在網(wǎng)絡(luò)化環(huán)境中工作。遠(yuǎn)程計(jì)算機(jī)349a和349b的每一個(gè)都可以是另一個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或所有上文相對(duì)于計(jì)算機(jī)320所描述的元件,盡管在圖3中只示出了存儲(chǔ)器存儲(chǔ)設(shè)備350a和350b,以及其相關(guān)聯(lián)的應(yīng)用程序336a和336b。圖3中所述的邏輯連接包括局域網(wǎng)(LAN)351和廣域網(wǎng)(WAN)352,這里作為示例性提出而并非限制性的。這樣的網(wǎng)絡(luò)化環(huán)境常見于辦公范圍或企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、局內(nèi)網(wǎng)和因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)化環(huán)境中使用時(shí),計(jì)算機(jī)320通過網(wǎng)絡(luò)接口或適配器353連接到局域網(wǎng)351。當(dāng)在WAN網(wǎng)絡(luò)化環(huán)境中使用時(shí),計(jì)算機(jī)320可包括調(diào)制解調(diào)器354、無線鏈路、或者用于通過廣域網(wǎng)352(如因特網(wǎng))建立通信的其它裝置。調(diào)制解調(diào)器354可為外置或內(nèi)置的,它通過串行端口接口346與系統(tǒng)總線323相連。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)320所描述的程序模塊或其部分可被儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。可以認(rèn)識(shí)到,所示的網(wǎng)絡(luò)連接是示例性的,也可使用通過廣域網(wǎng)352建立通信的其它裝置。
在不背離本發(fā)明主旨或精髓的前提下,本發(fā)明可用其它具體形式來實(shí)施。所描述的實(shí)施例在各個(gè)方面都應(yīng)被認(rèn)為僅是示例性的,并非限制性的。因此,本發(fā)明的范圍是由所附權(quán)利要求書而非以上描述來指示的。落入權(quán)利要求書的等價(jià)技術(shù)方案的意義和范圍的所有變化都認(rèn)為包含在其范疇之內(nèi)。
權(quán)利要求
1.在網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)的用戶模式監(jiān)聽器處,其中所述用戶模式監(jiān)聽器被配置成在用戶模式中在客戶機(jī)組件和網(wǎng)絡(luò)組件之間中繼連接,一種在用戶模式中將連接的控制分派給網(wǎng)絡(luò)組件的方法,包含以下步驟在用戶模式中,通過套接字在客戶機(jī)組件和監(jiān)聽器之間建立連接,其中,所述客戶機(jī)組件請(qǐng)求網(wǎng)絡(luò)組件;基于與所述連接相關(guān)聯(lián)的信息請(qǐng)求復(fù)制所述套接字,其中,接收到第一組數(shù)據(jù);將所述第一組數(shù)據(jù)和所述相關(guān)聯(lián)的連接信息發(fā)送到所請(qǐng)求的網(wǎng)絡(luò)組件;以及接收表明所述網(wǎng)絡(luò)組件已經(jīng)接受了所述套接字的控制的指示符,以使所述監(jiān)聽器不再從所述客戶機(jī)計(jì)算機(jī)接受用于所述連接的連接數(shù)據(jù),并且使所述網(wǎng)絡(luò)組件和所述客戶機(jī)組件通過沒有所述監(jiān)聽器的連接進(jìn)行通信。
2.如權(quán)利要求1所述的方法,其特征在于,所述客戶機(jī)組件是客戶機(jī)計(jì)算機(jī)系統(tǒng)中的客戶機(jī)進(jìn)程,并且所請(qǐng)求的網(wǎng)絡(luò)組件是不同的網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)中的網(wǎng)絡(luò)進(jìn)程,并且其中,所述客戶機(jī)計(jì)算機(jī)系統(tǒng)和所述網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)通過網(wǎng)絡(luò)連接而連接。
3.如權(quán)利要求1所述的方法,其特征在于,所述監(jiān)聽器是被配置成將從網(wǎng)絡(luò)協(xié)議棧接收的消息中繼到所請(qǐng)求網(wǎng)絡(luò)組件的進(jìn)程、接口、組件或模塊中的任意一個(gè)。
4.如權(quán)利要求1所述的方法,其特征在于,請(qǐng)求復(fù)制所述套接字還包含將功能調(diào)用傳遞到第一應(yīng)用程序服務(wù),所述功能調(diào)用包括所請(qǐng)求的網(wǎng)絡(luò)組件的參數(shù);以及從所述第一應(yīng)用程序服務(wù)接收所述第一組數(shù)據(jù)。
5.如權(quán)利要求4所述的方法,其特征在于,對(duì)所述第一應(yīng)用程序服務(wù)的函數(shù)調(diào)用的參數(shù)還包括與所建立的連接相關(guān)聯(lián)的一個(gè)或多個(gè)狀態(tài)變量。
6.如權(quán)利要求1所述的方法,其特征在于,請(qǐng)求復(fù)制所述套接字還包含用分派邏輯評(píng)估所建立的連接的初始部分,所述分派邏輯評(píng)估與所述第一組數(shù)據(jù)相關(guān)聯(lián)的一個(gè)或多個(gè)客戶機(jī)消息屬性,以及與網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的系統(tǒng)屬性。
7.如權(quán)利要求1所述的方法,其特征在于,接收表明所述網(wǎng)絡(luò)組件已經(jīng)接受控制的指示符包含將一信號(hào)發(fā)送到與所述連接相關(guān)聯(lián)的網(wǎng)絡(luò)棧,所述信號(hào)向所述網(wǎng)絡(luò)棧的傳輸層表明所述監(jiān)聽器不再能從所建立的連接接收數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,其特征在于,所述信號(hào)還包含在所述網(wǎng)絡(luò)組件接受所建立的連接的控制之前緩沖由所述客戶機(jī)組件發(fā)送的數(shù)據(jù)的指令。
9.如權(quán)利要求7所述的方法,其特征在于,在將所述信號(hào)發(fā)送到所述網(wǎng)絡(luò)棧之后,一接收到客戶機(jī)組件數(shù)據(jù)的后續(xù)集合,該方法還包含監(jiān)聽器將所述客戶機(jī)組件數(shù)據(jù)的后續(xù)集合返回到所述網(wǎng)絡(luò)棧,這樣以使所述客戶機(jī)組件數(shù)據(jù)的后續(xù)集合在所述網(wǎng)絡(luò)組件接受所建立的連接的控制之前被緩沖。
10.如權(quán)利要求1所述的方法,其特征在于,還包含在請(qǐng)求復(fù)制所述套接字之前或同時(shí),至少將所建立的連接中的客戶機(jī)組件數(shù)據(jù)的初始部分傳遞到所述網(wǎng)絡(luò)組件。
11.在網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)組件中,其中,通過用戶模式監(jiān)聽器在客戶機(jī)組件和所述網(wǎng)絡(luò)組件之間建立連接,一種網(wǎng)絡(luò)組件接受來自用戶模式中的監(jiān)聽器的連接控制的方法,包含以下動(dòng)作通過所述用戶模式監(jiān)聽器從客戶機(jī)組件接收初始數(shù)據(jù)集;從所述用戶模式監(jiān)聽器接收連接信息,其中,所述連接信息標(biāo)識(shí)有關(guān)所述客戶機(jī)組件和所建立的連接的信息;請(qǐng)求復(fù)制與所述連接相關(guān)聯(lián)的套接字;以及從所述監(jiān)聽器接受所述套接字控制,其中,所述網(wǎng)絡(luò)組件在用戶模式中通過所述連接直接與所述客戶機(jī)組件進(jìn)行通信。
12.如權(quán)利要求11所述的方法,其特征在于,所述網(wǎng)絡(luò)組件是網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)中的網(wǎng)絡(luò)進(jìn)程,而所述客戶機(jī)組件是不同的客戶機(jī)計(jì)算機(jī)系統(tǒng)中的客戶機(jī)進(jìn)程,并且其中,所述網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)和所述客戶機(jī)計(jì)算機(jī)系統(tǒng)是通過網(wǎng)絡(luò)連接相連的。
13.如權(quán)利要求11所述的方法,其特征在于,來自所述客戶機(jī)組件的所述初始數(shù)據(jù)集是通過共享存儲(chǔ)器、命名管道、RPC或DCOM協(xié)議的一個(gè)或多個(gè)來接收的。
14.如權(quán)利要求11所述的方法,其特征在于,請(qǐng)求復(fù)制所述套接字還包含將功能調(diào)用傳遞給應(yīng)用程序服務(wù),所述功能調(diào)用包括由所述用戶模式監(jiān)聽器中繼的第一組數(shù)據(jù)的參數(shù);以及從所述應(yīng)用程序服務(wù)接收用于控制所述套接字的信息。
15.如權(quán)利要求14所述的方法,其特征在于,所述第一組數(shù)據(jù)是由所述監(jiān)聽器從第一應(yīng)用程序服務(wù)接收的,并且其中,所述第一應(yīng)用程序服務(wù)與所述網(wǎng)絡(luò)組件向其傳遞所述功能調(diào)用的應(yīng)用程序服務(wù)不同。
16.如權(quán)利要求14所述的方法,其特征在于,所述第一組數(shù)據(jù)的參數(shù)還包含與所建立的連接相關(guān)聯(lián)的一個(gè)或多個(gè)狀態(tài)變量、復(fù)制所述套接字的請(qǐng)求、以及由所述客戶機(jī)在所建立的連接中發(fā)送的初始數(shù)據(jù)集。
17.如權(quán)利要求11所述的方法,其特征在于,一接收到所述連接信息,所述網(wǎng)絡(luò)組件就實(shí)現(xiàn)分派邏輯,所述分派邏輯評(píng)估是否要基于所述客戶機(jī)組件的一個(gè)或多個(gè)身份來接受所述套接字的控制、由所述客戶機(jī)組件在初始數(shù)據(jù)集中發(fā)送的信息類型、或者所述連接的長度。
18.如權(quán)利要求11所述的方法,其特征在于,接受所述套接字的控制包括將表明所述網(wǎng)絡(luò)組件操控所述套接字的指示符發(fā)送到所述監(jiān)聽器。
19.如權(quán)利要求11所述的方法,其特征在于,直接與所述客戶機(jī)組件進(jìn)行通信包含直接從所述相應(yīng)網(wǎng)絡(luò)協(xié)議棧的傳輸層接收用于所建立的連接的客戶機(jī)組件數(shù)據(jù)的后續(xù)集合,以使所述用戶模式監(jiān)聽器被避免。
20.一種在計(jì)算機(jī)化的系統(tǒng)中使用的計(jì)算機(jī)程序產(chǎn)品,在所述計(jì)算機(jī)化系統(tǒng)中,用戶模式監(jiān)聽器被配置成在用戶模式中在客戶機(jī)計(jì)算機(jī)系統(tǒng)的進(jìn)程和網(wǎng)絡(luò)計(jì)算機(jī)的進(jìn)程之間中繼連接,所述計(jì)算機(jī)程序產(chǎn)品具有儲(chǔ)存在其上的計(jì)算機(jī)可執(zhí)行指令,當(dāng)被執(zhí)行時(shí),所述計(jì)算機(jī)可執(zhí)行指令使所述計(jì)算機(jī)化的系統(tǒng)執(zhí)行一種在用戶模式中將連接的控制分派給所述網(wǎng)絡(luò)進(jìn)程的方法,所述方法包含以下動(dòng)作在用戶模式中,通過套接字在客戶機(jī)組件和監(jiān)聽器之間建立連接,其中,所述客戶機(jī)組件請(qǐng)求網(wǎng)絡(luò)組件;基于與所述連接相關(guān)聯(lián)的信息來請(qǐng)求復(fù)制所述套接字,其中,接收第一組數(shù)據(jù);將所述第一組數(shù)據(jù)和所述相關(guān)聯(lián)的連接信息發(fā)送到所請(qǐng)求的網(wǎng)絡(luò)組件;以及接收表明所述網(wǎng)絡(luò)組件已經(jīng)接受所述套接字的控制的指示符,以使所述監(jiān)聽器不再從所述客戶機(jī)計(jì)算機(jī)接受用于所述連接的連接數(shù)據(jù),并且使所述網(wǎng)絡(luò)組件和所述客戶機(jī)組件通過沒有所述監(jiān)聽器的連接進(jìn)行通信。
全文摘要
在用戶模式中工作的監(jiān)聽器可將客戶機(jī)連接的控制分派給監(jiān)聽器,而不暴露系統(tǒng)存儲(chǔ)器或其他的敏感服務(wù)或組件。例如,客戶機(jī)組件通過與用戶模式監(jiān)聽器的連接來請(qǐng)求訪問網(wǎng)絡(luò)組件?;诎诳蛻魴C(jī)請(qǐng)求中的信息,監(jiān)聽器將調(diào)用傳遞給應(yīng)用程序接口,該應(yīng)用程序接口返回包括用戶模式上下文信息的第一組數(shù)據(jù)。監(jiān)聽器將該第一組數(shù)據(jù)傳遞到所請(qǐng)求的網(wǎng)絡(luò)組件。對(duì)應(yīng)用程序接口進(jìn)行另一個(gè)調(diào)用,這包括第一組數(shù)據(jù),以及對(duì)套接字復(fù)制的請(qǐng)求。應(yīng)用程序接口將所請(qǐng)求的套接字控制返回給網(wǎng)絡(luò)組件,以使網(wǎng)絡(luò)組件和客戶機(jī)組件直接通過用戶模式中的所請(qǐng)求套接字來進(jìn)行通信。
文檔編號(hào)H04L12/26GK1816047SQ20051013818
公開日2006年8月9日 申請(qǐng)日期2005年12月30日 優(yōu)先權(quán)日2005年2月1日
發(fā)明者A·M·李四世, E·L·維恩古爾德, M·奧塔維亞尼 申請(qǐng)人:微軟公司