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

用于管理網絡中的數(shù)據傳送的系統(tǒng)、方法和產品的制作方法

文檔序號:7886886閱讀:264來源:國知局
專利名稱:用于管理網絡中的數(shù)據傳送的系統(tǒng)、方法和產品的制作方法
技術領域
本發(fā)明一般涉及計算機系統(tǒng)領域,尤其涉及一用于管理網絡中的數(shù)據傳送的數(shù)據處理系統(tǒng)、方法和產品。
背景技術
許多現(xiàn)有的計算機系統(tǒng)使用共享總線體系結構,例如外設部件互連(PCI),以便在計算機系統(tǒng)內部在系統(tǒng)的多個處理器和I/O設備之間傳送數(shù)據。這些現(xiàn)有的共享總線體系結構沒有跟得上典型處理器性能的提高。因此,已開發(fā)出一種用于在計算機系統(tǒng)內部在處理器和I/O設備之間傳送數(shù)據的新體系結構,該體系結構通常稱為“Infiniband”。這種新體系結構能夠提供更大的帶寬并且具有增加的可擴充性。
這種新體系結構提供了一種包括基于通道的交換結構(switched-fabric)技術的系統(tǒng)區(qū)域網絡。在這種系統(tǒng)區(qū)域網絡(SAN)中,通過由包組成的消息來傳送數(shù)據。每個設備,無論是處理器還是I/O設備,都包括一通道適配器。消息通過交換機從一個設備的通道適配器傳送到另一個設備的通道適配器。每個通道適配器也可稱為一“端節(jié)點”。
圖1描述了根據現(xiàn)有技術的兩個端節(jié)點,每個端節(jié)點包括一隊列對。當端節(jié)點A 100需要向端節(jié)點B 108傳送數(shù)據時,在包含在端節(jié)點A內的一隊列對和包含在端節(jié)點B內的一隊列對之間建立一邏輯連接。然后將數(shù)據從端節(jié)點A中的隊列對的發(fā)送隊列傳送到端節(jié)點B中的隊列對的接收隊列。將響應從端節(jié)點B中的隊列對的發(fā)送隊列傳送到端節(jié)點A中的隊列對的接收隊列。端節(jié)點A 100包括一隊列對102。隊列對102包括一發(fā)送隊列104和一接收隊列106。端節(jié)點B 108包括一隊列對110。隊列對110包括一接收隊列112和一發(fā)送隊列114。將請求從發(fā)送隊列發(fā)送到接收隊列并將響應從接收隊列發(fā)送回接收隊列。請求116由響應118確認。請求120由響應122確認。
可以利用五種不同的傳輸類型之一來傳送消息并因而傳輸包,這五種傳輸類型是可靠連接(RC)、可靠數(shù)據報(RD)、不可靠連接(UC)、不可靠數(shù)據報(UD)或原始數(shù)據報(RawD)。當使用可靠連接傳輸類型時,每個包中包含序號,并且確認包的傳送。
當在兩個端節(jié)點之間建立一邏輯連接時建立起始序號。每傳送一個包,就遞增該序號并使該包包含該序號。因此,包的序號用于識別該包在包序列中的位置。
在現(xiàn)有技術中,每個包中包括一組特殊的位或一字段以表示該序號。因此序號就是這整個一組位。
請求116中包含的包序號(PSN)與響應118中包含的包序號是相同的。請求120中包含的包序號(PSN)與響應122中包含的包序號是相同的。請求116和響應118中包含的包序號與請求120和響應122中包含的包序號沒有關系,盡管它們都使用同一組隊列對。
通常,每傳送一個請求包,請求者節(jié)點就將該PSN加1。響應者節(jié)點將接收到的請求中的PSN與其自身的PSN(希望的PSN)相比較,對于其自身的PSN,響應者每接收一個請求包也加1。如果兩個PSN匹配,則然后響應者可使用與正在確認的請求包中的PSN相同的PSN發(fā)送一個對該請求的響應(確認)。然后再在請求者中,將該響應包中的PSN與請求者的響應PSN進行比較,來查看該響應包中的PSN是否與請求者自身的響應PSN(希望的PSN)相同,對于其自身的響應PSN,請求者也加1。
允許請求者發(fā)送多個包而不接收一響應包。請求者可能在若干時間后接收到響應包,但是這些響應包中的PSN要與請求者的響應PSN記數(shù)器相比較。如果所有的請求包的PSN與該響應者的內部的PSN相匹配而且所有的響應包的PSN與該請求者的內部的PSN相匹配,則所有包已成功地從一個端節(jié)點傳送到另一個端節(jié)點(從一發(fā)送隊列到一接收隊列)。
在響應者中必須檢測到并解決兩種不正常的情況,以確??煽坎僮鳌5谝环N情況是重復的包,第二種情況是無效的包。
當請求者不止一次地發(fā)送一請求包時,在響應者中檢測到重復的包。當該請求者檢測到包可能已丟失時,它將不止一次地發(fā)送包。圖2示出了根據現(xiàn)有技術傳送重復的包的梯形圖。端節(jié)點200傳送包括PSN=1的請求包204,并且響應者即端節(jié)點202接收請求包204。包括PSN=1的響應即確認206或者丟失或者延遲。在這種情況下,請求者即端節(jié)點200檢測到一超時情況并重新發(fā)送包括相同的PSN(PSN=1)的與請求208相同的請求。響應者即端節(jié)點202確定該PSN是重復的(即該請求有一個比端節(jié)點202的內部計數(shù)“早”的PSN),并且該響應者再次發(fā)送響應,作為具有相同的PSN(PSN=1)的確認210。
當響應者接收到一個具有一在該響應者內部計數(shù)“前面”的PSN的包時,在響應者中檢測到無效的包。圖3示出了根據現(xiàn)有技術接收無效的包的梯形圖。請求者即端節(jié)點300傳送一個包括PSN=1的請求304、一個包括PSN=2的請求308和一個包括PSN=3的請求310。請求304被包括PSN=1的確認306正確地確認。包括PSN=2的請求308在該結構中丟失。因此響應者即端節(jié)點302看到具有PSN=1的請求304,后面跟著具有PSN=3的請求310。因此請求310是一個無效的包。這種情況下,響應者即端節(jié)點302重新發(fā)送針對PSN=1的請求包的確認312,并且請求者從具有PSN=2的請求314開始重新發(fā)送所有包。
在請求者中,響應包具有類似的規(guī)則。請求者檢測到的重復的包被丟棄掉。只有當一請求包沒有丟失而只是在該結構中延遲了足夠長的時間而導致該請求者重新發(fā)送該包時,這種情況才會發(fā)生。具有重復的PSN的第二個響應被丟棄。當在該結構中多個包響應中的一個或多個包丟失時,請求者中會出現(xiàn)無效的PSN。在這種情況下,請求者再次發(fā)送請求。
PSN使用包含在每個包中的傳輸報頭中的固定并數(shù)量有限的位。因此,當生成PSN的計數(shù)器從它們的最大值返回零時,可以連續(xù)地再利用這些PSN。通過使用一個遠大于可能的未完成的包的數(shù)量的PSN,請求者和響應者就建立了處于重復和無效范圍內一個包序號范圍。
當正在包的傳送過程中兩個端節(jié)點間的邏輯連接被終止(斷開)并且隨后被重建時,PSN會出現(xiàn)問題。這種情況下,來自舊的、過時的連接的包可能到達響應者。當這個包實際是來自舊的連接的過時的包時,該響應者可能將這個包認為是一有效的包。
現(xiàn)有技術中描述的一種解決方法是在斷開特定的兩組隊列對之間的邏輯連接和在該相同的兩組隊列對之間重建新的邏輯連接之間添加等待狀態(tài)。因此,端節(jié)點等待足夠長的時間以使得來自舊的連接的所有可能的過時的包到期。盡管這種方法確實解決了這個問題,但是它會嚴重影響端節(jié)點的性能,特別是當經常斷開連接然后重建連接時尤其是這樣。
因此,需要一種有效地管理網絡中的數(shù)據傳送的方法、系統(tǒng)和產品。

