<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > TD-SCDMA網(wǎng)絡(luò )測試儀中SCCP協(xié)議解碼

TD-SCDMA網(wǎng)絡(luò )測試儀中SCCP協(xié)議解碼

作者: 時(shí)間:2012-08-24 來(lái)源:網(wǎng)絡(luò ) 收藏

0、引言

本文引用地址:http://dyxdggzs.com/article/193334.htm

隨著(zhù)第三代移動(dòng)通信系統相關(guān)技術(shù)在中國飛速發(fā)展,基于該標準的網(wǎng)絡(luò )及終端設備已經(jīng)研制成功,并已能滿(mǎn)足商用要求?,F階段,測試設備是最薄弱的環(huán)節,一方面,這直接影響到產(chǎn)業(yè)鏈的完整性;另一方面,也影響到電信運營(yíng)商對網(wǎng)絡(luò )設備的部署與檢測,基于這樣的現實(shí),具有自主知識產(chǎn)權的TD-SCDMA的研制具有重要意義。

TD-SCDMA中的信令分析,針對的是無(wú)線(xiàn)接入網(wǎng)(UTRAN)和核心網(wǎng)(CN)的協(xié)議棧[1],其中包含一系列的傳輸層和無(wú)線(xiàn)層協(xié)議。儀表協(xié)議分析的基礎是要能夠實(shí)現對所接收到的網(wǎng)絡(luò )數據進(jìn)行譯碼解析,在此功能準確無(wú)誤的基礎上,儀表才可以進(jìn)行更高級的統計追蹤功能。在進(jìn)行協(xié)議分析時(shí),鑒于協(xié)議之間消息格式和處理機制的不同,以及軟件模塊化的實(shí)現要求,采取以單個(gè)協(xié)議進(jìn)行模塊封裝的辦法是更有效的,其好處在于能夠忽略協(xié)議間功能和格式的細微差別,對單個(gè)協(xié)議的分析方法也能在很大程度上推廣到其他協(xié)議。以UT-RAN內部的協(xié)議棧為例,從下至上分為信令適配層、傳輸層和無(wú)線(xiàn)網(wǎng)絡(luò )層[2],其中信令適配層和傳輸層的協(xié)議在標準中都有

明確的消息結構,而無(wú)線(xiàn)網(wǎng)絡(luò )層的協(xié)議是采用ASN1(abstract syntax notation)語(yǔ)法進(jìn)行描述[3],導致消息封裝的方法有所不同,進(jìn)而帶來(lái)方式上的差異。

我們在本文中研究的主要內容是TD-SCDMA的CN以及UTRAN協(xié)議棧中信令連接控制部分協(xié)議(signalling connection control part,)消息的分析,一方面描述如何根據協(xié)議標準中規定的協(xié)議消息結構進(jìn)行;另一方面結合實(shí)際情況探討協(xié)議上層PDU的獲取方法。

1、協(xié)議消息概述

SCCP協(xié)議是7號信令用戶(hù)部分的一種補充功能級,SCCP協(xié)議位于消息傳輸部分協(xié)議(message transfer part,MTP)之上,為MTP提供附加功能。

在TD-SCDMA的CN以及UTRAN的協(xié)議棧中,都包含有SCCP協(xié)議,該協(xié)議位于協(xié)議棧的無(wú)線(xiàn)網(wǎng)絡(luò )控制平面中[3],如圖1所示。

圖1 Iu接口無(wú)線(xiàn)網(wǎng)絡(luò )控制平面的協(xié)議棧

SCCP協(xié)議處于無(wú)線(xiàn)協(xié)議無(wú)線(xiàn)接入網(wǎng)絡(luò )應用部分(radio access network application part,RANAP)以下,ATM適配層協(xié)議以上,位于傳輸層,對于網(wǎng)絡(luò )的數據傳輸起著(zhù)相當重要的作用。

