久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5101|回復(fù): 4
收起左側(cè)

LwIP TCP/IP協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)_中文譯稿(共42頁pdf下載)

[復(fù)制鏈接]
ID:437008 發(fā)表于 2018-12-1 11:13 | 顯示全部樓層 |閱讀模式
最近開發(fā)需要使用LwIP協(xié)議,搜集到了[瑞典]Adam Dunkels著的書籍,發(fā)現(xiàn)有中文翻譯版,分享一波。
0.png
LwIP 是 TCP/IP 協(xié)議棧的一個實(shí)現(xiàn)。它的目的是減少內(nèi)存使用率和代碼大小,使 LwIP 適用于資源受限系統(tǒng)比如嵌入式系統(tǒng)。為了減少處理和內(nèi)存需求,LwIP 使用不需要任何數(shù)據(jù)復(fù)制的經(jīng)過裁剪的 API。
本文描述了 LwIP 的設(shè)計(jì)與實(shí)現(xiàn)。描述了在協(xié)議棧實(shí)現(xiàn)中以及像內(nèi)存與緩沖管理這樣的子系統(tǒng)中使用的算法和數(shù)據(jù)結(jié)構(gòu)。本文還包括 LwIP 的參考手冊以及使用 LwIP 的代碼例子。

0.png
圖 2 所示的pbuf 是一個被鏈接的 pbuf例子,在這個 pbuf 鏈中第一個 pbuf是 PBUF RAM 類型,第二個是 PBUF ROM 類型,這意味著它所擁有的數(shù)據(jù)存儲在 pbuf子系統(tǒng)不能管理的存儲區(qū):
0.png
圖 2  一個PBUF RAM類型的 pbuf鏈接了一個數(shù)據(jù)存儲在外部存儲區(qū)的PBUF ROM類型的pbuf

第三種 pbuf類型,PBUF POOL,圖 3 所示,它由分配自固定大小的 pbufs池里的固定大小的 pbufs組成。一個 pbuf鏈可以由 pbufs 的不同類型組成。

0.png
這三種類型擁有不同的使用目的。PBUF POOL 主要用于網(wǎng)絡(luò)設(shè)備驅(qū)動層,因?yàn)榉峙湟粋 pbuf 的操作可以快速完成,所以非常適合用于中斷處理。PBUF ROM 類型的 pbufs 用于應(yīng)用程序要發(fā)送的數(shù)據(jù)放置在應(yīng)用程序管理的存儲區(qū)的情況。在 pbuf已經(jīng)移交給 TCP/IP 協(xié)議棧后,這些數(shù)據(jù)是不能被編輯修改的,因此這種 pbuf 類型主要用于數(shù)據(jù)被放置在 ROM 中的情況(因此名字是 PBUF ROM)。為 PBUF ROM 類型的pbuf 數(shù)據(jù)預(yù)置的包頭存儲在一個 PBUF RAM 類型的 pbuf中,這個 pbuf 被鏈接到這個 PBUF ROM 類型的pbuf 前面,如圖 2 所示。
PBUF RAM類型的pbuf還用于應(yīng)用程序發(fā)送的數(shù)據(jù)被動態(tài)生成的情況。在這種情況下。
pbuf 系統(tǒng)不僅為應(yīng)用數(shù)據(jù)分配內(nèi)存,還要給為這些數(shù)據(jù)預(yù)置的包頭分配內(nèi)存,見圖 1。pbuf系統(tǒng)不可能預(yù)先知道為這些數(shù)據(jù)預(yù)置什么樣的包頭,因而考慮最壞的情況。包頭大小在編譯時是可配置的。其實(shí),收到的 pbufs是 PBUF POOL 類型,發(fā)送出的 pbufs是 PBUF ROM 或 PBUF RAM類型。

