欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

同步報文發(fā)送方法、裝置和網(wǎng)絡(luò)設(shè)備的制作方法

文檔序號:8003290閱讀:501來源:國知局
專利名稱:同步報文發(fā)送方法、裝置和網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及防火墻技術(shù),尤其涉及一種同步報文發(fā)送方法、裝置和網(wǎng)絡(luò)設(shè)備,屬于通信技術(shù)領(lǐng)域。
背景技術(shù)
同步洪水(Synchronize Flood ;以下簡稱SYN Flood)攻擊是當(dāng)前最流行的拒絕服務(wù)攻擊(Denial of krvice ;以下簡稱DoQ與分布式拒絕服務(wù)攻擊(Distributed Denial of Service ;以下簡稱DDoQ的方式之一,這是一種利用傳輸控制協(xié)議 (Transmission Control Protocol ;以下簡稱TCP)協(xié)議缺陷,發(fā)送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡的攻擊方式?,F(xiàn)有技術(shù)中,TCP連接建立過程具體為第一步,請求端(客戶端)發(fā)送一個包含同步(Synchronize ;以下簡稱SYN)標(biāo)志的TCP報文,該包含SYN標(biāo)志的TCP報文(下稱“SYN報文”)會指明客戶端使用的端口以及TCP序列號的初始值。第二步,服務(wù)器在收到客戶端的SYN報文后,將響應(yīng)一個同步確認(SYNACK)報文, 表示客戶端的請求被接受,同時TCP序列號被加1,其中ACK為確認(Acknowledgement)的簡稱。第三步,客戶端收到服務(wù)器的SYNACK報文后,也返回一個ACK報文給服務(wù)器,同樣 TCP序列號被加1,至此一個TCP連接建立完成。以上的連接過程在TCP中被稱為三次握手(Three-way Handshake)。在建立TCP連接的三次握手中,假設(shè)一個客戶端向服務(wù)器發(fā)送了 SYN報文后突然死機或掉線,那么服務(wù)器在發(fā)出SYNACK報文后是無法收到客戶端的ACK報文的,這樣第三次握手無法完成,這種情況下服務(wù)器端一般會重試,即再次發(fā)送SYNACK報文給客戶端,并等待一段時間后丟棄這個未完成的連接,這段時間的長度稱為同步超時(SYN Timeout), 一般來說這個時間是分鐘的數(shù)量級(大約為0.5-2分鐘);一個用戶出現(xiàn)異常導(dǎo)致服務(wù)器的一個線程等待1分鐘并不是什么很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況,服務(wù)器端將為了維護一個非常大的半連接列表而消耗非常多的資源——數(shù)以萬計的半連接,即使是簡單的保存并遍歷也會消耗非常多的中央處理單元(Central Processing Unit ;以下簡稱CPU)時間和內(nèi)存,何況還要不斷對這個列表中的因特網(wǎng)協(xié)議anternet Protocol ;以下簡稱IP)進行SYN+ACK的重試。實際上如果服務(wù)器的TCP/IP棧不夠強大, 最后的結(jié)果往往是堆棧溢出崩潰;即使服務(wù)器端的系統(tǒng)足夠強大,服務(wù)器端也將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求,此時從正常客戶的角度看來,服務(wù)器失去響應(yīng),這種情況稱作服務(wù)器端受到了 SYN Flood攻擊。SYNC00KIE安裝在保護服務(wù)器的防火墻上,SYNC00KIE收到客戶端的SYN報文后, SYNC00KIE根據(jù)SYN報文的特征(例如IP和/或端口等),經(jīng)過保密的算法,計算出一個值X。SYNC00KIE基于SYN報文構(gòu)造一個SYNACK報文,以X作為SYNACK報文的序列號。
4
SYNACK報文發(fā)給TCP會話發(fā)起方,即客戶端后,防火墻釋放本次會話發(fā)起請求占用的全部內(nèi)存資源。SYNC00KIE收到來自TCP會話發(fā)起方,即客戶端的ACK報文后,則根據(jù)該ACK報文的特征(例如IP和/或端口等),用相同的保密算法得出一個值,與ACK報文的確認號比較,如果一致,則說明ACK報文是對SYNC00KIE之前發(fā)送的SYNACK報文的確認,可以確定上述客戶端的連接請求不是SYN Flood攻擊,SYNC00KIE接著代替客戶端和服務(wù)器建立TCP連接;若不一致則SYNC00KIE丟棄ACK報文。SYNC00KIE的優(yōu)勢在于,受到SYN Flood攻擊時,對SYN Flood報文的處理不占用系統(tǒng)內(nèi)存資源。SYNC00KIE在保護服務(wù)器的同時,避免了防火墻本身由于內(nèi)存資源被耗盡而成為SYN洪水攻擊的犧牲品。SYNC00KIE把SYN報文改造為SYNACK報文,反饋給客戶端后,在防火墻本地并不保留SYN報文的任何信息。SYNC00KIE收到ACK報文,發(fā)現(xiàn)該ACK報文是對SYNACK報文的響應(yīng),確認客戶端的連接請求非SYN Flood攻擊后,把ACK報文改造成SYN報文,發(fā)給服務(wù)器。構(gòu)造SYN報文過程中,由于防火墻沒有保存客戶端發(fā)來的SYN報文的信息,無從獲知客戶端可接受的確切最大報文段長度(Maximum Segment Size ;以下簡稱MSS),因此,通常不設(shè)置MSS選項。其中,MSS就是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段。為了達到最佳的傳輸效能TCP在建立連接的時候通常要協(xié)商雙方的MSS值,這個值TCP在實現(xiàn)時取自最大傳輸單元(Maximum Transmission Unit ;以下簡稱MTU),一般來說,MTU減去IP數(shù)據(jù)包包頭的大小20字節(jié)(Bytes)和TCP數(shù)據(jù)段的包頭20Bytes后獲得值即為MSS。舉例來說,如果路徑MTU是1500字節(jié),則MSS為1460字節(jié)。通訊雙方會取雙方可接受的MSS中的最小值作為本次連接的MSS。防火墻與服務(wù)器完成三次握手后,在客戶端與服務(wù)器的報文往來過程中,由于服務(wù)器不知道客戶端可以接受的MSS,于是采用缺省MSS,通常是1460字節(jié)。如果服務(wù)器發(fā)送到虛擬專用網(wǎng)絡(luò)(Virtual Private Network ;以下簡稱VPN)網(wǎng)關(guān)的IP報文攜帶長度為1460字節(jié)的用戶數(shù)據(jù),則該IP報文的總長為IP報頭20字節(jié)+TCP 報頭20字節(jié)+1460字節(jié),即1500字節(jié)。由于VPN網(wǎng)關(guān)在轉(zhuǎn)發(fā)IP報文之前需要在報頭附加 4字節(jié)的通用路由封裝(Generic Routing Encapsulation ;以下簡稱GRE)報頭和20字節(jié)的外層IP頭,因此如果VPN通道可接受的MTU小于1500字節(jié)+4字節(jié)+20字節(jié),則上述IP 報文將被VPN網(wǎng)關(guān)丟棄?,F(xiàn)有的SYNC00KIE方案沒有保存SYN報文的TCP報頭選項MSS的值,導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過VPN通道允許的MTU而被VPN網(wǎng)關(guān)丟棄。

發(fā)明內(nèi)容
本發(fā)明一方面提供一種同步報文發(fā)送方法,包括同步報文發(fā)送裝置接收到客戶端發(fā)送的第一同步報文后,向所述客戶端發(fā)送同步確認報文,所述同步確認報文的序列號攜帶所述第一同步報文的最大報文段長度;所述同步報文發(fā)送裝置接收所述客戶端針對所述同步確認報文發(fā)送的第一確認報文;如果確定所述第一確認報文為合法報文,則所述同步報文發(fā)送裝置根據(jù)所述第一確認報文生成第二同步報文,并根據(jù)所述第一確認報文的確認號設(shè)置所述第二同步報文的最大報文段長度選項的值;所述同步報文發(fā)送裝置將設(shè)置所述值后的第二同步報文發(fā)送給服務(wù)器。本發(fā)明另一方面提供一種同步報文發(fā)送裝置,包括接收模塊、發(fā)送模塊、確定模塊、生成模塊和設(shè)置模塊;所述接收模塊,用于接收客戶端發(fā)送的第一同步報文;所述發(fā)送模塊,用于在所述接收模塊接收到所述客戶端發(fā)送的第一同步報文之后,向所述客戶端發(fā)送同步確認報文,所述同步確認報文的序列號攜帶所述第一同步報文的最大報文段長度;所述接收模塊,還用于接收所述客戶端針對所述同步確認報文發(fā)送的第一確認報文;所述確定模塊,用于確定所述接收模塊接收的第一確認報文是否為合法報文;所述生成模塊,用于在所述確定模塊確定所述第一確認報文為合法報文之后,根據(jù)所述第一確認報文生成第二同步報文;所述設(shè)置模塊,用于根據(jù)所述接收模塊接收的第一確認報文的確認號設(shè)置所述第二同步報文的最大報文段長度選項的值;所述發(fā)送模塊,還用于將設(shè)置所述值后的第二同步報文發(fā)送給服務(wù)器。本發(fā)明又一方面提供一種網(wǎng)絡(luò)設(shè)備,包括如上所述的同步報文發(fā)送裝置。本發(fā)明一方面的技術(shù)效果是同步報文發(fā)送裝置接收到客戶端發(fā)送的第一同步報文后,向上述客戶端發(fā)送同步確認報文,該同步確認報文的序列號攜帶第一同步報文的 MSS;然后同步報文發(fā)送裝置接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文, 如果確定上述第一確認報文為合法報文,則根據(jù)上述第一確認報文生成第二同步報文,并根據(jù)上述第一確認報文的確認號設(shè)置上述第二同步報文的最大報文段長度MSS選項的值, 然后將設(shè)置所述值后的第二同步報文發(fā)送給服務(wù)器;從而可以使服務(wù)器將該服務(wù)器發(fā)送給客戶端的報文的最大報文段長度設(shè)置為上述第二同步報文的MSS選項的值,進而可以解決 SYNC00KIE無法保存SYN報文的MSS選項的值,導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過 VPN通道允許的MTU而被VPN網(wǎng)關(guān)丟棄的問題。本發(fā)明另一方面的技術(shù)效果是接收模塊接收到客戶端發(fā)送的第一同步報文之后,發(fā)送模塊向上述客戶端發(fā)送同步確認報文,該同步確認報文的序列號攜帶第一同步報文的MSS ;然后,接收模塊接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文;在確定模塊確定接收模塊接收的確認模塊為合法報文之后,生成模塊根據(jù)上述第一確認報文生成第二同步報文;接下來,設(shè)置模塊根據(jù)接收模塊接收的第一確認報文的確認號設(shè)置上述第二同步報文的MSS選項的值;最后,發(fā)送模塊將設(shè)置上述值后的第二同步報文發(fā)送給服務(wù)器;從而可以使服務(wù)器將該服務(wù)器發(fā)送給客戶端的報文的最大報文段長度設(shè)置為上述第二同步報文的MSS選項的值,進而可以解決SYNC00KIE無法保存SYN報文的MSS選項的值,導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過VPN通道允許的MTU而被VPN網(wǎng)關(guān)丟棄的問題。


圖1為本發(fā)明同步報文發(fā)送方法一個實施例的流程圖
圖2為本發(fā)明同步報文發(fā)送裝置一個實施例的結(jié)構(gòu)示意圖;圖3為本發(fā)明同步報文發(fā)送裝置另一個實施例的結(jié)構(gòu)示意圖。
具體實施例方式圖1為本發(fā)明同步報文發(fā)送方法一個實施例的流程圖,如圖1所示,該同步報文發(fā)送方法可以包括步驟101,同步報文發(fā)送裝置接收到客戶端發(fā)送的第一同步報文后,向上述客戶端發(fā)送同步確認報文,該同步確認報文的序列號攜帶該第一同步報文的MSS。步驟102,同步報文發(fā)送裝置接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文。步驟103,如果確定上述第一確認報文為合法報文,則同步報文發(fā)送裝置根據(jù)上述第一確認報文生成第二同步報文,并根據(jù)上述第一確認報文的確認號設(shè)置上述第二同步報文的MSS選項的值。步驟104,同步報文發(fā)送裝置將設(shè)置上述值后的第二同步報文發(fā)送給服務(wù)器。進一步地,步驟101中,同步報文發(fā)送裝置接收到客戶端的第一同步報文后,向上述客戶端發(fā)送同步確認報文之前,同步報文發(fā)送裝置還可以根據(jù)上述第一同步報文的特征,經(jīng)過保密算法,計算出值X ;以及獲得第一同步報文的MSS除以第一預(yù)定數(shù)值后的值轉(zhuǎn)換的二進制數(shù)Y ;然后,同步報文發(fā)送裝置根據(jù)Y的位數(shù),將X的末尾L位置為第二預(yù)定數(shù)值,其中L與Y的位數(shù)相等;最后,同步報文發(fā)送裝置獲得末尾L位置為第二預(yù)定數(shù)值后的 X加上Y后的值Z,以Z作為上述同步確認報文的序列號;其中,將末尾L位置為第二預(yù)定數(shù)值后的X加上Y,即為將Y存儲在X末尾的L個比特中。其中,上述第一同步報文的特征包括上述第一同步報文的IP地址和/或端口號寸。具體地,根據(jù)第一確認報文的確認號設(shè)置第二同步報文的MSS選項的值可以為 同步報文發(fā)送裝置獲得由上述確認號與第三預(yù)定數(shù)值之差的末尾L位組成的二進制數(shù),將上述二進制數(shù)轉(zhuǎn)換為十進制數(shù);然后,同步報文發(fā)送裝置將上述第二同步報文的MSS選項的值設(shè)置為上述十進制數(shù)與第一預(yù)定數(shù)值的乘積。進一步地,本實施例中,同步報文發(fā)送裝置接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文之后,同步報文發(fā)送裝置還可以根據(jù)上述第一確認報文的特征,經(jīng)過上述保密算法,計算出值M ;然后,將上述第一確認報文的確認號與第三預(yù)定數(shù)值之差的末尾L位置為上述第二預(yù)定數(shù)值,獲得第一數(shù)值;以及將M的末尾L位置為上述第二預(yù)定數(shù)值,獲得第二數(shù)值;如果第一數(shù)值等于第二數(shù)值,則同步報文發(fā)送裝置確定上述第一確認報文為合法報文;如果第一數(shù)值不等于第二數(shù)值,則同步報文發(fā)送裝置確定上述第一確認報文為非法報文。其中,上述第一確認報文的特征包括上述第一確認報文的IP地址和/或端口號寸。本實施例中,優(yōu)選地,上述第一預(yù)定數(shù)值可以為100,當(dāng)然本發(fā)明實施例并不僅限于此,上述第一預(yù)定數(shù)值也可以為其他數(shù)值,例如10或50等等,本發(fā)明實施例對上述第一預(yù)定數(shù)值的大小不作限定。但是第一預(yù)定數(shù)值越小,L越大,上述X的末尾需要被置為0的位數(shù)就越多,上述保密算法被破解的可能性越大。本實施例中,上述第二預(yù)定數(shù)值可以為0 ;上述第三預(yù)定數(shù)值可以為1 ;當(dāng)然本發(fā)明實施例并不僅限于此,本發(fā)明實施例對上述第二預(yù)定數(shù)值和上述第三預(yù)定數(shù)值的大小不作限定。上述實施例中,同步報文發(fā)送裝置接收到客戶端發(fā)送的第一同步報文后,向上述客戶端發(fā)送同步確認報文,該同步確認報文的序列號攜帶該第一同步報文的MSS;然后同步報文發(fā)送裝置接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文,如果確定上述第一確認報文為合法報文,則根據(jù)上述第一確認報文生成第二同步報文,并根據(jù)上述第一確認報文的確認號設(shè)置上述第二同步報文的MSS選項的值,然后將設(shè)置所述值后的第二同步報文發(fā)送給服務(wù)器;從而可以使服務(wù)器將該服務(wù)器發(fā)送給客戶端的報文的最大報文段長度設(shè)置為上述第二同步報文的MSS選項的值,進而可以解決SYNC00KIE無法保存SYN報文的MSS選項的值,導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過VPN通道允許的MTU而被 VPN網(wǎng)關(guān)丟棄的問題。本發(fā)明圖1所示實施例中的同步報文發(fā)送裝置可以采用SYNC00KIE技術(shù),設(shè)置在網(wǎng)絡(luò)設(shè)備,例如防火墻、路由器或交換機中,下面對本發(fā)明提供的同步報文發(fā)送方法進行詳細介紹。本發(fā)明以下實施例的描述中,以SYNC00KIE表示上述同步報文發(fā)送裝置,并且以第一預(yù)定數(shù)值為100,第二預(yù)定數(shù)值為0,第三預(yù)定數(shù)值為1為例進行說明。SYNC00KIE接收到客戶端發(fā)送的第一 SYN報文之后,SYNC00KIE根據(jù)第一 SYN報文的特征(例如第一 SYN報文的IP地址和/或端口號等),經(jīng)過保密算法,計算出值X ;并獲得第一 SYN報文的MSS除以100(MSS/100)后的值轉(zhuǎn)換的二進制數(shù)Y,即獲得MSS的千位數(shù)和百位數(shù)組成的二進制數(shù)。由于MSS通常情況下不超過1500,假設(shè)第一 SYN報文的MSS為1460,則第一 SYN 報文的MSS除以100后的值轉(zhuǎn)換的二進制數(shù)為1110(十進制數(shù)為14),因此Y的位數(shù)為4, 也就是說以下描述中,本發(fā)明圖1所示實施例中的L等于4。接下來,SYNC00KIE通過式(1)計算獲得Z,并以Z作為SYNACK報文的序列號。(X&Oxf f f f f f f 0) +Y = Z(1)式(1)中,(X&OxfffffffO)即為將X 的末 4 位置為 0 ;“(X&OxfffffffO)+Y” 即為將末4位置0后的X與Y相加獲得Z。式(1)即為將Y存儲在X末尾的4個比特中,獲得 Z。接收到客戶端針對上述SYNACK報文發(fā)送的ACK報文后,SYNC00KIE根據(jù)該ACK報文的特征(例如IP地址和/或端口號等),經(jīng)過上述保密算法,計算出值M。假設(shè)ACK 報文的確認號是 N,則如果(N-I) &0xfffffff0 = = M&0xfffffff0, 則SYNC00KIE確定上述ACK報文為合法報文,否則確定上述ACK報文為非法報文。其中,“ (N-I)&0xfffffff0"即為將上述確認號與1之差的末4位置為0,獲得的第一數(shù)值; "M&0xfffffff0"即為將M的末4位置為0,獲得的第二數(shù)值。在確定上述ACK報文為合法報文之后,SYNC00KIE將上述ACK報文改造為第二 SYN 報文,通過式( 獲得二進制數(shù)P,將P轉(zhuǎn)換為十進制數(shù),并將上述第二 SYN報文的MSS選項的值設(shè)置為該十進制數(shù)與100的乘積;最后SYNC00KIE將設(shè)置MSS選項的值之后的第二 SYN報文發(fā)送給服務(wù)器。
(N-I) &0xf = = P(2)式O)中,“(N-l)&0xf”即為獲得上述確認號與1之差的末4位組成的二進制數(shù)。如果第一 SYN報文的MSS為1460,則由“(N_l) &0xf ”獲得的二進制數(shù)轉(zhuǎn)換的十進制數(shù)為14,所以SYNC00KIE將第二 SYN報文的MSS選項的值設(shè)置為14X 100 = 1400。這樣,服務(wù)器接收到上述第二 SYN報文之后,會以上述第二 SYN報文的MSS選項的值,即1400作為后續(xù)服務(wù)器需要發(fā)送給上述客戶端的報文的MSS,這樣后續(xù)服務(wù)器發(fā)送給客戶端的報文就不會因長度超過VPN通道的MTU而被VPN網(wǎng)關(guān)丟棄。本實施例中,只取X末尾的4個比特來保存MSS信息的目的是為了盡可能地減少 SYNC00KIE使用的保密算法被破解的可能性。這樣就以較微小的代價(不能100%地充分利用VPN通道帶寬),解決了 SYNC00KIE無法保存SYN報文MSS選項的值,導(dǎo)致后續(xù)服務(wù)器發(fā)送給客戶端的報文因長度超過VPN通道的MTU而被VPN網(wǎng)關(guān)丟棄的問題。當(dāng)然,如果上述網(wǎng)絡(luò)設(shè)備所處環(huán)境中的VPN通道允許的MTU較大,和/或設(shè)置的第一預(yù)定數(shù)值較小,則可以占用X末尾的更多比特位來存放第一 SYN報文的MSS選項的值;本發(fā)明實施例對此不作限定。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖2為本發(fā)明同步報文發(fā)送裝置一個實施例的結(jié)構(gòu)示意圖,本實施例中的同步報文發(fā)送裝置可以實現(xiàn)本發(fā)明圖1所示實施例的流程,如圖2所示,該同步報文發(fā)送裝置可以包括接收模塊21、發(fā)送模塊22、確定模塊23、生成模塊M和設(shè)置模塊25 ;其中,接收模塊21,用于接收客戶端發(fā)送的第一同步報文;發(fā)送模塊22,用于在接收模塊21接收到上述客戶端發(fā)送的第一同步報文之后,向上述客戶端發(fā)送同步確認報文,該同步確認報文的序列號攜帶該第一同步報文的MSS ;接收模塊21,還用于接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文;確定模塊23,用于確定接收模塊21接收的第一確認報文是否為合法報文;生成模塊M,用于在確定模塊23確定上述第一確認報文為合法報文之后,根據(jù)上述第一確認報文生成第二同步報文;設(shè)置模塊25,用于根據(jù)接收模塊21接收的第一確認報文的確認號設(shè)置上述第二同步報文的MSS選項的值;發(fā)送模塊22,還用于將設(shè)置上述值后的第二同步報文發(fā)送給服務(wù)器。本實施例中的同步報文發(fā)送裝置可以應(yīng)用SYNC00KIE技術(shù),設(shè)置在網(wǎng)絡(luò)設(shè)備,例如防火墻、路由器或交換機中。上述同步報文發(fā)送裝置中,接收模塊21接收到客戶端發(fā)送的第一同步報文之后, 發(fā)送模塊22向上述客戶端發(fā)送同步確認報文,該同步確認報文的序列號攜帶該第一同步報文的MSS ;然后,接收模塊21接收上述客戶端針對上述同步確認報文發(fā)送的第一確認報文;在確定模塊23確定接收模塊21接收的第一確認報文為合法報文之后,生成模塊M根據(jù)上述第一確認報文生成第二同步報文;接下來,設(shè)置模塊25根據(jù)接收模塊21接收的第一確認報文的確認號設(shè)置上述第二同步報文的MSS選項的值;最后,發(fā)送模塊22將設(shè)置上述值后的第二同步報文發(fā)送給服務(wù)器;從而可以使服務(wù)器將該服務(wù)器發(fā)送給客戶端的報文的最大報文段長度設(shè)置為上述第二同步報文的MSS選項的值,進而可以解決SYNC00KIE無法保存SYN報文的MSS選項的值,導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過VPN通道允許的MTU而被VPN網(wǎng)關(guān)丟棄的問題。圖3為本發(fā)明同步報文發(fā)送裝置另一個實施例的結(jié)構(gòu)示意圖,與圖2所示的同步報文發(fā)送裝置相比,不同之處在于,圖3所示的同步報文發(fā)送裝置還可以包括計算模塊沈和獲得模塊27 ;其中,計算模塊沈,用于根據(jù)上述第一同步報文的特征,經(jīng)過保密算法,計算出值 X ;獲得模塊27,用于獲得上述第一同步報文的最大報文段長度除以第一預(yù)定數(shù)值后的值轉(zhuǎn)換的二進制數(shù)Y;本實施例中,設(shè)置模塊25,還用于根據(jù)Y的位數(shù),將X的末尾L位置為第二預(yù)定數(shù)值,其中L與Y的位數(shù)相等;獲得模塊27,還用于獲得末尾L位置為第二預(yù)定數(shù)值后的X加上Y后的值Z,以Z 作為同步確認報文的序列號。具體地,設(shè)置模塊25可以獲得由上述確認號與第三預(yù)定數(shù)值之差的末尾L位組成的二進制數(shù),將上述二進制數(shù)轉(zhuǎn)換為十進制數(shù),并將第二同步報文的最大報文段長度選項的值設(shè)置為上述十進制數(shù)與第一預(yù)定數(shù)值的乘積。進一步地,計算模塊沈,還用于根據(jù)上述第一確認報文的特征,經(jīng)過上述保密算法,計算出值M ;獲得模塊27,還用于將上述第一確認報文的確認號與第三預(yù)定數(shù)值之差的末尾L 位置為第二預(yù)定數(shù)值,獲得第一數(shù)值;以及將M的末尾L位置為第二預(yù)定數(shù)值,獲得第二數(shù)值;則確定模塊沈,可以在獲得模塊27獲得的第一數(shù)值等于獲得模塊27獲得的第二數(shù)值時,確定上述第一確認報文為合法報文;以及在獲得模塊27獲得的第一數(shù)值不等于獲得模塊27獲得的第二數(shù)值時,確定所述第一確認報文為非法報文。本實施例中,上述第一預(yù)定數(shù)值可以為100,當(dāng)然本發(fā)明實施例并不僅限于此,上述第一預(yù)定數(shù)值也可以為其他數(shù)值,例如10或50等等,本發(fā)明實施例對上述第一預(yù)定數(shù)值的大小不作限定。但是第一預(yù)定數(shù)值越小,L越大,上述X的末尾需要被置為0的位數(shù)就越多,上述保密算法被破解的可能性越大。本實施例中,上述第二預(yù)定數(shù)值可以為0 ;上述第三預(yù)定數(shù)值可以為1 ;當(dāng)然本發(fā)明實施例并不僅限于此,本發(fā)明實施例對上述第二預(yù)定數(shù)值和上述第三預(yù)定數(shù)值的大小不作限定。上述同步報文發(fā)送裝置可以解決SYNC00KIE無法保存SYN報文的MSS選項的值, 導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過VPN通道允許的MTU而被VPN網(wǎng)關(guān)丟棄的問題。本發(fā)明實施例還提供一種網(wǎng)絡(luò)設(shè)備,包括如本發(fā)明圖2或圖3所示實施例所述的同步報文發(fā)送裝置;其中,該網(wǎng)絡(luò)設(shè)備可以為防火墻、路由器或交換機等。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。最后應(yīng)說明的是以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制; 盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
權(quán)利要求
1.一種同步報文發(fā)送方法,其特征在于,包括同步報文發(fā)送裝置接收到客戶端發(fā)送的第一同步報文后,向所述客戶端發(fā)送同步確認報文,所述同步確認報文的序列號攜帶所述第一同步報文的最大報文段長度;所述同步報文發(fā)送裝置接收所述客戶端針對所述同步確認報文發(fā)送的第一確認報文;如果確定所述第一確認報文為合法報文,則所述同步報文發(fā)送裝置根據(jù)所述第一確認報文生成第二同步報文,并根據(jù)所述第一確認報文的確認號設(shè)置所述第二同步報文的最大報文段長度選項的值;所述同步報文發(fā)送裝置將設(shè)置所述值后的第二同步報文發(fā)送給服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述同步報文發(fā)送裝置接收到客戶端的第一同步報文后,向所述客戶端發(fā)送同步確認報文之前,還包括所述同步報文發(fā)送裝置根據(jù)所述第一同步報文的特征,經(jīng)過保密算法,計算出值X ;以及獲得所述第一同步報文的最大報文段長度除以第一預(yù)定數(shù)值后的值轉(zhuǎn)換的二進制數(shù)Y ; 所述同步報文發(fā)送裝置根據(jù)所述Y的位數(shù),將所述X的末尾L位置為第二預(yù)定數(shù)值,其中L與所述Y的位數(shù)相等;所述同步報文發(fā)送裝置獲得末尾L位置為第二預(yù)定數(shù)值后的X加上所述Y后的值Z,以所述Z作為所述同步確認報文的序列號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述第一確認報文的確認號設(shè)置所述第二同步報文的最大報文段長度選項的值包括所述同步報文發(fā)送裝置獲得由所述確認號與第三預(yù)定數(shù)值之差的末尾L位組成的二進制數(shù),將所述二進制數(shù)轉(zhuǎn)換為十進制數(shù);所述同步報文發(fā)送裝置將所述第二同步報文的最大報文段長度選項的值設(shè)置為所述十進制數(shù)與所述第一預(yù)定數(shù)值的乘積。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述同步報文發(fā)送裝置接收所述客戶端針對所述同步確認報文發(fā)送的第一確認報文之后,還包括所述同步報文發(fā)送裝置根據(jù)所述第一確認報文的特征,經(jīng)過所述保密算法,計算出值M ;所述同步報文發(fā)送裝置將所述第一確認報文的確認號與第三預(yù)定數(shù)值之差的末尾L 位置為所述第二預(yù)定數(shù)值,獲得第一數(shù)值;以及將所述M的末尾L位置為所述第二預(yù)定數(shù)值,獲得第二數(shù)值;如果所述第一數(shù)值等于所述第二數(shù)值,則所述同步報文發(fā)送裝置確定所述第一確認報文為合法報文;如果所述第一數(shù)值不等于所述第二數(shù)值,則所述同步報文發(fā)送裝置確定所述第一確認報文為非法報文。
5.根據(jù)權(quán)利要求2-4任意一項所述的方法,其特征在于, 所述第一預(yù)定數(shù)值為100 ;所述第三預(yù)定數(shù)值為1。
6.一種同步報文發(fā)送裝置,其特征在于,包括接收模塊、發(fā)送模塊、確定模塊、生成模塊和設(shè)置模塊;所述接收模塊,用于接收客戶端發(fā)送的第一同步報文;所述發(fā)送模塊,用于在所述接收模塊接收到所述客戶端發(fā)送的第一同步報文之后,向所述客戶端發(fā)送同步確認報文,所述同步確認報文的序列號攜帶所述第一同步報文的最大報文段長度;所述接收模塊,還用于接收所述客戶端針對所述同步確認報文發(fā)送的第一確認報文; 所述確定模塊,用于確定所述接收模塊接收的第一確認報文是否為合法報文; 所述生成模塊,用于在所述確定模塊確定所述第一確認報文為合法報文之后,根據(jù)所述第一確認報文生成第二同步報文;所述設(shè)置模塊,用于根據(jù)所述接收模塊接收的第一確認報文的確認號設(shè)置所述第二同步報文的最大報文段長度選項的值;所述發(fā)送模塊,還用于將設(shè)置所述值后的第二同步報文發(fā)送給服務(wù)器。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括計算模塊和獲得模塊; 所述計算模塊,用于根據(jù)所述第一同步報文的特征,經(jīng)過保密算法,計算出值X ;所述獲得模塊,用于獲得所述第一同步報文的最大報文段長度除以第一預(yù)定數(shù)值后的值轉(zhuǎn)換的二進制數(shù)Y;所述設(shè)置模塊,還用于根據(jù)所述Y的位數(shù),將所述X的末尾L位置為第二預(yù)定數(shù)值,其中L與所述Y的位數(shù)相等;所述獲得模塊,還用于獲得末尾L位置為第二預(yù)定數(shù)值后的X加上所述Y后的值Z,以所述Z作為所述同步確認報文的序列號。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述設(shè)置模塊,具體用于獲得由所述確認號與第三預(yù)定數(shù)值之差的末尾L位組成的二進制數(shù),將所述二進制數(shù)轉(zhuǎn)換為十進制數(shù),并將所述第二同步報文的最大報文段長度選項的值設(shè)置為所述十進制數(shù)與所述第一預(yù)定數(shù)值的乘積。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述計算模塊,還用于根據(jù)所述第一確認報文的特征,經(jīng)過所述保密算法,計算出值M ;所述獲得模塊,還用于將所述第一確認報文的確認號與第三預(yù)定數(shù)值之差的末尾L位置為所述第二預(yù)定數(shù)值,獲得第一數(shù)值;以及將所述M的末尾L位置為所述第二預(yù)定數(shù)值, 獲得第二數(shù)值;所述確定模塊,具體用于在所述獲得模塊獲得的第一數(shù)值等于所述獲得模塊獲得的第二數(shù)值時,確定所述第一確認報文為合法報文;以及在所述獲得模塊獲得的第一數(shù)值不等于所述獲得模塊獲得的第二數(shù)值時,確定所述第一確認報文為非法報文。
10.一種網(wǎng)絡(luò)設(shè)備,其特征在于,包括如權(quán)利要求6-9任意一項所述的同步報文發(fā)送裝置。
全文摘要
本發(fā)明提供一種同步報文發(fā)送方法、裝置和網(wǎng)絡(luò)設(shè)備,該同步報文發(fā)送方法包括同步報文發(fā)送裝置接收到客戶端發(fā)送的第一同步報文后,向客戶端發(fā)送同步確認報文;接收客戶端針對同步確認報文發(fā)送的第一確認報文;如果確定第一確認報文為合法報文,則根據(jù)第一確認報文生成第二同步報文,并根據(jù)第一確認報文的確認號設(shè)置第二同步報文的MSS選項的值;將設(shè)置上述值后的第二同步報文發(fā)送給服務(wù)器。從而可以使服務(wù)器將該服務(wù)器發(fā)送給客戶端的報文的MSS設(shè)置為上述第二同步報文的MSS選項的值,進而可以解決SYNCOOKIE無法保存SYN報文的MSS選項的值,導(dǎo)致服務(wù)器發(fā)送給客戶端的報文的長度超過VPN通道允許的MTU而被VPN網(wǎng)關(guān)丟棄的問題。
文檔編號H04L12/56GK102427452SQ201110402599
公開日2012年4月25日 申請日期2011年12月6日 優(yōu)先權(quán)日2011年12月6日
發(fā)明者黃凱明 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嵩明县| 横山县| 长垣县| 大连市| 赫章县| 海淀区| 绵竹市| 内乡县| 金乡县| 锡林浩特市| 金阳县| 大连市| 册亨县| 嘉鱼县| 合水县| 留坝县| 凤庆县| 江源县| 若尔盖县| 施秉县| 故城县| 乡城县| 武胜县| 无锡市| 桂平市| 玛曲县| 沁源县| 金湖县| 琼中| 宜章县| 胶州市| 论坛| 吴忠市| 武威市| 绥宁县| 元朗区| 正镶白旗| 阳泉市| 西乌珠穆沁旗| 江山市| 舒兰市|