0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux網(wǎng)絡(luò)棧總體架構(gòu)

麥辣雞腿堡 ? 來源:技術(shù)簡說 ? 作者:技術(shù)簡說 ? 2023-07-24 10:59 ? 次閱讀

網(wǎng)絡(luò)??傮w架構(gòu)

總體結(jié)構(gòu)

網(wǎng)絡(luò)棧指的是為了進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的收發(fā),由內(nèi)核實(shí)現(xiàn)的一套函數(shù)集合。網(wǎng)絡(luò)棧安裝預(yù)先設(shè)置的一套規(guī)則對用戶數(shù)據(jù)進(jìn)行封裝從而達(dá)到網(wǎng)絡(luò)上主機(jī)之間數(shù)據(jù)交換的目的。

最初按照這種分層設(shè)計(jì)的思想,網(wǎng)絡(luò)棧被分為了4層,從上到下依次為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層,而且在每個(gè)層次都定義了數(shù)據(jù)的封裝方式,隨著網(wǎng)絡(luò)協(xié)議的發(fā)展,四層分層架構(gòu)滿足不了新的需求,OSI七層網(wǎng)絡(luò)棧出現(xiàn),在原先的應(yīng)用層進(jìn)行了更細(xì)致的劃分,將應(yīng)用層劃為:應(yīng)用層、表示層、會話層。

以O(shè)SI七層模式為依據(jù),學(xué)習(xí)Linux1.2內(nèi)核網(wǎng)絡(luò)棧實(shí)現(xiàn)中的文件對應(yīng)關(guān)系:

圖片

應(yīng)用層:

該層定義了一套用戶調(diào)用接口函數(shù),即socket套接字接口函數(shù),如socket、bind、accept等,這套接口函數(shù)由Linux操作系統(tǒng)的glicbc庫提供,網(wǎng)絡(luò)棧實(shí)現(xiàn)不涉及這套函數(shù)。

表示層、會話層:

相應(yīng)的功能實(shí)現(xiàn)對于BSD Socket或INET Socket層。

傳輸層:

如常見的TCP、UDP協(xié)議,對于傳輸層的實(shí)現(xiàn)集中在TCP協(xié)議和UDP協(xié)議上

該層涉及的文件主要有:tcp.c udp.c igmp.c snmp.h

網(wǎng)絡(luò)層:

數(shù)據(jù)包路由功能實(shí)現(xiàn)在網(wǎng)絡(luò)層,這一層也是IP協(xié)議所在的層次,RAW套接字也劃分在這一層,用戶必須自己創(chuàng)建IP首部和傳輸層協(xié)議首部。

該層涉及的文件主要有:ip.c route.c ip_fw.c raw.c packet.c

鏈路層:

鏈路層實(shí)現(xiàn)是作為網(wǎng)絡(luò)棧與底層硬件驅(qū)動的一個(gè)接口層存在的。

該層涉及的文件主要有:dev.c p8022.c panap.c p8023.c eth.c arp.c

“驅(qū)動層”:

OSI七層模式?jīng)]有這一層,將驅(qū)動層序所在層次定義為“驅(qū)動層”,該層與鏈路層進(jìn)行交互,完成數(shù)據(jù)包的收發(fā)公工作。

該層涉及的文件定義在dricers子目錄下的一些網(wǎng)絡(luò)設(shè)備的驅(qū)動程序。

物理層:

網(wǎng)絡(luò)棧實(shí)現(xiàn)不涉及物理層

Linux網(wǎng)絡(luò)棧層次命名

網(wǎng)絡(luò)棧分層如下:BSD socket層、INET層、傳輸層(L4)、網(wǎng)絡(luò)層(L3)、鏈路層(L2)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11171

    瀏覽量

    208480
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7443

    瀏覽量

    88448
