




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《計算機(jī)網(wǎng)絡(luò)與控制》論文《計算機(jī)網(wǎng)絡(luò)與控制》論文LwIP協(xié)議棧的分析《計算機(jī)網(wǎng)絡(luò)與控制》論文《計算機(jī)網(wǎng)絡(luò)與控制》論文LwIP協(xié)議棧的分析--#low-level"core"/"callback"or"raw"API.是一種低水平的、基于回調(diào)函數(shù)的API(后面直接稱RAWAPI),整個通信流程依靠協(xié)議棧里的回調(diào)函數(shù)來驅(qū)動。因為回調(diào)函數(shù)的調(diào)用不能超越任務(wù)邊界,這樣應(yīng)用程序和TCP/IP協(xié)議棧必須運(yùn)行在同一個任務(wù)中,而用戶不再增加其它的任務(wù),應(yīng)用程序直接在TCP/IP任務(wù)空間運(yùn)行。因此,就要避免調(diào)用諸如掛起、等待的函數(shù),以防止整個TCP/IP任務(wù)被掛起。RAWAPI接口函數(shù)不僅在程序代碼的執(zhí)行時間上更快,而且在運(yùn)行中它也占用更少的內(nèi)存資源。唯一的缺點(diǎn)是應(yīng)用程序的編寫比較困難,并且代碼較難理解。盡管如此,在CODE和RAM都較小的嵌入式系統(tǒng)中,這也是我們優(yōu)先考慮采用的方法。higher-level"sequential"API/LWIPAPI是一種高水平的、連續(xù)的API,LWIPAPI為我們提供了一種通用的方法,它與BSD標(biāo)準(zhǔn)的socketAPI非常相似,程序的執(zhí)行過程同樣是基于"open-read-write-close"模型的,但操作相對低級。API不需要在應(yīng)用程序和協(xié)議棧之間復(fù)制數(shù)據(jù),因為應(yīng)用程序可以巧妙的直接處理內(nèi)部緩沖區(qū)。(充分利用LwIP的內(nèi)部結(jié)構(gòu)以實現(xiàn)其設(shè)計目標(biāo))因為BSDSocketAPI易于理解,并且很多應(yīng)用程序為它而寫,所以LwIP保留一個BSDSocket兼容層是很有用的。盡管LwIP與BSDSocketAPI非常相似,但是它們之間仍然存在著值得注意的區(qū)別,使用BSDSocketAPI的應(yīng)用程序不必知道普通文件和網(wǎng)絡(luò)連接的差別,而使用LwIPAPI的應(yīng)用程序就必須知道正在使用的是一個網(wǎng)絡(luò)連接。它不適合于應(yīng)用在比較小的嵌入式系統(tǒng)中,因為它的實現(xiàn)要求應(yīng)用程序必須支持多線程。從本質(zhì)上講,TCP/IP協(xié)議棧的通信過程是事件驅(qū)動的,因此‘TCP/IP的代碼和用戶應(yīng)用程序的代碼,應(yīng)該在不同的線程里面。當(dāng)然,在不同的應(yīng)用程序中,這兩種API我們可以同時采用。實際上,sequentialAPI就是一種利用RAWAPI來實現(xiàn)的一種屬于協(xié)議本體的應(yīng)用程序。BSDSocketAPIBSDSocketAPI在連續(xù)的內(nèi)存區(qū)域處理數(shù)據(jù)非常便于編寫應(yīng)用程序。因為應(yīng)用程序內(nèi)的數(shù)據(jù)處理通常是在這樣的連續(xù)內(nèi)存區(qū)域內(nèi)進(jìn)行的。但是,對于LwIP,采用這種機(jī)制不具備任何優(yōu)勢。特別是BSDSocket需要將要發(fā)送的數(shù)據(jù)從應(yīng)用程序復(fù)制到TCP/IP協(xié)議棧的內(nèi)部緩沖區(qū)。復(fù)制數(shù)據(jù)的原因是應(yīng)用程序與TCP/IP協(xié)議棧通常駐留在不同的受保護(hù)空間。大多數(shù)情況是應(yīng)用程序是一個用戶進(jìn)程,而TCP/IP協(xié)議棧則駐留在操作系統(tǒng)內(nèi)核。通過避免額外的復(fù)制操作,API的性能可以大幅度提升。同樣,為了復(fù)制數(shù)據(jù),系統(tǒng)還需要為此分配額外的內(nèi)存,這樣每一個信息包都需要使用雙倍的內(nèi)存。雖然LWIP提供了一些接口函數(shù),但操作相對低級,使用起來不方便,不利用于后續(xù)開發(fā)。由于BSDSOCKETAPI很容易理解且己經(jīng)有很多人為它寫過應(yīng)用程序,且應(yīng)用程序使用BSDSOCKETAPI時候不需要知道普通文件和網(wǎng)絡(luò)連接之間的差別,所以為了便要理解和應(yīng)用,LWI提供了基于LWIP接口函數(shù)的BSDSOCKETAPI,但沒有任何容錯機(jī)制,沒有select()與poll()函數(shù)。以下就一些重要的SOCKETAPI函數(shù)做一介紹。(1)socket。函數(shù)用于創(chuàng)建網(wǎng)絡(luò)通信的套接字,并返回該套接字的整數(shù)描述符。函數(shù)原型為intsocket(intdomain,inttype,intprotocol),其中參數(shù)domain代表協(xié)議族或地址族,對于TCP/IP為PF_INET或AF_INET;type代表服務(wù)類型,對于TCP為SOCK_STREAM(流式),對于UDP為SOCK—DGRAM(數(shù)據(jù)報);protocol代表使用的協(xié)議號,對于TCP為IPPROTO_TCP,對于UDP為IPPROTO_UDP,傳遞0表示根據(jù)協(xié)議族和給定的服務(wù)類型選擇默認(rèn)的協(xié)議號。若socket成功返回,返回大于或等于0的有效套接字描述符,返回一1表示發(fā)生了差錯。⑵bind()函數(shù)將BSDsocket綁定到本地(本機(jī))地址上。在調(diào)用bind()時,本地IP地址和端口號將被指定。⑶connect()允許調(diào)用者為先前創(chuàng)建的套接字指明遠(yuǎn)程端點(diǎn)的地址。如果套接字使用TCP,該函數(shù)就使用三次握手建立連接;如果套接字使用UDP,則僅指明遠(yuǎn)程端點(diǎn),但不向它傳送任何數(shù)據(jù)報。⑷listen()使套接字處于被動狀態(tài)(即準(zhǔn)備接受傳入的連接請求)。在服務(wù)器處理某個請求時,協(xié)議軟件應(yīng)將后續(xù)收到的請求排隊‘listen也設(shè)置排隊的連接請求的數(shù)目.listen只用于TCP套接字。⑸accept()函數(shù)被用來等待TCPsocket口上的輸入連接。在此之前,這個TCPsocket口通過調(diào)用listen()已經(jīng)被設(shè)置成監(jiān)聽狀態(tài),對accept()調(diào)用一直被阻塞,直到與遠(yuǎn)程主機(jī)建立連接。⑹send()數(shù)在UDP和TCP兩種連接中被用來發(fā)送數(shù)據(jù)。在調(diào)用send()前,數(shù)據(jù)接收器必須被設(shè)置成正在使用connect。,應(yīng)用程序在調(diào)用send()后可以直接修改發(fā)送的數(shù)據(jù)。sendto()調(diào)用函數(shù)與send()調(diào)用函數(shù)類似,但是在參數(shù)調(diào)用中他們允許應(yīng)用程序指定數(shù)據(jù)接收器。sendto()僅能在UDP連接中使用,實現(xiàn)這功能要使用netconnconnect()來設(shè)置數(shù)據(jù)包接收器。如果以前socket口被連接,必須重設(shè)遠(yuǎn)程IP地址和端口號。⑻write()調(diào)用函數(shù)通過連接來發(fā)送數(shù)據(jù)并且能在UDP和TCP連接中使用。參考文獻(xiàn)W.RichardStevens著.TCP/IP詳解卷1:協(xié)議.范建華等譯.機(jī)械工業(yè)出版社.2000GaryR.Wright,W.RichardStevens著.TCP/IP詳解卷2:實現(xiàn)..陸雪瑩等譯.機(jī)械工業(yè)出版社.2000W.RichardStevens著.TCP/IP詳解卷三:TCP事務(wù)協(xié)議,HTTP,NNTP和UNIX域協(xié)議.胡谷雨,昊禮發(fā)等譯.機(jī)械工業(yè)出版社.2000JanAxelson.編著.嵌入式Ethernet和internet通信設(shè)計技術(shù).駱麗,張岳強(qiáng),歐小龍譯.北京:北京航空航天大學(xué)出版社,2006.1焦海波,劉健康.編著.嵌入式網(wǎng)絡(luò)系統(tǒng)設(shè)計—基于AtmelARM7,北京:北京航空航天大學(xué)出版社,2008.4AdamDunkels.DesignandImplementationofthelwIPTCP/IPStack,Feb20,2001⑹Jea.Labrosse.編著.嵌入式實時操作系統(tǒng)uC/OS-II(第二版).邵貝貝等譯.北京:北京航空航天大學(xué)出版社,2003.5⑺DouglassE.Comer,DavidL.Stevens著.用TCP/IP進(jìn)行網(wǎng)際互連第二卷一設(shè)計、實現(xiàn)與內(nèi)核:ANSIC版(第三版).張娟王海等譯北京:電子工業(yè)出版社,2008.10BSDSocketsInterfaceProgrammer'sGuideEdition6.HPCompanyGuidoMoritz,SteffenPruter,WebservicesonDeeplyEmbeddedDeviceswithReal-TimeProcessingProconETFA'08.IEEE邱書波,陳偉,基于ARM的輕量級TCP/IP協(xié)議棧的研究及移植計算機(jī)應(yīng)用與軟件,2009.8王海波,基
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 和悅辟谷養(yǎng)生會館合作商合同范本
- 公司土地合同范例
- 光盤制作合同范本
- 合同范例 分次收款
- ppp項目框架合同范例
- 合伙開工廠合同范本
- 原料輔料采購合同范本
- 單位簽訂工程合同范本
- 別墅售房合同范本
- 廈門保障房續(xù)租合同范本
- 工廠奠基儀式策劃書
- 人員能力矩陣圖
- 用戶需求(URS)編寫及管理規(guī)程
- 分班后第一次班會——起航剖析
- 牛羊定點(diǎn)屠宰廠項目可行性研究報告-甲乙丙資信
- 03SG520-1實腹式鋼吊車梁(中輕級工作制A1~A5_Q235鋼_跨度6.0m、7.5m、9.0m)
- 妊娠糖尿病-楊慧霞.ppt
- (完整word版)消化系統(tǒng)知識點(diǎn)整理
- 煤礦綜采工作面配套設(shè)備選型設(shè)計
- 全國防返貧監(jiān)測信息系統(tǒng)業(yè)務(wù)管理子系統(tǒng)操作手冊
- 工程施工項目明細(xì)表-改(5)
評論
0/150
提交評論