ITU-T在不改變原有MTP功能的基礎上,增加了SCCP,目的就是在信令網(wǎng)中建立邏輯信令連接,以傳送與電路無(wú)關(guān)的消息。因為隨著(zhù)通信網(wǎng)和通信新業(yè)務(wù)的不斷發(fā)展,越來(lái)越多的業(yè)務(wù)需要和遠端網(wǎng)絡(luò )節點(diǎn)直接傳送控制消息,這些消息和呼叫連接的電路無(wú)關(guān),甚至根本與呼叫無(wú)關(guān),如現在通信網(wǎng)中開(kāi)放的智能網(wǎng)業(yè)務(wù)、移動(dòng)電話(huà)的漫游業(yè)務(wù)、數據庫以及網(wǎng)絡(luò )的運行、管理和維護等,而這些業(yè)務(wù)僅僅用MTP已無(wú)法滿(mǎn)足要求。[3]

SCCP能提供4類(lèi)業(yè)務(wù),2類(lèi)無(wú)連接業(yè)務(wù),2類(lèi)面向連接業(yè)務(wù)。無(wú)連接業(yè)務(wù)類(lèi)似于分組交換網(wǎng)中的數據報業(yè)務(wù);面向連接業(yè)務(wù)類(lèi)似于分組交換網(wǎng)中的虛電路業(yè)務(wù)。

無(wú)連接業(yè)務(wù)不需要預先建立連接就可以在信令網(wǎng)中傳送信令消息。無(wú)連接業(yè)務(wù)又分為基本無(wú)連接業(yè)務(wù)和有序的無(wú)連接業(yè)務(wù),也稱(chēng)為0類(lèi)業(yè)務(wù)和1類(lèi)業(yè)務(wù)。0類(lèi)業(yè)務(wù)不保證消息的順序傳輸,各個(gè)消息被獨立地進(jìn)行傳送,相互不發(fā)生關(guān)系,因而在這種情況下,不能保證按照發(fā)送的順序把消息送到目的地信令點(diǎn);1類(lèi)業(yè)務(wù)給來(lái)自同一消息流的數據信息附上了同一信令鏈路選擇SLS,即經(jīng)由同一信令鏈路傳送,因此可以保證按照發(fā)送的順序把消息送到目的地信令點(diǎn)。

面向連接業(yè)務(wù)在傳送消息之前,需要在源點(diǎn)和目的點(diǎn)之間建立一條消息傳送路徑,即邏輯連接。這種方式適合傳送大批量的數據。面向連接業(yè)務(wù)又分為基本面向連接業(yè)務(wù)和帶流量控制的面向連接業(yè)務(wù),即2類(lèi)業(yè)務(wù)和3類(lèi)業(yè)務(wù)。它們共同的特點(diǎn)是保證消息發(fā)送和接收的順序一致。此外,3類(lèi)業(yè)務(wù)具有流量控制功能、消息丟失及錯序的檢測功能等。在2類(lèi)業(yè)務(wù)中,由于各個(gè)數據信息沒(méi)有順序號,因此不能完成順序控制和流量控制。

SCCP是在不改變原有MTP功能的基礎上增加的,它對MTP的改進(jìn)主要有以下功能:①能夠傳送各種與電路無(wú)關(guān)的信令消息;既支持無(wú)連接業(yè)務(wù),又支持面向連接業(yè)務(wù);②具有增強的尋址功能,擴大了業(yè)務(wù)范圍;③具有地址翻譯功能,可以在全球互連的不同7號信令網(wǎng)之間實(shí)現信令的直接傳輸;④具有管理功能,可以管理SCCP子系統狀態(tài)。

根據ITU-T Q.713,SCCP主要的消息類(lèi)型[4]如表1所示。

表1 SCCP消息類(lèi)型

一條完整SCCP消息包含以下4部分,消息類(lèi)型、必選固定部分、必選可變長(cháng)部分以及可選部分,結構如圖2所示。

圖2 SCCP消息整體結構

Message type字段的長(cháng)度為1個(gè)字節,位于SCCP消息的開(kāi)始,任何對SCCP消息的分析都要以判斷消息類(lèi)型作為第一步。

