1 計算機(jī)網(wǎng)絡(luò)背景
網(wǎng)絡(luò)發(fā)展
獨(dú)立模式: 計算機(jī)之間相互獨(dú)立;
?一開始,計算機(jī)發(fā)明出來之后,一臺計算機(jī)處理完的數(shù)據(jù),數(shù)據(jù)會保存在軟盤(物理),通過人之間的相互通信,把計算機(jī)A處理完的數(shù)據(jù)存儲到軟盤中,在將軟盤插入計算機(jī)B中,從而兩臺計算機(jī)可以進(jìn)行通信。由于存在人的因素,這樣的通信時間必然會慢。
網(wǎng)絡(luò)互聯(lián): 多臺計算機(jī)連接在一起, 完成數(shù)據(jù)共享;
?局域網(wǎng)LAN: 計算機(jī)數(shù)量更多了, 通過交換機(jī)和路由器連接在一起;
廣域網(wǎng)WAN: 將遠(yuǎn)隔千里的計算機(jī)都連在一起;?
所謂 "局域網(wǎng)" 和 "廣域網(wǎng)" 只是一個相對的概念. 比如, 我們有 "天朝特色" 的廣域網(wǎng), 也可以看做一個比較大的局域網(wǎng).?
2?認(rèn)識 "協(xié)議"
"協(xié)議" 是一種約定,告訴你某個信號,你通過約定知道下一步要做什么!
計算機(jī)之間的傳輸媒介是光信號和電信號. 通過 "頻率" 和 "強(qiáng)弱" 來表示 0 和 1 這樣的信息. 要想傳遞各種不同的信息, 就需要約定好雙方的數(shù)據(jù)格式.
?協(xié)議一般都是業(yè)內(nèi)頂級人物來定的,因?yàn)樗麄兙哂性捳Z權(quán)。
3?網(wǎng)絡(luò)協(xié)議初識
協(xié)議分層
為什么協(xié)議要分層?
網(wǎng)絡(luò)通信的時候,會有哪些需求要解決,要有哪些問題會產(chǎn)生,為什么會產(chǎn)生這些問題?
多個計算機(jī),計算機(jī)距離長短不同,輸送距離變長,必然會出現(xiàn)以下的問題:
- 長距離的輸送,數(shù)據(jù)異常的問題(丟失);
- 如何準(zhǔn)確定位一臺主機(jī)的問題;
- 怎么進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),路徑選擇的問題(路由);
- 010101硬件級別的協(xié)議。
以上的問題,是有先后上下關(guān)系的?。ù_定主機(jī)問題——》長距離問題——》數(shù)據(jù)轉(zhuǎn)發(fā)問題)
問題出現(xiàn)了,需要也就來了,有了需求就會有相應(yīng)對應(yīng)的解決方案!
我們可以針對不同性質(zhì)的問題,設(shè)計成不同的功能,一個功能設(shè)計成不同的模塊——低耦合;每一個不同性質(zhì)的問題,里面都會有著許多小問題,將相關(guān)的問題放在一起,做出相關(guān)的解決方案——高內(nèi)聚?!?span style="color:#fe2c24;">因?yàn)橐驗(yàn)槭怯幸欢樞虻模栽O(shè)計方案設(shè)計成為層狀的!
方案是層狀的,所以協(xié)議就分層的!
打電話例子
在這個例子中, 我們的協(xié)議只有兩層; 但是實(shí)際的網(wǎng)絡(luò)通信會更加復(fù)雜, 需要分更多的層次.
分層最大的好處在于 "封裝" . 面向?qū)ο罄?/p>
軟件分層之后,每一層之間的交流,都只會認(rèn)為就是該層面對面的交流,沒有關(guān)心下層是如何實(shí)現(xiàn)的,只是使用下層的接口。所以,任何一層出現(xiàn)的問題,都不會直接影響另一層,這樣就可以減少后期開發(fā)者的維護(hù)成本。這就是,高內(nèi)聚,低耦合的優(yōu)點(diǎn)。
4?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ī)實(shí)現(xiàn)數(shù)據(jù)傳輸;
- 它的最大優(yōu)點(diǎn)是將服務(wù)、接口和協(xié)議這三個概念明確地區(qū)分開來,概念清楚,理論也比較完整. 通過七個層次化的結(jié)構(gòu)模型使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實(shí)現(xiàn)可靠的通訊;
- 但是, 它既復(fù)雜又不實(shí)用; 所以我們按照TCP/IP四層模型來講解.
?
5 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ù)差錯校驗(yàn)等工作. 有以太網(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)核實(shí)現(xiàn)了從傳輸層到物理層的內(nèi)容;
- 對于一臺路由器, 它實(shí)現(xiàn)了從網(wǎng)絡(luò)層到物理層;
- 對于一臺交換機(jī), 它實(shí)現(xiàn)了從數(shù)據(jù)鏈路層到物理層;
- 對于集線器, 它只實(shí)現(xiàn)了物理層;?
但是并不絕對. 很多交換機(jī)也實(shí)現(xiàn)了網(wǎng)絡(luò)層的轉(zhuǎn)發(fā); 很多路由器也實(shí)現(xiàn)了部分傳輸層的內(nèi)容(比如端口轉(zhuǎn)發(fā));
TCP/IP就是協(xié)議棧嗎?是的
這個協(xié)議棧,在哪里,和操作系統(tǒng)有什么關(guān)系?
所以,我們要學(xué)習(xí)的網(wǎng)絡(luò)就是操作系統(tǒng)的一部分,OS系統(tǒng)中也有系統(tǒng)調(diào)用專門用來進(jìn)行網(wǎng)絡(luò)通信的。操作系統(tǒng)有很多種,但是網(wǎng)絡(luò)相關(guān)的部分只能有一種,因?yàn)橹挥邢嗤牟糠植拍苡兴P(guān)聯(lián),從而進(jìn)行網(wǎng)絡(luò)交流!
數(shù)據(jù)鏈路層是和驅(qū)動有關(guān)的,驅(qū)動的標(biāo)準(zhǔn)不同,所以數(shù)據(jù)鏈路層是不一樣的!
Linux下一切皆文件,未來學(xué)習(xí)的很多網(wǎng)絡(luò)接口一定都和文件相關(guān)!
6?網(wǎng)絡(luò)傳輸基本流程
同一個網(wǎng)段內(nèi)的兩臺主機(jī)進(jìn)行文件傳輸.
?
- ,每一層,都會把上層交付給自己的數(shù)據(jù),作為自己的有效載荷
- 每一層,都有自己的協(xié)議報頭
- 對應(yīng)的層,報頭+有效載荷 = 自己要發(fā)送的報文 --> 封裝
- 在邏輯上,同層協(xié)議,都認(rèn)為自己和對方的同層協(xié)議在通信
- 同層協(xié)議,能夠相互認(rèn)識對方的報頭
- 每一層都能做到以下的兩個基本公共功能
- 將報頭進(jìn)行和有效載荷進(jìn)行分離
- 將有效載荷交付給上層的哪一個具體協(xié)議
跨網(wǎng)段的主機(jī)的文件傳輸. 數(shù)據(jù)從一臺計算機(jī)到另一臺計算機(jī)傳輸過程中要經(jīng)過一個或多個路由器.
?
用戶A向用戶B發(fā)送:你好(過程分析)
用戶A的主機(jī)端,在應(yīng)用層到IP層的信息封裝成:你好 + IPB(用戶B的IP,要到的目的地)
通過IP的中特定的標(biāo)識,可以認(rèn)定用戶B的主機(jī)端不在用戶A的局域網(wǎng)中,所以通過以太網(wǎng)驅(qū)動程序,將MR+有效載荷發(fā)送給路由器(MR表示數(shù)據(jù)下一站需要到達(dá)路由器中)
路由器通過路由器的以太驅(qū)動程序?qū)⒌玫叫畔⒔獍铰酚善鞯腎P層,通過IPB知道目的地要傳給用戶B,通過掃描路由,分析出用戶B在令牌環(huán)的網(wǎng)絡(luò)環(huán)境中,所以路由器向下讓自身的令牌環(huán)驅(qū)動程序?qū)⑿畔⒋虬蒑B+有效載荷發(fā)送到令牌環(huán)中。
令牌環(huán)找到相應(yīng)用戶B的令牌環(huán)驅(qū)動程序,解包之后傳給上一層的IP層。
到了用戶B的IP層,將信息中IPB和IP信息做比較,比較正確,繼續(xù)將信息依次往上組層解包,到了用戶B的應(yīng)用層就將你好的信息展現(xiàn)到了用戶B的顯示屏上。
IP地址屏蔽了底層子網(wǎng)機(jī)制的差異!IP協(xié)議及其以上的協(xié)議,在網(wǎng)絡(luò)層面是沒有差異的;IP協(xié)議向下,網(wǎng)絡(luò)方面可以有明顯的差異?。IP是全球網(wǎng)絡(luò)的底層基礎(chǔ)。
任何一個軟硬件問題,都可以通過一層軟件層來解決!
?7 網(wǎng)絡(luò)傳輸感性理解
網(wǎng)絡(luò)傳輸?shù)穆窂矫枋?/p>
?文章來源:http://www.zghlxwxcb.cn/news/detail-628543.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-628543.html
到了這里,關(guān)于【Linux】網(wǎng)絡(luò)基礎(chǔ)——宏觀認(rèn)識計算機(jī)網(wǎng)絡(luò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!