物理層主要提供各種連接的物理設(shè)備,如各種網(wǎng)卡,串口等;鏈路層主要指用于提供各種接口卡以訪問物理層的驅(qū)動程序,如網(wǎng)卡驅(qū)動程序;該角色負責將網(wǎng)絡(luò)數(shù)據(jù)包傳輸?shù)秸_的位置。最重要的網(wǎng)絡(luò)層協(xié)議當然是IP協(xié)議。
事實上,在網(wǎng)絡(luò)層還有其他協(xié)議,如ICMP,ARP,RARP等,但與IP不同。人們熟悉;傳輸層的作用主要是提供端到端,要說它是應(yīng)用程序之間提供通信,最著名的傳輸層協(xié)議是非TCP和UDP端協(xié)議;顧名思義,應(yīng)用層當然是“人機界面”。
應(yīng)用程序提供的層語義解釋傳輸?shù)臄?shù)據(jù),如HTTP,SMTP,F(xiàn)TP等。實際上,應(yīng)用層不是人們最終看到的層,頂層應(yīng)該是“解釋層”層,負責以各種形式向人們展示數(shù)據(jù)。
Linux的網(wǎng)絡(luò)架構(gòu)可以從上到下分為三層,即:用戶空間的應(yīng)用層。內(nèi)核空間的網(wǎng)絡(luò)協(xié)議棧層。
物理硬件層。其中最重要的核心當然是內(nèi)核空間的協(xié)議棧層。
Linux的整個網(wǎng)絡(luò)協(xié)議棧是使用Linux內(nèi)核構(gòu)建的。整個堆棧也嚴格按照分層的想法設(shè)計。
整個堆棧分為五層,它們是:系統(tǒng)調(diào)用接口層本質(zhì)上是用戶空間應(yīng)用程序的接口調(diào)用庫,使用網(wǎng)絡(luò)服務(wù)為用戶空間應(yīng)用程序提供接口。 2.與協(xié)議無關(guān)的接口層是SOCKET層。
該層的目的是屏蔽在系統(tǒng)調(diào)用層和系統(tǒng)調(diào)用層之間使用的底層不同協(xié)議(更準確地說,TCP和UDP,當然還有RAW IP,SCTP等)。界面可以簡單統(tǒng)一。
簡單地說,無論我們在應(yīng)用層使用什么協(xié)議,我們都必須通過系統(tǒng)調(diào)用接口建立一個SOCKET。這個SOCKET實際上是一個巨大的襪子結(jié)構(gòu),它與下一層的網(wǎng)絡(luò)協(xié)議層相關(guān)聯(lián),屏蔽了不同的網(wǎng)絡(luò)。
協(xié)議的差異,只有數(shù)據(jù)部分呈現(xiàn)給應(yīng)用層(通過系統(tǒng)調(diào)用接口呈現(xiàn))。 3.網(wǎng)絡(luò)協(xié)議實現(xiàn)層,毫無疑問,這是整個協(xié)議棧的核心。
該層主要實現(xiàn)各種網(wǎng)絡(luò)協(xié)議,其中最重要的是IP,ICMP,ARP,RARP,TCP,UDP等。該層包含了很多設(shè)計技術(shù)和算法,相當不錯。
4.驅(qū)動程序接口層獨立于特定設(shè)備。該層的目的主要是統(tǒng)一不同接口卡的驅(qū)動程序和網(wǎng)絡(luò)協(xié)議層之間的接口。
它將各種驅(qū)動程序的功能抽象為幾個特殊操作。如open,close,init等,這一層可以屏蔽底層不同的驅(qū)動程序。
5.驅(qū)動層,這層的目的很簡單,就是與硬件建立接口層。可以看出,Linux網(wǎng)絡(luò)協(xié)議棧是一種嚴格的分層結(jié)構(gòu),其中每層執(zhí)行相對獨立的功能,結(jié)構(gòu)非常清晰。
兩個人的設(shè)計“不在乎”。層很好,并且協(xié)議棧可以通過這兩個“不關(guān)心”而容易地擴展。
層。這種設(shè)計方法可以在我們自己的軟件設(shè)計中吸收。
事實上,在網(wǎng)絡(luò)層還有其他協(xié)議,如ICMP,ARP,RARP等,但與IP不同。人們熟悉;傳輸層的作用主要是提供端到端,要說它是應(yīng)用程序之間提供通信,最著名的傳輸層協(xié)議是非TCP和UDP端協(xié)議;顧名思義,應(yīng)用層當然是“人機界面”。
應(yīng)用程序提供的層語義解釋傳輸?shù)臄?shù)據(jù),如HTTP,SMTP,F(xiàn)TP等。實際上,應(yīng)用層不是人們最終看到的層,頂層應(yīng)該是“解釋層”層,負責以各種形式向人們展示數(shù)據(jù)。
Linux的網(wǎng)絡(luò)架構(gòu)可以從上到下分為三層,即:用戶空間的應(yīng)用層。內(nèi)核空間的網(wǎng)絡(luò)協(xié)議棧層。
物理硬件層。其中最重要的核心當然是內(nèi)核空間的協(xié)議棧層。
Linux的整個網(wǎng)絡(luò)協(xié)議棧是使用Linux內(nèi)核構(gòu)建的。整個堆棧也嚴格按照分層的想法設(shè)計。
整個堆棧分為五層,它們是:系統(tǒng)調(diào)用接口層本質(zhì)上是用戶空間應(yīng)用程序的接口調(diào)用庫,使用網(wǎng)絡(luò)服務(wù)為用戶空間應(yīng)用程序提供接口。 2.與協(xié)議無關(guān)的接口層是SOCKET層。
該層的目的是屏蔽在系統(tǒng)調(diào)用層和系統(tǒng)調(diào)用層之間使用的底層不同協(xié)議(更準確地說,TCP和UDP,當然還有RAW IP,SCTP等)。界面可以簡單統(tǒng)一。
簡單地說,無論我們在應(yīng)用層使用什么協(xié)議,我們都必須通過系統(tǒng)調(diào)用接口建立一個SOCKET。這個SOCKET實際上是一個巨大的襪子結(jié)構(gòu),它與下一層的網(wǎng)絡(luò)協(xié)議層相關(guān)聯(lián),屏蔽了不同的網(wǎng)絡(luò)。
協(xié)議的差異,只有數(shù)據(jù)部分呈現(xiàn)給應(yīng)用層(通過系統(tǒng)調(diào)用接口呈現(xiàn))。 3.網(wǎng)絡(luò)協(xié)議實現(xiàn)層,毫無疑問,這是整個協(xié)議棧的核心。
該層主要實現(xiàn)各種網(wǎng)絡(luò)協(xié)議,其中最重要的是IP,ICMP,ARP,RARP,TCP,UDP等。該層包含了很多設(shè)計技術(shù)和算法,相當不錯。
4.驅(qū)動程序接口層獨立于特定設(shè)備。該層的目的主要是統(tǒng)一不同接口卡的驅(qū)動程序和網(wǎng)絡(luò)協(xié)議層之間的接口。
它將各種驅(qū)動程序的功能抽象為幾個特殊操作。如open,close,init等,這一層可以屏蔽底層不同的驅(qū)動程序。
5.驅(qū)動層,這層的目的很簡單,就是與硬件建立接口層。可以看出,Linux網(wǎng)絡(luò)協(xié)議棧是一種嚴格的分層結(jié)構(gòu),其中每層執(zhí)行相對獨立的功能,結(jié)構(gòu)非常清晰。
兩個人的設(shè)計“不在乎”。層很好,并且協(xié)議棧可以通過這兩個“不關(guān)心”而容易地擴展。
層。這種設(shè)計方法可以在我們自己的軟件設(shè)計中吸收。