国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LWIP協(xié)議與TCP/IP

這篇具有很好參考價(jià)值的文章主要介紹了LWIP協(xié)議與TCP/IP。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 學(xué)習(xí)一個(gè)東西,先了解這個(gè)東西是干什么用的,哪些場景會(huì)用到它,與自己已經(jīng)掌握的其他知識(shí)的聯(lián)系

????????a. 例如:LWIP這個(gè)東西是干什么用的:他就是一個(gè)裁剪后保持大部分TCP/IP功能的協(xié)議。用少量的資源消耗實(shí)現(xiàn)一個(gè)較為完整的TCP/IP協(xié)議棧,其中“完整”主要指的是TCP協(xié)議的完整性,實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM 的占用。此外LwIP既可以移植到操作系統(tǒng)上運(yùn)行,也可以在無操作系統(tǒng)的情況下獨(dú)立運(yùn)行。

????????b.例如:哪些場景會(huì)用到LWIP這個(gè)協(xié)議:基本上如果你想實(shí)現(xiàn)TCP/IP這個(gè)協(xié)議,就可以用到這個(gè)。比如TCP,UDP協(xié)議,比如工業(yè)總線上的Modbus,比如想要實(shí)現(xiàn)網(wǎng)關(guān)路由的功能,只要是用到以太網(wǎng)的,都可以實(shí)現(xiàn)功能,還有一些物聯(lián)網(wǎng)像MQTT等。

????????c.例如:他與linux上直接編寫TCP/IP協(xié)議的區(qū)別:Linux系統(tǒng)中有完整的TCP/IP協(xié)議的實(shí)現(xiàn)。但是可執(zhí)行代碼往往有數(shù)兆之大。需要高效的處理器熟讀和大量的外存、內(nèi)存開銷。所以如果芯片是基于Linux kernel的話,就沒必要在重復(fù)造輪子。LWIP最大優(yōu)勢可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下獨(dú)立運(yùn)行,且代碼量小。是目前在嵌入式網(wǎng)絡(luò)領(lǐng)域被討論和使用很廣泛的一個(gè)協(xié)議棧。開源特性和快速的版本更新效率。新版本還支持DNS、SNMP、DHCP、IGMP等高級(jí)應(yīng)用功能。在資源有限的情況下實(shí)現(xiàn)TCP協(xié)議的主要功能。有自己的數(shù)據(jù)包和內(nèi)存管理機(jī)制。所以LWIP需要根據(jù)自己的需求,移植相關(guān)的代碼。

2. 對要學(xué)的東西梳理出一個(gè)大概的框架(這個(gè)框架是(理論框架 + 應(yīng)用框架[code邏輯]))

2.1. LWIP的理論架構(gòu)

a. LWIP的網(wǎng)絡(luò)分層模型:就是TCP/IP的網(wǎng)絡(luò)分層模型

LWIP協(xié)議與TCP/IP

b. LwIP 符合 TCP/IP 模型架構(gòu),規(guī)定了數(shù)據(jù)的格式、傳輸、路由和接收,以實(shí)現(xiàn)端到端的通信。(netif 用來描述一個(gè)網(wǎng)卡)

LWIP協(xié)議與TCP/IP

LWIP協(xié)議與TCP/IP

2.2 LWIP的應(yīng)用code架構(gòu):(下載一個(gè)相對完整的代碼,去看一下這個(gè)功能的實(shí)現(xiàn)邏輯)

a. LWIP的軟件架構(gòu):

參考:

LITIECX/lwip_linux: lwip協(xié)議棧的linux移植學(xué)習(xí) (github.com)

LwIP協(xié)議棧粗解

LWIP協(xié)議與TCP/IP

LWIP協(xié)議與TCP/IP

b. LWIP中三種API所在的架構(gòu)層次:

LWIP協(xié)議與TCP/IP

3. 在框架體系中,找到一條盡快熟悉架構(gòu)的線,可以以一個(gè)想要實(shí)現(xiàn)的功能為攻破對象。因?yàn)榭蚣軆?nèi)的內(nèi)容大部分都是重復(fù)使用的,所以只要捋清楚一條線,其他的也就迎刃而解。

