??
目錄
??
一、網(wǎng)絡(luò)相關(guān)知識簡介
二、網(wǎng)絡(luò)協(xié)議的分層模型
2.1 OSI七層模型
2.2 TCP/IP五層模型
2.3 協(xié)議層報文間的封裝與拆封?
三、IP協(xié)議
3.1 MAC地址?
3.2 IP地址
3.3 MAC地址與IP地址區(qū)別
一、網(wǎng)絡(luò)相關(guān)知識簡介
互聯(lián)網(wǎng)通信的本質(zhì)是數(shù)字通信,任何數(shù)字通信都離不開通信協(xié)議的制定,通信設(shè)備只有按照約定的、統(tǒng)一的方式去封裝和解析信息,才能實現(xiàn)通信?;ヂ?lián)網(wǎng)通信所要遵守的眾多協(xié)議,被統(tǒng)稱為TCP/IP。
TCP/IP是一個協(xié)議族,包含眾多的協(xié)議。但對于網(wǎng)絡(luò)應(yīng)用開發(fā)人員,可能聽到更多的是其中的應(yīng)用層協(xié)議,比如HTTP、FTP、MQTT等。
HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,HTTP的應(yīng)用最為廣泛。比如大家日常使用電腦時的一個常規(guī)操作:打開電腦,打開瀏覽器,輸入網(wǎng)址,最后按下回車,這一刻你就開啟了HTTP通信。HTTP協(xié)議工作于架構(gòu)之上,瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請求。Web服務(wù)器根據(jù)接收到的請求后,向客戶端發(fā)送響應(yīng)信息。借助這種瀏覽器和服務(wù)器之間的HTTP通信,我們能夠足不出戶地獲得來自世界各個角落的信息。另外,網(wǎng)頁不僅僅是大型服務(wù)器的專利,在物聯(lián)網(wǎng)風(fēng)潮盛行的今天,許多隨處可見的小型設(shè)備(空調(diào)、冰箱、插座、路由器等),都內(nèi)嵌網(wǎng)頁,在物理鏈路暢通的情況下,用戶可以用手機、平板電腦上的瀏覽器隨時隨地監(jiān)控這些設(shè)備。
FTP(File Transfer Protocol)是文件傳輸協(xié)議的簡稱。FTP是工作在應(yīng)用層的網(wǎng)絡(luò)協(xié)議。FTP使得主機間可以共享文件,用于在兩臺設(shè)備之間傳輸文件(雙向傳輸)。它也是一個客戶端-服務(wù)端框架系統(tǒng)。用戶可以通過一個支持FTP協(xié)議的客戶端程序,連接到在遠程主機上的FTP服務(wù)端程序,通過客戶端程序向服務(wù)端程序發(fā)出命令,服務(wù)端程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機。FTP除了基本的文件上傳/下載功能外,還有目錄操作、權(quán)限設(shè)置、身份驗證機制,許多網(wǎng)盤的文件傳輸功能都是基于FTP實現(xiàn)的。
MQTT(消息隊列遙測傳輸)是IBM公司于1990年設(shè)計并推出的一款通信協(xié)議,于2014年正式成為了一個OASIS開放標準。近年來,MQTT的應(yīng)用呈現(xiàn)出爆炸性的增長勢頭,大有一統(tǒng)物聯(lián)網(wǎng)的趨勢。另外,MQTT在物聯(lián)網(wǎng)以外的其他領(lǐng)域也得到了廣泛的應(yīng)用,比如許多公司在制作手機APP時,會使用MQTT來實現(xiàn)消息推送、即時聊天等功能。
二、網(wǎng)絡(luò)協(xié)議的分層模型
2.1 OSI七層模型
OSI(Open System Interconnection,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型稱為開放式系統(tǒng)互聯(lián)參考模型,是一個邏輯上的定義和規(guī)范。OSI把網(wǎng)絡(luò)從邏輯上分為了7層,每一層都有相關(guān)、相對應(yīng)的物理設(shè)備,七層模型是一種框架性的設(shè)計方法,其最主要的功能使就是幫助不同類型的主機實現(xiàn)數(shù)據(jù)傳輸,它的最大優(yōu)點是將服務(wù)、接口和協(xié)議這三個概念明確地區(qū)分開來,概念清楚,理論也比較完整,通過七個層次化的結(jié)構(gòu)模型使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實現(xiàn)可靠的通訊。
分層名稱 | 功能 | 每層功能概覽 | |
---|---|---|---|
7 | 應(yīng)用層 | 針對特定應(yīng)用的協(xié)議 | ![]() |
6 | 表示層 | 設(shè)備固有數(shù)據(jù)格式和網(wǎng)絡(luò)標準數(shù)據(jù)格式的轉(zhuǎn)換 | ![]() |
5 | 會話層 | 通信管理,負責(zé)建立和斷開通信連接(數(shù)據(jù)流動的邏輯通路),管理傳輸層以下的分層。 | ![]() |
4 | 傳輸層 | 管理兩個節(jié)點之間的數(shù)據(jù)傳輸,負責(zé)可靠傳輸(確保數(shù)據(jù)被可靠地傳送到目標地址) | ![]() |
3 | 網(wǎng)絡(luò)層 | 地址管理與路由選擇 | ![]() |
2 | 數(shù)據(jù)鏈路層 | 互聯(lián)設(shè)備之間換送和識別數(shù)據(jù)幀 | ![]() |
1 | 物理層 | 以 "0"、"1" 代表電壓的高低、燈光的閃滅,界定連接器和網(wǎng)線的規(guī)格 | ![]() |
2.2 TCP/IP五層模型
TCP/IP通訊協(xié)議采用了五層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。
- 物理層:?負責(zé)光/電信號的傳遞方式. 比如現(xiàn)在以太網(wǎng)通用的網(wǎng)線(雙絞 線)、早期以太網(wǎng)采用的的同軸電纜(現(xiàn)在主要用于有線電視)、光纖, 現(xiàn)在的wifi無線網(wǎng)使用電磁波等都屬于物理層的概念。物理層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等,集線器(Hub)工作在物理層。
- 數(shù)據(jù)鏈路層:?負責(zé)設(shè)備之間的數(shù)據(jù)幀的傳送和識別,例如網(wǎng)卡設(shè)備的驅(qū)動、幀同步(就是說從網(wǎng)線上檢測到什么信號算作新幀的開始)、沖突檢測(如果檢測到?jīng)_突就自動重發(fā))、數(shù)據(jù)差錯校驗等工作,有以太網(wǎng)、令牌環(huán)網(wǎng), 無線LAN等標準. 交換機(Switch)工作在數(shù)據(jù)鏈路層。
- 網(wǎng)絡(luò)層:負責(zé)地址管理和路由選擇,例如在IP協(xié)議中, 通過IP地址來標識一臺主機,并通過路由表的方式規(guī)劃出兩臺主機之間的數(shù)據(jù)傳輸?shù)木€路(路由),路由器(Router)工作在網(wǎng)路層。
- 傳輸層:負責(zé)兩臺主機之間的數(shù)據(jù)傳輸,如傳輸控制協(xié)議 (TCP),能夠確保數(shù)據(jù)可靠的從源主機發(fā)送到目標主機。
- 應(yīng)用層:負責(zé)應(yīng)用程序間溝通,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠程訪問協(xié)議(Telnet)等,網(wǎng)絡(luò)編程主要就是針對應(yīng)用層。
2.3 協(xié)議層報文間的封裝與拆封?
網(wǎng)絡(luò)模型中每一層都有自己的協(xié)議定制方案(物理層除外),每個協(xié)議定制方案都有自己的協(xié)議首部(報頭),當用戶發(fā)送數(shù)據(jù)時,將數(shù)據(jù)向下交給傳輸層,這是處于應(yīng)用層的操作,對用戶的數(shù)據(jù)進行封裝添加相應(yīng)的協(xié)議首部(報頭),比如MQTT、HTTP等協(xié)議,最后應(yīng)用層通過調(diào)用傳輸層的接口來將數(shù)據(jù)遞交到傳輸層中。傳輸層會在數(shù)據(jù)前面加上傳輸層首部(此處以TCP協(xié)議為例,圖中的傳輸層首部為TCP首部,也可以是UDP首部),然后向下交給網(wǎng)絡(luò)層。同樣地,網(wǎng)絡(luò)層會在數(shù)據(jù)前面加上網(wǎng)絡(luò)層首部(IP首部),然后將數(shù)據(jù)向下交給鏈路層,鏈路層會對數(shù)據(jù)進行最后一次封裝,即在數(shù)據(jù)前面加上鏈路層首部(此處使用以太網(wǎng)接口為例),然后將數(shù)據(jù)交給網(wǎng)卡。最后,網(wǎng)卡將數(shù)據(jù)轉(zhuǎn)換成物理鏈路上的電平信號,數(shù)據(jù)就這樣被發(fā)送到了網(wǎng)絡(luò)中。數(shù)據(jù)的發(fā)送過程,可以概括為TCP/IP的各層協(xié)議對數(shù)據(jù)進行封裝的過程,如圖所示:
當設(shè)備的網(wǎng)卡接收到某個數(shù)據(jù)包后,它會將其放置在網(wǎng)卡的接收緩存中,并告知TCP/IP內(nèi)核。然后TCP/IP內(nèi)核就開始工作了,它會將數(shù)據(jù)包從接收緩存中取出,并逐層解析數(shù)據(jù)包中的協(xié)議首部信息,并最終將數(shù)據(jù)交給某個應(yīng)用程序。數(shù)據(jù)的接收過程與發(fā)送過程正好相反,可以概括為TCP/IP的各層協(xié)議對數(shù)據(jù)進行解析的過程。?
三、IP協(xié)議
IP協(xié)議(Internet Protocol),又稱之為網(wǎng)際協(xié)議,IP協(xié)議處于網(wǎng)絡(luò)層工作,它是整個TCP/IP協(xié)議棧的核心協(xié)議,上層協(xié)議都要依賴IP協(xié)議提供的服務(wù),IP協(xié)議負責(zé)將數(shù)據(jù)報從源主機發(fā)送到目標主機,通過IP地址作為唯一識別碼,簡單來說,不同主機之間的IP地址是不一樣的,在發(fā)送數(shù)據(jù)報的過程中,IP協(xié)議還可能對數(shù)據(jù)報進行分片處理,同時在接收數(shù)據(jù)報的時候還可能需要對分片的數(shù)據(jù)報進行重裝等等。底層網(wǎng)絡(luò)的差異化(以太網(wǎng)、令牌環(huán)網(wǎng)等),可以通過IP協(xié)議進行統(tǒng)一化,IP協(xié)議以上的網(wǎng)絡(luò)層都可以看作為相同協(xié)議。
3.1 MAC地址?
MAC(Media Access Control)地址,意譯為媒體訪問控制,或稱為物理地址,MAC地址是計算機的唯一位硬件編號,在網(wǎng)卡出廠時就已經(jīng)確定,不能修改,其長度為48位,6個字節(jié),一般用16進制數(shù)字加上冒號的形式來表示(例如: 08:00:27:03:fb:19),MAC地址用來識別數(shù)據(jù)鏈路層中相連的節(jié)點。
3.2 IP地址
在TCP/IP設(shè)計之初,為了標識互聯(lián)網(wǎng)中的每臺主機的身份,設(shè)計人員為每個接入網(wǎng)絡(luò)中的主機都分配一個IP地址(Internet Protocol Address),是一個32位的整數(shù)地址,只有合法的IP地址才能接入互聯(lián)網(wǎng)中并且與其他主機進行通信,IP地址是軟件地址,不是硬件地址,硬件MAC地址是存儲在網(wǎng)卡中的,應(yīng)用于本地網(wǎng)絡(luò)中尋找目標主機。而IP地址能讓一個網(wǎng)絡(luò)中的主機能夠與另一個網(wǎng)絡(luò)中的主機進行通信,無需理會這些主機之間的MAC地址。
每個IP地址長度為32比特(4字節(jié)),因此總共有2^32個可能的IP地址,大約有40億個IP地址能被使用的。這些地址一般按所謂點分十進制記法(dotted-decimal notation)書寫,即地址中的每個字節(jié)用它的十進制形式書寫,各字節(jié)間以點分隔開。例如, IP地址為192.168.0.122,192是該地址第一個8比特的十進制等價數(shù),168是該地址第二個8比特的十進制等價數(shù),依此類推。文章來源:http://www.zghlxwxcb.cn/news/detail-821149.html
3.3 MAC地址與IP地址區(qū)別
- 對于網(wǎng)絡(luò)上的某一設(shè)備,如一臺計算機或一臺路由器,其IP地址是基于網(wǎng)絡(luò)拓撲設(shè)計出的,同一臺設(shè)備或計算機上,改動IP地址是很容易的(但必須唯一),而MAC則是生產(chǎn)廠商燒錄好的,一般不能改動。
- 長度不同。IP地址為32位,MAC地址為48位。
- 分配依據(jù)不同。IP地址的分配是基于網(wǎng)絡(luò)拓撲,MAC地址的分配是基于制造商。
- 尋址協(xié)議層不同。IP地址應(yīng)用于OSI第三層,即網(wǎng)絡(luò)層,而MAC地址應(yīng)用在OSI第二層,即數(shù)據(jù)鏈路層。 數(shù)據(jù)鏈路層協(xié)議可以使數(shù)據(jù)從一個節(jié)點傳遞到相同鏈路的另一個節(jié)點上(通過MAC地址),而網(wǎng)絡(luò)層協(xié)議使數(shù)據(jù)可以從一個網(wǎng)絡(luò)傳遞到另一個網(wǎng)絡(luò)上(ARP根據(jù)目的IP地址,找到中間節(jié)點的MAC地址,通過中間節(jié)點傳送,從而最終到達目的網(wǎng)絡(luò))。如下圖所示,唐僧要去西天取經(jīng)(東土大唐,西天)為源IP地址和目的IP地址,中間經(jīng)過(東土大唐,寶象國)、(寶象國,烏雞國)、(烏雞國、西天)分別為源MAC地址和目的MAC地址,MAC源和目的地址根據(jù)路由過程而變化,IP源和目的地址在路由過程中始終不變。
文章來源地址http://www.zghlxwxcb.cn/news/detail-821149.html
到了這里,關(guān)于Linux網(wǎng)絡(luò)編程(一-網(wǎng)絡(luò)相關(guān)知識點)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!