專利名稱:一種最大傳輸單元協商方法及數據終端的制作方法
技術領域:
本發明涉及數據終端領域,尤其涉及ー種最大傳輸單元協商方法及數據終端。
背景技術:
隨著科技的發展,使用各種通信協議的網絡在人們的日常工作、學習、生活中的各個方面都發揮著重要作用,網絡性能也隨之受到極大的關注。最大傳輸單元(MaximumTransmission Unit,MTU)是指ー種通信協議的某ー層上面所能通過的最大數據包的大小,為最大報文長度(Maxitum Segment Size,MSS)與消息頭長度之和,以字節為單位。在一些通信協議鏈路建立連接時,例如傳輸控制協議(Transmission Control Protocol, TCP),用戶終端和服務器會進行協商,通過握手消息將自身的MTU發送給對方,從用戶終端MTU和服務器MTU中選擇出較小的MTU作為鏈路連接成功后網絡傳輸數據時使用的MTU,即用戶終端和服務器發送的數據包的大小都不會超過該協商出的MTU。
網絡路徑中所能通過的最大數據包的大小為路徑MTU,當路徑MTU不小于該協商出的MTU吋,例如,用戶終端和服務器的MTU均為1500byte,則用戶終端和服務器協商出的MTU也為1500byte,若路徑MTU不小于1500byte,此時,網絡能夠完整傳輸用戶終端和服務器發送的數據包;然而,當路徑MTU小于該協商出的MTU時,例如在前述情況中,若路徑MTU小于1500byte,此時,會出現用戶終端和服務器發送的數據包被分片傳輸的情況,導致網絡性能降低。
發明內容
本發明實施例提供ー種MTU協商方法及數據終端,用以解決現有技術中存在的當路徑MTU同時小于用戶終端MTU和服務器MTU時導致的網絡性能降低的問題。—種最大傳輸單兀MTU協商方法,包括數據終端接收用戶終端在通信協議鏈路建立連接時發送的攜帯所述用戶終端的MTU的第一請求消息;將所述第一請求消息中攜帯的所述用戶終端的MTU更新為路徑MTU ;向服務器發送攜帯所述路徑MTU的第二請求消息;所述第二請求消息中攜帯的路徑MTU用于所述服務器將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU ;接收所述服務器返回的攜帯所述服務器的MTU的第一應答消息;將所述第一應答消息中攜帯的所述服務器的MTU更新為所述路徑MTU ;向所述用戶終端發送攜帯所述路徑MTU的第二應答消息,所述第二應答消息中攜帶的路徑MTU用于所述用戶終端將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU。ー種數據終端,包括接收單元,用于接收用戶終端在通信協議鏈路建立連接時發送的攜帯所述用戶終端的MTU的第一請求消息;以及接收服務器發送的攜帯所述服務器的MTU的第一應答消息;更新単元,用于將所述第一請求消息中攜帯的所述用戶終端的MTU更新為路徑MTU ;以及將所述第一應答消息中攜帯的所述服務器的MTU更新為所述路徑MTU ;
發送單元,用于向所述服務器發送攜帯所述路徑MTU的第二請求消息;所述第二請求消息中攜帯的路徑MTU用于所述服務器將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU ;以及向所述用戶終端發送攜帯所述路徑MTU的第二應答消息,所述第二應答消息中攜帯的路徑MTU用于所述用戶終端將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU。本發明的有益效果包括本發明實施例提供的方法中,在通信協議鏈路建立連接時,將握手消息中的MTU更新為路徑MTU,由于用戶終端和服務器會在接收到的握手消息中的MTU和自身MTU中選擇較小的MTU作為鏈路連接成功后使用的MTU,因此能夠保證用戶終端和服務器鏈路連接成功后使用的MTU不會超過路徑MTU,即網絡中傳輸的數據包的大小不會超過路徑MTU,從而避免了數據包的分包傳輸,提高了網絡性能。
附圖用來提供對本發明的進ー步理解,并且構成說明書的一部分,與本發明實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中圖I為本發明實施例提供的MTU協商方法的流程圖;圖2為本發明實施例提供的MTU協商方法的詳細流程圖;圖3為本發明實施例提供的數據終端的結構示意圖。
具體實施例方式為了給出提高網絡性能的實現方案,本發明實施例提供了ー種MTU協商方法及數據終端,以下結合說明書附圖對本發明的優選實施例進行說明,應當理解,此處所描述的優選實施例僅用于說明和解釋本發明,并不用于限定本發明。并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。本發明實施例提供ー種MTU協商方法,如圖I所示,包括步驟101、數據終端接收用戶終端在通信協議鏈路建立連接時發送的攜帯用戶終端的MTU的第一請求消息;步驟102、將第一請求消息中攜帯的用戶終端的MTU更新為路徑MTU ;步驟103、向服務器發送攜帯路徑MTU的第二請求消息;第二請求消息中攜帯的路徑MTU用于服務器將其和自身的MTU進行比較,確定通信協議鏈路連接成功后使用的MTU ;步驟104、接收服務器返回的攜帯服務器的MTU的第一應答消息;步驟105、將第一應答消息中攜帯的服務器的MTU更新為路徑MTU ;步驟106、向用戶終端發送攜帶路徑MTU的第二應答消息,第二應答消息中攜帯的路徑MTU用于用戶終端將其和自身的MTU進行比較,確定通信協議鏈路連接成功后使用的MTU。
上述MTU協商方法中的數據終端可以為數據卡、免驅數據卡或移動熱點產品等。下面結合附圖,以TCP鏈路建立連接時的MTU協商為例,用具體實施例對本發明提供的方法進行詳細描述。圖2所示為本發明實施例提供的MTU協商方法的詳細流程圖,具體包括步驟201、在通信協議鏈路建立連接時,用戶終端向數據終端發送攜帶該用戶終端的MTU的第一請求消息,具體可以為在通信協議鏈路建立連接時,用戶終端向數據終端發送攜帶該用戶終端的MSS和消息頭長度的第一請求消息,其中,MSS和消息頭長度之和為MTU。以TCP鏈路建立連接時的MTU協商為例,進行具體說明在TCP鏈路建立連接時,用戶終端向數據終端發送攜帶該用戶終端的MSS和消息 頭長度的傳輸控制協議同步序號請求TCP SYN消息。步驟202、數據終端接收該第一請求消息,判斷該第一請求消息中攜帯的用戶終端的MTU是否大于路徑MTU。當確定該第一請求消息中攜帯的用戶終端的MTU不大于路徑MTU時,進入步驟203 ;當確定該第一請求消息中攜帯的用戶終端的MTU大于路徑MTU時,進入步驟204。具體可以為數據終端接收該第一請求消息,判斷該第一請求消息中攜帯的用戶終端的MSS是否大于根據路徑MTU計算出的MSS。當確定該第一請求消息中攜帯的用戶終端的MSS不大于該計算出的MSS時,進入步驟203 ;當確定該第一請求消息中攜帶的用戶終端的MSS大于該計算出的MSS時,進入步驟204。即在TCP鏈路建立連接過程中,數據終端接收TCP SYN消息,判斷該TCPSYN消息中攜帯的用戶終端的MSS是否大于根據路徑MTU計算出的MSS。當確定該TCP SYN消息中攜帶的用戶終端的MSS不大于該計算出的MSS時,進入步驟203 ;當確定該TCP SYN消息中攜帶的用戶終端的MSS大于該計算出的MSS時,進入步驟204。步驟203、數據終端向服務器發送攜帯用戶終端的MTU的第一請求消息,具體可以為數據終端向服務器發送攜帯用戶終端的MSS和消息頭長度的第一請求消息。即在TCP鏈路建立連接過程中,數據終端向服務器發送攜帯用戶終端的MSS和消息頭長度的TCP SYN消息。進入步驟206。步驟204、數據終端將該第一請求消息中攜帯的用戶終端的MTU更新為路徑MTU,具體可以為數據終端將該第一請求消息中攜帯的用戶終端的MSS更新為根據路徑MTU計算出的 MSS。即在TCP鏈路建立連接過程中,數據終端將該TCP SYN消息中攜帶的用戶終端的MSS更新為根據路徑MTU計算出的MSS。步驟205、數據終端向服務器發送攜帯路徑MTU的第二請求消息,具體可以為數據終端向服務器發送攜帯根據路徑MTU計算出的MSS和消息頭長度的第二請求消息。即在TCP鏈路建立連接過程中,數據終端向服務器發送攜帯根據路徑MTU計算出的MSS和消息頭長度的TCP SYN消息。步驟206、服務器接收攜帶用戶終端的MTU的第一請求消息或攜帯路徑MTU的第二請求消息,井向數據終端發送攜帯該服務器的MTU的第一應答消息。當服務器接收到第一請求消息時,服務器將第一請求消息中攜帯的用戶終端的MTU和自身的MTU進行比較,選擇出較小的MTU作為通信協議鏈路連接成功后使用的MTU ;當服務器接收到第二請求消息吋,服務器將第二請求消息中攜帯的路徑MTU和自身的MTU進行比較,選擇出較小的MTU作為通信協議鏈路連接成功后使用的MTU。該步驟具體可以為服務器接收攜帶用戶終端的MSS和消息頭長度的第一請求消息或攜帯根據路徑MTU計算出的MSS和消息頭長度的第二請求消息,井向數據終端發送攜帯該服務器的MSS和 消息頭長度的第一應答消息。即在TCP鏈路建立連接過程中,服務器接收攜帶用戶終端的MSS和消息頭長度的TCP SYN消息或攜帯根據路徑MTU計算出的MSS和消息頭長度的TCP SYN消息,井向數據終端發送攜帯該服務器的MSS和消息頭長度的傳輸控制協議同步序號應答TCP SYNACK消息。步驟207、數據終端接收服務器發送的該第一應答消息,判斷該第一應答消息中攜帶的服務器的MTU是否大于路徑MTU。當確定該第一應答消息中攜帯的服務器的MTU不大于路徑MTU吋,進入步驟208 ;當確定該第一應答消息中攜帯的服務器的MTU大于路徑MTU時,進入步驟209。具體可以為數據終端接收服務器發送的該第一應答消息,判斷該第一應答消息中攜帯的服務器的MSS是否大于根據路徑MTU計算出的MSS。當確定該第一應答消息中攜帯的服務器的MSS不大于該計算出的MSS時,進入步驟208 ;當確定該第一應答消息中攜帯的服務器的MSS大于該計算出的MSS時,進入步驟209。即在TCP鏈路建立連接過程中,數據終端接收服務器發送的TCP SYNACK消息,判斷該TCP SYN ACK消息中攜帯的服務器的MSS是否大于根據路徑MTU計算出的MSS。當確定該TCP SYN ACK消息中攜帶的服務器的MSS不大于該計算出的MSS時,進入步驟208 ;當確定該TCP SYN ACK消息中攜帶的服務器的MSS大于該計算出的MSS時,進入步驟209。步驟208、數據終端向用戶終端發送攜帶服務器的MTU的第一應答消息,具體可以為數據終端向用戶終端發送攜帶服務器的MSS和消息頭長度的第一應答消息。即在TCP鏈路建立連接過程中,數據終端向用戶終端發送攜帶服務器的MSS和消息頭長度的TCP SYN ACK消息。進入步驟211。步驟209、數據終端將該第一應答消息中攜帯的服務器的MTU更新為路徑MTU,具體可以為數據終端將該第一應答消息中攜帯的服務器的MSS更新為根據路徑MTU計算出的MSS。即在TCP鏈路建立連接過程中,數據終端將該TCP SYNACK消息中攜帶的服務器的MSS更新為根據路徑MTU計算出的MSS。步驟210、數據終端向用戶終端發送攜帶路徑MTU的第二應答消息,具體可以為
數據終端向用戶終端發送攜帯根據路徑MTU計算出的MSS和消息頭長度的第二應答消息。即在TCP鏈路建立連接過程中,數據終端向用戶終端發送攜帯根據路徑MTU計算出的MSS和消息頭長度的TCP SYN ACK消息。步驟211、用戶終端接收攜帶服務器的MTU的第一應答消息或攜帯路徑MTU的第二應答消息,井向數據終端發送應答確認消息。當用戶終端接收到第一應答消息時,用戶終端將第一應答消息中攜帯的服務器的MTU和自身的MTU進行比較,選擇出較小的MTU作為通信協議鏈路連接成功后使用的MTU ;當用戶終端接收到第二應答消息時,用戶終端將第二應答消息中攜帯的路徑MTU和自身的MTU進行比較,選擇出較小的MTU作為通信協議鏈路連接成功后使用的MTU。該步驟具體可以為 用戶終端接收攜帶服務器的MSS和消息頭長度的第一應答消息或攜帯根據路徑MTU計算出的MSS和消息頭長度的第二應答消息,井向數據終端發送應答確認消息。即在TCP鏈路建立連接過程中,用戶終端接收攜帶服務器的MSS和消息頭長度的TCP SYN ACK消息或攜帶根據路徑MTU計算出的MSS和消息頭長度的TCP SYN ACK消息,并向數據終端發送傳輸控制協議同步序號應答確認TCP ACK消息。步驟212、數據終端接收該應答確認消息,并將該應答確認消息透傳至服務器。即在TCP鏈路建立連接過程中,數據終端接收TCP ACK消息,并將該TCPACK消息透傳至服務器。至此,通信協議鏈路連接建立完成。可見,采用本發明實施例提供的方法,在通信協議鏈路建立連接時,將握手消息中的MTU更新為路徑MTU,能夠保證鏈路連接成功后網絡中傳輸的數據包的大小不會超過路徑MTU,從而避免了數據包的分包傳輸,提高了網絡性能,及用戶的使用體驗。基于同一發明構思,根據本發明上述實施例提供的MTU協商方法,相應地,本發明實施例還提供一種數據終端,其結構示意圖如圖3所示,具體包括接收單元301,用于接收用戶終端在通信協議鏈路建立連接時發送的攜帯該用戶終端的MTU的第一請求消息;以及接收服務器發送的攜帯該服務器的MTU的第一應答消息;更新単元302,用于將該第一請求消息中攜帯的該用戶終端的MTU更新為路徑MTU ;以及將該第一應答消息中攜帯的該服務器的MTU更新為該路徑MTU ;發送單元303,用于向該服務器發送攜帯該路徑MTU的第二請求消息;該第二請求消息中攜帯的路徑MTU用于該服務器將其和自身的MTU進行比較,確定該通信協議鏈路連接成功后使用的MTU ;以及向該用戶終端發送攜帯該路徑MTU的第二應答消息,該第二應答消息中攜帯的路徑MTU用于該用戶終端將其和自身的MTU進行比較,確定該通信協議鏈路連接成功后使用的MTU。進ー步的,更新単元302,還用于在將該第一請求消息中攜帯的該用戶終端的MTU更新為路徑MTU之前,確定該第一請求消息中攜帯的該用戶終端的MTU大于路徑MTU。進ー步的,更新單元302,還用于當確定該第一請求消息中攜帶的該用戶終端的MTU不大于路徑MTU時,取消將該第一請求消息中攜帯的該用戶終端的MTU更新為路徑MTU ;發送單元303,還用于向服務器發送攜帯用戶終端的MTU的第一請求消息。進ー步的,更新単元302,還用于在將該第一應答消息中攜帯的該服務器的MTU更新為該路徑MTU之前,確定該第一應答消息中攜帯的該服務器的MTU大于該路徑MTU。進ー步的,更新単元302,還用于當確定該第一應答消息中攜帯的該服務器的MTU不大于該路徑MTU時,取消將該第一應答消息中攜帯的該服務器的MTU更新為該路徑MTU ;發送單元303,還用于向用戶終端發送攜帶服務器的MTU的第一應答消息。進ー步的,接收單元301,具體用于接收用戶終端在通信協議鏈路建立連接時發送的攜帶該用戶終端的最大報文長度MSS和消息頭長度的第一請求消息;以及接收服務器發送的攜帯該服務器的MSS和該消息頭長度的第一應答消息;MSS和消息頭長度之和為MTU ; 更新単元302,具體用于將該第一請求消息中攜帯的該用戶終端的MSS更新為根據該路徑MTU計算出的MSS ;以及將該第一應答消息中攜帯的該服務器的MSS更新為該計算出的MSS ;發送單元303,具體用于向該服務器發送攜帯該計算出的MSS和該消息頭長度的第二請求消息;以及向該用戶終端發送攜帶該計算出的MSS和該消息頭長度的第二應答消
ο綜上所述,本發明實施例提供的方案,包括數據終端接收用戶終端在通信協議鏈路建立連接時發送的攜帶該用戶終端的MTU的第一請求消息;將該第一請求消息中攜帯的該用戶終端的MTU更新為路徑MTU ;向服務器發送攜帯該路徑MTU的第二請求消息;該第二請求消息中攜帯的路徑MTU用于該服務器將其和自身的MTU進行比較,確定該通信協議鏈路連接成功后使用的MTU ;接收該服務器返回的攜帯該服務器的MTU的第一應答消息;將該第一應答消息中攜帯的該服務器的MTU更新為該路徑MTU ;向該用戶終端發送攜帯該路徑MTU的第二應答消息,該第二應答消息中攜帯的路徑MTU用于該用戶終端將其和自身的MTU進行比較,確定該通信協議鏈路連接成功后使用的MTU。采用本發明實施例提供的方案,能夠提高網絡性能。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種最大傳輸單兀MTU協商方法,其特征在于,包括 數據終端接收用戶終端在通信協議鏈路建立連接時發送的攜帶所述用戶終端的MTU的第一請求消息; 將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU ; 向服務器發送攜帶所述路徑MTU的第二請求消息;所述第二請求消息中攜帶的路徑MTU用于所述服務器將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的 MTU ; 接收所述服務器返回的攜帶所述服務器的MTU的第一應答消息; 將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU ; 向所述用戶終端發送攜帶所述路徑MTU的第二應答消息,所述第二應答消息中攜帶的路徑MTU用于所述用戶終端將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU。
2.如權利要求I所述的方法,其特征在于,在將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU之前,還包括 確定所述第一請求消息中攜帶的所述用戶終端的MTU大于路徑MTU。
3.如權利要求2所述的方法,其特征在于,還包括 當確定所述第一請求消息中攜帶的所述用戶終端的MTU不大于路徑MTU時,取消將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU。
4.如權利要求I所述的方法,其特征在于,在將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU之前,還包括 確定所述第一應答消息中攜帶的所述服務器的MTU大于所述路徑MTU。
5.如權利要求4所述的方法,其特征在于,還包括 當確定所述第一應答消息中攜帶的所述服務器的MTU不大于所述路徑MTU時,取消將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU。
6.如權利要求I所述的方法,其特征在于,數據終端接收用戶終端發送的所述第一請求消息,具體為 數據終端接收用戶終端在通信協議鏈路建立連接時發送的攜帶所述用戶終端的最大報文長度MSS和消息頭長度的第一請求消息,MSS和消息頭長度之和為MTU ; 將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU,具體為 將所述第一請求消息中攜帶的所述用戶終端的MSS更新為根據所述路徑MTU計算出的MSS ; 向服務器發送攜帶所述路徑MTU的第二請求消息,具體為 向服務器發送攜帶所述計算出的MSS和所述消息頭長度的第二請求消息; 接收所述服務器返回的攜帶所述服務器的MTU的第一應答消息,具體為 接收所述服務器返回的攜帶所述服務器的MSS和所述消息頭長度的第一應答消息; 將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU,具體為 將所述第一應答消息中攜帶的所述服務器的MSS更新為所述計算出的MSS ; 向所述用戶終端發送攜帶所述路徑MTU的第二應答消息,具體為 向所述用戶終端發送攜帶所述計算出的MSS和所述消息頭長度的第二應答消息。
7.一種數據終端,其特征在于,包括 接收單元,用于接收用戶終端在通信協議鏈路建立連接時發送的攜帶所述用戶終端的MTU的第一請求消息;以及接收服務器發送的攜帶所述服務器的MTU的第一應答消息; 更新單元,用于將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU ;以及將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU ; 發送單元,用于向所述服務器發送攜帶所述路徑MTU的第二請求消息;所述第二請求消息中攜帶的路徑MTU用于所述服務器將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU ;以及向所述用戶終端發送攜帶所述路徑MTU的第二應答消息,所述第二應答消息中攜帶的路徑MTU用于所述用戶終端將其和自身的MTU進行比較,確定所述通信協議鏈路連接成功后使用的MTU。
8.如權利要求7所述的數據終端,其特征在于,所述更新單元,還用于在將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU之前,確定所述第一請求消息中攜帶 的所述用戶終端的MTU大于路徑MTU。
9.如權利要求8所述的數據終端,其特征在于,所述更新單元,還用于當確定所述第一請求消息中攜帶的所述用戶終端的MTU不大于路徑MTU時,取消將所述第一請求消息中攜帶的所述用戶終端的MTU更新為路徑MTU。
10.如權利要求7所述的數據終端,其特征在于,所述更新單元,還用于在將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU之前,確定所述第一應答消息中攜帶的所述服務器的MTU大于所述路徑MTU。
11.如權利要求10所述的數據終端,其特征在于,所述更新單元,還用于當確定所述第一應答消息中攜帶的所述服務器的MTU不大于所述路徑MTU時,取消將所述第一應答消息中攜帶的所述服務器的MTU更新為所述路徑MTU。
12.如權利要求7所述的數據終端,其特征在于,所述接收單元,具體用于接收用戶終端在通信協議鏈路建立連接時發送的攜帶所述用戶終端的最大報文長度MSS和消息頭長度的第一請求消息;以及接收服務器發送的攜帶所述服務器的MSS和所述消息頭長度的第一應答消息;MSS和消息頭長度之和為MTU ; 所述更新單元,具體用于將所述第一請求消息中攜帶的所述用戶終端的MSS更新為根據所述路徑MTU計算出的MSS;以及將所述第一應答消息中攜帶的所述服務器的MSS更新為所述計算出的MSS; 所述發送單元,具體用于向所述服務器發送攜帶所述計算出的MSS和所述消息頭長度的第二請求消息;以及向所述用戶終端發送攜帶所述計算出的MSS和所述消息頭長度的第二應答消息。
全文摘要
本發明公開了一種最大傳輸單元協商方法及數據終端,包括數據終端接收用戶終端在通信協議鏈路建立連接時發送的攜帶該用戶終端的MTU的第一請求消息;將該第一請求消息中攜帶的該用戶終端的MTU更新為路徑MTU;向服務器發送攜帶該路徑MTU的第二請求消息;接收該服務器返回的攜帶該服務器的MTU的第一應答消息;將該第一應答消息中攜帶的該服務器的MTU更新為該路徑MTU;向該用戶終端發送攜帶該路徑MTU的第二應答消息。采用本發明提供的方法和數據終端,能夠提高網絡性能。
文檔編號H04L12/721GK102868609SQ20121036481
公開日2013年1月9日 申請日期2012年9月27日 優先權日2012年9月27日
發明者張亞兵 申請人:中興通訊股份有限公司