一種基于dcc協議的ipv6地址編碼、解碼方法及對應的系統的制作方法
【專利摘要】本發明公開了一種基于DCC協議的IPV6地址編碼、解碼方法及其對應的系統,其中,所述的編碼方法包括:加載在DCC協議中配置的各AVP屬性的配置文件;對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數;通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各AVP;從DCC消息中解析出的各AVP中提取出具有IPV6地址特性的AVP,并找到該AVP對應的編碼函數;調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理,形成編碼后的DCC消息流輸出。通過本發明,實現了基于DCC協議對IPV6地址進行編解碼,可以從技術上解決網絡實名制問題,此時的IP資源不再緊張,完全可以為每個用戶分配一個固定的IPV6地址。
【專利說明】
_種基于DGG協議的IPV6地址編碼、解碼方法及對應的系統
技術領域
[0001]本發明涉及網絡通信技術領域,具體涉及一種基于DCC協議的IPV6地址編碼、解碼方法及其對應的系統。
【背景技術】
[0002]從計算機技術發展、因特網規律和網絡傳輸速率等方面來看,現行的IPV4都已經不適用了。其中最主要的問題就是IPV4的32比特的IP地址空間已經無法滿足迅速膨脹的因特網規模。因此,IPV6協議在電信核心網以及終端上的應用會出現并且越來越多。
[0003]IPv6地址為128位長,通常寫作8組,每組為四個十六進制數的形式。例如:FE80:0000:0000:0000: AAAA: 0000:00C2:0002是一個合法的IPv6地址。IPv6地址可以用零壓縮法進行長度的縮減。
[0004]零壓縮法的含義為:如果地址中幾個連續段位的值都是0,那么這些O就可以簡單的以::來表示。那么上述地址就可以寫成FE80:: AAAA: 0000:00C2:0002的簡化方式。但零壓縮法在地址中只能用一次。另外,地址中每個段位中前導的零也可以省略,那么再次簡化后即為FE80:: AAAA: O: C2:2形式。
[0005]DCC協議的編解碼系統中,IP地址使用的數據類型為Address。它以一個可變長字符串為基礎,前兩個字節為ddressType,從第三個字節開始表示地址,每一個字節值表示IP地址的8位長。這樣,IPV6地址就使用16個字節來表示。
[0006]目前,DCC協議的編解碼系統還無法對IPV6地址進行處理。但隨著電信核心網的發展,必然使用IPV6地址,這樣就要求編解碼系統盡快支持此類應用場景。
【發明內容】
[0007]本發明所要解決的技術問題是提供一種基于DCC協議的IPV6地址編碼、解碼方法及其對應的系統,能夠解決現有技術的不足。
[0008]本發明解決上述技術問題的技術方案如下:
[0009 ] 一方面,本發明提供了一種基于DCC協議的IPV6地址編碼方法,包括:
[0010]Sla、加載在DCC協議中配置的各AVP屬性的配置文件;
[0011 ] S2a、對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數;
[0012]S3a、通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各AVP;
[0013]S4a、從DCC消息中解析出的各A VP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的編碼函數;
[0014]S5a、調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理,形成編碼后的DCC消息流輸出。
[0015]另一方面,本發明提供了一種基于DCC協議的IPV6地址解碼方法,包括:
[0016]Slb、接收編碼后的DCC消息流,并解析該DCC消息流中的各AVP;
[0017]S2b、從解析出的各A VP中提取出具有IPV6地址特性的AVP,并找到該AVP對應的解碼函數;
[0018]S3b、調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼處理,得到解碼后的IPV6值。
[0019]再一方面,本發明提供了一種基于DCC協議的IPV6地址編碼系統,包括:
[0020]配置文件加載單元,用于加載在DCC協議中配置的各AVP屬性的配置文件;
[0021]函數配置單元,用于對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數;
[0022]第一解析單元,用于通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各 AVP;
[0023 ]第一查找單元,用于從DCC消息中解析出的各A VP中提取出具有IP V6地址特性的AVP,并查找到該AVP對應的編碼函數;
[0024]編碼處理單元,用于調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理;
[0025]輸出單元,用于將編碼后的DCC消息流輸出。
[0026]又一方面,本發明提供了一種基于DCC協議的IPV6地址解碼系統,包括:
[0027]第二解析單元,用于接收編碼后的DCC消息流,并解析該DCC消息流中的各AVP;
[0028]第二查找單元,用于從解析出的各AVP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的解碼函數;
[0029]解碼單元,用于調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼處理,得到解碼后的IPV6值。
[0030]本發明提供的一種基于DCC協議的IPV6地址編碼、解碼方法及其對應的系統,針對DCC協議的配置文件中具有IPV6地址特性的AVP,通過在配置文件中配置這些AVP對應的編碼函數和解碼函數,對DCC消息流中的IPV6地址進行編碼和解碼處理,形成DCC消息流,從而實現了運營系統中的數據流轉,實現了基于DCC協議對IPV6地址進行編解碼,可以從技術上解決網絡實名制問題,此時的IP資源不再緊張,完全可以為每個用戶分配一個固定的IPV6地址。
【附圖說明】
[0031 ]圖1為本發明實施例一的一種基于DCC協議的IPV6地址編碼方法流程圖;
[0032]圖2為本發明實施例二的一種基于DCC協議的IPV6地址解碼方法流程圖;
[0033]圖3為基于DCC協議的IPV6地址編碼、解碼的整個過程示意圖;
[0034]圖4為本發明實施例三的一種基于DCC協議的IPV6地址編碼系統示意圖;
[0035]圖5為本發明實施例四的一種基于DCC協議的IPV6地址進行解碼系統示意圖。
【具體實施方式】
[0036]以下結合附圖對本發明的原理和特征進行描述,所舉實例只用于解釋本發明,并非用于限定本發明的范圍。
[0037]實施例一、一種基于DCC協議的IPV6地址編碼方法。以下結合圖1對本實施例提供的編碼方法進行說明。
[0038]參見圖1,本實施例提供的編碼方法包括:SIa、加載在DCC協議中配置的各AVP屬性的配置文件。
[0039 ] S2a、對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數。
[0040] S3a、通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各AVP。
[0041 ] S4a、從DCC消息中解析出的各A VP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的編碼函數。
[0042]S5a、調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理,形成編碼后的DCC消息流輸出。
[0043]具體的,將DCC協議中配置的各AVP屬性的config.xml配置文件加載在內存中,其中,AVP通常具有IPV4地址特性或者IPV6地址特性或者其它的地址特性。對于配置文件中具有IPV6地址特性的AVP,配置該AVP對應的編碼函數和解碼函數,其中,一個地址對應一個AVP,一個AVP配置其對應的編碼函數和解碼函數。
[0044]將原始的DCC消息通過API接口加載到內存中,依次解析原始DCC消息中的各AVP,并從解析出的各AVP種提取出具有IPV6地址特性的AVP,并根據前述的配置查找到具有IPV6地址特性的AVP對應的編碼函數。分別調用各AVP對應的編碼函數,對原始DCC消息中的對應IPV6地址進行編碼處理。具體的編碼處理過程為:對原始DCC消息中的IPV6地址的128位,按照每8位一個字節進行分段,總共得到16個字節;對分段后的每一個字節作十六進制到十進制的轉換,將每一個字節有十六進制轉換為十進制,即每一個字節為O到255之間的數值,得到十進制的16個字節的IPV6地址;從轉換后的十進制的16個字節的IPV6地址的第三個字節開始,將每一個十進制字節填寫到Address類型變量的字節中。對原始DCC消息中的每一個IPV6地址進行了編碼處理之后,通過API接口,將編碼后的IPV6地址保存到DCC消息流中,以DCC消息流的形式輸出給外部設備使用。
[0045]實施例二、一種基于DCC協議的IPV6地址解碼方法。以下結合圖2對本實施例提供的解碼方法進行說明。
[0046]參見圖2,本實施例提供的解碼方法包括:Slb、接收編碼后的DCC消息流,并解析該DCC消息流中的各AVP。
[0047]S2b、從解析出的各A VP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的解碼函數。
[0048]S3b、調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼處理,得到解碼后的IPV6值。
[0049]其中,調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼的具體過程為:對編碼后的DCC消息流中的IPV6地址的16個十進制字節,從第三個字節開始,依次將每一個十進制字節轉化為十六進制字節,并且每兩個字節之間以設定的第一間隔符分害J,形成8個段位的十六進制IPV6地址;對所述8個段位的十六進制IPV6地址字符串,從頭開始查找,若存在連續段位的字符串值均為0,則將該連續段位的字符串采用設定的第二間隔符,代替,形成零壓縮處理后的IPV6地址字符串;對于零壓縮處理后的IPV6字符串,從頭開始查找,若每一段位的開頭為O或00或000,則將開頭的O或00或000省略掉,形成省略前導零處理后的IPV6地址字符串。
[0050]其中,零壓縮處理以及省略前導零處理的一個具體例子為:比如,得到的8個段位的十六進制IPV6地址字符串為FE80: OOOO: 0000:0000: AAAA: 0000:00C2:0002為一個合法的IPV6地址,IPV6地址可以采用零壓縮法以及省略前導零壓縮法進行長度壓縮。零壓縮法的含義為:如果IPV6地址中幾個連續段位的值都是0,那么這些O就可以簡單的以::來表示。那么上述IPV6地址就可以寫成FE80::AAAA:0000:00C2:0002的簡化方式,但零壓縮法在IPV6地址中只能用一次。另外,IPV6地址中每個段位中前導的零也可以省略,那么再次簡化后即為FE80:: AAAA: O: C2:2形式。
[0051]參見圖3,對上述的基于DCC協議的IPV6地址編碼和解碼方法結合起來進行說明。首先讀取配置文件,并加載到內存,然后,讀取原始的DCC消息并加載到內存。判斷該原始的DCC消息時需要編碼處理還是需要解碼處理,當原始的DCC消息需要編碼處理時,解析DCC消息中的AVP,找到與該AVP匹配的編碼函數,采用編碼函數對IPV6地址進行編碼。具體的編碼過程為:對原始IPV6地址按位截取,每8位截取一次,得到16個字節,將每一字節進行十六進制到十進制的轉換,從第三個字節開始,將每一個十進制的字節填寫到Address類型變量的對應字節中。將編碼后IPV6地址通過API接口保存在DCC消息流中。當原始的DCC消息需要解碼處理時,解析DCC消息中的各AVP,找到該AVP匹配的解碼函數,采用解碼函數對IPV6地址進行解碼。具體的解碼過程為:讀取編碼后的IPV6地址,按字節循環,將字節中的十進制轉換為十六進制,并且每兩個字節以分隔符分割,并對分割后的IPV6地址進行零壓縮法處理和省略前導零處理,得到解碼后的IPV6地址,并通過API接口輸出。
[0052]實施例三、一種基于DCC協議的IPV6地址編碼系統。以下結合圖4對本實施例提供的編碼系統進行說明。
[0053]參見圖4,本實施例提供的編碼系統包括配置文件加載單元41、函數配置單元42、第一解析單元43、第一查找單元44以及編碼處理單元45,其中,編碼處理單元45包括分段模塊451、第一轉換模塊452和填寫模塊453。
[0054]配置文件加載單元41,用于加載在DCC協議中配置的各AVP屬性的配置文件。
[0055]函數配置單元42,用于對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數。
[0056]第一解析單元43,用于通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各A VP ο
[0057]第一查找單元44,用于從DCC消息中解析出的各AVP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的編碼函數。
[0058]編碼處理單元45,用于調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理。
[0059]編碼處理單元45包括分段模塊451,用于對原始DCC消息中的IPV6地址的128位,按照每8位一個字節進行分段,總共得到16個字節。
[0060]第一轉換模塊452,用于對分段后的每一個字節作十六進制到十進制的轉換,得到十進制的16個字節的IPV6地址。
[0061]填寫模塊453,用于從轉換后的十進制的16個字節的IPV6地址的第三個字節開始,將每一個十進制字節填寫到Address類型變量的字節中。
[0062]輸出單元46,用于通過API接口,將編碼后的IPV6地址保存至IjDCC消息流中,以供輸出給外部設備使用。
[0063]實施例四、一種基于DCC協議對IPV6地址進行解碼的系統。下面結合圖5對本實施例提供的解碼系統進行描述。
[0064]參見圖5,本實施例提供的解碼系統包括第二解析單元51、第二查找單元52和解碼單元53,其中,解碼單元53包括第二轉換模塊531、第一壓縮處理模塊532和第二壓縮處理模塊533 0
[0065]第二解析單元51,用于接收編碼后的DCC消息流,并解析該DCC消息流中的各AVP。
[0066]第二查找單元52,用于從解析出的各AVP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的解碼函數。
[0067]解碼單元53,用于調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼處理,得到解碼后的IPV6值。
[0068]解碼單元53包括第二轉換模塊531,用于對編碼后的DCC消息流中的IPV6地址的16個十進制字節,從第三個字節開始,依次將每一個十進制字節轉化為十六進制字節,并且每兩個字節之間以設定的第一間隔符分割,形成8個段位的十六進制IPV6地址。
[0069]第一壓縮處理模塊532,用于對所述8個段位的十六進制IPV6地址字符串,從頭開始查找,若存在連續段位的字符串值均為0,則將該連續段位的字符串采用設定的第二間隔符代替,形成零壓縮處理后的IPV6地址字符串。
[0070]第二壓縮處理模塊533,用于對于零壓縮處理后的IPV6字符串,從頭開始查找,若每一段位的開頭為O或00或000,則將開頭的O或00或000省略掉,形成省略前導零處理后的IPV6地址字符串。
[0071 ]本發明提供的一種基于DCC協議的IPV6地址編碼、解碼方法及其對應的系統,針對DCC協議的配置文件中具有IPV6地址特性的AVP,通過在配置文件中配置這些AVP對應的編碼函數和解碼函數,對DCC消息流中的IPV6地址進行編碼和解碼處理,形成DCC消息流,從而實現了運營系統中的數據流轉。本發明實現了基于DCC協議對IPV6地址進行編解碼,可以從技術上解決網絡實名制問題,此時的IP資源不再緊張,完全可以為每個用戶分配一個固定的IPV6地址。
[0072]在本說明書的描述中,參考術語“實施例一”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體方法、裝置或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、方法、裝置或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
[0073]以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【主權項】
1.一種基于DCC協議的IPV6地址編碼方法,其特征在于,包括: SIa、加載在DCC協議中配置的各屬性值對AVP屬性的配置文件; S2a、對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數; S3a、通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各AVP; S4a、從DCC消息中解析出的各A VP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的編碼函數; S5a、調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理,形成編碼后的DCC消息流輸出。2.如權利要求1所述的基于DCC協議的IPV6地址編碼方法,其特征在于,所述步驟S5a中對原始DCC消息中的IPV6地址進行編碼處理具體包括: 對原始DCC消息中的IPV6地址的128位,按照每8位一個字節進行分段,總共得到16個字-K-T ; 對分段后的每一個字節作十六進制到十進制的轉換,得到十進制的16個字節的IPV6地址; 從轉換后的十進制的16個字節的IPV6地址的第三個字節開始,將每一個十進制字節填寫到Address類型變量的字節中。3.如權利要求2所述的基于DCC協議的IPV6地址編碼方法,其特征在于,所述步驟S5a中形成編碼后的DCC消息流輸出具體包括: 通過API接口,將編碼后的IPV6地址保存到DCC消息流中,以便輸出給外部設備使用。4.一種基于DCC協議的IPV6地址解碼方法,其特征在于,包括: Slb、接收編碼后的DCC消息流,并解析該DCC消息流中的各AVP; S2b、從解析出的各AVP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的解碼函數; S3b、調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼處理,得到解碼后的IPV6地址并輸出。5.如權利要求4所述的基于DCC協議的IPV6地址解碼方法,其特征在于,所述步驟S3b中對編碼后的DCC消息流中的IPV6地址進行解碼處理具體包括: 對編碼后的DCC消息流中的IPV6地址的16個十進制字節,從第三個字節開始,依次將每一個十進制字節轉化為十六進制字節,并且每兩個字節之間以設定的第一間隔符分割,形成8個段位的十六進制IPV6地址; 對所述8個段位的十六進制IPV6地址字符串,從頭開始查找,若存在連續段位的字符串值均為O,則將該連續段位的字符串采用設定的第二間隔符代替,形成零壓縮處理后的IPV6地址字符串; 對于零壓縮處理后的IPV6字符串,從頭開始查找,若每一段位的開頭為O或OO或OOO,則將開頭的O或00或000省略掉,形成省略前導零處理后的IPV6地址字符串。6.一種基于DCC協議的IPV6地址編碼系統,其特征在于,包括: 配置文件加載單元,用于加載在DCC協議中配置的各AVP屬性的配置文件; 函數配置單元,用于對配置文件中的具有IPV6地址特性的AVP配置對應的編碼函數和解碼函數; 第一解析單元,用于通過API接口加載原始DCC消息,并依次解析所述DCC消息中的各AVP ; 第一查找單元,用于從DCC消息中解析出的各A VP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的編碼函數; 編碼處理單元,用于調用各AVP對應的編碼函數,對原始DCC消息中的IPV6地址進行編碼處理; 輸出單元,用于將編碼后的DCC消息流輸出。7.如權利要求6所述的基于DCC協議的IPV6地址編碼系統,其特征在于,所述編碼處理單元具體包括: 分段模塊,用于對原始DCC消息中的IPV6地址的128位,按照每8位一個字節進行分段,總共得到16個字節; 第一轉換模塊,用于對分段后的每一個字節作十六進制到十進制的轉換,得到十進制的16個字節的IPV6地址; 填寫模塊,用于從轉換后的十進制的16個字節的IPV6地址的第三個字節開始,將每一個十進制字節填寫到Address類型變量的字節中。8.如權利要求7所述的基于DCC協議的IPV6地址編碼系統,其特征在于,所述輸出單元具體用于: 通過API接口,將編碼后的IPV6地址保存到DCC消息流中,以供輸出給外部設備使用。9.一種基于DCC協議的IPV6地址解碼系統,其特征在于,包括: 第二解析單元,用于接收編碼后的DCC消息流,并解析該DCC消息流中的各AVP; 第二查找單元,用于從解析出的各AVP中提取出具有IPV6地址特性的AVP,并查找到該AVP對應的解碼函數; 解碼單元,用于調用對應的解碼函數,對編碼后的DCC消息流中的IPV6地址進行解碼處理,得到解碼后的IPV6地址并輸出。10.如權利要求9所述的基于DCC協議的IPV6地址解碼系統,其特征在于,所述解碼單元具體包括: 第二轉換模塊,用于對編碼后的DCC消息流中的IPV6地址的16個十進制字節,從第三個字節開始,依次將每一個十進制字節轉化為十六進制字節,并且每兩個字節之間以設定的第一間隔符分割,形成8個段位的十六進制IPV6地址; 第一壓縮處理模塊,用于對所述8個段位的十六進制IPV6地址字符串,從頭開始查找,若存在連續段位的字符串值均為0,則將該連續段位的字符串采用設定的第二間隔符代替,形成零壓縮處理后的IPV6地址字符串; 第二壓縮處理模塊,用于對于零壓縮處理后的IPV6字符串,從頭開始查找,若每一段位的開頭為O或00或000,則將開頭的O或00或000省略掉,形成省略前導零處理后的IPV6地址字符串。
【文檔編號】H04L29/12GK105872063SQ201610228476
【公開日】2016年8月17日
【申請日】2016年4月13日
【發明人】方輝盛
【申請人】北京思特奇信息技術股份有限公司