SCCP協(xié)議是7號信令中的重要協(xié)議,處于無(wú)線(xiàn)接入網(wǎng)的Iu接口以及核心網(wǎng)接口中。網(wǎng)絡(luò )接口的協(xié)議之間是以協(xié)議棧的方式進(jìn)行組合的,而信令數據也是按照協(xié)議棧的分層關(guān)系進(jìn)行封裝的,由于SCCP層處于協(xié)議棧的中間,它上層協(xié)議的數據將作為SCCP的凈荷數據封裝在SCCP消息中,而SCCP消息整體又作為其下層協(xié)議消息的凈荷封裝進(jìn)整條二進(jìn)制數據。在實(shí)際的過(guò)程中,正是要按照協(xié)議棧由底向上的順序對數據進(jìn)行分析。以Iu接口為例,無(wú)線(xiàn)網(wǎng)絡(luò )層RANAP協(xié)議處于SCCP層以上,因此,RANAP消息被裝入SCCP的DATA數據中,SCCP消息則作為MTP3B協(xié)議消息的凈菏繼續被下層協(xié)議封裝?;谶@種不同協(xié)議間數據的封裝關(guān)系,以解碼為基礎的信令分析還有另外一個(gè)需求,即定位和提取上層協(xié)議的數據。協(xié)議分析進(jìn)行模塊劃分決定了解碼是每個(gè)協(xié)議自身完成的任務(wù),而數據總是由下層提供,也就是說(shuō)每個(gè)協(xié)議層應該有2個(gè)基本的功能,一個(gè)是解碼,另一個(gè)就是定位和提取上層數據。

2、SCCP協(xié)議消息的解碼分析

SCCP協(xié)議消息的詳細結構如圖3所示。

33.jpg

圖3 SCCP消息詳細結構

圖3中,給出了SCCP協(xié)議消息的詳細消息結構,從圖3中可以看出每條消息是由4部分構成:消息類(lèi)型+必選固定部分+必選可變部分+可選部分。下面對這4部分規則分別進(jìn)行解釋。

●Message type code:消息類(lèi)型字段只有一個(gè)字節,該字段是所有SCCP消息必須包含,SCCP協(xié)議的消息類(lèi)型已經(jīng)在前面的表格中有了說(shuō)明。

●Mandatory fixed part:必選固定部分參數是指那些在消息中必須存在的并且位置、參數長(cháng)度以及出現順序都由消息類(lèi)型確定好的參數。因為這些參數的出現位置和長(cháng)度都是固定的,因此在消息中并不需要額外的字段用來(lái)表示它們的類(lèi)型和長(cháng)度,只需在相應的位置提供參數內容即可。

●Mandatory variable part:必選可變部分參數是指那些在消息中必須存在的但是參數長(cháng)度可變的參數,每個(gè)必選可變部分參數都有一個(gè)指針指向該參數內容開(kāi)始的位置,在不同的消息中,必選可變部分參數指針的順序在消息中是固定排列好的,因此對于必選可變部分參數,也不需要提供參數類(lèi)別,雖然必選可變部分參數的指針順序是固定的,但是其內容順序有可能與指針順序不同,另外,因為這種參數的長(cháng)度可變,所以每個(gè)參數內容中都包含1個(gè)或2個(gè)字節用來(lái)表示參數長(cháng)度。

●Optional part:可選部分參數是指那些在消息中定義了的可能出現也可能不出現的參數,整個(gè)可選部分的起始位置由必備可變部分參數的最后一個(gè)指針來(lái)指明,該指針指示的是可選部分第一個(gè)參數開(kāi)始位置的指針。如果消息類(lèi)型指示沒(méi)有可選部分參數存在,那么這個(gè)指針將不存在,如果消息類(lèi)型指示有可選部分存在,但對于一條具體消息時(shí)并不包含這些可選參數,那么該指針所在字段應該全為0??蛇x部分可以包含固定長(cháng)度參數或者可變長(cháng)度參數。另外,可選部分參數在消息中的發(fā)送順序是不受限制的,比如一條SCCP消息3個(gè)可選部分參數,這3個(gè)參數出現的順序和協(xié)

