999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM核的嵌入式TCP/IP協議棧簡化實現

2006-12-31 00:00:00徐海軍劉金剛王益華
計算機應用研究 2006年10期

摘 要:結合具體的工程實例,通過分析嵌入式TCP/IP協議棧的設計原理,研究并簡化了嵌入式TCP/IP協議棧的通信模型、體系結構和實現方案。開發出基于SAMSUNG S3C44B0X微處理器和RTL8019AS以太網物理層接口的低功耗網絡控制器,并通過Socket編程在嵌入式μCLinux系統上實現了網絡通信,達到系統設計目標。

關鍵詞:嵌入式;TCP/IP;套接字;ARM

中圖法分類號:TP393.04 文獻標識碼:A 文章編號:1001-3695(2006)10-0251-03

Simplified Realization of Embedded TCP/IP Protocol Stack Based on ARM Core

XU Haijun1,3,LIU Jingang1,2,3,WANG Yihua1,3

(1.United Research Institute of Computer Sciences, Beijing 100037, China;2. Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100080, China;3.Capital Normal University, Beijing 100037, China)

Abstract:Joining an engineering example,by analysing Embedded TCP/IP protocol stack designing principle, research and simplify the protocol stack’s communication model,architecture,scheme. And then, this paper gives a low consuming circuit of network communication based on the microprocessor of Samsung S3C44B0X,which takes RTL8019AS as physical layer interface. Finally successfully porting the embedded μCLinux on the microprocessor and realizes rightly network communicating by Socket programming, it achieve the design goal by testing.

Key words:Embedded System;TCP/IP;Socket; ARM

1 引言

隨著計算機技術的發展,嵌入式系統已成為計算機領域的一個重要組成部分。嵌入式系統中的網絡應用也越來越廣泛,幾乎所有設備均需要有Internet連接能力。支持嵌入式系統上網的標準大部分仍然是TCP/IP協議,包括TCP,IP,ARP等協議。但是傳統的TCP/IP協議在實現實時性方面做得不夠好,它把大量的精力花在保證數據傳送的可靠性以及數據流量的控制上,而在實時性要求比較高的嵌入式領域中,傳統的TCP/IP不能滿足其實時要求。因此研究并改進嵌入式TCP/IP協議棧以滿足嵌入式系統的高性能要求具有重要的現實意義。

2 嵌入式TCP/IP協議棧的基本特征

傳統TCP/IP協議棧的實現過于復雜,需占用大量系統資源,而嵌入式應用系統的資源往往都非常有限。因此,需要將傳統的TCP/IP協議棧在不違背協議標準的前提下加以改進,使其實現性得到提高,占用的存儲空間盡可能少,以滿足嵌入式應用的要求。通常為了解決存儲能力不足的問題,采取在嵌入式系統的緩沖區內開辟較少字節的固定存儲空間,而不是動態分配,若一旦出現大流量數據包時就會導致緩沖區溢出。因此在設計嵌入式TCP/IP協議棧時要合理地控制中斷處理程序大小,使運行時間盡可能地縮短。

3 嵌入式TCP/IP協議棧體系結構

按照OSI層次結構思想,在標準的TCP/IP協議棧中有很多處理協議,如ARP,IP,ICMP,TCP,UDP等協議。在本文設計過程中考慮到嵌入式設備資源有限和對網絡要求程度不高,經設計簡化后的嵌入式TCP/IP協議棧體系結構如圖1所示。整個協議棧采用模塊化設計思想,主要模塊是ARP協議處理模塊、IP協議處理模塊、TCP協議處理模塊等。同時為每個模塊設計良好的通信接口,保證上層、下層協議的系統調用。

由圖1可知,TCP/IP協議棧及以太網中數據傳送的層次關系:當在應用程序(一般應用有HTTP,FTP等協議)中將應用數據(包括用戶數據和應用首部)向網絡傳送,它首先到達TCP層,TCP協議根據應用層的要求在TCP首部填寫好各個字段,如端口號、序號、標志等。重要的是填寫數據校驗和到校驗和的字段,然后將包括TCP首部的段(數據包在TCP協議層稱為段——Segment)向協議棧的下一層即IP層傳送。IP層則與TCP層一樣,填寫IP首部的各個字段,如地址、協議類型等,然后將在頭部包括IP首部和TCP首部的整個數據報(數據包在IP協議層稱為數據報——Datagram)向下傳送;到了以太網驅動程序,繼續進行封裝工作,將以太網首部和以太網尾部添加到從IP層傳下來的數據報上。