發(fā)明內容
在第一個方面,本發(fā)明提供了一種用于在一數(shù)據處理網絡中管理從第一端節(jié)點傳送到第二端節(jié)點的數(shù)據的方法。所述方法包括下列步驟在所述第一端節(jié)點和第二端節(jié)點之間傳送數(shù)據之前,在所述第一端節(jié)點和第二端節(jié)點之間建立一邏輯連接;使一實例號與所述邏輯連接相關聯(lián);當所述邏輯連接保持存在時使所述第一端節(jié)點和第二端節(jié)點之間傳送的每個包包含所述實例號,在所述邏輯連接期間所述實例號保持恒定。
該方法優(yōu)選地還包括下列步驟在所述第一和第二端節(jié)點之間重建所述邏輯連接;遞增所述實例號,所述遞增的實例號與所述重建的邏輯連接相關聯(lián);在所述重建的邏輯連接期間使所述第一端節(jié)點和第二端節(jié)點之間傳送的每個包包含所述遞增的實例號,在所述重建的邏輯連接期間所述遞增的實例號保持恒定。
優(yōu)選地,在所述第一和第二端節(jié)點之間建立一邏輯連接的步驟還包括下列步驟使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)。
優(yōu)選地,使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的步驟還包括下列步驟在所述第一端節(jié)點內建立一個隊列對表;在所述表內存儲表示所述第一端節(jié)點內的所述隊列對與所述第二端節(jié)點內的所述隊列對之間的關聯(lián)性的指示。
該方法優(yōu)選地還包括下列步驟利用一特定的邏輯連接從所述第二端節(jié)點向所述第一端節(jié)點傳送包;利用所述第一端節(jié)點接收所述包;利用所述表確定以前是否已建立過所述特定邏輯連接。
優(yōu)選地,使用所述表確定以前是否已建立過所述特定邏輯連接的步驟還包括下列步驟確定一個指示是否保存在所述表中,所述指示表示了所述第一端節(jié)點中的一隊列對和所述第二端節(jié)點中的一隊列對之間的關聯(lián)性。
該方法優(yōu)選地還包括下列步驟在所述邏輯連接期間使所述第一端節(jié)點和第二端節(jié)點之間傳送的每個包中的一傳輸報頭包含所述實例號。
該方法優(yōu)選地還包括下列步驟在所述邏輯連接期間使所述第一端節(jié)點和第二端節(jié)點之間傳送的每個包中的一傳輸報頭中的一序號字段包含所述實例號。
該方法優(yōu)選地還包括下列步驟在所述邏輯連接期間使所述第一端節(jié)點和第二端節(jié)點之間傳送的包中包含的每個序號包含所述實例號。
該方法優(yōu)選地還包括下列步驟確定所述邏輯連接是否是所述第一和第二端節(jié)點之間的第一邏輯連接;響應于確定所述邏輯連接是第一邏輯連接使一實例號與所述邏輯連接相關聯(lián);在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包包含所述實例號,在所述邏輯連接期間所述實例號保持恒定;并將所述實例號用作一當前的實例號;以及響應于確定所述邏輯連接不是第一邏輯連接遞增所述當前的實例號;將所述遞增的當前的實例號用作一當前的實例號;并在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包包含所述遞增的當前的實例號。
該方法優(yōu)選地還包括下列步驟終止所述邏輯連接;在所述第一和第二端節(jié)點之間重建所述邏輯連接,在終止所述邏輯連接和重建所述邏輯連接之間不執(zhí)行等待狀態(tài)。
該方法優(yōu)選地還包括下列步驟從所述第一端節(jié)點向所述第二端節(jié)點傳送包;以及在所述包中包含一當前的實例號。
該方法優(yōu)選地還包括下列步驟所述第二端節(jié)點接收包;利用所述第二端節(jié)點識別包含在所述接收的包中的一實例號;確定一當前的實例號;確定包含在所述接收的包中的所述實例號是否是所述當前的實例號;響應于確定包含在所述接收的包中的所述實例號是所述當前的實例號,由所述第二端節(jié)點正常處理所述包;以及響應于確定包含在所述接收的包中的所述實例號不是所述當前的實例號,由所述第二端節(jié)點丟棄所述包。
該方法優(yōu)選地還包括下列步驟在建立所述邏輯連接后,所述第一端節(jié)點設定一序號;從所述第一端節(jié)點向所述第二端節(jié)點每傳送一個包后遞增所述序號;從所述第一端節(jié)點向所述第二端節(jié)點每傳送一個包后,設定當前的序號等于所述遞增的序號;以及使從所述第一端節(jié)點向所述第二端節(jié)點傳送的每個包包含當前的序號。
在第二個方面,本發(fā)明提供了一種用于在一數(shù)據處理系統(tǒng)中管理從第一端節(jié)點傳送到第二端節(jié)點的數(shù)據的方法,所述方法包括下列步驟在所述第一和第二端節(jié)點之間傳送數(shù)據之前在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接;使從所述第一端節(jié)點向第二端節(jié)點傳送的每個包包含一當前的序號,從所述第一端節(jié)點向所述第二端節(jié)點每傳送一個包就遞增所述當前的序號;使一實例號與所述邏輯連接相關聯(lián);以及使每個序號包含所述實例號,所述實例號在所述邏輯連接期間保持恒定。
該方法優(yōu)選地還包括下列步驟在所述第一和第二端節(jié)點之間重建所述邏輯連接;遞增所述實例號,使所述遞增的實例號與所述重建的邏輯連接相關聯(lián);以及使每個序號包含所述遞增的實例號,所述遞增的實例號在所述重建的邏輯連接期間保持恒定。
優(yōu)選地,在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接的步驟還包括下列步驟使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)。
優(yōu)選地,使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的步驟還包括下列步驟在所述第一端節(jié)點內建立一個隊列對表;以及在所述表中存儲表示所述第一端節(jié)點內的所述隊列對與所述第二端節(jié)點內的隊列對之間的關聯(lián)性的指示。
該方法優(yōu)選地還包括下列步驟利用一特定的邏輯連接從所述第二端節(jié)點向所述第一端節(jié)點傳送包;利用所述第一端節(jié)點接收所述包;利用所述表來確定以前是否已建立過所述特定邏輯連接。
優(yōu)選地,利用所述表來確定以前是否已建立過所述特定邏輯連接的步驟還包括下列步驟確定一個指示是否保存在所述表中,所述指示表示了所述第一端節(jié)點中的一隊列對和所述第二端節(jié)點中的一隊列對之間的關聯(lián)性。
該方法優(yōu)選地還包括下列步驟確定所述邏輯連接是否是所述第一和第二端節(jié)點之間的第一邏輯連接;響應于確定所述邏輯連接是第一邏輯連接使一實例號與所述邏輯連接相關聯(lián);在所述邏輯連接期間使在所述第一和第二端節(jié)點之間傳送的每個序號包含所述實例號;并使用所述實例號作為一當前的實例號;以及響應于確定所述邏輯連接不是第一邏輯連接遞增所述當前的實例號;使用所述遞增的當前的實例號作為一當前的實例號;并在所述邏輯連接期間使在所述第一和第二端節(jié)點之間傳送的每個序號包含所述遞增的當前的實例號。
該方法優(yōu)選地還包括下列步驟終止所述邏輯連接;以及在所述第一和第二端節(jié)點之間重建所述邏輯連接,在終止所述邏輯連接和重建所述邏輯連接之間不執(zhí)行等待狀態(tài)。
該方法優(yōu)選地還包括下列步驟所述第二端節(jié)點接收包;利用所述第二端節(jié)點識別包含在所述接收的包中的一實例號;確定一當前的實例號;確定包含在所述接收的包中的所述實例號是否是所述當前的實例號;響應于確定包含在所述接收的包中的所述實例號是所述當前的實例號,由所述第二端節(jié)點正常處理所述包;以及響應于確定包含在所述接收的包中的所述實例號不是所述當前的實例號,所述第二端節(jié)點丟棄所述包。
第三個方面,本發(fā)明提供一種用于在數(shù)據處理系統(tǒng)內管理從第一端節(jié)點傳送到第二端節(jié)點的數(shù)據的所述數(shù)據處理系統(tǒng),包括用于在所述第一和第二端節(jié)點之間傳送數(shù)據之前在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接的裝置;用于使一實例號與所述邏輯連接相關聯(lián)的裝置;用于當所述邏輯連接保持存在時使所述第一和第二端節(jié)點之間傳送的每個包包含所述實例號的裝置,在所述邏輯連接期間所述實例號保持恒定。
該系統(tǒng)優(yōu)選地還包括用于在所述第一和第二端節(jié)點之間重建所述邏輯連接的裝置;用于遞增所述實例號的裝置,所述遞增的實例號與所述重建的邏輯連接相關聯(lián);用于在所述重建的邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包包含所述遞增的實例號的裝置,在所述重建的邏輯連接期間所述遞增的實例號保持恒定。
優(yōu)選地,用于在所述第一端節(jié)點和第二端節(jié)點之間建立一邏輯連接的裝置還包括用于使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的裝置。
優(yōu)選地,用于使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的所述裝置還包括用于在所述第一端節(jié)點內建立一個隊列對表的裝置;以及用于在所述表內存儲表示所述第一端節(jié)點內的所述隊列對與所述第二端節(jié)點內的所述隊列對之間的關聯(lián)性的指示的裝置。
該系統(tǒng)優(yōu)選地還包括用于利用一特定的邏輯連接從所述第二端節(jié)點向所述第一端節(jié)點傳送包的裝置;利用所述第一端節(jié)點接收所述包的裝置;以及用于利用所述表來確定以前是否已建立過所述特定邏輯連接的裝置。
優(yōu)選地,用于使用所述表來確定以前是否已建立過所述特定邏輯連接的所述裝置還包括用于確定一個指示是否保存在所述表中的裝置,所述指示表示了所述第一端節(jié)點中的一隊列對和所述第二端節(jié)點中的一隊列對之間的關聯(lián)性。
該系統(tǒng)優(yōu)選地還包括用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包中的一傳輸報頭包含所述實例號的裝置。
該系統(tǒng)優(yōu)選地還包括用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包中的一傳輸報頭中的一序號字段包含所述實例號的裝置。
該系統(tǒng)優(yōu)選地還包括用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的包中所包含的每個序號包含所述實例號的裝置。
該系統(tǒng)優(yōu)選地還包括用于確定所述邏輯連接是否是所述第一和第二端節(jié)點之間的第一邏輯連接的裝置;響應于確定所述邏輯連接是第一邏輯連接用于使一實例號與所述邏輯連接相關聯(lián)的裝置;用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包包含所述實例號的裝置,在所述邏輯連接期間所述實例號保持恒定;和用于使用所述實例號作為一當前的實例號的裝置;以及響應于確定所述邏輯連接不是第一邏輯連接用于遞增所述當前的實例號的裝置;用于使用所述遞增的當前的實例號作為一當前的實例號的裝置;和用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個包包含所述遞增的當前的實例號的裝置。
該系統(tǒng)優(yōu)選地還包括用于終止所述邏輯連接的裝置;用于在所述第一和第二端節(jié)點之間重建所述邏輯連接的裝置,在終止所述邏輯連接和重建所述邏輯連接之間不執(zhí)行等待狀態(tài)。
該系統(tǒng)優(yōu)選地還包括用于從所述第一端節(jié)點向所述第二端節(jié)點傳送包的裝置;用于使所述包包含一當前的實例號的裝置。
該系統(tǒng)優(yōu)選地還包括用于由所述第二端節(jié)點接收包的裝置;用于利用所述第二端節(jié)點識別包含在所述接收的包中的一實例號的裝置;用于確定一當前的實例號的裝置;用于確定包含在所述接收的包中的所述實例號是否是所述當前的實例號的裝置;響應于確定包含在所述接收的包中的所述實例號是所述當前的實例號,用于由所述第二端節(jié)點正常處理所述包的裝置;以及響應于確定包含在所述接收的包中的所述實例號不是所述當前的實例號,用于由所述第二端節(jié)點丟棄所述包的裝置。
該系統(tǒng)優(yōu)選地還包括在建立所述邏輯連接后,用于由所述第一端節(jié)點設定一序號的裝置;用于從所述第一端節(jié)點向所述第二端節(jié)點每傳送一個包就遞增所述序號的裝置;用于從所述第一端節(jié)點向所述第二端節(jié)點每傳送一個包,就設定當前的序號等于所述遞增的序號的裝置;以及用于使從所述第一端節(jié)點向所述第二端節(jié)點傳送的每個包包含一當前的序號的裝置。
在第四個方面,本發(fā)明提供一種用于在一數(shù)據處理系統(tǒng)中管理從第一端節(jié)點傳送到第二端節(jié)點的數(shù)據的系統(tǒng),包括用于在所述第一和第二端節(jié)點之間傳送數(shù)據之前在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接的裝置;用于使從所述第一端節(jié)點向第二端節(jié)點傳送的每個包包含一當前的序號的裝置,從所述第一端節(jié)點向所述第二端節(jié)點每傳送一個包就遞增所述當前的序號;用于使一實例號與所述邏輯連接相關聯(lián)的裝置;以及用于每個序號包含所述實例號的裝置,所述實例號在所述邏輯連接期間保持恒定。
該系統(tǒng)優(yōu)選地還包括用于在所述第一和第二端節(jié)點之間重建所述邏輯連接的裝置;用于遞增所述實例號的裝置,所述遞增的實例號與所述重建的邏輯連接相關聯(lián);用于使每個序號包含所述遞增的實例號的裝置,所述遞增的實例號在所述重建的邏輯連接期間保持恒定。
優(yōu)選地,用于在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接的該裝置還包括用于使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的裝置。
優(yōu)選地,用于使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的該裝置還包括用于在所述第一端節(jié)點內建立一個隊列對表的裝置;用于使用所述表存儲表示所述第一端節(jié)點內的所述隊列對與所述第二端節(jié)點內的所述隊列對之間的關聯(lián)性的指示的裝置。
該系統(tǒng)優(yōu)選地還包括用于利用一特定的邏輯連接從所述第二端節(jié)點向所述第一端節(jié)點傳送一個包的裝置;利用所述第一端節(jié)點接收所述包的裝置;以及用于利用所述表來確定以前是否已建立過所述特定邏輯連接的裝置。
優(yōu)選地,用于利用所述表來確定以前是否已建立過所述特定邏輯連接的所述裝置還包括用于確定一個指示是否保存在所述表中的裝置,所述指示表示了所述第一端節(jié)點中的一隊列對和所述第二端節(jié)點中的一隊列對之間的關聯(lián)性。
該系統(tǒng)優(yōu)選地還包括用于確定所述邏輯連接是否是所述第一和第二端節(jié)點之間的第一邏輯連接的裝置;響應于確定所述邏輯連接是第一邏輯連接用于使一實例號與所述邏輯連接相關聯(lián)的裝置;用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個序號包含所述實例號的裝置;和用于使用所述實例號作為一當前的實例號的裝置;以及響應于確定所述邏輯連接不是第一邏輯連接用于遞增所述當前的實例號的裝置;用于使用所述遞增的當前的實例號作為一當前的實例號的裝置;和用于在所述邏輯連接期間使所述第一和第二端節(jié)點之間傳送的每個序號包含所述遞增的當前的實例號的裝置。
該系統(tǒng)優(yōu)選地還包括用于終止所述邏輯連接的裝置;以及用于在所述第一和第二端節(jié)點之間重建所述邏輯連接的裝置,在終止所述邏輯連接和重建所述邏輯連接之間不執(zhí)行等待狀態(tài)。
該系統(tǒng)優(yōu)選地還包括用于由所述第二端節(jié)點接收一個包的裝置;用于利用所述第二端節(jié)點識別包含在所述接收的包中的一實例號的裝置;用于確定一當前的實例號的裝置;用于確定包含在所述接收的包中的所述實例號是否是所述當前的實例號的裝置;響應于確定包含在所述接收的包中的所述實例號是所述當前的實例號,用于由所述第二端節(jié)點正常處理所述包的裝置;以及響應于確定包含在所述接收的包中的所述實例號不是所述當前的實例號,由所述第二端節(jié)點丟棄所述包的裝置。
在第五個方面,本發(fā)明提供一計算機程序,當將該計算機程序加載到一計算機系統(tǒng)并在其上執(zhí)行時,該計算機程序執(zhí)行在第一和第二個方面中的任何方法的步驟。該計算機程序的優(yōu)選特征與在第一和第二個方面中的方法的優(yōu)選步驟相對應。
公開了一種用于在數(shù)據處理系統(tǒng)中管理從包括在該數(shù)據處理系統(tǒng)中的第一端節(jié)點向第二端節(jié)點傳送的數(shù)據的方法、系統(tǒng)和程序。在該第一和第二端節(jié)點之間傳送數(shù)據之前,在這兩個節(jié)點之間建立一特定的邏輯連接。使一實例號與這個特定的邏輯連接相關聯(lián)。當這個邏輯連接保持存在時使在該兩個端節(jié)點之間傳送的每個包包含該實例號。在這個邏輯連接期間該實例號保持恒定。在這些端節(jié)點之間每次重建一邏輯連接就改變該實例號,例如遞增它。因此每個包與該邏輯連接的一特定實例相關聯(lián)。當接收到一個包時,可使用該包內包括的實例號來確定該包是否是在這些端節(jié)點之間的一個以前的邏輯連接期間傳送的一個過時的包。
在一優(yōu)選實施例中,將該實例號包括作為序號的一部分。根據本發(fā)明,將在每個包中被指定為序號的位分成序號位和實例號位。使用該些實例號位來指示實例號,在一特定邏輯連接期間該實例號對于所有的包都保持恒定。使用該些序號位來指示序號,在一特定邏輯連接期間每傳送一個包就遞增該序號。
在下面詳細的文字描述中,將更清楚地了解本發(fā)明的上述內容以及本發(fā)明其他的目的、特征和優(yōu)點。


