新四季網

用於傳輸卸載引擎的連接管理系統和方法

2023-06-24 14:33:36 6

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

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


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