一、計算機(jī)網(wǎng)絡(luò)背景
網(wǎng)絡(luò)的發(fā)展分為一下幾個階段:
獨立模式: 計算機(jī)之間相互獨立:
此時計算機(jī)之間是相互獨立的,每個人在執(zhí)行任務(wù)的時候是獨立的,需要等待前一個將任務(wù)完成之后,自己才能進(jìn)行執(zhí)行任務(wù),是串行執(zhí)行的,效率很低。
網(wǎng)絡(luò)互聯(lián): 多臺計算機(jī)連接在一起, 完成數(shù)據(jù)共享:
此時數(shù)據(jù)完成了共享,每個人都使用獨立的計算機(jī),業(yè)務(wù)之間可以隨時自由切換,共享數(shù)據(jù)由服務(wù)器集中處理
局域網(wǎng)LAN: 計算機(jī)數(shù)量更多了, 通過交換機(jī)和路由器連接在一起
廣域網(wǎng)WAN: 將遠(yuǎn)隔千里的計算機(jī)都連在一起
注意:所謂 “局域網(wǎng)” 和 “廣域網(wǎng)” 只是一個相對的概念. 比如, 我們有 “天朝特色” 的廣域網(wǎng), 也可以看做一個比較大的局域網(wǎng)。
一臺計算機(jī)內(nèi)部本質(zhì)也是一個小型的網(wǎng)絡(luò)結(jié)構(gòu)。
比如我們將一臺計算機(jī)的磁盤拉到很遠(yuǎn)的地方,此時依然可以進(jìn)行存儲,此時為云存儲,同理,其他的硬件結(jié)構(gòu)也可以這樣,所以計算機(jī) 體系結(jié)構(gòu)中有網(wǎng)絡(luò),網(wǎng)絡(luò)中有體系結(jié)構(gòu)
二、協(xié)議
1.協(xié)議是什么
我們舉一個例子進(jìn)行說明,以前的時候,只有臺式的座機(jī),然而那個時候話費(fèi)也特別的貴,你要上學(xué)去讀書,你到了學(xué)校需要向自己的父母進(jìn)行報備,沒有了零花錢需要找父母要,這時,你和你的爸爸進(jìn)行約定,你打電話過來一聲之后就掛斷了就說明安全到學(xué)校了,打電話過來兩聲之后才掛斷電話說明沒有了零花錢,打電話過來三聲都還沒有掛斷,則說明有其他重要的事情,這樣就可以省很多的電話費(fèi),同時也能夠達(dá)到通信的目的。
上面的例子中,電話響一聲,表明安全到學(xué)校了,電話響兩聲,表明沒有了零花錢,電話響三聲,說明有其他重要的事情。
3種都代表不同的含義,而這個含義不用解釋,雙方早已有了共識。所以協(xié)議就是約定
計算機(jī)之間的傳輸媒介是光信號和電信號. 通過 “頻率” 和 “強(qiáng)弱” 來表示 0 和 1 這樣的信息. 要想傳遞各種不同的信
息, 就需要約定好雙方的數(shù)據(jù)格式.
只要通信的兩臺主機(jī), 約定好協(xié)議就可以了么?
當(dāng)然不是,我們舉一個例子來進(jìn)行說明,比如我們門衛(wèi)的口令是天王蓋地虎,寶塔鎮(zhèn)河妖,但是我們這里的人來自全國各地,回答的時候可能就是自己的方言,那么門衛(wèi)就不知道回答的對不對。所以我們需要要求在回答口令的時候,全部都使用普通話,這樣才可以。
所以,計算機(jī)生產(chǎn)廠商有很多; 計算機(jī)操作系統(tǒng), 也有很多; 計算機(jī)網(wǎng)絡(luò)硬件設(shè)備, 還是有很多; 如何讓這些不同廠商之間生產(chǎn)的計算機(jī)能夠相互順暢的通信? 就需要有人站出來, 約定一個共同的標(biāo)準(zhǔn), 大家都來遵守, 這就是 網(wǎng)絡(luò)協(xié)議;
2.為什么要有協(xié)議
我們面對面進(jìn)行交談的時候,障礙比較少,不容易出錯,但是當(dāng)我們兩個人站在相隔500米的橋的兩端的時候,此時進(jìn)行交流通信就會變得極其困難。
對于計算機(jī)來說,所有的網(wǎng)絡(luò)問題,本質(zhì)都是傳輸距離變長了,此時就可能會引入新的通信問題,為了盡可能減少通信成本,就需要定制協(xié)議,如果使用計算機(jī)語言來進(jìn)行表達(dá),則稱為計算機(jī)協(xié)議
三、網(wǎng)絡(luò)協(xié)議
1.為什么要進(jìn)行協(xié)議分層
協(xié)議分層有如下的原因:
1.軟件設(shè)計方面的優(yōu)勢 – 一層的代碼出問題了不會影響其他層 – 低耦合
2.一般我們分層的依據(jù):功能比較集中,耦合度比較高的模塊–一層–高內(nèi)聚
3.每一層都有自己匹配的協(xié)議,每一層協(xié)議都解決自己的問題
我們舉一個例子,比如我們要從重慶到北京,那么我們首先要有從一個省跨越到另一個省的能力,在計算機(jī)中稱為如何把數(shù)據(jù)交付給和自己直接相連的下一臺主機(jī),其他我們要有路線選擇的能力,我們?nèi)ケ本?,不能從重慶往西邊走,在計算機(jī)中稱為要有路徑選擇的能力,其次我們在去北京的路上,走錯路之后要有糾正路線的能力,在計算機(jī)中稱為容錯糾錯能力,我們最終的目的不是去北京,而是在北京進(jìn)行游玩,在計算機(jī)中稱為解決應(yīng)用方面的問題。
所以每一層都有自己匹配的協(xié)議,每一層協(xié)議都要解決自己的問題。
2.OSI七層模型
OSI(Open System Interconnection,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型稱為開放式系統(tǒng)互聯(lián)參考模型,是一個邏輯上的定義和規(guī)范;把網(wǎng)絡(luò)從邏輯上分為了7層. 每一層都有相關(guān)、相對應(yīng)的物理設(shè)備,比如路由器,交換機(jī);
OSI 七層模型是一種框架性的設(shè)計方法,其最主要的功能使就是幫助不同類型的主機(jī)實現(xiàn)數(shù)據(jù)傳輸; 它的最大優(yōu)點是將服務(wù)、接口和協(xié)議這三個概念明確地區(qū)分開來,概念清楚,理論也比較完整. 通過七個層次化的結(jié)構(gòu)模型使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實現(xiàn)可靠的通訊;但是, 它既復(fù)雜又不實用; 所以我們按照TCP/IP四層模型來講解
3.TCP/IP五層(或四層)模型
TCP/IP是一組協(xié)議的代名詞,它還包括許多協(xié)議,組成了TCP/IP協(xié)議簇.
TCP/IP通訊協(xié)議采用了5層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求
物理層: 負(fù)責(zé)光/電信號的傳遞方式. 比如現(xiàn)在以太網(wǎng)通用的網(wǎng)線(雙絞 線)、早期以太網(wǎng)采用的的同軸電纜(現(xiàn)在主要用于有線電視)、光纖, 現(xiàn)在的wifi無線網(wǎng)使用電磁波等都屬于物理層的概念。物理層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等. 集線器(Hub)工作在物理層.
數(shù)據(jù)鏈路層: 負(fù)責(zé)設(shè)備之間的數(shù)據(jù)幀的傳送和識別. 例如網(wǎng)卡設(shè)備的驅(qū)動、幀同步(就是說從網(wǎng)線上檢測到什么信號算作新幀的開始)、沖突檢測(如果檢測到?jīng)_突就自動重發(fā))、數(shù)據(jù)差錯校驗等工作. 有以太網(wǎng)、令牌環(huán)網(wǎng), 無線LAN等標(biāo)準(zhǔn). 交換機(jī)(Switch)工作在數(shù)據(jù)鏈路層.
網(wǎng)絡(luò)層: 負(fù)責(zé)地址管理和路由選擇. 例如在IP協(xié)議中, 通過IP地址來標(biāo)識一臺主機(jī), 并通過路由表的方式規(guī)劃出兩臺主機(jī)之間的數(shù)據(jù)傳輸?shù)木€路(路由). 路由器(Router)工作在網(wǎng)路層.
傳輸層: 負(fù)責(zé)兩臺主機(jī)之間的數(shù)據(jù)傳輸. 如傳輸控制協(xié)議 (TCP), 能夠確保數(shù)據(jù)可靠的從源主機(jī)發(fā)送到目標(biāo)主機(jī).
應(yīng)用層: 負(fù)責(zé)應(yīng)用程序間溝通,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet)等. 我們的網(wǎng)絡(luò)編程主要就是針對應(yīng)用層
物理層我們考慮的比較少. 因此很多時候也可以稱為 TCP/IP四層模型.
一般而言
對于一臺主機(jī), 它的操作系統(tǒng)內(nèi)核實現(xiàn)了從傳輸層到物理層的內(nèi)容;
對于一臺路由器, 它實現(xiàn)了從網(wǎng)絡(luò)層到物理層;
對于一臺交換機(jī), 它實現(xiàn)了從數(shù)據(jù)鏈路層到物理層;
對于集線器, 它只實現(xiàn)了物理層;
但是并不絕對. 很多交換機(jī)也實現(xiàn)了網(wǎng)絡(luò)層的轉(zhuǎn)發(fā); 很多路由器也實現(xiàn)了部分傳輸層的內(nèi)容(比如端口轉(zhuǎn)發(fā));
四、網(wǎng)絡(luò)傳輸基本流程
1.協(xié)議報頭
對于協(xié)議報頭,我們需要理解一下幾個方面:
1.協(xié)議每一層都有,而每一個協(xié)議最終表現(xiàn)就是協(xié)議都要有報頭
2.協(xié)議通常是通過協(xié)議報頭來進(jìn)行表達(dá)的
3.每一份數(shù)據(jù)最終在被發(fā)送者或者在不同的協(xié)議層中,都要有自己的報頭
我們以一個例子來進(jìn)行說明報頭,比如我們在網(wǎng)上買一個水杯,商家通過順豐快遞送到我家附件的順豐快遞點,當(dāng)我收到水杯的時候,就只有水杯中嗎?其實不是的,還有快遞的盒子,快遞單,其中快遞單就是所謂的報頭。報頭就是有一定的格式的,即有一定的協(xié)議,否則如果只在快遞單上面填入一串?dāng)?shù)字或者文字而沒有進(jìn)行說明,此時快遞點就無法進(jìn)行分辨快遞單上面的內(nèi)容,而制定一定的協(xié)議之后,所有的順豐快遞都能夠進(jìn)進(jìn)行辨認(rèn)。
2.局域網(wǎng)
1.兩臺局域網(wǎng)的主機(jī)能夠直接通信
2.局域網(wǎng)的通信原理
每一臺機(jī)器都有自己的“名字”,每一臺主機(jī)都有網(wǎng)卡,每一張網(wǎng)卡都有自己的地址,即MAC地址,MAC地址表明直接在局域網(wǎng)中的唯一性
局域網(wǎng)中的通信方式如下:
Mac1向Mac7發(fā)生吃了嗎,數(shù)據(jù)中會包含接收方的mac地址,數(shù)據(jù)發(fā)送到局域網(wǎng)中,局域網(wǎng)中的其他主機(jī)發(fā)現(xiàn)數(shù)據(jù)的目的mac地址和自己的mac地址不符,此時就會忽略該"消息"。只有對應(yīng)的mac地址的主機(jī)才會接收。所以局域網(wǎng)中只允許一個主機(jī)在任何一個時刻在局域網(wǎng)中發(fā)送消息,否則就會發(fā)生碰撞,在局域網(wǎng)中稱為碰撞域
我們?nèi)绾慰创钟蚓W(wǎng)中的網(wǎng)絡(luò)資源:站在系統(tǒng)的角度–共享資源,臨界資源
局域網(wǎng)有:以太網(wǎng),令牌環(huán)網(wǎng)和無限LAN
3.數(shù)據(jù)包封裝和分用
不同的協(xié)議層對數(shù)據(jù)包有不同的稱謂,在傳輸層叫做段(segment),在網(wǎng)絡(luò)層叫做數(shù)據(jù)報 (datagram),在鏈路層叫做幀(frame).
應(yīng)用層數(shù)據(jù)通過協(xié)議棧發(fā)到網(wǎng)絡(luò)上時,每層協(xié)議都要加上一個數(shù)據(jù)首部(header),稱為封裝(Encapsulation).
首部信息中包含了一些類似于首部有多長, 載荷(payload)有多長, 上層協(xié)議是什么等信息.
數(shù)據(jù)封裝成幀后發(fā)到傳輸介質(zhì)上,到達(dá)目的主機(jī)后每層協(xié)議再剝掉相應(yīng)的首部, 根據(jù)首部中的 “上層協(xié)議字段” 將數(shù)據(jù)交給對應(yīng)的上層協(xié)議處理
下圖為數(shù)據(jù)封裝的過程
下圖為數(shù)據(jù)分用的過程
封裝和數(shù)據(jù)分用的過程
每一層從上到下數(shù)據(jù)包根據(jù)該層的協(xié)議進(jìn)行封裝,向上不斷的進(jìn)行解包和分用,最終將數(shù)據(jù)從一臺主機(jī)傳輸?shù)搅硪慌_主機(jī)上
報文 = 報頭 + 有效載荷
這里有兩個問題:
如何判斷哪里是報頭?哪里是有效載荷?
如何判斷自己的有效載荷要交給上層的哪一個協(xié)議呢
這是每一層協(xié)議都必須面對的問題,也都需要解決的,在每一層協(xié)議的報頭中,一定會涵蓋上面的所有信息,這是所有協(xié)議的共性
在網(wǎng)絡(luò)協(xié)議中,我們可以認(rèn)為同層協(xié)議在直接通信,也可以理解稱為向下進(jìn)行交付,這是兩種不同的認(rèn)知
4.網(wǎng)絡(luò)傳輸流程圖
同一個網(wǎng)段內(nèi)的兩臺主機(jī)進(jìn)行文件傳輸
跨網(wǎng)段的主機(jī)的文件傳輸. 數(shù)據(jù)從一臺計算機(jī)到另一臺計算機(jī)傳輸過程中要經(jīng)過一個或多個路由器
我們知道一個設(shè)備至少要橫跨兩個網(wǎng)絡(luò),才能實現(xiàn)數(shù)據(jù)報跨網(wǎng)絡(luò)轉(zhuǎn)發(fā)->路由器必須至少要橫跨兩個網(wǎng)絡(luò)->路由器必須有兩個網(wǎng)絡(luò)接口
在路由器這里,先進(jìn)行解包,得到數(shù)據(jù),然后再進(jìn)行重新封裝,這樣就屏蔽了網(wǎng)絡(luò)底層的差異,進(jìn)行跨網(wǎng)段傳輸
網(wǎng)絡(luò)傳輸流程圖:
五、網(wǎng)絡(luò)中的地址管理
1.認(rèn)識IP地址
IP協(xié)議有兩個版本, IPv4和IPv6. 我們整個的課程, 凡是提到IP協(xié)議, 沒有特殊說明的, 默認(rèn)都是指IPv4
IP地址是在IP協(xié)議中, 用來標(biāo)識網(wǎng)絡(luò)中不同主機(jī)的地址;
對于IPv4來說, IP地址是一個4字節(jié), 32位的整數(shù);
我們通常也使用 “點分十進(jìn)制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用點分割的每一個數(shù)字表示一個字節(jié), 范圍是 0 - 255;
2.認(rèn)識MAC地址
MAC地址用來識別數(shù)據(jù)鏈路層中相連的節(jié)點;
長度為48位, 及6個字節(jié). 一般用16進(jìn)制數(shù)字加上冒號的形式來表示(例如: 08:00:27:03:fb:19)
在網(wǎng)卡出廠時就確定了, 不能修改. mac地址通常是唯一的(虛擬機(jī)中的mac地址不是真實的mac地址, 可
能會沖突; 也有些網(wǎng)卡支持用戶配置mac地址)文章來源:http://www.zghlxwxcb.cn/news/detail-778121.html
3.理解IP地址和MAC地址的關(guān)系
計算機(jī)中有兩套地址,分別為IP地址和MAC地址,IP地址分為源IP和目的IP,回答了從哪里來,到哪里去的問題,為我們未來的每一個階段,提供方向目標(biāo),方便進(jìn)行路徑選擇。而MAC地址是上一站從哪來,下一站去哪里,該類地址,一直在變化,提供了路徑選擇的可行性。比如西游記中唐僧說從東土大唐來,到西天去拜佛求經(jīng)。這里東土大唐就是源IP,西天就是目的IP。而路上經(jīng)過的黑風(fēng)嶺和火焰山則是MAC地址。文章來源地址http://www.zghlxwxcb.cn/news/detail-778121.html
到了這里,關(guān)于【計算機(jī)網(wǎng)絡(luò)】網(wǎng)絡(luò)基礎(chǔ)--協(xié)議/網(wǎng)絡(luò)協(xié)議/網(wǎng)絡(luò)傳輸流程/地址管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!