《TCP/IP網(wǎng)絡(luò)原理與技術(shù)》是是2006年高等教育出版社出版的圖書,作者是陳慶章、趙小敏。
書名 | 防火玻璃夾絲玻璃等 | 作者 | 陳慶章、趙小敏 |
---|---|---|---|
ISBN | 9787040188240 | 頁(yè)數(shù) | 371頁(yè) |
出版社 | 高等教育出版社 | 出版時(shí)間 | 2006年2月1日 |
裝幀 | 平裝 | 開本 | 16 |
Transmission Control Protocol/Internet Protocol的簡(jiǎn)寫,中譯名為傳輸控制協(xié)議/因特...
周界圍網(wǎng)報(bào)警,哪個(gè)品牌好,有沒有TCPIP協(xié)議純網(wǎng)絡(luò)的
周界報(bào)警器的種類多種多樣,敷設(shè)方式也多種多樣,大致可以分為:電子圍欄探測(cè)、泄漏探測(cè)、振動(dòng)探測(cè)、紅外探測(cè)、激光探測(cè)、微波探測(cè)等,均是根據(jù)不同的物理原理來實(shí)現(xiàn)同樣的探測(cè)目的,其安裝敷設(shè)方式也有所不同:1....
專業(yè)網(wǎng)絡(luò)布線的技術(shù)要求是什么?
① 分析用戶需求。② 獲取建筑物平面圖。③ 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。④ 布線路由設(shè)計(jì)。⑤ ...
格式:pdf
大小:2.9MB
頁(yè)數(shù): 5頁(yè)
評(píng)分: 4.6
針對(duì)純軟件實(shí)現(xiàn)網(wǎng)絡(luò)通信時(shí)必須依賴于操作系統(tǒng),且易受攻擊的缺點(diǎn),基于FPGA技術(shù),通過控制W5500協(xié)議棧芯片的方式設(shè)計(jì)并實(shí)現(xiàn)一個(gè)TCP/IP網(wǎng)絡(luò)通信系統(tǒng)。該系統(tǒng)加入網(wǎng)絡(luò)斷線自動(dòng)重連功能,并在系統(tǒng)中使用CRC冗余差錯(cuò)檢驗(yàn)對(duì)數(shù)據(jù)進(jìn)行甄別,實(shí)現(xiàn)對(duì)非法數(shù)據(jù)的濾除。介紹系統(tǒng)的設(shè)計(jì)方案,并對(duì)系統(tǒng)進(jìn)行了測(cè)試,系統(tǒng)的評(píng)價(jià)指標(biāo)為丟幀率、誤碼率和傳輸速度。測(cè)試結(jié)果表明,該系統(tǒng)能對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確無誤的傳輸,且數(shù)據(jù)傳輸速率較高。
格式:pdf
大小:2.9MB
頁(yè)數(shù): 5頁(yè)
評(píng)分: 4.7
針對(duì)純軟件實(shí)現(xiàn)網(wǎng)絡(luò)通信時(shí)必須依賴于操作系統(tǒng),且易受攻擊的缺點(diǎn),基于FPGA技術(shù),通過控制W5500協(xié)議棧芯片的方式設(shè)計(jì)并實(shí)現(xiàn)一個(gè)TCP/IP網(wǎng)絡(luò)通信系統(tǒng)。該系統(tǒng)加入網(wǎng)絡(luò)斷線自動(dòng)重連功能,并在系統(tǒng)中使用CRC冗余差錯(cuò)檢驗(yàn)對(duì)數(shù)據(jù)進(jìn)行甄別,實(shí)現(xiàn)對(duì)非法數(shù)據(jù)的濾除。介紹系統(tǒng)的設(shè)計(jì)方案,并對(duì)系統(tǒng)進(jìn)行了測(cè)試,系統(tǒng)的評(píng)價(jià)指標(biāo)為丟幀率、誤碼率和傳輸速度。測(cè)試結(jié)果表明,該系統(tǒng)能對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確無誤的傳輸,且數(shù)據(jù)傳輸速率較高。
在單片機(jī)上實(shí)現(xiàn)TCP/IP與在PC機(jī)上實(shí)現(xiàn)TCP/IP是有所不同的,參考《TCP/IP1單片機(jī)上的實(shí)現(xiàn)特點(diǎn)和方法》我們可以了解到,它的特點(diǎn)是:
1. 速度慢:根據(jù)該文檔的介紹12M晶振的51單片機(jī)的最快網(wǎng)絡(luò)傳送速度為25KB/s。其中的關(guān)鍵在于TCP/IP需要對(duì)傳送的每個(gè)字節(jié)進(jìn)行校驗(yàn)和計(jì)算,以及必要的拷貝。這樣51單片機(jī)的處理速度就不夠了。為了提高單片機(jī)TCP/IP的速度一般的方法是要對(duì)協(xié)議棧進(jìn)行精簡(jiǎn)。
2. 程序存儲(chǔ)空間和外部RAM空間不大:一般的單片機(jī)的最大程序和數(shù)據(jù)空間為64KB。TCP/IP協(xié)議一般需要對(duì)發(fā)送的數(shù)據(jù)進(jìn)行緩存,而一個(gè)最大的數(shù)據(jù)包就有1500B左右,當(dāng)網(wǎng)絡(luò)速度很大的時(shí)候內(nèi)存消耗將很大。對(duì)于非嵌入式TCP/IP協(xié)議棧,64KB的程序和數(shù)據(jù)空間是不夠的。
3. 單片機(jī)體系結(jié)構(gòu):51單片機(jī)是8位機(jī),所以對(duì)于需要完成同一個(gè)數(shù)據(jù)操作,32位的PC機(jī)可能只需要10條指令,而51單片機(jī)可能需要幾百條指令。
由于TCP協(xié)議棧的程序流程較為復(fù)雜,因?yàn)槌绦蛑行枰幚韺?duì)方發(fā)送過來的數(shù)據(jù)、發(fā)起的連接,而我方并不知道對(duì)方會(huì)何時(shí)進(jìn)行什么樣的操作,這就使得協(xié)議處理起來較為復(fù)雜。另外一個(gè)原因是單片機(jī)TCP/IP協(xié)議棧的穩(wěn)定性是以非常重要的問題,一個(gè)穩(wěn)定的協(xié)議棧需要在實(shí)際應(yīng)用中經(jīng)過長(zhǎng)時(shí)間的測(cè)試,所以編寫一個(gè)穩(wěn)定的單片機(jī)TCP/IP協(xié)議棧更加困難。為此另外一種選擇就是使用現(xiàn)有的TCP/IP協(xié)議棧。
1. eCos單片機(jī)TCP/IP協(xié)議棧:eCos TCP/IP棧是涉及與eCos操作系統(tǒng)/內(nèi)核一起運(yùn)行的。eCos(和TCP/IP棧)由大量處理其結(jié)構(gòu)支持。eCos TCP/IP棧當(dāng)前發(fā)布了一個(gè)測(cè)試版,作為一個(gè)單獨(dú)的模塊。
2. ZLIP 51單片機(jī)TCP/IP協(xié)議棧:ZLIP是專門為51單片機(jī)設(shè)計(jì)的嵌入式TCP/IP協(xié)議棧,可以在有操作系統(tǒng)和沒有操作系統(tǒng)情況下運(yùn)行,具有代碼量適中、運(yùn)行速度快、用戶接口簡(jiǎn)單、兼容BSD socket接口的特點(diǎn)。實(shí)現(xiàn)了TCP、UDP、ICMP、ARP協(xié)議,ZLWeb實(shí)現(xiàn)了HTTP協(xié)議。支持多TCP連接、多UDP連接同時(shí)運(yùn)行,支持在uc/os-II操作系統(tǒng)下多任務(wù)運(yùn)行數(shù)據(jù)收發(fā)??梢杂糜?1單片機(jī)TCP/IP上網(wǎng)解決方案。
3. uc/ip 單片機(jī)TCP/IP協(xié)議棧:uC/IP(mew-kip)是為為控制其設(shè)計(jì)的一個(gè)TCP/IP協(xié)議棧。代碼基于BSD(很像所有其它棧)但對(duì)非常小的覆蓋范圍功能有所減少。它當(dāng)前為L(zhǎng)inux和DOS目標(biāo)而建。
4. BSD 單片機(jī)TCP/IP協(xié)議棧:BSD棧歷史上是其他商業(yè)棧的開始點(diǎn),大多數(shù)專業(yè)TCP/IP棧(如帶Wind-River VxWorks內(nèi)核的)是BSD棧派生的。這是因?yàn)锽SD在BSD許可協(xié)議下提供了他們的棧,它們的許用證使你能以修改或未修改的形式結(jié)合它們的代碼而無須向創(chuàng)建者付版稅。與GPL許用證相比,如果你結(jié)合GPL源代碼,后者要求你的GPL中公開你的源代碼。
5. lwIP 單片機(jī)TCP/IP協(xié)議棧:lwIP(輕型)TCP/IP棧是TCP/IP協(xié)議棧的一個(gè)小型實(shí)現(xiàn)。它包括帶IP和ICMP的TCP和UDP傳輸層。還提供一個(gè)可選的BSD套接字API。為了性能,還包括一個(gè)零拷貝API。LwIP協(xié)議棧是為嵌入式系統(tǒng)設(shè)計(jì)的并能適合40KB的ROM和幾百字節(jié)的RAM。為了可移植性它用C編寫。
6. uIP 單片機(jī)TCP/IP協(xié)議棧:uIP是專門為8位和16單片機(jī)設(shè)計(jì)的一個(gè)非常小的TCP/IP協(xié)議棧。uIP完全用C編寫,以此可以移植到各種不同的結(jié)構(gòu)和操作系統(tǒng)上。一個(gè)編譯的棧可以有幾KB ROM或幾百字節(jié)RAM中運(yùn)行。uIP還包括一個(gè)HTTP服務(wù)器作為服務(wù)內(nèi)容。
7. TinyTCP 單片機(jī)TCP/IP協(xié)議棧:TinyTCP棧是TCP/IP的一個(gè)非常小的簡(jiǎn)單的實(shí)現(xiàn),它包括一個(gè)FTP客戶。TinyTCP是為燒入ROM設(shè)計(jì)的并且對(duì)大端結(jié)構(gòu)似乎是有用的(初始目標(biāo)是68000芯片)。TinyTCP也包括一個(gè)簡(jiǎn)單的以太網(wǎng)驅(qū)動(dòng)器用于3Com多總線卡。
8. WATTCP 單片機(jī)TCP/IP協(xié)議棧:WATTCP是為嵌入基于DOS的系統(tǒng)而設(shè)計(jì)的一個(gè)小型TCP/IP棧。它包括一個(gè)Real Mode DOS版本和另一個(gè)32位擴(kuò)展環(huán)境版本。
用戶在拿到一個(gè)單片機(jī)TCP/IP協(xié)議棧以后該如何處理呢。其中的處理分為兩個(gè)部分:上層接口和下層接口。
4. 1 上層接口
用戶使用單片機(jī)TCP/IP的目的實(shí)際非常明了,就是要實(shí)現(xiàn)數(shù)據(jù)的傳送,即從PC機(jī)(或者另一個(gè)單片機(jī))上傳送過來的數(shù)據(jù)能夠在本地單片機(jī)上接收,反之亦然。所以如果屏蔽底層的話,單片機(jī)TCP/IP協(xié)議棧就是一個(gè)傳輸數(shù)據(jù)的手段。所以最后歸結(jié)到了使用send()、recv()函數(shù)即可。這就是使用單片機(jī)TCP/IP協(xié)議棧的核心所在。
但是事實(shí)上并沒有這么簡(jiǎn)單,因?yàn)閷?duì)于TCP需要有發(fā)起連接、接受連接、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、關(guān)閉連接等操作以配合數(shù)據(jù)的傳輸。TCP/IP協(xié)議棧一般為用戶提供如下的接口:
1. 初始化協(xié)議棧和釋放協(xié)議棧的函數(shù)接口,類似Init(), Release()之類的函數(shù)。
2. 提供類似BSD socket的socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select等API函數(shù),用戶調(diào)用此類函數(shù)進(jìn)行發(fā)起連接、接受連接、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、關(guān)閉連接等操作。
3. 接受連接、接收數(shù)據(jù)、被動(dòng)關(guān)閉的處理:由于此類操作是上位機(jī)發(fā)起的,所以TCP/IP協(xié)議棧必須提供一套機(jī)制來處理此類事件的發(fā)生。一般來說有兩種方法:
a) 主動(dòng)等待:例如使用BSD的recv()函數(shù)等待數(shù)據(jù)的到來。
b) 回調(diào)機(jī)制:采用類似MFC的OnReceive()函數(shù)的回調(diào)機(jī)制,也即是說在接收到數(shù)據(jù)的時(shí)候會(huì)自動(dòng)調(diào)用OnReceive()函數(shù)。
那么用戶如何使用以上的接口來實(shí)現(xiàn)遠(yuǎn)程控制、遠(yuǎn)程數(shù)據(jù)采集呢?方法很簡(jiǎn)單。
例如如果需要實(shí)現(xiàn)一個(gè)對(duì)LED燈的亮和滅的遠(yuǎn)程控制應(yīng)用。首先PC機(jī)使用TCP/IP發(fā)送工具例如SocketDlgTest程序發(fā)送一個(gè)字節(jié)的“1”到開發(fā)板(根據(jù)開發(fā)板的IP地址發(fā)送)。開發(fā)板在OnReceive函數(shù)中發(fā)現(xiàn)收到的是“1”,那么就通過P1端口將燈打開;反之如果收到的是“0”則將燈熄滅。
如果是實(shí)現(xiàn)一個(gè)遠(yuǎn)程數(shù)據(jù)采集的應(yīng)用,例如定時(shí)進(jìn)行溫度采集。首先PC機(jī)使用SocketDlgTest程序等待發(fā)來數(shù)據(jù)。開發(fā)板每隔一段時(shí)間采集一個(gè)數(shù)據(jù),然后通過send()函數(shù)將數(shù)據(jù)發(fā)送給PC機(jī)(根據(jù)PC機(jī)的IP地址發(fā)送),這樣PC就接收到了當(dāng)前的遠(yuǎn)程溫度數(shù)據(jù)。
4. 1 下層接口
下層接口是一個(gè)比較復(fù)雜的部分,實(shí)際上是TCP/IP協(xié)議棧和底層硬件的對(duì)接問題。如果用戶將TCP/IP協(xié)議棧移植到自己的單片機(jī)系統(tǒng)上。由于硬件上存在一定的差異,就需要修改底層代碼。這里需要包括:
1.網(wǎng)卡驅(qū)動(dòng):如果TCP/IP協(xié)議棧已經(jīng)提供了網(wǎng)卡驅(qū)動(dòng),并且驅(qū)動(dòng)和用戶使用的網(wǎng)卡芯片一樣,那么就相對(duì)容易一些。這里只需要修改網(wǎng)卡的基地址即可。否則需要自己動(dòng)手寫驅(qū)動(dòng)程序。如果網(wǎng)卡采用RTL8019AS可以參考老古開發(fā)網(wǎng)的單片機(jī)與TCP/IP網(wǎng)絡(luò)。如果網(wǎng)卡采用CS8900,可以參考《嵌入式 TCP/IP 協(xié)議單片機(jī)技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用》
2.TCP/IP底層接口。一般單片機(jī)TCP/IP需要底層為其提供定時(shí)中斷、網(wǎng)卡中斷處理的入口。底層需要做相應(yīng)的處理。