專利名稱:探測(cè)處理方法、數(shù)據(jù)發(fā)送端、數(shù)據(jù)接收端以及通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其涉及一種探測(cè)處理方法、數(shù)據(jù)發(fā)送端、數(shù)據(jù)接收端以及通信系統(tǒng)。
背景技術(shù):
集群路由器具有成本低、大容量的特點(diǎn),可以很好的實(shí)現(xiàn)網(wǎng)絡(luò)的擴(kuò)展,并支持更大規(guī)模和更高性能的網(wǎng)絡(luò),易于提供多樣的服務(wù)和接口,為寬帶業(yè)務(wù)的普及、高帶寬應(yīng)用的普及創(chuàng)造了物質(zhì)基礎(chǔ),已被普遍認(rèn)為是未來核心網(wǎng)絡(luò)設(shè)備的發(fā)展趨勢(shì),能夠滿足新一代互聯(lián)網(wǎng)發(fā)展的需求,具有非常廣泛的發(fā)展空間。隨著集群路由器的應(yīng)用越來越廣泛,對(duì)集群路由間的通信技術(shù)的要求也越來越高,需要高可靠、高性能的通信技術(shù),以最大限度的發(fā)揮集群網(wǎng)絡(luò)的能力。但是現(xiàn)有技術(shù)中的通信協(xié)議不能夠適應(yīng)集群路由器間的通信,例如用戶數(shù)據(jù)包協(xié)議(User Datagram Protocol,以下簡(jiǎn)稱UDP)不能夠提供可靠傳輸,而透明進(jìn)程間通信協(xié)議(Transparent Inter-process Communication,以下簡(jiǎn)稱TIPC)的可靠連接機(jī)制是建立在可靠?jī)?nèi)部虛擬連接的基礎(chǔ)上,其不同路由器之間的連接時(shí)相互干擾的,在整個(gè)可靠虛擬鏈路上一個(gè)連接的包丟失會(huì)減慢所有共享這個(gè)虛擬鏈路的路由器之間的通信,因此現(xiàn)有技術(shù)不能夠?yàn)榧郝酚善魈峁┖?jiǎn)單、高效的可靠性通信。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種探測(cè)處理方法、數(shù)據(jù)發(fā)送端、數(shù)據(jù)接收端以及通信系統(tǒng),用以提供簡(jiǎn)單、高效的可靠性通信。本發(fā)明實(shí)施例提供了一種探測(cè)處理方法,包括數(shù)據(jù)發(fā)送端在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送所述發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向所述數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;數(shù)據(jù)接收端在接收到所述探測(cè)消息后,根據(jù)已接收到的數(shù)據(jù)包信息獲取按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào),生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶所述數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)發(fā)送端,包括第一消息發(fā)送模塊,用于在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送所述發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;第一消息接收模塊,用于接收數(shù)據(jù)接收端返回的探測(cè)回復(fù)消息,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)接收端,包括第三消息接收模塊,用于接收數(shù)據(jù)發(fā)送端發(fā)送的報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;包序列號(hào)獲取模塊,用于根據(jù)已接收到的數(shù)據(jù)包信息獲取按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào);第三消息發(fā)送模塊,用于生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶所述數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。本發(fā)明實(shí)施例還提供一種通信系統(tǒng),包括上述的數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端。本發(fā)明實(shí)施例提供的技術(shù)方案,通過數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收端主動(dòng)發(fā)送探測(cè)消息,該探測(cè)消息觸發(fā)數(shù)據(jù)接收端對(duì)數(shù)據(jù)包接收情況進(jìn)行檢測(cè),并在返回的探測(cè)回復(fù)消息的報(bào)文頭中攜帶連續(xù)收到的最后一個(gè)數(shù)據(jù)包的序列號(hào),以實(shí)現(xiàn)數(shù)據(jù)發(fā)送端根據(jù)該序列號(hào)進(jìn)行發(fā)送窗口調(diào)整,刪除發(fā)送隊(duì)列中已成功發(fā)送的數(shù)據(jù)包,避免刪除發(fā)送隊(duì)列中未成功發(fā)送的數(shù)據(jù)包,確保發(fā)送質(zhì)量,本發(fā)明上述實(shí)施例提供的技術(shù)方案能夠提供簡(jiǎn)單、高效的可靠性通
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明探測(cè)處理方法實(shí)施例一的流程示意圖;圖2為本發(fā)明探測(cè)處理方法實(shí)施例二的流程示意圖;圖3為本發(fā)明實(shí)施例中連接建立時(shí)狀態(tài)機(jī)的變化示意圖;圖4為本發(fā)明實(shí)施例中連接關(guān)閉時(shí)的狀態(tài)機(jī)的變化示意圖;圖5為本發(fā)明數(shù)據(jù)發(fā)送端實(shí)施例一的結(jié)構(gòu)示意圖;圖6為本發(fā)明數(shù)據(jù)發(fā)送端實(shí)施例二的結(jié)構(gòu)示意圖;圖7為本發(fā)明數(shù)據(jù)接收端實(shí)施例一的結(jié)構(gòu)示意圖;圖8為本發(fā)明數(shù)據(jù)接收端實(shí)施例二的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。針對(duì)現(xiàn)有技術(shù)中不能為集群路由器提供簡(jiǎn)單、高效的可靠性通信,本發(fā)明實(shí)施例提供了一種探測(cè)處理的技術(shù)方案,圖1為本發(fā)明探測(cè)處理方法實(shí)施例一的流程示意圖,如圖1所示,該方法包括如下步驟
5
步驟101、數(shù)據(jù)發(fā)送端在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息; 本步驟中是由數(shù)據(jù)發(fā)送端,在發(fā)送數(shù)據(jù)包后,主動(dòng)的向數(shù)據(jù)接收端發(fā)起探測(cè)消息,具體的可以是在報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí),以表明其為探測(cè)消息,通過上述的探測(cè)消息能夠確認(rèn)已經(jīng)發(fā)送的數(shù)據(jù)包在數(shù)據(jù)接收端的接收情況,能夠及時(shí)調(diào)整發(fā)送隊(duì)列,上述發(fā)送探測(cè)消息的時(shí)機(jī)可以是根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,且檢測(cè)到與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿時(shí),向數(shù)據(jù)接收端發(fā)送探測(cè)消息,或者是在根據(jù)定時(shí)器執(zhí)行探測(cè),在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間時(shí),如果發(fā)送隊(duì)列沒有發(fā)送任何數(shù)據(jù)包且發(fā)送隊(duì)列不為空,向數(shù)據(jù)接收端發(fā)送探測(cè)消息。步驟102、數(shù)據(jù)接收端在接收到所述探測(cè)消息后,根據(jù)已接收到的數(shù)據(jù)包信息獲取按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào),生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。該步驟中數(shù)據(jù)發(fā)送端在接收到上述探測(cè)回復(fù)消息后,即可以確認(rèn)數(shù)據(jù)接收端已經(jīng)接收到了在上述按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)之前的數(shù)據(jù)包,并且該數(shù)據(jù)發(fā)送端可以進(jìn)一步的根據(jù)上述的序列號(hào)移動(dòng)發(fā)送窗口。本實(shí)施例中的探測(cè)回復(fù)消息可以是專門設(shè)置的探測(cè)回復(fù)消息,其僅包括報(bào)文頭,而不設(shè)置消息體,在報(bào)文頭中包括了該探測(cè)回復(fù)消息的消息類型標(biāo)識(shí),以及數(shù)據(jù)接收端按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)。本發(fā)明上述實(shí)施例中,通過數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收端主動(dòng)發(fā)送探測(cè)消息,觸發(fā)數(shù)據(jù)接收端對(duì)數(shù)據(jù)包接收情況進(jìn)行檢測(cè),并在返回的探測(cè)回復(fù)消息的報(bào)文頭中攜帶連續(xù)收到的最后一個(gè)數(shù)據(jù)包的序列號(hào),以實(shí)現(xiàn)數(shù)據(jù)接收端根據(jù)該序列號(hào)進(jìn)行發(fā)送窗口調(diào)整,刪除發(fā)送隊(duì)列中已成功發(fā)送的數(shù)據(jù)包,避免刪除發(fā)送隊(duì)列中未成功發(fā)送的數(shù)據(jù)包,確保發(fā)送質(zhì)量, 本發(fā)明上述實(shí)施提供的技術(shù)方案,應(yīng)用于集群路由間的通信中,能夠提供簡(jiǎn)單、高效的可靠性通信。本發(fā)明上述實(shí)施例中,其中數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收端發(fā)送的探測(cè)消息的報(bào)文頭中攜帶有數(shù)據(jù)發(fā)送端最后發(fā)送的數(shù)據(jù)包的序列號(hào),數(shù)據(jù)接收端可以根據(jù)上述序列號(hào)信息進(jìn)行數(shù)據(jù)的重傳處理。圖2為本發(fā)明探測(cè)處理方法實(shí)施例二的流程示意圖,如圖2所示,包括如下的步驟步驟201、數(shù)據(jù)發(fā)送端在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息, 該探測(cè)消息的報(bào)文頭中還攜帶有數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào);步驟202、數(shù)據(jù)接收端接收到所述數(shù)據(jù)發(fā)送端發(fā)送的所述探測(cè)消息后,根據(jù)所述探測(cè)消息中所攜帶的所述數(shù)據(jù)發(fā)送端最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),以及已接收到的數(shù)據(jù)包信息獲取數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),生成重傳請(qǐng)求消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述重新請(qǐng)求消息中攜帶所述數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào);步驟203、數(shù)據(jù)發(fā)送端接收到來自所述數(shù)據(jù)接收端的重傳請(qǐng)求消息后,根據(jù)所述重傳請(qǐng)求消息中所攜帶的數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的包序列號(hào)重新發(fā)送數(shù)據(jù)接收端未接收到的數(shù)據(jù)包。本發(fā)明上述實(shí)施例中,其中由數(shù)據(jù)發(fā)送端發(fā)送探測(cè)消息,進(jìn)行探測(cè)確認(rèn)和探測(cè)重傳,在進(jìn)行探測(cè)確認(rèn)時(shí),可以在探測(cè)消息的報(bào)文頭中攜帶消息類型的標(biāo)識(shí)信息,以表示該探測(cè)消息的作用是用于探測(cè),數(shù)據(jù)接收端在接收到上述消息后,即可明確需要進(jìn)行探測(cè)回復(fù), 向數(shù)據(jù)發(fā)送端返回?cái)?shù)據(jù)接收端已經(jīng)按序接收到的來自所述數(shù)據(jù)發(fā)送端的數(shù)據(jù)包中最后一個(gè)數(shù)據(jù)包的序列號(hào)。另外,對(duì)于探測(cè)消息,還可以是在探測(cè)消息的報(bào)文頭中攜帶有數(shù)據(jù)發(fā)送端最后向?qū)?yīng)數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),在這種情況下,可以由數(shù)據(jù)接收端根據(jù)上述數(shù)據(jù)發(fā)送端最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào)以及已接收到的數(shù)據(jù)包信息獲取所述數(shù)據(jù)發(fā)送端已向所述數(shù)據(jù)接收端發(fā)送但所述數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),判斷是否存在遺漏的數(shù)據(jù)包,并向數(shù)據(jù)發(fā)送端發(fā)送重傳請(qǐng)求消息,請(qǐng)求重新發(fā)送所述數(shù)據(jù)發(fā)送端已向所述數(shù)據(jù)接收端發(fā)送但所述數(shù)據(jù)接收端并未接收到的數(shù)據(jù)包。本發(fā)明實(shí)施例在具體實(shí)施過程中,可以在所有探測(cè)消息中的報(bào)文頭中都攜帶數(shù)據(jù)發(fā)送端最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),即支持探測(cè)確認(rèn),又支持探測(cè)重傳,能夠?qū)崿F(xiàn)數(shù)據(jù)包的可靠傳輸,并能夠簡(jiǎn)單、高效的滿足集群間進(jìn)程通信的要求。本發(fā)明的具體技術(shù)方案中,可以利用現(xiàn)有的UDP技術(shù)方案,在UDP通信協(xié)議層之上封裝一層,即在原有的UDP數(shù)據(jù)包上載封裝一層報(bào)文頭,提供用戶進(jìn)程簡(jiǎn)單適用的應(yīng)用程序編程接口(Application Programming hterface,以下簡(jiǎn)稱API),進(jìn)程之間可以通過 API來使用這種傳輸方式進(jìn)行通信。數(shù)據(jù)發(fā)送端將要發(fā)送的用戶進(jìn)程數(shù)據(jù)封裝一層報(bào)文頭后,通過標(biāo)準(zhǔn)的UDP端口進(jìn)行發(fā)送。數(shù)據(jù)接收端通過標(biāo)準(zhǔn)的UDP端口接收到消息后,解析報(bào)文頭即可找到對(duì)應(yīng)的接收進(jìn)程。在本發(fā)明的具體實(shí)施方案中,可以應(yīng)用于集群路由器的通信中,上述數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端可以是同一通信過程中的不同路由器。其中UDP包上封裝的一層報(bào)文頭可以包含源端口號(hào)、目的端口號(hào)、當(dāng)前序列號(hào)、確認(rèn)序列號(hào)、窗口大小、消息類型以及消息長(zhǎng)度等信息。具體的消息類型可以分為連接(SYN)消息、連接響應(yīng)(SYN_ACK)消息、數(shù)據(jù)包(DATA) 消息、探測(cè)(PROBE)消息、確認(rèn)(ACK)消息、重傳請(qǐng)求(NACK)消息、關(guān)閉(FIN)消息、關(guān)閉響應(yīng)(FIN_ACK)消息以及探測(cè)回復(fù)(PR0BE_ACK)消息等。其中的源端口號(hào)和目的端口號(hào)用來標(biāo)識(shí)數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端的應(yīng)用進(jìn)程,這是與現(xiàn)有技術(shù)中類似;而當(dāng)前序列號(hào)用來標(biāo)識(shí)從發(fā)送端向接收端發(fā)送的每個(gè)消息,具體的序列號(hào)是為了保證消息能夠有序可靠的到達(dá),基于包進(jìn)行排序的,對(duì)于DATA以及FIN消息類型,每個(gè)消息是基于包按序加1 ;對(duì)于其他的消息類型包,包的序列號(hào)和前一個(gè)包的序列號(hào)保持一致,不進(jìn)行加1,因此,當(dāng)建立連接并發(fā)送若干個(gè)DATA消息后,發(fā)送的PROBE消息的報(bào)文頭中攜帶的其中的序列號(hào),即為已發(fā)送的DATA消息數(shù)量,也就是數(shù)據(jù)發(fā)送端最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),在本發(fā)明實(shí)施例中,一個(gè)DATA消息發(fā)送的數(shù)據(jù)稱為一個(gè)數(shù)據(jù)包。確認(rèn)序列號(hào)即為上述的數(shù)據(jù)接收端已經(jīng)按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)。窗口大小用來表示數(shù)據(jù)接收端可接收的最大數(shù)據(jù)包數(shù)目。消息長(zhǎng)度即為整個(gè)消息的總長(zhǎng)度。上述的SYN消息、SYN_ACK消息、PROBE 消息、ACK消息、FIN消息、FIN_ACK消息以及PR0BE_ACK消息可以是僅僅包括報(bào)文頭即可, 而對(duì)于DATA消息、NACK消息需要包括消息體,DATA消息的消息體為具體發(fā)送的數(shù)據(jù),例如可以是UDP包,而NACK消息的消息體可以是需要重傳的數(shù)據(jù)包的序列號(hào)。在本發(fā)明的具體實(shí)施方案中,其中的數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端可以通過二次握手的方式建立連接和關(guān)閉連接,采用序列號(hào)、確認(rèn)技術(shù)、重傳機(jī)制、滑窗和流控機(jī)制以及定時(shí)器策略保證了消息能夠按序、可靠的到達(dá)。具體的,本發(fā)明可采用面向連接的技術(shù)方案,在發(fā)送數(shù)據(jù)之前,采用二次握手機(jī)制在雙方之間建立一條連接,其中圖3為本發(fā)明實(shí)施例中連接建立時(shí)狀態(tài)機(jī)的變化示意圖, 如圖3所示,客戶端(Client)首先處于關(guān)閉狀態(tài)(CLOSE),客戶端向服務(wù)器發(fā)送一個(gè)帶有初始序列號(hào)的建立連接(SYN)消息,客戶端狀態(tài)轉(zhuǎn)換為等待狀態(tài)(SYN SENT),而服務(wù)器側(cè)的主端口(Master EP)處于監(jiān)聽狀態(tài)(LISTEN),在接收到上述的建立連接消息后,派生出一個(gè)備端口(Slave EP)與客戶端通信,發(fā)送對(duì)SYN消息的確認(rèn)消息(SYN_ACK)作為應(yīng)答,同時(shí)備端口的狀態(tài)轉(zhuǎn)換為建立狀態(tài)(ESTABLISHED),客戶端在接收到上述的確認(rèn)消息后,也會(huì)將狀態(tài)轉(zhuǎn)換為建立狀態(tài)(ESTABLISHED)。這樣客戶端和發(fā)送端就完成了連接的建立。其中初始序列號(hào)隨時(shí)間變化,能夠保證每個(gè)連接都具有不同的初始序列號(hào)。在客戶端和服務(wù)器間建立連接后,就可以根據(jù)本發(fā)明提供的探測(cè)確認(rèn)以及探測(cè)重傳的技術(shù)方案在客戶端和服務(wù)器間進(jìn)行可靠性通信。具體的,確認(rèn)技術(shù)就是指數(shù)據(jù)接收端接收到數(shù)據(jù)發(fā)送端的數(shù)據(jù)時(shí),發(fā)送一個(gè)確認(rèn)消息給數(shù)據(jù)發(fā)送端已經(jīng)按序可靠收到的包。確認(rèn)技術(shù)的實(shí)現(xiàn)直接影響著傳輸方式的性能,如果確認(rèn)太慢,數(shù)據(jù)發(fā)送端有可能因?yàn)槲茨芗皶r(shí)收到確認(rèn)信息而停止發(fā)送,如果確認(rèn)太過頻繁,則會(huì)影響系統(tǒng)帶寬。本發(fā)明上述實(shí)施例提供了一種探測(cè)確認(rèn)的技術(shù)方案,即可以在數(shù)據(jù)發(fā)送端啟動(dòng)一個(gè)定時(shí)器,每隔一段時(shí)間進(jìn)行探測(cè),但是如果發(fā)送隊(duì)列已經(jīng)滿,則說明數(shù)據(jù)發(fā)送端有可能因?yàn)闆]有及時(shí)收到對(duì)端的確認(rèn)信息而導(dǎo)致發(fā)送隊(duì)列滿,所以這個(gè)時(shí)候會(huì)給對(duì)端發(fā)送一個(gè)探測(cè)消息來等待對(duì)端的探測(cè)回復(fù)消息,在探測(cè)回復(fù)消息中就會(huì)獲得對(duì)端的確認(rèn)信息。另外,如果探測(cè)時(shí)鐘到期,數(shù)據(jù)發(fā)送端沒有發(fā)送任何包且發(fā)送隊(duì)列不為空,這個(gè)時(shí)候數(shù)據(jù)發(fā)送端有可能因?yàn)闆]有及時(shí)收到對(duì)端的確認(rèn)信息而停止發(fā)送,所以也會(huì)向數(shù)據(jù)接收端發(fā)送探測(cè)消息并等待接收端的探測(cè)回復(fù)消息。這種探測(cè)確認(rèn)的技術(shù)方案保證了在需要的時(shí)候能夠及時(shí)的獲得對(duì)端的確認(rèn)信息,而且避免了確認(rèn)的不必要重復(fù)發(fā)送,提高了網(wǎng)絡(luò)性能,節(jié)約帶寬。在具體的實(shí)施例中,除上述的探測(cè)確認(rèn)的技術(shù)方案外,還可以與其他現(xiàn)有的確認(rèn)方式結(jié)合使用,例如和延遲確認(rèn)方式相結(jié)合,延遲確認(rèn)方式是指數(shù)據(jù)接收端接收到一個(gè)數(shù)據(jù)包后,并不是立即發(fā)送確認(rèn)信息,而是推遲一段時(shí)間再發(fā)送確認(rèn)信息,但是不能無限延遲。具體實(shí)施例時(shí),可以累計(jì)收到16個(gè)連續(xù)的數(shù)據(jù)包后發(fā)送確認(rèn)信息,上述確認(rèn)信息可以是數(shù)據(jù)包的序列號(hào),表示數(shù)據(jù)接收端已經(jīng)累計(jì)接收到了該序列號(hào)之前的所有數(shù)據(jù)包。上述采取各種確認(rèn)相結(jié)合的確認(rèn)機(jī)制,能夠保障系統(tǒng)性能。另外,本發(fā)明上述實(shí)施例中,數(shù)據(jù)接收端在向數(shù)據(jù)發(fā)送端回復(fù)確認(rèn)信息時(shí),可以采取捎帶的方式,將確認(rèn)信息攜帶在數(shù)據(jù)包消息中,具體的針對(duì)探測(cè)確認(rèn)的技術(shù)方案,探測(cè)回復(fù)消息不需要單獨(dú)設(shè)置,而是擴(kuò)展數(shù)據(jù)包消息,在數(shù)據(jù)包消息的報(bào)文頭中攜帶所述數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào),以作為探測(cè)回復(fù)消息使用,實(shí)現(xiàn)探測(cè)確認(rèn)機(jī)制,這樣可以提高網(wǎng)絡(luò)的通信效率,節(jié)約帶寬。另外在傳輸過程中,消息都有可能會(huì)丟失,一定要有重傳機(jī)制來保證消息能夠可靠的到達(dá)。本發(fā)明實(shí)施例提供的探測(cè)觸發(fā)重傳機(jī)制,可以與請(qǐng)求重傳相結(jié)合使用。其中請(qǐng)求重傳是數(shù)據(jù)接收端將按序收到的數(shù)據(jù)包放到接收隊(duì)列中,將收到的失序數(shù)據(jù)包放到失序隊(duì)列中。然后在失序隊(duì)列大小達(dá)到16個(gè)數(shù)據(jù)包或者其他數(shù)量時(shí),數(shù)據(jù)接收端就發(fā)送重傳請(qǐng)求消息請(qǐng)求對(duì)方重傳,數(shù)據(jù)接收端會(huì)通過查看接收隊(duì)列以及失序隊(duì)列,得到?jīng)]有收到的數(shù)據(jù)包的序列號(hào),在數(shù)據(jù)接收端發(fā)送給對(duì)端的重傳請(qǐng)求消息中攜帶數(shù)據(jù)接收端沒有收到的數(shù)據(jù)包的序列號(hào),這樣數(shù)據(jù)發(fā)送端收到重傳請(qǐng)求消息后,就可以從重傳請(qǐng)求消息中提取出所述數(shù)據(jù)接收端沒有收到的數(shù)據(jù)包的序列號(hào),即所述數(shù)據(jù)接收端所丟失的數(shù)據(jù)包的序列號(hào),然后根據(jù)所述數(shù)據(jù)接收端沒有收到的數(shù)據(jù)包的序列號(hào)只將這些序列號(hào)對(duì)應(yīng)的數(shù)據(jù)包重傳給數(shù)據(jù)接收端。這種重傳方式只重傳丟失的數(shù)據(jù)包,可以提高網(wǎng)絡(luò)利用率。探測(cè)觸發(fā)重傳機(jī)制是用來保證如果失序隊(duì)列達(dá)不到一定數(shù)量時(shí)也能夠及時(shí)通知對(duì)端丟包。當(dāng)數(shù)據(jù)接收端收到對(duì)端的探測(cè)消息時(shí),解析探測(cè)消息的報(bào)文頭,獲取其中攜帶的數(shù)據(jù)發(fā)送端最后向數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),如果發(fā)現(xiàn)已接收到的數(shù)據(jù)包中未全部包括上述數(shù)據(jù)發(fā)送端最后向數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào)之前的數(shù)據(jù)包,則認(rèn)為中間有丟包,具體也可以采取上述查看接收隊(duì)列和失序隊(duì)列的方式確認(rèn)丟包,這個(gè)時(shí)候會(huì)立即發(fā)送重傳請(qǐng)求消息要求對(duì)方重傳中間沒有收到的那些包。重傳請(qǐng)求消息發(fā)送的頻率同樣也會(huì)極大的影響網(wǎng)絡(luò)的性能,探測(cè)觸發(fā)重傳的技術(shù)方案能夠在節(jié)約NACK消息包的同時(shí)保證及時(shí)通知對(duì)端,節(jié)約了網(wǎng)絡(luò)帶寬。本發(fā)明的具體技術(shù)方案中還可以利用了滑窗和流控機(jī)制,其中數(shù)據(jù)發(fā)送端將已經(jīng)按序發(fā)送的數(shù)據(jù)包保存到發(fā)送隊(duì)列中,數(shù)據(jù)接收端發(fā)送的探測(cè)回復(fù)消息攜帶自己的接收窗口大小和已經(jīng)確認(rèn)收到的數(shù)據(jù)包的序列號(hào),數(shù)據(jù)發(fā)送端收到數(shù)據(jù)接收端返回的已經(jīng)確認(rèn)接收到的數(shù)據(jù)包的序列號(hào)等信息后,將從發(fā)送隊(duì)列中清除掉已經(jīng)收到的那些數(shù)據(jù)包;同時(shí)數(shù)據(jù)發(fā)送端進(jìn)一步考慮數(shù)據(jù)接收端通告的接收窗口的大小,以及發(fā)送隊(duì)列中數(shù)據(jù)包的數(shù)量, 從發(fā)送隊(duì)列中發(fā)送一定數(shù)量的數(shù)據(jù)包。本發(fā)明的具體技術(shù)方案,在進(jìn)程中啟動(dòng)一個(gè)定時(shí)器作為探測(cè)時(shí)鐘,當(dāng)時(shí)鐘到期時(shí), 根據(jù)不同的情況執(zhí)行不同的處理例如在時(shí)鐘期間沒有任何消息發(fā)送并且發(fā)送隊(duì)列為空, 則停止時(shí)鐘;在時(shí)鐘期間沒有任何消息發(fā)送并且發(fā)送隊(duì)列不為空,則發(fā)送探測(cè)消息并將時(shí)鐘改成重傳探測(cè)時(shí)鐘;如果發(fā)送隊(duì)列已滿,則發(fā)送探測(cè)消息并將時(shí)鐘改成重傳探測(cè)時(shí)鐘; 如果發(fā)送了探測(cè)消息,在重傳探測(cè)時(shí)鐘到期一定次數(shù)之內(nèi)都沒有收到對(duì)方對(duì)這個(gè)探測(cè)消息的回應(yīng),則認(rèn)為連接已經(jīng)中斷,關(guān)閉連接。上述定時(shí)器即可實(shí)現(xiàn)探測(cè)確認(rèn)、探測(cè)重傳以及?;钐綔y(cè)等功能。在面向連接的通信完成后,可以由服務(wù)器或者客戶端的任一方發(fā)起連接關(guān)閉,圖4 為本發(fā)明實(shí)施例中連接關(guān)閉時(shí)的狀態(tài)機(jī)的變化示意圖,如圖4所示,本實(shí)施例中采用二次關(guān)閉的方式,首先服務(wù)器和客戶端的端口都處于連接建立狀態(tài)(ESTABLISHED),當(dāng)一方想關(guān)閉連接時(shí),首先發(fā)送連接關(guān)閉(MSG_FIN)消息執(zhí)行主動(dòng)關(guān)閉,并將狀態(tài)轉(zhuǎn)換為等待狀態(tài) (FIN_SENT),而另一方收到上述消息后,狀態(tài)轉(zhuǎn)換為關(guān)閉狀態(tài)(CLOSE),并將返回一個(gè)確認(rèn)消息(MSG_FIN_ACK)執(zhí)行被動(dòng)關(guān)閉,發(fā)起關(guān)閉的一方接收到上述消息后將狀態(tài)轉(zhuǎn)換為關(guān)閉狀態(tài)(CLOSE)。與上述方法實(shí)施例對(duì)應(yīng)的,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)發(fā)送端,圖5為本發(fā)明數(shù)據(jù)發(fā)送端實(shí)施例一的結(jié)構(gòu)示意圖,如圖5所示,該裝置包括第一消息發(fā)送模塊11和第一消息接收模塊12,其中第一消息發(fā)送模塊11用于在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送所述發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;第一消息接收模塊12用于接收數(shù)據(jù)接收端返回的探測(cè)回復(fù)消息,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶數(shù)據(jù)接收端按序接收到的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。該實(shí)施例中由數(shù)據(jù)發(fā)送端主動(dòng)發(fā)起探測(cè)確認(rèn),并接收數(shù)據(jù)接收端返回的探測(cè)回復(fù)消息,在探測(cè)回復(fù)消息中攜帶數(shù)據(jù)接收端按序接收到的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào),使得數(shù)據(jù)發(fā)送端可以及時(shí)調(diào)整發(fā)送窗口,進(jìn)行后續(xù)的數(shù)據(jù)包發(fā)送,確保數(shù)據(jù)連接的可靠性傳輸。進(jìn)一步的,如圖6所示,還可以在數(shù)據(jù)發(fā)送端中增加發(fā)送窗口調(diào)整模塊13,該模塊與第一消息接收模塊12連接,用于根據(jù)從所述第一消息接收模塊所接收的探測(cè)回復(fù)消息中獲取的所述數(shù)據(jù)接收端按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)移動(dòng)發(fā)送窗口。并且針對(duì)數(shù)據(jù)重傳的技術(shù)方案,還可以進(jìn)一步的在數(shù)據(jù)發(fā)送端設(shè)置第二消息接收模塊14和數(shù)據(jù)包重發(fā)送模塊15,該第二消息接收模塊14用于接收數(shù)據(jù)接收端返回的重傳請(qǐng)求消息,所述重傳請(qǐng)求消息中攜帶了所述數(shù)據(jù)發(fā)送端已經(jīng)發(fā)送但所述數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),即所述數(shù)據(jù)接收端丟失的數(shù)據(jù)包的序列號(hào),所述未接收到的數(shù)據(jù)包的序列號(hào)為數(shù)據(jù)接收端在接收到所述探測(cè)消息后,根據(jù)所述探測(cè)消息的報(bào)文頭中攜帶的數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),以及數(shù)據(jù)接收端已接收到的數(shù)據(jù)包信息獲取得到;數(shù)據(jù)包重發(fā)送模塊15用于根據(jù)所述重傳請(qǐng)求消息中攜帶的數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào)重新向所述數(shù)據(jù)接收端發(fā)送所述未接收到的數(shù)據(jù)包。本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)接收端,圖7為本發(fā)明數(shù)據(jù)接收端實(shí)施例一的結(jié)構(gòu)示意圖,如圖7所示,該數(shù)據(jù)接收端包括第三消息接收模塊21、包序列號(hào)獲取模塊22和第三消息發(fā)送模塊23,其中第三消息接收模塊21用于接收數(shù)據(jù)發(fā)送端發(fā)送的報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;包序列號(hào)獲取模塊22用于在所述第三消息發(fā)送模塊23接收到探測(cè)消息后,根據(jù)所述數(shù)據(jù)接收端已接收到的來自數(shù)據(jù)發(fā)送端的數(shù)據(jù)包信息獲取按序接收的來自數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào);第三消息發(fā)送模塊23與上述的包序列號(hào)獲取模塊22連接,用于生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶所述數(shù)據(jù)接收端按序接收的來自數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。本發(fā)明上述實(shí)施例中的數(shù)據(jù)接收端,與數(shù)據(jù)發(fā)送端配合實(shí)現(xiàn)對(duì)數(shù)據(jù)包傳輸過程的確認(rèn),實(shí)現(xiàn)數(shù)據(jù)包的可靠傳輸。圖8為本發(fā)明數(shù)據(jù)接收端實(shí)施例二的結(jié)構(gòu)示意圖,如圖8所示,數(shù)據(jù)接收端包括第三消息接收模塊21、包序列號(hào)獲取模塊22和第三消息發(fā)送模塊23,還包括第四消息發(fā)送模塊M,且上述實(shí)施例中的第三消息接收模塊21接收到的探測(cè)消息的報(bào)文頭中還攜帶有數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),第四消息發(fā)送模塊M用于根據(jù)所述數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),以及已接收到的來自數(shù)據(jù)發(fā)送端的數(shù)據(jù)包信息獲取所述數(shù)據(jù)發(fā)送端已發(fā)送但所述數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),生成重傳請(qǐng)求消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述重傳請(qǐng)求消息中攜帶所述數(shù)據(jù)發(fā)送端已發(fā)送但所述數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào)。本發(fā)明實(shí)施例還提供了一種通信系統(tǒng),該通信系統(tǒng)包括上述各實(shí)施例中的數(shù)據(jù)發(fā)送端和數(shù)據(jù)接收端。本發(fā)明上述各個(gè)實(shí)施例提供的探測(cè)確認(rèn)以及探測(cè)重傳的技術(shù)方案,能夠?qū)崿F(xiàn)數(shù)據(jù)包的可靠傳輸,并能夠簡(jiǎn)單、高效的滿足集群間進(jìn)程通信的要求。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種探測(cè)處理方法,其特征在于,包括數(shù)據(jù)發(fā)送端在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送所述發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向所述數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;數(shù)據(jù)接收端在接收到所述報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息后,根據(jù)已接收到的數(shù)據(jù)包信息獲取按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào),生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶所述數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。
2.根據(jù)權(quán)利要求1所述的探測(cè)處理方法,其特征在于,還包括數(shù)據(jù)發(fā)送端根據(jù)數(shù)據(jù)接收端按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)移動(dòng)發(fā)送窗口。
3.根據(jù)權(quán)利要求1所述的探測(cè)處理方法,其特征在于,所述數(shù)據(jù)發(fā)送端向數(shù)據(jù)接收端發(fā)送的探測(cè)消息的報(bào)文頭中還攜帶有數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),所述方法還包括數(shù)據(jù)接收端根據(jù)所述數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),以及已接收到的數(shù)據(jù)包信息獲取數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),生成重傳請(qǐng)求消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述重新請(qǐng)求消息中攜帶所述數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào);數(shù)據(jù)發(fā)送端接收到來自所述數(shù)據(jù)接收端的重傳請(qǐng)求消息后,根據(jù)所述重傳請(qǐng)求消息中攜帶的數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào)重新發(fā)送所述數(shù)據(jù)接收端未接收到的數(shù)據(jù)包。
4.一種數(shù)據(jù)發(fā)送端,其特征在于,包括第一消息發(fā)送模塊,用于在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果所述數(shù)據(jù)發(fā)送端中與數(shù)據(jù)接收端對(duì)應(yīng)的發(fā)送隊(duì)列已滿,或者所述數(shù)據(jù)發(fā)送端沒有發(fā)送所述發(fā)送隊(duì)列中的任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向所述數(shù)據(jù)接收端發(fā)送報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;第一消息接收模塊,用于接收數(shù)據(jù)接收端返回的探測(cè)回復(fù)消息,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)發(fā)送端,其特征在于,還包括發(fā)送窗口調(diào)整模塊,與所述第一消息接收模塊連接,用于根據(jù)從所述第一消息接收模塊所接收的探測(cè)回復(fù)消息中獲取的所述數(shù)據(jù)接收端按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)移動(dòng)發(fā)送窗口。
6.根據(jù)權(quán)利要求4所述的數(shù)據(jù)發(fā)送端,其特征在于,還包括第二消息接收模塊,用于接收數(shù)據(jù)接收端返回的的重傳請(qǐng)求消息,所述重傳請(qǐng)求消息中攜帶了數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),所述數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào)為數(shù)據(jù)接收端在接收到所述探測(cè)消息后,根據(jù)所述探測(cè)消息的報(bào)文頭中攜帶的數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),以及數(shù)據(jù)接收端已接收到的數(shù)據(jù)包信息獲取得到;數(shù)據(jù)包重發(fā)送模塊,用于根據(jù)所述重傳請(qǐng)求消息中攜帶的數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào)重新向所述數(shù)據(jù)接收端發(fā)送所述未接收到的數(shù)據(jù)包。
7.一種數(shù)據(jù)接收端,其特征在于,包括第三消息接收模塊,用于接收數(shù)據(jù)發(fā)送端發(fā)送的報(bào)文頭中攜帶探測(cè)類型標(biāo)識(shí)的探測(cè)消息;包序列號(hào)獲取模塊,用于在所述第三消息接收模塊接收到探測(cè)消息后,根據(jù)所述數(shù)據(jù)接收端已接收到的來自數(shù)據(jù)發(fā)送端的數(shù)據(jù)包信息獲取按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào);第三消息發(fā)送模塊,與所述包序列號(hào)獲取模塊連接,用于生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶所述數(shù)據(jù)接收端按序接收的來自所述數(shù)據(jù)發(fā)送端的最后一個(gè)數(shù)據(jù)包的序列號(hào)。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)接收端,其特征在于,所述第三消息接收模塊接收到的探測(cè)消息的報(bào)文頭中還攜帶有數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),所述數(shù)據(jù)接收端還包括第四消息發(fā)送模塊,用于根據(jù)所述數(shù)據(jù)發(fā)送端在發(fā)送所述探測(cè)消息之前最后向所述數(shù)據(jù)接收端發(fā)送的數(shù)據(jù)包的序列號(hào),以及已接收到的來自數(shù)據(jù)發(fā)送端的數(shù)據(jù)包信息獲取數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào),生成重傳請(qǐng)求消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述重傳請(qǐng)求消息中攜帶所述數(shù)據(jù)發(fā)送端已發(fā)送而數(shù)據(jù)接收端未接收到的數(shù)據(jù)包的序列號(hào)。
9.一種通信系統(tǒng),其特征在于,包括權(quán)利要求4-6中任一項(xiàng)所述的數(shù)據(jù)發(fā)送端,以及權(quán)利要求7或8所述的數(shù)據(jù)接收端。
全文摘要
本發(fā)明提供一種探測(cè)處理方法、數(shù)據(jù)發(fā)送端、數(shù)據(jù)接收端以及通信系統(tǒng),其中探測(cè)處理方法包括數(shù)據(jù)發(fā)送端在根據(jù)定時(shí)器獲知已達(dá)到預(yù)定探測(cè)時(shí)間,如果發(fā)送隊(duì)列已滿,或者發(fā)送隊(duì)列沒有發(fā)送任何數(shù)據(jù)包而發(fā)送隊(duì)列不為空時(shí),向數(shù)據(jù)接收端發(fā)送探測(cè)消息;數(shù)據(jù)接收端在接收到所述探測(cè)消息后,根據(jù)已接收到的數(shù)據(jù)包信息獲取按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào),生成探測(cè)回復(fù)消息并發(fā)送給數(shù)據(jù)發(fā)送端,所述探測(cè)回復(fù)消息的報(bào)文頭中攜帶按序接收的最后一個(gè)數(shù)據(jù)包的序列號(hào)。本發(fā)明實(shí)施例還提供了相應(yīng)的數(shù)據(jù)發(fā)送端、數(shù)據(jù)接收端以及通信系統(tǒng),本發(fā)明實(shí)施例提供的技術(shù)方案,能夠?yàn)榧郝酚善魈峁┖?jiǎn)單、高效的可靠性通信。
文檔編號(hào)H04L12/56GK102217258SQ201180000753
公開日2011年10月12日 申請(qǐng)日期2011年4月12日 優(yōu)先權(quán)日2011年4月12日
發(fā)明者任健 申請(qǐng)人:華為技術(shù)有限公司