国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于傳輸卸載引擎的連接管理系統(tǒng)和方法

      文檔序號:7601630閱讀:264來源:國知局
      專利名稱:用于傳輸卸載引擎的連接管理系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及網(wǎng)絡(luò)通信的管理,更具體地說,是關(guān)于網(wǎng)絡(luò)連接管理。
      背景技術(shù)
      圖1顯示了根據(jù)現(xiàn)有技術(shù)的一種建立網(wǎng)絡(luò)通信的方法100。使用各種協(xié)議(TCP等)的網(wǎng)絡(luò)通信(例如互聯(lián)網(wǎng)通信等)通常需要首先建立一個連接。
      當一個TCP連接的嘗試開始,目標主機收到一個來自源主機的同步(SYN)信息包,如操作102所示,響應(yīng)于收到這個SYN信息包,一個指定的存儲器(通常是有限尺寸的)被分配以追蹤連接的建立,見操作103。
      其后,在操作104,目標主機發(fā)回一個SYN確認信息包(SYN/ACK)。然后目標主機在連接建立前必須等待收到一個同步交換確認(同步交互ACK),如判斷106中所示。這就是典型的所謂“TCP三向開放式交互”。
      在等待同步交互ACK時,目標主機上有限尺寸的存儲器繼續(xù)追蹤其它等待完成的連接。典型地,這個隊伍很快就沒了,因為從發(fā)送SYN/ACK信息包到收到同步交互ACK只需要幾個毫秒。
      收到同步交互ACK后連接即被開放,有限尺寸的存儲器的相關(guān)部分即被用于追蹤和維護新開放的連接,見操作110。另一方面,如果在規(guī)定的時間段內(nèi)沒有收到同步交互ACK(見判斷108),則將進行一個測試以確定SYN/ACK重發(fā)的最大號碼是否出現(xiàn)(見判斷112)。如果重發(fā)的最大號碼仍然沒有出現(xiàn),則SYN/ACK信息包被重新發(fā)送,見操作114。如果重新發(fā)送的最大號碼出現(xiàn),則過程結(jié)束,存儲器去除分配,見操作116。
      一個阻斷服務(wù)(NoS)攻擊使用了這個設(shè)計,通過擁有一個攻擊性的源主機,根據(jù)隨機的源IP地址和源端口產(chǎn)生指向一個受害目標主機的TCP SYN信息包。然后該受害目標主機向該隨機的源地址發(fā)回一個SYN/ACK信息包(按照圖1的方法100的操作104),并向存儲器的連接隊伍中增加一個入口。
      因為該SYN/ACK信息包是指向一個錯誤的或不存在的主機,三向開放式交互的最后一部分永遠無法完成,存儲器仍然分配給連接嘗試,且入口仍然在連接隊伍中,直至重試的最大號碼被發(fā)送且計時器停止,典型地需要約1分鐘。通過從一個隨機的地址高速率地產(chǎn)生虛假的TCP SYN信息包,可以將存儲器的連接隊伍填滿,并拒絕指向合法用戶的TCP服務(wù)(例如電子郵件、文件傳輸、萬維網(wǎng)等)。
      沒有一條簡易的途徑可以追蹤到攻擊的發(fā)起人,因為IP地址典型的是偽造的。因此需要有一種更為有效的管理網(wǎng)絡(luò)連接嘗試的技術(shù),以避免這種或那種因素造成的網(wǎng)絡(luò)的分支過載。

      發(fā)明內(nèi)容
      本發(fā)明提供了一種建立網(wǎng)絡(luò)連接的系統(tǒng)和方法。首先,在網(wǎng)絡(luò)上建立一個連接的嘗試被確認,然后存儲器的一部分被分配用于存儲與連接相關(guān)的數(shù)據(jù)。
      在一個實施例中,如果第二次建立連接的嘗試具有至少一種與前一次嘗試相關(guān)的情形,則所述連接器的所述部分可以被過寫。這種情形可以包括連接的任意情形,包括但不限于一個IP地址、一個TCP端口等。
      優(yōu)選的,每一次在網(wǎng)絡(luò)上建立連接的嘗試可以利用一個信息包(例如一個同步(SYN)信息包)予以確認。而且,該系統(tǒng)和方法能夠以一個同步/確認(SYN/ACK)信息包響應(yīng)所述信息包。
      在另一個實施例中,可以產(chǎn)生一個與每一個信息包相關(guān)的雜亂信號(hash),所述信息包與在網(wǎng)絡(luò)上建立連接的嘗試相關(guān)。然后,這個雜亂信號可以以前述方式被用于確認建立連接的第二次嘗試是否具有與前一次連接相關(guān)的情形。
      此外,該雜亂信號可以用作存儲于所述存儲器的所述部分中的數(shù)據(jù)的一個指示,其中所述數(shù)據(jù)包括一個控制模塊。
      優(yōu)選的,與半開放狀態(tài)下的連接相關(guān)的多個控制模塊的尺寸可以小于與開放狀態(tài)下的連接相關(guān)的多個控制模塊。此外,控制模塊可以包括一個用于確認連接的句柄(handle)、IP地址、端口編號、時間戳等。半開放狀態(tài)是定義為一種連接嘗試,其中至少已經(jīng)收到發(fā)自一個遠端主機的第一次SYN,但相應(yīng)的同步交互ACK還沒有被收到。
      在另一個實施例中,所述存儲器可以包括一個第一存儲器,用于分配給與半開放連接相關(guān)的數(shù)據(jù)。此外,一個邏輯的或物理的第二存儲器(區(qū)別于所述第一存儲器)可以分配給與開放連接相關(guān)的數(shù)據(jù),以使第一存儲器的過載不會影響該開放接口(socket)。優(yōu)選的,如前所述,該第二存儲器可以分配給一個第二種類型的控制模塊,該控制模塊的尺寸大于第一存儲器分配的第一種類型的控制模塊。
      使用中,當收到一個連接嘗試的同步交互ACK時,存儲器的所述部分可以去除分配。而且,一旦連接的嘗試獲得成功,另一個存儲器(例如第二個存儲器等)的一個部分可以被分配給一個開放的連接。


      圖1顯示了一種按照現(xiàn)有技術(shù)建立網(wǎng)絡(luò)通信的方法。
      圖2顯示了一個按照一個實施例的網(wǎng)絡(luò)系統(tǒng)。
      圖3顯示了一個可以完成一個實施例的典型的結(jié)構(gòu)。
      圖4A顯示了一種典型的方法,根據(jù)一個實施例,該方法可以建立網(wǎng)絡(luò)連接,同時避免存儲器的分支過載。
      圖4B顯示了一種建立網(wǎng)絡(luò)連接的方法,根據(jù)一個實施例,是收到響應(yīng)圖4A中第一次同步(SYN)信息包確認的同步交互確認(ACK)的情形。
      圖4C顯示了一種建立網(wǎng)絡(luò)連接的方法,根據(jù)一個實施例,是圖4A中第一個SYN信息包后,但是在收到響應(yīng)第一次SYN/ACK的同步交互ACK之前,收到另一個SYN信息包的情形。
      圖4D顯示了根據(jù)一個實施例的圖4C的網(wǎng)絡(luò)連接建立方法的一個延續(xù)。
      圖4E顯示了一種建立網(wǎng)絡(luò)連接的方法,是不再收到用于連接嘗試的同步交互ACK或其它SYN信息包的情形。
      圖5顯示了根據(jù)一個典型的實施例的一個典型的設(shè)計和操作,用于建立網(wǎng)絡(luò)連接并避免存儲器分支的過載,是接受SYN信息包的決定被一個主機驅(qū)動器執(zhí)行的情形。
      圖6顯示了根據(jù)一個典型的實施例的一個典型的設(shè)計和操作,用于建立網(wǎng)絡(luò)連接并避免存儲器分支的過載,是接受SYN信息包的決定被卸載引擎執(zhí)行的情形。
      具體實施例方式
      根據(jù)一個實施例,圖2顯示了一個網(wǎng)絡(luò)系統(tǒng)200。如圖所示,提供了一個網(wǎng)絡(luò)202。在本網(wǎng)絡(luò)系統(tǒng)200的情況下,網(wǎng)絡(luò)202可以采取任意形式,包括但不限于本地局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)如互聯(lián)網(wǎng)等。
      連接到網(wǎng)絡(luò)202的是一個本地主機204和一個遠端主機206,它們能夠通過網(wǎng)絡(luò)202進行通信。在本說明書的上下文中,這類主機204、206可以包括一個網(wǎng)絡(luò)服務(wù)器,桌面電腦、筆記本電腦、手提電腦、打印機或任何其它形式的硬件/軟件。應(yīng)當注意,每一件前述的組件以及其它未列舉的設(shè)備均可以通過一個或多個網(wǎng)絡(luò)進行互聯(lián)。
      圖3顯示了一個典型的結(jié)構(gòu)300,在該結(jié)構(gòu)中可以實現(xiàn)一個實施例。在一個實施例中,結(jié)構(gòu)300可以代表圖2的主機204、206中的一個。當然,盡管這樣,應(yīng)當注意的是結(jié)構(gòu)300可以在任意希望的情況下使用。
      例如,結(jié)構(gòu)300可以在各種情況下使用,包括常規(guī)的計算機系統(tǒng)、電路板系統(tǒng)、用于娛樂目的的游戲控制系統(tǒng)、一個機頂盒、一個路由器、一個網(wǎng)絡(luò)系統(tǒng)、一個存儲系統(tǒng)、一個特定應(yīng)用系統(tǒng)或者任意其它希望的與網(wǎng)絡(luò)202相關(guān)的系統(tǒng)。
      如圖所示,結(jié)構(gòu)300包括多個通過一根總線302連接的組件,包括至少一個用于處理數(shù)據(jù)的處理器304。然而處理器可以采用任意形式,在一個實施例中,它可以采用的形式包括一個中央處理器(CPU),一個芯片組(例如一組集成一體而作為一個單元進行工作以實現(xiàn)相關(guān)功能的電路等),或者任意其它需要的、能夠處理數(shù)據(jù)的處理設(shè)備。
      此外還包括一個處理系統(tǒng)存儲器306,與處理器304的相互通信以用于存儲數(shù)據(jù)。這個處理系統(tǒng)存儲器306可以采用的形式包括機載(on-board)或離機(off-board)隨機訪問存儲器(RAM),硬盤驅(qū)動器,可移動存儲驅(qū)動器(例如軟盤驅(qū)動器、磁盤驅(qū)動器、光盤驅(qū)動器等),和/或任意其它形式的可用于存儲數(shù)據(jù)的希望的存儲器。
      使用中,程序,或控制邏輯運算法則,可以任意地存儲于處理系統(tǒng)存儲器306。當執(zhí)行時,這些程序使結(jié)構(gòu)300完成各種功能。當然,結(jié)構(gòu)300可以簡單地直接連接。
      此外還顯示了一個與處理器304和網(wǎng)絡(luò)(例如圖2所示的網(wǎng)絡(luò)202)通信的卸載引擎312。在一個實施例中,卸載引擎312可以通過總線302保持與處理器304的通信。當然,盡管這樣,卸載引擎312可以通過任意提供相互間連接的設(shè)備保持與處理器304之間的通信。卸載引擎312可以包括一個傳送器(例如TCP/IP)卸載引擎(TOC),或任意集成一體、能夠管理網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)的電路。
      操作過程中,所述卸載引擎312與處理器304共同作用以建立網(wǎng)絡(luò)連接,同時防止存儲器分支的過載(例如由于網(wǎng)絡(luò)阻斷服務(wù)(NoS)攻擊、繁重的通信量等等)。為達到這個目的,一個建立網(wǎng)絡(luò)連接的嘗試首先被確認,然后存儲器的一部分被分配用于存儲與連接相關(guān)的數(shù)據(jù)。在剩余的說明書的上下文中,這個存儲器可以包括前述的任意存儲器(例如存儲器306等)、與卸載引擎312相關(guān)的存儲器、或者與結(jié)構(gòu)300和/或網(wǎng)絡(luò)系統(tǒng)200相關(guān)的完全的其它任何存儲器。
      使用中,前述的存儲器的部分可以被過寫,以特別地用于避免存儲器過載。應(yīng)當注意,前述功能可以以任意能夠避免存儲器過載所需要的方式完成。通過讓卸載引擎312以前述方式過寫存儲器的典型的方法,更多的信息可以被設(shè)置。
      根據(jù)一個實施例,圖4A顯示了一個用于建立網(wǎng)絡(luò)連接、同時避免存儲器分支過載的典型的方法400。作為選擇,方法400可以在圖3的典型結(jié)構(gòu)300和圖2的網(wǎng)絡(luò)系統(tǒng)的情況下完成。當然,盡管如此,應(yīng)當注意方法400可以在任意希望的情況下完成。此外,雖然各種功能可以分配到典型的組件(例如那些前述的設(shè)置),重要的是應(yīng)當理解各種功能可以通過任意希望的實體得以完成。
      開始時,在判斷402,判斷是否有一個與服務(wù)器接口相關(guān)的同步(SYN)信息包被一個本地主機(例如圖2的本地主機204)的一個卸載引擎所接收。在本說明書的上下文中,一個SYN信息包可以包含任意啟動建立一個連接所需要的同步過程的信息包和信號等。使用中,SYN信息包可以用信息包內(nèi)的一面旗子進行標記。此外,服務(wù)器接口是網(wǎng)絡(luò)中運行的兩個程序間的雙向通信連接的一個端點。一個接口可以與一個端口編號結(jié)合,以使一個TCP層能夠確認一個數(shù)據(jù)被指定發(fā)送的應(yīng)用。
      根據(jù)判定402,如果一個SYN信息包沒有被收到;則在操作404中,處理另一個信息包類型。如果這樣,仍然由本地主機的一個處理器(如圖2的處理器304)決定第一個SYN信息包是否將被接受,見判斷406。應(yīng)當注意,上述判斷可以基于與SYN信息包和/或SYN被接收的界面相關(guān)的目標端口而完成。
      作為替換,接受第一個SYN信息包的判斷406可以單獨由卸載引擎作出。上述判斷又可以基于與SYN信息包和/或SYN被接收的界面相關(guān)的目標端口而完成。
      如果決定第一個SYN信息包不予接受,則產(chǎn)生一個重置(RST)信息包,見操作414。然后一個RST信息包發(fā)送回發(fā)出第一個SYN信息包的遠端主機。然而,如果決定第一個SYN信息包真的將被接受,在操作408基于第一個SYN信息包接收的參數(shù)產(chǎn)生一個第一雜亂信號。在本說明書的上下文中,該雜亂信號可以包含一個字符串(例如第一個SYN信息包的IP地址和端口編號),該字符串是更短的長度固定的值或代表原始串的鑰匙。應(yīng)當注意,該雜亂信號還可以包括與第一個SYN信息包的至少一種情形相關(guān)的任意標識符。例如,所述雜亂信號可以基于與第一個SYN信息包相關(guān)的一對互聯(lián)網(wǎng)協(xié)議(IP)地址和端口而產(chǎn)生。
      接著,在操作410,第一存儲器的第一部分被分配給用于第一種類型的控制模塊(例如一個“半開放”控制模塊,HO-CB)的服務(wù)器接口。同樣的,這個存儲器可以包括任意的上述存儲器(例如圖3的存儲器306等),與卸載引擎相關(guān)的存儲器,或者與結(jié)構(gòu)300和/或網(wǎng)絡(luò)系統(tǒng)200相關(guān)的完全的任意其它存儲器。
      在本說明書的上下文中,控制模塊可以包括任何能夠用于追蹤一個連接嘗試和/或連接的信息。此外,第一種類型的控制模塊特別的可以包括能夠用于追蹤一個連接嘗試的任意信息。舉例來說,所述第一種類型的控制模塊可以包括一個句柄、IP地址、端口編號、一個時間戳,和/或任意與SYN信息包相關(guān)的信息。
      為了啟動前述分配操作410,處理器可以配給卸載引擎一個指令模塊(IB),以提供用于產(chǎn)生第一種類型的控制模塊的必要信息。給予了這個IB,卸載引擎就能夠以前述方式分配第一存儲器的第一部分。如下所述,雜亂信號可以用于作為一個指向第一種類型的控制模塊的指示符。
      作為替換,卸載引擎本身可以作出決定以接受第一個SYN信息包中的連接,并且可以從收到的第一個SYN信息包和存儲源得到所有必要的信息以產(chǎn)生第一種類型的控制模塊。然后卸載引擎能夠以前述方式分配第一存儲器的第一部分。
      存儲器分配第一種類型的控制模塊后,卸載引擎接著發(fā)送一個用于第一個SYN信息包的同步確認(SYN/ACK)信息包,見操作412。這個SYN/ACK信息包可以采用任意信號的形式,所述信號指示第一個SYN已被接收,并已請求同步返回遠端主機。之后,本地主機等待“TCP三向開放式交互”的最后組件—同步交互ACK,可以采用確認遠端主機收到SYN/ACK信息包的任意信號的形式。
      在這一點上,根據(jù)是否收到同步交互ACK,是否收到另一個同步交互ACK,或者兩個都沒有收到,方法400的功能不盡相同。以下附圖分別用于描述每一種前述的情形。例如,根據(jù)一個實施例,圖4B顯示了一種網(wǎng)絡(luò)連接的建立方法,是響應(yīng)第一個SYN/ACK信息包的一個同步交互信息包被收到的情況。此外,圖4C和4D顯示了一種網(wǎng)絡(luò)連接的建立方法,是在圖4A的第一個SYN信息包之后,但在響應(yīng)第一個SYN/ACK信息包的同步交互ACK收到之前收到另一個SYN信息包的情況。而圖4E顯示了一種網(wǎng)絡(luò)連接的建立方法,是一種既沒有收到同步交互ACK信息包,也沒有收到另一個SYN信息包的情況。
      與前面類似,圖4B-4E的方法可以在圖4的方法400的情況下完成,結(jié)合圖3的典型結(jié)構(gòu)300和圖2的網(wǎng)絡(luò)系統(tǒng)200。當然,盡管這樣,應(yīng)當注意圖4B-4E的方法可以在任意期望的獨立情況下完成。此外,雖然各種功能可以分配到典型的組件(例如那些前述的設(shè)置),重要的是應(yīng)當理解各種功能可以通過任意希望的實體得以完成。
      首先參考圖4B,在操作420等候一個信息包后,通過卸載引擎確定該收到的信息包是否是一個ACK信息包,見判斷422。如果該信息包不是ACK信息包,則進行進一步檢查,看收到的是哪一種類型的信息包。見圖4C,如果收到的信息包是一個ACK信息包,則產(chǎn)生一個雜亂信號,如操作424所示。該雜亂信號產(chǎn)生的方式可以類似于(如果不是等同于)前述關(guān)于SYN信息包的產(chǎn)生方式。例如,該雜亂信號可以基于一對與同步交互ACK信息包相關(guān)的IP地址和端口而產(chǎn)生。
      然后由收到的ACK信息包中的雜亂信號確定的第一種類型的控制模塊(例如HO-CB)中的參數(shù)被恢復,如操作426所示。然后從前述HO-CB恢復的參數(shù)被用于確定收到的ACK是否為同步交互ACK。如果是,則將HO-CB中的參數(shù)與那些在同步交互ACK信息包中收到的參數(shù)進行比較,看收到的同步交互ACK信息包是否屬于與存儲于確認的HO-CB相同的連接嘗試,見判斷428。如果參數(shù)不相吻合,則收到的同步交互ACK被刪除,如操作436所示,且方法400重新設(shè)置回等候接收信息包。如果參數(shù)相吻合,則確認“TCP三向開放式交互”的最后部分完成。最后,服務(wù)器接口被開放以產(chǎn)生一個開放的接口,見操作430。
      此外,為了釋放用于追蹤另外的連接嘗試的第一存儲器,第一存儲器的原先分配給第一個SYN信息包的部分現(xiàn)在被去除分配,見操作432。通過這種去除分配,第一種類型的控制模塊被作廢。
      為了便于開放,在操作426從HO-CB讀出的參數(shù)被用于產(chǎn)生一個第二種類型的控制模塊(例如開放控制模塊,開放CB),見操作434。該開放CB用于追蹤新開放連接的狀態(tài)。類似于第一種類型的控制模塊,第二種類型的控制模塊可以包含能夠用于追蹤和維護一個開放的連接的任意信息。然而,因為追蹤開放的連接通常需要更多的信息,第二種類型的控制模塊的尺寸大于第一種類型的控制模塊。
      此外,存儲第二種類型的控制模塊的存儲器可以包括前述的任意存儲器(例如圖3的存儲器306等),與卸載引擎相關(guān)的存儲器,或者與結(jié)構(gòu)300和/或網(wǎng)絡(luò)系統(tǒng)200相關(guān)的完全的其它任何存儲器。應(yīng)當注意,盡管如此,第二存儲器邏輯上(可能的話,除邏輯上之外甚至還是物理上)與第一存儲器保持獨立,以使第一存儲器的過載(例如由于數(shù)量過多的連接嘗試、攻擊等等)不會影響到第二存儲器對于開放的連接的追蹤。因為第二種類型的控制模塊的尺寸大于第一種類型的控制模塊,第二存儲器可以通過使尺寸大于第一存儲器來適應(yīng)這一情況。
      如前所述,如果沒有收到正確的同步交互ACK(如圖4B的判斷422所示),則確定是否收到另一個SYN信息包。
      現(xiàn)在參考圖4C,首先確定卸載引擎是否收到另一個SYN信息包,見判斷441。根據(jù)判斷441的結(jié)果,如果沒有收到另一個信息包,則在操作454處理另一個信息包類型。無論如何,類似于圖4A的判斷406,確定下一個SYN信息包是否在判斷442被接受。就如第一個被接受的SYN信息包,接受第二個收到的SYN信息包的決定可以由本地主機或卸載引擎作出。如果第二個收到的SYN信息包不被接受,則產(chǎn)生一個RST信息包,如操作450所示,并發(fā)送到產(chǎn)生第二個收到的SYN信息包的遠端主機,見操作452。然后方法400重新設(shè)置回等待下一個信息包,如操作440所示。
      判斷442,如果第二個收到的SYN信息包被接受,則產(chǎn)生一個用于前述SYN信息包的雜亂信號,如操作444所示。如果在操作444產(chǎn)生的雜亂信號不同于為第一個收到的SYN信息包產(chǎn)生的雜亂信號,第一存儲器的一個不同的部分被分配給第二個收到的SYN信息包,見操作446。
      如果在操作444產(chǎn)生的雜亂信號與為第一個收到的SYN信息包產(chǎn)生的雜亂信號相符,則在操作446,第一存儲器中分配給用于第一個收到的SYN信息包的存儲器部分將被用于第二個收到的SYN信息包的連接參數(shù)過寫。換句話說,在雜亂信號沖突的情況下,與第一個SYN信息包相關(guān)的過寫控制模塊的參數(shù)可以被第二個SYN信息包的相應(yīng)參數(shù)所取代。
      如果第二個SYN信息包是一個由遠端主機重新發(fā)送的SYN信息包,則參數(shù)在CB中不被過寫,因為第二個SYN信息包是用于同一個連接嘗試。如果用于收到的SYN的雜亂信號相符,第一或第二SYN信息包(或兩者)可能是一個攻擊的組分,或者是由于遠端主機重新發(fā)送一個SYN信息包所致。如果越來越多的SYN信息包被收到,而“TCP三向開放式交互”連接沒有完成,則第一存儲器有被過載的危險。在任何情況下,允許連續(xù)地收到接受的SYN信息包(其雜亂信號值與先前收到的SYN信息包相符),以過寫第一存儲器的相應(yīng)部分,可以確保第一存儲器不會被過載。
      不管第二個收到的SYN信息包的雜亂信號是否與第一個收到的SYN信息包相符,如果SYN信息包被接受,則產(chǎn)生一個SYN/ACK信息包并發(fā)送回發(fā)出第二個接受的信息包的遠端主機,如操作448所示。
      現(xiàn)在參考圖4D,方法400由圖4C延續(xù),以在操作460通過相同的等待配合下一個信息包。特別的,首先確定是否收到一個SYN信息包的同步交互ACK,見判斷462。如果不是一個同步交互ACK,則方法相應(yīng)地處理收到的信息包,見操作464。
      然而,如果收到的信息包是一個ACK,則產(chǎn)生一個雜亂信號,見操作466。然后產(chǎn)生的雜亂信號指向的HO-CB被恢復,如操作467所示。之后由HO-CB恢復的參數(shù)被用于確定收到的ACK是否是一個同步交互ACK。如果是,則將同步交互ACK的參數(shù)與HO-CB中包含的參數(shù)進行比較。
      如果它們不匹配,則ACK信息包被刪除,處理回復到等待一個信息包,見操作470。這里將有一種情況,第一個SYN信息包的一個同步交互ACK在收到第二個SYN信息包之后收到,而第二個信息包具有一個與第一個收到的SYN信息包相符的雜亂信號。在這種情況下,當?shù)诙€收到的信息包被收到時,第一個收到的SYN的HO-CB參數(shù)將被過寫。因此,當?shù)谝粋€收到的SYN的同步交互ACK被收到,并取得相應(yīng)的HO-CB,取得的參數(shù)將變成第二個收到的SYN信息包的參數(shù),且與第一個收到的SYN信息包的同步交互ACK的參數(shù)不相匹配。
      在判斷468,如果從HO-CB取得的參數(shù)確實與收到的同步交互ACK中的參數(shù)相匹配,則處理跟隨圖4B所示的相同的步驟。特別的,在操作472,一個服務(wù)器接口被開放。第一存儲器中用于存儲與收到的同步交互ACK相關(guān)的連接的HO-CB的部分被重新分配,如操作474所示。此外,第二存儲器的一個部分被分配用于追蹤和維護新開放的連接,如操作476所示。
      圖4E顯示了一種情況,既沒有收到圖4B/D的同步交互ACK,也沒有收到圖4C的另一個SYN信息包。使用中,附加的SYN/ACK信息包被定期地重發(fā)以響應(yīng)SYN信息包,以盡力得出適當?shù)耐浇换CK響應(yīng),見操作482。作為一個選擇,SYN/ACK信息包可以基于與相應(yīng)控制模塊相關(guān)的時間戳被重發(fā)。如果在多次SYN/ACK重發(fā)后,沒有從同伴收到同步交互ACK響應(yīng),則卸載引擎可以認為連接嘗試已被異常中斷,見判斷480。嘗試重新發(fā)送的次數(shù)可以預(yù)先設(shè)定和/或由用戶設(shè)定。如果連接嘗試被認為異常中斷,則第一存儲器中分配給連接嘗試的部分被重新分配并自由用于將來的連接嘗試,見操作484。
      根據(jù)一個典型的實施例,圖5顯示了一個典型的設(shè)計和操作500,用于建立網(wǎng)絡(luò)連接同時避免存儲器分支的過載。作為選擇,設(shè)計和操作500可以在前面的附圖所公開的情況下實現(xiàn)。當然,盡管這樣,應(yīng)當注意的是,設(shè)計和操作500可以在任意期望的情況下實現(xiàn)。最重要的是,典型的設(shè)計和操作500只是為解釋的目的予以闡明,不應(yīng)認為是任意形式的限制。在本說明書的上下文中,主機驅(qū)動器被定義為一個位于本地主機上的,與卸載引擎結(jié)合的SW組件。
      如圖所示,典型的設(shè)計與操作500顯示了一個與處理器相關(guān)的主機驅(qū)動器502,該處理器依次與卸載引擎501通信,該卸載引擎501包含多個典型組件。例如,圖示的卸載引擎501包括一個接收器518,一個異常處理器520,一個控制模塊(CB)輪詢器516,一個指令模塊(IB)先進先出(FIFO)隊列504,一個狀態(tài)信息發(fā)生器522,一個IB剖析器506,CB存儲器512/514,一個CB界面508,一個先進先出(FIFO)緩沖器510和一個數(shù)據(jù)信息包發(fā)生器(圖未示),這些組件如圖所示相互連接。通過以下對典型的設(shè)計和操作500的討論,所述各種組件的功能將進一步被闡明。
      使用中,卸載引擎501通過接收器518接收SYN信息包,然后一個與信息包相關(guān)的校驗和被確認。如果確認成功,則SYN信息包被作為一個異常信息包,通過主機驅(qū)動器利用異常處理器520發(fā)送給主機。并由狀態(tài)信息發(fā)生器522產(chǎn)生一個狀態(tài)信息,發(fā)送到主機驅(qū)動器502,顯示一個SYN信息包已被收到。
      在主機,驅(qū)動器502通過檢查目標端口、IP地址以及一個界面對SYN信息包進行檢查,在所述界面,信息包被接收以確定其是否與將被開放的連接相關(guān)。如果互聯(lián)網(wǎng)安全性協(xié)議(IPSEC)被使用,使用(或未使用)的保護可以在保單列表被確認。
      如果驅(qū)動器502希望允許瞬間連接,則發(fā)出一個SYNACK IB。然后這個IB被卸載引擎501進行硬件處理首先利用FIFO隊列504進行存儲/排隊,然后利用IB剖析器506進行剖析。該IB可以包含產(chǎn)生一個用于連接的半開放(HO)控制模塊(CB)所需要的所有信息,包括在接口轉(zhuǎn)變到一個建立的狀態(tài)時使用的一個句柄。
      一旦收到SYNACK IB,卸載引擎501可以利用界面508和相關(guān)組件產(chǎn)生一個HO-CB,并響應(yīng)SYN信息包發(fā)出一個SYN/ACM信息包。當從遠端主機收到一個同步交互ACK時,HO-CB可以利用提供的句柄轉(zhuǎn)換到一個開放的CB。這時,可以產(chǎn)生一個“接口建立”狀態(tài)信息。
      但是,如果主機收到另一個SYN信息包,該信息包在先前的連接獲得建立的狀態(tài)前,產(chǎn)生一個與先前收到的連接嘗試相符的雜亂信號,則先前的HO-CB被新連接嘗試的參數(shù)過寫。這為卸載引擎501提供了過載保護。在這種情況下,一個狀態(tài)信息可以被發(fā)送到主機驅(qū)動器,以顯示用于先前的HO-CB的CB句柄可以被釋放并再次使用。這時,CB輪詢器516可以以必要的前述的方式處理SYN/ACK信息包的重發(fā)。
      根據(jù)一個典型的實施例,圖6顯示了一個替換的設(shè)計和操作600,用于建立網(wǎng)絡(luò)連接并避免存儲器分支的過載。作為選擇,設(shè)計和操作600可以在前面的附圖所公開的情況下實現(xiàn)。當然,盡管這樣,應(yīng)當注意的是,設(shè)計和操作600可以在任意期望的情況下實現(xiàn)。最重要的是,典型的設(shè)計和操作500只是為解釋的目的予以闡明,不應(yīng)認為是任意形式的限制。
      如圖所示,典型的設(shè)計和操作600顯示了圖5所示的相同的組件,附加了一個服務(wù)器端口和信息列表602,和一個CB分配器604。
      使用中,卸載引擎501通過接收器518收到一個SYN信息包,然后一個與信息包相關(guān)的校驗和被確認。如果確認成功,則SYN信息包特定的TCP端口在服務(wù)器端口和信息列表602被檢查。
      如果端口被認為有權(quán)接受連接,則HO-CB存儲器514產(chǎn)生一個HO-CB,通過利用SYN信息包中收到的參數(shù)和與服務(wù)器端口和信息列表602中的目標端口相關(guān)的參數(shù)。然后,接收器518通過FIFO510請求一個SYN/ACK響應(yīng)。當連接嘗試的同步交互ACK從遠端主機被收到,HO CB可以利用CB分配器604提供的一個句柄轉(zhuǎn)換到一個開放的CB。這時,通過狀態(tài)信息發(fā)生器可以產(chǎn)生一個“接口建立”狀態(tài)信息。
      但是,如果卸載引擎501在先前的連接獲得建立狀態(tài)之前收到另一個SYN信息包,先前的HO CB可以被新的連接嘗試參數(shù)過寫,只要第二個收到的SYN信息包產(chǎn)生的雜亂信號與先前收到的連接嘗試的SYN的雜亂信號相符。這也為卸載引擎501提供了過載保護。這種情況下,可以無需向主機驅(qū)動器發(fā)送一個狀態(tài)信息,因為主機驅(qū)動器只關(guān)心連接建立的通知。
      雖然以上列舉了各種實施例,應(yīng)當理解,它們只是通過例子的形式予以描述,而不是用于限制。因此,優(yōu)選的實例的范圍不應(yīng)局限于上述的任何典型實施例,而應(yīng)當以權(quán)利要求限定的范圍為準。
      權(quán)利要求
      1.一種用于建立網(wǎng)絡(luò)連接的方法,其特征在于包括確定一個在網(wǎng)絡(luò)上建立連接的嘗試;和分配存儲器的一個部分用于存儲與所述連接相關(guān)的數(shù)據(jù)。
      2.如權(quán)利要求1所述的方法,其特征在于,如果第二個建立連接的嘗試具有至少一種與前述嘗試相關(guān)的情形,則所述存儲器的所述部分被過寫,以避免存儲器過載。
      3.如權(quán)利要求2所述的方法,其特征在于,每一次在網(wǎng)絡(luò)上建立連接的嘗試均通過確定一個信息包來完成。
      4.如權(quán)利要求3所述的方法,其特征在于,所述信息包是一個同步信息包。
      5.如權(quán)利要求3所述的方法,其特征在于,還包括以一個信息包確認響應(yīng)所述信息包。
      6.如權(quán)利要求3所述的方法,其特征在于,還包括產(chǎn)生一個與每一個信息包相關(guān)的雜亂信號,所述信息包與在網(wǎng)絡(luò)上建立連接的嘗試相關(guān)。
      7.如權(quán)利要求6所述的方法,其特征在于,所述雜亂信號用于確定隨后的建立連接的嘗試是否具有至少一種與先前的嘗試相關(guān)的情形。
      8.如權(quán)利要求7所述的方法,其特征在于,所述至少一種情形包括一個IP地址。
      9.如權(quán)利要求7所述的方法,其特征在于,所述至少一種情形包括一個TCP端口。
      10.如權(quán)利要求7所述的方法,其特征在于,所述雜亂信號作為一個指向存儲于所述存儲器的所述部分的數(shù)據(jù)的指示,且所述數(shù)據(jù)包括一個控制模塊。
      11.如權(quán)利要求10所述的方法,其特征在于,與連接嘗試相關(guān)的多個控制模塊的尺寸小于與開放的連接相關(guān)的多個控制模塊。
      12.如權(quán)利要求10所述的方法,其特征在于,所述控制模塊包括一個句柄,IP地址,TCP端口和一個時間戳。
      13.如權(quán)利要求1所述的方法,其特征在于,所述存儲器包括分配給與連接嘗試相關(guān)的數(shù)據(jù)的一個第一存儲器。
      14.如權(quán)利要求13所述的方法,其特征在于,一個邏輯上獨立于所述第一存儲器的第二存儲器被分配給與開放的連接相關(guān)的數(shù)據(jù),以使所述第一存儲器的過載不會影響所述開放的連接。
      15.如權(quán)利要求14所述的方法,其特征在于,所述第二存儲器被分配給一個第二種類型的控制模塊,其尺寸大于所述第一存儲器分配的第一種類型的控制模塊。
      16.如權(quán)利要求1所述的方法,其特征在于,還包括當收到一個連接嘗試的同步交互確認時,所述存儲器的所述部分的去除分配。
      17.如權(quán)利要求16所述的方法,其特征在于,還包括當所述連接嘗試成功時,分配另一個存儲器的一個部分用于一個開放的連接。
      18.如權(quán)利要求2所述的方法,其特征在于,所述存儲器的過載源于一個阻斷服務(wù)攻擊。
      19.如權(quán)利要求1所述的方法,其特征在于,每一個在網(wǎng)絡(luò)上建立連接的嘗試的處理是通過向一個處理器發(fā)送一個同步信息包以確定所述同步信息包是否將被接受。
      20.如權(quán)利要求1所述的方法,其特征在于,每一個在網(wǎng)絡(luò)上建立連接的嘗試的處理是通過利用一個卸載引擎以確定一個同步信息包是否將被接受。
      21.一個卸載引擎子系統(tǒng),用于建立網(wǎng)絡(luò)連接,同時避免存儲器分支的過載,其特征在于,所述卸載引擎子系統(tǒng)包括一個卸載引擎,用于確定一個在網(wǎng)絡(luò)上建立一個連接的嘗試,以及分配存儲器的一個部分用于存儲與所述連接相關(guān)的信息;其中所述存儲器的所述部分可以被過寫以避免存儲器的過載。
      22.一個系統(tǒng),用于建立網(wǎng)絡(luò)連接,同時避免存儲器分支的過載,其特征在于,所述系統(tǒng)包括一個處理器;一個卸載引擎,通過一條總線與所述處理器和一個網(wǎng)絡(luò)通信,所述卸載引擎用于確定一個在網(wǎng)絡(luò)上建立一個連接的嘗試,以及分配存儲器的一部分用于存儲與所述連接相關(guān)的數(shù)據(jù)。其中,所述存儲器的所述部分可以被過寫以避免存儲器的過載。
      全文摘要
      本發(fā)明提供了一種用于建立網(wǎng)絡(luò)連接的系統(tǒng)和方法。首先,一個在網(wǎng)絡(luò)上建立連接的嘗試被確認,然后,存儲器的一個部分被分配用于存儲與連接相關(guān)的數(shù)據(jù)。
      文檔編號H04L29/06GK1638343SQ200410104980
      公開日2005年7月13日 申請日期2004年12月20日 優(yōu)先權(quán)日2003年12月19日
      發(fā)明者米納米·約翰·希吉托, 約翰遜·邁克爾·瓦爾德, 烏耶希羅·羅賓·亞蘇 申請人:恩維迪亞公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1