或小于600的值)字節(jié),然后將變更后的握手報(bào)文發(fā)送給所述第二設(shè)備,所述第二設(shè)備接收到來(lái)自所述第一設(shè)備的SYN報(bào)文,其中所述報(bào)文攜帶的MSS值為600字節(jié),然后所述第二設(shè)備會(huì)向所述第一設(shè)備發(fā)送SYN/ACK報(bào)文,攜帶的MSS值為800字節(jié),所述SYN/ACK報(bào)文在流經(jīng)所述鏈路設(shè)備時(shí),所述鏈路設(shè)備會(huì)比較所述SYN/ACK報(bào)文的MSS值與所述鏈路設(shè)備自身支持的MSS值,發(fā)現(xiàn)所述SYN/ACK報(bào)文中的MSS值大于所述鏈路設(shè)備的MSS值,則變更所述SYN/ACK報(bào)文中的MSS值為600 (或小于600的值)字節(jié),所述鏈路設(shè)備將變更后的SYN/ACK報(bào)文發(fā)送給所述第一設(shè)備,所述第一設(shè)備接收到的SYN/ACK報(bào)文中的MSS值為600字節(jié)。
[0064]這樣第一設(shè)備發(fā)送的SYN報(bào)文的MSS值是1000字節(jié),收到的第二設(shè)備SYN/ACK報(bào)文的MSS值是600字節(jié),則所述第一設(shè)備將會(huì)調(diào)整發(fā)送報(bào)文的MSS值為600字節(jié),同樣的,所述第二設(shè)備接收到的來(lái)自所述第一設(shè)備的SYN報(bào)文中的MSS值為600字節(jié),發(fā)送的SYN/ACK報(bào)文中的MSS值為800字節(jié),則會(huì)調(diào)整自身MSS值為600字節(jié),這樣,所述第一設(shè)備向所述第二設(shè)備發(fā)送報(bào)文,則不會(huì)再出現(xiàn)分片的情況。同樣的,若第二設(shè)備作為發(fā)送端,第一設(shè)備作為接收端,鏈路設(shè)備的協(xié)商過(guò)程仍然成立。
[0065]上述實(shí)施例介紹了當(dāng)鏈路設(shè)備的MSS值均小于第一設(shè)備及第二設(shè)備的MSS值,在實(shí)施例1中介紹的一種報(bào)文傳輸?shù)姆椒ㄖ校鲜鰧?shí)施例,但不僅限于上述實(shí)施例。
[0066]下面介紹另一種實(shí)施例3便于使本領(lǐng)域技術(shù)人員理解實(shí)施例1中所述的一種報(bào)文傳輸?shù)姆椒ā?br>[0067]如圖2所示,在無(wú)線網(wǎng)絡(luò)通信過(guò)程中,由第一設(shè)備、鏈路設(shè)備、第二設(shè)備構(gòu)成一個(gè)通信鏈路,第一設(shè)備的MSS值為1000字節(jié),鏈路設(shè)備自身支持的MSS值為800字節(jié),第二設(shè)備的MSS值為600字節(jié),所述第一設(shè)備發(fā)送握手報(bào)文SYN報(bào)文給所述第二設(shè)備,流經(jīng)所述鏈路設(shè)備,由于所述SYN的MSS值大于所述鏈路設(shè)備的MSS值,所以所述鏈路設(shè)備更改所述SYN的MSS值為800(或小于800)字節(jié),然后將更改后的SYN報(bào)文發(fā)送給所述第二設(shè)備,所述第二設(shè)備在接收到所述更改后的SYN報(bào)文后,發(fā)送SYN/ACK報(bào)文給所述第一設(shè)備;
[0068]所述第二設(shè)備的所述SYN/ACK報(bào)文在流經(jīng)所述鏈路設(shè)備時(shí),由于所述SYN/ACK報(bào)文的MSS值小于所述鏈路設(shè)備的MSS值,所述鏈路設(shè)備未對(duì)所述SYN/ACK報(bào)文的MSS值進(jìn)行修改,將所述SYN/ACK報(bào)文發(fā)送給第一設(shè)備。
[0069]這樣,第一設(shè)備發(fā)送的SYN報(bào)文中的MSS值為1000字節(jié),收到的SYN/ACK報(bào)文的MSS值為600字節(jié),則第一設(shè)備修改自身的MSS值為600字節(jié)進(jìn)行報(bào)文傳輸;
[0070]同樣的,第二設(shè)備接收到的SYN報(bào)文的MSS值為800字節(jié),發(fā)送的SYN/ACK報(bào)文的MSS值為600字節(jié),則第二設(shè)備修改自身的MSS值為600字節(jié)進(jìn)行報(bào)文傳輸。同樣的,若第二設(shè)備作為發(fā)送端,第一設(shè)備作為接收端,鏈路設(shè)備的協(xié)商過(guò)程仍然成立。
[0071]通過(guò)上述實(shí)施例2、3,可以避免在無(wú)線網(wǎng)路傳輸過(guò)程中,第一設(shè)備或第二設(shè)備發(fā)送的數(shù)據(jù)報(bào)文超過(guò)CAPWAP隧道最大負(fù)載能力,導(dǎo)致數(shù)據(jù)報(bào)文分片的問(wèn)題,優(yōu)化了無(wú)線網(wǎng)路鏈路傳輸?shù)墓ぷ餍?,提高?AP設(shè)備吞吐量。
[0072]本發(fā)明實(shí)施例4還提供一種TCP層報(bào)文傳輸?shù)奶幚矸椒?,如圖3所示,該方法包括:
[0073]步驟S301,鏈路設(shè)備接收到來(lái)自第一設(shè)備的需要發(fā)送給第二設(shè)備的報(bào)文,報(bào)文類(lèi)型不限,可以是TCP/IP報(bào)文,也可以是其它傳輸協(xié)議的報(bào)文;
[0074]步驟S302,檢查第一設(shè)備需要發(fā)送給第二設(shè)備的報(bào)文是否是TCP報(bào)文;若是TCP報(bào)文,則執(zhí)行步驟S303;若不是TCP報(bào)文,則執(zhí)行步驟S307;
[0075]步驟S303,檢查所述TCP報(bào)文是否是TCP連接中三次握手的SYN或SYN/ACK報(bào)文,SP握手報(bào)文;
[0076]若是SYN或SYN/ACK報(bào)文,則是握手報(bào)文,執(zhí)行步驟S304 ;若不是SYN或SYN/ACK報(bào)文,則不是握手報(bào)文,執(zhí)行步驟S307;
[0077]步驟S304,取得當(dāng)前TCP報(bào)文中Opt1ns字段中的MSS值,第一設(shè)備和第二設(shè)備在建立連接的過(guò)程中,將所述第一設(shè)備和所述第二設(shè)備自身的MSS值寫(xiě)在SYN或SYN/ACK類(lèi)型TCP報(bào)文的選項(xiàng)Opt1ns字段中;
[0078]步驟S305,判斷TCP報(bào)文中的MSS值是否大于鏈路設(shè)備的容量門(mén)限值,將檢測(cè)到的SYN或SYN/ACK報(bào)文中的MSS值與鏈路設(shè)備的容量門(mén)限值進(jìn)行比較,若MSS值大于容量門(mén)限值,則執(zhí)行步驟S306;若MSS值不大于容量門(mén)限值,則執(zhí)行步驟S307;
[0079 ]步驟S306,鏈路設(shè)備變更所述MSS值,其中所述變更后的MSS值不大于所述門(mén)限值,變更后,則執(zhí)行步驟S307;
[0080]步驟S307,所述鏈路設(shè)備將第一設(shè)備需要發(fā)送給第二設(shè)備的報(bào)文發(fā)送給所述第二設(shè)備,若執(zhí)行步驟S306,則所述第二設(shè)備接收到的是攜帶有已變更的MSS值的握手報(bào)文,若未執(zhí)行步驟S306,則第二設(shè)備接收到的是第一設(shè)備發(fā)送給第二設(shè)備的報(bào)文。
[0081]鏈路設(shè)備可以修改握手報(bào)文中的最大分片長(zhǎng)度,從而保障了數(shù)據(jù)流經(jīng)CAPWAP隧道時(shí),不會(huì)超過(guò)CAPWAP隧道最大負(fù)載能力,避免CAPWAP分片和重組,優(yōu)化鏈路工作效率,提高AP設(shè)備吞吐量。
[0082]基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實(shí)施例提供的一種報(bào)文傳輸?shù)奶幚矸椒?,相?yīng)地,本發(fā)明另一實(shí)施例還提供了一種報(bào)文傳輸?shù)奶幚硌b置,其結(jié)構(gòu)示意圖如圖4所示,具體包括:
[0083]報(bào)文接收單元401,用于接收來(lái)自第一設(shè)備的需要發(fā)送給第二設(shè)備的握手報(bào)文;
[0084]容量調(diào)整單元402,用于當(dāng)所述握手報(bào)文中攜帶的最大分片長(zhǎng)度MSS大于設(shè)定的容量門(mén)限值時(shí),所述容量調(diào)整單元變更所述最大分片長(zhǎng)度,其中所述變更后的最大分片長(zhǎng)度不大于所述容量門(mén)限值;
[0085]報(bào)文發(fā)送單元403,用于將握手報(bào)文發(fā)送給所述第二設(shè)備。
[0086]其中,所述第一設(shè)備需要發(fā)送給第二設(shè)備的握手報(bào)文指的是第一設(shè)備與第二設(shè)備建立TCP/IP連接過(guò)程中的握手報(bào)文。
[0087]在第一設(shè)備與第二設(shè)備建立TCP/IP連接過(guò)程中,第一設(shè)備與第二設(shè)備之間會(huì)先進(jìn)行“三次握手”,所謂的“三次握手”即對(duì)每次發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行跟蹤,使數(shù)據(jù)報(bào)文發(fā)送和接收同步,并且根據(jù)所收到的數(shù)據(jù)報(bào)文確認(rèn)報(bào)文送達(dá),通過(guò)“三次握手”過(guò)程建立連接。
[0088]TCP/IP連接的三次握手流程為同步SYN、同步確認(rèn)SYN/ACK和確認(rèn)ACK。發(fā)送報(bào)文的設(shè)備雙方均會(huì)在建立連接的過(guò)程中將自身的MSS值寫(xiě)在SYN或SYN/ACK類(lèi)型TCP/IP報(bào)文的選項(xiàng)字段中。在三次握手建立連接期間,SYN、SYN/ACK和ACK的報(bào)文長(zhǎng)度很短,一定小于預(yù)設(shè)容量門(mén)限值,也就意味著SYN報(bào)文或SYN/ACK報(bào)文在傳輸?shù)芥溌吩O(shè)備的時(shí)候是完整的報(bào)文信息。
[0089]當(dāng)報(bào)文接收單元401接收到第一設(shè)備向第二設(shè)備發(fā)送的報(bào)文時(shí),首先需要判斷收到的報(bào)文是否為握手報(bào)文。
[0090]具體的判斷方式為:
[0091]判斷收到的所述報(bào)文是否為SYN數(shù)據(jù)報(bào)文或者SYN/ACK數(shù)據(jù)報(bào)文,如果是SYN數(shù)據(jù)報(bào)文或者SYN/ACK數(shù)據(jù)報(bào)文,則確定收到的報(bào)文為握手報(bào)文;否則,確定收到的報(bào)文不是握手報(bào)文。
[0092]其中,容量調(diào)整單元402中,所述最大分片長(zhǎng)度為T(mén)CP層的最大分片長(zhǎng)度MS