自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

華為路由器TCP/IP協(xié)議介紹

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
關(guān)于TCP/IP協(xié)議已經(jīng)介紹很多了,但在實際運用中有著各種不同的方法,本篇所要給大家介紹的就是TCP/IP協(xié)議棧的運用,設(shè)置一個網(wǎng)絡(luò)環(huán)境時會有很大的幫助。

關(guān)于TCP/IP協(xié)議已經(jīng)介紹很多了,但在實際運用中有著各種不同的方法,本篇所要給大家介紹的就是TCP/IP協(xié)議棧的運用,設(shè)置一個網(wǎng)絡(luò)環(huán)境時會有很大的幫助。

[[64898]]

一、TCP/IP應(yīng)用都必須實現(xiàn)IP和ICMP對于一個路由器而言,有這兩個協(xié)議就可以運作了,雖然從應(yīng)用的角度來看,這樣一個路由器 意義不大。實際的路由器一般還需要運行許多使用的協(xié)議,以及一些其它的協(xié)議,主要有l(wèi)wIP和uC/IP。

1、lwIP(LightweightTCP/IPStack):支持的協(xié)議比較完整,一般需要多任務(wù)環(huán)境支持,代碼占用ROM>40KB,不適合8位機(jī)系統(tǒng),沒有完整的應(yīng)用文檔;

2、uC/IP(TCP/IPstackforuC/OS):基于uC/OS的任務(wù)管理,接口較復(fù)雜,沒有說明文檔。

二、由于uIP所具有的顯著特點,自從0.6版本以來就被移植到多種處理器上,包括MSP430、AVR和Z80等,它去掉了許多全功能協(xié)議棧中不常用的功能,而保留網(wǎng)絡(luò)通信所必要的協(xié)議機(jī)制。

其設(shè)計重點放在IP、ICMP和TCP協(xié)議的實現(xiàn)上,將這三個模塊合為一個有機(jī)的整體,而將UDP和ARP協(xié)議實現(xiàn)作為可選模塊,uIP0.9處于網(wǎng)絡(luò)通信的中間層,其上層協(xié)議在這里被稱之為應(yīng)用程序,而下層硬件或固件被稱之為網(wǎng)絡(luò)設(shè)備驅(qū)動。

顯然,uIP0.9并不是僅僅針對以太網(wǎng)設(shè)計的,它具有媒體無關(guān)性。

三、注意各模塊的融合,減少處理函數(shù)的個數(shù)和調(diào)用次數(shù),提高代碼復(fù)用率,以減少ROM占用?;趩我蝗?jǐn)?shù)組的收發(fā)數(shù)據(jù)緩沖區(qū),不支持內(nèi)存動態(tài)分配,由應(yīng)用負(fù)責(zé)處理收發(fā)的數(shù)據(jù)。

基于事件驅(qū)動的應(yīng)用程序接口,各并發(fā)連接采用輪循處理,僅當(dāng)網(wǎng)絡(luò)事件發(fā)生時,由uIP內(nèi)核喚起應(yīng)用程序處理。這樣,uIP用戶只須關(guān)注特定應(yīng)用就可以了。傳統(tǒng)的TCP/IP實現(xiàn)一般要基于多任務(wù)處理環(huán)境,而大多數(shù)8位機(jī)系統(tǒng)不具備這個條件,由uIP內(nèi)核設(shè)置重發(fā)事件,應(yīng)用程序重新生成數(shù)據(jù)提交發(fā)送,免去了大量內(nèi)部緩存的占用。

四、當(dāng)設(shè)備驅(qū)動程序從網(wǎng)絡(luò)層收到一個數(shù)據(jù)包時要調(diào)用這個函數(shù),設(shè)備驅(qū)動程序必須事先將數(shù)據(jù)包存放到uip_buf[]中,包長放到uip_len,然后交由uip_input()處理。當(dāng)函數(shù)返回時,如果uip_len不為0,則表明有帶外數(shù)據(jù)(如SYN,ACK等)要發(fā)送。

當(dāng)需要ARP支持時,還需要考慮更新ARP表或發(fā)出ARP請求和回應(yīng),另一個需要驅(qū)動程序支持的函數(shù)是uip_periodic(conn)。這個函數(shù)用于uIP內(nèi)核對各連接的定時輪循,因此需要一個硬件支持的定時程序周期性地用它輪循各連接,一般用于檢查主機(jī)是否有數(shù)據(jù)要發(fā)送,如有,則構(gòu)造IP包。使用示例如下。

