一種傳輸數(shù)據(jù)包的方法及裝置制造方法
【專利摘要】本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種傳輸數(shù)據(jù)包的方法及裝置,在該方案中,在確定獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于中間轉(zhuǎn)發(fā)設(shè)備的MSS值,這樣,中間轉(zhuǎn)發(fā)設(shè)備在處理后的數(shù)據(jù)包的長(zhǎng)度未超出中間轉(zhuǎn)發(fā)設(shè)備的MSS值的情況下,增加了每一次發(fā)送數(shù)據(jù)包的長(zhǎng)度值,把鏈路傳輸數(shù)據(jù)包效率最大化,因此,提高了傳輸效率,提高了資源利用率。
【專利說(shuō)明】一種傳輸數(shù)據(jù)包的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種傳輸數(shù)據(jù)包的方法及裝置。
【背景技術(shù)】
[0002]在第6 版互聯(lián)網(wǎng)協(xié)議(Ipv6)的 TCP (Transmission Control Protocol,傳輸控制協(xié)議)傳輸中,兩臺(tái)通信設(shè)備(例如PC (Personal Computer,個(gè)人電腦)機(jī)和服務(wù)器)在建立TCP連接之后,可以利用該TCP連接進(jìn)行通信。
[0003]在實(shí)際應(yīng)用中,每臺(tái)通信設(shè)備都有本設(shè)備的MSS (Maxmium Segment Size,最大分段長(zhǎng)度)值,通信設(shè)備作為發(fā)送端發(fā)送數(shù)據(jù)包時(shí),所發(fā)送的數(shù)據(jù)包的長(zhǎng)度不應(yīng)超過(guò)本設(shè)備的MSS值,中間轉(zhuǎn)發(fā)設(shè)備將接收到的發(fā)送端發(fā)送的數(shù)據(jù)包轉(zhuǎn)發(fā)至接收端時(shí)要進(jìn)行相應(yīng)的處理,具體過(guò)程如下:發(fā)起通信的發(fā)送端在傳輸數(shù)據(jù)包時(shí),根據(jù)本設(shè)備的MSS值I發(fā)送數(shù)據(jù)包,中間轉(zhuǎn)發(fā)設(shè)備接收數(shù)據(jù)包,并判斷中間轉(zhuǎn)發(fā)設(shè)備的MSS值2與MSS值I的大小,當(dāng)確定MSS值2小于MSS值I時(shí),將接收到的數(shù)據(jù)包進(jìn)行分片處理,然后將分片處理后的數(shù)據(jù)包發(fā)送至接收端,當(dāng)確定MSS值2大于MSS值I時(shí),直接將接收到的數(shù)據(jù)包轉(zhuǎn)發(fā)至接收端。
[0004]雖然上述過(guò)程可以實(shí)現(xiàn)兩臺(tái)通信設(shè)備之間的通信,但是,上述過(guò)程在中間轉(zhuǎn)發(fā)設(shè)備確定MSS值2大于MSS值I時(shí),直接將接收到的數(shù)據(jù)包轉(zhuǎn)發(fā)至接收端,未達(dá)到中間轉(zhuǎn)發(fā)設(shè)備發(fā)送數(shù)據(jù)包的MSS2,因此,存在傳輸效率較低、資源利用率較低的缺陷。
[0005]例如,發(fā)送端每一次發(fā)送數(shù)據(jù)包時(shí),按照MSSl組合數(shù)據(jù)包并發(fā)送,中間轉(zhuǎn)發(fā)設(shè)備的MSS2值大于兩倍的MSSl值,也就是說(shuō),中間轉(zhuǎn)發(fā)設(shè)備可以一次性發(fā)送兩個(gè)數(shù)據(jù)包中的數(shù)據(jù),但是,現(xiàn)在技術(shù)中,在這種情況下,中間轉(zhuǎn)發(fā)設(shè)備仍然將接收到的數(shù)據(jù)包分別進(jìn)行發(fā)送,因此,存在傳輸效率較低,浪費(fèi)資源的缺陷。
[0006]綜上所述,現(xiàn)有的傳輸數(shù)據(jù)包的方法存在傳輸效率較低,浪費(fèi)資源的缺陷。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例提供一種傳輸數(shù)據(jù)包的方法及裝置,用以解決現(xiàn)有技術(shù)中存在的傳輸效率較低,浪費(fèi)資源的缺陷。
[0008]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0009]一種傳輸數(shù)據(jù)包的方法,包括:
[0010]在確定發(fā)送端與接收端建立連接之后,接收所述發(fā)送端發(fā)送的數(shù)據(jù)包;
[0011]從用于建立所述發(fā)送端與所述接收端之間連接的傳輸控制協(xié)議TCP連接報(bào)文中獲取所述發(fā)送端的最大分段長(zhǎng)度MSS值;
[0012]確定獲取的所述發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于所述接收到的數(shù)據(jù)包的長(zhǎng)度,小于或者等于所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值;
[0013]將重新組包處理后的數(shù)據(jù)包發(fā)送至所述接收端。
[0014]一種傳輸數(shù)據(jù)包的裝置,包括:[0015]接收單元,用于在確定發(fā)送端與接收端建立連接之后,接收所述發(fā)送端發(fā)送的數(shù)據(jù)包;
[0016]獲取單元,用于從用于建立所述發(fā)送端與所述接收端之間連接的傳輸控制協(xié)議TCP連接報(bào)文中獲取所述發(fā)送端的最大分段長(zhǎng)度MSS值;
[0017]處理單元,用于確定所述獲取單元獲取的所述發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于所述接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值;
[0018]發(fā)送單元,用于將所述處理單元重新組包處理后的數(shù)據(jù)包發(fā)送至所述接收端。
[0019]本發(fā)明有益效果如下:
[0020]現(xiàn)有技術(shù)中,發(fā)送端發(fā)送數(shù)據(jù)包時(shí),根據(jù)發(fā)送端對(duì)應(yīng)的MSS值進(jìn)行組包進(jìn)而發(fā)送,中間轉(zhuǎn)發(fā)設(shè)備也有對(duì)應(yīng)的MSS值,中間轉(zhuǎn)發(fā)設(shè)備在接收到發(fā)送端發(fā)送的數(shù)據(jù)包時(shí),在確定接收到的數(shù)據(jù)包的數(shù)據(jù)的長(zhǎng)度值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS時(shí),即使接收到的數(shù)據(jù)包的數(shù)據(jù)的長(zhǎng)度值遠(yuǎn)遠(yuǎn)小于中間轉(zhuǎn)發(fā)設(shè)備的MSS時(shí),中間轉(zhuǎn)發(fā)設(shè)備直接進(jìn)行發(fā)送,存在傳輸效率較低,浪費(fèi)資源的缺陷,而本發(fā)明實(shí)施例中,在確定獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于中間轉(zhuǎn)發(fā)設(shè)備的MSS值,這樣,中間轉(zhuǎn)發(fā)設(shè)備在處理后的數(shù)據(jù)包的長(zhǎng)度未超出中間轉(zhuǎn)發(fā)設(shè)備的MSS值的情況下,增加了每一次發(fā)送數(shù)據(jù)包的長(zhǎng)度值,因此,提高了傳輸效率,提高了資源利用率。
【專利附圖】
【附圖說(shuō)明】
[0021]圖1為本發(fā)明實(shí)施例中傳輸數(shù)據(jù)包的流程圖;
[0022]圖2為本發(fā)明實(shí)施例中傳輸數(shù)據(jù)包的實(shí)施例;
[0023]圖3為本發(fā)明實(shí)施例中傳輸數(shù)據(jù)包的中間轉(zhuǎn)發(fā)設(shè)備的功能結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]為使本發(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ù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0025]另外,本文中術(shù)語(yǔ)“系統(tǒng)”和“網(wǎng)絡(luò)”在本文中常被可互換使用。本文中術(shù)語(yǔ)“和/或”,僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨(dú)存在A,同時(shí)存在A和B,單獨(dú)存在B這三種情況。另外,本文中字母“/”,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。
[0026]為了解決現(xiàn)有技術(shù)中存在的傳輸效率較低,浪費(fèi)資源的缺陷,本發(fā)明實(shí)施例中,提出一種傳輸數(shù)據(jù)包的方法,該方法為:在確定發(fā)送端與接收端建立連接之后,接收發(fā)送端發(fā)送的數(shù)據(jù)包;從用于建立發(fā)送端與接收端之間連接的TCP連接報(bào)文中獲取發(fā)送端的最大分段長(zhǎng)度MSS值;確定獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于中間轉(zhuǎn)發(fā)設(shè)備的MSS值;將重新組包處理后的數(shù)據(jù)包發(fā)送至接收端,在該方案中,中間轉(zhuǎn)發(fā)設(shè)備在處理后的數(shù)據(jù)包的長(zhǎng)度未超出中間轉(zhuǎn)發(fā)設(shè)備的MSS值的情況下,增加了每一次發(fā)送數(shù)據(jù)包的長(zhǎng)度值,因此,提高了傳輸效率,提高了資源利用率。
[0027]下面結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明,并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0028]下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。
[0029]參閱圖1所示,本發(fā)明實(shí)施例中,傳輸數(shù)據(jù)包的詳細(xì)流程如下:
[0030]步驟100:在確定發(fā)送端與接收端建立連接之后,接收發(fā)送端發(fā)送的數(shù)據(jù)包;
[0031]步驟110:從用于建立發(fā)送端與接收端之間連接的TCP連接報(bào)文中獲取發(fā)送端的MSS 值;
[0032]步驟120:確定獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于中間轉(zhuǎn)發(fā)設(shè)備的MSS值;
[0033]步驟130:將重新組包處理后的數(shù)據(jù)包發(fā)送至接收端。
[0034]步驟100-130的執(zhí)行主體有多種,例如為AP (Access Point,接入點(diǎn)),當(dāng)然,在實(shí)際應(yīng)用中,還可能為其他設(shè)備,在此不再進(jìn)行一一詳述。
[0035]由于在獲取TCP連接報(bào)文之后,才能從TCP連接報(bào)文中獲取發(fā)送端的MSS值,因此,本發(fā)明實(shí)施例中,在確定發(fā)送端與接收端建立連接之后,從用于建立發(fā)送端與接收端之間連接的TCP連接報(bào)文中獲取發(fā)送端的MSS值之前,還包括如下操作:
[0036]獲取TCP連接報(bào)文。
[0037]本發(fā)明實(shí)施例中,獲取TCP連接報(bào)文的方式有多種,可選的,可以采用如下操作方式:
[0038]根據(jù)IP(Internet Protocol,互聯(lián)網(wǎng)協(xié)議)數(shù)據(jù)包格式中的協(xié)議字段,從獲取的通過(guò)中間轉(zhuǎn)發(fā)設(shè)備的IP數(shù)據(jù)包中確定出TCP報(bào)文;
[0039]從確定出的TCP報(bào)文中,根據(jù)TCP報(bào)文的報(bào)文頭中的更多分段標(biāo)志字段與分段偏移字段,確定出未分片的TCP報(bào)文;
[0040]從確定出的未分片的TCP報(bào)文中,根據(jù)TCP報(bào)文的頭部中的同步字段,確定出TCP連接報(bào)文。
[0041]其中,在根據(jù)TCP報(bào)文的報(bào)文頭中的更多分段標(biāo)志字段與分段偏移字段,確定出未分片的TCP報(bào)文時(shí),可以采用如下方式:
[0042]針對(duì)任意一確定出的TCP報(bào)文,分別執(zhí)行:
[0043]對(duì)該任意一確定出的TCP報(bào)文進(jìn)行解封裝,對(duì)解封裝后的該任意一確定出的TCP報(bào)文進(jìn)行一個(gè)判斷,判斷TCP報(bào)文的報(bào)頭中的“更多分段標(biāo)志”與“分段偏移”這兩個(gè)字段,若這兩個(gè)字段均不為0,說(shuō)明該任意一確定出的TCP報(bào)文是分片的TCP報(bào)文,若TCP報(bào)文的報(bào)頭中的“更多分段標(biāo)志”與“分段偏移”這兩個(gè)字段均為0,則說(shuō)明該任意一確定出的TCP報(bào)文是未分片的TCP報(bào)文。
[0044]在上述過(guò)程中,任意一確定出的TCP報(bào)文中的16bits的特殊標(biāo)志為該TCP報(bào)文的報(bào)頭中的“更多分段標(biāo)志”與“分段偏移”這兩個(gè)字段。
[0045]在上述過(guò)程中,根據(jù)TCP報(bào)文的頭部中的同步字段判斷TCP報(bào)文是否是TCP連接報(bào)文,如果TCP報(bào)文中的同步字段的值為1,則確認(rèn)TCP報(bào)文是一個(gè)TCP連接報(bào)文,否則,TCP報(bào)文是一個(gè)非TCP連接報(bào)文。
[0046]當(dāng)然,在實(shí)際應(yīng)用中,還有其他的獲取TCP連接報(bào)文的方式,在此不再進(jìn)行一一詳述。
[0047]若中間轉(zhuǎn)發(fā)設(shè)備與接收端之間還有多個(gè)其他中間轉(zhuǎn)發(fā)設(shè)備,而不同的中間轉(zhuǎn)發(fā)設(shè)備中傳輸?shù)腡CP報(bào)文的MSS值自然也不一樣,為了避免其他中間轉(zhuǎn)發(fā)設(shè)備由于接收到該中間轉(zhuǎn)發(fā)設(shè)備轉(zhuǎn)發(fā)的TCP報(bào)文的長(zhǎng)度超過(guò)本設(shè)備對(duì)應(yīng)的MSS值而對(duì)接收到的TCP報(bào)文進(jìn)行分片或者丟棄處理,進(jìn)而造成的傳輸效率低、資源利用率較低的缺陷,本發(fā)明實(shí)施例中,在確定獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值之后,在根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理之前,還包括如下操作:
[0048]確定中間轉(zhuǎn)發(fā)設(shè)備至接收端之間鏈路上的其他中間轉(zhuǎn)發(fā)設(shè)備分別對(duì)應(yīng)的MSS值中的最小MSS值。
[0049]此時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理時(shí),可以采用如下方式:
[0050]判斷最小MSS值是否小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值,若是,根據(jù)最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理;否則,根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理。
[0051]例如,中間轉(zhuǎn)發(fā)設(shè)備I與接收端之間的鏈路上還有三個(gè)其他中間轉(zhuǎn)發(fā)設(shè)備:中間轉(zhuǎn)發(fā)設(shè)備2、中間轉(zhuǎn)發(fā)設(shè)備3、中間轉(zhuǎn)發(fā)設(shè)備4,其中,中間轉(zhuǎn)發(fā)設(shè)備I對(duì)應(yīng)MSSl值、中間轉(zhuǎn)發(fā)設(shè)備2對(duì)應(yīng)MSS2值、中間轉(zhuǎn)發(fā)設(shè)備3對(duì)應(yīng)MSS3值、中間轉(zhuǎn)發(fā)設(shè)備4對(duì)應(yīng)MSS4值,且MSS2值> MSSl值> MSS4值> MSS3值,中間轉(zhuǎn)發(fā)設(shè)備I在發(fā)送數(shù)據(jù)包時(shí),可以根據(jù)MSSl值重新組合數(shù)據(jù)包,然后,進(jìn)行發(fā)送,但是,由于MSSl值> MSS3值,若中間轉(zhuǎn)發(fā)設(shè)備I重新組包處理后的數(shù)據(jù)包的長(zhǎng)度超出中間轉(zhuǎn)發(fā)設(shè)備3的處理能力時(shí),中間轉(zhuǎn)發(fā)設(shè)備3要對(duì)接收到的數(shù)據(jù)包進(jìn)行分片或者丟棄處理,造成傳輸效率低、資源利用率較低的缺陷,為了避免這種情況的發(fā)生,本發(fā)明實(shí)施例中,中間轉(zhuǎn)發(fā)設(shè)備I先確定出MSSl值、MSS2值、MSS3值、MSS4值中的最小MSS值,然后,根據(jù)最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,該例子中是根據(jù)MSS3值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理。
[0052]這樣,在傳輸數(shù)據(jù)包的過(guò)程中,可以減少在傳輸數(shù)據(jù)包時(shí)由于數(shù)據(jù)包的長(zhǎng)度過(guò)長(zhǎng)而導(dǎo)致的分片或者丟棄的缺陷,減少了傳輸時(shí)延,提高了傳輸效率,及資源利用率。
[0053]在實(shí)際應(yīng)用中,因?yàn)橹虚g轉(zhuǎn)發(fā)設(shè)備在轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),會(huì)對(duì)數(shù)據(jù)包進(jìn)行一些處理,以識(shí)別確保傳輸,例如,增加IPSec(IP Security, Internet協(xié)議安全性)包頭及其擴(kuò)展字段、增加UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)包頭、增加IP包頭,而每一個(gè)包頭對(duì)應(yīng)的字段均有大小,因此,本發(fā)明實(shí)施例中,根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理的方式有多種,可選的,可以采用如下方式:
[0054]確定中間轉(zhuǎn)發(fā)設(shè)備將數(shù)據(jù)包發(fā)送至接收端時(shí)增加的每一個(gè)包頭字段分別對(duì)應(yīng)的長(zhǎng)度值;
[0055]將最小MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度;或者
[0056]將中間轉(zhuǎn)發(fā)設(shè)備的MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度。
[0057]在實(shí)際應(yīng)用中,數(shù)據(jù)包中除了包括有效數(shù)據(jù)外,還包括多種包頭,因此,上述過(guò)程中的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度是指數(shù)據(jù)包減去該數(shù)據(jù)包的所有包頭所占的字段的大小后的長(zhǎng)度。
[0058]為了更好地理解本發(fā)明實(shí)施例,以下給出具體應(yīng)用場(chǎng)景,針對(duì)傳輸數(shù)據(jù)的過(guò)程,作出進(jìn)一步詳細(xì)描述,如圖2所示:
[0059]步驟200:AP在確定發(fā)送端與接收端建立連接之后,接收客戶端發(fā)送的數(shù)據(jù)包;
[0060]步驟210:AP截獲所有通過(guò)本設(shè)備的報(bào)文,針對(duì)每一個(gè)報(bào)文,根據(jù)對(duì)應(yīng)的IP包格式中的協(xié)議字段判斷報(bào)文是否為TCP報(bào)文,若是,執(zhí)行步驟220,否則不作任何處理;
[0061]步驟220:將每一個(gè)TCP報(bào)文解封裝,針對(duì)每一個(gè)解封裝后的TCP報(bào)文,判斷報(bào)文的包頭中的“更多分段標(biāo)志”與“分段偏移”這兩個(gè)字段是否均為0,若是執(zhí)行步驟230,否則返回步驟210 ;
[0062]步驟230:針對(duì)對(duì)應(yīng)的包頭中的“更多分段標(biāo)志”與“分段偏移”這兩個(gè)字段均為O的每一個(gè)TCP報(bào)文,判斷對(duì)應(yīng)的頭部中的同步字段是否為I,若是,執(zhí)行步驟240,否則,返回步驟210 ;
[0063]步驟240:從任意一對(duì)應(yīng)的頭部中的同步字段為I的TCP報(bào)文中,獲取發(fā)送端的MSS 值;
[0064]步驟250:確定發(fā)送端的MSS值小于AP的MSS值時(shí),獲取AP與服務(wù)器之間的鏈路上的其他中間轉(zhuǎn)發(fā)設(shè)備分別對(duì)應(yīng)的MSS值中的最小MSS值;
[0065]步驟260:AP確定最小MSS值小于AP的MSS值時(shí),根據(jù)最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理;
[0066]步驟270:對(duì)重新組包處理后的數(shù)據(jù)包發(fā)送至服務(wù)器。
[0067]其中,上述步驟260講述的是,若AP確定最小MSS值小于AP的MSS值時(shí),根據(jù)最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,在實(shí)際應(yīng)用中,最小MSS值可能大于AP的MSS值,此時(shí),根據(jù)AP的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,即步驟260也可以為如下操作:
[0068]AP確定最小MSS值大于AP的MSS值時(shí),根據(jù)AP的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行
重新組包處理。
[0069]參閱圖3所示,本發(fā)明實(shí)施例中,還提供一種傳輸數(shù)據(jù)包的裝置,該裝置包括接收單元30、獲取單元31、處理單元32,及發(fā)送單元33,其中:
[0070]接收單元30,用于在確定發(fā)送端與接收端建立連接之后,接收發(fā)送端發(fā)送的數(shù)據(jù)包;
[0071]獲取單元31,用于從用于建立發(fā)送端與接收端之間連接的傳輸控制協(xié)議TCP連接報(bào)文中獲取發(fā)送端的最大分段長(zhǎng)度MSS值;
[0072]處理單元32,用于確定獲取單元獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于中間轉(zhuǎn)發(fā)設(shè)備的MSS值;[0073]發(fā)送單元33,用于將處理單元重新組包處理后的數(shù)據(jù)包發(fā)送至接收端。
[0074]進(jìn)一步的,本發(fā)明實(shí)施例中,獲取單元31還用于:
[0075]獲取TCP連接報(bào)文。
[0076]較佳的,本發(fā)明實(shí)施例中,獲取單元31在獲取TCP連接報(bào)文時(shí),具體為:
[0077]根據(jù)互聯(lián)網(wǎng)協(xié)議IP數(shù)據(jù)包格式中的協(xié)議字段,從獲取的通過(guò)中間轉(zhuǎn)發(fā)設(shè)備的IP數(shù)據(jù)包中確定出TCP報(bào)文;
[0078]從確定出的TCP報(bào)文中,根據(jù)TCP報(bào)文的報(bào)文頭中的更多分段標(biāo)志字段與分段偏移字段,確定出未分片的TCP報(bào)文;
[0079]從確定出的未分片的TCP報(bào)文中,根據(jù)TCP報(bào)文的頭部中的同步字段,確定出TCP連接報(bào)文。
[0080]進(jìn)一步的,本發(fā)明實(shí)施例中,處理單元32還用于:
[0081]確定中間轉(zhuǎn)發(fā)設(shè)備至接收端之間鏈路上的其他中間轉(zhuǎn)發(fā)設(shè)備分別對(duì)應(yīng)的MSS值中的最小MSS值。
[0082]較佳的,本發(fā)明實(shí)施例中,處理單元32根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理時(shí),具體為:
[0083]判斷最小MSS值是否小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值,若是,根據(jù)最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理;否則,根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理。
[0084]可選的,本發(fā)明實(shí)施例中,處理單元32具體用于:
[0085]確定中間轉(zhuǎn)發(fā)設(shè)備將數(shù)據(jù)包發(fā)送至接收端時(shí)增加的每一個(gè)包頭字段分別對(duì)應(yīng)的長(zhǎng)度值;
[0086]將最小MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度;或者
[0087]將中間轉(zhuǎn)發(fā)設(shè)備的MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度。
[0088]綜上所述,本發(fā)明實(shí)施例中,提出一種傳輸數(shù)據(jù)包的方法,該方法為:在確定發(fā)送端與接收端建立連接之后,接收發(fā)送端發(fā)送的數(shù)據(jù)包;從用于建立發(fā)送端與接收端之間連接的TCP連接報(bào)文中獲取發(fā)送端的最大分段長(zhǎng)度MSS值;確定獲取的發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于中間轉(zhuǎn)發(fā)設(shè)備的MSS值;將重新組包處理后的數(shù)據(jù)包發(fā)送至接收端,在該方案中,中間轉(zhuǎn)發(fā)設(shè)備在處理后的數(shù)據(jù)包的長(zhǎng)度未超出中間轉(zhuǎn)發(fā)設(shè)備的MSS值的情況下,增加了每一次發(fā)送數(shù)據(jù)包的長(zhǎng)度值,把鏈路傳輸數(shù)據(jù)包效率最大化,因此,提高了傳輸效率,提高了資源利用率。
[0089]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中的功能的裝置。[0090]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中的功能。
[0091]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中的功能的步驟。
[0092]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0093]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種傳輸數(shù)據(jù)包的方法,其特征在于,包括: 在確定發(fā)送端與接收端建立連接之后,接收所述發(fā)送端發(fā)送的數(shù)據(jù)包; 從用于建立所述發(fā)送端與所述接收端之間連接的傳輸控制協(xié)議TCP連接報(bào)文中獲取所述發(fā)送端的最大分段長(zhǎng)度MSS值; 確定獲取的所述發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包 進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于所述接收到的數(shù)據(jù)包的長(zhǎng)度,小于或者等于所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值; 將重新組包處理后的數(shù)據(jù)包發(fā)送至所述接收端。
2.如權(quán)利要求1所述的方法,其特征在于,在確定發(fā)送端與接收端建立連接之后,從用于建立所述發(fā)送端與所述接收端之間連接的傳輸控制協(xié)議TCP連接報(bào)文中獲取所述發(fā)送端的最大分段長(zhǎng)度MSS值之前,還包括: 獲取所述TCP連接報(bào)文。
3.如權(quán)利要求2所述的方法,其特征在于,所述獲取所述TCP連接報(bào)文,具體包括: 根據(jù)互聯(lián)網(wǎng)協(xié)議IP數(shù)據(jù)包格式中的協(xié)議字段,從獲取的通過(guò)所述中間轉(zhuǎn)發(fā)設(shè)備的IP數(shù)據(jù)包中確定出TCP報(bào)文; 從確定出的TCP報(bào)文中,根據(jù)TCP報(bào)文的報(bào)文頭中的更多分段標(biāo)志字段與分段偏移字段,確定出未分片的TCP報(bào)文; 從確定出的未分片的TCP報(bào)文中,根據(jù)TCP報(bào)文的頭部中的同步字段,確定出TCP連接報(bào)文。
4.如權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,確定獲取的所述發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值之后,在根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理之前,還包括: 確定所述中間轉(zhuǎn)發(fā)設(shè)備至所述接收端之間鏈路上的其他中間轉(zhuǎn)發(fā)設(shè)備分別對(duì)應(yīng)的MSS值中的最小MSS值。
5.如權(quán)利要求4所述的方法,其特征在于,根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,具體包括: 判斷所述最小MSS值是否小于所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值,若是,根據(jù)所述最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理;否則,根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理。
6.如權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,具體包括: 確定所述中間轉(zhuǎn)發(fā)設(shè)備將數(shù)據(jù)包發(fā)送至所述接收端時(shí)增加的每一個(gè)包頭字段分別對(duì)應(yīng)的長(zhǎng)度值; 將所述最小MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度;或者 將所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度。
7.一種傳輸數(shù)據(jù)包的裝置,其特征在于,包括: 接收單元,用于在確定發(fā)送端與接收端建立連接之后,接收所述發(fā)送端發(fā)送的數(shù)據(jù)包; 獲取單元,用于從用于建立所述發(fā)送端與所述接收端之間連接的傳輸控制協(xié)議TCP連接報(bào)文中獲取所述發(fā)送端的最大分段長(zhǎng)度MSS值; 處理單元,用于確定所述獲取單元獲取的所述發(fā)送端的MSS值小于中間轉(zhuǎn)發(fā)設(shè)備的MSS值時(shí),根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理,其中,重新組包處理后的數(shù)據(jù)包的長(zhǎng)度大于所述接收到的數(shù)據(jù)包的長(zhǎng)度,小于或等于所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值; 發(fā)送單元,用于將所述處理單元重新組包處理后的數(shù)據(jù)包發(fā)送至所述接收端。
8.如權(quán)利要求7所 述的裝置,其特征在于,所述獲取單元還用于: 獲取所述TCP連接報(bào)文。
9.如權(quán)利要求8所述的裝置,其特征在于,所述獲取單元在獲取所述TCP連接報(bào)文時(shí),具體為: 根據(jù)互聯(lián)網(wǎng)協(xié)議IP數(shù)據(jù)包格式中的協(xié)議字段,從獲取的通過(guò)所述中間轉(zhuǎn)發(fā)設(shè)備的IP數(shù)據(jù)包中確定出TCP報(bào)文; 從確定出的TCP報(bào)文中,根據(jù)TCP報(bào)文的報(bào)文頭中的更多分段標(biāo)志字段與分段偏移字段,確定出未分片的TCP報(bào)文; 從確定出的未分片的TCP報(bào)文中,根據(jù)TCP報(bào)文的頭部中的同步字段,確定出TCP連接報(bào)文。
10.如權(quán)利要求7-9任一項(xiàng)所述的裝置,其特征在于,所述處理單元還用于: 確定所述中間轉(zhuǎn)發(fā)設(shè)備至所述接收端之間鏈路上的其他中間轉(zhuǎn)發(fā)設(shè)備分別對(duì)應(yīng)的MSS值中的最小MSS值。
11.如權(quán)利要求10所述的裝置,其特征在于,所述處理單元根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理時(shí),具體為: 判斷所述最小MSS值是否小于所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值,若是,根據(jù)所述最小MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理;否則,根據(jù)所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值對(duì)接收到的數(shù)據(jù)包進(jìn)行重新組包處理。
12.如權(quán)利要求11所述的裝置,其特征在于,所述處理單元具體用于: 確定所述中間轉(zhuǎn)發(fā)設(shè)備將數(shù)據(jù)包發(fā)送至所述接收端時(shí)增加的每一個(gè)包頭字段分別對(duì)應(yīng)的長(zhǎng)度值; 將所述最小MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度;或者將所述中間轉(zhuǎn)發(fā)設(shè)備的MSS值減去確定的所有長(zhǎng)度值得到的值,作為重新組包處理后的數(shù)據(jù)包有效數(shù)據(jù)的長(zhǎng)度。
【文檔編號(hào)】H04L29/08GK103986753SQ201410193295
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年5月8日 優(yōu)先權(quán)日:2014年5月8日
【發(fā)明者】嚴(yán)少繼 申請(qǐng)人:京信通信系統(tǒng)(中國(guó))有限公司