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