在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是網絡底層

汽車電子技術 ? 來源:物聯網IoT開發 ? 作者:杰杰 ? 2023-02-14 10:08 ? 次閱讀

前言

從前一篇文章,我們也知道大概的網絡相關知識,網絡這個系列文章就從底層往頂層講解,本篇文章就來接觸一下網絡底層的相關知識

概述網絡中的數據遞交

當用戶發送數據時,將數據向下交給傳輸層,這是處于應用層的操作,應用層可以通過調用傳輸層的接口來編寫特定的應用程序,并且TCP/IP協議棧一般也會包含一些簡單的應用協議如 Telnet 遠程登錄、FTP文件傳輸、SMTP 郵件傳輸協議等,這些協議有自己的首部——APP首部傳輸層會在接收到上層協議的數據前面加上傳輸層首部(此處以TCP協議為例,圖的傳輸層首部為TCP首部。當然傳輸層協議還有UDP協議),傳輸層會向下交給網絡層。同樣地,網絡層會在數據前面加上網絡層首部(如IP首部),然后網絡層再將數據向下交給鏈路層數據鏈路層會對數據進行最后一次封裝,即在數據前面加上數據鏈路層首部(此處使用以太網接口為例),然后將數據交給網卡。最后,網卡將數據轉換成物理鏈路上的電平信號,數據就這樣被發送到了網絡中。數據的發送過程,可以概括為TCP/IP的各層協議對數據進行封裝的過程;

當設備的網卡接收到某個數據包后,它會將其放置在網卡的接收緩存中,并告知TCP/IP協議棧內核。然后TCP/IP協議棧內核就開始工作了,它會將數據包從接收緩存中取出,并逐層解析數據包中的協議首部信息,并最終將數據交給某個應用程序。數據的接收過程與發送過程正好相反,可以概括為TCP/IP的各層協議對數據進行解析的過程。

圖片

各層協議封裝

鏈路層

以太網

關于以太網的理論我就不介紹了,因為這些理論太多了,有興趣可以自己去網上查看。

鏈路與數據鏈路

我們在這里要明確一下, “鏈路”和“數據鏈路”并不是一回事。

所謂鏈路就是從一個結點到相鄰結點的一段物理線路(有線或無線)這是實實在在看得見的,比如我們的網線,而中間沒有任何其他的交換結點。 在進行數據通信時, 兩臺計算機之間的通信路徑往往要經過許多段這樣的鏈路。

數據鏈路則是另一個概念。 這是因為當需要在一條線路上傳送數據時, 除了必須有一條物理線路外,還必須有一些必要的協議來控制這些數據的傳輸,這就是我們TCP/IP協議棧要做的事情。 把這些TCP/IP協議棧加到鏈路上,就構成了數據鏈路。

一般我們所說的鏈路層指的都是數據鏈路。下文均采用鏈路層表示。

LwIP中的“鏈路層”

我們知道,網絡接口(如以太網接口)是硬件接口,(提示:網絡接口又可以稱之為網卡,為了統一,下文均采用網卡表示網絡接口),LwIP是軟件,那么怎么讓硬件與軟件無縫連接起來呢?而且,網卡又有多種多樣,怎么能讓LwIP使用同樣的軟件程序能兼容不同的硬件呢?

因此LwIP使用一個數據結構——netif來描述一個網卡,由于網卡是直接與硬件打交道的,硬件不同則處理基本是不同的,比如網卡的有各種各樣的芯片,所以必須由我們自己提供最底層接口函數,LwIP提供統一的接口,比如網卡的初始化,網卡的收發數據,當LwIP底層得到了網絡的數據之后,才會經過層層傳入內核中去處理;同理,當應用層需要發送一個數據包的時候,也是講數據包層層往下遞交,然后也需要調用網卡的發送函數,將數據發送到網絡中,這樣子才能把數據從硬件接口到軟件內核無縫連接起來。因此LwIP移植的關鍵是底層的移植,而很多人就卡在這里,如果底層的處理不好,那么就會導致各種各樣的問題,比如網卡無縫接收太多數據,導致網速過慢,出現掛掉的現象,時常丟包,或者運行一段時間就導致內存泄漏等等等等亂七八糟的問題。

