多圖詳解網(wǎng)絡(luò)基礎(chǔ)知識(shí)
網(wǎng)絡(luò)協(xié)議
我們用手機(jī)連接上網(wǎng)的時(shí)候,會(huì)用到許多網(wǎng)絡(luò)協(xié)議。從手機(jī)連接 WiFi 開始,使用的是 802.11 (即 WLAN )協(xié)議;手機(jī)自動(dòng)獲取網(wǎng)絡(luò)配置,使用的是 DHCP 協(xié)議。這時(shí)手機(jī)已經(jīng)連入局域網(wǎng)了,可以訪問局域網(wǎng)內(nèi)的主機(jī)和資源,但還不能使用互聯(lián)網(wǎng)應(yīng)用,例如:微信、抖音等。想要訪問互聯(lián)網(wǎng),還需要在手機(jī)的上聯(lián)網(wǎng)絡(luò)設(shè)備上進(jìn)行配置,即在無線路由器上配置 NAT、 PPPOE 等功能,才能把局域網(wǎng)接入到互聯(lián)網(wǎng)中,手機(jī)就可以上網(wǎng)玩微信、刷抖音了。
網(wǎng)絡(luò)協(xié)議示意圖局域網(wǎng) :小范圍內(nèi)的私有網(wǎng)絡(luò),一個(gè)家庭內(nèi)的網(wǎng)絡(luò)、一個(gè)公司內(nèi)的網(wǎng)絡(luò)、一個(gè)校園內(nèi)的網(wǎng)絡(luò)都屬于局域網(wǎng)。
廣域網(wǎng):把不同地域的局域網(wǎng)互相連接起來的網(wǎng)絡(luò)。運(yùn)營商搭建連接遠(yuǎn)距離區(qū)域的廣域網(wǎng)。
互聯(lián)網(wǎng):由世界各地的局域網(wǎng)和廣域網(wǎng)連接起來的網(wǎng)絡(luò)?;ヂ?lián)網(wǎng)是一個(gè)開放、互聯(lián)的網(wǎng)絡(luò),不屬于任何個(gè)人和任何機(jī)構(gòu)。
簡單來說,就是手機(jī)、無線路由器等設(shè)備通過網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)通信。網(wǎng)絡(luò)協(xié)議又是誰規(guī)定的呢?ISO 制定了一個(gè) OSI 參考模型,被用于網(wǎng)絡(luò)協(xié)議的制定。
OSI 參考模型
OSI 參考模型將網(wǎng)絡(luò)協(xié)議提供的服務(wù)分成 7 層,并定義每一層的服務(wù)內(nèi)容,實(shí)現(xiàn)每一層服務(wù)的是協(xié)議,協(xié)議的具體內(nèi)容是規(guī)范。上下層之間通過接口進(jìn)行交互,同一層之間通過協(xié)議進(jìn)行交互。OSI 參考模型只對(duì)各層的服務(wù)做了粗略的界定,并沒有對(duì)協(xié)議進(jìn)行詳細(xì)的定義。但是許多協(xié)議都對(duì)應(yīng)了 7 個(gè)分層的某一層。所以要了解網(wǎng)絡(luò),首先要了解 OSI 參考模型。
OSI 參考模型圖應(yīng)用層
OSI參考模型的第 7 層(最高層)。應(yīng)用程序和網(wǎng)絡(luò)之間的接口,直接向用戶提供服務(wù)。應(yīng)用層協(xié)議有電子郵件、遠(yuǎn)程登錄等協(xié)議。
應(yīng)用層示例圖表示層
OSI參考模型的第 6 層。負(fù)責(zé)數(shù)據(jù)格式的互相轉(zhuǎn)換,如編碼、數(shù)據(jù)格式轉(zhuǎn)換和加密解密等。保證一個(gè)系統(tǒng)應(yīng)用層發(fā)出的信息可被另一系統(tǒng)的應(yīng)用層讀出。
表示層示例圖會(huì)話層
OSI參考模型的第 5 層。主要是管理和協(xié)調(diào)不同主機(jī)上各種進(jìn)程之間的通信(對(duì)話),即負(fù)責(zé)建立、管理和終止應(yīng)用程序之間的會(huì)話。
傳輸層
OSI參考模型的第 4 層。為上層協(xié)議提供通信主機(jī)間的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯(cuò)控制和流量控制等問題。
傳輸層示例圖網(wǎng)絡(luò)層
OSI參考模型的第 3 層。將數(shù)據(jù)傳輸?shù)侥康牡刂?,主要?fù)責(zé)尋址和路由選擇。
網(wǎng)絡(luò)層示例圖數(shù)據(jù)鏈路層
OSI參考模型的第 2 層。負(fù)責(zé)兩個(gè)相鄰主機(jī)間的通信傳輸,即數(shù)據(jù)幀的生成與接收。
數(shù)據(jù)鏈路層示例圖物理層
OSI參考模型的第 1 層(最底層)。負(fù)責(zé)邏輯信號(hào)(比特流)與物理信號(hào)(電信號(hào)、光信號(hào))之間的互相轉(zhuǎn)換,利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接。
物理層示例圖TCP/IP 參考模型
由于 OSI 參考模型把服務(wù)劃得過于瑣碎,先定義參考模型再定義協(xié)議,有點(diǎn)理想化。TCP/IP 模型則正好相反,通過已有的協(xié)議歸納總結(jié)出來的模型,成為實(shí)際的主流網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)。
先介紹下 TCP/IP 與 OSI 分層之間的對(duì)應(yīng)關(guān)系,以及 TCP/IP 每層的主要協(xié)議。
TCP/IP 參考模型網(wǎng)絡(luò)接入層
在 TCP/IP 分層中,有把物理層和數(shù)據(jù)鏈路層合并稱為網(wǎng)絡(luò)接入層,有把物理層和數(shù)據(jù)鏈路層分別稱為硬件、網(wǎng)絡(luò)接口層。網(wǎng)絡(luò)接入層是對(duì)網(wǎng)絡(luò)介質(zhì)的管理,定義如何使用網(wǎng)絡(luò)來傳送數(shù)據(jù),但是對(duì)物理層和數(shù)據(jù)鏈路層在通信過程中起到了不一樣的作用。所以 TCP/IP 分為四層或者五層都可以,只要能理解其中的原理就行。
網(wǎng)絡(luò)層
相當(dāng)于 OSI 模型中的第 3 層網(wǎng)絡(luò)層,使用的是IP協(xié)議,作用是將數(shù)據(jù)包從源地址發(fā)送到目的地址。
網(wǎng)絡(luò)層-
IP
IP 是跨越網(wǎng)絡(luò)傳送數(shù)據(jù)包, 使整個(gè)互聯(lián)網(wǎng)都能收到數(shù)據(jù)的協(xié)議,它使用 IP 地址作為主機(jī)的標(biāo)識(shí)。IP 協(xié)議獨(dú)立于底層介質(zhì),
實(shí)現(xiàn)從源到目的的數(shù)據(jù)轉(zhuǎn)發(fā)。 -
ICMP
用于在 IP 主機(jī)、路由器之間傳遞控制消息。被用來診斷網(wǎng)絡(luò)的健康狀況。
-
ARP
從數(shù)據(jù)包的 IP 地址中解析出 MAC 地址的一種協(xié)議。
傳輸層
相當(dāng)于 OSI 模型中的第 4 層傳輸層,主要功能就是讓應(yīng)用程序之間互相通信,通過端口號(hào)識(shí)別應(yīng)用程序,使用的協(xié)議有面向連接的 TCP 協(xié)議和面向無連接的 UDP 協(xié)議。
傳輸層-
TCP
TCP 是一種面向有連接的傳輸層協(xié)議,能夠?qū)ψ约禾峁┑倪B接實(shí)施控制。適用于要求可靠傳輸?shù)膽?yīng)用,例如文件傳輸。
-
UDP
UDP 是一種面向無連接的傳輸層協(xié)議,不會(huì)對(duì)自己提供的連接實(shí)施控制。適用于實(shí)時(shí)應(yīng)用,例如:IP電話、視頻會(huì)議、直播等。
應(yīng)用層
相當(dāng)于 OSI 模型中的第 5 - 7 層的集合,不僅要實(shí)現(xiàn) OSI 模型應(yīng)用層的功能,還要實(shí)現(xiàn)會(huì)話層和表示層的功能。HTTP 、 POP3 、 TELNET 、 SSH 、 FTP 、 SNMP都是應(yīng)用層協(xié)議。
應(yīng)用層-
HTTP
是 WWW 瀏覽器和服務(wù)器之間的應(yīng)用層通信協(xié)議。HTTP 定義高級(jí)命令或者方法供瀏覽器用來與Web服務(wù)器通信。
-
POP3
簡單郵件傳輸協(xié)議,郵件客戶端和郵件服務(wù)器使用。
-
TELNET
遠(yuǎn)程終端協(xié)議,用于遠(yuǎn)程管理網(wǎng)絡(luò)設(shè)備。
-
SSH
安全外殼協(xié)議。通過使用SSH,可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密。
-
SNMP
簡單網(wǎng)絡(luò)管理協(xié)議,用于網(wǎng)管軟件進(jìn)行網(wǎng)絡(luò)設(shè)備的監(jiān)控和管理。
封裝與解封裝
數(shù)據(jù)發(fā)送前,按照參考模型從上到下,在數(shù)據(jù)經(jīng)過每一層時(shí),添加協(xié)議頭部信息,這個(gè)過程叫封裝。
封裝數(shù)據(jù)接收后,按照參考模型從下到上,在數(shù)據(jù)經(jīng)過每一層時(shí),去掉協(xié)議頭部信息,這個(gè)過程叫解封裝。
解封裝經(jīng)過傳輸層協(xié)議封裝后的數(shù)據(jù)稱為段,經(jīng)過網(wǎng)絡(luò)層協(xié)議封裝后的數(shù)據(jù)稱為包,經(jīng)過數(shù)據(jù)鏈路層協(xié)議封裝后的數(shù)據(jù)稱為幀,物理層傳輸?shù)臄?shù)據(jù)為比特。
實(shí)際數(shù)據(jù)傳輸舉例
實(shí)際生活中,互聯(lián)網(wǎng)是使用的 TCP/IP 協(xié)議進(jìn)行網(wǎng)絡(luò)連接的。我們以訪問網(wǎng)站為例,看看網(wǎng)絡(luò)是如何進(jìn)行通信的。
數(shù)據(jù)傳輸舉例發(fā)送數(shù)據(jù)包
訪問 HTTP 網(wǎng)站頁面時(shí),打開瀏覽器,輸入網(wǎng)址,敲下回車鍵就開始進(jìn)行 TCP/IP 通信了。
應(yīng)用程序處理
首先,應(yīng)用程序中會(huì)進(jìn)行 HTML 格式編碼處理,相當(dāng)于 OSI 的表示層功能。編碼轉(zhuǎn)化后,不一定會(huì)馬上發(fā)送出去,相當(dāng)于會(huì)話層的功能。在請(qǐng)求發(fā)送的那一刻,建立 TCP 連接,然后在 TCP 連接上發(fā)送數(shù)據(jù)。接下來就是將數(shù)據(jù)發(fā)送給下一層的 TCP 進(jìn)行處理。
TCP 模塊處理
TCP 會(huì)將應(yīng)用層發(fā)來的數(shù)據(jù)順利的發(fā)送至目的地,實(shí)現(xiàn)可靠傳輸?shù)墓δ埽枰o數(shù)據(jù)封裝 TCP 頭部信息。TCP 頭部信息包括源端口號(hào)和目的端口號(hào)(識(shí)別主機(jī)上應(yīng)用)、序號(hào)(確認(rèn)哪部分是數(shù)據(jù))以及校驗(yàn)和(判斷數(shù)據(jù)是否被損壞)。隨后封裝了 TCP 頭部信息的段再發(fā)送給 IP 。
IP 模塊處理
IP 將 TCP 傳過來的數(shù)據(jù)段當(dāng)做自己的數(shù)據(jù),并封裝 IP 頭部信息。IP 頭部信息中包含目的 IP 地址和源 IP 地址,以及上層協(xié)議類型信息。
IP 包生成后,根據(jù)主機(jī)路由表進(jìn)行數(shù)據(jù)發(fā)送。
網(wǎng)絡(luò)接口處理
網(wǎng)絡(luò)接口對(duì)傳過來的 IP 包封裝上以太網(wǎng)頭部信息并進(jìn)行發(fā)送處理。以太網(wǎng)頭部信息包含目的 MAC 地址、源 MAC 地址,以及上層協(xié)議類型信息。然后將以太網(wǎng)數(shù)據(jù)幀通過物理層傳輸給接收端。
接收數(shù)據(jù)包
包的接收流程是發(fā)送流程的反向過程。
網(wǎng)絡(luò)接口處理
收到以太網(wǎng)幀后,首先查看頭部信息的目的 MAC 地址是否是發(fā)給自己的幀。如果不是發(fā)送給自己的幀就丟棄。如果是發(fā)送給自己的幀,查看上層協(xié)議類型是 IP 包,以太網(wǎng)幀解封裝成 IP 包,傳給 IP 模塊進(jìn)行處理。
IP 模塊處理
收到 IP 包后,進(jìn)行類似處理。根據(jù)頭部信息的目的 IP 地址判斷是否是發(fā)送給自己包,如果是發(fā)送給自己的包,則查看上一層的協(xié)議類型,并把 IP 包解封裝發(fā)送給 TCP 協(xié)議處理。
TCP 模塊處理
收到 TCP 段后,首先查看校驗(yàn)和,判斷數(shù)據(jù)是否被破壞。然后檢查是否按照序號(hào)接收數(shù)據(jù)。最后檢查端口號(hào),確定具體的應(yīng)用程序。
數(shù)據(jù)接收完畢后,發(fā)送一個(gè) “ 確認(rèn)回執(zhí) ” 給發(fā)送端。
數(shù)據(jù)被完整接收后,會(huì)把 TCP 段解封裝發(fā)送給由端口號(hào)識(shí)別的應(yīng)用程序。
應(yīng)用程序處理
應(yīng)用程序收到數(shù)據(jù)后,通過解析數(shù)據(jù)知道了發(fā)送端請(qǐng)求的網(wǎng)頁內(nèi)容,然后按照 HTTP 協(xié)議進(jìn)行后續(xù)數(shù)據(jù)交互。
網(wǎng)絡(luò)構(gòu)成
搭建一套網(wǎng)絡(luò)涉及各種線纜和網(wǎng)絡(luò)設(shè)備。下面介紹一些常見的硬件設(shè)備。
網(wǎng)絡(luò)構(gòu)成要素 主要設(shè)備及作用表通信介質(zhì)
主機(jī)可以通過有線線纜進(jìn)行連接。有線線纜有雙絞線、光纖、串口線等。根據(jù)網(wǎng)絡(luò)接口選擇對(duì)應(yīng)的線纜。傳輸介質(zhì)還可以被分為電波、微波等不同類型的電磁波。
網(wǎng)卡
主機(jī)連接網(wǎng)絡(luò)時(shí),必須要使用網(wǎng)卡??梢允怯芯€網(wǎng)卡,用來連接有線網(wǎng)絡(luò),也可以是無線網(wǎng)卡連接 WiFi 網(wǎng)絡(luò)。每塊網(wǎng)卡都有一個(gè)唯一的 MAC 地址,也叫做硬件地址或物理地址。
二層交換機(jī)
二層交換機(jī)二層交換機(jī)位于 OSI 模型的第 2 層(數(shù)據(jù)鏈路層)。它能夠識(shí)別數(shù)據(jù)鏈路層中的數(shù)據(jù)幀,并將幀轉(zhuǎn)發(fā)給相連的另一個(gè)端口。
數(shù)據(jù)幀中有一個(gè)數(shù)據(jù)位叫做 FCS ,用以校驗(yàn)數(shù)據(jù)是否正確送達(dá)目的地。二層交換機(jī)通過檢查這個(gè)值,將損壞的數(shù)據(jù)丟棄。
二層交換機(jī)根據(jù) MAC 地址自學(xué)機(jī)制判斷是否需要轉(zhuǎn)發(fā)數(shù)據(jù)幀。這類功能也是數(shù)據(jù)鏈路層所具有的功能。
路由器 / 三層交換機(jī)
路由器路由器是在 OSI 模型的第 3 層(網(wǎng)絡(luò)層)上連接兩個(gè)網(wǎng)絡(luò)、并對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)的設(shè)備。二層交換機(jī)是根據(jù) MAC 地址進(jìn)行處理,而路由器 / 三層交換機(jī)則是根據(jù) IP 地址進(jìn)行處理的。因此 TCP/IP 中網(wǎng)絡(luò)層的地址就成為了 IP 地址。
路由器可以連接不同的數(shù)據(jù)鏈路。比如連接兩個(gè)以太網(wǎng),或者連接一個(gè)以太網(wǎng)與一個(gè)無線網(wǎng)。家庭里面常見的無線路由器也是路由器的一種。
四層及以上交換機(jī)
四層及以上交換機(jī)負(fù)責(zé)處理OSI模型中從傳輸層至應(yīng)用層的數(shù)據(jù)。例如,下載和視頻網(wǎng)站的服務(wù)器會(huì)用到的負(fù)載均衡設(shè)備,就是四層及以上交換機(jī)的一種。還有廣域網(wǎng)加速器、防火墻等。
end
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請(qǐng)聯(lián)系我們,謝謝!