議標準中描述的順序可以不同,協(xié)議標準中只是說(shuō)明這3個(gè)是可選的參數,并沒(méi)有規定其出現的順序。鑒于以上描述的可選部分參數的特點(diǎn),任何一個(gè)可選部分參數都必須包括參數名,參數內容,如果參數長(cháng)度可變,還必須包括參數長(cháng)度。

●End of optional parameters octet:在可選部分參數的最后,有一個(gè)長(cháng)度為1字節,內容為全0的end of parameters參數,這個(gè)參數用來(lái)表示可選部分參數的結束,該參數只有當可選部分參數在消息中存在的時(shí)候才出現。

1)消息內容的發(fā)送順序:在SCCP消息中,所有的參數都包含整數個(gè)字節,參數的格式都是按照字節棧的形式,在實(shí)際消息的傳送過(guò)程中,先發(fā)送的是協(xié)議標準中描述的位于棧頂的低序號字節,最后發(fā)送的是位于棧底的高序號字節。

2)長(cháng)度參數的解碼規則:長(cháng)度參數字段被解碼為二進(jìn)制值,用來(lái)表示參數內容字段的長(cháng)度,長(cháng)度參數字段的值不包括參數名稱(chēng)和參數長(cháng)度占用的2個(gè)字節。

3)指針的解碼規則:指針的二進(jìn)制值表示了該指針的高位字節與該指針所指的參數之間相隔的字節數。

在SCCP協(xié)議中,消息都是遵循上面描述的固定結構。對某一條具體的消息,比如CR(conneetion qequest),在Q.713協(xié)議中對消息中包含的參數做了規定[5],如表2所示。

表2 SCCP CR消息參數表

2.jpg

SCCP消息中消息類(lèi)型,必選固定部分參數和必選可變部分參數都是按照固定的順序規定好的,而可選部分參數的情況并不固定,消息中只規定了可能包含的可選參數,但對可選參數在實(shí)際消息中是否出現以及出現的順序并沒(méi)有說(shuō)明。

在編寫(xiě)解碼函數的程序時(shí),由于SCCP協(xié)議最底層的解碼單位是參數級別,即像Message type,Source local reference和Protocol class等參數,各自都有對應的參數解碼函數,因此對于消息類(lèi)型參數,必選固定部分參數,必選可變部分參數,只要按照順序調用參數解碼函數就可以完成解碼,真正復雜的是對可選參數的處理,因為消息定義中的可選參數在實(shí)際消息中是否出現以及參數出現的順序是不固定的,唯一確定的是,可以通過(guò)可選部分參數指針找到可選部分參數開(kāi)始的位置,然后通過(guò)消息總長(cháng)度減去固定部分長(cháng)度得到可選部分長(cháng)度,最后再根據可選參數部分的結構通過(guò)循環(huán)處理的方式進(jìn)行解碼,每次循環(huán)處理的過(guò)程是先判斷可選參數的類(lèi)型,然后調用相應的參數解碼函數。下面用一個(gè)流程圖來(lái)說(shuō)明CR消息的解碼過(guò)程,此過(guò)程可以推廣到所有其他SCCP消息的解碼,如圖4所示。

44.jpg

圖4 SCCP協(xié)議CR消息的解碼流程圖

3、實(shí)際測試中的SCCP消息組裝問(wèn)題

網(wǎng)絡(luò )中的SCCP消息長(cháng)度一般在100個(gè)字節內,SCCP消息需要封裝上層RANAP或者RNSAP的數據,而上層數據通常不會(huì )很長(cháng),一條SCCP消息完全可以容納,但在少數情況下,上層數據需要分段由幾條SCCP消息中傳輸,而多條SCCP消息再分散在底層的ATM信元中傳送。這個(gè)現象從邏輯上是容易理解的,但從數據分析的角度,尤其是從數據接收端的角度來(lái)看,處理就要復雜很多,因為盡管數據分段的情況相對較少,但是信令分析注重消息解析的準確性和信令流程的連貫性,為了達到這2個(gè)要求,就要保證接收端能夠準確完成數據的組裝,在此基礎上,對SCCP層的分析以及更高層如RANAP協(xié)議的分析才能夠保證。

