網(wǎng)絡(luò)棧總體架構(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ī)則對(duì)用戶數(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)用層、表示層、會(huì)話層。
以O(shè)SI七層模式為依據(jù),學(xué)習(xí)Linux1.2內(nèi)核網(wǎng)絡(luò)棧實(shí)現(xiàn)中的文件對(duì)應(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ù)。
表示層、會(huì)話層:
相應(yīng)的功能實(shí)現(xiàn)對(duì)于BSD Socket或INET Socket層。
傳輸層:
如常見的TCP、UDP協(xié)議,對(duì)于傳輸層的實(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ū)動(dòng)的一個(gè)接口層存在的。
該層涉及的文件主要有:dev.c p8022.c panap.c p8023.c eth.c arp.c
“驅(qū)動(dòng)層”:
OSI七層模式?jīng)]有這一層,將驅(qū)動(dòng)層序所在層次定義為“驅(qū)動(dòng)層”,該層與鏈路層進(jìn)行交互,完成數(shù)據(jù)包的收發(fā)公工作。
該層涉及的文件定義在dricers子目錄下的一些網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)程序。
物理層:
網(wǎng)絡(luò)棧實(shí)現(xiàn)不涉及物理層
Linux網(wǎng)絡(luò)棧層次命名
網(wǎng)絡(luò)棧分層如下:BSD socket層、INET層、傳輸層(L4)、網(wǎng)絡(luò)層(L3)、鏈路層(L2)
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210400 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7600瀏覽量
89251
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
結(jié)合pppoe協(xié)議分析Linux網(wǎng)絡(luò)棧的實(shí)現(xiàn)方式
![結(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)方式](https://file.elecfans.com/web1/M00/CC/39/pIYBAF-WdyOAdKAWAAAdmtj6w7c565.png)
深度解析Linux網(wǎng)絡(luò)路徑及sk_buff struct 數(shù)據(jù)結(jié)構(gòu)
![深度解析<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>路徑及sk_buff struct 數(shù)據(jù)結(jié)構(gòu)](https://file.elecfans.com/web1/M00/CB/E1/pIYBAF-RLQ2Aa1OcAAN6CtpJiSg788.png)
Linux網(wǎng)絡(luò)棧原理與實(shí)現(xiàn)
linux的網(wǎng)絡(luò)驅(qū)動(dòng)
LINUX網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)分析-SKBUFF的實(shí)現(xiàn)
嵌入式LINUX內(nèi)核網(wǎng)絡(luò)棧(源代碼)
![嵌入式<b class='flag-5'>LINUX</b>內(nèi)核<b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>棧</b>(源代碼)](https://file.elecfans.com/web2/M00/48/EC/pYYBAGKhtC6Ablf9AAAK_31NXHw586.jpg)
Linux平臺(tái)雙協(xié)議棧主機(jī)網(wǎng)絡(luò)管控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
Linux網(wǎng)絡(luò)技術(shù)中最核心的部分--TCP/IP協(xié)議棧
棧是什么?棧有什么作用?
【RT-Thread學(xué)習(xí)筆記】基于Linux的反匯編和棧追溯
![【RT-Thread學(xué)習(xí)筆記】基于<b class='flag-5'>Linux</b>的反匯編和<b class='flag-5'>棧</b>追溯](https://file.elecfans.com//web2/M00/59/20/pYYBAGLkxLKAEvmDAAC_auDV2KQ493.jpg)
linux網(wǎng)絡(luò)棧監(jiān)控及調(diào)優(yōu):數(shù)據(jù)接收
linux中的進(jìn)程棧,線程棧,內(nèi)核棧的區(qū)別
![<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ū)別](https://file1.elecfans.com/web2/M00/91/3F/wKgaomTe3p6AdMDBAAAM96hfTO0015.jpg)
Linux網(wǎng)絡(luò)技術(shù)棧的相關(guān)知識(shí)
![<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>技術(shù)<b class='flag-5'>棧</b>的相關(guān)知識(shí)](https://file1.elecfans.com/web2/M00/95/22/wKgZomTmwfKAMWT2AAAzpRD3428798.png)
Linux網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)
![<b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>協(xié)議<b class='flag-5'>棧</b>的實(shí)現(xiàn)](https://file1.elecfans.com/web2/M00/06/C6/wKgaombfpT-AeVQcAACjr17dpiQ190.png)
評(píng)論