本發(fā)明涉及通信技術領域,尤其涉及一種數(shù)據(jù)包傳輸系統(tǒng)及方法。
背景技術:
隨著移動通信技術的發(fā)展,移動終端已經(jīng)成為用戶隨身攜帶,必不可少的電子設備。在運營商和各大oem(originalequipmentmanufacturer,原始設備制造商)廠商的牽頭下,3g(3rdgeneration,第三代移動通信技術)、4g(the4thgenerationmobilecommunicationtechnology,第四代移動通信技術)、ca(carrieraggregation,應用載波聚合技術)以及最新的5g(5th-generation,第五代移動通信技術)應運而生,這些技術的目的是為了提高用戶的上網(wǎng)帶寬。在此種背景下,一種提高用戶上網(wǎng)帶寬的方式也悄然而生,移動終端連接兩個調(diào)制解調(diào)器,每個調(diào)制解調(diào)器都有對應的sim(subscriberidentificationmodule)卡,且每個調(diào)制解調(diào)器都可以獨立上網(wǎng),然后在上層將用戶訪問的網(wǎng)絡根據(jù)實際情況進行兩個數(shù)據(jù)網(wǎng)絡的網(wǎng)速疊加,從而達到提高上網(wǎng)帶寬的目的。由于運營商對傳統(tǒng)用戶上網(wǎng)帶寬的壟斷和限制,終端廠商可以通過該網(wǎng)速疊加技術方案加大用戶上網(wǎng)帶寬,有效的整合了移動終端中兩張sim卡的上網(wǎng)資源,并實現(xiàn)了dsda(dualsimdualactive,雙卡雙通),以及雙卡雙lte(longtermevolution,長期演進)待機。
因此,為了使移動終端連接兩個調(diào)制解調(diào)器,需要將移動終端與含有調(diào)制解調(diào)器的外接設備進行連接。以實現(xiàn)移動終端和外接設備之間的數(shù)據(jù)包傳輸,但是,移動終端和外接設備的連接是在應用處理器中連接,而數(shù)據(jù)包從調(diào)制解調(diào)器發(fā)出,由于調(diào)制解調(diào)器之間跨設備,沒有物理鏈路相連,導致數(shù)據(jù)包無法傳輸。
技術實現(xiàn)要素:
本發(fā)明的主要目的在于提出一種數(shù)據(jù)包傳輸系統(tǒng)及方法,旨在解決移動終端通過外接設備實現(xiàn)雙lte通信過程中,外接設備和移動終端之間的數(shù)據(jù)包無法傳輸?shù)募夹g問題。
為實現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)包傳輸系統(tǒng),所述數(shù)據(jù)包傳輸系統(tǒng)包括移動終端,以及通過預設接口與所述移動終端連接的外接設備;所述移動終端包括第一應用處理器,以及與第一用戶識別卡和第二用戶識別卡連接的第一調(diào)制解調(diào)器,所述第一調(diào)制解調(diào)器包括第一攔截模塊和第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,所述第一應用處理器包括第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊和與所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器連接的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端;所述外接設備包括第二應用處理器和第二調(diào)制解調(diào)器,所述第二調(diào)制解調(diào)器包括第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器,所述第二應用處理器包括通過所述預設接口與所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊連接的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,以及與所述第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器連接的第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端;
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,用于在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中;
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。
可選地,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值;
若數(shù)據(jù)包的容量值超出所述預設閾值,則對所述數(shù)據(jù)包進行拆分,得到各個子數(shù)據(jù)包;
將拆分后的各個子數(shù)據(jù)包發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
可選地,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于在拆分后的各個子數(shù)據(jù)包中,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識;
將添加有標識的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
可選地,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,確定子數(shù)據(jù)包攜帶的標識信息;
若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊。
可選地,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于若接收到的子數(shù)據(jù)包中攜帶中間標識,則將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包組合發(fā)送至所述第一攔截模塊。
此外,為實現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)包傳輸方法,應用于移動終端以及通過預設接口與所述移動終端連接的外接設備,所述移動終端包括第一應用處理器,以及與第一用戶識別卡和第二用戶識別卡連接的第一調(diào)制解調(diào)器,所述第一調(diào)制解調(diào)器包括第一攔截模塊和第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,所述第一應用處理器包括第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊和與所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器連接的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端;所述外接設備包括第二應用處理器和第二調(diào)制解調(diào)器,所述第二調(diào)制解調(diào)器包括第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器,所述第二應用處理器包括通過所述預設接口與所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊連接的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,以及與所述第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器連接的第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端;所述方法包括:
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中;
將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。
可選地,所述將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端的步驟包括:
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值;
若數(shù)據(jù)包的容量值超出所述預設閾值,則對所述數(shù)據(jù)包進行拆分,得到各個子數(shù)據(jù)包;
將拆分后的各個子數(shù)據(jù)包發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
可選地,所述將拆分后的各個子數(shù)據(jù)包發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端的步驟包括:
第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在拆分后的各個子數(shù)據(jù)包中,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識;
將添加有標識的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
可選地,所述數(shù)據(jù)包傳輸方法還包括:
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,確定子數(shù)據(jù)包攜帶的標識信息;
若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊。
可選地,所述確定子數(shù)據(jù)包攜帶的標識信息的步驟之后,所述數(shù)據(jù)包傳輸方法還包括:
若接收到的子數(shù)據(jù)包中攜帶中間標識,則所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包組合發(fā)送至所述第一攔截模塊。
本發(fā)明提供一種數(shù)據(jù)包傳輸系統(tǒng)及方法,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,用于在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中,并將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。本發(fā)明中,通過第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將移動終端第一調(diào)制解調(diào)器中的數(shù)據(jù)包,傳輸至第一應用處理器中的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,再由第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,以便第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸至第二調(diào)制解調(diào)器,以實現(xiàn)移動終端和外接設備之間的數(shù)據(jù)包傳輸過程。
附圖說明
圖1為本發(fā)明一實施例的lte網(wǎng)絡架構(gòu)的示意圖;
圖2為本發(fā)明移動終端和外接設備通訊連接的一種實體結(jié)構(gòu)示意圖;
圖3為本發(fā)明移動終端和外接設備通訊連接的一種硬件結(jié)構(gòu)示意圖;
圖4為本發(fā)明移動終端和外接設備通訊連接的內(nèi)部硬件結(jié)構(gòu)示意圖;
圖5為本發(fā)明中數(shù)據(jù)包傳輸方法第一實施例的流程示意圖;
圖6為本發(fā)明中數(shù)據(jù)包傳輸方法第二實施例的流程示意圖;
圖7為本發(fā)明中數(shù)據(jù)包傳輸方法第三實施例的流程示意圖;
圖8為本發(fā)明中數(shù)據(jù)包傳輸方法第四實施例的流程示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互任意結(jié)合。
為了對本發(fā)明的技術特征、目的和效果有更加清楚的理解,現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。
在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,“模塊”與“部件”可以混合地使用。
圖1是本發(fā)明一實施例的lte網(wǎng)絡架構(gòu)的示意圖。本發(fā)明一實施例的lte網(wǎng)絡架構(gòu)包括:一個或多個移動終端(userequipment,ue)100、外接設備200、e-utran(evolvedumtsterrestrialradioaccessnetwork,演進的umts陸地無線接入網(wǎng))(圖中未標號)、演進分組核心(epc)(圖中未標號)、歸屬訂戶服務器(hss)107、網(wǎng)絡(例如,因特網(wǎng))(圖中未標號)以及電路交換系統(tǒng)(圖中未標號)。
e-utran包括演進b節(jié)點(enodeb)101和其它enodeb102。enodeb101提供朝向移動終端100的用戶面和控制面的協(xié)議終接。enodeb101可經(jīng)由x2接口連接到其他enodeb。enodeb101也可稱為基站、基收發(fā)機站、無線電基站、無線電收發(fā)機、收發(fā)機功能、基本服務集、擴展服務集、或其他某個合適的術語。enodeb101為移動終端100提供去往epc的接入點。
enodeb101通過s1接口連接到epc。epc包括移動管理實體(eem)104、其他移動管理實體106、服務網(wǎng)關103,以及分組數(shù)據(jù)網(wǎng)絡(pdn)網(wǎng)關105。移動管理實體104是處理移動終端100與epc之間的信令的控制節(jié)點。移動管理實體104提供承載和連接管理。所有用戶ip分組通過服務網(wǎng)關103來傳遞,服務網(wǎng)關103自身連接到pdn網(wǎng)關105。pdn網(wǎng)關105提供ueip地址分配以及其他功能。pdn網(wǎng)關105連接到網(wǎng)絡,例如,因特網(wǎng)。
電路交換系統(tǒng)包括交互解決方案模塊(iws)108、移動交換中心(msc)109、基站110和移動站111。在一個方面,電路交換系統(tǒng)可以通過iws和mme(mobilitymanagemententity,移動管理實體)與eps(evolvedpacketsystem,演進的分組系統(tǒng))進行通信。
移動終端100通過預設接口,如usb(universalserialbus,通用串行總線)數(shù)據(jù)線與外接設備200通訊連接。
圖2為本發(fā)明移動終端100和外接設備200通訊連接的實體示意圖。
如圖2所示,移動終端100通過usb數(shù)據(jù)線與外接設備200通訊連接,其中,所述移動終端包括但不限于手機、pc(personalcomputer,個人電腦)或pad(personaldigitalassistant,個人數(shù)字助理),所述外接設備200可選為無線上網(wǎng)卡或數(shù)據(jù)卡。
圖3為本發(fā)明實施例中移動終端和外接設備通訊連接的一種硬件結(jié)構(gòu)示意圖。
在本發(fā)明實施例中,移動終端100通過usb與外接設備200連接。移動終端100包括第一處理芯片001和與第一處理芯片001連接的第一射頻模塊12。其中,第一處理芯片001包括第一應用處理器(applicationprocessor)10、與第一用戶識別卡13和第二用戶識別卡14連接的第一調(diào)制解調(diào)器11(modem1)和rpm(resourcepowermanager,資源電源管理器)15。外接設備200包括第二處理芯片002和與第二處理芯片002連接的第二射頻模塊22。其中,第二處理芯片002包括第二應用處理器20和第二調(diào)制解調(diào)器(modem2)21。用戶識別卡為sim卡。
第一應用處理器10和第二應用處理器20的內(nèi)部框架包括應用層、框架層等,可處理復雜的邏輯操作以及進行任務分配等。在一個實施例中,應用處理器指android操作系統(tǒng),以及基于android操作系統(tǒng)的各種apk(androidpackage,安卓安裝包)。第一應用處理器10和第二應用處理器20通過usb實現(xiàn)連接,為用戶提供交互接口,將用戶輸入的操作指令(例如,用戶通過用戶界面輸入的有關啟動視頻通話的操作指令)傳輸給第一調(diào)制解調(diào)器11或第二調(diào)制解調(diào)器21,以實現(xiàn)兩個處理器之間數(shù)據(jù)的定義與傳遞,例如,進行兩個應用處理器的休眠、喚醒、同步的控制、開關機時芯片啟動順序的控制等。
第一應用處理器10通過usb與第二應用處理器20連接,以實現(xiàn)移動終端100與外接設備200之間的連接。在本發(fā)明實施例中,usb復用出三條數(shù)據(jù)通道,分別用于第一應用處理器10和第二應用處理器20之間用戶數(shù)據(jù)、信令數(shù)據(jù)和sim卡鑒權數(shù)據(jù)的交互。即第一應用處理器10和第二應用處理器20通過usb傳輸用戶數(shù)據(jù)、信令數(shù)據(jù)和sim卡鑒權數(shù)據(jù)。其中,用戶數(shù)據(jù)包括但不限于上網(wǎng)產(chǎn)生的數(shù)據(jù),圖片和聊天信息數(shù)據(jù);信令數(shù)據(jù)包括但不限于開關機的控制數(shù)據(jù),開關飛行模式的控制數(shù)據(jù),顯示狀態(tài)信號的控制數(shù)據(jù);sim卡鑒權數(shù)據(jù)包括但不限于imsi(internationalmobilesubscriberidentificationnumber,國際移動用戶識別碼)和ki(keyidentifier,鑒權密鑰)。
具體地,第一應用處理器10和第二應用處理器20通過otg(on-the-go)技術進行數(shù)據(jù)交互。通過otg技術,移動終端100中的第一調(diào)制解調(diào)器11可通過第二用戶識別卡14或第一用戶識別卡13中的sim卡參數(shù)來接入enodeb101,第二調(diào)制解調(diào)器21可通過第二用戶識別卡14或第一用戶識別卡13的sim卡參數(shù)來接入enodeb101,sim卡參數(shù)包括但不限于sim卡鑒權數(shù)據(jù)。
第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21包含各種網(wǎng)絡交互的網(wǎng)絡制式的協(xié)議棧,協(xié)議棧包含lte/wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)/gsm(globalsystemformobilecommunication,全球移動通信系統(tǒng))/td-scdma(timedivision-synchronouscodedivisionmultipleaccess,同步時分碼分多址)/cdma(codedivisionmultipleaccess,碼分多址)/edge(enhanceddatarateforgsmevolution,強型數(shù)據(jù)速率gsm演進技術)等通訊標準里邊規(guī)定的協(xié)議代碼。移動終端100通過協(xié)議與運營商網(wǎng)絡進行交互,即進行數(shù)據(jù)流量上網(wǎng)、volte(voiceoverlte)打電話或者cs(circuitswitched,電路交換)域打電話。第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21還用于對sim卡的管控等等。
在本發(fā)明實施例中,第一射頻模塊12用于將移動終端100傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給移動終端100。第二射頻模塊22用于將外接設備200傳輸?shù)臄?shù)據(jù)處理后傳給enodeb101(基站網(wǎng)絡),以及用于將enodeb101傳輸?shù)臄?shù)據(jù)處理后傳給外接設備200。
第一用戶識別卡13和第二用戶識別卡14用于提供移動通信業(yè)務(cs語音業(yè)務、ps數(shù)據(jù)業(yè)務和ps語音業(yè)務)所需的相關數(shù)據(jù),并在其內(nèi)部存儲用戶信息、短消息、執(zhí)行鑒權算法和產(chǎn)生加密密匙等。
第一用戶識別卡13和第二用戶識別卡14可存儲與不同或相同的技術標準相關聯(lián)的用戶信息。在特定非限制性實例中,技術標準可為2g通信技術,例如,gsm、edge)、3g通信技術(例如,wcdma、td-scdma)、4g通信技術(例如,lte),或任何其它移動通信技術(例如,4g等等)。第一用戶識別卡13和第二用戶識別卡14優(yōu)選為sim卡。
第一用戶識別卡13和第二用戶識別卡14在與移動終端100交互時,移動終端100檢測用戶識別卡存在與否的信號只在開機瞬時產(chǎn)生,當開機檢測不到用戶識別卡存在時,將提示“插入用戶識別卡”。移動終端100開機之后,移動終端100和用戶識別卡之間28秒通信一次,完成一些固定的通信檢查(例如,用戶識別卡是否在位等)。
由于目前的移動終端100只有一套射頻模塊,當移動終端100有兩張用戶識別卡時,移動終端100的兩張用戶識別卡使用該套射頻是分時復用的關系,并不能同時占用。例如,在兩張用戶識別卡全開時,其中一張用戶識別卡只處理gsm通話,而另一張用戶識別卡處理4g網(wǎng)絡信息,具體哪張用戶識別卡執(zhí)行何種網(wǎng)絡,在此不做限定。因此目前的射頻雙卡分時復用這種架構(gòu)僅做到了lte+gsm(即一張用戶識別卡對應的技術標準為lte,另一張用戶識別卡對應的技術標準為gsm)。
可以理解的是,現(xiàn)有的移動終端100雖然可以支持雙用戶識別卡,由于移動終端100在注冊網(wǎng)絡的情況下,兩張用戶識別卡支持的是不同技術標準的網(wǎng)絡,一張支持2g或3g,另一張支持4g,會使得移動終端100使用過程中,上網(wǎng)流量速度較慢。在本發(fā)明實施例中,移動終端100通過usb連接外接設備200,由于外接設備200包括第二調(diào)制解調(diào)器21和第二射頻模塊22,且第二射頻模塊22支持4g網(wǎng)絡,因此,移動終端100可通過usb與外接設備200交互,從而使得移動終端100具備雙lte功能(此時第一用戶識別卡13和第二用戶識別卡14管理的技術標準均為lte標準,第一射頻模塊12和第二射頻模塊22所涉及的無線接入技術為lte)。
移動終端100的rpm15用于管控各種資源,包括時鐘資源、總線資源、pmic(powermanagementic,電源管理集成電路,即各個芯片的電壓)、ddr(內(nèi)存分配),以及管理芯片的休眠喚醒的中斷和應用處理器喚醒的截止時間。移動終端100的各個子系統(tǒng),在需要資源時,向rpm15申請資源,各個子系統(tǒng)分別包括第一應用處理器10,第一調(diào)制解調(diào)器11、pronto(wifi/藍牙、nfc(nearfieldcommunication,近場通信)等)、lpass(lowpoweraudiosubsystem,低功耗音頻子系統(tǒng)),rpm15用來決定移動終端100系統(tǒng)的休眠狀態(tài),具體是,rpm15基于各個子系統(tǒng)的投票機制實現(xiàn),當各個子系統(tǒng)都投休眠票時,rpm15才可以使移動終端100整個系統(tǒng)進行休眠。而當移動終端100有一個子或者多個子系統(tǒng)投反對休眠的票,移動終端100整個系統(tǒng)都無法休眠。
在移動終端100的整個系統(tǒng)休眠之后,若是要重新啟動運行,需要喚醒第一應用處理器10以進行數(shù)據(jù)的傳輸交互。
在移動終端100和外接設備200通過usb通訊連接的情況下,喚醒方式可為以下三種:
1、第一應用處理器10接收到信令數(shù)據(jù)時,通過usb發(fā)送握手關鍵字給第二應用處理器20,以喚醒第二應用處理器20。
2、第二調(diào)制解調(diào)器21接收到用戶數(shù)據(jù)時,喚醒第二應用處理器20,由第二應用處理器20通過usb傳送握手關鍵字給第一應用處理器10,以喚醒第一應用處理器10。
3、第二調(diào)制解調(diào)器21周期性查找尋呼請求,以主動激活自己。若接收到尋呼請求,第二調(diào)制解調(diào)器21則喚醒第二應用處理器20,由第二應用處理器20通過usb發(fā)送握手關鍵字給第一應用處理器10,以喚醒第二應用處理器20。
需要說明的是,握手關鍵字可用固定字長的字符標識,是正常數(shù)據(jù)包中不會出現(xiàn)的字段。如可用0xf9f9f9或者0x9f9f9f表示握手關鍵字,通過握手關鍵字可喚醒處于睡眠狀態(tài)的第一應用處理器10或第二應用處理器20。
此外,第二調(diào)制解調(diào)器21還可以定期喚醒自己,以在移動終端100進行位置更新時,跟基站進行握手交互,此時不需要喚醒第一應用處理器10。
參照圖4,圖4為本發(fā)明移動終端和外接設備通訊連接的內(nèi)部硬件結(jié)構(gòu)示意圖。
如圖4可知,第一調(diào)制解調(diào)器11包括uim(useridentitymodule)驅(qū)動112、第一sim卡模塊代理113、遠程sim數(shù)據(jù)訪問_server(遠程數(shù)據(jù)訪問服務器)114、第一攔截模塊115和數(shù)據(jù)轉(zhuǎn)發(fā)_server1(第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器)116。第一應用處理器10包括數(shù)據(jù)轉(zhuǎn)發(fā)_client1(第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端)011和第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊012。
第二調(diào)制解調(diào)器21包括modem非接入層部分211、第二sim卡模塊代理213、遠程sim數(shù)據(jù)訪問_client(遠程數(shù)據(jù)訪問客戶端)214、第二攔截模塊215和數(shù)據(jù)轉(zhuǎn)發(fā)_server2(第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器)216,第二應用處理器20包括數(shù)據(jù)轉(zhuǎn)發(fā)_client2(第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端)021和第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊022。
其中,uim驅(qū)動112存儲了接入網(wǎng)絡必須的數(shù)據(jù),如uimid(identification,身份)、鑒權數(shù)據(jù)、imsi號等。
遠程sim數(shù)據(jù)訪問_server114和遠程sim數(shù)據(jù)訪問_client214用于實現(xiàn)第一調(diào)制解調(diào)器11和第二調(diào)制解調(diào)器21之間sim卡數(shù)據(jù)的傳輸。
第一攔截模塊115用于截取遠程sim數(shù)據(jù)訪問_server114中所需傳輸?shù)膕im卡數(shù)據(jù);第二攔截模塊215用于截取遠程sim數(shù)據(jù)訪問_client214中所需傳輸?shù)膕im卡數(shù)據(jù)。通過第一攔截模塊115和第二攔截模塊215實現(xiàn)遠程sim數(shù)據(jù)訪問_server214和遠程sim數(shù)據(jù)訪問_client114中sim卡數(shù)據(jù)的交互,具體地:第一攔截模塊115或第二攔截模塊215截取到數(shù)據(jù)之后,將截取的數(shù)據(jù)傳輸至第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116或第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216,以實現(xiàn)數(shù)據(jù)的傳輸。
第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216和第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端021相對應,用于實現(xiàn)第二調(diào)制解調(diào)器21和第二應用處理器20之間的數(shù)據(jù)傳輸;第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116和第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端011相對應,用于實現(xiàn)第一調(diào)制解調(diào)器11和第一應用處理器10之間的數(shù)據(jù)傳輸。
第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊012和第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊022用于通過usb實現(xiàn)第二應用處理器20和第一應用處理器10之間的數(shù)據(jù)傳輸。
在本發(fā)明實施例中,需要說明的是,由于移動終端100和外接設備200都包含有應用處理器和調(diào)制解調(diào)器,且第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116和第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216位于調(diào)制解調(diào)器,第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端011和第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端021位于應用處理器。
因此,本實施例中,數(shù)據(jù)傳輸過程既可以發(fā)生在移動終端,也可以發(fā)生在外接設備中,并且移動終端的數(shù)據(jù)轉(zhuǎn)發(fā)機制和外接設備的數(shù)據(jù)轉(zhuǎn)發(fā)機制一致,本發(fā)明的各個實施例中,以移動終端為執(zhí)行主體,詳述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116的數(shù)據(jù)傳輸過程,但是本領域技術人員應當理解的是,當用外接設備替換本發(fā)明中的移動終端時,同樣可以實現(xiàn)本發(fā)明的數(shù)據(jù)包傳輸過程。
其中,數(shù)據(jù)轉(zhuǎn)發(fā)_server的方式包括兩種:
移動終端:
方式一、移動終端的數(shù)據(jù)轉(zhuǎn)發(fā)_server1在接收到第一攔截模塊截取的數(shù)據(jù)時,將接收到的數(shù)據(jù)發(fā)送至本端數(shù)據(jù)轉(zhuǎn)發(fā)_client1中;
方式二、移動終端的數(shù)據(jù)轉(zhuǎn)發(fā)_server1在接收到數(shù)據(jù)轉(zhuǎn)發(fā)本端數(shù)據(jù)轉(zhuǎn)發(fā)_client1轉(zhuǎn)發(fā)的數(shù)據(jù)時,將接收到的數(shù)據(jù)發(fā)送至第一攔截模塊中。
外接設備:
方式一、外接設備的數(shù)據(jù)轉(zhuǎn)發(fā)_server2在接收到第二攔截模塊截取的數(shù)據(jù)時,將接收到的數(shù)據(jù)發(fā)送至本端數(shù)據(jù)轉(zhuǎn)發(fā)_client2中;
方式二、外接設備的數(shù)據(jù)轉(zhuǎn)發(fā)_server2在接收到數(shù)據(jù)轉(zhuǎn)發(fā)本端數(shù)據(jù)轉(zhuǎn)發(fā)_client2轉(zhuǎn)發(fā)的數(shù)據(jù)時,將接收到的數(shù)據(jù)發(fā)送至第二攔截模塊中。
基于上述的lte網(wǎng)絡架構(gòu)圖、移動終端100和外接設備200通訊連接的硬件結(jié)構(gòu)示意圖、實體結(jié)構(gòu)示意圖以及現(xiàn)有技術存在的問題,提出本發(fā)明的各個實施例。
本實施例提出一種數(shù)據(jù)包識別系統(tǒng),所述數(shù)據(jù)包傳輸系統(tǒng)包括移動終端100,以及通過預設接口與所述移動終端100連接的外接設備200;所述移動終端100包括第一應用處理器10,以及與第一用戶識別卡13和第二用戶識別卡14連接的第一調(diào)制解調(diào)器11,所述第一調(diào)制解調(diào)器11包括第一攔截模塊115和第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116,所述第一應用處理器10包括第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊012和與所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116連接的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端011;所述外接設備200包括第二應用處理器20和第二調(diào)制解調(diào)器21,所述第二調(diào)制解調(diào)器21包括第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216,所述第二應用處理器20包括通過所述預設接口與所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊012連接的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊022,,以及與所述第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216,連接的第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端021;
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,用于在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中;
所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。
在本實施例中,需要說明的是,事先在終端中先定義了一個qmicmd(命令),用于數(shù)據(jù)轉(zhuǎn)發(fā)_client1向數(shù)據(jù)轉(zhuǎn)發(fā)server1發(fā)送數(shù)據(jù),此外,事先還定義了一個qmiind(通知),用于數(shù)據(jù)轉(zhuǎn)發(fā)server1向數(shù)據(jù)轉(zhuǎn)發(fā)_client1發(fā)送數(shù)據(jù),即在數(shù)據(jù)轉(zhuǎn)發(fā)_client1向數(shù)據(jù)轉(zhuǎn)發(fā)server1發(fā)送數(shù)據(jù)時,調(diào)用qmicmd,在數(shù)據(jù)轉(zhuǎn)發(fā)server1向數(shù)據(jù)轉(zhuǎn)發(fā)_client1發(fā)送數(shù)據(jù)時,調(diào)用qmiind。本實施例中,傳輸?shù)臄?shù)據(jù)包中包括flag和data字段,flag用于區(qū)分數(shù)據(jù)包是中間數(shù)據(jù)包還是結(jié)束數(shù)據(jù)包,data字段用于表示數(shù)據(jù)包的長度。
本實施例中,所述移動終端還設置有兩個臨時緩沖區(qū),分別為發(fā)送緩沖區(qū)(txbuffer)和接收緩沖區(qū)(rxbuffer);其中,發(fā)送緩沖區(qū)用于緩存第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器從第一攔截模塊中截取到的數(shù)據(jù),以供第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將數(shù)據(jù)發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端;所述接收緩沖區(qū)用于緩存第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器從第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端接收到的數(shù)據(jù),以供第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將數(shù)據(jù)發(fā)送至第一攔截模塊。
在本實施例中,在所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包,并將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中之前,由第一攔截模塊轉(zhuǎn)發(fā)數(shù)據(jù)包,具體地:
第一攔截模塊從遠程sim數(shù)據(jù)訪問_server中獲取移動終端的數(shù)據(jù)包,該數(shù)據(jù)包是第一用戶識別卡或第二用戶識別卡中的數(shù)據(jù)包,在獲取到數(shù)據(jù)包之后,第一攔截模塊將數(shù)據(jù)包轉(zhuǎn)發(fā)到第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器(圖4的數(shù)據(jù)轉(zhuǎn)發(fā)_server1)。需要說明的是,第一攔截模塊從遠程sim數(shù)據(jù)訪問_server中獲取移動終端的數(shù)據(jù)包之后,先將截取的數(shù)據(jù)包集中存儲在預設文件,該預設文件是第一攔截模塊關聯(lián)的文件,該文件通過水位(watermark)機制建立的文件,第一攔截模塊將截取的數(shù)據(jù)包存儲到預設文件,通過消息隊列的方式存儲。在第一攔截模塊往預設文件存儲數(shù)據(jù)包之后,觸發(fā)通知函數(shù)給第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,以告知第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器該預設文件中存儲有數(shù)據(jù)包,以供第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器從該預設文件中獲取數(shù)據(jù)包。
當?shù)谝粩?shù)據(jù)轉(zhuǎn)發(fā)服務器接收到第一攔截模塊發(fā)送的通知函數(shù)時,先回調(diào)該通知函數(shù),并通過消息隊列從預設文件中獲取第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,在獲取到數(shù)據(jù)包之后,即可將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中。
可以理解,通過消息隊列的方式存取數(shù)據(jù)包,使得各個數(shù)據(jù)包的傳輸是按照順序傳輸?shù)摹?/p>
而后,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊。即,第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將該數(shù)據(jù)包傳輸至第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,然后第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過usb線將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,應當理解,當?shù)诙?shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊接收到數(shù)據(jù)包之后,將接收到的數(shù)據(jù)包換傳輸至外接設備的第二攔截模塊中。
本實施例提供的數(shù)據(jù)包傳輸系統(tǒng),所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,用于在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中,并將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。本發(fā)明中,通過第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將移動終端第一調(diào)制解調(diào)器中的數(shù)據(jù)包,傳輸至第一應用處理器中的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,再由第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,以便第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸至第二調(diào)制解調(diào)器,以實現(xiàn)移動終端和外接設備之間的數(shù)據(jù)包傳輸過程。
進一步地,提出本發(fā)明數(shù)據(jù)包傳輸系統(tǒng)的第二實施例。
數(shù)據(jù)包傳輸系統(tǒng)的第二實施例與第一實施例的區(qū)別在于:所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值;
若數(shù)據(jù)包的容量值超出所述預設閾值,則對所述數(shù)據(jù)包進行拆分,得到各個子數(shù)據(jù)包;
將拆分后的各個子數(shù)據(jù)包發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
在本實施例中,在第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將接收到的數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)之后,先對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值,具體的解析方式為:將發(fā)送緩沖區(qū)中的數(shù)據(jù)包的容量值與預設閾值進行比較,若發(fā)送緩沖區(qū)中的數(shù)據(jù)包的容量值大于該預設閾值,則執(zhí)行拆分操作,本實施例中,所述預設閾值可根據(jù)實際情況進行設置,例如設置為8k。在對數(shù)據(jù)包進行拆分,得到各個子數(shù)據(jù)包之后,將拆分后的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
在本實施例中,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器通過對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值,并在數(shù)據(jù)包的容量值大于預設閾值時,執(zhí)行拆分操作,以便將拆分后的各個子數(shù)據(jù)包依次發(fā)送,防止數(shù)據(jù)包過大時,無法正常傳輸,本實施例保證了數(shù)據(jù)包可以正常傳輸。
進一步地,提出本發(fā)明數(shù)據(jù)包傳輸系統(tǒng)的第三實施例。
數(shù)據(jù)包傳輸系統(tǒng)的第三實施例與數(shù)據(jù)包傳輸系統(tǒng)的第二實施例的區(qū)別在于,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將拆分后的各個子數(shù)據(jù)包發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端包括:
在拆分后的各個子數(shù)據(jù)包中,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識;
將添加有標識的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
需要說明的是,由于第一攔截模塊截取到的數(shù)據(jù)包是原始數(shù)據(jù)包,那么,當?shù)谝粩?shù)據(jù)轉(zhuǎn)發(fā)服務器獲取到該數(shù)據(jù)包時,該數(shù)據(jù)包的容量值可能較大,若該數(shù)據(jù)包的容量值大于預設值,此時,該第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對該數(shù)據(jù)包進行一次性拆分,以將該數(shù)據(jù)包拆分成多個子數(shù)據(jù)包,本實施例中,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對數(shù)據(jù)包的拆分,優(yōu)選是按照該預設閾值,如8k的容量進行拆解,即將每8k數(shù)據(jù)拆解為一個數(shù)據(jù)包,可以理解,拆分后的最后一個數(shù)據(jù)包的容量小于或等于8k,
在拆分得到各個子數(shù)據(jù)包之后,由于拆分后的各個子數(shù)據(jù)包是結(jié)構(gòu)化的數(shù)據(jù),結(jié)構(gòu)化的數(shù)據(jù)用flag和data字段表示,因此,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對各個子數(shù)據(jù)包添加flag字段和data字段。優(yōu)選地,data字段表示放容量為該預設閾值的數(shù)據(jù),該容量可選設置為8k。flag字段表示子數(shù)據(jù)包是中間數(shù)據(jù)包還是結(jié)束數(shù)據(jù)包。本實施例中,當flag字段為中間標識如字段為0時,表示子數(shù)據(jù)包是中間數(shù)據(jù)包,當flag字段為結(jié)束標識如字段為1時,表示子數(shù)據(jù)包是結(jié)束數(shù)據(jù)包,此外,當flag字段為觸發(fā)器標識,如triggerflag時,代表第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端初始化ok。
因此,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對數(shù)據(jù)包拆分,得到各個子數(shù)據(jù)包時,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識。最終,將添加有標識的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以完成數(shù)據(jù)包的轉(zhuǎn)發(fā)。
可以理解,當所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端接收到子數(shù)據(jù)包之后,通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將子數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,當外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊接收到子數(shù)據(jù)包之后,再將子數(shù)據(jù)包傳輸至第二攔截模塊中,具體地:
外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊接收到子數(shù)據(jù)包之后,將子數(shù)據(jù)包傳輸至數(shù)據(jù)轉(zhuǎn)發(fā)_client2(第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端),然后數(shù)據(jù)轉(zhuǎn)發(fā)_client2將子數(shù)據(jù)包傳輸至數(shù)據(jù)轉(zhuǎn)發(fā)_server2(第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器),第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器接收到子數(shù)據(jù)包之后,先確定子數(shù)據(jù)包攜帶的標識信息;
若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器將所述子數(shù)據(jù)包傳輸至所述第二攔截模塊;
若接收到的子數(shù)據(jù)包中攜帶中間標識,則第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包發(fā)送至所述第二攔截模塊,由第二攔截模塊對各個子數(shù)據(jù)包進行組合。
在本實施例中,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在拆分后的各個子數(shù)據(jù)包中,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識,以將添加有標識的各個子數(shù)據(jù)包依次發(fā)送出去,后續(xù)接收到各個子數(shù)據(jù)包的第二攔截模塊,即可根據(jù)接收到的各個子數(shù)據(jù)包執(zhí)行組合操作。
進一步地,提出本發(fā)明數(shù)據(jù)包傳輸系統(tǒng)的第四實施例。
數(shù)據(jù)包傳輸系統(tǒng)的第四實施例與第一至第三實施例的區(qū)別在于:所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,確定子數(shù)據(jù)包攜帶的標識信息;
若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊。
在本實施例中,當?shù)谝粩?shù)據(jù)轉(zhuǎn)發(fā)服務器在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,對接收到的各個數(shù)據(jù)包的標識信息進行識別,若識別出子數(shù)據(jù)包中攜帶結(jié)束標識,說明該子數(shù)據(jù)包的最后一個子數(shù)據(jù)包,此時,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器可將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊。
此外,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,還用于若接收到的子數(shù)據(jù)包中攜帶中間標識,則將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包發(fā)送至所述第一攔截模塊。
即,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器接收到的子數(shù)據(jù)包中攜帶的是中間標識,說明當前接收到的子數(shù)據(jù)包的中間數(shù)據(jù)包,此時,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),并繼續(xù)接收子數(shù)據(jù)包,當接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,才將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包組合發(fā)送至所述第一攔截模塊中。
也就是說,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對接收到的子數(shù)據(jù)包的flag字段進行識別,在識別出數(shù)據(jù)包的flag字段為0時,說明當前接收到的數(shù)據(jù)包不是最后一個數(shù)據(jù)包,因此,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將當前接收到的子數(shù)據(jù)包緩存至接收緩沖區(qū)中,然后繼續(xù)接收第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端轉(zhuǎn)發(fā)的子數(shù)據(jù)包,直到接收到flag字段為1的子數(shù)據(jù)包,才將接收緩沖區(qū)中緩存的的各個子數(shù)據(jù)包提取出來,并將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包發(fā)送至所述第一攔截模塊中,由第一攔截模塊對各個子數(shù)據(jù)包組合后,發(fā)送至遠程sim數(shù)據(jù)訪問_server中,從而完成數(shù)據(jù)包的傳輸過程。
需要說明的是,當所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包都發(fā)送至第一攔截模塊時,即可將接收緩沖區(qū)清空,以便后續(xù)繼續(xù)接收其它子數(shù)據(jù)包。
本實施例提供的數(shù)據(jù)包傳輸系統(tǒng),第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,先確定子數(shù)據(jù)包攜帶的標識信息,若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊,若接收到的子數(shù)據(jù)包中攜帶中間標識,則所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包組合發(fā)送至所述第一攔截模塊,從而實現(xiàn)移動終端和外接設備之間的數(shù)據(jù)包傳輸過程。
本發(fā)明進一步提供一種數(shù)據(jù)包傳輸方法。
參照圖5,圖5為本發(fā)明數(shù)據(jù)包傳輸方法第一實施例的流程示意圖。
本實施例提出一種數(shù)據(jù)包傳輸方法,在本實施例中,提供了數(shù)據(jù)包傳輸方法的實施例,需要說明的是,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明中,數(shù)據(jù)包傳輸方法應用于移動終端100以及通過預設接口與所述移動終端連接的外接設備200,所述移動終端100包括第一應用處理器10,以及與第一用戶識別卡13和第二用戶識別卡14連接的第一調(diào)制解調(diào)器11,所述第一調(diào)制解調(diào)器11包括第一攔截模塊115和第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116,所述第一應用處理器10包括第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊012和與所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器116連接的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端011;所述外接設備200包括第二應用處理器20和第二調(diào)制解調(diào)器21,所述第二調(diào)制解調(diào)器21包括第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216,所述第二應用處理器20包括通過所述預設接口與所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊012連接的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊022,,以及與所述第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器216,連接的第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端021;所述方法包括:
步驟s10,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中;
步驟s20,將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。
在本實施例中,需要說明的是,事先在終端中先定義了一個qmicmd(命令),用于數(shù)據(jù)轉(zhuǎn)發(fā)_client1向數(shù)據(jù)轉(zhuǎn)發(fā)server1發(fā)送數(shù)據(jù),此外,事先還定義了一個qmiind(通知),用于數(shù)據(jù)轉(zhuǎn)發(fā)server1向數(shù)據(jù)轉(zhuǎn)發(fā)_client1發(fā)送數(shù)據(jù),即在數(shù)據(jù)轉(zhuǎn)發(fā)_client1向數(shù)據(jù)轉(zhuǎn)發(fā)server1發(fā)送數(shù)據(jù)時,調(diào)用qmicmd,在數(shù)據(jù)轉(zhuǎn)發(fā)server1向數(shù)據(jù)轉(zhuǎn)發(fā)_client1發(fā)送數(shù)據(jù)時,調(diào)用qmiind。本實施例中,傳輸?shù)臄?shù)據(jù)包中包括flag和data字段,flag用于區(qū)分數(shù)據(jù)包是中間數(shù)據(jù)包還是結(jié)束數(shù)據(jù)包,data字段用于表示數(shù)據(jù)包的長度。
本實施例中,所述移動終端還設置有兩個臨時緩沖區(qū),分別為發(fā)送緩沖區(qū)(txbuffer)和接收緩沖區(qū)(rxbuffer);其中,發(fā)送緩沖區(qū)用于緩存第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器從第一攔截模塊中截取到的數(shù)據(jù),以供第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將數(shù)據(jù)發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端;所述接收緩沖區(qū)用于緩存第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器從第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端接收到的數(shù)據(jù),以供第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將數(shù)據(jù)發(fā)送至第一攔截模塊。
在本實施例中,所述步驟s10之前,所述方法還包括:
第一攔截模塊從遠程sim數(shù)據(jù)訪問_server中獲取移動終端的數(shù)據(jù)包,該數(shù)據(jù)包是第一用戶識別卡或第二用戶識別卡中的數(shù)據(jù)包,在獲取到數(shù)據(jù)包之后,第一攔截模塊將數(shù)據(jù)包轉(zhuǎn)發(fā)到第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器(圖4的數(shù)據(jù)轉(zhuǎn)發(fā)_server1)。需要說明的是,第一攔截模塊從遠程sim數(shù)據(jù)訪問_server中獲取移動終端的數(shù)據(jù)包之后,先將截取的數(shù)據(jù)包集中存儲在預設文件,該預設文件是第一攔截模塊關聯(lián)的文件,該文件通過水位(watermark)機制建立的文件,第一攔截模塊將截取的數(shù)據(jù)包存儲到預設文件,通過消息隊列的方式存儲。在第一攔截模塊往預設文件存儲數(shù)據(jù)包之后,觸發(fā)通知函數(shù)給第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器,以告知第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器該預設文件中存儲有數(shù)據(jù)包,以供第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器從該預設文件中獲取數(shù)據(jù)包。
當?shù)谝粩?shù)據(jù)轉(zhuǎn)發(fā)服務器接收到第一攔截模塊發(fā)送的通知函數(shù)時,先回調(diào)該通知函數(shù),并通過消息隊列從預設文件中獲取第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,在獲取到數(shù)據(jù)包之后,即可將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中。
可以理解,通過消息隊列的方式存取數(shù)據(jù)包,使得各個數(shù)據(jù)包的傳輸是按照順序傳輸?shù)摹?/p>
而后,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊。即,第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將該數(shù)據(jù)包傳輸至第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,然后第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過usb線將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,應當理解,當?shù)诙?shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊接收到數(shù)據(jù)包之后,將接收到的數(shù)據(jù)包換傳輸至外接設備的第二攔截模塊中。
本實施例提供的數(shù)據(jù)包傳輸方法,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在獲取到第一攔截模塊轉(zhuǎn)發(fā)的數(shù)據(jù)包時,將所述數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)中,并將所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包發(fā)送至第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以供所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,由所述第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊通過第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端將數(shù)據(jù)包傳輸至第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器。本發(fā)明中,通過第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將移動終端第一調(diào)制解調(diào)器中的數(shù)據(jù)包,傳輸至第一應用處理器中的第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,再由第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,以便第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將數(shù)據(jù)包傳輸至第二調(diào)制解調(diào)器,以實現(xiàn)移動終端和外接設備之間的數(shù)據(jù)包傳輸過程。
進一步地,參照圖6,提出本發(fā)明數(shù)據(jù)包傳輸方法的第二實施例。
數(shù)據(jù)包傳輸方法的第二實施例與數(shù)據(jù)包傳輸方法的第一實施例的區(qū)別在于,所述步驟s20包括:
步驟s21,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值;
步驟s22,若數(shù)據(jù)包的容量值超出所述預設閾值,則對所述數(shù)據(jù)包進行拆分,得到各個子數(shù)據(jù)包;
步驟s23,將拆分后的各個子數(shù)據(jù)包發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
在本實施例中,在第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將接收到的數(shù)據(jù)包緩存至發(fā)送緩沖區(qū)之后,先對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值,具體的解析方式為:將發(fā)送緩沖區(qū)中的數(shù)據(jù)包的容量值與預設閾值進行比較,若發(fā)送緩沖區(qū)中的數(shù)據(jù)包的容量值大于該預設閾值,則執(zhí)行拆分操作,本實施例中,所述預設閾值可根據(jù)實際情況進行設置,例如設置為8k。在對數(shù)據(jù)包進行拆分,得到各個子數(shù)據(jù)包之后,將拆分后的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
在本實施例中,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器通過對所述發(fā)送緩沖區(qū)中存儲的數(shù)據(jù)包的容量值進行解析,以確定數(shù)據(jù)包的容量值是否超出預設閾值,并在數(shù)據(jù)包的容量值大于預設閾值時,執(zhí)行拆分操作,以便將拆分后的各個子數(shù)據(jù)包依次發(fā)送,防止數(shù)據(jù)包過大時,無法正常傳輸,本實施例保證了數(shù)據(jù)包可以正常傳輸。
進一步地,參照圖7,提出本發(fā)明數(shù)據(jù)包傳輸方法的第三實施例。
數(shù)據(jù)包傳輸方法的第三實施例與數(shù)據(jù)包傳輸方法的第二實施例的區(qū)別在于,所述步驟s23包括:
步驟s231,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在拆分后的各個子數(shù)據(jù)包中,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識;
步驟s232,將添加有標識的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端。
需要說明的是,由于第一攔截模塊截取到的數(shù)據(jù)包是原始數(shù)據(jù)包,那么,當?shù)谝粩?shù)據(jù)轉(zhuǎn)發(fā)服務器獲取到該數(shù)據(jù)包時,該數(shù)據(jù)包的容量值可能較大,若該數(shù)據(jù)包的容量值大于預設值,此時,該第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對該數(shù)據(jù)包進行一次性拆分,以將該數(shù)據(jù)包拆分成多個子數(shù)據(jù)包,本實施例中,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對數(shù)據(jù)包的拆分,優(yōu)選是按照該預設閾值,如8k的容量進行拆解,即將每8k數(shù)據(jù)拆解為一個數(shù)據(jù)包,可以理解,拆分后的最后一個數(shù)據(jù)包的容量小于或等于8k,
在拆分得到各個子數(shù)據(jù)包之后,由于拆分后的各個子數(shù)據(jù)包是結(jié)構(gòu)化的數(shù)據(jù),結(jié)構(gòu)化的數(shù)據(jù)用flag和data字段表示,因此,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對各個子數(shù)據(jù)包添加flag字段和data字段。優(yōu)選地,data字段表示放容量為該預設閾值的數(shù)據(jù),該容量可選設置為8k。flag字段表示子數(shù)據(jù)包是中間數(shù)據(jù)包還是結(jié)束數(shù)據(jù)包。本實施例中,當flag字段為中間標識如字段為0時,表示子數(shù)據(jù)包是中間數(shù)據(jù)包,當flag字段為結(jié)束標識如字段為1時,表示子數(shù)據(jù)包是結(jié)束數(shù)據(jù)包,此外,當flag字段為觸發(fā)器標識,如triggerflag時,代表第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端初始化ok。
因此,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對數(shù)據(jù)包拆分,得到各個子數(shù)據(jù)包時,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識。最終,將添加有標識的各個子數(shù)據(jù)包依次發(fā)送至所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端,以完成數(shù)據(jù)包的轉(zhuǎn)發(fā)。
可以理解,當所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端接收到子數(shù)據(jù)包之后,通過第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊將子數(shù)據(jù)包傳輸給外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊,當外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊接收到子數(shù)據(jù)包之后,再將子數(shù)據(jù)包傳輸至第二攔截模塊中,具體地:
外接設備的第二數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊接收到子數(shù)據(jù)包之后,將子數(shù)據(jù)包傳輸至數(shù)據(jù)轉(zhuǎn)發(fā)_client2(第二數(shù)據(jù)轉(zhuǎn)發(fā)客戶端),然后數(shù)據(jù)轉(zhuǎn)發(fā)_client2將子數(shù)據(jù)包傳輸至數(shù)據(jù)轉(zhuǎn)發(fā)_server2(第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器),第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器接收到子數(shù)據(jù)包之后,先確定子數(shù)據(jù)包攜帶的標識信息;
若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器將所述子數(shù)據(jù)包傳輸至所述第二攔截模塊;
若接收到的子數(shù)據(jù)包中攜帶中間標識,則第二數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包發(fā)送至所述第二攔截模塊,由第二攔截模塊對各個子數(shù)據(jù)包進行組合。
在本實施例中,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在拆分后的各個子數(shù)據(jù)包中,對除最后一個子數(shù)據(jù)包以外的其它各個子數(shù)據(jù)包添加中間標識,對最后一個子數(shù)據(jù)包添加結(jié)束標識,以將添加有標識的各個子數(shù)據(jù)包依次發(fā)送出去,后續(xù)接收到各個子數(shù)據(jù)包的第二攔截模塊,即可根據(jù)接收到的各個子數(shù)據(jù)包執(zhí)行組合操作。
進一步地,參照圖8,提出本發(fā)明數(shù)據(jù)包傳輸方法的第四實施例。
數(shù)據(jù)包傳輸方法的第四實施例與數(shù)據(jù)包傳輸方法的第一至第三實施例的區(qū)別在于,所述數(shù)據(jù)包傳輸方法還包括:
步驟s30,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,確定子數(shù)據(jù)包攜帶的標識信息;
步驟s40,若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊。
需要說明的是,所述步驟s30至步驟s40可在步驟s20之后執(zhí)行,也可以在步驟s10之前執(zhí)行,具體不做限定。
在本實施例中,當?shù)谝粩?shù)據(jù)轉(zhuǎn)發(fā)服務器在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,對接收到的各個數(shù)據(jù)包的標識信息進行識別,若識別出子數(shù)據(jù)包中攜帶結(jié)束標識,說明該子數(shù)據(jù)包的最后一個子數(shù)據(jù)包,此時,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器可將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊。
此外,所述步驟s30之后,所述方法還包括:
若接收到的子數(shù)據(jù)包中攜帶中間標識,則所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包發(fā)送至所述第一攔截模塊。
即,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器接收到的子數(shù)據(jù)包中攜帶的是中間標識,說明當前接收到的子數(shù)據(jù)包的中間數(shù)據(jù)包,此時,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),并繼續(xù)接收子數(shù)據(jù)包,當接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,才將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包組合發(fā)送至所述第一攔截模塊中。
也就是說,所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器對接收到的子數(shù)據(jù)包的flag字段進行識別,在識別出數(shù)據(jù)包的flag字段為0時,說明當前接收到的數(shù)據(jù)包不是最后一個數(shù)據(jù)包,因此,第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將當前接收到的子數(shù)據(jù)包緩存至接收緩沖區(qū)中,然后繼續(xù)接收第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端轉(zhuǎn)發(fā)的子數(shù)據(jù)包,直到接收到flag字段為1的子數(shù)據(jù)包,才將接收緩沖區(qū)中緩存的的各個子數(shù)據(jù)包提取出來,并將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包發(fā)送至所述第一攔截模塊中,由第一攔截模塊對各個子數(shù)據(jù)包組合后,發(fā)送至遠程sim數(shù)據(jù)訪問_server中,從而完成數(shù)據(jù)包的傳輸過程。
需要說明的是,當所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包都發(fā)送至第一攔截模塊時,即可將接收緩沖區(qū)清空,以便后續(xù)繼續(xù)接收其它子數(shù)據(jù)包。
本實施例提供的數(shù)據(jù)包傳輸系統(tǒng),第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器在接收到所述第一數(shù)據(jù)轉(zhuǎn)發(fā)客戶端通過所述第一數(shù)據(jù)讀寫轉(zhuǎn)發(fā)模塊發(fā)送的子數(shù)據(jù)包時,先確定子數(shù)據(jù)包攜帶的標識信息,若接收到的子數(shù)據(jù)包中攜帶結(jié)束標識,則將所述子數(shù)據(jù)包傳輸至所述第一攔截模塊,若接收到的子數(shù)據(jù)包中攜帶中間標識,則所述第一數(shù)據(jù)轉(zhuǎn)發(fā)服務器將子數(shù)據(jù)包緩存至所述接收緩沖區(qū),以便后續(xù)接收到攜帶結(jié)束標識的子數(shù)據(jù)包時,將攜帶結(jié)束標識的子數(shù)據(jù)包以及所述接收緩沖區(qū)中緩存的子數(shù)據(jù)包組合發(fā)送至所述第一攔截模塊,從而實現(xiàn)移動終端和外接設備之間的數(shù)據(jù)包傳輸過程。
需要說明的是,在本文中,術語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調(diào)器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例的方法。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其它相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。