互聯(lián)網(wǎng)課堂
Internet classroom

東營(yíng)網(wǎng)絡(luò)公司:細(xì)解網(wǎng)絡(luò)結(jié)構(gòu)

發(fā)布時(shí)間:2023-03-18 瀏覽次數(shù):
網(wǎng)絡(luò)是我們每天都在用的,那么你知道關(guān)于網(wǎng)絡(luò)的結(jié)構(gòu)嗎,下面東營(yíng)網(wǎng)絡(luò)公司的小編就帶大家細(xì)解一下網(wǎng)絡(luò)結(jié)構(gòu)。
一、網(wǎng)絡(luò) 7 層架構(gòu)

7 層模型主要包括:

①物理層:主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類(lèi)型、光纖的接口類(lèi)型、各種傳輸介質(zhì)的傳輸速率等。它的主要作用是傳輸比特流(就是由 1、0 轉(zhuǎn)化為電流強(qiáng)弱來(lái)進(jìn)行傳輸,到達(dá)目的地后在轉(zhuǎn)化為 1、0,也就是我們常說(shuō)的 模數(shù)轉(zhuǎn)換與數(shù)模轉(zhuǎn)換 )。這一層的數(shù)據(jù)叫做比特;

②數(shù)據(jù)鏈路層:主要將從物理層接收的數(shù)據(jù)進(jìn)行 MAC 地址(網(wǎng)卡的地址)的封裝與解封裝 。常把這 一層的數(shù)據(jù)叫做幀。在這一層工作的 設(shè)備是交換 機(jī),數(shù)據(jù)通過(guò)交換機(jī)來(lái)傳輸。

③網(wǎng)絡(luò)層:主要將從下層接收到的數(shù)據(jù)進(jìn)行 IP 地址 (例 192.168.0.1) 的封裝與解封 裝。在這一層工 作的設(shè)備是 路由器 ,常把這一層的數(shù)據(jù)叫做數(shù)據(jù)包。

④傳輸層:定義了一些 傳輸數(shù)據(jù)的協(xié)議和端口號(hào) (WWW 端口 80 等)如: TCP (傳輸控制協(xié)議, 傳輸效率低,可靠性強(qiáng),用于傳輸可靠性要求高,數(shù)據(jù)量大的數(shù)據(jù)), UDP (用戶數(shù)據(jù)報(bào)協(xié)議, 與 TCP 特性恰恰相反,用于傳輸可靠性要求不高,數(shù)據(jù)量小的數(shù)據(jù),如 QQ 聊天數(shù)據(jù)就是通過(guò)這 種方式傳輸?shù)模?主要是將從下層接收的數(shù)據(jù)進(jìn)行分段進(jìn)行傳輸,到達(dá)目的地址后在進(jìn)行重組。 常常把這一層數(shù)據(jù)叫做段。

⑤會(huì)話層:通過(guò)傳輸層(端口號(hào):傳輸端口與接收端口) 建立數(shù)據(jù)傳輸?shù)耐?。主要在你的系統(tǒng)之間 發(fā)起會(huì)話或或者接受會(huì)話請(qǐng)求(設(shè)備之間需要互相認(rèn)識(shí)可以是 IP 也可以是 MAC 或者是主名)

⑥表示層:主要是進(jìn)行對(duì)接收的數(shù)據(jù)進(jìn)行 解釋、加密與解密、壓縮與解壓縮 等(也就是把計(jì)算機(jī)能夠 識(shí)別的東西轉(zhuǎn)換成人能夠能識(shí)別的東西(如圖片、聲音等))

⑦應(yīng)用層: 主要是一些終端的應(yīng)用,比如說(shuō)FTP(各種文件下載),WEB(IE瀏覽),QQ之類(lèi)的(你 就把它理解成我們?cè)陔娔X屏幕上可以看到的東西,就是終端應(yīng)用)


二、TCP/IP原理
TCP/IP 協(xié)議不是 TCP 和 IP 這兩個(gè)協(xié)議的合稱,而是指因特網(wǎng)整個(gè) TCP/IP 協(xié)議族。從協(xié)議分層
模型方面來(lái)講,TCP/IP 由四個(gè)層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。

①網(wǎng)絡(luò)接口層
主機(jī)必須使用某種協(xié)議與網(wǎng)絡(luò)相連,常見(jiàn)的協(xié)議有ARP、PARP,ARP協(xié)議用于當(dāng)我們知道目標(biāo)主機(jī)的IP地址卻不知道MAC地址時(shí),請(qǐng)求得到MAC地址的回應(yīng),RAPR則是反向ARP,當(dāng)我們知道目標(biāo)主機(jī)的MAC地址卻不知道IP地址則需要用到RARP協(xié)議;

②網(wǎng)絡(luò)層
其功能是使主機(jī)可以把分組發(fā)往任何網(wǎng)
絡(luò),并使分組獨(dú)立地傳向目標(biāo)。這些分組可能經(jīng)由不同的網(wǎng)絡(luò),到達(dá)的順序和發(fā)送的順序也
可能不同。高層如果需要順序收發(fā),那么就必須自行處理對(duì)分組的排序。 互聯(lián)網(wǎng)層使用因特
網(wǎng)協(xié)議(IP,Internet Protocol) ;

