网络运行原理
一、狹義角度
?
客戶端:貼近用戶的應(yīng)用程序例如web瀏覽器、電子郵件客戶端、手機(jī)app
服務(wù)器:遠(yuǎn)程計(jì)算機(jī)上運(yùn)行的應(yīng)用程序,客戶端可以在需要時(shí)通過互聯(lián)網(wǎng)于服務(wù)端進(jìn)行通信
當(dāng)你的電腦接入到互聯(lián)網(wǎng)的時(shí)候互聯(lián)網(wǎng)會分配一個(gè)IP地址給你,某個(gè)服務(wù)器也接入到互聯(lián)網(wǎng)也會給服務(wù)器分配一個(gè)IP地址。此時(shí)你的電腦可以和服務(wù)器進(jìn)行通訊。當(dāng)你的電腦發(fā)送消息給xxx服務(wù)器要獲取index.html的內(nèi)容時(shí),消息會被轉(zhuǎn)化為電子信號通過電纜發(fā)送給xxx服務(wù)器。在服務(wù)端將電子信號轉(zhuǎn)化為計(jì)算機(jī)可以使用的文本數(shù)據(jù),這一切是如何實(shí)現(xiàn)的呢,主要是通過TCP/IP協(xié)議族。協(xié)議是一組規(guī)則,用于指定應(yīng)如何通過網(wǎng)絡(luò)來相互通信,TCP/IP協(xié)議一共分為4層分別是:應(yīng)用層、TCP傳輸控制層、IP網(wǎng)絡(luò)層、鏈路層網(wǎng)絡(luò)協(xié)議通過定義明確接口來協(xié)同工作每個(gè)層都可以使用下面各層的功能,而不必擔(dān)心各層是如何實(shí)現(xiàn)的。
應(yīng)用層:提供特定于應(yīng)用程序的協(xié)議,比如負(fù)責(zé)瀏覽器和網(wǎng)絡(luò)服務(wù)器相互通信的HTTP協(xié)議,負(fù)責(zé)文檔傳輸?shù)腇TP協(xié)議,負(fù)責(zé)電子右鍵客戶端檢索的IMAP協(xié)議
傳輸控制層:發(fā)送數(shù)據(jù)包到計(jì)算機(jī)上使用特定端口的應(yīng)用程序
網(wǎng)絡(luò)層:使用IP地址將數(shù)據(jù)包發(fā)送到特定的計(jì)算機(jī)
鏈路層:將二進(jìn)制數(shù)據(jù)包與網(wǎng)絡(luò)信號相互之間轉(zhuǎn)換
使用應(yīng)用層的HTTP協(xié)議請求獲取html文本這時(shí)需要發(fā)送一個(gè)請求消息消息在發(fā)送前會被分解為許多片段我們稱之為數(shù)據(jù)包數(shù)據(jù)包通過應(yīng)用層進(jìn)入到TCP層后每個(gè)數(shù)據(jù)包會被分配一個(gè)端口號,端口號用來確定目標(biāo)計(jì)算機(jī)哪一個(gè)應(yīng)用序要接受使用該數(shù)據(jù)包。TCP是一種面向連接的可靠字節(jié)流服務(wù)協(xié)議。TCP需要經(jīng)過三次握手建立連接后才能交換數(shù)據(jù),每個(gè)收到的數(shù)據(jù)包都會向發(fā)送方發(fā)送ack確認(rèn),已確保發(fā)送成功。數(shù)據(jù)包進(jìn)入到IP層后,每個(gè)數(shù)據(jù)包將會賦予目標(biāo)計(jì)算機(jī)一個(gè)IP地址。IP是不可靠的無連接協(xié)議,它并不關(guān)心數(shù)據(jù)包是否到達(dá)目的地,也不關(guān)心連接和端口號,它的工作是發(fā)送數(shù)據(jù)包并將其路由到目標(biāo)計(jì)算機(jī)。其中每個(gè)數(shù)據(jù)包都是獨(dú)立的互不依賴的,有可能會亂序到達(dá)目標(biāo)地址或者在傳輸中丟失,那如何保證數(shù)據(jù)包到達(dá)和順序正確呢?這都交給了TCP,也就體現(xiàn)了分層的作用。當(dāng)數(shù)據(jù)包過大時(shí),在IP層會進(jìn)行分包由于每個(gè)數(shù)據(jù)包在物理層走的物理鏈路不一樣,傳輸速度也不一樣導(dǎo)致數(shù)據(jù)包沒有按順序到達(dá)目的地,但TCP會根據(jù)數(shù)據(jù)包上攜帶的序列號來進(jìn)行排序重組并且發(fā)送方在一個(gè)特定時(shí)間內(nèi)沒有接收到接受方的ack確認(rèn)時(shí),則發(fā)送方會重新傳送該數(shù)據(jù)包。我們常常把IP等同于IP地址,這是不對的。IP是網(wǎng)絡(luò)協(xié)議,而IP地址是一串?dāng)?shù)字,IP地址有兩種標(biāo)準(zhǔn)一種是IPV4,采用的是32位地址即4字節(jié),因此地址空間只有2的32次方約40億個(gè)地址。一些地址是為特殊用途所保留的,如專用網(wǎng)絡(luò)約1800萬地址。隨著互聯(lián)網(wǎng)爆炸式發(fā)展地址被不斷分配使用IPV4已經(jīng)枯竭于是IPV6運(yùn)營而生IPV6采用128位的地址因此新增的地址空間支持2的128次方約3.4X10的38次方個(gè)地址。有了IP地址和端口號之后鏈路層將數(shù)據(jù)包的文本信息轉(zhuǎn)譯成電子信號然后通過光纜傳輸在電纜的另一端的路由器上檢查每個(gè)數(shù)據(jù)包中的目標(biāo)地址并確定將其發(fā)送到何處,最終數(shù)據(jù)包到達(dá)服務(wù)器后從TCP/IP協(xié)議族的底部開始向上運(yùn)行當(dāng)數(shù)據(jù)包向上通過協(xié)議族時(shí)客戶端添加的所有路由數(shù)據(jù)例如IP地址和端口號都將從數(shù)據(jù)包中剝離出來當(dāng)數(shù)據(jù)到達(dá)棧頂時(shí)數(shù)據(jù)包已經(jīng)重新恢復(fù)成最初的形式,通過端口號可以將數(shù)據(jù)傳遞給當(dāng)前服務(wù)器監(jiān)聽該端口的應(yīng)用程序,應(yīng)用程序根據(jù)當(dāng)前請求數(shù)據(jù)做出反應(yīng)。比如現(xiàn)在我們想獲取Index.html服務(wù)器會將路徑index.html的數(shù)據(jù)通過剛才的方式返回給你的電腦也就是客戶端,這樣就可以看到xx網(wǎng)站的首頁內(nèi)容了。到這里我們完成了客戶端與服務(wù)器在互聯(lián)網(wǎng)中的一次數(shù)據(jù)交互。
二、廣義角度
?從更廣的角度來看看你的電腦和xxx服務(wù)器之間的互聯(lián)網(wǎng)到底是怎么構(gòu)成的。你的電腦通過調(diào)制解調(diào)器modem也就是我們常說的貓,貓將計(jì)算機(jī)的數(shù)字信號翻譯成可以沿著普通電話線傳送的模擬信號后在公共網(wǎng)絡(luò)進(jìn)行傳輸,公共電話網(wǎng)絡(luò)通過連接ISP互聯(lián)網(wǎng)服務(wù)提供商來接入互聯(lián)網(wǎng),我們生活中常見的移動、聯(lián)通、電信等都是ISP。數(shù)據(jù)包經(jīng)過電話網(wǎng)絡(luò)和ISP后它們將路由到ISP主干網(wǎng)絡(luò)數(shù)據(jù)包通常會從此經(jīng)過多個(gè)路由器,并經(jīng)過多個(gè)主干網(wǎng)直到目的地?;ヂ?lián)網(wǎng)主干網(wǎng)由許多相互連接的大型網(wǎng)絡(luò),組成這些大型網(wǎng)絡(luò)被稱為網(wǎng)絡(luò)服務(wù)提供商簡稱NSP,NSP是為ISP提供網(wǎng)絡(luò)主干服務(wù)的公司。ISP可以從NSP那里批量購入帶寬為客戶提供網(wǎng)絡(luò)接入服務(wù)NSP網(wǎng)絡(luò)通過網(wǎng)絡(luò)訪問點(diǎn)NAP相連來交換數(shù)據(jù)包流量,每個(gè)NSP都必須連接至少三個(gè)網(wǎng)絡(luò)訪問點(diǎn),數(shù)據(jù)包流量可能會通過NAP從一個(gè)NSP的主干跳到另一個(gè)NSP主干。當(dāng)然互聯(lián)網(wǎng)的網(wǎng)絡(luò)架構(gòu)不會這么簡單,互聯(lián)網(wǎng)是如何幫助數(shù)據(jù)包找到一條正確路線的把數(shù)據(jù)包送到目的地,在互聯(lián)網(wǎng)中有個(gè)特殊計(jì)算器-路由器,路由器上面有個(gè)路由表記錄了子網(wǎng)絡(luò)的所有IP地址然而他并不知道上層網(wǎng)絡(luò)所包含IP地址,當(dāng)數(shù)據(jù)包到達(dá)路由器;路由器檢查路由表上是否有目的地的IP地址,如果有則直接發(fā)送那個(gè)網(wǎng)絡(luò)否則就向上層發(fā)送數(shù)據(jù)在更高的層級尋找擁有該IP的路由器。如果依然沒有找到,則再次將數(shù)據(jù)包向上路由,直到到達(dá)NSP主干網(wǎng)為止,連接到NSP骨干網(wǎng)的路由器擁有最大的路由表。通過這張表可以將數(shù)據(jù)包路由到正確的骨干網(wǎng),然后開始向下傳播進(jìn)入越來越小的網(wǎng)絡(luò),直到找到目的地為止,你的電腦就是這樣訪問到某個(gè)服務(wù)器的。
總結(jié)
- 上一篇: 超小型php框架,超轻量级的PHP框架
- 下一篇: 库克「豪赌」MR:七年磨一剑,不行也得行