專利名稱:一種基于多ip地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法及裝置,屬于網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域。
背景技術(shù):
隨著互聯(lián)網(wǎng)的泛在性日益增加,不同類型的網(wǎng)絡(luò)的覆蓋范圍相互交疊,這使得一臺(tái)PC通過多個(gè)網(wǎng)卡從若干個(gè)互聯(lián)網(wǎng)服務(wù)提供商中獲取了多個(gè)IP地址成為可能。但是即便如此,由于本地路由表中默認(rèn)網(wǎng)關(guān)的存在,PC只能通過默認(rèn)網(wǎng)關(guān)的IP進(jìn)行數(shù)據(jù)收發(fā)。目前基于多IP地址進(jìn)行數(shù)據(jù)傳輸?shù)姆椒òㄍㄟ^應(yīng)用處理器控制多個(gè)無線網(wǎng)卡的初始化和網(wǎng)絡(luò)注冊(cè),并且該應(yīng)用處理器通過所述多個(gè)無線網(wǎng)卡中的任一個(gè)與對(duì)端網(wǎng)元實(shí)現(xiàn)握手后,將待發(fā)送的文件分配給該多個(gè)無線網(wǎng)卡傳輸給對(duì)端網(wǎng)元。由于上述方法中應(yīng)用處理器與多個(gè)無線網(wǎng)卡之間通過 UART(Universal Asynchronous Receiver/Transmitter,通用異步接 收/發(fā)送)接口相連,故沒有匹配UART接口的無線網(wǎng)卡以及有線以太網(wǎng)卡不適用該方法,同時(shí)由于額外設(shè)置應(yīng)用處理器,故導(dǎo)致成本增加。另外在上述方法中,數(shù)據(jù)量在各個(gè)無線網(wǎng)卡上平均分配,不能根據(jù)不同網(wǎng)卡所在網(wǎng)絡(luò)的擁塞情況進(jìn)行實(shí)時(shí)動(dòng)態(tài)調(diào)整,導(dǎo)致數(shù)據(jù)的整體傳輸速度提升不大。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法及裝置,以解決現(xiàn)有技術(shù)中僅具有UART接口的無線網(wǎng)卡才能通過應(yīng)用處理器進(jìn)行并行數(shù)據(jù)傳輸、成本增加以及數(shù)據(jù)量不能進(jìn)行實(shí)時(shí)動(dòng)態(tài)調(diào)整的問題,為此本發(fā)明采用如下的技術(shù)方案本發(fā)明實(shí)施例提供了一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法,包括對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片;若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址,所述IP更新表中包含IP地址以及所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。本發(fā)明實(shí)施例還提供了一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送裝置,包括分片模塊,用于對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片;源IP確定模塊,用于若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,所述IP更新表中包含IP地址以及所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延;發(fā)送模塊,用于從所述源IP確定模塊確定的源IP地址將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。本發(fā)明實(shí)施方式提供的技術(shù)方案選擇IP更新表中的空閑IP對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將待發(fā)送的數(shù)據(jù)分片發(fā)送給預(yù)先設(shè)置的目的IP地址,可以實(shí)現(xiàn)自適應(yīng)負(fù)載均衡,并且不必區(qū)分網(wǎng)卡的類型和數(shù)量,即可實(shí)現(xiàn)數(shù)據(jù)的多IP地址的并行傳輸,同時(shí)將數(shù)據(jù)分片通過空閑IP地址進(jìn)行傳輸可以實(shí)現(xiàn)數(shù)據(jù)量的動(dòng)態(tài)調(diào)整,從而提升數(shù)據(jù)的整體傳輸速度。
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明所述的一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法的流程示意圖;圖2是本發(fā)明所述的一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在本發(fā)明實(shí)施方式提供的一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法,如圖I所示,包括11、對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片。具體地,數(shù)據(jù)分片的大小根據(jù)用戶需求確定,以將待發(fā)送的數(shù)據(jù)進(jìn)行分片后可以使得待發(fā)送的數(shù)據(jù)通過多網(wǎng)卡進(jìn)行傳輸?shù)乃俣容^之單IP傳輸有所增加為目的,具體可以但不局限于根據(jù)數(shù)據(jù)的類型和數(shù)據(jù)量的大小將待發(fā)送的數(shù)據(jù)進(jìn)行分片,分片后的數(shù)據(jù)仍為數(shù)據(jù)報(bào)文的格式并保留原數(shù)據(jù)報(bào)文的標(biāo)識(shí)符,但只包含原數(shù)據(jù)報(bào)文的部分?jǐn)?shù)據(jù),分片后的每一片數(shù)據(jù)均可作為獨(dú)立的數(shù)據(jù)報(bào)文傳輸。12、若檢測(cè)到IP更新表中有空閑IP,則選擇所述多個(gè)空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。作為可選的,若檢測(cè)到IP更新表中有多個(gè)空閑IP,則選擇所述多個(gè)空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址;若檢測(cè)到IP更新表中只有I個(gè)空閑IP,則從所述空閑IP將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。具體地,IP更新表中包括IP地址和所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。進(jìn)一步地,所述IP更新表每隔預(yù)定時(shí)間更新一次,一般所述預(yù)定時(shí)間設(shè)定為ls,具體可以根據(jù)系統(tǒng)的要求進(jìn)行設(shè)定。所述IP更新表的更新過程可以包括清空已有IP地址以及所述已有IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,修改本地路由表,若檢測(cè)到有未記錄的IP地址,則測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,并將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中,通過遍歷所有的IP地址使得IP更新表中可以記錄所有IP地址及對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。上述方法實(shí)現(xiàn)的過程中,若檢測(cè)到有未記錄的IP地址也可以先將該未記錄的IP地址添加到IP更新表中,然后測(cè)量所述添加到IP更新表中的未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的同時(shí)繼續(xù)檢測(cè)是否有未記錄的IP地址,并將未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的測(cè)量結(jié)果添加到所述IP更新表中,與所述未記錄的IP地址對(duì)應(yīng)記載。即測(cè)量IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的過程可以與檢測(cè)未記錄的IP地址的過程是同步的。
具體測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的過程包括初始化套接字,所述未記錄的IP地址通過所述初始化后的套接字將IP數(shù)據(jù)報(bào)發(fā)送給所述預(yù)先設(shè)置的目的IP地址,若所述套接字在規(guī)定時(shí)間內(nèi)得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為所述從發(fā)送所述IP數(shù)據(jù)報(bào)到接收到響應(yīng)的時(shí)間;若所述套接字在規(guī)定時(shí)間內(nèi)沒得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為無窮大。本發(fā)明實(shí)施例中的套接字均表示與預(yù)先設(shè)置的目的IP地址間的通信接口。一般所述IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容為ICMP(Internet Control Message Protocol, Internet控制報(bào)文協(xié)議)回響請(qǐng)求報(bào)文,具體是將所述ICMP回響請(qǐng)求報(bào)文填充到所述IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容中,將所述未記錄的IP地址填充到所述IP數(shù)據(jù)報(bào)的報(bào)文頭的源IP地址位置中。修改本地路由表以及指定IP數(shù)據(jù)報(bào)的源IP地址是為了避免網(wǎng)絡(luò)的流量只通過默認(rèn)網(wǎng)關(guān)。具體根據(jù)所述未記錄的IP地址修改本地路由表,包括在互聯(lián)網(wǎng)協(xié)議版本4下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“O. O. O. O”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值;或,在互聯(lián)網(wǎng)協(xié)議版本6下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“/0”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值。本發(fā)明實(shí)施例中躍點(diǎn)表示路由,躍點(diǎn)數(shù)值一般表示數(shù)據(jù)傳輸過程中經(jīng)過網(wǎng)絡(luò)設(shè)備的個(gè)數(shù)。具體地,針對(duì)不能通過設(shè)置來減少躍點(diǎn)數(shù)值的系統(tǒng),該特定值一般設(shè)置為大于100的正整數(shù),針對(duì)可以通過設(shè)置來減少躍點(diǎn)數(shù)值的系統(tǒng),該特定值一般設(shè)置為I。以將待發(fā)送的數(shù)據(jù)進(jìn)行實(shí)時(shí)性傳輸為例將具體的線程安排進(jìn)行如下說明(一)主線程設(shè)定目的IP地址;初始化IP更新表線程,并設(shè)定預(yù)定時(shí)間,使IP更新表線程每隔所述預(yù)定時(shí)間重新啟動(dòng)一次;對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片;若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,并啟用數(shù)據(jù)發(fā)送線程將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址;若檢測(cè)到IP更新表中沒有空閑IP,則丟棄該要發(fā)送的分片數(shù)據(jù)。(二)IP更新表線程清空已有IP地址以及所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,在互聯(lián)網(wǎng)協(xié)議版本4下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“0. 0. 0. O”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值,若檢測(cè)到有未記錄的IP地址,則啟動(dòng)網(wǎng)絡(luò)時(shí)延測(cè)量線程測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中,直至記錄所有IP地址及對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延;或者,在互聯(lián)網(wǎng)協(xié)議版本6下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“ /0”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值,若檢測(cè)到有未記錄的IP地址,則啟動(dòng)網(wǎng)絡(luò)時(shí)延測(cè)量線程測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中,直至記錄所有IP地址及對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程初始化該網(wǎng)絡(luò)時(shí)延測(cè)量線程的套接字,所述未記錄的IP地址通過所述初始化后的套接字將IP數(shù)據(jù)報(bào)發(fā)送給所述預(yù)先設(shè)置的目的IP地址,若所述套接字在規(guī)定時(shí)間內(nèi)得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為從發(fā)送所述IP數(shù)據(jù)報(bào)到接收到響應(yīng)的時(shí)間;若所述套接字在規(guī)定時(shí)間內(nèi)沒得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為無窮大,所述IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容一般為ICMP回響請(qǐng)求報(bào)文,所述IP數(shù)據(jù)報(bào)的報(bào)文頭的源IP地址位置為所述未記錄的IP地址。(四)數(shù)據(jù)發(fā)送線程將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)通過主線程確定的源IP地址發(fā)送給預(yù)先設(shè)置的目的IP地址。具體是通過發(fā)送IP數(shù)據(jù)報(bào)給預(yù)先設(shè)置的目的IP地址來實(shí)現(xiàn)的,在不可靠傳輸?shù)那闆r下,該IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容為UDP (User DatagramProtocol,用戶數(shù)據(jù)報(bào)協(xié)議)報(bào)文,所述確定的源IP地址需放在UDP報(bào)文的偽首部的指定位置中,并且放在所述IP數(shù)據(jù)報(bào)的報(bào)文頭的指定位置中,將該分片數(shù)據(jù)的編號(hào)以及該數(shù)據(jù)分片放在UDP報(bào)文的報(bào)文內(nèi)容中;具體所述UDP報(bào)文的偽首部的指定位置或者IP數(shù)據(jù)報(bào)的報(bào)文頭中的指定位置通過所述報(bào)文對(duì)應(yīng)的協(xié)議確定。上述方法中,(二)IP更新表線程中檢測(cè)到有未記錄的IP地址后也可以與(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程同時(shí)啟動(dòng),即(二)IP更新表線程繼續(xù)檢測(cè)是否有未記錄的IP地址的同時(shí) (三)網(wǎng)絡(luò)時(shí)延測(cè)量線程測(cè)量(二)IP更新表線程已經(jīng)檢測(cè)到的未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,并且(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程可以在(二)IP更新表線程結(jié)束后將其測(cè)量結(jié)果記錄到IP更新表的相應(yīng)位置中。(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程和(四)數(shù)據(jù)發(fā)送線程的數(shù)目一般大于等于IP更新表中IP地址的數(shù)量,例如IP更新表中一共有4個(gè)IP地址,則(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程的數(shù)目可以為4個(gè)或5個(gè)(可以是大于等于4的正整數(shù)),(四)數(shù)據(jù)發(fā)送線程的數(shù)目可以為4個(gè)或5個(gè)(可以是大于等于4的正整數(shù))。進(jìn)一步,接收端接收到該數(shù)據(jù)報(bào)文后檢測(cè)所述分片數(shù)據(jù)的編號(hào)是否是順序發(fā)送的,若是,則存儲(chǔ)該幀,若否,丟棄該幀。以將待發(fā)送的數(shù)據(jù)進(jìn)行可靠性傳輸為例將具體的線程安排進(jìn)行如下說明(一)主線程設(shè)定目的IP地址;初始化IP更新表線程,并設(shè)定預(yù)定時(shí)間,使IP更新表線程每隔所述預(yù)定時(shí)間重新啟動(dòng)一次;對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片;若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,并啟用數(shù)據(jù)發(fā)送線程將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址;若檢測(cè)到IP更新表中沒有空閑IP,則等待直到檢測(cè)到IP更新表中有空閑IP。(二)IP更新表線程清空已有IP地址以及所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,在互聯(lián)網(wǎng)協(xié)議版本4下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“O. O. O. O”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值,若檢測(cè)到有未記錄的IP地址,則啟動(dòng)網(wǎng)絡(luò)時(shí)延測(cè)量線程測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中,直至記錄所有IP地址及對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延;或者,則在互聯(lián)網(wǎng)協(xié)議版本6下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“ /0”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值,若檢測(cè)到有未記錄的IP地址,則啟動(dòng)網(wǎng)絡(luò)時(shí)延測(cè)量線程測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中,直至記錄所有IP地址及對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程初始化該網(wǎng)絡(luò)時(shí)延測(cè)量線程的套接字,所述未記錄的IP地址通過所述初始化后的套接字將IP數(shù)據(jù)報(bào)發(fā)送給所述預(yù)先設(shè)置的目的IP地址,若所述套接字在規(guī)定時(shí)間內(nèi)得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為從發(fā)送所述IP數(shù)據(jù)報(bào)到接收到響應(yīng)的時(shí)間;若所述套接字在規(guī)定時(shí)間內(nèi)沒得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為無窮大,所述IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容一般為ICMP回響請(qǐng)求報(bào)文,所述IP數(shù)據(jù)報(bào)的報(bào)文頭的源IP地址位置為所述未記錄的IP地址。(四)數(shù)據(jù)發(fā)送線程將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)通過主線程確定的源IP地址發(fā)送給預(yù) 先設(shè)置的目的IP地址。具體是通過發(fā)送IP數(shù)據(jù)報(bào)給預(yù)先設(shè)置的目的IP地址來實(shí)現(xiàn)的,在可靠性傳輸?shù)那闆r下,將所述確定的源IP地址放入所述IP數(shù)據(jù)報(bào)的報(bào)文頭的指定位置中,具體所述源IP地址在IP數(shù)據(jù)報(bào)的報(bào)文頭中的指定位置通過所述報(bào)文對(duì)應(yīng)的協(xié)議確定;該IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容為TCP (Transmission Control Protocol,傳輸控制協(xié)議)報(bào)文,具體將該分片數(shù)據(jù)的編號(hào)以及該數(shù)據(jù)分片放在TCP報(bào)文的報(bào)文內(nèi)容中。上述方法中,(二)IP更新表線程中檢測(cè)到有未記錄的IP地址后也可以與(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程同時(shí)啟動(dòng),即(二)IP更新表線程繼續(xù)檢測(cè)是否有未記錄的IP地址的同時(shí)(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程測(cè)量(二)IP更新表線程已經(jīng)檢測(cè)到的未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,并且(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程可以在(二)IP更新表線程結(jié)束后將其測(cè)量結(jié)果記錄到IP更新表的相應(yīng)位置中。(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程和(四)數(shù)據(jù)發(fā)送線程的數(shù)目一般大于等于IP更新表中IP地址的數(shù)量,例如IP更新表中一共有4個(gè)IP地址,則(三)網(wǎng)絡(luò)時(shí)延測(cè)量線程的數(shù)目可以為4個(gè)或5個(gè)(可以是大于等于4的正整數(shù)),(四)數(shù)據(jù)發(fā)送線程的數(shù)目可以為4個(gè)或5個(gè)(可以是大于等于4的正整數(shù))。進(jìn)一步,接收端接收到該數(shù)據(jù)報(bào)文后檢測(cè)所述分片數(shù)據(jù)的編號(hào),并回傳該分片數(shù)據(jù)的編號(hào),存儲(chǔ)該幀。本發(fā)明實(shí)施方式提供的技術(shù)方案選擇IP更新表中的空閑IP對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將待發(fā)送的數(shù)據(jù)分片發(fā)送給預(yù)先設(shè)置的目的IP地址,可以實(shí)現(xiàn)自適應(yīng)負(fù)載均衡,并且不必區(qū)分網(wǎng)卡的類型和數(shù)量,即可實(shí)現(xiàn)數(shù)據(jù)的多IP地址的并行傳輸,同時(shí)將數(shù)據(jù)分片通過空閑IP地址進(jìn)行傳輸可以實(shí)現(xiàn)數(shù)據(jù)量的動(dòng)態(tài)調(diào)整,從而提升數(shù)據(jù)的整體傳輸速度。本發(fā)明的具體實(shí)施方式
還提供了一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送裝置,如圖2所示,包括分片模塊21,用于對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片。具體地,數(shù)據(jù)分片的大小根據(jù)用戶需求確定,以將待發(fā)送的數(shù)據(jù)進(jìn)行分片后可以使得待發(fā)送的數(shù)據(jù)通過多網(wǎng)卡進(jìn)行傳輸?shù)乃俣容^之單IP傳輸有所增加為目的,具體可以但不局限于根據(jù)數(shù)據(jù)的類型和數(shù)據(jù)量的大小將待發(fā)送的數(shù)據(jù)進(jìn)行分片,分片后的數(shù)據(jù)仍為數(shù)據(jù)報(bào)文的格式并保留原數(shù)據(jù)報(bào)文的標(biāo)識(shí)符,但只包含原數(shù)據(jù)報(bào)文的部分?jǐn)?shù)據(jù),分片后的每一片數(shù)據(jù)均可作為獨(dú)立的數(shù)據(jù)報(bào)文傳輸。源IP確定模塊22,用于若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址。作為可選的,若檢測(cè)到IP更新表中有多個(gè)空閑IP,則選擇所述多個(gè)空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址;若檢測(cè)到IP更新表中只有I個(gè)空閑IP,則從所述空閑IP將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。具體地,IP更新表中包括IP地址和所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。進(jìn)一步地,所述IP更新表每隔預(yù)定時(shí)間更新一次,一般所述預(yù)定時(shí)間設(shè)定為ls,具體可以根據(jù)系統(tǒng)的要求進(jìn)行設(shè)定。所述IP更新表的更新過程包括清空已有IP地址以及所述已有IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,修改本地路由表,若檢測(cè)到有未記錄的IP地址,則測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,并將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中,通過遍歷所有的IP地址使得IP更新表中可以記錄所有IP地址及對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。上述方法實(shí)現(xiàn)的過程中,若檢測(cè)到有未記錄的IP地址也可以先將該未記錄的IP地址添加到IP更新表中,然后測(cè)量所述添加到IP更新表中的未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的同時(shí)繼續(xù)檢測(cè)是否有未記錄的IP地址,并將未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的測(cè)量結(jié)果添加到所述IP更新表中,與所述未記錄的IP地址對(duì)應(yīng)記載。即測(cè)量IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的過程可以與檢測(cè)未記錄的IP地址的過程是同步的。具體源IP確定模塊22中包括網(wǎng)絡(luò)時(shí)延確定子模塊,用于測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,具體包括初始化套接字,所述未記錄的IP地址通過所述初始化后的套接字將IP數(shù)據(jù)報(bào)發(fā)送給所述預(yù)先設(shè)置的目的IP地址,若所述套接字在規(guī)定時(shí)間內(nèi)得到 響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為所述從發(fā)送所述IP數(shù)據(jù)報(bào)到接收到響應(yīng)的時(shí)間;若所述套接字在規(guī)定時(shí)間內(nèi)沒得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為無窮大。本發(fā)明實(shí)施例中的套接字均表示與預(yù)先設(shè)置的目的IP地址間的通信接口。一般所述IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容為ICMP回響請(qǐng)求報(bào)文,具體是將所述ICMP回響請(qǐng)求報(bào)文填充到所述IP數(shù)據(jù)報(bào)的報(bào)文內(nèi)容中,將所述未記錄的IP地址填充到所述IP數(shù)據(jù)報(bào)的報(bào)文頭的源IP地址位置中。修改本地路由表以及指定IP數(shù)據(jù)報(bào)的源IP地址是為了避免網(wǎng)絡(luò)的流量只通過默認(rèn)網(wǎng)關(guān)。具體源IP確定模塊22中還包括本地路由表修改子模塊,用于修改本地路由表,具體包括在互聯(lián)網(wǎng)協(xié)議版本4下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“O. O. O. O”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值;或,在互聯(lián)網(wǎng)協(xié)議版本6下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“ /0”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值。本發(fā)明實(shí)施例中躍點(diǎn)表示路由,躍點(diǎn)數(shù)值一般表示數(shù)據(jù)傳輸過程中經(jīng)過網(wǎng)絡(luò)設(shè)備的個(gè)數(shù)。具體地,針對(duì)不能通過設(shè)置來減少躍點(diǎn)數(shù)值的系統(tǒng),該特定值一般設(shè)置為大于100的正整數(shù),針對(duì)可以通過設(shè)置來減少躍點(diǎn)數(shù)值的系統(tǒng),該特定值一般設(shè)置為I。發(fā)送模塊23,用于從所述源IP確定模塊22確定的源IP地址將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。作為可選的,發(fā)送模塊23的數(shù)目可以與大于等于IP更新表中IP地址的數(shù)量,例如IP更新表中一共有4個(gè)IP地址,則發(fā)送模塊23的數(shù)目可以為4個(gè)或5個(gè)(可以是大于等于4的正整數(shù))。作為可選的,發(fā)送模塊23可以實(shí)現(xiàn)將源IP確定模塊22確定的多個(gè)源IP地址同時(shí)的分別發(fā)送,即若源IP確定模塊22確定IP地址192. 168. 2. O和IP地址192. 168. I. O作為源IP地址,則發(fā)送模塊23將分片數(shù)據(jù)I從192. 168. 2. O發(fā)送給預(yù)先設(shè)置的目的IP地址,同時(shí)發(fā)送模塊23將分片數(shù)據(jù)2從192. 168. I. O發(fā)送給預(yù)先設(shè)置的目的IP地址。上述裝置中包含的各模塊的處理功能的具體實(shí)現(xiàn)方式在之前的方法實(shí)施例中已經(jīng)描述,在此不再重復(fù)描述。值得注意的是,上述裝置實(shí)施例中,所包括的各個(gè)模塊只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。另外,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,相應(yīng)的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法,其特征在于,包括 對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片; 若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址,所述IP更新表中包含IP地址以及所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述IP更新表每隔預(yù)定時(shí)間更新一次,所述IP更新表的更新過程包括 清空已有IP地址以及所述已有IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,修改本地路由表,若檢測(cè)到有未記錄的IP地址,則測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,并將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中;或者, 清空已有IP地址以及所述已有IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,修改本地路由表,若檢測(cè)到有未記錄的IP地址,則將所述未記錄的IP地址添加到IP更新表中,并開始測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,開始測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的同時(shí)繼續(xù)檢測(cè)是否有未記錄的IP地址。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,包括 所述未記錄的IP地址通過套接字將IP數(shù)據(jù)報(bào)發(fā)送給所述預(yù)先設(shè)置的目的IP地址,若所述套接字在規(guī)定時(shí)間內(nèi)得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為從發(fā)送所述IP數(shù)據(jù)報(bào)到接收到所述響應(yīng)的時(shí)間;若所述套接字在規(guī)定時(shí)間內(nèi)沒得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為無窮大。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述修改本地路由表,包括 在互聯(lián)網(wǎng)協(xié)議版本4下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“O. O. O. O”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值;或, 在互聯(lián)網(wǎng)協(xié)議版本6下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“ /0”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值。
5.一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送裝置,其特征在于,包括 分片模塊,用于對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片; 源IP確定模塊,用于若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,所述IP更新表中包含IP地址以及所述IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延; 發(fā)送模塊,用于從所述源IP確定模塊確定的源IP地址將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述源IP確定模塊中所述IP更新表每隔預(yù)定時(shí)間更新一次,所述IP更新表的更新過程包括 清空已有IP地址以及所述已有IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,修改本地路由表,若檢測(cè)到有未記錄的IP地址,則測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,并將所述未記錄的IP地址與測(cè)量的所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延添加到IP更新表中;或者, 清空已有IP地址以及所述已有IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,修改本地路由表,若檢測(cè)到有未記錄的IP地址,則將所述未記錄的IP地址添加到IP更新表中,并開始測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,開始測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延的同時(shí)繼續(xù)檢測(cè)是否有未記錄的IP地址。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述源IP確定模塊中包括網(wǎng)絡(luò)時(shí)延確定子模塊,用于測(cè)量所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延,具體所述未記錄的IP地址通過套接字將IP數(shù)據(jù)報(bào)發(fā)送給所述預(yù)先設(shè)置的目的IP地址,若所述套接字在規(guī)定時(shí)間內(nèi)得到響應(yīng),則確定所述未記錄的 IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為從發(fā)送所述IP數(shù)據(jù)報(bào)到接收到所述響應(yīng)的時(shí)間;若所述套接字在規(guī)定時(shí)間內(nèi)沒得到響應(yīng),則確定所述未記錄的IP地址對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延為無窮大。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述源IP確定模塊中還包括本地路由表修改子模塊,用于修改本地路由表,具體在互聯(lián)網(wǎng)協(xié)議版本4下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“O. O. O. O”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值;或,在互聯(lián)網(wǎng)協(xié)議版本6下,將本地路由表中網(wǎng)絡(luò)目標(biāo)為“ /0”的所有路由條目的躍點(diǎn)數(shù)值修改為特定值。
全文摘要
一種基于多IP地址的并行自適應(yīng)數(shù)據(jù)發(fā)送方法及裝置,屬于網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域。本發(fā)明首先,對(duì)待發(fā)送的數(shù)據(jù)進(jìn)行分片;然后,若檢測(cè)到IP更新表中有空閑IP,則選擇所述空閑IP中對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將分片后的待發(fā)送的數(shù)據(jù)中的一個(gè)分片數(shù)據(jù)發(fā)送給預(yù)先設(shè)置的目的IP地址。本發(fā)明實(shí)施例通過選擇IP更新表中的空閑IP對(duì)應(yīng)的網(wǎng)絡(luò)時(shí)延最小的IP作為源IP地址,將待發(fā)送的數(shù)據(jù)分片發(fā)送給目的IP地址,可以實(shí)現(xiàn)自適應(yīng)負(fù)載均衡,并且不必區(qū)分網(wǎng)卡的類型和數(shù)量,即可實(shí)現(xiàn)數(shù)據(jù)的多IP地址的并行傳輸,從而提升數(shù)據(jù)的整體傳輸速度。
文檔編號(hào)H04L29/06GK102868630SQ20121033159
公開日2013年1月9日 申請(qǐng)日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者康桂霞, 曾懌競(jìng), 韓速, 王明敏, 楊婷 申請(qǐng)人:北京郵電大學(xué)