專利名稱:加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法及其處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)封包處理方法,特別涉及一種因特網(wǎng)小型計(jì)算機(jī)接口儲(chǔ)存設(shè)
備的網(wǎng)絡(luò)封包處理方法及其處理系統(tǒng)。
背景技術(shù):
因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口 (internet Small Computer Systemslnterface,簡(jiǎn) 稱iSCSI)為IETF提出的通信協(xié)議標(biāo)準(zhǔn)。iSCSI通過TCP/TP通信協(xié)議連接網(wǎng)絡(luò)的多臺(tái)計(jì) 算機(jī)主機(jī),以串聯(lián)多個(gè)分散于因特網(wǎng)的儲(chǔ)存設(shè)備成為虛擬的網(wǎng)絡(luò)儲(chǔ)存設(shè)備。使用者存取此 網(wǎng)絡(luò)儲(chǔ)存設(shè)備,就如同存取本機(jī)硬盤裝置。相較于傳統(tǒng)SCSI及RAID技術(shù),iSCSI技術(shù)兼具 SCSI的高速傳輸能力,卻又不受限于儲(chǔ)存設(shè)備的擴(kuò)充/備分能力,可無(wú)限制擴(kuò)充虛擬儲(chǔ)存 設(shè)備的容量。此虛擬儲(chǔ)存設(shè)備稱為儲(chǔ)存局域網(wǎng)絡(luò)(Storage Area Network, SAN),主要由發(fā) 起端(Initiator)及目標(biāo)端(target)構(gòu)成。發(fā)起端傳送存取請(qǐng)求與目標(biāo)端建立通話聯(lián)機(jī) (Session)。目標(biāo)端可視為網(wǎng)絡(luò)的可用儲(chǔ)存裝置資源的管理/分配者,可為多個(gè)儲(chǔ)存裝置分 配對(duì)應(yīng)的邏輯單元號(hào)(Logic Unit Number,LUN)。這些邏輯單元號(hào)就好像是虛擬的邏輯巻, 每一個(gè)LUN對(duì)應(yīng)到一個(gè)或多個(gè)網(wǎng)絡(luò)上的實(shí)體儲(chǔ)存設(shè)備。 目標(biāo)端在接收到發(fā)起端的存取要求后,目標(biāo)端會(huì)將存取要求中的封包內(nèi) 容(payload)儲(chǔ)存在其內(nèi)存中?,F(xiàn)有技術(shù)中將封包內(nèi)容逐層的轉(zhuǎn)換成傳輸控制協(xié)議 (transformer control protocol,簡(jiǎn)稱TCP)的封包,將封包映像至網(wǎng)絡(luò)卡中的韌體層。最 后,由網(wǎng)絡(luò)卡的韌體層將封包通過發(fā)送單元(egress packetgenerator)發(fā)送至儲(chǔ)存設(shè)備。 請(qǐng)參考圖l所示,其為現(xiàn)有技術(shù)的封包的轉(zhuǎn)發(fā)示意圖。在圖l上方為目標(biāo)端中的內(nèi)存空間, 其用以儲(chǔ)存存取請(qǐng)求與相應(yīng)的小型計(jì)算機(jī)接口命令。在圖1中央為網(wǎng)絡(luò)卡中的韌體層,其 用以將目標(biāo)端的內(nèi)存的封包內(nèi)容復(fù)制韌體層。最后,由網(wǎng)絡(luò)卡上的發(fā)送單元將韌體層中的 已封裝后的封包加入相應(yīng)的檢查碼。這樣的作法,需要從目標(biāo)端的內(nèi)存逐層的將數(shù)據(jù)映像 與轉(zhuǎn)發(fā)。因此,目標(biāo)端中需要耗費(fèi)較多的時(shí)間與內(nèi)存空間。
發(fā)明內(nèi)容
鑒于以上的問題,本發(fā)明的主要目的在于提供一種加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù) 據(jù)的通信方法,其應(yīng)用于因特網(wǎng)小型計(jì)算機(jī)接口的目標(biāo)端對(duì)多個(gè)儲(chǔ)存設(shè)備發(fā)送多個(gè)數(shù)據(jù)封 包。 為達(dá)上述目的,本發(fā)明公開了一種加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法, 其應(yīng)用于一因特網(wǎng)小型計(jì)算機(jī)接口的一目標(biāo)端對(duì)一請(qǐng)求端發(fā)送多個(gè)數(shù)據(jù)封包,該通信方法 包括以下步驟該目標(biāo)端接收一存取請(qǐng)求,其用以對(duì)一儲(chǔ)存設(shè)備進(jìn)行存??;根據(jù)該存取請(qǐng) 求產(chǎn)生多筆小型計(jì)算機(jī)接口命令;由該目標(biāo)端中的一數(shù)據(jù)發(fā)送單元讀取該些小型計(jì)算機(jī)接 口命令;由該數(shù)據(jù)發(fā)送單元執(zhí)行一地址解析程序,用以將該些小型計(jì)算機(jī)接口命令轉(zhuǎn)換為 多筆網(wǎng)絡(luò)封包;根據(jù)每一該網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容用以產(chǎn)生一第一檢查碼;以及將該第一檢 查碼加入該網(wǎng)絡(luò)封包。
3
在該目標(biāo)端接收該存取請(qǐng)求中還包括以下步驟根據(jù)對(duì)不同該儲(chǔ)存設(shè)備的該存取 請(qǐng)求指派一存取標(biāo)簽;以及對(duì)同一該存取標(biāo)簽的該些存取請(qǐng)求用以計(jì)算相應(yīng)的該些第一檢 查碼。 在讀取該些小型計(jì)算機(jī)接口命令中還包括以下步驟讀取該目標(biāo)端中的一內(nèi)存地 址;以及根據(jù)該內(nèi)存地址中所儲(chǔ)存的該些小型計(jì)算機(jī)接口命令,用以分批包裝成該些網(wǎng)絡(luò) 封包。 在產(chǎn)生該第一檢查碼前還包括以下步驟計(jì)算每一該網(wǎng)絡(luò)封包的一偏移量;以及 根據(jù)該網(wǎng)絡(luò)封包的該偏移量,用以將該第一檢查碼加入于該網(wǎng)絡(luò)封包。 在產(chǎn)生該偏移量后還包括以下步驟根據(jù)該偏移量用以對(duì)該網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容 計(jì)算該第一檢查碼。 本發(fā)明還公開了一種因特網(wǎng)小型計(jì)算機(jī)接口的處理系統(tǒng),其應(yīng)用于因特網(wǎng)小型計(jì) 算機(jī)接口儲(chǔ)存系統(tǒng)間的多筆網(wǎng)絡(luò)封包的傳送處理,該處理系統(tǒng)包括 —發(fā)起端,用以發(fā)出一存取請(qǐng)求;多個(gè)儲(chǔ)存設(shè)備,其用以儲(chǔ)存一目標(biāo)信息;以及一 目標(biāo)端,用以來(lái)自接收該發(fā)起端的一存取請(qǐng)求,該目標(biāo)端根據(jù)該存取請(qǐng)求用以存取該些儲(chǔ) 存設(shè)備中的該目標(biāo)信息并將該目標(biāo)信息傳送至該發(fā)起端,該目標(biāo)端還用以執(zhí)行下列步驟 根據(jù)該存取請(qǐng)求產(chǎn)生多筆小型計(jì)算機(jī)接口命令;由該目標(biāo)端中的一數(shù)據(jù)發(fā)送單元讀取該些 小型計(jì)算機(jī)接口命令;由該數(shù)據(jù)發(fā)送單元執(zhí)行一地址解析程序,用以將該些小型計(jì)算機(jī)接 口命令轉(zhuǎn)換為多筆網(wǎng)絡(luò)封包;根據(jù)每一該網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容用以產(chǎn)生一第一檢查碼;以 及將該第一檢查碼加入該網(wǎng)絡(luò)封包。 本發(fā)明的技術(shù)方案,利用目標(biāo)端中的網(wǎng)絡(luò)卡對(duì)網(wǎng)絡(luò)封包進(jìn)行檢查碼的產(chǎn)生,以降 低目標(biāo)端將存取請(qǐng)求映像至網(wǎng)絡(luò)卡所耗費(fèi)的時(shí)間與內(nèi)存空間。
圖1為現(xiàn)有技術(shù)的封包的轉(zhuǎn)發(fā)示意圖; 圖2為本發(fā)明的結(jié)構(gòu)示意圖; 圖3A為本發(fā)明的運(yùn)作流程示意圖; 圖3B為因特網(wǎng)小型計(jì)算機(jī)接口的數(shù)據(jù)封包示意圖; 圖3C為加入第一檢查碼的網(wǎng)絡(luò)封包的結(jié)構(gòu)示意圖; 圖4為本發(fā)明的另一實(shí)施例的運(yùn)作示意圖; 圖5分別為由小型計(jì)算機(jī)接口命令的地址計(jì)算檢查碼的示意圖。 其中,附圖標(biāo)記 210發(fā)起端 220儲(chǔ)存設(shè)備 230目標(biāo)端
具體實(shí)施例方式
請(qǐng)參考圖2所示,其為本發(fā)明的結(jié)構(gòu)示意圖。在因特網(wǎng)小型計(jì)算機(jī)接口的網(wǎng)絡(luò)封 包的處理系統(tǒng)包括有發(fā)起端210、儲(chǔ)存設(shè)備220與目標(biāo)端230。發(fā)起端210用以發(fā)出存取 請(qǐng)求。儲(chǔ)存設(shè)備220用以儲(chǔ)存目標(biāo)信息。目標(biāo)端230接收來(lái)自發(fā)起端210的存取請(qǐng)求,目標(biāo) 端230根據(jù)存取請(qǐng)求用以存取儲(chǔ)存設(shè)備220中的目標(biāo)信息并將目標(biāo)信息傳送至發(fā)起端210 。其中,目標(biāo)端230、發(fā)起端210與儲(chǔ)存設(shè)備220間利用因特網(wǎng)相互傳遞網(wǎng)絡(luò)封包。
請(qǐng)參考圖3A所示,其為本發(fā)明的運(yùn)作流程示意圖。本發(fā)明的通信方法包括以下步 驟目標(biāo)端接收存取請(qǐng)求(步驟S310),其用以對(duì)儲(chǔ)存設(shè)備220進(jìn)行存取。目標(biāo)端根據(jù)存取 請(qǐng)求產(chǎn)生多筆小型計(jì)算機(jī)接口命令(步驟S320)。由目標(biāo)端中的數(shù)據(jù)發(fā)送單元讀取小型計(jì) 算機(jī)接口命令(步驟S330)。由數(shù)據(jù)發(fā)送單元執(zhí)行地址解析程序(步驟S340),用以將小型 計(jì)算機(jī)接口命令轉(zhuǎn)換為多筆網(wǎng)絡(luò)封包。 因?yàn)橐蛱鼐W(wǎng)小型計(jì)算機(jī)接口的封包信息在進(jìn)入TCP層后,將會(huì)被重新分段。因此 會(huì)出現(xiàn)一個(gè)因特網(wǎng)小型計(jì)算機(jī)接口的封包信息被儲(chǔ)存在多個(gè)TCP網(wǎng)絡(luò)封包中;或者是一個(gè) TCP網(wǎng)絡(luò)封包中儲(chǔ)存多個(gè)因特網(wǎng)小型計(jì)算機(jī)接口的封包信息。所以數(shù)據(jù)發(fā)送單元會(huì)根據(jù)每 一個(gè)網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容,產(chǎn)生第一檢查碼(步驟S350)。請(qǐng)另外參考圖3B所示,其為因特 網(wǎng)小型計(jì)算機(jī)接口的數(shù)據(jù)封包示意圖。將第一檢查碼加入網(wǎng)絡(luò)封包(步驟S360),并將網(wǎng) 絡(luò)封包發(fā)送至相應(yīng)的裝置。請(qǐng)另外參考圖3C所示,其為加入第一檢查碼的網(wǎng)絡(luò)封包的結(jié)構(gòu) 示意圖。舉例來(lái)說(shuō),目標(biāo)端230對(duì)圖3B中的每一個(gè)網(wǎng)絡(luò)封包,依序的第一個(gè)網(wǎng)絡(luò)封包進(jìn)行 處理,以產(chǎn)生第一檢查碼,并將第一檢查碼插入第一個(gè)網(wǎng)絡(luò)封包后(意即圖3B中的偏移量 1后)。接著,目標(biāo)端230對(duì)第二個(gè)網(wǎng)絡(luò)封包進(jìn)行處理,并將所產(chǎn)生的第一檢查碼插入第二 個(gè)網(wǎng)絡(luò)封包后(意即圖3B中的偏移量2后)。同理,對(duì)每一個(gè)網(wǎng)絡(luò)封包產(chǎn)生第一檢查碼并 將其合并至相應(yīng)的網(wǎng)絡(luò)封包后。 除了上述對(duì)單一發(fā)起端210的請(qǐng)求狀況外,本發(fā)明亦可以利用在多個(gè)發(fā)起端210 的存取請(qǐng)求。請(qǐng)參考圖4所示,其為本發(fā)明的另一實(shí)施例的運(yùn)作示意圖。本發(fā)明的另一通 信方法包括以下步驟根據(jù)對(duì)不同該儲(chǔ)存設(shè)備的該存取請(qǐng)求指派一存取標(biāo)簽(步驟S410)。 在此一實(shí)施例中,對(duì)于不同發(fā)起端210所提出的存取請(qǐng)求,將相同發(fā)起端210的存取請(qǐng)求視 為同一組的存取標(biāo)簽。目標(biāo)端接收存取請(qǐng)求,其用以對(duì)儲(chǔ)存設(shè)備進(jìn)行存取(步驟S420)。
根據(jù)存取請(qǐng)求產(chǎn)生多筆小型計(jì)算機(jī)接口命令(步驟S430)。由目標(biāo)端中的數(shù)據(jù)發(fā) 送單元讀取小型計(jì)算機(jī)接口命令(步驟S440)。讀取目標(biāo)端中的內(nèi)存地址(步驟S451)。根 據(jù)內(nèi)存地址中所儲(chǔ)存的小型計(jì)算機(jī)接口命令,用以分批包裝成網(wǎng)絡(luò)封包(步驟S452)。
由數(shù)據(jù)發(fā)送單元執(zhí)行地址解析程序,用以將小型計(jì)算機(jī)接口命令轉(zhuǎn)換為多筆網(wǎng)絡(luò) 封包(步驟S460)。計(jì)算每一網(wǎng)絡(luò)封包的偏移量(步驟S470)。根據(jù)網(wǎng)絡(luò)封包的偏移量, 將檢查碼加入于網(wǎng)絡(luò)封包(步驟S471)。根據(jù)每一個(gè)網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容產(chǎn)生第一檢查碼 (步驟S472)。將第一檢查碼加入網(wǎng)絡(luò)封包(步驟S480),并將網(wǎng)絡(luò)封包發(fā)送至相應(yīng)的裝置。
為清楚說(shuō)明在多個(gè)發(fā)起端210提出存取請(qǐng)求時(shí)的運(yùn)作流程,在此提出以下實(shí)施例 作為說(shuō)明。但其中發(fā)起端210數(shù)量并非本發(fā)明的限制,在此僅先敘明。首先,第一發(fā)起端提 出第一存取請(qǐng)求;第二發(fā)起端提出第二存取請(qǐng)求;第三發(fā)起端提出第三存取請(qǐng)求。目標(biāo)端 230在接收到各存取請(qǐng)求后,目標(biāo)端230會(huì)根據(jù)不同的存取請(qǐng)求產(chǎn)生相應(yīng)的小型計(jì)算機(jī)接 口命令(其分別為第一小型計(jì)算機(jī)接口、第二小型計(jì)算機(jī)接口與第三小型計(jì)算機(jī)接口 )。請(qǐng) 參考圖5所示,其分別為由小型計(jì)算機(jī)接口命令的地址計(jì)算檢查碼的示意圖。在圖5中目標(biāo) 端230首先根據(jù)第一小型計(jì)算機(jī)接口命令所產(chǎn)生的網(wǎng)絡(luò)封包,用以計(jì)算其第一檢查碼。接 著,目標(biāo)端230再根據(jù)第二小型計(jì)算機(jī)接口命令的網(wǎng)絡(luò)封包與第一檢查碼,用以計(jì)算第二 小型地腦接口命令的第一檢查碼。同理,目標(biāo)端230對(duì)第一小型計(jì)算機(jī)接口命令的第一檢 查碼、第二小型計(jì)算機(jī)接口命令的第一檢查碼與第三小型計(jì)算機(jī)接口命令的網(wǎng)絡(luò)封包,用以計(jì)算第三小型計(jì)算機(jī)接口命令的第一檢查碼。將最后所得到的第一檢查碼定義為第二檢 查碼。最后,在目標(biāo)端230發(fā)送上述的網(wǎng)絡(luò)封包時(shí),再將第三小型計(jì)算機(jī)接口命令的網(wǎng)絡(luò)封 包后在另外加上前述所計(jì)算的第二檢查碼。 本發(fā)明的網(wǎng)絡(luò)封包傳送方法,利用目標(biāo)端230中的網(wǎng)絡(luò)卡對(duì)網(wǎng)絡(luò)封包進(jìn)行檢查碼 的產(chǎn)生。以降低目標(biāo)端230將存取請(qǐng)求映像至網(wǎng)絡(luò)卡所耗費(fèi)的時(shí)間與內(nèi)存空間。
權(quán)利要求
一種加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法,其應(yīng)用于一因特網(wǎng)小型計(jì)算機(jī)接口的一目標(biāo)端對(duì)一請(qǐng)求端發(fā)送多個(gè)數(shù)據(jù)封包,其特征在于,該通信方法包括以下步驟該目標(biāo)端接收一存取請(qǐng)求,其用以對(duì)一儲(chǔ)存設(shè)備進(jìn)行存取;根據(jù)該存取請(qǐng)求產(chǎn)生多筆小型計(jì)算機(jī)接口命令;由該目標(biāo)端中的一數(shù)據(jù)發(fā)送單元讀取該些小型計(jì)算機(jī)接口命令;由該數(shù)據(jù)發(fā)送單元執(zhí)行一地址解析程序,用以將該些小型計(jì)算機(jī)接口命令轉(zhuǎn)換為多筆網(wǎng)絡(luò)封包;根據(jù)每一該網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容用以產(chǎn)生一第一檢查碼;以及將該第一檢查碼加入該網(wǎng)絡(luò)封包。
2. 如權(quán)利要求1所述的加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法,其特征在于,在 該目標(biāo)端接收該存取請(qǐng)求中還包括以下步驟根據(jù)對(duì)不同該儲(chǔ)存設(shè)備的該存取請(qǐng)求指派一存取標(biāo)簽;以及 對(duì)同一該存取標(biāo)簽的該些存取請(qǐng)求用以計(jì)算相應(yīng)的該些第一檢查碼。
3. 如權(quán)利要求1所述的加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法,其特征在于,在 讀取該些小型計(jì)算機(jī)接口命令中還包括以下步驟讀取該目標(biāo)端中的一內(nèi)存地址;以及根據(jù)該內(nèi)存地址中所儲(chǔ)存的該些小型計(jì)算機(jī)接口命令,用以分批包裝成該些網(wǎng)絡(luò)封包。
4. 如權(quán)利要求1所述的加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法,其特征在于,在 產(chǎn)生該第一檢查碼前還包括以下步驟計(jì)算每一該網(wǎng)絡(luò)封包的一偏移量;以及根據(jù)該網(wǎng)絡(luò)封包的該偏移量,用以將該第一檢查碼加入于該網(wǎng)絡(luò)封包。
5. 如權(quán)利要求4所述的加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法,其特征在于,在 產(chǎn)生該偏移量后還包括以下步驟根據(jù)該偏移量用以對(duì)該網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容計(jì)算該第一檢查碼。
6. —種因特網(wǎng)小型計(jì)算機(jī)接口的處理系統(tǒng),其應(yīng)用于因特網(wǎng)小型計(jì)算機(jī)接口儲(chǔ)存系統(tǒng) 間的多筆網(wǎng)絡(luò)封包的傳送處理,其特征在于,該處理系統(tǒng)包括一發(fā)起端,用以發(fā)出一存取請(qǐng)求; 多個(gè)儲(chǔ)存設(shè)備,其用以儲(chǔ)存一目標(biāo)信息;以及一目標(biāo)端,用以來(lái)自接收該發(fā)起端的一存取請(qǐng)求,該目標(biāo)端根據(jù)該存取請(qǐng)求用以存取 該些儲(chǔ)存設(shè)備中的該目標(biāo)信息并將該目標(biāo)信息傳送至該發(fā)起端,該目標(biāo)端還用以執(zhí)行下列 步驟根據(jù)該存取請(qǐng)求產(chǎn)生多筆小型計(jì)算機(jī)接口命令; 由該目標(biāo)端中的一數(shù)據(jù)發(fā)送單元讀取該些小型計(jì)算機(jī)接口命令;由該數(shù)據(jù)發(fā)送單元執(zhí)行一地址解析程序,用以將該些小型計(jì)算機(jī)接口命令轉(zhuǎn)換為多筆 網(wǎng)絡(luò)封包;根據(jù)每一該網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容用以產(chǎn)生一第一檢查碼;以及 將該第一檢查碼加入該網(wǎng)絡(luò)封包。
全文摘要
本發(fā)明公開了一種加速因特網(wǎng)小型計(jì)算機(jī)接口數(shù)據(jù)的通信方法及其處理系統(tǒng),其應(yīng)用于因特網(wǎng)小型計(jì)算機(jī)接口的目標(biāo)端對(duì)多個(gè)儲(chǔ)存設(shè)備發(fā)送多個(gè)數(shù)據(jù)封包,通信方法包括以下步驟目標(biāo)端接收存取請(qǐng)求,其用以對(duì)儲(chǔ)存設(shè)備進(jìn)行存?。桓鶕?jù)存取請(qǐng)求產(chǎn)生多筆小型計(jì)算機(jī)接口命令;由目標(biāo)端中的數(shù)據(jù)發(fā)送單元(egress packet generator)讀取小型計(jì)算機(jī)接口命令;由數(shù)據(jù)發(fā)送單元執(zhí)行地址解析程序,用以將小型計(jì)算機(jī)接口命令轉(zhuǎn)換為多筆網(wǎng)絡(luò)封包;根據(jù)每網(wǎng)絡(luò)封包的儲(chǔ)存內(nèi)容用以產(chǎn)生第一檢查碼;將第一檢查碼加入網(wǎng)絡(luò)封包。
文檔編號(hào)H04L12/56GK101741699SQ20081017706
公開日2010年6月16日 申請(qǐng)日期2008年11月19日 優(yōu)先權(quán)日2008年11月19日
發(fā)明者朱明勝, 王云松, 陳玄同 申請(qǐng)人:英業(yè)達(dá)股份有限公司