③傳輸層
使源端和目的端機(jī)器上的對(duì)等實(shí)體可以進(jìn)行會(huì)話。 在這一層定義了
兩個(gè)端到端的協(xié)議 :傳輸控制協(xié)議(TCP,Transmission Control Protocol)和用戶數(shù)據(jù)報(bào)協(xié)
議(UDP,User Datagram Protocol)。 TCP 是面向連接的協(xié)議,它提供可靠的報(bào)文傳輸和對(duì)
上層應(yīng)用的連接服務(wù)。為此,除了基本的數(shù)據(jù)傳輸外,它還有可靠性保證、流量控制、多路
復(fù)用、優(yōu)先權(quán)和安全性控制等功能。 UDP 是面向無(wú)連接的不可靠傳輸?shù)膮f(xié)議,主要用于不需
要 TCP 的排序和流量控制等功能的應(yīng)用程序;

④應(yīng)用層
包含所有的高層協(xié)議,包括: 虛擬終端協(xié)議(TELNET,
TELecommunications NETwork)、文件傳輸協(xié)議(FTP,F(xiàn)ile Transfer Protocol)、電子郵件
傳輸協(xié)議(SMTP,Simple Mail Transfer Protocol)、域名服務(wù)(DNS,Domain Name Service)、網(wǎng)上新聞傳輸協(xié)議(NNTP,Net News Transfer Protocol)和超文本傳送協(xié)議 (HTTP,HyperText Transfer Protocol)等。

三、TCP三次握手、四次揮手
三次握手
第一次握手:主機(jī) A 發(fā)送位碼為 syn=1, 隨機(jī)產(chǎn)生 seq number=1234567 的數(shù)據(jù)包到服務(wù)器,主機(jī) B 由 SYN=1 知道,A 要求建立聯(lián)機(jī);

第二次握手:主機(jī) B 收到請(qǐng)求后要確認(rèn)聯(lián)機(jī)信息,向 A 發(fā) 送 ack number=( 主 機(jī) A 的
seq+1 ), syn=1,ack=1,隨機(jī)產(chǎn)生 seq=7654321 的包

第三次握手: 主機(jī) A 收到后檢查 ack number 是否正確 ,即第一次發(fā)送的 seq number+1,以及位碼
ack 是否為 1,若正確, 主機(jī) A 會(huì)再發(fā)送 ack number=(主機(jī) B 的 seq+1),ack=1,主機(jī) B 收到后確認(rèn)seq 值與 ack=1 則連接建立成功。

四次揮手
TCP 建立連接要進(jìn)行三次握手,而斷開(kāi)連接要進(jìn)行四次。這是由于 TCP 的半關(guān)閉造成的 。因?yàn)?TCP 連 接是全雙工的(即數(shù)據(jù)可在兩個(gè)方向上同時(shí)傳遞)所以進(jìn)行關(guān)閉時(shí)每個(gè)方向上都要單獨(dú)進(jìn)行關(guān)閉。這個(gè)單 方向的關(guān)閉就叫半關(guān)閉。當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù),就發(fā)送一個(gè) FIN 來(lái)向另一方通告將要終止這個(gè)方向的連接。

①關(guān)閉客戶端到服務(wù)器的連接:首先客戶端 A 發(fā)送一個(gè) FIN,用來(lái)關(guān)閉客戶到服務(wù)器的數(shù)據(jù)傳送,
然后等待服務(wù)器的確認(rèn)。其中終止標(biāo)志位 FIN=1,序列號(hào) seq=u;

② 服務(wù)器收到這個(gè) FIN,它發(fā)回一個(gè) ACK,確認(rèn)號(hào) ack 為收到的序號(hào)加 1;

③ 關(guān)閉服務(wù)器到客戶端的連接:也是發(fā)送一個(gè) FIN 給客戶端;

④ 客戶段收到 FIN 后,并發(fā)回一個(gè) ACK 報(bào)文確認(rèn),并將確認(rèn)序號(hào) seq 設(shè)置為收到序號(hào)加 1;

首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方執(zhí)行被動(dòng)關(guān)閉。

主機(jī) A 發(fā)送 FIN 后,進(jìn)入終止等待狀態(tài), 服務(wù)器 B 收到主機(jī) A 連接釋放報(bào)文段后,就立即
給主機(jī) A 發(fā)送確認(rèn),然后服務(wù)器 B 就進(jìn)入 close-wait 狀態(tài),此時(shí) TCP 服務(wù)器進(jìn)程就通知高
層應(yīng)用進(jìn)程,因而從 A 到 B 的連接就釋放了。此時(shí)是“半關(guān)閉”狀態(tài)。即 A 不可以發(fā)送給
B,但是 B 可以發(fā)送給 A。此時(shí),若 B 沒(méi)有數(shù)據(jù)報(bào)要發(fā)送給 A 了,其應(yīng)用進(jìn)程就通知 TCP 釋
放連接,然后發(fā)送給 A 連接釋放報(bào)文段,并等待確認(rèn)。A 發(fā)送確認(rèn)后,進(jìn)入 time-wait,注
意,此時(shí) TCP 連接還沒(méi)有釋放掉,然后經(jīng)過(guò)時(shí)間等待計(jì)時(shí)器設(shè)置的 2MSL 后,A 才進(jìn)入到
close 狀態(tài)。