在SCCP協(xié)議的消息中,絕大部分都包含data或longdata參數,這2個(gè)參數表示SCCP的用戶(hù)數據(service data unit,SDU),也叫做SCCP上層協(xié)議的協(xié)議數據單元(protocol olata unit,PDU)。SCCP的大多數消息都包含數據參數,從而加大了獲取PDU的難度,另外,消息類(lèi)型的不同導致獲取的方法也不同,包含Data參數的消息分類(lèi)如表3所示。

表3 包含Data參數的消息分類(lèi)表

3.jpg

當調用SCCP協(xié)議模塊的獲取上層PDU函數時(shí),首先判斷消息類(lèi)型,如果不在

以上消息類(lèi)型中,則不存在用戶(hù)數據,那么僅僅完成解碼即可;如果是以上消息類(lèi)型中的一種,那么就需要調用相應的函數進(jìn)行獲取SDU的操作。由于包含用戶(hù)數據的消息比較多,為了處理方便和邏輯清晰,在模塊實(shí)現時(shí)為表3中的消息定義了各自的函數。

表3中有兩列內容分別是輔助參數和它們的存在性。輔助參數是指在相應消息中對于獲取SDU有幫助的參數,而存在性就表示該輔助參數在相應消息中的存在可能,F和V表示一定存在,0表示可能存在。輔助參數的作用主要是用來(lái)告知消息中包含的Data是完整的還是需要分段傳送的,如果完整,那么取得數據后函數就把PDU數據返回;否則要對來(lái)自多條SCCP消息的多個(gè)Data進(jìn)行組裝。在表3中用A,B,C,D對消息處理進(jìn)行了分類(lèi),每個(gè)類(lèi)型代表一種處理的復雜程度如表4所示。

表4 獲取SDU分析表a

根據獲取Data數據的復雜程度,把相應函數分為4類(lèi)。每類(lèi)函數根據處理的復雜程度,都需要輔助函數的支持,例如,類(lèi)型2中對DT1和DT2的處理,這2條消息中都有參數包含more data indicator字段,其作用是指示本條數據消息后面是否有屬于同一個(gè)SDU的數據,因此該參數是DT1和DT2消息獲取數據的重要操作依據。對于其他類(lèi)型的函數,輔助參數起著(zhù)同樣的作用,另外個(gè)別輔助參數本身是可選的,如類(lèi)型4函數中的輔助參數segments,因此在類(lèi)型4函數處理時(shí)需要判斷的條件就很多,首先需要知道segments參數是否存在,存在的話(huà)才有組裝的可能,不存在的話(huà)說(shuō)明數據不需要組裝。4類(lèi)函數對參數的需要性如表5所示。

表5 獲取SDU分析表b

在實(shí)際的SCCP消息中,大多都是用DT1消息來(lái)承載上層數據,獲取DT1消息的函數屬于表5中的第2類(lèi),下面就以該消息為例來(lái)說(shuō)明SCCP協(xié)議獲取上層PDU的方法,DT1的格式[5]如表6所示。

表6 DT1消息結構

第1個(gè)參數(Message type)表示消息類(lèi)型,根據消息類(lèi)型表格可知,DT1消息類(lèi)型為OX0000 0110即6;第2個(gè)參數(Destination local reference)是目的地本地參考,表示目的地地址信息;第3個(gè)參數(Segmenting/reassembling)叫做分割/組裝,長(cháng)度是1個(gè)字節,格式如圖5所示。

圖5 Segmenting/reassembling參數結構

該參數長(cháng)度為一個(gè)字節,最低位是信息字段M,為0表示消息后面沒(méi)有分段的數據;為1則表示有。圖6表示在模擬真實(shí)的網(wǎng)絡(luò )環(huán)境,以DT1數據的傳輸為例,說(shuō)明所有可能的情況。

66.jpg

圖6 DT1數據在網(wǎng)絡(luò )中傳送的可能情況示意圖