pbuf 的內(nèi)部結(jié)構(gòu)參見圖 1 到圖3。pbuf結(jié)構(gòu)包括兩個指針,兩個長度字段,一個標(biāo)志字段和一個引用計(jì)數(shù)(reference count)。next 字段是一個指向 pbuf 鏈中下一個 pbuf 的指針。payload 指針指向 pbuf 中數(shù)據(jù)的開始位置。len 字段包含 pbuf中數(shù)據(jù)內(nèi)容的長度。tot_len 字段包含當(dāng)前 pbuf 的長度與在這個 pbuf 鏈中隨后的所有 pbufs 的 len 字段之和。換句話說,tot_len 字段是 len 字段與 pbuf 鏈中隨后一個 pbuf 的 tot_len 字段的和。flags 字段標(biāo)識 pbuf的類型,ref字段包含一個引用計(jì)數(shù)。next 和payload 字段是本地指針,它們占用的字節(jié)數(shù)與所使用的處理器架構(gòu)有關(guān)。兩個長度字段為 16 位無符號整形,flags 和 ref 字段是 4 位寬。pbuf 結(jié)構(gòu)的實(shí)際大小與所使用的處理器架構(gòu)下的指針大小及最小對齊方式有關(guān)。在 32 位指針及 4 字節(jié)對齊的架構(gòu)里,pbuf 的大小為 16 個字節(jié)長,在 16 位指針及 1 字節(jié)對齊的架構(gòu)里,pbuf 為9 個字節(jié)長。 pbuf 模塊提供了操作 pbufs 的函數(shù)。分配一個 pbuf 使用 pbuf_alloc()函數(shù),該函數(shù)能夠分配上面描述的三種類型中的任一類型 pbufs。pbuf_ref()函數(shù)增加引用計(jì)數(shù)。回收 pbuf 使用pbuf_free()函數(shù),該函數(shù)首先要減少 pbuf 索引計(jì)數(shù)(reference count)。如果引用計(jì)數(shù)已經(jīng)減為 0,這個 pbuf 被回收。pbuf_realloc()函數(shù)可以收縮 pbuf 大小,以恰好夠用的內(nèi)存封裝數(shù)據(jù)。pbuf_header()函數(shù)調(diào)整 payload 指針和長度字段以便為 pbuf 中的數(shù)據(jù)預(yù)置包頭。pbuf_chain()與 pbuf_dechain()函數(shù)用于鏈接 pbufs。

6.2 內(nèi)存管理
內(nèi)存管理模塊支撐的 pbuf 機(jī)制很簡單。它負(fù)責(zé)處理內(nèi)存連續(xù)區(qū)域的分配和回收以及收縮已分配內(nèi)存塊的大小。內(nèi)存管理模塊使用系統(tǒng)內(nèi)存的一部分作為自己的專用區(qū)域,這確保了網(wǎng)絡(luò)系統(tǒng)不會使用系統(tǒng)中所有可用內(nèi)存,即使網(wǎng)絡(luò)系統(tǒng)使用了所有自己的內(nèi)存,也不會擾亂其它程序的操作。
在內(nèi)部,內(nèi)存管理模塊通過在每一個內(nèi)存分配塊的頂部放置一個比較小的結(jié)構(gòu)體來保存內(nèi)存分配紀(jì)錄。這個結(jié)構(gòu)體擁有三個成員變量,兩個指針一個標(biāo)志,見圖 4。next 與 prev分別指向內(nèi)存的下一個和上一個分配塊,used標(biāo)志標(biāo)示該內(nèi)存塊是否已被分配。

完整的pdf格式文檔51黑下載地址(共42頁):
LwIP協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)_中文譯稿.pdf (618.87 KB, 下載次數(shù): 80)


回復(fù)

使用道具 舉報

ID:18591 發(fā)表于 2019-1-31 18:39 | 顯示全部樓層
感謝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回復(fù)

使用道具 舉報

ID:320935 發(fā)表于 2019-2-14 12:51 | 顯示全部樓層
感謝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回復(fù)

使用道具 舉報

ID:328121 發(fā)表于 2019-2-15 08:34 | 顯示全部樓層
謝謝分享!!!
回復(fù)

使用道具 舉報

ID:513219 發(fā)表于 2019-5-14 19:29 | 顯示全部樓層
謝謝分享,。。。。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av免费网| 一区二区免费在线观看 | 精品一区二区观看 | 欧美福利一区 | 夜夜干夜夜操 | 精精国产xxxx视频在线播放 | 日韩欧美精品一区 | 亚洲永久 | 国产精品久久久久无码av | 日韩在线不卡 | 欧美日韩高清 | 国产一区二区在线免费 | 日韩一级免费电影 | 欧美午夜视频 | 一区二区av在线 | 久久国内精品 | 国产区一区二区三区 | www久| 亚洲一二三区不卡 | 久久久久91 | 黄色网址免费在线观看 | 亚洲免费精品 | xxx国产精品视频 | 在线观看视频一区 | 久操福利 | 99精品视频一区二区三区 | 成人av一区| 最新国产福利在线 | 三级免费av | 国产欧美精品一区二区三区 | 精品二区 | 天堂久 | 激情网站 | 精品国产一区二区三区久久影院 | 韩日一区二区 | 最近日韩中文字幕 | 在线黄色影院 | 亚洲精品久久嫩草网站秘色 | 国产中的精品av涩差av | 精品久久久av | 日本在线免费观看 |