四、HTTP\HTTPS
HTTP
HTTP 是一個(gè)無(wú)狀態(tài)的協(xié)議。無(wú)狀態(tài)是指客戶機(jī)(Web 瀏覽器)和服務(wù)器之間不需要建立持久的連接, 這意味著當(dāng)一個(gè)客戶端向服務(wù)器端發(fā)出請(qǐng)求,然后服務(wù)器返回響應(yīng)(response),連接就被關(guān)閉了,在服 務(wù)器端不保留連接的有關(guān)信息.HTTP 遵循請(qǐng)求(Request)/應(yīng)答(Response)模型??蛻魴C(jī)(瀏覽器)向 服務(wù)器發(fā)送請(qǐng)求,服務(wù)器處理請(qǐng)求并返回適當(dāng)?shù)膽?yīng)答。所有 HTTP 連接都被構(gòu)造成一套請(qǐng)求和應(yīng)答。

詳細(xì)流程解析
比如客戶端瀏覽器請(qǐng)求 http://localhost.com:8080/index.html 這個(gè)頁(yè)面

①地址解析
協(xié)議名:http

主機(jī)名:localhost.com

端口:8080

對(duì)象路徑:/index.html

在這一步,需要域名系統(tǒng) DNS 解析域名 localhost.com,得主機(jī)的 IP 地址;

②封裝http請(qǐng)求數(shù)據(jù)包

把以上部分結(jié)合本機(jī)自己的信息,封裝成一個(gè) HTTP 請(qǐng)求數(shù)據(jù)包;

③封裝成TCP包并建立連接

封裝成 TCP 包,建立 TCP 連接(TCP 的三次握手);

④客戶機(jī)發(fā)送請(qǐng)求命令

客戶機(jī)發(fā)送請(qǐng)求命令:建立連接后,客戶機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是 MIME 信息包括請(qǐng)求修飾符、客戶機(jī)信息和可內(nèi)容;

⑤服務(wù)器響應(yīng)

服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息, 其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是 MIME 信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容 ;

⑥服務(wù)器關(guān)閉 TCP 連接

服務(wù)器關(guān)閉 TCP 連接:一般情況下,一旦 Web 服務(wù)器向?yàn)g覽器發(fā)送了請(qǐng)求數(shù)據(jù),它就要關(guān)閉 TCP 連 接,然后如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼 Connection:keep-alive,TCP 連接在發(fā)送 后將仍然保持打開(kāi)狀態(tài) ,于是,瀏覽器可以繼續(xù)通過(guò)相同的連接發(fā)送請(qǐng)求。保持連接節(jié)省了為每個(gè)請(qǐng)求 建立新連接所需的時(shí)間,還節(jié)約了網(wǎng)絡(luò)帶寬。

HTTPS
HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標(biāo)的
HTTP 通道,簡(jiǎn)單講是 HTTP 的安全版。即 HTTP 下加入 SSL 層,HTTPS 的安全基礎(chǔ)是 SSL。其所用 的端口號(hào)是 443。

過(guò)程大致如下:

①建立連接獲取證書(shū)

SSL 客戶端通過(guò) TCP 和服務(wù)器建立連接之后(443 端口),并且在一般的 tcp 連接協(xié)商(握
手)過(guò)程中請(qǐng)求證書(shū)。即客戶端發(fā)出一個(gè)消息給服務(wù)器,這個(gè)消息里面包含了自己可實(shí)現(xiàn)的算
法列表和其它一些需要的消息,SSL 的服務(wù)器端會(huì)回應(yīng)一個(gè)數(shù)據(jù)包,這里面確定了這次通信所
需要的算法,然后服務(wù)器向客戶端返回證書(shū)。(證書(shū)里面包含了服務(wù)器信息:域名,申請(qǐng)證書(shū)
的公司,公共秘鑰);

②證書(shū)驗(yàn)證

Client 在收到服務(wù)器返回的證書(shū)后,判斷簽發(fā)這個(gè)證書(shū)的公共簽發(fā)機(jī)構(gòu),并使用這個(gè)機(jī)構(gòu)的公
共秘鑰確認(rèn)簽名是否有效,客戶端還會(huì)確保證書(shū)中列出的域名就是它正在連接的域名;

③數(shù)據(jù)加密與傳輸

如果確認(rèn)證書(shū)有效,那么生成對(duì)稱秘鑰并使用服務(wù)器的公共秘鑰進(jìn)行加密。然后發(fā)送給服務(wù)
器,服務(wù)器使用它的私鑰對(duì)它進(jìn)行解密,這樣兩臺(tái)計(jì)算機(jī)可以開(kāi)始進(jìn)行對(duì)稱加密進(jìn)行通信。