DT1消息在網(wǎng)絡(luò )中的傳送共4種可能,每種類(lèi)型中右邊的表示本條DT1消息,圖6左邊的表示上條DT1消息,兩消息中都有M指示,下面分別說(shuō)明。

類(lèi)型1:本條DT1數據和前面的DT1是連續的,另外本條DT1數據后面還有連續的數據,在此情況下,應該把本條DT1數據串接在前面的D

T1后面,并且繼續等待后面的包含同類(lèi)內容的數據。

類(lèi)型2:本條DT1數據和前面的DT1是連續的,另外本條DT1數據后面沒(méi)有連續的數據,在此情況下,應該把本條DT1數據串接在前面的DT1后面,構成一個(gè)完整的上層數據PDU交給上層處理。

類(lèi)型3:本條DT1數據和前面的DT1不是連續的,另外本條DT1數據后面有連續的數據,在此情況下,應該把本條DT1數據保存起來(lái)等待后面同類(lèi)數據進(jìn)行組裝。

類(lèi)型4:本條DT1數據和前面的DT1不是連續的,另外本條DT1數據后面沒(méi)有連續的數據,在此情況下,應該用本條DT1數據作為上層PDU。

下面用流程圖的形式來(lái)說(shuō)明獲取DT1消息上層數據的程序處理過(guò)程,如圖7所示。

77.jpg

圖7 獲取DT1消息上層PDU函數流程圖

在真實(shí)的網(wǎng)絡(luò )環(huán)境中,在使用CR消息建立完SCCP連接后,SCCP協(xié)議出現最多的就是DT1,SCCP層的主要作用是封裝無(wú)線(xiàn)層的信令數據,而上層數據才是對分析網(wǎng)絡(luò )以及應用最有價(jià)值的信息?;谶@樣的現實(shí),分析DT1消息有重要意義,盡管在SCCP協(xié)議中還有其他消息也包含數據信息,但在實(shí)際信令中出現的情況并不多。

5、結束語(yǔ)

通過(guò)對SCCP協(xié)議解碼和獲取上層數據的分析,一方面為模塊實(shí)現提供了設計方案,另一方面可以把SCCP協(xié)議的分析方法推廣到TD-SCDMA標準協(xié)議棧中其他傳輸層的協(xié)議分析中。在TD-SCDMA網(wǎng)絡(luò )分析儀的軟件模塊中,采用面向對象編程方法[7]對SCCP部分進(jìn)行了實(shí)現,該模塊在儀表測試的過(guò)程中表現穩定,通過(guò)實(shí)踐論證了設計方案的正確性。

參考文獻:

[1] KAMMERLANDER K.Benefits and implementation of TD-SCDMA[EB/OL].(2000-04-12)[2006-11-28].http://IEEExplore.ieee.org/ie15/7138/1922l/00890848.pdf?isnurnber=arnumber=890848.

[2] 3GPP TS25.401V3.10.0.UTRAN overall description [EB/OL].(2002-06-06)[2006-11-23].http://www.3gpp.org/ftp/Specs/archlye/25_series/25.401.

[3] 李小文.李貴勇.TD-SCDMA第三代移動(dòng)通信系統、信令及實(shí)現[M].北京.人民郵電出版社,2003.

[4] 羅進(jìn)文.信令網(wǎng)技術(shù)教程[M].北京.人民郵電出版社,2003.9.

[5] ITU-T Q.713.Signalling connection control part for mats and Codes[EB/OL].(2002-01-01)[2006-11-23].http://electronics.ihs.com/document/abstract/NROVWAAAAAAAAAA.

[6] MIRSA R,BAIER P W.A test system for evaluation of the WCDMA technology[J].IEEE Trans.Commum,2004,(8):16-20.

[7] 錢(qián)能.c++程序設計教程[M].北京:清華大學(xué)出版社.2001.6.

c++相關(guān)文章:c++教程


網(wǎng)線(xiàn)測試儀相關(guān)文章:網(wǎng)線(xiàn)測試儀原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>