4 嵌入式TCP/IP協議處理流程

嵌入式TCP/IP協議接收數據包的實現過程就是在解析數據包。首先由以太網幀處理模塊解析數據包,根據其類型,將去掉以太網幀首部的數據包分配到IP緩存或者ARP緩存;接著,由IP協議處理模塊或ARP處理模塊繼續解析。ARP協議根據數據包的類型,或者更新ARP地址映射表或者發送ARP應答。IP協議處理模塊對數據包解析后,將數據包交給TCP協議處理模塊。

嵌入式TCP/IP協議發送數據包的實現過程可以認為是在封裝數據包,數據包經過某層協議的處理,將上層協議傳來的數據包封裝成自己的格式。

按照改進后的嵌入式TCP/IP協議體系結構,其協議的具體處理流程如圖2所示。

下面進一步對嵌入式協議棧中的TCP協議處理模型進行簡化,并通過Socket編程在μCLinux系統上得以實現。

5 簡化的嵌入式TCP協議設計實現

傳輸控制協議(Transmission Control Protocol,TCP)是對IP協議進行功能擴展,在發送端與接收端之間提供高可靠性的數據通信。TCP協議是一個面向連接的通信協議,在通信開始時建立連接;在通信結束時切斷該連接。在TCP協議中根據IP協議的載荷能力和物理網絡最大傳輸單元MTU來決定數據段大小,這些數據段稱為TCP數據報報文。它由數據報頭和數據兩部分組成,數據報頭攜帶了該數據報所需的標志及控制信息,包括20Bytes的固定部分和一個不固定長度的可選項部分。

在本次設計中,根據系統網絡數據量較小且10Mbps的以太網傳輸不會導致阻塞,以太網上的主機有足夠的能力處理數據報,因此可以綁定超時與重傳的時間為5s;所使用的RTL8019AS上有兩個1 500Bytes的接收緩沖區,對一般的嵌入式系統信息量較小,可以固定接收窗口為1 400Bytes;采用一般的TCP服務就可以滿足應用要求,可以忽略緊急指針和選項及填充字段的值。因此對復雜的TCP協議進行了合理的改進,改進后的格式如圖3所示。

源端口(16位)目的端口(16位)序列號(32位)確認號(32位)包頭長度

(4位)保留

(6位)URCACKPSHPSTSYNFIN固定窗口數據(可變長)圖3 改進后的TCP協議數據報文格式

對于嵌入式TCP/IP協議棧的設計采用基于事件驅動的程序模型。當一個事件到達時(如一個新的連接請求或一個新的數據包到達一個已經建立的連接等),應用程序就會被調用,并由應用程序根據所發生的事件作出處理。此部分可以由具體的進程來實現。

(1)建立連接:①當客戶機請求對端接入時,隨機地選送一個初始序號;②服務器選送一個自己的初始序號,作為對客戶機送來序號的應答號返送給客戶機;③客戶機向服務器再發出應答段(ACK),作為握手信號來保證數據被可靠地接收,而應答段本身不再需要應答,避免應答陷入無窮的嵌套。

(2)驗證進程:采取相應的措施消除傳輸中的錯誤,以保證數據傳輸的可靠性,如持續跟蹤已發出數據段的應答是否返回來判斷數據是否丟失;利用序列號解決通信時重復、失序的問題;利用校驗和解決數據誤碼問題等。

(3)流量控制進程:設置一個緩沖區作為固定窗口,ACK和窗口號指明在正確收到最后一個數據包之后,還可接收的序列號范圍,由此對流量進行控制。

(4)關閉連接:①客戶機向服務器發出關閉段,此時客戶機不再發出數據僅可接收數據;②服務器向客戶機發出關閉—應答段,此時,服務器還可以向客戶機發送數據,即接入處于“半關閉”狀態;③服務器向客戶機發出關閉段,服務器不能再發送數據;④客戶機為響應服務器的關閉,向服務器發出關閉—應答段。改進后的基于事件驅動模型的TCP協議處理有限狀態圖如圖4所示。