五、為了將用戶的應(yīng)用程序掛接到uIP中,必須將宏UIP_APPCALL()定義成實際的應(yīng)用程序函數(shù)名,這樣每當(dāng)某個uIP事件發(fā)生時,內(nèi)核就會調(diào)用該應(yīng)用程序進(jìn)行處理。

如果要加入應(yīng)用程序狀態(tài)的話,必須將宏UIP_APPSTATE_SIZE定義成應(yīng)用程序狀態(tài)結(jié)構(gòu)體的長度。在應(yīng)用程序函數(shù)中,依靠uIP事件檢測函數(shù)來決定處理的方法,另外可以通過判斷當(dāng)前連接的端口號來區(qū)分處理不同的連接。

六、單片機(jī)采用的是Atmel的AT89C55WD,它內(nèi)置20KB程序Flash,512字節(jié)RAM,3個定時器/計數(shù)器,工作在22.1184MHz時具有約2MIPS的處理速度。

網(wǎng)卡芯片同樣采用的是低成本的RTL8019AS,是一款NE2000兼容的網(wǎng)卡芯片。系統(tǒng)外擴(kuò)了32KB的SRAM,用于串口數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)的緩沖,另外還存放了uIP的許多全局變量。

七、UIPWeb51的應(yīng)用程序,路由器首先打開80端口的監(jiān)聽,一旦有客戶機(jī)要求連上,uIP內(nèi)部會給它分配一個連接項,接著等收到客戶機(jī)IE瀏覽器發(fā)出的“GETHTTP…”請求后,將發(fā)電機(jī)電平與狀態(tài)數(shù)據(jù)隊列中的數(shù)據(jù)填入網(wǎng)頁模板,生成一幅新的網(wǎng)頁發(fā)給客戶機(jī)。

因為這幅網(wǎng)頁的大小已經(jīng)超過uIP的最大段長,因此在uIP內(nèi)核第一次實際只發(fā)出了MSS個字節(jié),在等到下一次輪循到該連接并且收到上次數(shù)據(jù)包的ACK時,發(fā)送剩下的網(wǎng)頁數(shù)據(jù)。

八、在連接處于空閑的時候,應(yīng)用程序可以從串口隊列中讀出原始數(shù)據(jù),經(jīng)格式處理后再存到發(fā)電機(jī)電平與狀態(tài)數(shù)據(jù)隊列中,而在這個隊列中保存著當(dāng)前1min的設(shè)備工作數(shù)據(jù),以便下次更新網(wǎng)頁時使用。

在網(wǎng)頁中添加了更新按鈕,一旦瀏覽器用戶點擊了按鈕,瀏覽器會自動發(fā)出CGI請求,UIPWEB51收到后,立即發(fā)送包含最新數(shù)據(jù)的網(wǎng)頁。

如果uIP接收ACK超時,它會自動設(shè)置重發(fā)標(biāo)志,應(yīng)用程序中可以用uip_rexmit()來檢測這個標(biāo)志,重新生成網(wǎng)頁并發(fā)送。一旦用戶關(guān)閉了瀏覽器,uIP也會自動檢測到這一事件,并且釋放掉這個連接項。

重點說明

每一個應(yīng)用層一般都會使用到兩個傳輸層協(xié)議之一: 面向連接的TCP傳輸控制協(xié)議和無連接的包傳輸?shù)腢DP用戶數(shù)據(jù)報文協(xié)議。

責(zé)任編輯:遺忘者 來源: 51CTO.com
相關(guān)推薦

2013-03-04 09:59:04

路由器TCPIP

2010-07-08 15:08:12

2009-11-10 16:59:18

華為路由器

2012-12-27 10:22:00

思科路由器網(wǎng)絡(luò)協(xié)議

2012-11-27 12:02:20

路由器IPARP

2013-01-28 13:18:54

飛魚星路由器TCP

2012-11-14 11:00:43

2012-12-10 09:24:04

2010-08-09 10:02:43

華為路由器IP性能配置

2010-07-09 11:40:44

2010-07-08 13:36:21

2009-02-25 10:52:00

路由器原理工作方式協(xié)議

2009-12-14 16:56:51

路由器協(xié)議

2010-08-09 14:13:16

路由器優(yōu)先級比較

2009-12-18 14:49:14

路由器協(xié)議

2012-11-05 14:35:03

路由器BGP網(wǎng)絡(luò)協(xié)議

2013-07-19 09:16:47

華為路由器網(wǎng)絡(luò)管理IP地址

2010-09-02 10:14:24

路由器性能

2009-12-14 17:15:15

協(xié)議轉(zhuǎn)換器

2012-11-29 10:45:31

點贊
收藏

51CTO技術(shù)棧公眾號