a. 例如:我想做一個(gè)基于LWIP協(xié)議中TCP功能的實(shí)現(xiàn);

4. 在確定自己要實(shí)現(xiàn)的功能后,先去理解這個(gè)功能的原理

a. 例如:TCP的原理是如何實(shí)現(xiàn)的。

參考:【lwip】12-一文解決TCP原理文章來源地址http://www.zghlxwxcb.cn/news/detail-422205.html

5. 基于我找到的那條線,梳理出這個(gè)東西如果按照步驟是怎樣運(yùn)作的。(以結(jié)果為導(dǎo)向,分析問題的時(shí)候就要想這個(gè)原理和步驟之間有什么關(guān)系)

a. 例如:實(shí)現(xiàn)TCP的設(shè)計(jì)方案;下面只是一個(gè)很粗糙的流程圖,還需要具體的深入研究,基于LWIP的TCP是如何實(shí)現(xiàn)的。

LWIP協(xié)議與TCP/IP

6. 基于這條線的框架,將其拆解成各個(gè)模塊,之后再根據(jù)各個(gè)模塊補(bǔ)充細(xì)節(jié)

a. 例如:如上圖的設(shè)計(jì)方案可以看出,首先TCP我需要分為客戶端與服務(wù)端。

TCP傳輸需要涉及到Socket編程

LWIP協(xié)議與TCP/IP

LWIP協(xié)議與TCP/IP

b. 基于理論的實(shí)現(xiàn)流程,協(xié)議層報(bào)文間的封裝與拆封流程圖:

LWIP協(xié)議與TCP/IP

c. 基于應(yīng)用code的實(shí)現(xiàn)流程,LWIP協(xié)議中TCP的數(shù)據(jù)收發(fā)實(shí)現(xiàn)的流程圖:

TCP服務(wù)端

LWIP協(xié)議與TCP/IP

TCP客戶端

LWIP協(xié)議與TCP/IP

7. 通過給自己提問,帶著問題一層一層的挖每個(gè)模塊更細(xì)節(jié)的內(nèi)容

a. 例如:LWIP 是軟件那么而怎樣讓硬件和軟件無縫連接起來呢?網(wǎng)卡又多種多樣,怎樣才能讓 LWIP 使用同樣的軟件兼容不同的硬件平臺(tái)?

參考:LWIP中netif結(jié)構(gòu)體的介紹

? https://www.cnblogs.com/lizhuming/p/15487094.html

? https://www.cnblogs.com/lizhuming/p/15487160.html

LWIP 中使用了一個(gè) netif 結(jié)構(gòu)體來描述網(wǎng)卡但是網(wǎng)卡是直接和硬件平臺(tái)打交道的:

  • 用戶提供最底層接口函數(shù)。
  • LWIP 提供統(tǒng)一的 API。
  • 舉例:
    • 收:如網(wǎng)卡的初始化和網(wǎng)卡的收發(fā)數(shù)據(jù),當(dāng) LWIP 底層得到數(shù)據(jù)之后,才會(huì)傳入到內(nèi)核中去處理。
    • 發(fā):LWIP 內(nèi)核需要發(fā)送數(shù)據(jù)包的時(shí)候,也需要調(diào)用網(wǎng)卡的發(fā)送函數(shù)。
  • LWIP 中的 etherneif.c 文件的函數(shù)通常為硬件打交道的底層函數(shù),當(dāng)有數(shù)據(jù)需要通過網(wǎng)卡接收或者發(fā)送數(shù)據(jù)的時(shí)候就會(huì)被調(diào)用,通過 LWIP 的協(xié)議棧的內(nèi)部進(jìn)行處理后,從應(yīng)用層就能得到數(shù)據(jù)或者可以發(fā)送數(shù)據(jù)。

b. 例如:LWIP中的TCP是如何實(shí)現(xiàn)三次握手和四次揮手的

參考:【lwip】12-一文解決TCP原理