SYN:標志位用來建立連接,讓連接雙方同步序列號。如果SYN=1而ACK=0,則表示該數據包為連接請求,如果SYN=1而ACK=1則表示接收連接。

FIN:表示發送端已經沒有數據要求傳輸了,希望釋放連接。

RST:用來復位一個連接。RST標志置位的數據包稱為復位包。一般情況下,如果TCP收到的一個分段明顯不屬于該主機上的任何一個連接,則向遠端發送一個復位包。

ACK:確認標志位。如果為1,表示包中的確認號是有效的;否則,包中的確認號無效。

接下來,介紹如何在μCLinux環境下通過Socket編程實現TCP協議。網絡的Socket數據傳輸是一種特殊的I/O,也是一種文件描述符。具有一個類似文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨后的建立連接、數據傳輸等操作均是通過該Socket()函數實現的。在實現TCP協議過程中所使用的主要套接字系統調用、庫函數和結構體如下所示:

#include

#include

#include

int Socket (int domain,int type,int protocol);

//利用Socket系統調用來打開一個套接字

int bind (int s,struct sockaddr *my_addr,socklen_t addrlen);

//利用自己的主機指定所使用的IP地址和端口

int connect (int s,const struct sockaddr *addr,socklen_t addrlen);

//當指定通信對方IP地址時,采用Connect系統調用

int listen (int s,int backlog);

//當服務器接收到TCP協議連接時,執行一個Listen系統調用

int accept (int s,struct sockaddr *addr,socklen_t *addlen);

//當服務器接收來自客戶機建立的連接請求時,執行Accept系統調用

int send (int s,const void * msg,size_t len,int flags);

//在建立連接后,利用Send系統調用完成報文的發送

int recv (int s,const void * buf,size_t len,int flags);

//在建立連接后,利用Send系統調用完成報文的發送

int close (int s);

//在結束對套接字使用時,利用Close系統調用來關閉套接字

根據嵌入式TCP/IP協議棧的設計模型,其實現主要是實現基本協議如TCP協議、IP協議、ARP協議等。其余的像PPP那樣的鏈路層協議需要在嵌入式TCP/IP協議棧下面的設備驅動程序中實現;而像HTTP,FTP這樣的應用層協議則要在嵌入式TCP/IP協議棧上面的應用層中實現。

6 基于ARM7TDMI核的網絡控制器硬件平臺設計

本文所設計的嵌入式網絡控制器由三大部分組成,分別是微處理器、存儲器、RTL8019AS全雙工以太網控制器。SAMSUNG公司的S3C44B0X是基于以太網應用系統高性價比的16/32位RISC微控制器,內含一個由ARM公司設計的16/32位ARM7TDMI RISC處理器核,ARM7TDMI為低功耗、高性能的16/32核,最適合用于對價格及功耗敏感的應用場合。本文主要工作是筆者從事北京市高校研究生教育基金項目的研究子課題,完成了控制器的硬件實現,并在S3C44B0X微處理器上成功移植μCLinux操作系統。除了實現網絡通信的基本功能外,還增加了一些應用層上的服務,如FTP,HTTP協議。下面是基于ARM核的嵌入式網絡控制器的硬件結構設計方案如圖5所示。

7 結束語

嵌入式Internet技術將隨著網絡和硬件技術的發展而不斷提高,網絡化的嵌入式產品的流行成為一種不可抵擋的潮流。通過研究簡化了基于ARM核的嵌入式TCP/IP協議棧,實驗將本網絡控制器的IP設為192.168.0.62,連接好網線(一端插在控制器RJ45接口上,另外一端插在PC機的網卡上),在PC機的命令輸入窗口中運行Ping程序,輸入Ping 192.168.0.62 t,回車結果一切正常(顯示:Relay from 192.168.0.62:bytes=32 time<1ms TTL=20)。表明該系統能夠使數據流按照改進后的網絡協議模型進行處理,并能正確地實現數據包的以太網傳輸。本文為嵌入式設備接入Internet提供了一種低成本、高可靠性、靈活性的解決方案。此外用戶還可以根據具體設計需要,開發出適合自己的網絡微控制器。

