網(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ī)則對(duì)用戶(hù)數(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)滿(mǎn)足不了新的需求,OSI七層網(wǎng)絡(luò)棧出現(xiàn),在原先的應(yīng)用層進(jìn)行了更細(xì)致的劃分,將應(yīng)用層劃為:應(yīng)用層、表示層、會(huì)話(huà)層。
以O(shè)SI七層模式為依據(jù),學(xué)習(xí)Linux1.2內(nèi)核網(wǎng)絡(luò)棧實(shí)現(xiàn)中的文件對(duì)應(yīng)關(guān)系:
應(yīng)用層:
該層定義了一套用戶(hù)調(diào)用接口函數(shù),即socket套接字接口函數(shù),如socket、bind、accept等,這套接口函數(shù)由Linux操作系統(tǒng)的glicbc庫(kù)提供,網(wǎng)絡(luò)棧實(shí)現(xiàn)不涉及這套函數(shù)。
表示層、會(huì)話(huà)層:
相應(yīng)的功能實(shí)現(xiàn)對(duì)于BSD Socket或INET Socket層。
傳輸層:
如常見(jiàn)的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套接字也劃分在這一層,用戶(hù)必須自己創(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文章
11329瀏覽量
209977 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7588瀏覽量
89021
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論