本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法及裝置。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)和家庭數(shù)字娛樂生態(tài)的發(fā)展,針對嵌入式系統(tǒng)(手機(jī)、平板、互聯(lián)網(wǎng)電視等)的應(yīng)用開發(fā)需求越來越旺盛?;谇度胧较到y(tǒng)的應(yīng)用程序或web頁面與相應(yīng)的服務(wù)器之間普遍存在網(wǎng)絡(luò)通信,為了確保所述應(yīng)用程序的網(wǎng)絡(luò)通信功能的實(shí)現(xiàn),那么就需要在開發(fā)過程中對嵌入式設(shè)備以及嵌入式設(shè)備上的應(yīng)用程序等的網(wǎng)絡(luò)通信過程進(jìn)行調(diào)試。網(wǎng)絡(luò)通信過程的調(diào)試主要是查看通信過程的網(wǎng)絡(luò)請求數(shù)據(jù)和網(wǎng)絡(luò)響應(yīng)數(shù)據(jù)。
用于調(diào)試嵌入式設(shè)備的調(diào)試系統(tǒng)通常是由嵌入式設(shè)備、第三方調(diào)試用機(jī)和網(wǎng)絡(luò)服務(wù)器(也即應(yīng)用對應(yīng)的遠(yuǎn)程服務(wù)器)構(gòu)成。這是因?yàn)槭芮度胧皆O(shè)備本身或應(yīng)用程序的顯示輸出條件的限制,在嵌入式設(shè)備上直接查看數(shù)據(jù)并不可行,這些數(shù)據(jù)需要通過某種方式輸出到第三方調(diào)試用機(jī)上進(jìn)行展現(xiàn)。
現(xiàn)有的調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信網(wǎng)絡(luò)成的方法通常有以下兩種:
第一種:通過主動在嵌入式設(shè)備中設(shè)置代理參數(shù)(如代理服務(wù)器的ip和端口或一個(gè)pacurl文件)進(jìn)行調(diào)試:
步驟11:代理參數(shù)設(shè)置:在第三方調(diào)試用機(jī)上啟動代理服務(wù)器軟件,記錄代理服務(wù)器軟件所占用的端口號;之后在嵌入式設(shè)備中設(shè)置代理服務(wù)參數(shù),也即將第三方調(diào)試用機(jī)的ip地址設(shè)置為嵌入式設(shè)備的代理服務(wù)器的地址,將記錄的所述端口號作為嵌入式代理端口;
步驟12:嵌入式設(shè)備向網(wǎng)絡(luò)服務(wù)器發(fā)送網(wǎng)絡(luò)請求報(bào)文;
此時(shí),由于步驟1中將第三方調(diào)試用機(jī)設(shè)置為嵌入式設(shè)備的代理服務(wù)器,因此,步驟2中發(fā)送的網(wǎng)絡(luò)請求報(bào)文均會轉(zhuǎn)向第三方調(diào)試用機(jī),由第三方調(diào)試用機(jī)上啟動的代理服務(wù)器軟件充當(dāng)“中間人”與外界聯(lián)系。
步驟13:第三方調(diào)試用機(jī)上的代理服務(wù)器軟件截獲所述網(wǎng)絡(luò)請求報(bào)文,將所述網(wǎng)絡(luò)請求報(bào)文發(fā)送給網(wǎng)絡(luò)服務(wù)器,并顯示網(wǎng)絡(luò)請求報(bào)文中的網(wǎng)絡(luò)通信數(shù)據(jù),從而達(dá)到調(diào)試目的。
步驟13之后,網(wǎng)絡(luò)服務(wù)器將向第三方調(diào)試用機(jī)返回針對所述網(wǎng)絡(luò)請求報(bào)文的網(wǎng)絡(luò)響應(yīng)。
步驟14:第三方調(diào)試用機(jī)上的代理服務(wù)器軟件截獲網(wǎng)絡(luò)服務(wù)器針對所述網(wǎng)絡(luò)請求報(bào)文發(fā)送的網(wǎng)絡(luò)響應(yīng),將所述網(wǎng)絡(luò)響應(yīng)發(fā)送給嵌入式設(shè)備,并顯示所述網(wǎng)絡(luò)響應(yīng)中的網(wǎng)絡(luò)通信數(shù)據(jù),從而達(dá)到調(diào)試目的。
上述步驟12至步驟14的過程也即如圖1所示。圖1中,c代表嵌入式設(shè)備,m代表第三方調(diào)試用機(jī),s代表網(wǎng)絡(luò)服務(wù)器。
第二種:預(yù)先在應(yīng)用程序或web頁面中植入專供調(diào)試用的冗余代碼(與業(yè)務(wù)無關(guān)的,實(shí)現(xiàn)調(diào)試邏輯的代碼)并隨業(yè)務(wù)邏輯一起上線:
當(dāng)需要進(jìn)行調(diào)試時(shí),執(zhí)行以下步驟:
步驟21:在嵌入式設(shè)備中所安裝的app或?yàn)g覽器中運(yùn)行的web頁面內(nèi)打開調(diào)試開關(guān);
步驟22:app或web頁面一方面與服務(wù)器進(jìn)行正常通信,另一方面通過調(diào)試邏輯,向第三方調(diào)試用機(jī)發(fā)送數(shù)據(jù);
步驟23:第三方調(diào)試用機(jī)接收并顯示收到的信息。
上述步驟21至步驟23的過程也即如圖2所示。圖2中的c、m、s的含義與圖1中的相同。
上述兩種方法均能夠?qū)崿F(xiàn)對基于嵌入式系統(tǒng)的應(yīng)用程序的網(wǎng)絡(luò)通信過程進(jìn)行調(diào)試,然而,針對上述第一種調(diào)試方法,其需要在嵌入式設(shè)備上進(jìn)行相關(guān)代理參數(shù)的設(shè)置,但由于嵌入式系統(tǒng)相比x86體系的計(jì)算機(jī)操作系統(tǒng)較為封閉, 極有可能并不提供主動設(shè)置代理服務(wù)參數(shù)的功能或入口(例如,android系統(tǒng)4.0及以下系統(tǒng)并不支持輸入代理參數(shù)),因此,這一方法存在局限性。針對上述第二種調(diào)試方法,其需要增加調(diào)試邏輯,這一增加對正常的業(yè)務(wù)邏輯有侵入性(app或web頁面中是不應(yīng)該存在調(diào)試邏輯的),增加了業(yè)務(wù)系統(tǒng)的不穩(wěn)定因素。
由此可見,現(xiàn)有的兩種調(diào)試方法存在無法適用于不提供設(shè)置代理服務(wù)參數(shù)的嵌入式設(shè)備的調(diào)試,或者在應(yīng)用程序中侵入式地增加調(diào)試邏輯而導(dǎo)致業(yè)務(wù)系統(tǒng)不穩(wěn)定的問題,因此,亟待提出一種新的調(diào)試方法,以克服上述缺陷。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法及裝置,以解決現(xiàn)有的調(diào)試方法存在的無法適用于不提供設(shè)置代理服務(wù)參數(shù)的嵌入式設(shè)備的調(diào)試,或者在應(yīng)用程序中侵入式地增加調(diào)試邏輯而導(dǎo)致業(yè)務(wù)系統(tǒng)不穩(wěn)定的問題。
一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法,包括:
路由器接收嵌入式設(shè)備發(fā)送的網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述嵌入式設(shè)備的ip地址,目的地址為網(wǎng)絡(luò)服務(wù)器的ip地址,用于請求網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
將所述網(wǎng)絡(luò)請求報(bào)文的目的地址和源地址分別轉(zhuǎn)換為第三方調(diào)試用機(jī)的ip地址和所述路由器的ip地址;
發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī),以使第三方調(diào)試用機(jī)顯示所述網(wǎng)絡(luò)請求報(bào)文中的網(wǎng)絡(luò)請求數(shù)據(jù)。
一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法,包括:
嵌入式設(shè)備確定網(wǎng)絡(luò)服務(wù)器的ip地址;
以確定的網(wǎng)絡(luò)服務(wù)器的ip地址為目的地址,以所述嵌入式設(shè)備的ip地址為源地址,生成網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文用于請求所述網(wǎng)絡(luò)服務(wù)器提 供網(wǎng)絡(luò)服務(wù);
將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器,其中,所述路由器將所述網(wǎng)絡(luò)請求報(bào)文進(jìn)行源地址和目的地址轉(zhuǎn)換后發(fā)送至第三方調(diào)試用機(jī)。
一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法,包括:
第三方調(diào)試用機(jī)接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述路由器的ip地址,目的地址為第三方調(diào)試用機(jī)的ip地址,用于請求網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
解析接收的所述網(wǎng)絡(luò)請求報(bào)文,得到網(wǎng)絡(luò)請求數(shù)據(jù);
顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)。
一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置,包括:
接收單元,用于接收嵌入式設(shè)備發(fā)送的網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述嵌入式設(shè)備的ip地址,目的地址為網(wǎng)絡(luò)服務(wù)器的ip地址,用于請求網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
轉(zhuǎn)換單元,用于將所述網(wǎng)絡(luò)請求報(bào)文的目的地址和源地址分別轉(zhuǎn)換為第三方調(diào)試用機(jī)的ip地址和所述路由器的ip地址;
發(fā)送單元,用于發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī),以使第三方調(diào)試用機(jī)顯示所述網(wǎng)絡(luò)請求報(bào)文中的網(wǎng)絡(luò)請求數(shù)據(jù)。
一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置,包括:
確定單元,用于確定網(wǎng)絡(luò)服務(wù)器的ip地址;
報(bào)文生成單元,用于以確定單元確定的網(wǎng)絡(luò)服務(wù)器的ip地址為目的地址,以所述嵌入式設(shè)備的ip地址為源地址,生成網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文用于請求所述網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
發(fā)送單元,用于將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器,其中,所述路由器將所述網(wǎng)絡(luò)請求報(bào)文進(jìn)行源地址和目的地址轉(zhuǎn)換后發(fā)送至第三方調(diào)試用機(jī)。
一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置,包括:
接收單元,用于接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述路由器的ip地址,目的地址為第三方調(diào)試用機(jī)的ip地址,用于請求網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
解析單元,用于解析接收的所述網(wǎng)絡(luò)請求報(bào)文,得到網(wǎng)絡(luò)請求數(shù)據(jù);
顯示單元,用于顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)。
在本申請實(shí)施例的方案中,由于在調(diào)試系統(tǒng)中添加路由器,將原有的在嵌入式設(shè)備中設(shè)置代理參數(shù)實(shí)現(xiàn)向第三方調(diào)試用機(jī)發(fā)送網(wǎng)絡(luò)請求的功能轉(zhuǎn)移到在路由器中實(shí)現(xiàn),因此,既不需要在嵌入式設(shè)備中設(shè)置代理參數(shù),也不需要在業(yè)務(wù)邏輯之外增加調(diào)試邏輯,解決了現(xiàn)有的調(diào)試方法存在的無法適用于不提供設(shè)置代理服務(wù)參數(shù)的嵌入式設(shè)備的調(diào)試,或者在應(yīng)用程序中增加調(diào)試業(yè)務(wù)邏輯導(dǎo)致的業(yè)務(wù)系統(tǒng)不穩(wěn)定的問題。
附圖說明
圖1本申請背景技術(shù)中提供的第一種調(diào)試方法的調(diào)試過程示意圖;
圖2本申請背景技術(shù)中提供的第一種調(diào)試方法的調(diào)試過程示意圖;
圖3為本申請實(shí)施例給出的現(xiàn)有技術(shù)中的nat技術(shù)的應(yīng)用示意圖;
圖4為本申請實(shí)施例提供的用于調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖;
圖5為本申請實(shí)施例提供的調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法示意圖;
圖6為本申請實(shí)施例提供的中間件機(jī)制的工作流程示意圖;
圖7為本申請實(shí)施例提供的網(wǎng)絡(luò)請求/響應(yīng)報(bào)文在通信過程中源地址和目的地址的改變的示意圖;
圖8為本申請實(shí)施例提供的第一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置的結(jié)構(gòu)示意圖;
圖9為本申請實(shí)施例提供的第二種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置的結(jié)構(gòu)示意圖;
圖10為本申請實(shí)施例提供的第三種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為解決現(xiàn)有的調(diào)試方法存在的無法適用于不提供設(shè)置代理服務(wù)參數(shù)的嵌入式設(shè)備的調(diào)試,或者在應(yīng)用程序中侵入式地增加調(diào)試邏輯而導(dǎo)致業(yè)務(wù)系統(tǒng)不穩(wěn)定的問題,本申請實(shí)施例提供一種新的調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的系統(tǒng)、方法及裝置。
為了清楚地描述本申請實(shí)施例的方案,下面先對與本申請實(shí)施例的方案有關(guān)的現(xiàn)有技術(shù)中的網(wǎng)絡(luò)地址轉(zhuǎn)換(networkaddresstranslation,nat)技術(shù)、中間人和openssl的概念及含義進(jìn)行說明,然后再對本申請實(shí)施例提供的調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的系統(tǒng)和調(diào)試原理進(jìn)行描述,最后通過各個(gè)實(shí)施例詳細(xì)地描述本申請?zhí)峁┑恼{(diào)試方法及裝置。
一、相關(guān)概念
nat:是一種在ip報(bào)文通過路由器或防火墻時(shí)重寫源地址或目標(biāo)地址的技術(shù)。nat作為一種解決ipv4地址短缺而出現(xiàn)的私有ip與公有ip的轉(zhuǎn)換方案被應(yīng)用于路由器之中。如圖3所示,ip報(bào)文中包含源地址(sa)和目標(biāo)地址(da),在從內(nèi)網(wǎng)向外網(wǎng)發(fā)送請求報(bào)文時(shí),經(jīng)過nat的處理后,sa將發(fā)生變更,在內(nèi)網(wǎng)接收外網(wǎng)回復(fù)的響應(yīng)報(bào)文時(shí),經(jīng)過nat的處理后,da將發(fā)生改變。
中間人:在密碼學(xué)和計(jì)算機(jī)安全領(lǐng)域中,中間人(man-in-the-middle,mitm)是指與通訊的兩端分別創(chuàng)建獨(dú)立聯(lián)系的角色,并交換其所收到的數(shù)據(jù),使通訊的兩端認(rèn)為他們正在通過一個(gè)私密的連接與對方直接對話,但事實(shí)上整 個(gè)會話都被中間人完全控制。
openssl:openssl是一個(gè)強(qiáng)大的安全套接字層密碼庫,實(shí)現(xiàn)了包括安全套接層(securesocketslayer,ssl)與傳輸層安全(transportlayersecurity,tls)協(xié)議在內(nèi)的基本的加解密功能。
二、本申請?zhí)峁┑恼{(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的系統(tǒng)和調(diào)試原理
如圖4所示,其為本申請?zhí)峁┑恼{(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的系統(tǒng)的結(jié)構(gòu)示意圖。包括嵌入式設(shè)備c、路由器r、第三方調(diào)試用機(jī)m和網(wǎng)絡(luò)服務(wù)器s;
本申請這里相對于現(xiàn)有的調(diào)試系統(tǒng),新增了路由器r,該路由器r是專門為本調(diào)試系統(tǒng)設(shè)計(jì)的路由器,是可以設(shè)定匹配規(guī)則并進(jìn)行網(wǎng)絡(luò)地址(報(bào)文的目的地址)轉(zhuǎn)換的路由器,這一點(diǎn)與普通路由器的功能不同。
正常情況下,c向s發(fā)出網(wǎng)絡(luò)請求報(bào)文,會通過圖4中所示的1-4-5-8的時(shí)序進(jìn)行,r根據(jù)c所請求s的ip地址如實(shí)轉(zhuǎn)發(fā)請求,s的響應(yīng)經(jīng)由r后再回到c。
在需要調(diào)試時(shí),通過預(yù)先在c上設(shè)置r的nat規(guī)則,將c向s發(fā)出的網(wǎng)絡(luò)請求報(bào)文,在經(jīng)過r時(shí)進(jìn)行攔截并變更目的地址,也即將主要是將網(wǎng)絡(luò)請求報(bào)文的目的地址由s的ip地址轉(zhuǎn)換/重寫為m的ip地址,實(shí)現(xiàn)將網(wǎng)絡(luò)請求報(bào)文導(dǎo)入到m。這樣m就可以取代s,作為c的服務(wù)端向c提供服務(wù),實(shí)現(xiàn)了c發(fā)送的所有請求都無感知地變更到了m上,c成為了“中間人”。
m在截獲r發(fā)送的網(wǎng)絡(luò)請求報(bào)文后,可以原封不動地將該網(wǎng)絡(luò)請求報(bào)文轉(zhuǎn)發(fā)到s,s截獲m轉(zhuǎn)發(fā)出的請求后發(fā)送網(wǎng)絡(luò)響應(yīng)報(bào)文給m,m再將s的網(wǎng)絡(luò)響應(yīng)報(bào)文轉(zhuǎn)發(fā)到c。這一過程的時(shí)序?yàn)閳D4中所示的1-2-3-4-5-6-7-8,由于網(wǎng)絡(luò)請求報(bào)文和網(wǎng)絡(luò)響應(yīng)均流經(jīng)m,因此,m就可以獲取到完整的網(wǎng)絡(luò)通信過程數(shù)據(jù),進(jìn)而在m的顯示輸出設(shè)備上呈現(xiàn)出來。此時(shí),調(diào)試人員就可以在m上查看通信過程的網(wǎng)絡(luò)請求數(shù)據(jù)和網(wǎng)絡(luò)響應(yīng)數(shù)據(jù),進(jìn)行后續(xù)的相關(guān)調(diào)試工作。
m在截獲c發(fā)送的網(wǎng)絡(luò)請求報(bào)文后,還可以不將該網(wǎng)絡(luò)請求報(bào)文轉(zhuǎn)發(fā)到s,而是模擬s向c發(fā)送網(wǎng)絡(luò)響應(yīng)報(bào)文。這一過程的時(shí)序?yàn)閳D4中所示的1-2-3-8,由于網(wǎng)絡(luò)請求報(bào)文和網(wǎng)絡(luò)響應(yīng)均流經(jīng)m,因此,m就可以獲取到完整的網(wǎng)絡(luò)通信過程數(shù)據(jù),進(jìn)而在m的顯示輸出設(shè)備上呈現(xiàn)出來。此時(shí),調(diào)試人員就可以在m上查看通信過程的網(wǎng)絡(luò)請求數(shù)據(jù)和網(wǎng)絡(luò)響應(yīng)數(shù)據(jù),進(jìn)行后續(xù)的相關(guān)調(diào)試工作。
需要注意的是,上述在c上設(shè)置r的nat規(guī)則與現(xiàn)有技術(shù)中的nat規(guī)則不相同:現(xiàn)有技術(shù)中在c上設(shè)置的nat規(guī)則,c對接收的網(wǎng)絡(luò)請求報(bào)文只重寫源地址,不重寫目的地址,而本申請中在c上設(shè)置的nat規(guī)則,一方面將c對接收的網(wǎng)絡(luò)請求報(bào)文重寫源地址,另一方面也對接收的網(wǎng)絡(luò)請求報(bào)文重寫目的地址,也即將c的目的地址重寫的功能發(fā)揮出來,用于網(wǎng)絡(luò)通信過程的調(diào)試過程。并且,現(xiàn)有技術(shù)的nat規(guī)則是用于私網(wǎng)ip地址和公網(wǎng)ip地址的轉(zhuǎn)換,而本申請中c、r和m之間屬于在路由器內(nèi)部之間進(jìn)行通信,不涉及公網(wǎng),r的nat轉(zhuǎn)換也就不涉及私網(wǎng)ip地址和公網(wǎng)ip地址的轉(zhuǎn)換。
此外,根據(jù)調(diào)試的需求,本申請實(shí)施例中,在c上還可以設(shè)置其它參數(shù),例如:是否在c中記錄日志、適用的協(xié)議、待調(diào)試c白名單(nat規(guī)則只適用于白名單中的ip)或黑名單(nat規(guī)則不適用于黑名單中的ip)等。設(shè)置nat規(guī)則的方法是用程序與c連接,通過c的接口控制c的參數(shù)。
上述調(diào)試系統(tǒng)可以為分布式部署形式,也可以為中心式部署形式。分布式部署和中心式部署兩者的差異主要在于:在分布式中,m是開發(fā)人員自己的電腦,各自用各自的電腦進(jìn)行調(diào)試。在中心式中,m是一臺云端的服務(wù)器,大家共用服務(wù)器進(jìn)行調(diào)試。
三、下面通過實(shí)施例詳細(xì)地描述本申請?zhí)峁┑恼{(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的方法和裝置的實(shí)施例:
如圖5所示,其為本申請實(shí)施例提供的調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的 方法的流程圖,包括以下步驟:
步驟501:嵌入式設(shè)備確定網(wǎng)絡(luò)服務(wù)器的ip地址;
在確定了需要提供的網(wǎng)絡(luò)服務(wù)后,即可從提供該網(wǎng)絡(luò)服務(wù)的網(wǎng)絡(luò)服務(wù)器的ip地址中選擇一個(gè)網(wǎng)絡(luò)服務(wù)器的ip地址作為確定的網(wǎng)絡(luò)服務(wù)器的ip地址。
步驟502:嵌入式設(shè)備以確定的網(wǎng)絡(luò)服務(wù)器的ip地址為目的地址,以所述嵌入式設(shè)備的ip地址為源地址,生成網(wǎng)絡(luò)請求報(bào)文;
其中,所述網(wǎng)絡(luò)請求報(bào)文用于請求所述網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
這里的網(wǎng)絡(luò)請求報(bào)文為ip報(bào)文。
步驟503:嵌入式設(shè)備將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器;
這里,嵌入式設(shè)備的目的是想將該網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器器,而后續(xù)路由器對網(wǎng)絡(luò)請求報(bào)文的目的地址進(jìn)行了轉(zhuǎn)換,轉(zhuǎn)換為第三方調(diào)試用機(jī)的ip地址,因此,路由器將會把進(jìn)行了地址轉(zhuǎn)換的網(wǎng)絡(luò)請求報(bào)文發(fā)送給第三方調(diào)試用機(jī),后續(xù)第三方調(diào)試用機(jī)可將網(wǎng)絡(luò)請求報(bào)文發(fā)送給網(wǎng)絡(luò)服務(wù)器。
步驟504:路由器接收嵌入式設(shè)備發(fā)送的所述網(wǎng)絡(luò)請求報(bào)文;
較佳的,為了確保調(diào)試的準(zhǔn)確性和安全性,防止誤將不是待調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)請求報(bào)文轉(zhuǎn)發(fā)至第三方調(diào)試用機(jī),還可以在路由器中預(yù)先設(shè)置待調(diào)試嵌入式設(shè)備地址白名單或者待調(diào)試嵌入式設(shè)備地址黑名單;
此時(shí),若設(shè)置的為待調(diào)試嵌入式設(shè)備地址白名單,則在本步驟504之后,下述步驟506之前,判斷判斷所述網(wǎng)絡(luò)請求報(bào)文的源地址是否屬于待調(diào)試嵌入式設(shè)備地址白名單;若判斷結(jié)果為是,則執(zhí)行步驟506;若判斷結(jié)果為否,則執(zhí)行正常的轉(zhuǎn)發(fā)操作,正常的轉(zhuǎn)發(fā)操作屬于現(xiàn)有技術(shù),這里不再贅述。
若設(shè)置的為待調(diào)試嵌入式設(shè)備地址黑名單,則在本步驟504之后,下述步驟506之前,判斷所述網(wǎng)絡(luò)請求報(bào)文的源地址是否屬于待調(diào)試嵌入式設(shè)備地址黑名單;若判斷結(jié)果為否,則執(zhí)行步驟506;若判斷結(jié)果為是,則執(zhí)行正常的 轉(zhuǎn)發(fā)操作,正常的轉(zhuǎn)發(fā)操作屬于現(xiàn)有技術(shù),這里不再贅述。
步驟505:路由器將所述網(wǎng)絡(luò)請求報(bào)文的目的地址和源地址分別轉(zhuǎn)換為第三方調(diào)試用機(jī)的ip地址和所述路由器的ip地址;
本步驟505中,網(wǎng)絡(luò)請求報(bào)文的目的地址與第三方調(diào)試用機(jī)的ip地址的轉(zhuǎn)換,以及網(wǎng)絡(luò)請求報(bào)文的源地址和路由器的ip地址的轉(zhuǎn)換即構(gòu)成本申請中的nat規(guī)則。
這里可以不設(shè)置白名單地址或黑名單地址,對所有的網(wǎng)絡(luò)請求報(bào)文均執(zhí)行步驟505,也可以設(shè)置白名單或黑名單。在不設(shè)置待調(diào)試嵌入式設(shè)備地址白名單或黑名單時(shí),第三方調(diào)試用機(jī)的ip地址是本申請的nat規(guī)則的主要參數(shù);在設(shè)置待調(diào)試嵌入式設(shè)備地址白名單或黑名單時(shí),第三方調(diào)試用機(jī)的ip地址和待調(diào)試嵌入式設(shè)備地址白名單或黑名單是本申請的nat規(guī)則的必要參數(shù);下面對第三方調(diào)試用機(jī)的ip地址和待調(diào)試嵌入式設(shè)備地址白名單的確定/獲取進(jìn)行說明:
可以由第三方調(diào)試用機(jī)向路由器發(fā)送包含第三方調(diào)試用機(jī)的ip地址和嵌入式設(shè)備的ip地址的目的地址調(diào)整指令進(jìn)行設(shè)置。第三方調(diào)試用機(jī)向路由器發(fā)送指令時(shí),已知第三方調(diào)試用機(jī)的ip地址,需要獲取嵌入式設(shè)備的ip地址,嵌入式設(shè)備的ip地址的獲取有以下兩種方式:
第一種方式:在m中直接輸入c的ip地址,也即接收用戶輸入的嵌入式設(shè)備的ip地址;將用戶輸入的嵌入式設(shè)備的ip地址作為所述目的地址調(diào)整指令中包含的嵌入式設(shè)備的ip地址。
第二種方式:在第三方調(diào)試用機(jī)中生成一個(gè)二維碼,其內(nèi)容為專門用于嵌入式設(shè)備與第三方調(diào)試用機(jī)進(jìn)行綁定的web服務(wù)地址,由嵌入式設(shè)備掃描該二維碼,進(jìn)而訪問第三方調(diào)試用機(jī),第三方調(diào)試用機(jī)在截獲嵌入式設(shè)備的訪問請求時(shí)獲得嵌入式設(shè)備的ip地址。具體過程也即為下述步驟1)至步驟5):
步驟1):第三方調(diào)試用機(jī)上生成一個(gè)二維碼,該二維碼的內(nèi)容為專門用于所述嵌入式設(shè)備和所述第三方調(diào)試用機(jī)進(jìn)行綁定的web服務(wù)地址;
步驟2):嵌入式設(shè)備掃描所述第三方調(diào)試用機(jī)上顯示的二維碼;
步驟3):嵌入式設(shè)備向所述第三方調(diào)試用機(jī)發(fā)送訪問請求報(bào)文,訪問所述web服務(wù)地址;
步驟4):第三方調(diào)試用機(jī)接收嵌入式設(shè)備發(fā)送的訪問請求報(bào)文;
步驟5):第三方調(diào)試用機(jī)將接收的所述訪問請求報(bào)文中的源地址作為發(fā)送給所述路由器的目的地址調(diào)整指令中包含的嵌入式設(shè)備的ip地址。
此后,路由器即可接收第三方調(diào)試用機(jī)發(fā)送的上述目的地址調(diào)整指令;將目的地址調(diào)整指令中包含的第三方調(diào)試用機(jī)的ip地址和嵌入式設(shè)備的ip地址分別作為地址轉(zhuǎn)換用的第三方調(diào)試用機(jī)的ip地址和待調(diào)試嵌入式設(shè)備地址白名單。
進(jìn)一步地,考慮到在本申請的nat規(guī)則生效后,嵌入式的源ip地址會被替換為路由器的ip地址,這就導(dǎo)致第三方調(diào)試用機(jī)將無法區(qū)分來自不同的嵌入式設(shè)備的網(wǎng)絡(luò)請求報(bào)文,因?yàn)榫W(wǎng)絡(luò)請求報(bào)文的目的地址和源地址均被路由器轉(zhuǎn)換成了第三方調(diào)試用機(jī)的ip地址和路由器的ip地址。
為了使第三方調(diào)試用機(jī)能區(qū)分不同的嵌入式設(shè)備,本申請中通過嵌入式設(shè)備與第三方調(diào)試用機(jī)綁定時(shí)開啟獨(dú)立調(diào)試端口來區(qū)分,也就是說一個(gè)nat規(guī)則在描述了一個(gè)嵌入式設(shè)備的ip地址和一個(gè)第三方調(diào)試用機(jī)地址的基礎(chǔ)上,還設(shè)置相對應(yīng)的一個(gè)調(diào)試端口,這樣嵌入式設(shè)備的ip地址與調(diào)試端口有了對應(yīng)關(guān)系,第三方調(diào)試用機(jī)就可以通過調(diào)試端口對應(yīng)得到嵌入式設(shè)備的ip地址了,也即區(qū)分了不同的嵌入式設(shè)備。
當(dāng)然,在不需要區(qū)分不同的嵌入式設(shè)備時(shí)或者嵌入式設(shè)備只有一臺時(shí),也可以開啟獨(dú)立調(diào)試端口進(jìn)行調(diào)試。
具體的,當(dāng)本申請的nat規(guī)則設(shè)置時(shí)(nat規(guī)則生效前),在nat規(guī)則中添加調(diào)試端口參數(shù),相應(yīng)地,第三方調(diào)試用機(jī)中在該調(diào)試端口上開啟一個(gè)獨(dú)立進(jìn)程,專門為該條nat規(guī)則所對應(yīng)的嵌入式設(shè)備提供服務(wù),嵌入式設(shè)備的ip地址也在這一時(shí)刻記錄下來,這樣就可以解決nat規(guī)則生效后服務(wù)端第三 方調(diào)試用機(jī)無法區(qū)分嵌入式設(shè)備的問題。實(shí)現(xiàn)上述區(qū)分不同的嵌入式設(shè)備的詳細(xì)的交互過程如下:
第一步:嵌入式設(shè)備向所述第三方調(diào)試用機(jī)發(fā)送綁定請求報(bào)文;
該綁定請求報(bào)文的源地址為嵌入式設(shè)備的ip地址,目的地址為第三方調(diào)試用機(jī)的ip地址。
較佳的,所述綁定請求報(bào)文中還可以包括嵌入式設(shè)備所支持的應(yīng)用層協(xié)議;
第二步:第三方調(diào)試用機(jī)接收所述嵌入式設(shè)備發(fā)送的綁定請求報(bào)文;
第三步:第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配調(diào)試端口;
第三方調(diào)試用機(jī)后續(xù)可以在該調(diào)試端口上開啟一個(gè)獨(dú)立進(jìn)程,專門為該綁定請求報(bào)文所來自的嵌入式設(shè)備提供服務(wù);以及第三方調(diào)試用機(jī)將分配的該調(diào)試端口號也攜帶在目的地址調(diào)整指令中發(fā)送給路由器,路由器記錄嵌入式設(shè)備ip地址、第三方調(diào)試用機(jī)和調(diào)試端口號三者之間的對應(yīng)關(guān)系。
第四步:第三方調(diào)試用機(jī)將該調(diào)試端口的端口號和所述嵌入式設(shè)備的ip地址綁定并存儲;
若所述綁定請求報(bào)文中包括嵌入式設(shè)備所支持的應(yīng)用層協(xié)議,則在上述第三步及第四步中,第三方調(diào)試用機(jī)為所述嵌入式設(shè)備支持的不同應(yīng)用層協(xié)議分配不同的調(diào)試端口,將調(diào)試端口的端口號和所述嵌入式設(shè)備的ip地址和應(yīng)用層協(xié)議綁定并存儲。
此時(shí),第三方調(diào)試用機(jī)可以在每一個(gè)調(diào)試端口上開啟一個(gè)獨(dú)立進(jìn)程,專門為該綁定請求報(bào)文所來自的嵌入式設(shè)備的一個(gè)應(yīng)用層協(xié)議提供服務(wù);以及第三方調(diào)試用機(jī)將分配的該調(diào)試端口號和相應(yīng)的應(yīng)用層協(xié)議也攜帶在目的地址調(diào)整指令中發(fā)送給路由器,路由器記錄嵌入式設(shè)備ip地址、應(yīng)用層協(xié)議、第三方調(diào)試用機(jī)和調(diào)試端口號四者之間的對應(yīng)關(guān)系。
第五步:第三方調(diào)試用機(jī)向所述嵌入式設(shè)備發(fā)送綁定響應(yīng)報(bào)文,所述綁定響應(yīng)報(bào)文中包含綁定結(jié)果;
第六步:嵌入式設(shè)備接收所述第三方調(diào)試用機(jī)發(fā)送的綁定響應(yīng)報(bào)文。
這里可以在綁定結(jié)果為綁定成功時(shí),結(jié)束。在綁定結(jié)果為不成功時(shí),重新執(zhí)行上述第一步,直至綁定成功。
此時(shí),為了使第三方調(diào)試用機(jī)能夠區(qū)分不同的嵌入式設(shè)備,在上述步驟504之后,下述步驟505之前,確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配的調(diào)試端口的端口號,其中,所述第三方調(diào)試用機(jī)為不同的嵌入式設(shè)備分配不同的調(diào)試端口;將調(diào)試端口號攜帶在所述網(wǎng)絡(luò)請求報(bào)文中,其中,所述第三方調(diào)試用機(jī)為不同的嵌入式設(shè)備分配不同的調(diào)試端口。
較佳的,考慮到網(wǎng)絡(luò)請求報(bào)文所使用的應(yīng)用層協(xié)議的不同,例如:使用超文本傳送協(xié)議(hypertexttransferprotocol,http)協(xié)議,文件傳輸協(xié)議(filetransferprotocol,ftp),簡單郵件傳送協(xié)議(simplemailtransferprotocol,smtp),為了便于區(qū)分使用不同應(yīng)用層的協(xié)議的網(wǎng)絡(luò)通信過程的調(diào)試,在上述步驟504之后,確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配的調(diào)試端口的端口號之前,路由器還確定所述網(wǎng)絡(luò)請求報(bào)文所使用的應(yīng)用層協(xié)議;
此時(shí),確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配的調(diào)試端口的端口號,具體包括:
確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備在使用確定的所述應(yīng)用層協(xié)議發(fā)送網(wǎng)絡(luò)請求報(bào)文時(shí)分配的調(diào)試端口號,其中,第三方調(diào)試用機(jī)針對同一嵌入式設(shè)備,在使用不同的應(yīng)用層協(xié)議發(fā)送網(wǎng)絡(luò)請求報(bào)文時(shí)分配不同的調(diào)試端口。
這里,第三方調(diào)試用機(jī)為不同的嵌入式設(shè)備的支持的各應(yīng)用層協(xié)議均分配不同的調(diào)試端口,例如,假設(shè)有嵌入式設(shè)備c1和c2,其中,c1支持的應(yīng)用層協(xié)議為http、ftp和snmp,c2支持的應(yīng)用層協(xié)議為http和ftp,則第三方調(diào)試用機(jī)為c1的http、ftp和snmp分別分配端口號p1、p2和p3;為c2支持的應(yīng)用層協(xié)議為http和ftp分別分配的端口號為p4和p5。
步驟506:路由器發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī);
若在上述步驟中,路由器將調(diào)試端口號攜帶在所述網(wǎng)絡(luò)請求報(bào)文中,則在本步驟506具體為,路由器發(fā)送轉(zhuǎn)換了源地址和目的地址且攜帶了調(diào)試端口號的網(wǎng)絡(luò)請求報(bào)文。
步驟507:第三方調(diào)試用機(jī)接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文;
由于路由器進(jìn)行了地址轉(zhuǎn)換,因此,本步驟507中接收的所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述路由器的ip地址,目的地址為第三方調(diào)試用機(jī)的ip地址;
步驟508:第三方調(diào)試用機(jī)解析接收的所述網(wǎng)絡(luò)請求報(bào)文,得到網(wǎng)絡(luò)請求數(shù)據(jù);
若本步驟508中,接收的網(wǎng)絡(luò)請求報(bào)文中包括調(diào)試端口號,則在本步驟508之后,下述步驟509之前,第三方調(diào)試用機(jī)還利用存儲的端口號和嵌入式設(shè)備的ip地之間的綁定關(guān)系,查找接收的網(wǎng)絡(luò)請求報(bào)文中包含的調(diào)試端口號所綁定的嵌入式設(shè)備的ip地址;
圖7中有兩個(gè)嵌入式設(shè)備,分別為c1和c2,若第三方調(diào)試用機(jī)m為c1分配的調(diào)試端口的端口號為p1,為c1分配的調(diào)試端口的端口號為p1,則,此時(shí),第三方調(diào)試用機(jī)m中記錄的綁定關(guān)系為p1與c1-ip(c1的ip地址)的綁定關(guān)系,p2與c2-ip(c2的ip地址)的綁定關(guān)系。
查找到時(shí),也即確定了接收的網(wǎng)絡(luò)請求報(bào)文的發(fā)送方為查找到的嵌入式設(shè)備的ip地址所表示的嵌入式設(shè)備,也即識別區(qū)分出了來自不同嵌入式設(shè)備的數(shù)據(jù)。
步驟509:第三方調(diào)試用機(jī)顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)。
若在步驟509之前,查找到了接收的網(wǎng)絡(luò)請求報(bào)文中包含的調(diào)試端口號所綁定的嵌入式設(shè)備的ip地址,則在本步驟509中,可以對應(yīng)顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)和查找到的嵌入式設(shè)備的ip地址。使得來自不同嵌入式設(shè)備的網(wǎng)絡(luò)請求數(shù)據(jù)可以分開進(jìn)行展現(xiàn),從而支持多個(gè)嵌入式設(shè)備同時(shí)接入調(diào)試,也方便調(diào)試人員進(jìn)行嵌入式設(shè)備的區(qū)分,有針對性地查看嵌入式設(shè)備的通信過程。
在上述本步驟507之后,第三方調(diào)試用機(jī)可以利用以下兩種方式中的任一種方式處理接收的所述網(wǎng)絡(luò)請求報(bào)文:
第一種處理方式:
將接收的所述網(wǎng)絡(luò)請求報(bào)文轉(zhuǎn)發(fā)給網(wǎng)絡(luò)服務(wù)器,進(jìn)行正常的數(shù)據(jù)收發(fā)。
具體實(shí)現(xiàn)方式包括以下兩種:
實(shí)現(xiàn)方式111):將所述網(wǎng)絡(luò)請求報(bào)文發(fā)送給網(wǎng)絡(luò)服務(wù)器;網(wǎng)絡(luò)服務(wù)器收到后,將針對所述網(wǎng)絡(luò)請求報(bào)文的網(wǎng)絡(luò)響應(yīng)報(bào)文返回給第三方調(diào)試用機(jī),第三方調(diào)試用機(jī)接收所述網(wǎng)絡(luò)服務(wù)器發(fā)送的網(wǎng)絡(luò)響應(yīng)報(bào)文;解析所述網(wǎng)絡(luò)響應(yīng)報(bào)文,得到網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);顯示所述網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);
實(shí)現(xiàn)方式112):通過中間件形式擴(kuò)展服務(wù)邏輯的機(jī)制,每一層中間件根據(jù)所經(jīng)過的報(bào)文信息(網(wǎng)絡(luò)請求報(bào)文及網(wǎng)絡(luò)響應(yīng)報(bào)文)完成一些處理工作,通過執(zhí)行next方法將工作交給下一個(gè)中間件繼續(xù)處理,其工作流程如圖6所示;中間件的機(jī)制可以使處理邏輯的擴(kuò)展變得十分方便靈活。
具體到上述第一種處理方式時(shí),在第三方調(diào)試用機(jī)中創(chuàng)建2個(gè)中間件:代理中間件和解析響應(yīng)中間件;其中,代理中間件用于將所述網(wǎng)絡(luò)請求報(bào)文發(fā)送給網(wǎng)絡(luò)服務(wù)器;解析響應(yīng)中間件用于解析接收的網(wǎng)絡(luò)響應(yīng)報(bào)文,顯示解析得到的網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);
此時(shí),第三方調(diào)試用機(jī)可以將所述網(wǎng)絡(luò)請求報(bào)文傳遞給代理中間件,以觸發(fā)代理中間件將所述網(wǎng)絡(luò)請求報(bào)文發(fā)送給網(wǎng)絡(luò)服務(wù)器;之后,接收所述網(wǎng)絡(luò)服務(wù)器發(fā)送的網(wǎng)絡(luò)響應(yīng)報(bào)文;將所述網(wǎng)絡(luò)響應(yīng)報(bào)文傳遞給解析響應(yīng)中間件,以觸發(fā)解析響應(yīng)中間件解析接收的網(wǎng)絡(luò)響應(yīng)報(bào)文,顯示解析得到的網(wǎng)絡(luò)響應(yīng)數(shù)據(jù)。
上述第一種處理方式中網(wǎng)絡(luò)請求/響應(yīng)報(bào)文在通信過程中的源地址和目的地址的改變具體如圖7所示。
圖7中畫了兩個(gè)r,可以將其看作是對圖4中的一個(gè)r進(jìn)行了功能拆分,拆分成了2個(gè)r,拆分成兩個(gè)r是為了方便說明源地址和目的地址的改變,圖7的本質(zhì)與圖4中的含義相同。圖7中c1-ip表示的是嵌入式設(shè)備c1的ip地 址,s-ip表示的是網(wǎng)絡(luò)服務(wù)器的ip地址,p1表示m上為c1分配的調(diào)試端口號,r-ip表示的是路由器r的ip地址,m-ip表示的是第三方調(diào)試用機(jī)m的ip地址,嵌入式設(shè)備c2的網(wǎng)絡(luò)通信過程與c1類似,為了圖7的簡潔明了,并沒有畫出。圖7中m和s之間的網(wǎng)絡(luò)通信過程是利用現(xiàn)有技術(shù)中的nat轉(zhuǎn)換來實(shí)現(xiàn)的,畫斜線的兩個(gè)框意在強(qiáng)調(diào)本申請中的nat轉(zhuǎn)換與現(xiàn)有技術(shù)中的nat轉(zhuǎn)換的區(qū)別。
在第三方調(diào)試用機(jī)將接收的網(wǎng)絡(luò)請求報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí),具體可以將該網(wǎng)絡(luò)請求報(bào)文發(fā)送給路由器,由路由器將接收的第三方調(diào)試用機(jī)發(fā)送的網(wǎng)絡(luò)請求報(bào)文以預(yù)先配置的網(wǎng)絡(luò)傳輸速率發(fā)送至網(wǎng)絡(luò)服務(wù)器。
這里,本申請的調(diào)試方法中,路由器可以對網(wǎng)絡(luò)傳輸速率進(jìn)行精細(xì)的控制,相對于現(xiàn)有的調(diào)試方法能更好地控制網(wǎng)絡(luò)通信,模擬出各種場景,具體原因如下:
為了開展嵌入式系統(tǒng)應(yīng)用程序或web頁面的開發(fā)、調(diào)試和測試工作,通常會利用代理工具,然而傳統(tǒng)的代理工具是為滿足用戶上網(wǎng)需求而設(shè)計(jì)的,應(yīng)用開發(fā)者利用代理的目的則是調(diào)試網(wǎng)絡(luò)通信過程?,F(xiàn)有技術(shù)方案基本均是在傳統(tǒng)代理工具的基礎(chǔ)上加入輔助開發(fā)調(diào)試的功能。
從tcp/ip網(wǎng)絡(luò)分層的角度分析傳統(tǒng)的代理工具,其僅工作在應(yīng)用層,屬于離網(wǎng)絡(luò)通信的底層最遠(yuǎn)的一層,顯然在應(yīng)用層對網(wǎng)絡(luò)通信進(jìn)行控制并不是最佳選擇。例如,在應(yīng)用調(diào)試時(shí),常常要對網(wǎng)速進(jìn)行控制以模擬弱網(wǎng)環(huán)境,然而,應(yīng)用層代理并沒有能力限制網(wǎng)速,只能通過將延時(shí)輸出響應(yīng)的方法近似網(wǎng)速的限定。而本申請是在網(wǎng)絡(luò)層解決問題,網(wǎng)絡(luò)層有能力控制網(wǎng)速,此外其它關(guān)于網(wǎng)絡(luò)通信過程的精細(xì)控制均可在網(wǎng)絡(luò)層實(shí)現(xiàn)。
tcp/ip協(xié)議中最主要的四層從下到上為:數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。路由器是在網(wǎng)絡(luò)層上運(yùn)行的設(shè)備,而傳統(tǒng)代理服務(wù)器運(yùn)行于應(yīng)用層。本申請中路由器運(yùn)行的網(wǎng)絡(luò)層相對于應(yīng)用層更底層,更能有效控制網(wǎng)絡(luò)通信。除了網(wǎng)速控制,還可以進(jìn)行路由控制、自定義dns、自定義防火墻規(guī)則等。
上述精細(xì)控制網(wǎng)速是指對網(wǎng)絡(luò)的上行、下行的平均速率、最高速率、最低速率均可以設(shè)置;既可以針對某一特定的設(shè)備的網(wǎng)速進(jìn)行設(shè)置,也可以對所有設(shè)備的網(wǎng)速進(jìn)行設(shè)置;可以通過設(shè)置參數(shù)模擬成gprs、3g、4g等各種網(wǎng)絡(luò)環(huán)境。
第二種處理方式:
保留接收的所述網(wǎng)絡(luò)請求報(bào)文,模擬網(wǎng)絡(luò)服務(wù)器生成針對所述網(wǎng)絡(luò)請求報(bào)文的網(wǎng)絡(luò)響應(yīng)報(bào)文,將模擬出來的網(wǎng)絡(luò)響應(yīng)報(bào)文通過路由器發(fā)送給所述嵌入式設(shè)備;
具體實(shí)現(xiàn)方式包括以下兩種:
實(shí)現(xiàn)方式211):確定接收的網(wǎng)絡(luò)請求報(bào)文使用的應(yīng)用層協(xié)議;從配置的應(yīng)用層協(xié)議中選擇出與確定的所述應(yīng)用層協(xié)議相匹配的應(yīng)用層協(xié)議;利用選擇出的所述應(yīng)用層協(xié)議,模擬網(wǎng)絡(luò)服務(wù)器為所述嵌入式設(shè)備生成網(wǎng)絡(luò)響應(yīng)報(bào)文;將生成的所述網(wǎng)絡(luò)響應(yīng)報(bào)文通過路由器發(fā)送給所述嵌入式設(shè)備;解析生成的所述網(wǎng)絡(luò)響應(yīng)報(bào)文,得到網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);顯示所述網(wǎng)絡(luò)響應(yīng)數(shù)據(jù)。
實(shí)現(xiàn)方式212):使用中間件的形式,與上述實(shí)現(xiàn)方式12)的基本思想相同。具體為:在第三方調(diào)試用機(jī)中針對每個(gè)應(yīng)用層協(xié)議創(chuàng)建三個(gè)中間件:模擬數(shù)據(jù)中間件、代理中間件和解析響應(yīng)中間件,并將這三個(gè)中間件放置在創(chuàng)建的應(yīng)用層服務(wù)框架這個(gè)容器中;例如,針對應(yīng)用層協(xié)議ftp,創(chuàng)建應(yīng)用層服務(wù)框架1,里面放置模擬數(shù)據(jù)中間件、代理中間件和解析響應(yīng)中間件這三個(gè)中間件,專門為使用應(yīng)用層協(xié)議ftp的網(wǎng)絡(luò)請求報(bào)文提供服務(wù);針對引用層協(xié)議http,創(chuàng)建應(yīng)用層服務(wù)框架2,里面放置模擬數(shù)據(jù)中間件、代理中間件和解析響應(yīng)中間件這三個(gè)中間件,專門為使用應(yīng)用層協(xié)議ftp的網(wǎng)絡(luò)請求報(bào)文提供服務(wù)。
所述應(yīng)用層服務(wù)框架用于確定接收的網(wǎng)絡(luò)請求報(bào)文使用的應(yīng)用層協(xié)議,從配置的應(yīng)用層協(xié)議中選擇出與確定的所述應(yīng)用層協(xié)議相匹配的應(yīng)用層協(xié)議;
模擬數(shù)據(jù)中間件用于根據(jù)事先配置的模擬數(shù)據(jù)攔截規(guī)則跳過代理中間件直接生成網(wǎng)絡(luò)響應(yīng)報(bào)文;代理中間件用于根據(jù)接收到的請求報(bào)文,重新構(gòu)造對 網(wǎng)絡(luò)服務(wù)器的請求并將網(wǎng)絡(luò)服務(wù)器的響應(yīng)報(bào)文轉(zhuǎn)遞發(fā)送給所述嵌入式設(shè)備;解析響應(yīng)中間件用于解析生成的所述網(wǎng)絡(luò)響應(yīng)報(bào)文,得到網(wǎng)絡(luò)響應(yīng)數(shù)據(jù),在第三方調(diào)試用機(jī)中顯示所述網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);
此時(shí),將接收的網(wǎng)絡(luò)請求報(bào)文傳遞給模擬數(shù)據(jù)中間件,模擬數(shù)據(jù)中間件嘗試匹配所接收的網(wǎng)絡(luò)請求報(bào)文,若與事先配置的模擬數(shù)據(jù)攔截規(guī)則相匹配,則觸發(fā)該模擬數(shù)據(jù)中間件生成網(wǎng)絡(luò)響應(yīng)報(bào)文;
若模擬數(shù)據(jù)中間件未匹配上所接收的網(wǎng)絡(luò)請求報(bào)文,則繼續(xù)將請求報(bào)文傳遞給代理中間件,以觸發(fā)該代理中間件重新構(gòu)造對網(wǎng)絡(luò)服務(wù)器的請求并將遠(yuǎn)程服務(wù)器的響應(yīng)報(bào)文轉(zhuǎn)遞發(fā)送給所述嵌入式設(shè)備;
將模擬數(shù)據(jù)中間件或代理中間件發(fā)送的網(wǎng)絡(luò)響應(yīng)報(bào)文傳遞給解析響應(yīng)中間件,以觸發(fā)解析響應(yīng)中間件解析所述網(wǎng)絡(luò)響應(yīng)報(bào)文,顯示解析得到的網(wǎng)絡(luò)響應(yīng)數(shù)據(jù)。
上述第二種處理方式一方面實(shí)現(xiàn)了對網(wǎng)絡(luò)的請求與響應(yīng)進(jìn)行攔截并深度控制,例如,根據(jù)開發(fā)者的某種描述,攔截特定的網(wǎng)絡(luò)請求并將指定的數(shù)據(jù)作為響應(yīng)。另一方面相對于傳統(tǒng)的將第三方調(diào)試用機(jī)作為代理服務(wù)器的方式而言,提高了協(xié)議的擴(kuò)展性,這是因?yàn)椋簩τ谇度胧皆O(shè)備來說,本申請的第三方調(diào)試用機(jī)的身份就是一臺正常的網(wǎng)絡(luò)服務(wù)器,該網(wǎng)絡(luò)服務(wù)器中需要支持什么協(xié)議都可以配置,因此擴(kuò)展性高,而傳統(tǒng)的代理方式,第三方調(diào)試用機(jī)對于嵌入式設(shè)備來說是一臺代理服務(wù)器,有些協(xié)議經(jīng)過代理后會不支持。
進(jìn)一步地,出于網(wǎng)絡(luò)安全方面的考慮,業(yè)務(wù)上通常會對網(wǎng)絡(luò)通信過程進(jìn)行加密,這也提高了嵌入式系統(tǒng)中應(yīng)用程序或web頁面開發(fā)調(diào)試的難度,在調(diào)試過程中,獲取或攔截加密內(nèi)容的主機(jī)并非真正的服務(wù)器,需要通過中間人的方式(本申請中即為第三方調(diào)試用機(jī))截獲請求進(jìn)而開展調(diào)試工作,因此,需要解決嵌入式設(shè)備對這一尚未信任的第三方調(diào)試用機(jī)的信任問題。
為此,本申請給出了一種確定第三方調(diào)試用機(jī)為信任的第三方調(diào)試用機(jī)的方法,包括以下步驟301至步驟313:
步驟301:利用openssl簽發(fā)生成一個(gè)根證書,存放于信任的第三方調(diào)試用機(jī);
步驟302:嵌入式設(shè)備向信任的第三方調(diào)試用機(jī)發(fā)送下載請求報(bào)文;
步驟303:第三方調(diào)試用機(jī)接收嵌入式設(shè)備發(fā)送的下載請求報(bào)文;
步驟304:第三方調(diào)試用機(jī)為嵌入式設(shè)備提供根證書的下載服務(wù);
步驟305:嵌入式設(shè)備利用信任的第三方調(diào)試用機(jī)提供的下載服務(wù)下載根證書;
步驟306:嵌入式設(shè)備安裝下載的根證書;
步驟307:嵌入式設(shè)備通過路由器向第三方調(diào)試用機(jī)發(fā)送加密請求報(bào)文,所述加密請求報(bào)文的報(bào)頭中包含域名;
步驟308:第三方調(diào)試用機(jī)接收所述嵌入式設(shè)備發(fā)送的加密請求報(bào)文;
步驟309:第三方調(diào)試用機(jī)利用所述根證書為所述域名簽發(fā)對應(yīng)的域名證書;
步驟310:第三方調(diào)試用機(jī)向所述第三方調(diào)試用機(jī)發(fā)送加密響應(yīng),所述加密響應(yīng)報(bào)文中攜帶有所述域名證書。
步驟311:嵌入式設(shè)備接收第三方調(diào)試用機(jī)發(fā)送的加密響應(yīng)報(bào)文;
步驟312:嵌入式設(shè)備利用安裝的根證書識別所述域名證書;
步驟313:嵌入式設(shè)備在識別出所述域名證書時(shí),將發(fā)送所述加密響應(yīng)報(bào)文的第三方調(diào)試用機(jī)作為信任的第三方調(diào)試用機(jī);
至此,解決了嵌入式設(shè)備對尚未信任的第三方調(diào)試用機(jī)的信任的問題。
信任之后,每次嵌入式設(shè)備與信任的第三方調(diào)試用機(jī)通信,都有密碼協(xié)商的過程,協(xié)商好的密碼是一個(gè)對稱密碼,嵌入式設(shè)備利用該對稱密碼加密,第三方調(diào)試用機(jī)用該對稱密碼解密,具體可參考以下網(wǎng)址中介紹的https的通信過程:http://www.cnblogs.com/ttltry-air/archive/2012/08/20/2647898.html。
在建立信任的基礎(chǔ)上,對于加密通信(如https協(xié)議),本申請還實(shí)現(xiàn)了對加密網(wǎng)絡(luò)通信數(shù)據(jù)的明文解析,具體過程與上述步驟501至步驟509類似, 不同之處在于:
在上述步驟502之后,步驟503之前,嵌入式設(shè)備利用協(xié)商的對稱密碼加密生成的所述網(wǎng)絡(luò)請求報(bào)文,得到加密后的網(wǎng)絡(luò)請求報(bào)文;
上述步驟503替換為:嵌入式設(shè)備將加密后的網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器。
上述步驟507中,第三方調(diào)試用機(jī)接收的為嵌入式設(shè)備通過路由器發(fā)送的加密后的網(wǎng)絡(luò)請求報(bào)文,在上述步驟507之后,步驟508之前,第三方調(diào)試用機(jī)還利用協(xié)商的對稱密碼解密接收的加密后的網(wǎng)絡(luò)請求報(bào)文,得到解密后的網(wǎng)絡(luò)請求報(bào)文;
上述步驟508替換為:第三方調(diào)試用機(jī)解析解密后的網(wǎng)絡(luò)請求報(bào)文,得到網(wǎng)絡(luò)請求數(shù)據(jù)。
此外,第三方調(diào)試用機(jī)作為中間人將嵌入式設(shè)備的網(wǎng)絡(luò)請求報(bào)文轉(zhuǎn)發(fā)給網(wǎng)絡(luò)服務(wù)器,網(wǎng)絡(luò)服務(wù)器返回網(wǎng)絡(luò)響應(yīng)報(bào)文后,因?yàn)榈谌秸{(diào)試用機(jī)是網(wǎng)絡(luò)請求發(fā)起方,自然能夠?qū)邮盏拿芪男问降木W(wǎng)絡(luò)響應(yīng)報(bào)文進(jìn)行解密,獲取網(wǎng)絡(luò)響應(yīng)明文數(shù)據(jù)。
至此加密的請求與響應(yīng)數(shù)據(jù)都被第三方調(diào)試用機(jī)明文解析。
此外,本申請實(shí)施例在以下硬件和軟件配置中能夠達(dá)到最佳的實(shí)施效果:
硬件:routerboard(mikrotik基于routeros開發(fā)的路由主板)或其它搭載routeros系統(tǒng)的硬件平臺;
軟件:編程語言使用node.js,其擅長處理i/o密集型的并發(fā)請求。
在本申請實(shí)施例的方案中,通過nat規(guī)則的轉(zhuǎn)換功能,把原先需要在嵌入式設(shè)備中設(shè)置參數(shù)的過程,移到了路由器中去設(shè)置,完成無感知的網(wǎng)絡(luò)通信參數(shù)設(shè)置,最小化嵌入式設(shè)備的設(shè)置要求,幾乎可以支持所有的聯(lián)網(wǎng)嵌入式系統(tǒng)。
進(jìn)一步地,通過在第三方調(diào)試用機(jī)上設(shè)置調(diào)試端口以及啟動相應(yīng)的進(jìn)程,使得第三方調(diào)試用機(jī)可以區(qū)分多個(gè)嵌入式設(shè)備,也即支持多個(gè)嵌入式設(shè)備同時(shí) 進(jìn)行調(diào)試。
此外,結(jié)合路由器運(yùn)行于網(wǎng)絡(luò)層之上這一功能,實(shí)現(xiàn)了對嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的有效控制;以及結(jié)合第三方調(diào)試用機(jī)的應(yīng)用層協(xié)議可配置的功能,在應(yīng)用層對各種協(xié)議支持的擴(kuò)展型提高,對接收到的網(wǎng)絡(luò)請求報(bào)文所采用的應(yīng)用層協(xié)議的支持性較好。
最后,在對網(wǎng)路請求報(bào)文進(jìn)行處理時(shí),以中間件形式擴(kuò)展服務(wù)邏輯,實(shí)現(xiàn)了方便靈活地深度控制網(wǎng)絡(luò)通信。
基于同一發(fā)明構(gòu)思,本申請實(shí)施例還提供了三種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置,其中,第一種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置的結(jié)構(gòu)示意圖如圖8所示,包括:接收單元81、轉(zhuǎn)換單元82和發(fā)送單元83;其中:
接收單元81,用于接收嵌入式設(shè)備發(fā)送的網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述嵌入式設(shè)備的ip地址,目的地址為網(wǎng)絡(luò)服務(wù)器的ip地址,用于請求網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
轉(zhuǎn)換單元82,用于將所述網(wǎng)絡(luò)請求報(bào)文的目的地址和源地址分別轉(zhuǎn)換為第三方調(diào)試用機(jī)的ip地址和所述路由器的ip地址;
發(fā)送單元83,用于發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī),以使第三方調(diào)試用機(jī)顯示所述網(wǎng)絡(luò)請求報(bào)文中的網(wǎng)絡(luò)請求數(shù)據(jù)。
較佳的,所述裝置還包括:
判斷單元84,用于在接收單元接收嵌入式設(shè)備發(fā)送的網(wǎng)絡(luò)請求報(bào)文之后,發(fā)送單元發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī)之前,判斷所述網(wǎng)絡(luò)請求報(bào)文的源地址是否屬于待調(diào)試嵌入式設(shè)備地址白名單,若屬于待調(diào)試嵌入式設(shè)備地址白名單,則觸發(fā)發(fā)送單元;
所述發(fā)送單元83,具體用于發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī)。
較佳的,所述裝置還包括:
第一確定單元85,用于在接收單元接收嵌入式設(shè)備發(fā)送的網(wǎng)絡(luò)請求報(bào)文之 后,發(fā)送單元發(fā)送轉(zhuǎn)換了源地址和目的地址的網(wǎng)絡(luò)請求報(bào)文至第三方調(diào)試用機(jī)之前,確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配的調(diào)試端口的端口號,其中,所述第三方調(diào)試用機(jī)為不同的嵌入式設(shè)備分配不同的調(diào)試端口;
所述轉(zhuǎn)換單元82,還用于將調(diào)試端口號攜帶在所述網(wǎng)絡(luò)請求報(bào)文中;
所述發(fā)送單元83,具體用于發(fā)送轉(zhuǎn)換了源地址和目的地址且攜帶了調(diào)試端口號的網(wǎng)絡(luò)請求報(bào)文。
較佳的,所述裝置還包括:
第二確定單元86,用于在接收單元接收嵌入式設(shè)備發(fā)送的網(wǎng)絡(luò)請求報(bào)文后,第一確定單元確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配的調(diào)試端口的端口號之前確定所述網(wǎng)絡(luò)請求報(bào)文所使用的應(yīng)用層協(xié)議;
所述第一確定單元85,具體確定第三方調(diào)試用機(jī)為所述嵌入式設(shè)備在使用確定的所述應(yīng)用層協(xié)議發(fā)送網(wǎng)絡(luò)請求報(bào)文時(shí)分配的調(diào)試端口號,其中,第三方調(diào)試用機(jī)針對同一嵌入式設(shè)備,在使用不同的應(yīng)用層協(xié)議發(fā)送網(wǎng)絡(luò)請求報(bào)文時(shí)分配不同的調(diào)試端口。
較佳的,所述裝置還包括:
第三確定單元87,用于通過以下方式獲得第三方調(diào)試用機(jī)的ip地址和待調(diào)試嵌入式設(shè)備地址白名單:接收第三方調(diào)試用機(jī)發(fā)送的目的地址調(diào)整指令,所述目的地址調(diào)整指令中包含第三方調(diào)試用機(jī)的ip地址和嵌入式設(shè)備的ip地址;將目的地址調(diào)整指令中包含的第三方調(diào)試用機(jī)的ip地址和嵌入式設(shè)備的ip地址分別作為地址轉(zhuǎn)換用的第三方調(diào)試用機(jī)的ip地址和待調(diào)試嵌入式設(shè)備地址白名單。
較佳的,所述接收單元81,還用于接收第三方調(diào)試用機(jī)發(fā)送的網(wǎng)絡(luò)請求報(bào)文;
所述發(fā)送單元83,還用于將接收的第三方調(diào)試用機(jī)發(fā)送的網(wǎng)絡(luò)請求報(bào)文以預(yù)先配置的網(wǎng)絡(luò)傳輸速率發(fā)送至網(wǎng)絡(luò)服務(wù)器。
本申請實(shí)施例提供的第二種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置的結(jié) 構(gòu)示意圖如圖9所示,包括:確定單元91、報(bào)文生成單元92和發(fā)送單元93;其中:
確定單元91,用于確定網(wǎng)絡(luò)服務(wù)器的ip地址;
報(bào)文生成單元92,用于以確定單元確定的網(wǎng)絡(luò)服務(wù)器的ip地址為目的地址,以所述嵌入式設(shè)備的ip地址為源地址,生成網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文用于請求所述網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
發(fā)送單元93,用于將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器,其中,所述路由器將所述網(wǎng)絡(luò)請求報(bào)文進(jìn)行源地址和目的地址轉(zhuǎn)換后發(fā)送至第三方調(diào)試用機(jī)。
較佳的,所述裝置還包括:
掃描單元94,用于在發(fā)送單元將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器之前,掃描所述第三方調(diào)試用機(jī)上顯示的二維碼,所述二維碼的內(nèi)容為專門用于所述嵌入式設(shè)備和所述第三方調(diào)試用機(jī)進(jìn)行綁定的web服務(wù)地址;
所述發(fā)送單元93,還用于向所述第三方調(diào)試用機(jī)發(fā)送訪問所述web服務(wù)地址的訪問請求報(bào)文,以使所述第三方調(diào)試用機(jī)將所述訪問請求報(bào)文中的源地址作為發(fā)送給所述路由器的目的地址調(diào)整指令中包含的嵌入式設(shè)備的ip地址。
較佳的,所述發(fā)送單元93,還用于在將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器之前,向所述第三方調(diào)試用機(jī)發(fā)送綁定請求報(bào)文,以使第三方調(diào)試用機(jī)為所述嵌入式設(shè)備分配調(diào)試端口,以及將該調(diào)試端口的端口號和所述嵌入式設(shè)備的ip地址綁定;
所述裝置還包括:
接收單元95,用于接收所述第三方調(diào)試用機(jī)發(fā)送的綁定響應(yīng)報(bào)文,所述綁定響應(yīng)報(bào)文中包含綁定結(jié)果。
較佳的,所述發(fā)送單元93,還用于在將生成的所述網(wǎng)絡(luò)請求報(bào)文通過路由器發(fā)送給網(wǎng)絡(luò)服務(wù)器之前,向信任的第三方調(diào)試用機(jī)發(fā)送下載請求報(bào)文;
所述裝置還包括:下載單元96、安裝單元97、接收單元95和識別單元98;
下載單元96,用于利用信任的第三方調(diào)試用機(jī)提供的下載服務(wù)下載根證書;
所述安裝單元97,用于安裝下載的根證書;
所述發(fā)送單元93,還用于通過路由器向第三方調(diào)試用機(jī)發(fā)送加密請求報(bào)文,所述加密請求報(bào)文的報(bào)頭中包含域名;
所述接收單元95,用于接收第三方調(diào)試用機(jī)發(fā)送的加密響應(yīng)報(bào)文,所述加密響應(yīng)報(bào)文中攜帶有域名證書,所述域名證書為第三方調(diào)試用機(jī)利用根證書為所述域名簽發(fā)的證書;
識別單元98,用于利用安裝單元安裝的根證書識別所述域名證書,在識別出所述域名證書時(shí),將發(fā)送所述加密響應(yīng)報(bào)文的第三方調(diào)試用機(jī)作為信任的第三方調(diào)試用機(jī)。
本申請實(shí)施例提供的第三種調(diào)試嵌入式設(shè)備的網(wǎng)絡(luò)通信過程的裝置的結(jié)構(gòu)示意圖如圖10所示,包括:接收單元101、解析單元102和顯示單元103;其中:
接收單元101,用于接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文,所述網(wǎng)絡(luò)請求報(bào)文的源地址為所述路由器的ip地址,目的地址為第三方調(diào)試用機(jī)的ip地址,用于請求網(wǎng)絡(luò)服務(wù)器提供網(wǎng)絡(luò)服務(wù);
解析單元102,用于解析接收的所述網(wǎng)絡(luò)請求報(bào)文,得到網(wǎng)絡(luò)請求數(shù)據(jù);
顯示單元103,用于顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)。
較佳的,所述裝置還包括:發(fā)送單元104,用于在接收單元接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文之前,向所述路由器發(fā)送目的地址調(diào)整指令,所述目的地址調(diào)整指令中包含第三方調(diào)試用機(jī)的ip地址和嵌入式設(shè)備的ip地址,用于指示所述路由器將接收的來自所述嵌入式設(shè)備的網(wǎng)絡(luò)請求報(bào)文的目的地址修改為所述第三方調(diào)試用機(jī)的ip地址。
較佳的,所述裝置還包括:第一確定單元105,用于通過以下任一方式獲 得所述嵌入式設(shè)備的ip地址:方式一:接收用戶輸入的嵌入式設(shè)備的ip地址;方式二:接收嵌入式設(shè)備的訪問請求報(bào)文,所述訪問請求報(bào)文是嵌入式設(shè)備在掃描所述第三方調(diào)試用機(jī)上顯示的二維碼后發(fā)出的,所述二維碼的內(nèi)容為專門用于所述嵌入式設(shè)備和所述第三方調(diào)試用機(jī)進(jìn)行綁定的web服務(wù)地址;將接收的所述訪問請求報(bào)文中的源地址作為所述嵌入式設(shè)備的ip地址。
較佳的,所述接收單元101,還用于在接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文之前,接收所述嵌入式設(shè)備發(fā)送的綁定請求報(bào)文;
所述裝置還包括:分配單元106、綁定單元107、發(fā)送單元104和查找單元108;
所述分配單元106,用于為所述嵌入式設(shè)備分配調(diào)試端口;
所述綁定單元107,用于將分配的調(diào)試端口的端口號和所述嵌入式設(shè)備的ip地址綁定;
所述發(fā)送單元104,用于向所述嵌入式設(shè)備發(fā)送綁定響應(yīng)報(bào)文,所述綁定響應(yīng)報(bào)文中包含綁定結(jié)果;
所述查找單元108,用于在接收單元接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文之后,顯示單元顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)之前,利用綁定單元存儲的端口號和嵌入式設(shè)備的ip地之間的綁定關(guān)系,查找接收的網(wǎng)絡(luò)請求報(bào)文中包含的調(diào)試端口號所綁定的嵌入式設(shè)備的ip地址;
所述顯示單元103,具體用于對應(yīng)顯示所述網(wǎng)絡(luò)請求數(shù)據(jù)和查找到的嵌入式設(shè)備的ip地址。
較佳的,所述綁定請求報(bào)文中還包括嵌入式設(shè)備所支持的應(yīng)用層協(xié)議;
所述分配單元106,具體用于為所述嵌入式設(shè)備支持的不同應(yīng)用層協(xié)議分配不同的調(diào)試端口;
所述綁定單元107,具體用于將分配的調(diào)試端口的端口號、所述嵌入式設(shè)備的ip地址和應(yīng)用層協(xié)議綁定并存儲。
較佳的,所述接收單元101,還用于接收嵌入式設(shè)備發(fā)送的下載請求報(bào)文;
所述裝置還包括:服務(wù)提供單元109、簽發(fā)單元110和發(fā)送單元104;
服務(wù)提供單元109,用于為嵌入式設(shè)備提供根證書的下載服務(wù);
所述接收單元101,還用于接收所述嵌入式設(shè)備發(fā)送的加密請求報(bào)文,所述加密請求報(bào)文頭中包含域名;
簽發(fā)單元110,用于利用所述根證書為所述域名簽發(fā)對應(yīng)的域名證書;
發(fā)送單元104,用于向所述第三方調(diào)試用機(jī)發(fā)送加密響應(yīng),所述加密響應(yīng)中攜帶有域名證書;
所述接收單元101,具體用于接收嵌入式設(shè)備通過路由器發(fā)送的加密后的網(wǎng)絡(luò)請求報(bào)文。
較佳的,所述裝置還包括:
發(fā)送單元104,用于在接收單元接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文之后,將所述網(wǎng)絡(luò)請求報(bào)文發(fā)送給網(wǎng)絡(luò)服務(wù)器;
所述接收單元101,還用于接收所述網(wǎng)絡(luò)服務(wù)器發(fā)送的網(wǎng)絡(luò)響應(yīng)報(bào)文;
所述解析單元102,還用于解析所述網(wǎng)絡(luò)響應(yīng)報(bào)文,得到網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);
所述顯示單元103,還用于顯示所述網(wǎng)絡(luò)響應(yīng)數(shù)據(jù)。
較佳的,所述裝置還包括:第二確定單元111、選擇單元112、模擬單元113和發(fā)送單元104;
所述第二確定單元111,用于在接收單元接收嵌入式設(shè)備通過路由器發(fā)送的網(wǎng)絡(luò)請求報(bào)文之后,確定接收的網(wǎng)絡(luò)請求報(bào)文使用的應(yīng)用層協(xié)議;
所述選擇單元112,用于從配置的應(yīng)用層協(xié)議中選擇出與確定的所述應(yīng)用層協(xié)議相匹配的應(yīng)用層協(xié)議;
所述模擬單元113,用于利用選擇出的所述應(yīng)用層協(xié)議,模擬網(wǎng)絡(luò)服務(wù)器為所述嵌入式設(shè)備生成網(wǎng)絡(luò)響應(yīng)報(bào)文;
所述發(fā)送單元104,用于將生成的所述網(wǎng)絡(luò)響應(yīng)報(bào)文通過路由器發(fā)送給所述嵌入式設(shè)備;
所述解析單元102,還用于解析所述網(wǎng)絡(luò)響應(yīng)報(bào)文,得到網(wǎng)絡(luò)響應(yīng)數(shù)據(jù);
所述顯示單元103,還用于顯示所述網(wǎng)絡(luò)響應(yīng)數(shù)據(jù)。
在本申請實(shí)施例的方案中,由于在調(diào)試系統(tǒng)中添加路由器,將原有的在嵌入式設(shè)備中設(shè)置代理參數(shù)實(shí)現(xiàn)向第三方調(diào)試用機(jī)發(fā)送網(wǎng)絡(luò)請求的功能轉(zhuǎn)移到在路由器中實(shí)現(xiàn),因此,既不需要在嵌入式設(shè)備中設(shè)置代理參數(shù),也不需要在業(yè)務(wù)邏輯之外增加調(diào)試邏輯,解決了現(xiàn)有的調(diào)試方法存在的無法適用于不提供設(shè)置代理服務(wù)參數(shù)的嵌入式設(shè)備的調(diào)試,或者在應(yīng)用程序中增加調(diào)試業(yè)務(wù)邏輯導(dǎo)致的業(yè)務(wù)系統(tǒng)不穩(wěn)定的問題。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全應(yīng)用軟件實(shí)施例、或結(jié)合應(yīng)用軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè) 流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。