參考文獻:

[1]SungWoo Tak, JongMoon Son, TaeKeum Kim. Experience with TCP/IP Networking Protocol S/W over Embedded OS for Network Appliance[C].ICPP Workshops, 1999.556-561.

[2]郝京宇,黃建華,賈風根.協議棧的實現方法[J].計算機工程,2004,30(14):93-94.

[3][美] W Richard Stevens.TCP/IP詳解(卷一):協議[M].范建華,等.北京:機械工業出版社,2000.

[4][美]Gary R,Wrigh W,Richard Stevens.TCP/IP詳解(卷二):實現[M].陸學瑩.北京:機械工業出版社,2000.

[5]李立清,路海.基于嵌入式系統的TCP/IP協議棧的實現[J].計算機工程,2004,30(19):83-84.

[6](日)村山公保.TCP/IP網絡實驗程序篇[M].北京: 科學出版社,2003.

[7]郝身剛,劉金江.嵌入式系統中TCP/IP協議棧的研究[J].南陽師范學院學報(自然科學版),2004,23(3):78-80.

[8]郝潔,王慕坤,付金生.嵌入式TCP/IP技術研究及應用[J].哈爾濱理工大學學報,2004,9(2):100102.

作者簡介:

徐海軍(1980-),男,四川儀隴人,碩士研究生,主要研究方向為智能接口技術;劉金剛(1963-),男,遼寧人,研究員,博導,主要研究方向為智能接口技術。

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 色综合久久无码网| 国产毛片片精品天天看视频| 啪啪啪亚洲无码| 成人国产精品网站在线看| 日本尹人综合香蕉在线观看| 久久香蕉国产线看观看精品蕉| 色婷婷成人| 亚洲色图欧美| 精品撒尿视频一区二区三区| 国产亚洲欧美另类一区二区| 免费无码在线观看| 亚洲自偷自拍另类小说| a国产精品| 国产区福利小视频在线观看尤物| 亚洲无限乱码| 91在线精品麻豆欧美在线| 国产尤物视频在线| 亚洲欧美日本国产专区一区| AV网站中文| 国产人人干| 亚洲男人的天堂在线观看| 自慰网址在线观看| 国产高清在线观看91精品| 全免费a级毛片免费看不卡| 亚洲日韩精品伊甸| 国产精品粉嫩| 亚洲无线国产观看| 国产成人91精品| 国产91导航| 国产亚洲一区二区三区在线| av在线5g无码天天| 国产成人区在线观看视频| 伊人久久福利中文字幕| 人人妻人人澡人人爽欧美一区| 国产成人一二三| 免费看av在线网站网址| 777国产精品永久免费观看| 欧美综合一区二区三区| 免费A∨中文乱码专区| 亚洲精品无码高潮喷水A| 高潮毛片免费观看| 国产高清在线观看| 亚洲精品手机在线| 久热re国产手机在线观看| 亚洲资源站av无码网址| 麻豆精品久久久久久久99蜜桃| 91黄视频在线观看| 国产成人久久综合777777麻豆| 青青操国产视频| 亚洲综合狠狠| 伊人91在线| 国产91久久久久久| 国产女人水多毛片18| 成年A级毛片| 欧美一级片在线| 国产精品女同一区三区五区| 看看一级毛片| 97色伦色在线综合视频| 99re免费视频| 人妻一本久道久久综合久久鬼色| 日本在线国产| 日韩少妇激情一区二区| 18禁黄无遮挡免费动漫网站| 午夜毛片福利| 青青草a国产免费观看| 亚洲人妖在线| 欧美国产日韩一区二区三区精品影视| 国产美女精品在线| 四虎国产永久在线观看| 欧美激情成人网| 精品少妇人妻无码久久| 免费在线成人网| 久久综合伊人77777| 日韩国产亚洲一区二区在线观看| 最近最新中文字幕在线第一页 | 日韩免费中文字幕| 久久a级片| 国产欧美精品午夜在线播放| 国产91熟女高潮一区二区| 免费一级成人毛片| 免费人成网站在线观看欧美| 天天色天天综合|