現(xiàn)將參照附圖并僅作為示例來描述本發(fā)明的一優(yōu)選實施例,在附圖中圖1示出根據本發(fā)明的兩個端節(jié)點,每個端節(jié)點包括一隊列對;圖2示出一梯形圖,該圖描述了根據現(xiàn)有技術傳送重復的包的情況;圖3示出一梯形圖,該圖描述了根據現(xiàn)有技術接收一無效的包的情況;圖4示出了一根據本發(fā)明的數(shù)據處理系統(tǒng),該系統(tǒng)實現(xiàn)了一用于傳送數(shù)據的基于通道的交換結構的體系結構;圖5是一根據本發(fā)明的主處理器節(jié)點的功能框圖;圖6示出一根據本發(fā)明的分布式計算機系統(tǒng)的一部分,描述了一示例性的請求和確認事務(transaction);圖7示出一根據本發(fā)明的分布式計算機系統(tǒng)的一部分,其中使用一可靠連接(RC)服務來實現(xiàn)分布的進程之間的通信;圖8示出一根據本發(fā)明的包;圖9示出一高層流程圖,該圖描述了根據本發(fā)明使每個包包括一實例號;以及圖10示出一高層流程圖,該圖描述了根據本發(fā)明一端節(jié)點確定一接收到的包是否是在當前的邏輯連接期間傳送的。
具體實施例方式
本發(fā)明的一優(yōu)選實施例提供了一種在數(shù)據處理系統(tǒng)中用于管理從第一端節(jié)點向第二端節(jié)點傳送的數(shù)據的方法、系統(tǒng)和產品。在該第一端節(jié)點和第二端節(jié)點之間傳送數(shù)據之前在該兩個節(jié)點之間建立一邏輯連接。該邏輯連接是在該第一端節(jié)點中包括的一特定隊列對和該第二端節(jié)點中包括的一特定隊列對之間建立的。
使一實例號與在這兩組特定的隊列對之間建立的邏輯連接相關聯(lián)。當該邏輯連接保持存在時使該些端節(jié)點之間傳送的每個包中都包含該實例號。在這兩組隊列對之間每次重建一邏輯連接就遞增該實例號。該些包還包括包序號,每傳送一個包該包序號就遞增。
本發(fā)明的一優(yōu)選實施例將該實例號實現(xiàn)為傳統(tǒng)的序號的一部分。將為現(xiàn)有技術的序號保留的一組位分成一組序號位和一組實例號位。本發(fā)明的實例號由該組實例號位指示。本發(fā)明的序號由該組序號位指示。因此,根據本發(fā)明,使用傳統(tǒng)的現(xiàn)有技術的序號來指示該實例號和該序號兩者。在同一的邏輯連接期間,該組實例號位保持恒定。如現(xiàn)有技術中所述,每傳送一個包就遞增該一組序號位。
當遞增最大序號時,如現(xiàn)有技術中已知的,該組序號位返回到零。序號遞增或返回到零都不會影響該實例號。只要還沒有重建該邏輯連接,則該實例號就保持恒定。因此,因為將傳統(tǒng)的序號位中的一部分保留用于該實例號,所以現(xiàn)在最大序號小于由所有的序號位本來可以表示的數(shù)。
本發(fā)明的一優(yōu)選示例性實施例提供了一種具有端節(jié)點、交換機、路由器和將這些元件互連在一起的鏈路的分布式計算系統(tǒng)。每個端節(jié)點使用發(fā)送和接收隊列對來傳送和接收消息。該些端節(jié)點將消息分割成包并通過鏈路將包傳送。交換機和路由器將這些端節(jié)點互連在一起,并將包路由到合適的端節(jié)點。在目的地,端節(jié)點將這些包重組成一消息。
在本發(fā)明的一優(yōu)選實施例中,使用隊列對將該實例號與位于特定的隊列對組之間一邏輯連接相關聯(lián)。當在第一和第二端節(jié)點之間第一次建立一邏輯連接時,通常利用一隊列對表,將該第一端節(jié)點內的一隊列對與該第二端節(jié)點內的一隊列對相關聯(lián)。因此,每次在這兩組隊列對之間建立一邏輯連接時,可利用該隊列對表來確定這兩組隊列對是否已相互關聯(lián)。如果這兩組隊列對已相互關聯(lián),則在這兩組隊列對之間正在重建一邏輯連接,并且遞增該實例號。
圖4示出一根據本發(fā)明的數(shù)據處理系統(tǒng),該系統(tǒng)實施了一用于傳送數(shù)據的基于通道的交換結構的體系結構。從具有一個處理器和幾個輸入/輸出(I/O)適配器的小型服務器到具有成百上千個處理器和數(shù)千個I/O適配器的大規(guī)模并行超級計算機系統(tǒng)都可以是實施本發(fā)明的計算機系統(tǒng)。此外,本發(fā)明可以在通過因特網或內聯(lián)網連接的遠程計算機系統(tǒng)的一基礎設施(infrastructure)中實施。
數(shù)據處理系統(tǒng)402包括一存儲區(qū)域網絡424。一存儲區(qū)域網絡也可被稱為一“子網絡”。一子網絡是作為單個單元來管理的一組端節(jié)點和級聯(lián)的交換機。通常,一子網絡占有單個的地理區(qū)域或功能區(qū)域。例如在一個房間內的單個計算機系統(tǒng)可以被定義為一子網絡。
數(shù)據處理系統(tǒng)402包括一高帶寬、低等待時間的網絡,該網絡將該分布式計算機網絡內的節(jié)點互連。節(jié)點是連接到網絡的一個或多個鏈路并形成網絡內消息的起點和/或目的地的任何元件。在示出的這個例子中,數(shù)據處理系統(tǒng)402包括形式為主處理器節(jié)點406、主處理器節(jié)點408、冗余獨立磁盤陣列(RAID)子系統(tǒng)節(jié)點462、I/O底架節(jié)點412的節(jié)點。圖4中示出的節(jié)點只用于說明目的,如SAN 424可以連接任意數(shù)量和任何類型的獨立的處理器節(jié)點、I/O適配器節(jié)點和I/O設備節(jié)點。這些節(jié)點中的任何一個都可作為端節(jié)點,這里將端節(jié)點定義為在SAN 424中發(fā)起或最終消費消息或包的設備。
SAN 424包括支持I/O和處理器間通信(IPC)兩者的通信和管理基礎設施。SAN 424包括一交換通信結構,該結構允許許多設備在一可靠的遠程管理環(huán)境下并行地以高帶寬和低等待時間傳送數(shù)據。每個節(jié)點可以通過多個端口通信并可利用通過SAN 424的多個路徑。
SAN 424包括主通道適配器(HCA)426、428、430和432,目標通道適配器(TCA)458、460和468,交換機414、416和452,以及路由器420。交換機是一種將多個鏈路連接到一起并通過使用一小的報頭“目的局部標識符”(DLID)字段允許在子網絡內將包從一個鏈路路由到另一個鏈路的設備。通常,一個交換機可以將包從一個端口發(fā)送到同一交換機上的任何其它的端口。
路由器是一種將多個子網絡連接到一起并通過使用一大的報頭“目的全局唯一標識符”(DGUID)能夠將包從第一子網絡內的一個鏈路路由到第二網絡內的一個鏈路的設備。
鏈路是位于任何兩個網絡結構元件,例如端節(jié)點、交換機或路由器之間的全雙工通道。示例性的合適的鏈路包括但不限于銅電纜、光纜、在底版和印刷電路板上的印刷電路銅跡線。
數(shù)據處理系統(tǒng)402中的每個節(jié)點包括至少一個通道適配器(CA)。每個通道適配器是這樣的一端點,其以足夠詳細的細節(jié)實現(xiàn)通道適配器接口,以發(fā)起和接收利用存儲區(qū)域網絡(SAN)424傳送的包。SAN 402也可稱為一結構。處理器節(jié)點中包含的通道適配器是主通道適配器(HCA)。除處理器節(jié)點以外的節(jié)點中包含的通道適配器是目標通道適配器(TCA)。
主處理器節(jié)點406包括形式為主通道適配器426和主通道適配器428的通道適配器。主處理器節(jié)點408包括主通道適配器430和主通道適配器432。主處理器節(jié)點406還包括通過總線系統(tǒng)442互連的中央處理單元434、436以及存儲器440。主處理器節(jié)點408類似地包括通過總線系統(tǒng)450互連的中央處理單元444、446以及存儲器448。
主通道適配器426提供與交換機414的連接。主通道適配器428提供與交換機414和416的連接。主通道適配器430提供與交換機414和416的連接。而主通道適配器432提供與交換機416的連接。
主通道適配器優(yōu)選地由硬件實現(xiàn)。在這種實現(xiàn)中,該主通道適配器硬件卸載了中央處理器單元和I/O通道適配器的大量通信開銷。主通道適配器的這種硬件實現(xiàn)也允許通過一交換網絡進行多個并行通信而沒有傳統(tǒng)的與通信協(xié)議有關的開銷。
I/O底架(I/O chassis)412包括位于該I/O適配器底板內以使適配器卡連接到SAN 424的一I/O交換機452和多個I/O模塊454、456。在這個例子中,該些I/O模塊采取的形式為適配器卡。
適配器卡可包括一SCSI適配器卡、一連接到光纖通道集線器和光纖通道仲裁環(huán)(FC-AL)設備的適配器卡、一以太網適配器卡、一圖形適配器卡或一視頻適配器卡。任何已知類型的適配器卡都可被使用。
每個I/O模塊包括一目標通道適配器。I/O模塊454包括目標通道適配器(TCA)458,而I/O模塊456包括目標通道適配器(TCA)460。
數(shù)據處理系統(tǒng)402中也包括一RAID子系統(tǒng)節(jié)點462。節(jié)點462包括一處理器464、一存儲器466、一目標通道適配器(TCA)468和多個冗余的和/或條帶式存儲磁盤單元470。目標通道適配器468可以是一全功能主通道適配器。
SAN 424為該分布式計算機系統(tǒng)的I/O和處理器間通信(IPC)的消費者(consumer)提供零處理器副本(zero processor-copy)的數(shù)據傳送,而不涉及操作系統(tǒng)內核進程,并使用硬件來提供可靠的、容錯的通信。
圖5是根據本發(fā)明的一主處理器節(jié)點的功能框圖。主處理器節(jié)點500是例如圖4中示出的主處理器節(jié)點406或408的一主處理器節(jié)點的例子。
主處理器節(jié)點500包括一組消費者502、504、506和508,它們都是在主處理器節(jié)點500上執(zhí)行的進程。主處理器節(jié)點500還包括通道適配器510和512。通道適配器510包括端口514和516,而通道適配器512包括端口518和520。每個端口連接到一個鏈路。
消費者502-508通過verbs(動詞)接口522以及消息和數(shù)據服務524向SAN例如SAN 424傳送消息。一verbs接口本質上是一主通道適配器的功能的抽象描述。操作系統(tǒng)通過可以其編程接口暴露一些或全部的verb功能。該接口定義了該宿主的功能。消息和數(shù)據服務524是比verb層更高層的接口,其用于處理通過通道適配器510和512接收到的消息和數(shù)據。消息和數(shù)據服務524提供一到消費者520-508的接口以處理消息和其它數(shù)據。
圖6示出了一根據本發(fā)明的分布式計算機系統(tǒng)的一部分,描述了示例性的請求和確認事務。圖6中的分布式計算機系統(tǒng)600包括主處理器節(jié)點602和主處理器節(jié)點604。主處理器節(jié)點602包括一主通道適配器606。主處理器節(jié)點604包括一主通道適配器608。圖6中的分布式計算機系統(tǒng)包括一SAN結構610,該SAN結構包括交換機612和614。該SAN結構包括一將主通道適配器606耦合到交換機612的鏈路、一將交換機612耦合到交換機614的鏈路、和一將主通道適配器608耦合到交換機614的鏈路。
在這個示例性的事務中,主處理器節(jié)點602包括一客戶進程A。主處理器節(jié)點604包括一客戶進程B??蛻暨M程A通過隊列對620與主通道適配器606交互。客戶進程B通過隊列對622與主通道適配器608相互作用。
隊列對620和622是各包括一發(fā)送隊列和一接收隊列的結構。一隊列對通常包括該通道適配器中的控制寄存器。隊列對620包括發(fā)送隊列624和接收隊列626。隊列對622包括發(fā)送隊列628和接收隊列630。
進程A通過將隊列元素提交到隊列對620的發(fā)送隊列624中來發(fā)起一個消息請求。主通道適配器608中的硬件在接收隊列630中接收該隊列元素。進程B然后讀取該隊列元素并將消息分成包,例如圖8中所示的包。進程B可以通過將一些隊列元素提交到發(fā)送隊列628中來發(fā)起一個消息,然后進程A通過接收隊列626接收到該些隊列元素。
包由該SAN結構發(fā)送,并且對于可靠傳輸服務,該些包被最終目的端節(jié)點確認。如果包沒有被成功地確認,則源端節(jié)點重新發(fā)送該包。包是由源端節(jié)點生成并被目的端節(jié)點消費的。
圖7示出了根據本發(fā)明的分布式計算機系統(tǒng)100的一部分,其中使用一可靠連接服務來在分布的進程間進行通信。
當創(chuàng)建一個隊列對時,該隊列對被設置為提供一選定類型的傳輸服務。一實現(xiàn)本發(fā)明的該優(yōu)選實施例的分布式計算機系統(tǒng)支持四種類型的傳輸服務可靠連接(RC)、不可靠連接(UC)、不可靠數(shù)據報(UD)和可靠數(shù)據報(RD)。
可靠和不可靠連接服務將一本地隊列對與一個且只有一個遠程隊列對相關聯(lián)。連接服務需要一進程創(chuàng)建一隊列對,以便該進程用來在該SAN結構中與另外的進程通信。因此如果N個主處理器節(jié)點中的每一個都包含P個進程,并且每個節(jié)點上的所有P個進程希望與所有其它節(jié)點上的所有進程進行通信,則每個主處理器節(jié)點需要P2×(N-1)個隊列對。此外,一進程可以將一隊列對與同一主通道適配器的另一隊列對相連接。
圖7中的分布式計算機系統(tǒng)700包括主處理器節(jié)點1、主處理器節(jié)點2和主處理器節(jié)點3。主處理器節(jié)點1包括進程A 710。主處理器節(jié)點2包括進程C 720和進程D 730。主處理器節(jié)點3包括進程E 740。
主處理器節(jié)點1包括隊列對4、6和7。每個隊列對具有一發(fā)送隊列和一接收隊列。主處理器節(jié)點2具有隊列對2和5,而主處理器節(jié)點3具有隊列對9。分布式計算機系統(tǒng)700的可靠連接(RC)服務將一本地隊列對與一個且只有一個遠程隊列對相關聯(lián)。因此,該隊列對4用于與隊列對2通信;隊列對7用于與隊列對5通信;而隊列對6用于與隊列對9通信。
可靠連接(RC)服務之所以可靠是因為硬件維護序號并確認所有的包的傳送。硬件和SAN驅動程序軟件的組合重試任何失敗的通信。即使存在位錯誤、接收欠載(receive under-run)和網絡擁塞,隊列對的進程客戶端也可獲得可靠的通信。如果在SAN結構中存在其他可選擇的路徑,則即使結構交換機、鏈路或通道適配器端口出現(xiàn)故障也能保持可靠的通信。
另外,可以利用確認來通過SAN結構可靠地發(fā)送數(shù)據。該確認可以是或可以不是進程級的確認,即驗證接收進程已消費該數(shù)據的確認。
或者,該確認可以是僅指示該數(shù)據已到達其目的地的確認。
圖8示出一根據本發(fā)明的包。如這里使用的消息是一應用定義的數(shù)據交換單元,該單元是合作的進程之間的一基本信單元。消息被分成包。包是一個由網絡協(xié)議報頭和/或報尾封裝的數(shù)據單元。報頭通常提供用于指引包通過SAN的控制和路由信息。報尾通常包括用于確保包在傳送中內容沒有損壞的控制和循環(huán)冗余校驗(CRC)數(shù)據。
包是通過SAN結構路由的信息單元。包是一個端節(jié)點到端節(jié)點構造,因此由端節(jié)點創(chuàng)建和消費。對于目的地為通道適配器(主通道適配器或目標通道適配器)的包,SAN結構內的交換機或路由器即不生成也不消費該包。相反,對于目的地為通道適配器的包,交換機和路由器只是移動請求包和確認包以使之更接近最終目的地,并在這個過程中修改可變鏈路報頭字段。當包穿過一子網絡邊界時,路由器也修改該包的網絡報頭。在經過一子網絡的過程中,單個包保持在單個服務級上。
對于可靠服務類型例如可靠連接(RC)傳輸服務,端節(jié)點例如主處理器端節(jié)點和I/O適配器端節(jié)點生成請求包并返回確認包。交換機和路由器將包從源一直傳遞到目的地。除了可變CRC報尾字段在網絡中的每一級都得到更新外,交換機將包不加修改地傳遞下去。當包經過路由器被路由時,路由器更新該可變CRC報尾字段并修改報頭中的其它字段。
一傳出的消息被分成一個或多個數(shù)據包。通道適配器硬件向每個包添加一個傳輸報頭和一個網絡報頭。根據本發(fā)明,該傳輸報頭包括一序號、一實例號和其它的傳輸信息。該網絡報頭包括路由信息,例如目的IP地址和其它網絡路由信息。鏈路報頭包括目的局部標識符(DLID)或其他局部路由信息??偸窍虬砑右粋€適當?shù)逆溌穲箢^。如果目的端節(jié)點位于一遠程子網絡上則向一給定的包添加一適當?shù)娜志W絡報頭。
如果使用可靠傳輸服務,當一請求數(shù)據包到達其目的端節(jié)點時,目的端節(jié)點使用確認數(shù)據包來使該請求數(shù)據包的發(fā)送者知道目的端節(jié)點已驗證和接受該數(shù)據包。確認數(shù)據包確認一個或多個有效的和被接受的請求數(shù)據包。請求者在接收到任何確認之前可具有多個未完成的請求數(shù)據報。在一個實施例中,當創(chuàng)建一隊列對時確定該多個未完成的消息即請求數(shù)據包的數(shù)量。
包800包括一路由報頭802、一傳輸報頭804、一包有效載荷806和一CRC 808。路由報頭802用于為包有效載荷806標識源和目的端節(jié)點的通道適配器中的端口。
傳輸報頭804為包有效載荷806指定目的隊列對。一序號字段810位于傳輸報頭804中。在現(xiàn)有技術中,該序號由序號字段810包含的全部位表示。然而,根據本發(fā)明,序號字段810的全部位表示一序號和一實例號兩者。因此本發(fā)明的序號包括一序號部分和一實例號部分,該序號部分隨每個包遞增,而該實例號部分在每個邏輯連接過程中保持恒定。傳輸報頭804還提供例如操作代碼和有效載荷806的分區(qū)的信息。CRC 808用于錯誤檢驗。
該操作代碼識別該包是該消息的第一個包、最后一個包、中間的包還是該消息唯一的包。該操作代碼還確定該操作是一發(fā)送RDMA寫入、讀取還是原子(atomic)操作。
根據本發(fā)明,在每個包的字段812中都保存了一實例號。在一邏輯連接的實例期間該實例號保持恒定。如果斷開一邏輯連接并隨后重建該邏輯連接,則遞增該實例號。然后將該實例號存儲在使用這個重建的邏輯連接傳送的每個包的字段812中。
每傳送一個包就遞增序號部分814。
圖9示出一高層流程圖,該流程圖示出根據本發(fā)明使每個包中包含一實例號。該過程如圖所示從塊900開始并隨后轉到塊902,塊902示出在一個處理器節(jié)點中開始執(zhí)行一消費者。下一步,塊904描述了在該處理器端節(jié)點和第二端節(jié)點之間建立一邏輯連接。當在這兩個端節(jié)點之間建立邏輯連接時,將該第一端節(jié)點中的一發(fā)送和接收隊列對與該第二端節(jié)點中的一發(fā)送和接收隊列對相關聯(lián)。這種關聯(lián)性可通過使用由每個端節(jié)點的通信管理器在該端節(jié)點中維護的一隊列對表來實現(xiàn)。
此后,塊906示出了該處理器端節(jié)點判定這是否是第一次在該處理器節(jié)點內的特定的隊列對和在該第二端節(jié)點內的特定的隊列對之間建立一邏輯連接。端節(jié)點可以使用該隊列對表來判定是否是第一次建立一邏輯連接。該隊列對表將指示是否一邏輯連接已經建立。當斷開一邏輯連接時,將兩個端節(jié)點內的隊列對置于一空閑狀態(tài),并且這些隊列將不再相互關聯(lián)。每個端節(jié)點中的隊列對表將表現(xiàn)出該隊列對位于空閑狀態(tài)。
如果已經建立一邏輯連接并且該邏輯連接沒有斷開,則每個端節(jié)點中的隊列對保持彼此相互關聯(lián)。每個端節(jié)點中的隊列對表將指示這些隊列對仍然彼此相互關聯(lián)。
一端節(jié)點可使用它的隊列對表通過確定一隊列對是否已經與第二節(jié)點內的一隊列對相關聯(lián),來確定是否已經建立一邏輯連接。如果這個節(jié)點中的一隊列對與該第二端節(jié)點內的一隊列對相關聯(lián),則已經在這兩個端節(jié)點之間建立了一邏輯連接。如果這個節(jié)點中的一隊列對與該第二端節(jié)點中的一隊列對不相關聯(lián),則這兩個節(jié)點之間沒有建立一邏輯連接。
參照塊906,如果判定這是第一次在這兩組特定的隊列對之間建立一邏輯連接,則該過程轉到塊908,其中描述了每個端節(jié)點的邏輯連接管理器交換一開始實例號。該開始實例號變成當前的實例號并且當這個邏輯連接保持存在時保持恒定。
然后過程轉到塊910,其中示出邏輯連接管理器交換它們的開始序號。該序號存儲在所述序號字段的序號部分并且不保持恒定。每傳送一個包就遞增該序號。此外,每個端節(jié)點可選擇它自己的序號,該序號與另一個端節(jié)點選擇的序號無關。該實例號存儲在該序號字段的實例號部分,并且只要這個邏輯連接保持存在該實例號就保持恒定。
此后,塊912示出端節(jié)點之間的包傳送使存儲在每個包的序號部分的包序號遞增。下一步,塊914示出在每個包中包含當前的實例號。該實例號在這個邏輯連接期間對于每個傳送的包保持恒定。
然后,塊916描述了判定當前邏輯連接是否已終止。如果判定當前的邏輯連接沒有終止,則該過程返回到塊912。再次參照塊916,如果判定該邏輯連接已終止,則過程轉到塊918。塊918描述了判定是否要在這兩個隊列對之間重建一邏輯連接。如果判定將不在這兩個隊列對之間重建一邏輯連接,則過程轉到塊920。再次參照塊918,如果判定將在這兩個隊列對之間重建一邏輯連接,則過程轉到塊922。塊922示出在這兩個隊列對之間重建一邏輯連接而不需要執(zhí)行任何等待狀態(tài)。然后過程返回到塊906。
再次參照塊906,如果判定對于這個服務這不是第一次在這兩個特定的隊列對之間建立一邏輯連接,則過程轉到塊934。塊934描述了判定在為這兩個特定的隊列對之間建立的上一次邏輯連接期間用于傳送的實例號。下一步,塊936示出將該上一次的實例號變成新的實例號。然后使用這個新的實例號作為當前的實例號。盡管通常通過遞增該實例號來改變該實例號,但是可以通過任何方法改變該實例號,例如通過減小該實例號。然后過程轉到塊910。
圖10示出一高層流程圖,該流程圖描述了根據本發(fā)明一端節(jié)點確定一接收到的包是否是在當前的邏輯連接中傳送的。過程如圖所示從塊1000開始并隨后轉到塊1002,塊1002描述了一端節(jié)點接收一包括一實例號的包。下一步,塊1004示出該端節(jié)點確定當前的實例號。然后塊1006描述了端節(jié)點將當前的實例號與在接收到的包中包含的實例號進行比較。然后過程轉到1008,該塊描述了判定該包是否包含當前的實例號。如果判定該包包含當前的實例號,則過程轉到塊1010,其中描述了端節(jié)點正常地處理該包。然后過程返回塊1002。再次參照塊1008,如果判定該包不包含當前的實例號,則過程轉到塊1012,其中示出該端節(jié)點丟棄該包。然后過程返回到塊1002。
任何時候斷開一邏輯連接并隨后重建該連接,都可利用本發(fā)明。出于各種原因而終止和重建邏輯連接。許多原因是在端節(jié)點檢測到的、不能通過簡單地重新發(fā)送包來恢復的錯誤情況。例如,殘缺的包和排序錯誤可以將一隊列對置于這種錯誤狀態(tài)。
斷開并重建一連接的另一種原因是在這種結構中路徑MTU的改變??梢栽阪溌飞蟼魉偷淖畲蟮陌行лd荷的大小稱為最大傳送單元(MTU)。例如,考慮該結構內的單個鏈路。如果該鏈路一端上的包緩沖區(qū)能夠處理最高512字節(jié)的包有效載荷,而該鏈路另一端上的包緩沖區(qū)能夠處理最高1024字節(jié)的包有效載荷,則在該鏈路上可傳送的最大的包有效載荷不超過512字節(jié),即該鏈路的兩端中的較小者。為簡單起見,當描述包的大小時也使用該包的有效載荷大小。
如果從一個節(jié)點到另一個節(jié)點的路徑包括任何交換機和/或路由器,則在該路徑上有超過一個的鏈路。在這種情況下,MTU稱為路徑MTU,并且是該路徑的所有鏈路中的最小的MTU。例如,如果該路徑中的一個鏈路的MTU是512字節(jié)而所有其它的鏈路的MTU都是4096字節(jié),則能夠在該路徑上傳送的最大的包僅為512字節(jié)。
如果因為故障切換而增加了路徑MTU,則該連接肯定或者被排盡(沒有新的請求包生成并且所有未完成的包已被確認)或者斷開并重建該連接以利用該新的、較大的路徑MTU。使用本發(fā)明可以有效地處理這種情況,因為不再需要過時包等待時間。可以斷開邏輯連接并立即重建該邏輯連接而無需等待狀態(tài)。
應指出盡管已經通過一全功能的數(shù)據處理系統(tǒng)說明了本發(fā)明,但本技術領域的普通技術人員將理解本發(fā)明的過程可以多種形式的計算機可讀指令介質的形式分發(fā),并且不管實際用于進行該分發(fā)的信號承載介質是哪種具體類型,本發(fā)明都同樣適用。計算機可讀介質的例子包括可記錄型的介質,例如軟盤、硬盤驅動器、RAM、CD-ROM、DVD-ROM和傳輸型的介質,例如數(shù)字和模擬通信鏈路、使用傳輸形式例如射頻和光波傳輸?shù)挠芯€或無線通信鏈路。該計算機可讀介質可以采取編碼格式的形式,對該編碼格式進行解碼以實際用于一特定的數(shù)據處理系統(tǒng)。
出于闡述和說明的目的已對本發(fā)明進行了描述,但并未打算這種描述是窮盡性的或將本發(fā)明限制在所公開的形式。對本領域的普通技術人員來說可以對本發(fā)明進行許多修改和變型。選擇和描述了實施例以便更好的解釋本發(fā)明的原理、實際應用,并使本領域內的其它普通技術人員能夠理解本發(fā)明,從而實現(xiàn)具有適合于所考慮的特殊應用的各種修改的各種實施例。
權利要求
1.一種用于在一數(shù)據處理系統(tǒng)中管理從第一端節(jié)點傳送到第二端節(jié)點的數(shù)據的方法,所述方法包括下列步驟在所述第一和第二端節(jié)點之間傳送數(shù)據之前在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接;使一實例號與所述邏輯連接相關聯(lián);以及當所述邏輯連接保持存在時,使在所述第一和第二端節(jié)點之間傳送的每個包包含所述實例號,在所述邏輯連接期間所述實例號保持恒定。
2.根據權利要求1的方法,其特征在于,還包括下列步驟在所述第一和第二端節(jié)點之間重建所述邏輯連接;遞增所述實例號,所述遞增的實例號與所述重建的邏輯連接相關聯(lián);以及在所述重建的邏輯連接期間使在所述第一端節(jié)點和第二端節(jié)點之間傳送的每個包包含所述遞增的實例號,在所述重建的邏輯連接期間所述遞增的實例號保持恒定。
3.根據權利要求1的方法,其特征在于,其中在所述第一端節(jié)點和第二端節(jié)點之間建立一邏輯連接的步驟還包括下列步驟使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點的一隊列對相關聯(lián)。
4.根據權利要求3的方法,其特征在于,其中使所述第一端節(jié)點內的一隊列對與所述第二端節(jié)點內的一隊列對相關聯(lián)的步驟還包括下列步驟在所述第一端節(jié)點內建立一個隊列對表;以及在所述表內存儲一個表示在所述第一端節(jié)點內的所述隊列對與所述第二端節(jié)點內的所述隊列對之間的關聯(lián)性的指示。
5.根據權利要求4的方法,其特征在于,還包括下列步驟利用一特定的邏輯連接從所述第二端節(jié)點向所述第一端節(jié)點傳送一個包;利用所述第一端節(jié)點接收所述包;以及利用所述表來確定以前是否已建立過所述特定邏輯連接。
6.根據權利要求5的方法,其特征在于,其中利用所述表來確定以前是否已建立過所述特定邏輯連接的步驟,還包括下列步驟確定一個指示是否存儲在所述表中,所述指示表示了在所述第一端節(jié)點中的一隊列對和所述第二端節(jié)點中的一隊列對之間的關聯(lián)性。
7.根據權利要求1的方法,其特征在于,還包括下列步驟在所述邏輯連接期間使在所述第一和第二端節(jié)點之間傳送的每個包中的一傳輸報頭中包含所述實例號。
8.根據權利要求1的方法,其特征在于,還包括下列步驟確定所述邏輯連接是否是所述第一和第二端節(jié)點之間的第一邏輯連接;響應于確定所述邏輯連接是第一邏輯連接使一實例號與所述邏輯連接相關聯(lián);在所述邏輯連接期間使在所述第一和第二端節(jié)點之間傳送的每個包包含所述實例號,在所述邏輯連接期間所述實例號保持恒定;并使用所述實例號作為一當前的實例號;以及響應于確定所述邏輯連接不是第一邏輯連接遞增所述當前的實例號;使用所述遞增的當前的實例號作為一當前的實例號;并在所述邏輯連接期間使在所述第一和第二端節(jié)點之間傳送的每個包包含所述遞增的當前的實例號。
9.一種用于在所述數(shù)據處理系統(tǒng)中管理從第一端節(jié)點向第二端節(jié)點傳送的數(shù)據的數(shù)據處理系統(tǒng),包括用于在所述第一和第二端節(jié)點之間傳送數(shù)據之前在所述第一端節(jié)點和所述第二端節(jié)點之間建立一邏輯連接的裝置;用于使一實例號與所述邏輯連接相關聯(lián)的裝置;以及用于當所述邏輯連接保持存在時使在所述第一和第二端節(jié)點之間傳送的每個包包含所述實例號的裝置,在所述邏輯連接期間所述實例號保持恒定。
10.一種計算機程序,當衩加載到一計算機系統(tǒng)并在其上執(zhí)行時,能夠執(zhí)行根據權利要求1到8中的任何一個的方法的所有步驟。
全文摘要
一種在一數(shù)據處理系統(tǒng)中用于管理從該數(shù)據處理系統(tǒng)中包括的第一端節(jié)點傳送到第二端節(jié)點的數(shù)據的方法、系統(tǒng)和產品。在該第一端節(jié)點和該第二端節(jié)點之間傳送數(shù)據之前在這兩個端節(jié)點之間建立一邏輯連接。將一實例號與該邏輯連接相關聯(lián),并當這個連接繼續(xù)存在時在端節(jié)點之間傳送的每個包中包含該實例號。在這個連接期間該號保持恒定,但是每次在這些節(jié)點之間重建一邏輯連接就改變該號,例如遞增該號。每個包與該邏輯連接的一特定實例相關聯(lián),并且當接收該包時可以使用該號來確定該包是否是在這些端節(jié)點之間的以前的邏輯連接中傳送的過時的包。
文檔編號H04L29/08GK1633647SQ03803995
公開日2005年6月29日 申請日期2003年4月1日 優(yōu)先權日2002年4月25日
發(fā)明者B·L·比克馬, T·A·格雷格, D·M·尼爾, R·J·雷西奧 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
广东省| 剑河县| 绥中县| 和平区| 行唐县| 巩留县| 迁安市| 博乐市| 图木舒克市| 建昌县| 昔阳县| 凤山市| 尉氏县| 泰宁县| 鸡西市| 社旗县| 乌鲁木齐县| 兖州市| 怀宁县| 清水县| 揭阳市| 城固县| 马边| 夹江县| 太康县| 乌海市| 孟津县| 九龙城区| 特克斯县| 隆德县| 秦安县| 绥棱县| 黄石市| 信宜市| 石河子市| 新和县| 淄博市| 襄城县| 灌云县| 颍上县| 延安市|