<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è) > 嵌入式系統 > 設計應用 > 嵌入式WEB服務(wù)器中TCP/IP協(xié)議棧的設計與實(shí)現

嵌入式WEB服務(wù)器中TCP/IP協(xié)議棧的設計與實(shí)現

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

TCP/IP協(xié)議棧結構如圖2所示。

圖2 TCP/IP協(xié)議棧

2.2 TCP/IP協(xié)議棧數據處理流程

嵌入式TCP/IP協(xié)議棧處理數據流程如圖3所示。

系統初始化后,進(jìn)入主程序循環(huán)部分。主程序循環(huán)包括兩大部分:對接收到的以太網(wǎng)數據幀進(jìn)行解包和對欲發(fā)送的數據進(jìn)行封裝并發(fā)送。對接收到的以太網(wǎng)數據幀進(jìn)行解包,供應用程序使用;對欲發(fā)送的數據進(jìn)行打包,將數據以以太網(wǎng)數據幀的格式發(fā)送出去,使采用TCP/IP協(xié)議的以太網(wǎng)內所有計算機能收到此數據幀。

詳細過(guò)程為:先檢查是否收到以太網(wǎng)數據幀,若己收到以太網(wǎng)數據幀,則檢測以太網(wǎng)數據幀首部,判斷所載數據類(lèi)型,然后對接收到的數據進(jìn)行相應處理:若接收到的以太網(wǎng)數據幀中包含ARP數據,則調用ARP處理程序;若接收到的以太網(wǎng)數據幀中包含IP數據報,則針對其是否為ICMP、TCP協(xié)議格式分別進(jìn)行相應的解包處理。若不包含IP數據報,則丟棄此數據幀。

若未收到以太網(wǎng)數據幀,此時(shí)若有數據要發(fā)送,則對數據進(jìn)行打包,將數據以以太網(wǎng)數據幀的格式發(fā)送出去。若無(wú)數據要發(fā)送,則回到主程序循環(huán)。

圖3 嵌入式TCP/IP協(xié)議棧主流程圖

3 嵌入式中TCP/IP棧的實(shí)現

3.1 ARP協(xié)議實(shí)現

嵌入式中ARP協(xié)議主要功能是進(jìn)行IP地址與以太網(wǎng)地址之間的轉換,當系統收到發(fā)送數據請求時(shí),協(xié)議棧就需要返回IP數據報,所有的 IP數據報都要進(jìn)一步封裝成以太網(wǎng)幀才能發(fā)送給網(wǎng)絡(luò )控制器,而所加的以太網(wǎng)首部中就包含了由ARP協(xié)議解析目的IP地址所得來(lái)的對應的物理地址。

首先ARP程序檢測以太網(wǎng)幀的類(lèi)型字段以判斷其協(xié)議類(lèi)型。以太網(wǎng)標準規定,當一個(gè)以太網(wǎng)幀攜帶一個(gè)ARP消息時(shí),類(lèi)型字段必須包含十六進(jìn)制值0806。接著(zhù),檢測消息中的操作字段以確認是一個(gè)請求消息還是一個(gè)應答消息。若是一個(gè)請求消息,ARP程序比較目標IP地址與自己的IP地址,如果一樣,則要回發(fā)一個(gè)應答消息。對接收到的來(lái)自遠程主機的任何試圖解析地址的ARP請求,Web服務(wù)器都會(huì )做出回應。

當Web服務(wù)器向客戶(hù)機發(fā)送一個(gè)ARP消息時(shí),此消息是嵌入一個(gè)以太網(wǎng)幀中廣播給網(wǎng)上的所有計算機,每臺計算機收到這個(gè)請求后都會(huì )檢測其中的IP地址。與該IP地址匹配的計算機發(fā)送一個(gè)應答,這個(gè)應答消息被放進(jìn)一個(gè)幀中直接發(fā)回給Web服務(wù)器,而其他的計算機則會(huì )丟棄收到的請求,不發(fā)任何應答。這種方式雖然對網(wǎng)絡(luò )造成一定的壓力,但節省嵌入式設備的寶貴資源。在等待應答的時(shí)間里,ARP將到達的TCP包丟棄,一旦收到應答,ARP高速緩存就用目的以太網(wǎng)地址更新,然后等待分組就用高速緩存中的目的以太網(wǎng)地址更新,分組就被發(fā)送了。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么




關(guān)鍵詞: 嵌入式 Web服務(wù)器 TCPIP

評論


相關(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>