收藏 人收藏

    評論

    相關(guān)推薦

    結(jié)合pppoe協(xié)議分析Linux網(wǎng)絡(luò)的實(shí)現(xiàn)方式

    這個(gè)標(biāo)題起得比較糾結(jié),之前熟知的PPPOE是作為PPP協(xié)議的底層載體,而實(shí)際上它也是一個(gè)完整的協(xié)議,不過它的實(shí)現(xiàn)比較簡單,由它出發(fā),可以很容易理清楚Linux網(wǎng)絡(luò)的實(shí)現(xiàn)方式。 1.總述 Li
    的頭像 發(fā)表于 10-26 15:21 ?2581次閱讀
    結(jié)合pppoe協(xié)議分析<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>棧</b>的實(shí)現(xiàn)方式

    深度解析Linux網(wǎng)絡(luò)路徑及sk_buff struct 數(shù)據(jù)結(jié)構(gòu)

    理解 Linux 網(wǎng)絡(luò)(1):Linux 網(wǎng)絡(luò)協(xié)議簡單總結(jié) 本系列文章總結(jié)
    的頭像 發(fā)表于 10-22 15:04 ?5513次閱讀
    深度解析<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>路徑及sk_buff struct 數(shù)據(jù)結(jié)構(gòu)

    Linux網(wǎng)絡(luò)原理與實(shí)現(xiàn)

    本文嘗試從技術(shù)研發(fā)與工程實(shí)踐(而非純理論學(xué)習(xí))角度,在原理與實(shí)現(xiàn)、監(jiān)控告警、 配置調(diào)優(yōu)三方面介紹內(nèi)核5.10 網(wǎng)絡(luò)。由于內(nèi)容非常多,因此分為了幾篇系列文章。
    發(fā)表于 08-10 08:58 ?3666次閱讀

    linux網(wǎng)絡(luò)驅(qū)動

    目前正在學(xué)習(xí)linux下飛思卡爾imx6q_sabre的ARM A9開發(fā)板的網(wǎng)絡(luò)驅(qū)動,學(xué)的云里霧里的,哪位高手幫忙指點(diǎn)一下,最好從代碼的角度來說。上層用戶發(fā)送數(shù)據(jù)通建立socket、經(jīng)過協(xié)議、經(jīng)過網(wǎng)卡發(fā)送到
    發(fā)表于 08-22 15:23

    UE側(cè)協(xié)議架構(gòu)

    UE側(cè)協(xié)議架構(gòu)
    發(fā)表于 09-18 15:25 ?1323次閱讀

    LINUX網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)分析-SKBUFF的實(shí)現(xiàn)

    了解網(wǎng)絡(luò)協(xié)議的人都知道,網(wǎng)絡(luò)協(xié)議是一個(gè)有層次的軟件結(jié)構(gòu),層與層之間通過預(yù)定的接口傳遞網(wǎng)絡(luò)報(bào)文。網(wǎng)絡(luò)
    發(fā)表于 04-07 22:32 ?26次下載

    嵌入式LINUX內(nèi)核網(wǎng)絡(luò)(源代碼)

    本文選擇 LINUX-1.2.13 內(nèi)核所包含的網(wǎng)絡(luò)部分代碼分析(注意網(wǎng)絡(luò)部分代碼與內(nèi)核代碼的演變是分離的,如LINUX1.2.8 網(wǎng)絡(luò)代碼
    發(fā)表于 05-12 10:39 ?57次下載
    嵌入式<b class='flag-5'>LINUX</b>內(nèi)核<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>棧</b>(源代碼)

    Linux平臺雙協(xié)議主機(jī)網(wǎng)絡(luò)管控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    Linux平臺雙協(xié)議主機(jī)網(wǎng)絡(luò)管控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_賈銳
    發(fā)表于 01-07 19:00 ?2次下載

    Linux網(wǎng)絡(luò)技術(shù)中最核心的部分--TCP/IP協(xié)議

    今天給大家介紹Linux網(wǎng)絡(luò)技術(shù)中最核心的部分--TCP/IP協(xié)議 。 我們先看一下抽象的網(wǎng)絡(luò)協(xié)議模型 再按分層思想看
    的頭像 發(fā)表于 06-29 15:14 ?2293次閱讀

    是什么?有什么作用?

    大多數(shù)的處理器架構(gòu),都有實(shí)現(xiàn)硬件。有專門的指針寄存器,以及特定的硬件指令來完成 入/出 的操作。例如在 ARM
    的頭像 發(fā)表于 06-17 11:19 ?1.2w次閱讀

    【RT-Thread學(xué)習(xí)筆記】基于Linux的反匯編和追溯

    【經(jīng)驗(yàn)分享】基于Linux命令行編程環(huán)境的追溯和反匯編技術(shù)實(shí)踐分享
    的頭像 發(fā)表于 07-30 13:44 ?1314次閱讀
    【RT-Thread學(xué)習(xí)筆記】基于<b class='flag-5'>Linux</b>的反匯編和<b class='flag-5'>棧</b>追溯

    linux網(wǎng)絡(luò)監(jiān)控及調(diào)優(yōu):數(shù)據(jù)接收

    linux 網(wǎng)絡(luò)的監(jiān)控及調(diào)優(yōu)上沒有捷徑可言,如果你想做有效的調(diào)優(yōu),就必須搞清楚各個(gè)系統(tǒng)之間是怎么交互的。
    的頭像 發(fā)表于 03-25 16:44 ?1180次閱讀

    linux中的進(jìn)程,線程,內(nèi)核的區(qū)別

    大多數(shù)的處理器架構(gòu),都有實(shí)現(xiàn)硬件。有專門的指針寄存器,以及特定的硬件指令來完成 入/出 的操作。例如在 ARM
    發(fā)表于 08-18 10:57 ?425次閱讀
    <b class='flag-5'>linux</b>中的進(jìn)程<b class='flag-5'>棧</b>,線程<b class='flag-5'>棧</b>,內(nèi)核<b class='flag-5'>棧</b>的區(qū)別

    Linux網(wǎng)絡(luò)技術(shù)的相關(guān)知識

    網(wǎng)絡(luò)是一個(gè)很復(fù)雜的協(xié)議,今天網(wǎng)絡(luò)這么發(fā)達(dá),網(wǎng)絡(luò)協(xié)議起到關(guān)鍵性作用。 這里就給大家詳細(xì)描述一下:Linux
    的頭像 發(fā)表于 08-24 10:33 ?614次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>技術(shù)<b class='flag-5'>棧</b>的相關(guān)知識

    Linux網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn)

    請求并與底層的網(wǎng)絡(luò)硬件進(jìn)行交互。本文將深入探討 Linux 網(wǎng)絡(luò)協(xié)議架構(gòu)與實(shí)現(xiàn),涵蓋數(shù)據(jù)包處理流程、關(guān)鍵模塊、協(xié)議
    的頭像 發(fā)表于 09-10 09:51 ?194次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>協(xié)議<b class='flag-5'>棧</b>的實(shí)現(xiàn)