簡單來說,netifLwIP抽象出來的網卡描述符,它擁有描述設備中的不同網卡,一個設備至少與一個網卡,才能與網絡進行通訊,LwIP協議棧可以使用多個不同的接口,而源碼中的ethernetif.c文件則提供了netif訪問各種不同的網卡,每個網卡有不同的實現方式,我們呢一般只需要修改ethernetif.c文件就行了,但是本篇文章不講移植。(此處用LwIP協議棧講解,本系列教程均基于LwIP

舉個例子:我們可以理解將整個網絡的數據傳輸理解為物流,那么網卡就是不同的運輸工具,我們可以選擇汽車、飛機、輪船等運輸工具,不同的運輸工具速度是不一樣的,但是對于一個物流公司而言,可能同時存在很多種運輸的工具,這就需要物流公司去記錄這些運輸工具,當有一個包裹需要通過飛機運輸出去,那么物流公司就會將這個包裹通過飛機發送出去,這就好比我們的網卡,需要哪個網卡發送或者接收網絡數據的時候,就會讓對應的網卡去工作。(可能不太貼切)

MAC地址簡介

MAC地址(英語:Media Access Control Address),直譯為媒體訪問控制地址,也稱為局域網地址(LAN Address),以太網地址(Ethernet Address)或物理地址(Physical Address),它是一個用來確認網絡設備位置的地址。在OSI模型中,第三層網絡層負責IP地址,第二層數據鏈接層則負責MAC地址。MAC地址用于在網絡中唯一標示一個網卡,一臺設備若有一或多個網卡,則每個網卡都需要并會有一個唯一的MAC地址。(引用來自維基百科)

可能我們做計算機相關專業的人,多多少少都會知道IP地址MAC地址(也稱之為鏈路層地址)。在前一篇文章說了,想要不同主機之間進行通訊,那么就必須有IP地址,那現在為什么我們在鏈路層都需要地址呢?事實上,并不是主機或路由器具有鏈路層地址,而是它們的網卡具有鏈路層地址。因此,一個主機擁有多少個網卡,那么它就有多少個MAC地址。MAC地址實際上就是網卡地址或網卡標識符。當某臺計算機使用某塊網卡后,網卡上的標識符就成為該計算機的MAC地址。MAC地址長度為6字節(48bit),其前3個字節表示組織唯一標志符(Organizationally Unique Identifier,即OUI),由IEEE的注冊管理機構給不同廠家分配的代碼,以區分不同的廠家,后3個字節由廠家自行分配,稱為擴展標識符。同一個廠家生產的網卡中MAC地址后24位是不同的。

IP地址與MAC地址的關系

TCP/IP協議有自己的IP地址,IP地址(IPv4)是一個32位的IP地址,網絡層發送數據包只需要知道目標主機IP地址即可,而以網卡發送數據則必須知道對方的硬件MAC地址,同時IP地址的分配與硬件MAC地址是沒有關系的,為了讓網絡層只需要知道IP地址就可以完成通信工作,那就需要有一個協議將IP地址映射成為對應的MAC地址,此外還需要考慮IP地址可能是動態的,非常靈活,使用靜態的映射方法是行不通的,所以ARP協議就提供優質的地址動態解析服務,讓32位的IP地址能映射成為48位的MAC地址,讓上層應用與底層完全分離開,這樣子在上層應用就能靈活使用IP地址作為標識,進行通信。

簡單來說,就是計算機中會維護一個ARP緩存表,這個表記錄著IP地址與MAC地址的映射關系,我們可以通過在電腦的控制臺通過arp -a指令查看一下我們自己計算機的ARP緩存表:

圖片

ARP緩存表

我給大家舉個例子,IP地址就相當于你家的地址,MAC就是你的身份證,你的身份證是全國唯一的,這沒疑問吧,但你的地址是可以跟別人重疊的(你家人也是住在你家)。當你寄快遞的時候,快遞員要確認這個快遞是從你家寄出去的,是你本人親自寄出去的,同樣的,當你收快遞的時候,快遞員也是先電話找到你,然后必須是你本人才能拿到快遞,再拿回家。(可能也不貼切,將就理解一下)## 數據幀

鏈路層的主體部分是網卡中實現的,在發送的數據幀的時候,協議棧取得由高層傳遞過來的數據報(注意,數據幀與數據報不是一個東西,數據報是形容網絡層及其以上的報文,而數據幀一般形容鏈路層的數據,是一幀一幀的,也是鏈路層的服務——數據成幀),在鏈路層中封裝該數據報,也就是填寫數據幀的各個字段,然后遵循鏈路接入協議將該幀數據進行傳輸;在接收端,控制器接收了整個數據幀,抽取出網絡層的數據報,往上層傳遞。

下面來看看以太網幀:

圖片

以太網幀

事實上,前同步碼與幀開始符字段不能算是真正的以太網幀數據結構,他們是在網卡發送的時候自動添加進去的,為了數據的準確傳輸。

以太網幀以一個7字節的前同步碼開始。該前同步碼的值都是規定為10101010;而后緊接著一個字節的幀開始符,其值是10101011。前同步碼字段的作用是實現物理層幀輸入輸出的同步,而幀開始符表示著以太網數據幀的開始,剩下的5個字段才是真正的以太網數據幀結構。

目標MAC地址(6字節) :這個字段包含目標網卡的MAC地址,當一個網卡收到一個以太網數據幀,如果該數據幀的目標地址是網卡自身的MAC地址或者是MAC廣播地址,它都將該幀的數據字段的內容傳遞給網絡層;如果它收到了具有任何其他MAC地址的幀,則將該數據幀丟棄。

源MAC地址(6字節) :自身的MAC地址。

類型字段(2字節) :類型字段允許以太網復用多種網絡層協議。我們只需要記住主機能夠使用除了IP協議以外的其他網絡層協議。事實上,一臺給定的主機可以支持多種網絡層協議,以對不同的應用采用不同的協議。因此,當以太網幀到達網卡中,網卡需要知道它應該將數據字段的內容傳遞給哪個網絡層協議。比如如有IP協議、ARP協議等。

注意了:當這個字段的值小于1518時,它表示后面數據字段的數據長度,當大于1518的時候才表示遞交給哪個協議。

數據字段(46~1500字節) :這個字段承載了IP數據報。以太網的最大傳輸單元(MTU)是1500字節。這意味著如果IP數據報超過了1500字節,則主機必須將該數據報分片(IPv4支持數據報分片,而IPv6不支持)。數據字段的最小長度是46字節,這意味著如果IP數據報小于46字節,數據報必須被填充到46字節。當采用填充時,傳遞到網絡層的數據包括IP數據報和填充部分,網絡層使用IP數據報首部中的長度字段來去除填充部分。

CRC(4字節) :CRC字段包含了以太網的差錯校驗信息。

補充 :所有的以太網都向網絡層提供不可靠的無連接服務,在接收到不對的以太網幀時,或者CRC校驗不通過時,主機將直接丟棄以太網幀,并不會告知發送的一方。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳輸協議
    +關注

    關注

    0

    文章

    78

    瀏覽量

    11451
  • 應用層
    +關注

    關注

    0

    文章

    46

    瀏覽量

    11507
  • 傳輸層
    +關注

    關注

    0

    文章

    29

    瀏覽量

    10902
收藏 人收藏

    評論

    相關推薦

    無線傳感器網絡底層平臺的深層研究

    目前,對WSN(Wireless Sensor Network)的研究主要集中在協議棧、定位算法、能耗管理以及體系結構設計上,而針對無線傳感網絡操作系統的研究卻相對較少,尤其是對其底層平臺的研究更少,所以針對無線傳感網絡操作系統
    發表于 09-09 15:23 ?2276次閱讀
    無線傳感器<b class='flag-5'>網絡</b><b class='flag-5'>底層</b>平臺的深層研究

    移植ubuntu core 16.04(ubuntu-base)到i.MX6ULL開發板

    ubuntu 本身支持 linux 的網絡底層設置命令:ifconfig,route,ip 等命令,但為了讓網絡設置更加簡單,Debian 提供了一個標準的高級網絡設置工具,包含 if
    的頭像 發表于 02-16 09:40 ?1818次閱讀

    AD16版本為什么底層不可以鋪銅

    AD16版本的,為什么鋪銅的時候,頂層可以鋪銅,GND網絡底層卻不可以?有時候遇到的是兩個層鋪銅都只有邊款,而沒有銅箔
    發表于 02-26 10:44

    無線傳感器網絡底層平臺由什么組成?

    無線傳感器網絡應用一般需要無線操作系統的支撐,才能有效地管理和調度資源,提高系統的效率。無線傳感器網絡底層平臺是連接上層軟件和底層硬件的橋梁,是無線操作系統研究的重要技術之一。合理的
    發表于 04-16 06:41

    基于近距離無線技術的家電集中控制方法

    家用電器的網絡化是家庭網絡化的基礎,也是智能家電技術發展的必然趨勢。文章以無線射頻收發芯片作為家電控制網絡底層實體傳輸媒介,構建了集中式家電近距離無線控制
    發表于 12-16 14:46 ?127次下載
    基于近距離無線技術的家電集中控制方法

    基于GPRS無線散狀控制網絡底層設計(下位機篇)

    發表于 07-30 13:48 ?2次下載

    能有效提高實時性和可靠性的嵌入式實時操作系統微機保護裝置設計

    VxWorks網絡協議是一個基于開放系統的互連(OSI)模型,而且系統為了向高層協議層提供一個統一的、規范的、方便協議移植的網絡接口,在高層IP層之下添加了一個MUX層,由MUX層負責與網絡
    發表于 07-27 08:56 ?726次閱讀
    能有效提高實時性和可靠性的嵌入式實時操作系統微機保護裝置設計

    華為路由WS5200評測 值不值得買

    相比手機、電腦、電視機,在家居設備中,可能路由器的「出鏡率」并不高,但作為網絡底層支撐者,它的重要性不言而喻。
    的頭像 發表于 11-14 10:43 ?6.7w次閱讀

    區塊鏈技術和加密貨幣的意義是什么

    當用戶決定長期持有網絡底層代幣時,而不是當某人將代幣用于任何類型的短期價值轉移時,加密貨幣網絡中的價值就會增加。
    發表于 10-09 09:39 ?1440次閱讀

    Chainlink的去中心化預言機網絡底層設計方案

    DeFi生態圈現在可以訪問最豐富的鏈上價格數據,在以太坊上開發具有開放性的金融產品!目前以太坊主網已經上線了超過25個去中心化的預言機網絡,用戶包括Synthetix等主流DeFi應用。
    發表于 02-03 12:31 ?1454次閱讀
    Chainlink的去中心化預言機<b class='flag-5'>網絡</b><b class='flag-5'>底層</b>設計方案

    分布式存儲加持區塊鏈 數據將追溯、監控、存儲、共享

    把區塊鏈作為底層技術,搭建此類平臺,專門存儲生態大數據,可以設置節點管理、存儲管理、用戶管理、許可管理、業務通道管理等。針對上層業務應用提供高可用和動態擴展的區塊鏈網絡底層服務的實現
    發表于 08-02 11:09 ?1498次閱讀

    XuperUnion百度超級聯盟網絡底層方案

    gitee-XuperUnion.zip
    發表于 04-22 10:48 ?0次下載
    XuperUnion百度超級聯盟<b class='flag-5'>網絡</b><b class='flag-5'>底層</b>方案

    CAN網絡底層的重要知識點介紹

    CAN總線早期主要應用于汽車、工業控制領域,隨著CAN總線技術的不斷成熟,已不再局限于汽車行業,現在已經普遍應用于航天、醫療、機器人等各行各業。
    的頭像 發表于 11-25 14:24 ?1305次閱讀

    【原創】網絡安全篇--網絡底層嗅探掃描基礎

    /article/6914486963169018371/?log_from=17c5b0061d7db_1675651773094 ? 注3:本文描述的“網絡”主要指基于IPV4的以太網,網絡底層特指:鏈路層
    的頭像 發表于 02-16 18:32 ?1908次閱讀
    【原創】<b class='flag-5'>網絡</b>安全篇--<b class='flag-5'>網絡</b><b class='flag-5'>底層</b>嗅探掃描基礎

    四種數據中心網絡虛擬化技術對比

    網絡虛擬化技術允許在共享的物理網絡基礎設施上創建多個虛擬網絡。它將邏輯網絡底層物理網絡解耦,為
    的頭像 發表于 08-23 14:30 ?1755次閱讀
    四種數據中心<b class='flag-5'>網絡</b>虛擬化技術對比
    主站蜘蛛池模板: 免费色片网站| 日韩孕交| 久久精品免费观看| 亚洲人在线| 真实偷清晰对白在线视频| 一级片视频播放| 色噜噜噜噜噜在线观看网站| 亚洲综合色在线| 性xxxfreexxxx性欧美| 天天干一干| 成 人 免费观看网站| 免费一级毛片无毒不卡| 五月天激激婷婷大综合丁香| 免费精品美女久久久久久久久久| 1024手机在线看永久免费| 婷婷色九月综合激情丁香| 777kkk亚洲综合欧美色老头| 2022年国产精品久久久久| 欧美另类高清| 五月激情啪啪| 亚洲韩国欧美一区二区三区 | 国模私拍在线观看| 99色吧| 欧美一级看片a免费观看| 天天操夜夜噜| 天天摸天天躁天天添天天爽| 九色在线观看视频| 中文字幕va一区二区三区| 91亚洲免费视频| 奇米影视亚洲春色77777| 欧美成人a| 久久精品国产精品亚洲精品| 欧美日本免费| 五月婷丁香| 久久国产香蕉一区精品| 午夜短视频| 欧美黑人xxxxxxxxxx| 一 级 黄 中国色 片| 欧美精品成人久久网站| 美国一级毛片片aa久久综合| 成年人一级毛片|