GTPv1 和 GTPv0的比較 介紹 GPRS Tunneling Protocol(GTP)分別在[3GPP TS 29.060]和[GSM TS 09.60]定義,用于支持MS在GPRS和UMST網(wǎng)絡(luò)中的移動(dòng)性。相比移動(dòng)IP,GTP僅在網(wǎng)絡(luò)側(cè)使用,不需要MS支持。GTP能和其他協(xié)議進(jìn)行互操作,這樣可以跟蹤UE的位置變化。 GTP有兩個(gè)版本,GTPv0和GTPv1,GTPv0在[GSM TS 09.60]中描述,適用于GPRS (release97和release 98系統(tǒng))。GTPv1在[3GPP TS 29.060]中描述,同時(shí)GPRS和UMTS系統(tǒng)。3GPP成員為了引入一些GTPv0并不支持的新特性,專門新定義了GTPv1,但GTPv1和GTPv0并不兼容。主要的目的是將GTP的控制面和用戶面分離,一個(gè)原因是在Iu口使用GTP隧道,但控制面使用RANAP。另外,為支持一個(gè)PDN連接有多個(gè)不同QoS的承載,即PDP。需要一個(gè)控制面會(huì)話(TEID-C)可以復(fù)用多個(gè)PDP,這種復(fù)用在GTPv0中需要復(fù)雜和麻煩的結(jié)構(gòu)去標(biāo)識(shí)會(huì)話和承載。GTPv1協(xié)議本文對(duì)這兩個(gè)協(xié)議版本進(jìn)行比較,并說明互操作上的兼容性。 差異 在GTPv0版本時(shí),信令消息和數(shù)據(jù)傳輸是關(guān)聯(lián)在一個(gè)端口的,GTPv1相比GTPv0,主要的差異是分成了控制面和用戶面,即GTP-C和GTP-U,可以獨(dú)立使用。詳細(xì)的差異如下表:
兼容性 GTPv1或GTPv0/v1節(jié)點(diǎn)聯(lián)系其他節(jié)點(diǎn)時(shí)應(yīng)該首先GTPv1消息。如果接收節(jié)點(diǎn)接收到一條它不支持版本的GTP控制面消息,則返回一條“版本不支持”消息(只有GTP頭),并在GTP字頭中版本字段指示該節(jié)點(diǎn)所能支持的最新版本。接收到的G-PDU則被丟棄。 僅支持GTPv0的GSN不會(huì)在端口2123上收聽,因此也不會(huì)向用GTP-C與它建立對(duì)話的對(duì)等端返回版本不支持消息。如果用GTPv1聯(lián)系對(duì)端失敗,既支持GTPv1又支持GTPv0的GSN將退回到GTPv0。 支持GTPv1的GSN可以通過對(duì)端返回的ICMP不可達(dá)或其他方式判斷GSN不支持GTPv1。 實(shí)現(xiàn)中節(jié)點(diǎn)可以保存一個(gè)名單,記錄最近聯(lián)系的只支持GTPv0的GSN,和返回“版本不支持”消息的節(jié)點(diǎn)所支持的版本。 支持GTPv0和GTPv1的節(jié)點(diǎn)會(huì)同時(shí)在相關(guān)端口上監(jiān)聽并處理GTPv0/v1消息。 |
|