8. 最后根據(jù)這條線,將所有的枝干全部理解后,整理出來,這樣就基本理解了這塊功能,其他模塊也都一通百通。最后自己在手寫一份代碼,基本就差不多了。

到了這里,關(guān)于LWIP協(xié)議與TCP/IP的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第138篇:了解HTTP協(xié)議(TCP/IP協(xié)議,DNS域名解析,瀏覽器緩存)

    第138篇:了解HTTP協(xié)議(TCP/IP協(xié)議,DNS域名解析,瀏覽器緩存)

    好家伙,發(fā)現(xiàn)自己的網(wǎng)絡(luò)知識(shí)十分匱乏,趕緊補(bǔ)一下 ? 這里先舉個(gè)我生活中的例子 欸,作業(yè)不會(huì)寫了,上網(wǎng)搜一下 用edge瀏覽器上bing必應(yīng)搜一下(百度廣告太多了,真不想用百度舉例子) ? 假設(shè)這是我們第一次訪問bing的首頁 當(dāng)我向?yàn)g覽器中輸入https://cn.bing.com/并按下回車

    2023年04月24日
    瀏覽(32)
  • Lwip之TCP協(xié)議實(shí)現(xiàn)(二)

    接上文:Lwip之TCP協(xié)議實(shí)現(xiàn)(一)_龍赤子的博客-CSDN博客 第二部分:數(shù)據(jù)輸入處理 Tcp數(shù)據(jù)的輸入處理主要在文件tcp_in.c中實(shí)現(xiàn)。輸入的數(shù)據(jù)包在IP層進(jìn)行分發(fā)處理。如果輸入的數(shù)據(jù)包為TCP包,則調(diào)用tcp_input進(jìn)行TCP包的輸入處理。因此,tcp_input為tcp輸入處理的入口。在tcp_input中會(huì)

    2023年04月09日
    瀏覽(27)
  • Lwip之TCP協(xié)議實(shí)現(xiàn)(一)

    TCP本身是一個(gè)相對復(fù)雜的協(xié)議,Lwip中最復(fù)雜的部分也是此處。這里,我們分部分描述。 第一部分:TCP處理 Tcp.c該文件提供了一些通用的函數(shù)接口。該文件中的函數(shù)主要的操作對象就是tcp_pcb,包括對tcp pcb的設(shè)置,修改讀取等。另外,在該文件中還實(shí)現(xiàn)了tcp的定時(shí)器。 目錄 一

    2023年04月09日
    瀏覽(19)
  • 【lwip】14-TCP協(xié)議分析之TCP協(xié)議之可靠傳輸?shù)膶?shí)現(xiàn)(TCP干貨)

    ? 前面章節(jié)太長了,不得不分開。 這里已源碼為主,默認(rèn)讀者已知曉概念或原理,概念或原理可以參考前面章節(jié),有分析。 參考:李柱明博客:https://www.cnblogs.com/lizhuming/p/17438743.html ? lwip的時(shí)鐘機(jī)制可以翻看前面章節(jié)。 lwip的TCP可靠傳傳輸?shù)膶?shí)現(xiàn)離不開兩個(gè)時(shí)鐘處理函數(shù):

    2024年02月06日
    瀏覽(26)
  • 【lwip】13-TCP協(xié)議分析之源碼篇

    TCP源碼篇,當(dāng)前只分析TCP層的源碼實(shí)現(xiàn),按功能分塊分析,接口為RAW接口。 NETCONN接口和SOCKET接口會(huì)獨(dú)立一篇文章進(jìn)行分析。 本文基于讀者已學(xué)習(xí)了TCP協(xié)議原理篇的基礎(chǔ)上進(jìn)行源碼分析,不再在此篇文章中過多解析TCP相關(guān)概念。 ? 建議讀者對著LWIP庫源碼進(jìn)行閱讀。對于初學(xué)

    2024年02月06日
    瀏覽(23)
  • 【lwip】14-TCP協(xié)議之可靠傳輸?shù)膶?shí)現(xiàn)(TCP干貨)

    ? 前面章節(jié)太長了,不得不分開。 這里已源碼為主,默認(rèn)讀者已知曉概念或原理,概念或原理可以參考前面章節(jié),有分析。 參考:李柱明博客:https://www.cnblogs.com/lizhuming/p/17438743.html ? lwip的時(shí)鐘機(jī)制可以翻看前面章節(jié)。 lwip的TCP可靠傳傳輸?shù)膶?shí)現(xiàn)離不開兩個(gè)時(shí)鐘處理函數(shù):

    2024年02月06日
    瀏覽(23)
  • 路由器是什么東西?路由器是干什么用的?

    路由器是什么東西?雖然這個(gè)問題對于大多數(shù)人來說都不是一個(gè)問題,但是任然有少數(shù)缺乏網(wǎng)絡(luò)基礎(chǔ)的朋友,不知道路由器到底是個(gè)什么東西,本文就簡單的介紹一下。 路由器(Router),是連接局域網(wǎng)與局域網(wǎng)、局域網(wǎng)與廣域網(wǎng)(Internet)的一種設(shè)備,它會(huì)根據(jù)信道的情況自

    2024年02月08日
    瀏覽(22)
  • TCP/IP傳輸協(xié)議學(xué)習(xí)

    TCP/IP傳輸協(xié)議學(xué)習(xí)

    1.發(fā)送方源終端設(shè)備的應(yīng)用創(chuàng)建數(shù)據(jù)。 2.當(dāng)數(shù)據(jù)在源終端設(shè)備中沿協(xié)議棧向下傳遞,對其分段和封裝。 3.在協(xié)議棧網(wǎng)絡(luò)接入層的介質(zhì)上生成數(shù)據(jù)。 4.通過由介質(zhì)和任意中間設(shè)備組成的網(wǎng)際層網(wǎng)絡(luò)傳輸數(shù)據(jù)。 5.在目的終端設(shè)備中沿協(xié)議棧向上傳遞時(shí)對其解封和重組。 ? 1.TCP/IP協(xié)

    2024年02月09日
    瀏覽(22)
  • 網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí):什么是tcp/ip協(xié)議

    網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí):什么是tcp/ip協(xié)議

    TCP/IP是一種網(wǎng)絡(luò)協(xié)議套件,它由傳輸控制協(xié)議(TCP)和互聯(lián)網(wǎng)協(xié)議(IP)兩個(gè)協(xié)議組成,廣泛應(yīng)用于Internet和局域網(wǎng)中。TCP/IP協(xié)議套件提供了可靠的數(shù)據(jù)傳輸、路由選擇、錯(cuò)誤檢測和糾正等功能,使得不同類型的計(jì)算機(jī)和網(wǎng)絡(luò)設(shè)備可以進(jìn)行互聯(lián)互通。它是Internet的基礎(chǔ)協(xié)議,也

    2024年04月23日
    瀏覽(24)
  • 9.物聯(lián)網(wǎng)LWIP,ip數(shù)據(jù)報(bào),udp數(shù)據(jù)報(bào),tcp數(shù)據(jù)報(bào)

    9.物聯(lián)網(wǎng)LWIP,ip數(shù)據(jù)報(bào),udp數(shù)據(jù)報(bào),tcp數(shù)據(jù)報(bào)

    一。ip協(xié)議原理(網(wǎng)絡(luò)層) 1.網(wǎng)絡(luò)地址轉(zhuǎn)換NAT ? ? ? ? 我們上網(wǎng)是通過運(yùn)營商向我們提供的IP地址來上網(wǎng)的,并不是自身的IP地址,所以這就需要網(wǎng)絡(luò)地址轉(zhuǎn)換NAT的幫助。即內(nèi)網(wǎng)訪問外網(wǎng)所需要的ip轉(zhuǎn)換裝置。 2.ip數(shù)據(jù)報(bào) (1)版本 ? ? ? ? ?占據(jù)4bit空間,定義IPv4與ipv6,對應(yīng)的

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包