萬(wàn)字長(zhǎng)文帶你圖解計(jì)算機(jī)網(wǎng)絡(luò)(超全)?。?/h1>
時(shí)間:2021-03-03 22:53:29
關(guān)鍵字:
計(jì)算機(jī)網(wǎng)絡(luò)
程序員
TCP
手機(jī)看文章掃描二維碼
隨時(shí)隨地手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
寫(xiě)在前面
程序員不要總停留在應(yīng)用層面的CRUD,對(duì)于計(jì)算機(jī)底層的一些知識(shí),也是需要了解的。很多小伙伴出去面試在計(jì)算機(jī)網(wǎng)絡(luò)方面碰了一鼻子灰,今天,我就為大家分享下有關(guān)計(jì)算機(jī)網(wǎng)絡(luò)的知識(shí),希望對(duì)你有實(shí)質(zhì)性的幫助!
網(wǎng)絡(luò)七層架構(gòu)(ISO/OSI協(xié)議參考模型)
- 物理層:主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類型、光纖的接口類型、各種傳輸介質(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ī)名)
- 表示層:主要是進(jìn)行對(duì)接收的數(shù)據(jù)進(jìn)行解釋、加密與解密、壓縮與解壓縮等(也就是把計(jì)算機(jī)能夠識(shí)別的東西轉(zhuǎn)換成人能夠能識(shí)別的東西(如圖片、聲音等))
- 應(yīng)用層:主要是一些終端的應(yīng)用,比如說(shuō)FTP(各種文件下載),WEB(IE瀏覽),QQ之類的(你就把它理解成我們?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ò)訪問(wèn)層(Network Access Layer)
網(wǎng)絡(luò)訪問(wèn)層(Network Access Layer)在 TCP/IP 參考模型中并沒(méi)有詳細(xì)描述,只是指出主機(jī)必須使用某種協(xié)議與網(wǎng)絡(luò)相連。
網(wǎng)絡(luò)層(Internet Layer)
網(wǎng)絡(luò)層(Internet Layer)是整個(gè)體系結(jié)構(gòu)的關(guān)鍵部分,其功能是使主機(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)。
傳輸層(Tramsport Layer-TCP/UDP)
傳輸層(Tramsport Layer)使源端和目的端機(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)用層(Application Layer)
應(yīng)用層(Application Layer)包含所有的高層協(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)等。
四層協(xié)議和對(duì)應(yīng)的標(biāo)準(zhǔn)七層協(xié)議的關(guān)系
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)。
四次揮手
(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è)方向的連接。
(2)關(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
(3)服務(wù)器收到這個(gè) FIN,它發(fā)回一個(gè) ACK,確認(rèn)號(hào) ack 為收到的序號(hào)加 1。
(4)關(guān)閉服務(wù)器到客戶端的連接:也是發(fā)送一個(gè) FIN 給客戶端。
(5)客戶段收到 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)。
為什么會(huì)有TIME_WAIT狀態(tài):
- 確保有足夠的時(shí)間讓對(duì)方收到ACK包
- 避免新舊連接混淆
TCP/IP狀態(tài)
LISTENING(listening)
FTP服務(wù)啟動(dòng)后首先處于偵聽(tīng)(LISTENING)狀態(tài)。
ESTABLISHED(established)
建立連接。表示兩臺(tái)機(jī)器正在通信。
CLOSE_WAIT
對(duì)方主動(dòng)關(guān)閉連接或者網(wǎng)絡(luò)異常導(dǎo)致連接中斷,這時(shí)我方的狀態(tài)會(huì)變成CLOSE_WAIT,此時(shí)我方要調(diào)用close()來(lái)使得連接正確關(guān)閉。
TIME_WAIT
我方主動(dòng)調(diào)用close()斷開(kāi)連接,收到對(duì)方確認(rèn)后狀態(tài)變?yōu)門IME_WAIT。
SYN_SENT
SYN_SENT狀態(tài)表示請(qǐng)求連接,當(dāng)你要訪問(wèn)其它的計(jì)算機(jī)的服務(wù)時(shí)首先要發(fā)個(gè)同步信號(hào)給該端口,此時(shí)狀態(tài)為SYN_SENT,如果連接成功了就變?yōu)?ESTABLISHED。
TCP 長(zhǎng)連接與短連接
長(zhǎng)連接和短連接使用原因
當(dāng)網(wǎng)絡(luò)通信時(shí)采用TCP協(xié)議時(shí),在真正的讀寫(xiě)操作之前,server與client之間必須建立一個(gè)連接,當(dāng)讀寫(xiě)操作完成后,雙方不再需要這個(gè)連接時(shí)它們可以釋放這個(gè)連接,連接的建立是需要三次握手的,而釋放則需要4次揮手,所以說(shuō)每個(gè)連接的建立都是需要資源消耗和時(shí)間消耗的。
HTTP的長(zhǎng)連接和短連接
HTTP的長(zhǎng)連接和短連接本質(zhì)上是TCP長(zhǎng)連接和短連接。
在HTTP/1.0中默認(rèn)使用短連接。也就是說(shuō),客戶端和服務(wù)器每進(jìn)行一次HTTP操作,就建立一次連接,任務(wù)結(jié)束就中斷連接。當(dāng)客戶端瀏覽器訪問(wèn)的某個(gè)HTML或其他類型的Web頁(yè)中包含有其他的Web資源(如JavaScript文件、圖像文件、CSS文件等),每遇到這樣一個(gè)Web資源,瀏覽器就會(huì)重新建立一個(gè)HTTP會(huì)話。
而從HTTP/1.1起,默認(rèn)使用長(zhǎng)連接,用以保持連接特性。使用長(zhǎng)連接的HTTP協(xié)議,會(huì)在響應(yīng)頭加入這行代碼:
Connection:keep-alive
在使用長(zhǎng)連接的情況下,當(dāng)一個(gè)網(wǎng)頁(yè)打開(kāi)完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,客戶端再次訪問(wèn)這個(gè)服務(wù)器時(shí),會(huì)繼續(xù)使用這一條已經(jīng)建立的連接。Keep-Alive不會(huì)永久保持連接,它有一個(gè)保持時(shí)間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間。實(shí)現(xiàn)長(zhǎng)連接需要客戶端和服務(wù)端都支持長(zhǎng)連接。
TCP—長(zhǎng)連接
所謂長(zhǎng)連接,指在一個(gè)TCP連接上可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)包,在TCP連接保持期間,如果沒(méi)有數(shù)據(jù)包發(fā)送,需要雙方發(fā)檢測(cè)包以維持此連接,一般需要自己做在線維持(不發(fā)生RST包和四次揮手)。
連接→數(shù)據(jù)傳輸→保持連接(心跳)→數(shù)據(jù)傳輸→保持連接(心跳)→……→關(guān)閉連接(一個(gè)TCP連接通道多個(gè)讀寫(xiě)通信);這就要求長(zhǎng)連接在沒(méi)有數(shù)據(jù)通信時(shí),定時(shí)發(fā)送數(shù)據(jù)包(心跳),以維持連接狀態(tài);
TCP?;罟δ?,?;罟δ苤饕獮榉?wù)器應(yīng)用提供,服務(wù)器應(yīng)用希望知道客戶主機(jī)是否崩潰,從而可以代表客戶使用資源。如果客戶已經(jīng)消失,使得服務(wù)器上保留一個(gè)半開(kāi)放的連接,而服務(wù)器又在等待來(lái)自客戶端的數(shù)據(jù),則服務(wù)器將應(yīng)遠(yuǎn)等待客戶端的數(shù)據(jù),?;罟δ芫褪窃噲D在服務(wù)器端檢測(cè)到這種半開(kāi)放的連接。
TCP—短連接
短連接是指通信雙方有數(shù)據(jù)交互時(shí),就建立一個(gè)TCP連接,數(shù)據(jù)發(fā)送完成后,則斷開(kāi)此TCP連接(管理起來(lái)比較簡(jiǎn)單,存在的連接都是有用的連接,不需要額外的控制手段);
連接→數(shù)據(jù)傳輸→關(guān)閉連接;
應(yīng)用場(chǎng)景
長(zhǎng)連接: 多用于操作頻繁(讀寫(xiě)),點(diǎn)對(duì)點(diǎn)的通訊,而且連接數(shù)不能太多情況,。每個(gè)TCP連接都需要三步握手,這需要時(shí)間,如果每個(gè)操作都是先連接,再操作的話那么處理速度會(huì)降低很多,所以每個(gè)操作完后都不斷開(kāi),次處理時(shí)直接發(fā)送數(shù)據(jù)包就OK了,不用建立TCP連接。
例如:數(shù)據(jù)庫(kù)的連接用長(zhǎng)連接, 如果用短連接頻繁的通信會(huì)造成socket錯(cuò)誤,而且頻繁的socket 創(chuàng)建也是對(duì)資源的浪費(fèi)。
短連接: 像WEB網(wǎng)站的http服務(wù)一般都用短鏈接(http1.0只支持短連接,1.1keep alive 帶時(shí)間,操作次數(shù)限制的長(zhǎng)連接),因?yàn)殚L(zhǎng)連接對(duì)于服務(wù)端來(lái)說(shuō)會(huì)耗費(fèi)一定的資源,而像WEB網(wǎng)站這么頻繁的成千上萬(wàn)甚至上億客戶端的連接用短連接會(huì)更省一些資源,如果用長(zhǎng)連接,而且同時(shí)有成千上萬(wàn)的用戶,如果每個(gè)用戶都占用一個(gè)連接的話,那可想而知吧。所以并發(fā)量大,但每個(gè)用戶無(wú)需頻繁操作情況下需用短連好;
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)答。
地址解析
如用客戶端瀏覽器請(qǐng)求這個(gè)頁(yè)面:http://www.lydms.com:8080/index.htm 從中分解出協(xié)議名、主機(jī)名、端口、對(duì)象路徑等部分,對(duì)于我們的這個(gè)地址,解析得到的結(jié)果如下:協(xié)議名:http 主機(jī)名:www.lydms.com 端口:8080 對(duì)象路徑:/index.htm 在這一步,需要域名系統(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 連接
一般情況下,一旦 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ò)程大致如下:
SSL/TLS之間的關(guān)系
SSL 是英文“Secure Sockets Layer”的縮寫(xiě),中文叫做“安全套接層”。它是在上世紀(jì)90年代中期,由網(wǎng)景公司設(shè)計(jì)的。為啥要發(fā)明 SSL 這個(gè)協(xié)議呢?因?yàn)樵然ヂ?lián)網(wǎng)上使用的 HTTP 協(xié)議是明文的,存在很多缺點(diǎn)——比如傳輸內(nèi)容會(huì)被偷窺(嗅探)和篡改。發(fā)明 SSL 協(xié)議,就是為了解決這些問(wèn)題。
到了1999年,SSL 因?yàn)閼?yīng)用廣泛,已經(jīng)成為互聯(lián)網(wǎng)上的事實(shí)標(biāo)準(zhǔn)。IETF 就在那年把 SSL 標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化之后的名稱改為 TLS(是“Transport Layer Security”的縮寫(xiě)),中文叫做“傳輸層安全協(xié)議”。
很多人都把這兩者并列稱呼(SSL/TLS),因?yàn)檫@兩者可以視作同一個(gè)東西的不同階段。
建立連接獲取證書(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)行通信。
CDN 原理
CND 一般包含分發(fā)服務(wù)系統(tǒng)、負(fù)載均衡系統(tǒng)和管理系統(tǒng)。
分發(fā)服務(wù)系統(tǒng)
其基本的工作單元就是各個(gè) Cache 服務(wù)器。負(fù)責(zé)直接響應(yīng)用戶請(qǐng)求,將內(nèi)容快速分發(fā)到用戶;同時(shí)還負(fù)責(zé)內(nèi)容更新,保證和源站內(nèi)容的同步。根據(jù)內(nèi)容類型和服務(wù)種類的不同,分發(fā)服務(wù)系統(tǒng)分為多個(gè)子服務(wù)系統(tǒng),如:網(wǎng)頁(yè)加速服務(wù)、流媒體加速服務(wù)、應(yīng)用加速服務(wù)等。每個(gè)子服務(wù)系統(tǒng)都是一個(gè)分布式的服務(wù)集群,由功能類似、地域接近的分布部署的 Cache 集群組成。在承擔(dān)內(nèi)容同步、更新和響應(yīng)用戶請(qǐng)求之外,分發(fā)服務(wù)系統(tǒng)還需要向上層的管理調(diào)度系統(tǒng)反饋各個(gè)Cache 設(shè)備的健康狀況、響應(yīng)情況、內(nèi)容緩存狀況等,以便管理調(diào)度系統(tǒng)能夠根據(jù)設(shè)定的策略決定由哪個(gè) Cache 設(shè)備來(lái)響應(yīng)用戶的請(qǐng)求。
負(fù)載均衡系統(tǒng)
負(fù)載均衡系統(tǒng)是整個(gè) CDN 系統(tǒng)的中樞。負(fù)責(zé)對(duì)所有的用戶請(qǐng)求進(jìn)行調(diào)度,確定提供給用戶的最終訪問(wèn)地址。使用分級(jí)實(shí)現(xiàn)。最基本的兩極調(diào)度體系包括全局負(fù)載均衡(GSLB)和本地負(fù)載均衡(SLB)。GSLB 根據(jù)用戶地址和用戶請(qǐng)求的內(nèi)容,主要根據(jù)就近性原則,確定向用戶服務(wù)的節(jié)點(diǎn)。一般通過(guò) DNS解析或者應(yīng)用層重定向(Http 3XX 重定向)的方式實(shí)現(xiàn)。SLB 主要負(fù)責(zé)節(jié)點(diǎn)內(nèi)部的負(fù)載均衡。當(dāng)用戶請(qǐng)求從 GSLB 調(diào)度到 SLB 時(shí),SLB 會(huì)根據(jù)節(jié)點(diǎn)內(nèi)各個(gè)Cache 設(shè)備的工作狀況和內(nèi)容分布情況等對(duì)用戶請(qǐng)求重定向。SLB 的實(shí)現(xiàn)有四層調(diào)度(LVS)、七層調(diào)度(Nginx)和鏈路負(fù)載調(diào)度等。
管理系統(tǒng)
分為運(yùn)營(yíng)管理和網(wǎng)絡(luò)管理子系統(tǒng)。網(wǎng)絡(luò)管理系統(tǒng)實(shí)現(xiàn)對(duì) CDN 系統(tǒng)的設(shè)備管理、拓?fù)涔芾?、鏈路監(jiān)控和故障管理,為管理員提供對(duì)全網(wǎng)資源的可視化的集中管理,通常用 web 方式實(shí)現(xiàn)。運(yùn)營(yíng)管理是對(duì) CDN 系統(tǒng)的業(yè)務(wù)管理,負(fù)責(zé)處理業(yè)務(wù)層面的與外界系統(tǒng)交互所必須的一些收集、整理、交付工作。
包括用戶管理、產(chǎn)品管理、計(jì)費(fèi)管理、統(tǒng)計(jì)分析等。
TCP/IP協(xié)議族
TCP/IP只提供無(wú)連接、不可靠的服務(wù)。
傳輸之前需要進(jìn)行三次握手。
IP的主要功能包括將上層數(shù)據(jù)(如TCP、UDP數(shù)據(jù))或者同層的其它數(shù)據(jù)(如ICMP數(shù)據(jù))封裝到IP數(shù)據(jù)報(bào)中,將IP數(shù)據(jù)報(bào)傳送到最終目的地;為了使數(shù)據(jù)能夠在鏈路層上進(jìn)行傳輸,對(duì)數(shù)據(jù)進(jìn)行分段,確定數(shù)據(jù)報(bào)到達(dá)其它網(wǎng)絡(luò)中的目的地的路徑。
應(yīng)用層協(xié)議—文件傳輸服務(wù)(FTP)
用來(lái)在計(jì)算機(jī)之間傳輸文件。
實(shí)際Internet的FTP服務(wù)是一種匿名(anonymous)FTP服務(wù),設(shè)置一個(gè)特殊的用戶名-anonymous,供公眾使用。
匿名登錄到FTP服務(wù)器后,其工作方式與常規(guī)FTP相同。通常處于安全目的,大多數(shù)匿名FTP服務(wù)器只允許下載,不允許上傳文件。
FTP在客戶端到服務(wù)器建立2條TCP連接,一條是控制連接,主要用于傳輸命令和參數(shù)(端口21);另一條是數(shù)據(jù)連接,主要用于傳輸文件(端口號(hào)20)。
應(yīng)用層協(xié)議—遠(yuǎn)程登錄協(xié)議(Telnet)
遠(yuǎn)程登錄服務(wù)實(shí)在Telnet協(xié)議的支持下,將用戶計(jì)算機(jī)和遠(yuǎn)程主機(jī)連接起來(lái),在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行程序,用戶輸入的信息通過(guò)Telnet協(xié)議發(fā)送給遠(yuǎn)程主機(jī),主機(jī)在TCP端口監(jiān)聽(tīng)用戶請(qǐng)求,并處理后,將結(jié)果通過(guò)Telnet協(xié)議返回給客戶。客戶再經(jīng)過(guò)適當(dāng)?shù)霓D(zhuǎn)換顯示在計(jì)算機(jī)屏幕上。因?yàn)槭褂肨elnet命令進(jìn)行遠(yuǎn)程登錄,所有稱為Telnet遠(yuǎn)程登錄。
由客戶端軟件、服務(wù)器軟件以及Telnet通用協(xié)議三部分組成。
應(yīng)用層協(xié)議—電子郵件協(xié)議(SMTP)
電子郵件(E-mail)利用計(jì)算機(jī)進(jìn)行信息交換的電子媒體信件。
基于客戶端/服務(wù)器模式,有E-mail客戶端軟件、E-mail服務(wù)器、通信協(xié)議三部分組成。發(fā)送郵件,首先到達(dá)自己注冊(cè)的郵件服務(wù)器主機(jī),再在網(wǎng)絡(luò)傳輸中經(jīng)過(guò)多個(gè)計(jì)算機(jī)和路由中轉(zhuǎn)到達(dá)目的地的郵件服務(wù)器主機(jī),進(jìn)入收件人的電子郵箱,最后郵件的接收者上網(wǎng)并啟動(dòng)電子郵件管理程序,會(huì)自動(dòng)下載到自己計(jì)算機(jī),完成接受郵件。
SMTP:簡(jiǎn)單郵件傳輸協(xié)議
MIME:Internet郵件擴(kuò)充協(xié)議
PEM:增強(qiáng)私密郵件保護(hù)協(xié)議
POP:來(lái)保管用戶未能及時(shí)取走的郵件,簡(jiǎn)單的純文本協(xié)議,每次傳輸以正規(guī)E-mail為單位,不提供部分傳輸。
傳輸層協(xié)議—TCP
在IP提供的不可靠數(shù)據(jù)服務(wù)的基礎(chǔ)上為應(yīng)用程序提供一個(gè)可靠的、面向連接的、全雙工的數(shù)據(jù)傳輸服務(wù)。TCP在源主機(jī)和目的之間建立和關(guān)閉連接操作是,均需要通過(guò)三次握手來(lái)確認(rèn)建立和關(guān)閉是否成功。TCP雖然提供了一個(gè)可靠的數(shù)據(jù)傳輸服務(wù),但是以犧牲通信量來(lái)實(shí)現(xiàn)的。
**TCP采用了重發(fā)技術(shù):**發(fā)送數(shù)據(jù)時(shí),啟動(dòng)定時(shí)器,在規(guī)定時(shí)間內(nèi)沒(méi)有收到確認(rèn)信息,就重新發(fā)送數(shù)據(jù)包。
傳輸層協(xié)議—UDP
用戶數(shù)據(jù)報(bào)協(xié)議是一種不可靠、無(wú)連接的協(xié)議,與同層面向連接的TCP相比,UDP是一種無(wú)連接的協(xié)議(無(wú)錯(cuò)誤檢測(cè)功能)。TCP有助于提供可靠的連接,UDP有助于提高傳輸?shù)母咚俾市?。不?fù)責(zé)重新發(fā)送丟失的包,不對(duì)接收的數(shù)據(jù)進(jìn)行排序,不消除重復(fù)的IP數(shù)據(jù)報(bào),不負(fù)責(zé)建立和終止連接。(都是UDP應(yīng)用程序負(fù)責(zé)的)
TCP:交互式會(huì)話應(yīng)用程序(FTP等)。
UDP:自己進(jìn)行錯(cuò)誤檢測(cè)、不需要檢測(cè)錯(cuò)誤(DNS、SNMP)。
網(wǎng)際層協(xié)議—IP
IP只提供無(wú)連接、不可靠的服務(wù),把差錯(cuò)檢測(cè)和流量控制之類的服務(wù)授權(quán)給了其他層的協(xié)議。IP的主要功能:
-
將上層數(shù)據(jù)(TCP、UDP數(shù)據(jù))或同層其他數(shù)據(jù)(ICMP數(shù)據(jù))封裝到IP數(shù)據(jù)報(bào)中;
-
將IP數(shù)據(jù)報(bào)傳送到最終目的地;
-
為了使數(shù)據(jù)能夠在鏈路層上進(jìn)行傳輸,對(duì)數(shù)據(jù)進(jìn)行分段;
-
確定數(shù)據(jù)報(bào)到達(dá)其它網(wǎng)絡(luò)中的目的地的路徑。
網(wǎng)際層協(xié)議—ICMP
Internet控制信息協(xié)議,用于發(fā)送查錯(cuò)報(bào)文的協(xié)議。ICMP讓IP更加穩(wěn)固。也是利用IP來(lái)傳送報(bào)文的。ping工具就是利用ICMP報(bào)文進(jìn)行目標(biāo)是否可達(dá)測(cè)試。
5種差錯(cuò)報(bào)文:(源抑制、超時(shí)、目的不可達(dá)、重定向和要求分段)
4種信息報(bào)文:回應(yīng)請(qǐng)求、回應(yīng)應(yīng)答、地址屏蔽碼請(qǐng)求和地址屏蔽碼應(yīng)答。
網(wǎng)際層協(xié)議—ARP和RARP
地址解析協(xié)議(ARP)和反地址解析協(xié)議(RARP)
ARP的作用是將IP地址轉(zhuǎn)為物理地址,RARP的作用是將物理地址轉(zhuǎn)為IP地址。每臺(tái)設(shè)備都有唯一的物理地址(通過(guò)網(wǎng)卡給出),為了屏蔽底層協(xié)議及物理地址上的差異,IP協(xié)議又使用了IP地址。因此,在傳輸過(guò)程中,必須對(duì)IP地址和物理地址進(jìn)行相互轉(zhuǎn)換。
網(wǎng)絡(luò)接口層協(xié)議—以太網(wǎng)(Ethernet IEEE 802.3
Ethernet IEEE 802.3:標(biāo)準(zhǔn)局域網(wǎng),速度10Mps,傳輸介質(zhì)為銅纜。Ethernet IEEE 802.3u:快速以太網(wǎng),速度100Mps,傳輸介質(zhì)為雙絞線。Ethernet IEEE 802.3z:千兆以太網(wǎng),速度1000Mps,傳輸介質(zhì)為光纖或雙絞線。
網(wǎng)絡(luò)接口層協(xié)議—令牌環(huán)網(wǎng)(Ethernet IEEE 802.5)
-
只有擁有令牌才可以發(fā)送數(shù)據(jù)。
-
發(fā)送數(shù)據(jù)時(shí),需要捕獲一個(gè)令牌。
-
令牌不為空,需要等待。
網(wǎng)絡(luò)接口層協(xié)議—光纖分布式數(shù)據(jù)接口(FDDI)
以光纖為傳輸介質(zhì)。
采用雙環(huán)體系結(jié)構(gòu),兩環(huán)上的信息反方向流動(dòng)。雙環(huán)中一環(huán)稱為主環(huán),另一個(gè)環(huán)稱為次環(huán)。正常情況下,主環(huán)傳輸數(shù)據(jù),次環(huán)處于空閑狀態(tài)。
雙環(huán)設(shè)計(jì)的目的是提供高可靠性和穩(wěn)定性。FDDI定義的傳輸介質(zhì)有單模光纖和多模光纖兩種。
網(wǎng)絡(luò)接口層協(xié)議—點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)
主要用于”撥號(hào)上網(wǎng)“這種廣域連接模式。優(yōu)點(diǎn)簡(jiǎn)單、具備用戶驗(yàn)證功能、可以解決IP分配等。為各種主機(jī)、網(wǎng)橋和路由器之間簡(jiǎn)單連接的一種通用解決方案。
利用以太網(wǎng)(Ethernet)資源在以太網(wǎng)上運(yùn)行PPP來(lái)進(jìn)行用戶認(rèn)證接入的方式成為PPPoE。是目前ADSL接入方式中最廣泛的技術(shù)標(biāo)準(zhǔn)。
ATM網(wǎng)絡(luò)撒花姑娘運(yùn)行PPP來(lái)管理用戶再認(rèn)證的方式成為PPPoA。
PPPoA和PPPoE運(yùn)行原理相同,不同的是運(yùn)行環(huán)境的不同。
其他—ADSL(非對(duì)稱用戶數(shù)據(jù)線)
ADSL Modem上網(wǎng)撥號(hào)方式有3中,即專線方式(靜態(tài)IP)、PPPoA和PPPoE。
ADSL獨(dú)享帶寬,安全可靠。費(fèi)用低廉,使用過(guò)去的電話線路,可以分離電話機(jī)和ADSL Modem(上網(wǎng))。
其他—IPv4和IPv6
IPv4:32位二進(jìn)制,能表示IP地址個(gè)數(shù):2^32=42億。
IPv6:128位二級(jí)制,能表示IP地址個(gè)數(shù):2^128=3.4 * 10^38。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!