專(zhuān)利名稱(chēng):一種實(shí)現(xiàn)tcp連接備份的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)通信領(lǐng)域,尤其涉及一種實(shí)現(xiàn)TCP連接備份的系統(tǒng)及方法。
背景技術(shù):
傳輸控制協(xié)議(Transmission Control Protocol, TCP )是一種可靠的報(bào)文傳 送控制協(xié)議,利用滑動(dòng)窗口機(jī)制實(shí)現(xiàn)報(bào)文重傳。由于TCP的序列號(hào)確認(rèn)重傳機(jī) 制比較復(fù)雜,因此難以對(duì)TCP連接進(jìn)行備份。目前,主要通過(guò)TCP多播機(jī)制和TCP鏡傳4幾制兩種方式對(duì)TCP連接進(jìn)行 備份。在TCP多播機(jī)制中,主TCP連接的收發(fā)報(bào)文均拷貝 一份到備份TCP連 接,容易造成報(bào)文丟失,可能造成報(bào)文失序。在TCP鏡像機(jī)制中,備板(Standby Main Board, SMB ) TCP首先處理報(bào)文。接收?qǐng)?bào)文時(shí),報(bào)文首先到達(dá)備板TCP, 然后拷貝 一份到主板TCP。發(fā)送報(bào)文時(shí),主板TCP首先將"t艮文發(fā)送到備板TCP, 由備板TCP發(fā)出。在上述TCP鏡像機(jī)制中,由于發(fā)送報(bào)文的備份是在TCP中實(shí)現(xiàn)的,TCP 可能將應(yīng)用數(shù)據(jù)切割成多個(gè)TCP報(bào)文,然后再將TCP報(bào)文發(fā)送到SMB,進(jìn)程 間通信(Inter Process Communication, IPC)通道利用率j氐。同時(shí),由于大量的 報(bào)文緩沖,導(dǎo)致資源消耗龐大,通信效率很低。另外,所有操作必須由備板TCP 優(yōu)先完成,導(dǎo)致報(bào)文的處理環(huán)節(jié)增加,也降低了通信效率。當(dāng)應(yīng)用程序?qū)?bào)文發(fā)送到套接字(socket)后,由于認(rèn)為T(mén)CP是可靠的, 只要發(fā)送到socket,應(yīng)用程序就認(rèn)為報(bào)文發(fā)送成功,而實(shí)際上socket中的緩存 報(bào)文在倒換過(guò)程中會(huì)有部分丟失,此時(shí)應(yīng)用程序無(wú)法知曉報(bào)文丟失,從而造成 報(bào)文的永久性丟失。
當(dāng)應(yīng)用程序發(fā)送大塊報(bào)文時(shí),TCP內(nèi)部將切分報(bào)文,如果在完成部分切分 報(bào)文的發(fā)送后發(fā)生主備倒換,由于對(duì)端已經(jīng)接收了部分報(bào)文,再發(fā)送報(bào)文時(shí), 對(duì)端會(huì)將對(duì)已接收的報(bào)文與新接收的報(bào)文進(jìn)行組織,重新發(fā)送大塊報(bào)文,由 于會(huì)有重疊報(bào)文,而報(bào)文的序列號(hào)不重疊,導(dǎo)致大塊報(bào)文不完整,同時(shí)應(yīng)用程 序也無(wú)法界定報(bào)文邊界,容易導(dǎo)致報(bào)文錯(cuò)誤。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種實(shí)現(xiàn)TCP連接備份的方法,旨在解決現(xiàn)有技術(shù)中存在的TCP連接備份的可靠性和傳送效率較低的問(wèn)題。本發(fā)明的另 一 目的在于提供一種在發(fā)送報(bào)文時(shí)實(shí)現(xiàn)TCP連接備份的方法。 本發(fā)明的另 一 目的在于提供一種實(shí)現(xiàn)TCP連接備份的系統(tǒng)。 本發(fā)明是這樣實(shí)現(xiàn)的, 一種實(shí)現(xiàn)TCP連接備份的方法,所述方法包括 在發(fā)送報(bào)文時(shí),主板預(yù)測(cè)報(bào)文的邊界信息,將報(bào)文以及報(bào)文的邊界信息備份到備板,并將報(bào)文發(fā)送給對(duì)端;在接收?qǐng)?bào)文時(shí),備板將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板,并根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息刪除本地備份的對(duì)端已經(jīng)接收到的報(bào)文。所述主板預(yù)測(cè)報(bào)文的邊界信息的步驟包括A. 接收主板應(yīng)用程序傳送的報(bào)文以及報(bào)文的大小信息;B. 根據(jù)所述報(bào)文的大小信息獲取所述報(bào)文的邊界信息。 所述步驟B進(jìn)一步包括下述步驟Bl.根據(jù)報(bào)文的邊界信息和后續(xù)報(bào)文的大小信息計(jì)算后續(xù)報(bào)文的邊界信息。 所述備板將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板,并根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息刪除本地備份的對(duì)端已經(jīng)接收到的報(bào)文的步驟包括A.接收對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息;
B. 將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板;C. 根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息確認(rèn)對(duì)端已經(jīng)接收到的報(bào)文;D. 將本地備份的對(duì)端已經(jīng)接收到的報(bào)文刪除。 所述方法進(jìn)一步包括下述步驟如果在報(bào)文完成部分發(fā)送時(shí)發(fā)生主備倒換,備板根據(jù)所述報(bào)文的邊界信息 將本地備份的所述報(bào)文發(fā)送給對(duì)端。 所述方法進(jìn)一步包括下述步驟如果在報(bào)文完成部分發(fā)送時(shí)發(fā)生主備倒換,備板根據(jù)對(duì)端返回的接收到的 報(bào)文的邊界信息確認(rèn)對(duì)端未收到的報(bào)文的邊界信息,根據(jù)所述對(duì)端未收到的報(bào) 文的邊界信息將本地備份的所述對(duì)端未收到的報(bào)文發(fā)送給對(duì)端。 主板通過(guò)滑動(dòng)窗口方式將報(bào)文及報(bào)文的邊界信息備份到備板。 主板和備板之間通過(guò)IPC消息傳送報(bào)文以及報(bào)文的邊界信息。 所述邊界信息包括報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。 一種在發(fā)送報(bào)文時(shí)實(shí)現(xiàn)TCP連接備份的方法,所述方法包括 在發(fā)送報(bào)文前,預(yù)測(cè)報(bào)文的邊界信息,并備份所述報(bào)文以及報(bào)文的邊界信臺(tái)、所述預(yù)測(cè)報(bào)文的邊界信息的步驟包括A. 接收應(yīng)用程序傳送的報(bào)文以及報(bào)文的大小信息;B. 根據(jù)所述報(bào)文的大小信息獲取所述報(bào)文的邊界信息。 所述步驟B進(jìn)一步包括下述步驟Bl.根據(jù)報(bào)文的邊界信息和后續(xù)報(bào)文的大小信息計(jì)算后續(xù)報(bào)文的邊界信息。 所述邊界信息包括報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。 一種實(shí)現(xiàn)TCP連接備份的系統(tǒng),所述系統(tǒng)包括報(bào)文發(fā)送備份單元,用于在發(fā)送報(bào)文時(shí),將報(bào)文以及報(bào)文的邊界信息備份 到備板,并將報(bào)文發(fā)送給對(duì)端;報(bào)文接收備份單元,用于在接收?qǐng)?bào)文時(shí),將對(duì)端的報(bào)文以及對(duì)端接收到的
報(bào)文的邊界信息備份到主板,并根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息刪除本 地備份的對(duì)端已經(jīng)接收到的報(bào)文。所述報(bào)文發(fā)送備份單元包括主緩沖器模塊,用于接收主板應(yīng)用程序傳送的報(bào)文以及報(bào)文的大小信息, 根據(jù)所述報(bào)文的大小信息獲取所述報(bào)文的邊界信息,并將所述報(bào)文以及報(bào)文的邊界信息備份到報(bào)文接收備份單元;主TCP模塊,用于根據(jù)主緩沖器模塊發(fā)送的報(bào)文的大小信息向主緩沖器模 塊返回報(bào)文的邊界信息,接收主緩沖器模塊發(fā)送的報(bào)文,并根據(jù)所述報(bào)文的邊 界信息將所述報(bào)文發(fā)送給對(duì)端。所述主緩沖器模塊進(jìn)一步用于根據(jù)報(bào)文的邊界信息和后續(xù)報(bào)文的大小信息 計(jì)算后續(xù)報(bào)文的邊界信息。所述主緩沖器模塊位于Socket接口之下、之下或者主TCP模塊之內(nèi)。 所述報(bào)文接收備份單元包括備份TCP模塊,用于接收對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息, 將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板;備份緩沖器模塊,用于接收并緩存報(bào)文發(fā)送備份單元備份的報(bào)文以及報(bào)文 的邊界信息,根據(jù)備份TCP模塊發(fā)送的所述對(duì)端接收到的報(bào)文的邊界信息確認(rèn) 對(duì)端已經(jīng)接收到的報(bào)文,將本地備份的對(duì)端已經(jīng)接收到的報(bào)文刪除。所述備份緩沖器模塊位于Socket接口之下、之下或者備份TCP模塊之內(nèi)。所述報(bào)文發(fā)送備份單元通過(guò)滑動(dòng)窗口方式將報(bào)文及報(bào)文的邊界信息備份到 備板。所述報(bào)文發(fā)送備份單元和報(bào)文發(fā)送備份單元之間通過(guò)IPC消息傳送報(bào)文以 及報(bào)丈的邊界信息。所述邊界信息包括報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。本發(fā)明在發(fā)送報(bào)文前預(yù)測(cè)報(bào)文的邊界信息,然后將報(bào)文和報(bào)文的邊界信息 備份到備板,當(dāng)主備倒換后,備板按原報(bào)文的序列號(hào)將報(bào)文重新發(fā)送出去,保證對(duì)端能夠收到完整的報(bào)文,從而實(shí)現(xiàn)報(bào)文在主備倒換時(shí)的完整性保護(hù),提高 了主備倒換的可靠性,有效解決TCP數(shù)據(jù)報(bào)文邊界問(wèn)題,確保發(fā)送報(bào)文無(wú)任何 損失,并且將報(bào)文的鏡像分布在主、備板,簡(jiǎn)化了報(bào)文緩沖流程。通過(guò)對(duì)大塊 數(shù)據(jù)進(jìn)行備份,實(shí)現(xiàn)應(yīng)用數(shù)據(jù)的匯聚,提高了 IPC通道的利用率,且每個(gè)板僅單方向鏡像,效率更高。本發(fā)明很好地支持了 TCP滑動(dòng)窗口機(jī)制,緩沖器模塊 的預(yù)處理不影響后續(xù)的滑動(dòng)窗口處理,由于預(yù)處理有緩沖機(jī)制,不影響TCP的 原有發(fā)送速度,傳送效率高。另外,本發(fā)明不依賴(lài)應(yīng)用程序獨(dú)立完成TCP連接 備份,具有普遍適用性。
圖1是本發(fā)明中緩沖器模塊設(shè)置于Socket接口之下時(shí),TCP連接備份系統(tǒng) 的結(jié)構(gòu)原理圖;圖2是本發(fā)明中緩沖器模塊設(shè)置于Socket接口之上時(shí),TCP連接備份系統(tǒng) 的結(jié)構(gòu)原理圖;圖3是本發(fā)明中緩沖器模塊設(shè)置于TCP模塊之內(nèi)時(shí),TCP連接備份系統(tǒng)的 結(jié)構(gòu)原理圖;圖4是本發(fā)明中實(shí)現(xiàn)TCP連接備份時(shí)的報(bào)文發(fā)送流程圖; 圖5是本發(fā)明中實(shí)現(xiàn)TCP連接備份時(shí)的報(bào)文接收流程圖; 圖6是本發(fā)明中主備倒換后數(shù)據(jù)重發(fā)的原理示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明在發(fā)送報(bào)文前預(yù)測(cè)報(bào)文的邊界信息,然后將報(bào)文和報(bào)文的邊界信息 備份到備板,當(dāng)主備倒換后,備板按原報(bào)文的序列號(hào)將報(bào)文重新發(fā)送出去,保 證對(duì)端能夠收到完整的報(bào)文,從而實(shí)現(xiàn)報(bào)文在主備倒換時(shí)的完整性保護(hù)。TCP連接備份到備板,在接收?qǐng)?bào)文時(shí),將TCP連接備份到主板。在實(shí)現(xiàn)上,本 發(fā)明在主板和備板上分別增加了一個(gè)緩沖器模塊(Bumper),利用緩沖器模塊 完成TCP連接在收發(fā)兩個(gè)方向上的鏡像備份。緩沖器(Bumper)模塊可以設(shè)置于TCP模塊和套接字(socket)接口之間, 如圖l所示,也可以設(shè)置于socket接口之上,如圖2所示,或者設(shè)置于TCP模 塊之內(nèi),如圖3所示。主緩沖器模塊與主TCP模塊協(xié)同確定發(fā)送報(bào)文的邊界信息(報(bào)文的開(kāi)始序 列號(hào)和結(jié)束序列號(hào)),并將報(bào)文和報(bào)文的邊界信息備份到備份緩沖器模塊,確 保主應(yīng)用程序發(fā)送到主TCP模塊的報(bào)文在主備倒換后仍能準(zhǔn)確發(fā)送到對(duì)端。主 備倒換后,備份TCP模塊根據(jù)報(bào)文的序列號(hào)發(fā)送報(bào)文,因此發(fā)送到備份緩沖器 模塊中的報(bào)文由備份TCP模塊按原報(bào)文的序列號(hào)重新發(fā)送給對(duì)端,實(shí)現(xiàn)報(bào)文的 完整性保護(hù)。主緩沖器模塊與備份緩沖器模塊之間以及主TCP模塊與備份TCP 模塊之間通過(guò)IPC消息通訊。在發(fā)送報(bào)文時(shí),如圖4所示,主應(yīng)用程序首先將報(bào)文以及報(bào)文的大小信息 通過(guò)Socket接口發(fā)送給主緩沖器模塊,主緩沖器模塊阻塞住應(yīng)用程序。主緩沖 器模塊根據(jù)報(bào)文的大小信息從主TCP模塊獲取發(fā)送報(bào)文的開(kāi)始序列號(hào)和結(jié)束 序列號(hào),以后主緩沖器模塊可以根據(jù)該結(jié)束序列號(hào)和后續(xù)報(bào)文的大小直接計(jì)算 出后續(xù)報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào),并將報(bào)文以及報(bào)文的開(kāi)始序列號(hào)和結(jié) 束序列號(hào)備份到備份緩沖器模塊,備份緩沖器模塊保存主緩沖器模塊發(fā)送的報(bào) 文以及報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。作為本發(fā)明的一個(gè)實(shí)施例,上述過(guò)程也可以采用異步方式,主緩沖器模塊 的發(fā)送部分?jǐn)U展為滑動(dòng)窗口方式,主緩沖器模塊可以連續(xù)發(fā)多塊報(bào)文到備份緩 沖器模塊,備份緩沖器模塊連續(xù)處理多塊報(bào)文后返回一個(gè)確認(rèn)信息進(jìn)行統(tǒng)一確 認(rèn),主緩沖器模塊采用超時(shí)機(jī)制對(duì)備份緩沖器模塊的狀態(tài)進(jìn)行監(jiān)測(cè),如果超時(shí) 后未收到備份緩沖器模塊返回的確認(rèn)信息,則重新發(fā)送報(bào)文。主緩沖器模塊將報(bào)文發(fā)送給主TCP模塊,由主TCP模塊將報(bào)文發(fā)送給對(duì) 端。備份緩沖器模塊將主緩沖器模塊發(fā)送的報(bào)文透?jìng)鞯絺浞輵?yīng)用程序,備份應(yīng) 用程序解析收到的報(bào)文,確定報(bào)文發(fā)送的目的信息,保證主備在應(yīng)用處理上的同步。備份TCP模塊接收對(duì)端返回的報(bào)文接收序列號(hào)確認(rèn)信息,并將對(duì)端已經(jīng)接 收到的報(bào)文的序列號(hào)發(fā)送給主TCP模塊。同時(shí),將對(duì)端已經(jīng)接收到的報(bào)文的序 列號(hào)發(fā)送給備份緩沖器模塊,備份緩沖器模塊根據(jù)該報(bào)文的序列號(hào)確認(rèn)對(duì)端已 經(jīng)接收到的報(bào)文,并刪除本地備份的對(duì)端已經(jīng)接收到的報(bào)文。由上可知,主TCP模塊在主緩沖器模塊對(duì)報(bào)文進(jìn)行預(yù)處理時(shí)仍能繼續(xù)發(fā)送 其緩沖區(qū)中的報(bào)文,因此主TCP模塊本身的傳送效率不受任何影響,即使增加 了高可靠性和熱備份功能后,仍能保持高效率的報(bào)文傳送。如圖5所示,在接收?qǐng)?bào)文時(shí),備份TCP模塊接收對(duì)端發(fā)送的報(bào)文以及對(duì)端 返回的已接收到的報(bào)文的序列號(hào),將報(bào)文發(fā)送到主TCP模塊,主TCP模塊將 接收到的報(bào)文發(fā)送給主應(yīng)用程序。主TCP模塊獲取報(bào)文后,向?qū)Χ税l(fā)送報(bào)文接 收確認(rèn)信息。同時(shí),備份TCP模塊將報(bào)文發(fā)送給備份應(yīng)用程序,并將對(duì)端收到 的報(bào)文的序列號(hào)通知備份緩沖器模塊,備份緩沖器模塊根據(jù)該報(bào)文的序列號(hào)確 定對(duì)端已經(jīng)接收到的報(bào)文,并將本地備份的對(duì)端已經(jīng)接收到的報(bào)文刪除。作為本發(fā)明的另 一實(shí)施例,報(bào)文接收和發(fā)送操作也可以統(tǒng)一由備板來(lái)完成。 主緩沖器模塊從主TCP模塊獲取發(fā)送報(bào)文的邊界信息,并將報(bào)文和報(bào)文的邊界 信息備份到備份緩沖器模塊,確保主應(yīng)用程序發(fā)送到主TCP模塊的報(bào)文在主備 倒換后仍能準(zhǔn)確發(fā)送到對(duì)端。備份緩沖器模塊將報(bào)文發(fā)送給備份TCP模塊,由 備份TCP模塊將報(bào)文發(fā)送給對(duì)端。主備倒換后,備份TCP模塊根據(jù)報(bào)文的序 列號(hào)發(fā)送報(bào)文,因此發(fā)送到備份緩沖器模塊中的報(bào)文能在主備倒換后由備份 TCP模塊按原報(bào)文的序列號(hào)重新發(fā)送給對(duì)端,實(shí)現(xiàn)報(bào)文的完整性保護(hù)。如果主應(yīng)用程序發(fā)送到主緩沖器模塊中的報(bào)文在完成部分發(fā)送的情況下發(fā) 生了TCP連接倒換,假設(shè)該報(bào)文的序列號(hào)是(m,m+5 ),已經(jīng)得到對(duì)端反饋的 報(bào)文序列號(hào)是m+2,說(shuō)明對(duì)端已經(jīng)接收到(m,m+2)的報(bào)文。倒換到備板后,備份應(yīng)用程序需要重新組織新報(bào)文,但無(wú)法組織完整的該 報(bào)文,所以此時(shí)備份緩沖器模塊將從其緩存中找到該報(bào)文,然后指定報(bào)文序列 號(hào)(m,m+5 )將該報(bào)文發(fā)送到備份TCP模塊。備份TCP模塊將該報(bào)文發(fā)送給對(duì) 端。對(duì)端收到序列號(hào)為(m,m+5)的報(bào)文,根據(jù)滑動(dòng)窗口機(jī)制丟棄(m,m+2) 報(bào)文,只保留(m+3, m+5)的報(bào)文,與已接收到的報(bào)文(m,m+2 )組成完整報(bào) 文,如圖6所示。備份緩沖器模塊也可以根據(jù)本身接收到的對(duì)端返回的已接收到的報(bào)文的序 列號(hào),只發(fā)送(m+3, m+5)的報(bào)文,則對(duì)端不需要丟棄處理。整個(gè)倒換過(guò)程 可以充分證明,只要是應(yīng)用程序發(fā)送到緩沖器模塊中的報(bào)文,在備份倒換后, TCP模塊不需要依賴(lài)應(yīng)用程序的情況下能保證報(bào)文準(zhǔn)確發(fā)到對(duì)端,并且保持報(bào) 文的完整性。應(yīng)用程序只需要關(guān)心其報(bào)文倒換,對(duì)發(fā)送到TCP模塊中的報(bào)文可 以認(rèn)為是可靠到達(dá)對(duì)端,從而實(shí)現(xiàn)TCP連接的可靠倒換。本發(fā)明可以有效解決TCP數(shù)據(jù)報(bào)文邊界的問(wèn)題,確保發(fā)送報(bào)文無(wú)任何損 失,并且將報(bào)文的鏡像分布在主、備板,簡(jiǎn)化了報(bào)文緩沖流程,通過(guò)緩沖器模 塊進(jìn)行大塊數(shù)據(jù)備份,實(shí)現(xiàn)應(yīng)用數(shù)據(jù)的匯聚,提高了 IPC通道的利用率,且每 個(gè)板僅單方向鏡像,效率更高。同時(shí),本發(fā)明可以很好地支持TCP滑動(dòng)窗口機(jī)制,緩沖器模塊的預(yù)處理不 影響后續(xù)的滑動(dòng)窗口處理,由于預(yù)處理有緩沖機(jī)制,不影響TCP原有發(fā)送速度, 具有較高的報(bào)文傳送效率。另外,本發(fā)明不需要依賴(lài)應(yīng)用程序就能獨(dú)立完成 TCP連接備份,具有普遍適用性。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明 的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種實(shí)現(xiàn)TCP連接備份的方法,其特征在于,所述方法包括在發(fā)送報(bào)文時(shí),主板預(yù)測(cè)報(bào)文的邊界信息,將報(bào)文以及報(bào)文的邊界信息備份到備板,并將報(bào)文發(fā)送給對(duì)端;在接收?qǐng)?bào)文時(shí),備板將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板,并根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息刪除本地備份的對(duì)端已經(jīng)接收到的報(bào)文。
6、 如權(quán)利要求1要求所述的實(shí)現(xiàn)TCP連接備份的方法,其特征在于,所述方法進(jìn)一步包括下述步驟如果在報(bào)文完成部分發(fā)送時(shí)發(fā)生主備倒換,備板根據(jù)對(duì)端返回的接收到的 報(bào)文的邊界信息確認(rèn)對(duì)端未收到的報(bào)文的邊界信息,根據(jù)所述對(duì)端未收到的報(bào) 文的邊界信息將本地備份的所述對(duì)端未收到的報(bào)文發(fā)送給對(duì)端。
7、 如權(quán)利要求1至6任一權(quán)利要求所述的實(shí)現(xiàn)TCP連接備份的方法,其 特征在于,主板通過(guò)滑動(dòng)窗口方式將報(bào)文及報(bào)文的邊界信息備份到備板。
8、 如權(quán)利要求1至6任一權(quán)利要求所述的實(shí)現(xiàn)TCP連接備份的方法,其 特征在于,主板和備板之間通過(guò)IPC消息傳送報(bào)文以及報(bào)文的邊界信息。
9、 如權(quán)利要求1至6任一權(quán)利要求所述的實(shí)現(xiàn)TCP連接備份的方法,其 特征在于,所述邊界信息包括報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。
10、 一種在發(fā)送報(bào)文時(shí)實(shí)現(xiàn)TCP連接備份的方法,其特征在于,所述方法 包括在發(fā)送報(bào)文前,預(yù)測(cè)報(bào)文的邊界信息,并備份所述報(bào)文以及報(bào)文的邊界信
11、 如權(quán)利要求IO所述的在發(fā)送報(bào)文時(shí)實(shí)現(xiàn)TCP連接備份的方法,其特 征在于,所述預(yù)測(cè)報(bào)文的邊界信息的步驟包括A. 接收應(yīng)用程序傳送的報(bào)文以及報(bào)文的大小信息;B. 根據(jù)所述報(bào)文的大小信息獲取所述報(bào)文的邊界信息。
12、 如權(quán)利要求11所述的在發(fā)送報(bào)文時(shí)實(shí)現(xiàn)TCP連接備份的方法,其特 征在于,所述步驟B進(jìn)一步包括下述步驟Bl.根據(jù)報(bào)文的邊界信息和后續(xù)報(bào)文的大小信息計(jì)算后續(xù)報(bào)文的邊界信息。
13、 如權(quán)利要求10、 11或12所述的在發(fā)送報(bào)文時(shí)實(shí)現(xiàn)TCP連接備份的方 法,其特征在于,所述邊界信息包括報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。
14、 一種實(shí)現(xiàn)TCP連接備份的系統(tǒng),其特征在于,所述系統(tǒng)包括 報(bào)文發(fā)送備份單元,用于在發(fā)送報(bào)文時(shí),將報(bào)文以及報(bào)文的邊界信息備份 到備板,并將報(bào)文發(fā)送給對(duì)端;報(bào)文接收備份單元,用于在接收?qǐng)?bào)文時(shí),將對(duì)端的報(bào)文以及對(duì)端接收到的 報(bào)文的邊界信息備份到主板,并根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息刪除本 地備份的對(duì)端已經(jīng)接收到的報(bào)文。
15、 如權(quán)利要求14所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng),其特征在于,所述 報(bào)文發(fā)送備份單元包括主緩沖器模塊,用于接收主板應(yīng)用程序傳送的報(bào)文以及報(bào)文的大小信息, 根據(jù)所述報(bào)文的大小信息獲取所述報(bào)文的邊界信息,并將所述報(bào)文以及報(bào)文的 邊界信息備份到報(bào)文接收備份單元;主TCP模塊,用于根據(jù)主緩沖器模塊發(fā)送的報(bào)文的大小信息向主緩沖器模 塊返回報(bào)文的邊界信息,接收主緩沖器模塊發(fā)送的報(bào)文,并根據(jù)所述報(bào)文的邊 界信息將所述報(bào)文發(fā)送給對(duì)端。
16、 如權(quán)利要求15所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng),其特征在于,所述 主緩沖器模塊進(jìn)一步用于根據(jù)報(bào)文的邊界信息和后續(xù)報(bào)文的大小信息計(jì)算后續(xù) 報(bào)文的邊界信息。
17、 如權(quán)利要求15所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng),其特征在于,所述 主緩沖器模塊位于Socket接口之下、之下或者主TCP模塊之內(nèi)。
18、 如權(quán)利要求14所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng),其特征在于,所述 報(bào)文接收備份單元包括備份TCP模塊,用于接收對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息, 將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板;備份緩沖器模塊,用于接收并緩存報(bào)文發(fā)送備份單元備份的報(bào)文以及報(bào)文 的邊界信息,根據(jù)備份TCP模塊發(fā)送的所述對(duì)端接收到的報(bào)文的邊界信息確認(rèn) 對(duì)端已經(jīng)接收到的報(bào)文,將本地備份的對(duì)端已經(jīng)接收到的報(bào)文刪除。
19、 如權(quán)利要求18所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng),其特征在于,所述 備份緩沖器模塊位于Socket接口之下、之下或者備份TCP模塊之內(nèi)。
20、 如權(quán)利要求14至19 ^f壬一一又利要求所述的實(shí)現(xiàn)TCP連"l妄備^f分的系統(tǒng), 其特征在于,所述報(bào)文發(fā)送備份單元通過(guò)滑動(dòng)窗口方式將報(bào)文及報(bào)文的邊界信 息備份到備板。
21、 如權(quán)利要求14至19任一權(quán)利要求所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng),送報(bào)文以及報(bào)文的邊界信息。
22、 如權(quán)利要求14至19任一權(quán)利要求所述的實(shí)現(xiàn)TCP連接備份的系統(tǒng), 其特征在于,所述邊界信息包括報(bào)文的開(kāi)始序列號(hào)和結(jié)束序列號(hào)。
全文摘要
本發(fā)明適用于數(shù)據(jù)通信領(lǐng)域,提供了一種實(shí)現(xiàn)TCP連接備份的方法及系統(tǒng),所述方法包括在發(fā)送報(bào)文時(shí),主板預(yù)測(cè)報(bào)文的邊界信息,將報(bào)文以及報(bào)文的邊界信息備份到備板,并將報(bào)文發(fā)送給對(duì)端;在接收?qǐng)?bào)文時(shí),備板將對(duì)端的報(bào)文以及對(duì)端接收到的報(bào)文的邊界信息備份到主板,并根據(jù)所述對(duì)端接收到的報(bào)文的邊界信息刪除本地備份的對(duì)端已經(jīng)接收到的報(bào)文。本發(fā)明在發(fā)送報(bào)文前預(yù)測(cè)報(bào)文的邊界信息,然后將報(bào)文和報(bào)文的邊界信息備份到備板,當(dāng)主備倒換后,備板按原報(bào)文的序列號(hào)將報(bào)文重新發(fā)送出去,保證對(duì)端能夠收到完整的報(bào)文,從而實(shí)現(xiàn)報(bào)文在主備倒換時(shí)的完整性保護(hù),提高了主備倒換的可靠性和數(shù)據(jù)傳送效率,不依賴(lài)應(yīng)用程序獨(dú)立完成TCP連接備份,具有普遍適用性。
文檔編號(hào)H04L29/06GK101132347SQ20061006234
公開(kāi)日2008年2月27日 申請(qǐng)日期2006年8月24日 優(yōu)先權(quán)日2006年8月24日
發(fā)明者裕 付, 勇 施, 涂伯顏, 羅漢軍 申請(qǐng)人:華為技術(shù)有限公司