• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于LwIP協(xié)議棧的PCP協(xié)議的設(shè)計(jì)

      2014-01-16 05:58:00劉艷萍司賽騰趙連環(huán)
      電子設(shè)計(jì)工程 2014年14期
      關(guān)鍵詞:端口號(hào)公網(wǎng)IP地址

      劉艷萍,司賽騰,趙連環(huán)

      (1. 河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300401;2.唐山世佳電子有限公司 河北 唐山 063020)

      隨著近些年來網(wǎng)絡(luò)的普遍化,嵌入式設(shè)備的網(wǎng)絡(luò)接入已經(jīng)成為主流趨勢(shì)。嵌入式設(shè)備的網(wǎng)絡(luò)化與串口通信技術(shù)相比,它是一種低成本、高性能的使用方案。同時(shí)也為測(cè)量與儀器技術(shù)帶來了前所未有的發(fā)展空間和機(jī)遇,網(wǎng)絡(luò)化測(cè)量技術(shù)與具備網(wǎng)絡(luò)功能的新型儀器應(yīng)運(yùn)而生。 LwIP的出現(xiàn),讓嵌入式產(chǎn)品在互聯(lián)網(wǎng)通信方面的使用更方便?,F(xiàn)在的網(wǎng)絡(luò)通信過程中,除了個(gè)別場(chǎng)所使用的是靜態(tài)的IP地址,大部分的IP地址都是使用DHCP協(xié)議來取得的。主機(jī)的網(wǎng)絡(luò)連接有兩種情況,一是網(wǎng)絡(luò)直接連接主機(jī),進(jìn)行地址映射的可能性比較??;另外,主機(jī)處于內(nèi)部私網(wǎng),能夠使公網(wǎng)的IP地址映射到內(nèi)部的私網(wǎng)地址。PCP協(xié)議是在LwIP協(xié)議棧的基礎(chǔ)上,提出動(dòng)態(tài)的地址映射,使操作更加方便。

      1 Lw IP協(xié)議棧簡(jiǎn)介

      LwIP 協(xié)議棧[1]是瑞士計(jì)算機(jī)學(xué)院(SICS)的 Adam Dunkels開發(fā)的一套用于嵌入式系統(tǒng)的開放性 TCP/IP 協(xié)議棧。它們占用大約20k 大小的 RAM 和 60k 左右的 ROM 的空間 ,很適合 與 μC/OS-II 操作系統(tǒng)相配合使用。 最新的LwIP 版本到了1.4.1,這個(gè)實(shí)現(xiàn)了較為完備的 IP、ICMP、IGMP、UDP、TCP、DHCP、DNS、PPPOE 等協(xié)議[2]。

      圖1 LwIP 協(xié)議棧協(xié)議Fig. 1 LwIP stack protocol

      對(duì)于不同的協(xié)議進(jìn)行不同的分層,圖1中給出了LwIP 協(xié)議棧所包含的協(xié)議,其中的DHCP和DNS協(xié)議包含在應(yīng)用層的對(duì)應(yīng)的UDP的應(yīng)用協(xié)議中,其他的各種應(yīng)用進(jìn)程是根據(jù)用戶的據(jù)圖需要,傳輸層和網(wǎng)絡(luò)層所顯示的是LwIP協(xié)議棧的各種協(xié)議,網(wǎng)絡(luò)接口層的網(wǎng)絡(luò)接口用來實(shí)現(xiàn)數(shù)據(jù)傳輸。

      各層之間的協(xié)議,為了實(shí)現(xiàn)兼容協(xié)議標(biāo)準(zhǔn),實(shí)現(xiàn)互聯(lián)網(wǎng)的接入,需要嚴(yán)格的遵循協(xié)議模型,不過,由于LwIP 協(xié)議棧是面向各種嵌入式設(shè)備的,為了減少內(nèi)存的消耗,采用靈活的數(shù)據(jù)包存儲(chǔ)機(jī)制,發(fā)送和接收的數(shù)據(jù)在各層協(xié)議之間不需要拷貝。

      2 PCP協(xié)議簡(jiǎn)介

      PCP是端口控制協(xié)議[3],是新提出的一種端口映射協(xié)議,它在原有的端口映射協(xié)議的基礎(chǔ)上提出了兼容IPv6、第三方控制等新功能。原有的端口映射協(xié)議主要實(shí)現(xiàn)的是IPv4的地址協(xié)議之間的相互映射。為了IPv6協(xié)議的推廣,PCP協(xié)議就隨之出現(xiàn)。PCP既可以實(shí)現(xiàn)IPv4協(xié)議之間的映射和IPv6協(xié)議之間的映射,又能完成IPv6協(xié)議[4]和IPv4協(xié)議之間的映射。

      PCP是一種標(biāo)準(zhǔn)的應(yīng)用層協(xié)議,使用UDP的 5350 和5351端口號(hào)以請(qǐng)求、應(yīng)答的方式來實(shí)現(xiàn)。如圖2所示,給出了PCP 協(xié)議的網(wǎng)絡(luò)OSI模型。PCP服務(wù)器端使用的端口號(hào)是 5350,而客戶端的端口號(hào)是 5351,這里分開的原因主要是UDP的端口號(hào) 5350 用于服務(wù)器端對(duì)端口的監(jiān)聽,而UDP的端口號(hào) 5351 則用于客戶端對(duì)端口的監(jiān)聽。一個(gè)網(wǎng)絡(luò)設(shè)備通常既需要作為某些設(shè)備的服務(wù)器,同時(shí)它又是某個(gè)設(shè)備的客戶端,對(duì)于某些操作系統(tǒng)來說,不能夠使用一個(gè)端口來實(shí)現(xiàn)這種通信方式,為了使通信變得更加簡(jiǎn)單,應(yīng)用的更加廣泛才做出這種不同端口的設(shè)置[5]。PCP協(xié)議的提出,能夠在原有私有IP地址和公有的IP地址映射的基礎(chǔ)上,擴(kuò)大了映射的可操作性。

      圖2 PCP 協(xié)議的OSI模型Fig. 2 PCP protocol OSI model

      3 Lw IP協(xié)議棧的PCP協(xié)議設(shè)計(jì)

      PCP協(xié)議的提出是為了實(shí)現(xiàn)公網(wǎng)IP地址與私網(wǎng)IP地址之間的映射,能夠更好的對(duì)私網(wǎng)設(shè)備進(jìn)行通訊。PCP協(xié)議的實(shí)現(xiàn)是基于UDP協(xié)議的通訊協(xié)議,發(fā)送請(qǐng)求報(bào)文到對(duì)應(yīng)的服務(wù)器端,以請(qǐng)求、響應(yīng)的方式進(jìn)行。對(duì)于PCP操作存在兩種操作方式,一是使用MAP映射操作;二是使用PEER映射操作。為了能夠保證連接的順利傳輸,就需要同時(shí)建立MAP和PEER協(xié)議。PCP協(xié)議的運(yùn)用遵循普遍的服務(wù)器、客戶端模型。不同的映射操作,所對(duì)應(yīng)的服務(wù)器和客戶端不同。

      3.1 MAP映射的建立

      當(dāng)數(shù)據(jù)通過路由器或者防火墻,由外部網(wǎng)絡(luò)向內(nèi)部網(wǎng)絡(luò)傳輸?shù)臅r(shí)候,MAP映射需要被建立。如圖3給出了數(shù)據(jù)從外部網(wǎng)絡(luò)經(jīng)過中間的網(wǎng)絡(luò)隔離器傳輸?shù)絻?nèi)部主機(jī)的過程。

      圖3 私網(wǎng)主機(jī)的數(shù)據(jù)包輸入Fig. 3 Private network host packet input

      由于外網(wǎng)的公網(wǎng)地址的地址簇類型不能夠確定或者外部網(wǎng)絡(luò)不能夠穿越防火墻,所以路由器或者防火墻就需要一個(gè)指向內(nèi)部主機(jī)的映射。映射建立需要以下步驟:

      1) 中間的網(wǎng)絡(luò)隔離器,需要?jiǎng)?chuàng)建一個(gè)MAP請(qǐng)求,然后發(fā)送給內(nèi)部主機(jī)。2) 內(nèi)部主機(jī)接收響應(yīng),檢查是否是正確的請(qǐng)求數(shù)據(jù)包,給出對(duì)應(yīng)響應(yīng)。3) 路由器或者防火墻收到發(fā)送的響應(yīng)后,檢查響應(yīng)包,記錄映射,完成MAP映射的創(chuàng)建。

      在MAP映射創(chuàng)建過程中,當(dāng)收到錯(cuò)誤代碼的響應(yīng)包時(shí),根據(jù)不同情況來處理;當(dāng)接受不到響應(yīng)包時(shí),根據(jù)規(guī)則對(duì)請(qǐng)求包重發(fā)。

      MAP映射成功建立后,當(dāng)數(shù)據(jù)包從外部網(wǎng)絡(luò)傳輸路由器或者防火墻時(shí),我們對(duì)其進(jìn)行數(shù)據(jù)包的更改,然后發(fā)送給內(nèi)部主機(jī),內(nèi)網(wǎng)和外網(wǎng)之間可以是不同的地址協(xié)議。

      3.2 PEER映射的建立

      當(dāng)數(shù)據(jù)通過路由器或者防火墻,由內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)傳輸?shù)臅r(shí)候,PEER映射需要被建立。它用來完成地址的映射。如圖4,給出了數(shù)據(jù)從內(nèi)部主機(jī)經(jīng)過中間的網(wǎng)絡(luò)隔離器傳輸?shù)酵獠烤W(wǎng)絡(luò)的過程。

      圖4 私網(wǎng)主機(jī)的數(shù)據(jù)包輸出Fig. 4 Private network host packet output

      由于內(nèi)部網(wǎng)絡(luò)的IP地址不能夠傳輸?shù)焦W(wǎng)上,所以路由器或者防火墻就需要一個(gè)由內(nèi)部主機(jī)指向網(wǎng)絡(luò)路由器的公網(wǎng)IP的地址映射。映射建立需要以下步驟:

      1)內(nèi)部主機(jī)需要?jiǎng)?chuàng)建一個(gè)PEER請(qǐng)求,然后發(fā)送給路由器或者防火墻。2)路由器或者防火墻接收響應(yīng),檢查是否是正確的請(qǐng)求數(shù)據(jù)包,給出對(duì)應(yīng)響應(yīng)。3)內(nèi)部主機(jī)接收到發(fā)送的響應(yīng)后,檢查響應(yīng)包,記錄映射,完成PEER映射的創(chuàng)建。

      對(duì)于PEER映射的建立,同MAP映射的建立相類似,不同的是,一個(gè)是由內(nèi)部主機(jī)到中間的網(wǎng)絡(luò)隔離器的映射,一個(gè)是中間的網(wǎng)絡(luò)隔離器到內(nèi)部的映射。

      3.3 MAP映射和PEER映射的操作碼選項(xiàng)

      PCP協(xié)議包括MAP映射和PEER映射,數(shù)據(jù)從外部公網(wǎng)與內(nèi)部主機(jī)完成通信,這兩個(gè)映射都需要?jiǎng)?chuàng)建。上邊給出的常見的做法,除此之外,映射在創(chuàng)建過程中,均可以由第三方來發(fā)起。

      PREFER_FAILURE選項(xiàng)只能使用在MAP操作碼,用來表明如果建議的外部端口和地址不能被映射的話,PCP服務(wù)器不應(yīng)創(chuàng)建一個(gè)可選的映射。

      FILTER這個(gè)選項(xiàng)只使用于MAP操作碼,對(duì)于無線設(shè)備通常用性能優(yōu)化,這不必專門為了不想要的流量而喚醒。由于所有使用PCP去接收輸入連接的軟件的情況,可能直接連接到網(wǎng)絡(luò)和接收不受限的輸入TCP連接和UDP數(shù)據(jù)包。

      所有的PCP服務(wù)器對(duì)每個(gè)MAP映射操作至少需要一個(gè)過濾器,用于控制和處理通信過程中數(shù)據(jù)傳輸。

      3.4 PCP 安全問題

      當(dāng)發(fā)生突變問題時(shí),就會(huì)發(fā)生丟失了它的映射狀態(tài)。這就需要考慮映射的恢復(fù),正常的映射建立需要幾個(gè)小時(shí)的時(shí)間,為了縮短時(shí)間提出了一種快速恢復(fù)機(jī)制。通過服務(wù)器端發(fā)送廣播數(shù)據(jù)包。

      一個(gè)NAT網(wǎng)關(guān)重啟時(shí),一般采用的是DHCP協(xié)議,就會(huì)引起外部IP的變化,就需要采用一個(gè)映射更新數(shù)據(jù)包,用于建立新的映射連接。

      3.5 PCP映射的刪除

      PCP映射的刪除,主要是由于服務(wù)器端響應(yīng)的數(shù)據(jù)包中的所分配的時(shí)間到期了,如果不進(jìn)行重新的映射建立,就需要?jiǎng)h除該映射。

      對(duì)于MAP映射的操作,有這幾種情況:1)請(qǐng)求數(shù)據(jù)包的端口號(hào)和協(xié)議號(hào)都不為0,請(qǐng)求的時(shí)間是0,這時(shí)立即刪除對(duì)應(yīng)映射。2)請(qǐng)求數(shù)據(jù)包的端口號(hào)和協(xié)議都為0,請(qǐng)求的時(shí)間是0,這時(shí)表示應(yīng)該刪除所有的映射。3)請(qǐng)求數(shù)據(jù)包的端口號(hào)為0,協(xié)議號(hào)不為0,請(qǐng)求的時(shí)間是0,表示所有的有映射的端口號(hào)都需要?jiǎng)h除;反之,是錯(cuò)誤情況,應(yīng)該返回錯(cuò)誤代碼。

      如果發(fā)送的刪除數(shù)據(jù)包是為了刪除一個(gè)靜態(tài)的映射,這樣就會(huì)返回一個(gè)沒有操作權(quán)限的錯(cuò)誤數(shù)據(jù)包;當(dāng)請(qǐng)求的刪除映射已經(jīng)不存在時(shí),返回操作成功的響應(yīng)包;如果設(shè)備允許第三方操作,就可以利用由第三方來刪除相應(yīng)的映射。

      4 結(jié)束語

      隨著網(wǎng)絡(luò)從最初的ARPAnet網(wǎng)絡(luò)[6]到現(xiàn)在全球范圍內(nèi)的互聯(lián)網(wǎng)。為了適應(yīng)通信系統(tǒng),網(wǎng)絡(luò)協(xié)議變的越來越復(fù)雜。從最初單一的點(diǎn)對(duì)點(diǎn)的通信通信方式,變的更加的多樣化。最初IPv4地址的要枯竭的時(shí)候,提出了IPv6協(xié)議,然而由于網(wǎng)絡(luò)協(xié)議更新所帶來的巨大的設(shè)備更新,于是為了在不用更換設(shè)備的前提下,暫時(shí)提出了一種DHCP的動(dòng)態(tài)地址分配協(xié)議和私網(wǎng)地址的使用。為了能夠使用公網(wǎng)和私網(wǎng)的通信,NAT協(xié)議就出現(xiàn)了。雖說做出這些變化,依然不能夠改變IPv6協(xié)議的更新?lián)Q代,這樣就會(huì)存在一個(gè)IPv4和IPv6地址協(xié)議共存的特殊時(shí)期,所以實(shí)現(xiàn)協(xié)議的兼容是非常重要,PCP協(xié)議的應(yīng)用在未來一段時(shí)間內(nèi)是很重要的。

      [1]Dunkels A. Design and implementation of the lwIP TCP/IP stack[J]. Swedish Institute of Computer Science ,2001:5-15

      [2]Stevens W R. TCP/ IP詳解卷1:協(xié)議[M] .范建華,等譯.北京:機(jī)械工業(yè)出版社 ,2007.

      [3]D W Ed, Cheshire S. IETF RFC6887: Port Control Protocol[EB/OL] .www.ietf.org/rfc/rfc6887.txt April 2013.

      [4]Deering S,Hinden R. IETF RFC2460: Internet Protocol,Version6[EB/OL] .www.ietf.org/rfc/rfc2460.txt 1998 .

      [5]Cheshire S, Krochmal M. IETF RFC6886: NAT Port Mapping Protocol[EB/OL] . www.ietf.org/rfc/rfc6886.txt 2013.

      [6]Roberts L.The arpanet and computer networks[J].HPW'86 Proceedings of the ACM Conference on The history of personal workstations 1986:51-57.

      猜你喜歡
      端口號(hào)公網(wǎng)IP地址
      淺析大臨鐵路公網(wǎng)覆蓋方案
      鐵路遠(yuǎn)動(dòng)系統(tǒng)幾種組網(wǎng)方式IP地址的申請(qǐng)和設(shè)置
      公網(wǎng)鐵路應(yīng)急通信質(zhì)量提升的技術(shù)應(yīng)用
      在Docker容器中安裝應(yīng)用程序
      基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
      黑龍江電力(2017年1期)2017-05-17 04:25:16
      淺談以java為基礎(chǔ)的Socket通信簡(jiǎn)介及實(shí)現(xiàn)
      青春歲月(2017年5期)2017-04-20 18:34:23
      基于公網(wǎng)短信的河北省高速公路數(shù)據(jù)傳輸應(yīng)用
      我國(guó)警用通信專網(wǎng)與公網(wǎng)比較研究
      Winsock編程在《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》教學(xué)中的應(yīng)用
      基于Android系統(tǒng)的互動(dòng)展示APP的研究與設(shè)計(jì)
      彭水| 喀喇沁旗| 南城县| 肃南| 曲阳县| 鄂托克旗| 富平县| 临城县| 承德市| 孝义市| 岳普湖县| 衡南县| 萨嘎县| 石城县| 岳池县| 渝北区| 融水| 敦化市| 太仓市| 三明市| 确山县| 施秉县| 香港| 唐山市| 东丽区| 扬州市| 凉城县| 台湾省| 治县。| 阿合奇县| 湘阴县| 三明市| 大宁县| 长顺县| 图片| 灵宝市| 玉溪市| 通榆县| 高清| 金坛市| 揭东县|