計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識總結(jié)


點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。
作者:Poll的筆記?
鏈接:https://www.cnblogs.com/maybe2030/p/4781555.html
點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。
作者:Poll的筆記?
鏈接:https://www.cnblogs.com/maybe2030/p/4781555.html
閱讀目錄
0. 前言 1. 網(wǎng)絡(luò)層次劃分 2. OSI七層網(wǎng)絡(luò)模型 3. IP地址 4. 子網(wǎng)掩碼及網(wǎng)絡(luò)劃分 5. ARP/RARP協(xié)議 6. 路由選擇協(xié)議 7. TCP/IP協(xié)議 8. UDP協(xié)議 9. DNS協(xié)議 10. NAT協(xié)議 11. DHCP協(xié)議 12. HTTP協(xié)議 13. 一個(gè)舉例
0. 前言
計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議同我們的語言一樣,多種多樣。而ARPA公司于1977年到1979年推出了一種名為ARPANET的網(wǎng)絡(luò)協(xié)議受到了廣泛的熱捧,其中最主要的原因就是它推出了人盡皆知的TCP/IP標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議。目前TCP/IP協(xié)議已經(jīng)成為Internet中的“通用語言”,下圖為不同計(jì)算機(jī)群之間利用TCP/IP進(jìn)行通信的示意圖。

1. 網(wǎng)絡(luò)層次劃分

2. OSI七層網(wǎng)絡(luò)模型
TCP/IP協(xié)議毫無疑問是互聯(lián)網(wǎng)的基礎(chǔ)協(xié)議,沒有它就根本不可能上網(wǎng),任何和互聯(lián)網(wǎng)有關(guān)的操作都離不開TCP/IP協(xié)議。不管是OSI七層模型還是TCP/IP的四層、五層模型,每一層中都要自己的專屬協(xié)議,完成自己相應(yīng)的工作以及與上下層級之間進(jìn)行溝通。由于OSI七層模型為網(wǎng)絡(luò)的標(biāo)準(zhǔn)層次劃分,所以我們以O(shè)SI七層模型為例從下向上進(jìn)行一一介紹。

激活、維持、關(guān)閉通信端點(diǎn)之間的機(jī)械特性、電氣特性、功能特性以及過程特性。該層為上層協(xié)議提供了一個(gè)傳輸數(shù)據(jù)的可靠的物理媒體。簡單的說,物理層確保原始的數(shù)據(jù)可在各種物理媒體上傳輸。物理層記住兩個(gè)重要的設(shè)備名稱,中繼器(Repeater,也叫放大器)和集線器。
2)數(shù)據(jù)鏈路層(Data Link Layer)
數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。為達(dá)到這一目的,數(shù)據(jù)鏈路層必須具備一系列相應(yīng)的功能,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配;以及在兩個(gè)網(wǎng)絡(luò)實(shí)體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放的管理。數(shù)據(jù)鏈路層在不可靠的物理介質(zhì)上提供可靠的傳輸。該層的作用包括:物理地址尋址、數(shù)據(jù)的成幀、流量控制、數(shù)據(jù)的檢錯、重發(fā)等。
有關(guān)數(shù)據(jù)鏈路層的重要知識點(diǎn):
1>?數(shù)據(jù)鏈路層為網(wǎng)絡(luò)層提供可靠的數(shù)據(jù)傳輸;
2>?基本數(shù)據(jù)單位為幀;
3> 主要的協(xié)議:以太網(wǎng)協(xié)議;
4> 兩個(gè)重要設(shè)備名稱:網(wǎng)橋和交換機(jī)。
3)網(wǎng)絡(luò)層(Network Layer)
網(wǎng)絡(luò)層的目的是實(shí)現(xiàn)兩個(gè)端系統(tǒng)之間的數(shù)據(jù)透明傳送,具體功能包括尋址和路由選擇、連接的建立、保持和終止等。它提供的服務(wù)使傳輸層不需要了解網(wǎng)絡(luò)中的數(shù)據(jù)傳輸和交換技術(shù)。如果您想用盡量少的詞來記住網(wǎng)絡(luò)層,那就是“路徑選擇、路由及邏輯尋址”。
網(wǎng)絡(luò)層中涉及眾多的協(xié)議,其中包括最重要的協(xié)議,也是TCP/IP的核心協(xié)議——IP協(xié)議。IP協(xié)議非常簡單,僅僅提供不可靠、無連接的傳送服務(wù)。IP協(xié)議的主要功能有:無連接數(shù)據(jù)報(bào)傳輸、數(shù)據(jù)報(bào)路由選擇和差錯控制。與IP協(xié)議配套使用實(shí)現(xiàn)其功能的還有地址解析協(xié)議ARP、逆地址解析協(xié)議RARP、因特網(wǎng)報(bào)文協(xié)議ICMP、因特網(wǎng)組管理協(xié)議IGMP。具體的協(xié)議我們會在接下來的部分進(jìn)行總結(jié),有關(guān)網(wǎng)絡(luò)層的重點(diǎn)為:
1> 網(wǎng)絡(luò)層負(fù)責(zé)對子網(wǎng)間的數(shù)據(jù)包進(jìn)行路由選擇。此外,網(wǎng)絡(luò)層還可以實(shí)現(xiàn)擁塞控制、網(wǎng)際互連等功能;
2> 基本數(shù)據(jù)單位為IP數(shù)據(jù)報(bào);
3> 包含的主要協(xié)議:
IP協(xié)議(Internet Protocol,因特網(wǎng)互聯(lián)協(xié)議);
ICMP協(xié)議(Internet Control Message Protocol,因特網(wǎng)控制報(bào)文協(xié)議);
ARP協(xié)議(Address Resolution Protocol,地址解析協(xié)議);
RARP協(xié)議(Reverse Address Resolution Protocol,逆地址解析協(xié)議)。
4> 重要的設(shè)備:路由器。
4)傳輸層(Transport Layer)
第一個(gè)端到端,即主機(jī)到主機(jī)的層次。傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
傳輸層的任務(wù)是根據(jù)通信子網(wǎng)的特性,最佳地利用網(wǎng)絡(luò)資源,為兩個(gè)端系統(tǒng)的會話層之間,提供建立、維護(hù)和取消傳輸連接的功能,負(fù)責(zé)端到端的可靠數(shù)據(jù)傳輸。在這一層,信息傳送的協(xié)議數(shù)據(jù)單元稱為段或報(bào)文。
網(wǎng)絡(luò)層只是根據(jù)網(wǎng)絡(luò)地址將源結(jié)點(diǎn)發(fā)出的數(shù)據(jù)包傳送到目的結(jié)點(diǎn),而傳輸層則負(fù)責(zé)將數(shù)據(jù)可靠地傳送到相應(yīng)的端口。
有關(guān)網(wǎng)絡(luò)層的重點(diǎn):
1>?傳輸層負(fù)責(zé)將上層數(shù)據(jù)分段并提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題;
2> 包含的主要協(xié)議:TCP協(xié)議(Transmission Control Protocol,傳輸控制協(xié)議)、UDP協(xié)議(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議);
3> 重要設(shè)備:網(wǎng)關(guān)。
5)會話層
會話層管理主機(jī)之間的會話進(jìn)程,即負(fù)責(zé)建立、管理、終止進(jìn)程之間的會話。會話層還利用在數(shù)據(jù)中插入校驗(yàn)點(diǎn)來實(shí)現(xiàn)數(shù)據(jù)的同步。
6)表示層
表示層對上層數(shù)據(jù)或信息進(jìn)行變換以保證一個(gè)主機(jī)應(yīng)用層信息可以被另一個(gè)主機(jī)的應(yīng)用程序理解。表示層的數(shù)據(jù)轉(zhuǎn)換包括數(shù)據(jù)的加密、壓縮、格式轉(zhuǎn)換等。
7)應(yīng)用層
為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口。
會話層、表示層和應(yīng)用層重點(diǎn):
1> 數(shù)據(jù)傳輸基本單位為報(bào)文;
2> 包含的主要協(xié)議:FTP(文件傳送協(xié)議)、Telnet(遠(yuǎn)程登錄協(xié)議)、DNS(域名解析協(xié)議)、SMTP(郵件傳送協(xié)議),POP3協(xié)議(郵局協(xié)議),HTTP協(xié)議(Hyper Text Transfer Protocol)。
3. IP地址
1)網(wǎng)絡(luò)地址
IP地址由網(wǎng)絡(luò)號(包括子網(wǎng)號)和主機(jī)號組成,網(wǎng)絡(luò)地址的主機(jī)號為全0,網(wǎng)絡(luò)地址代表著整個(gè)網(wǎng)絡(luò)。
2)廣播地址
廣播地址通常稱為直接廣播地址,是為了區(qū)分受限廣播地址。
廣播地址與網(wǎng)絡(luò)地址的主機(jī)號正好相反,廣播地址中,主機(jī)號為全1。當(dāng)向某個(gè)網(wǎng)絡(luò)的廣播地址發(fā)送消息時(shí),該網(wǎng)絡(luò)內(nèi)的所有主機(jī)都能收到該廣播消息。
3)組播地址
D類地址就是組播地址。
先回憶下A,B,C,D類地址吧:
A類地址以0開頭,第一個(gè)字節(jié)作為網(wǎng)絡(luò)號,地址范圍為:0.0.0.0~127.255.255.255;(modified @2016.05.31)
B類地址以10開頭,前兩個(gè)字節(jié)作為網(wǎng)絡(luò)號,地址范圍是:128.0.0.0~191.255.255.255;
C類地址以110開頭,前三個(gè)字節(jié)作為網(wǎng)絡(luò)號,地址范圍是:192.0.0.0~223.255.255.255。
D類地址以1110開頭,地址范圍是224.0.0.0~239.255.255.255,D類地址作為組播地址(一對多的通信);
E類地址以1111開頭,地址范圍是240.0.0.0~255.255.255.255,E類地址為保留地址,供以后使用。
注:只有A,B,C有網(wǎng)絡(luò)號和主機(jī)號之分,D類地址和E類地址沒有劃分網(wǎng)絡(luò)號和主機(jī)號。
4)255.255.255.255
該IP地址指的是受限的廣播地址。受限廣播地址與一般廣播地址(直接廣播地址)的區(qū)別在于,受限廣播地址只能用于本地網(wǎng)絡(luò),路由器不會轉(zhuǎn)發(fā)以受限廣播地址為目的地址的分組;一般廣播地址既可在本地廣播,也可跨網(wǎng)段廣播。例如:主機(jī)192.168.1.1/30上的直接廣播數(shù)據(jù)包后,另外一個(gè)網(wǎng)段192.168.1.5/30也能收到該數(shù)據(jù)報(bào);若發(fā)送受限廣播數(shù)據(jù)報(bào),則不能收到。
注:一般的廣播地址(直接廣播地址)能夠通過某些路由器(當(dāng)然不是所有的路由器),而受限的廣播地址不能通過路由器。
5)0.0.0.0
常用于尋找自己的IP地址,例如在我們的RARP,BOOTP和DHCP協(xié)議中,若某個(gè)未知IP地址的無盤機(jī)想要知道自己的IP地址,它就以255.255.255.255為目的地址,向本地范圍(具體而言是被各個(gè)路由器屏蔽的范圍內(nèi))的服務(wù)器發(fā)送IP請求分組。
6)回環(huán)地址
127.0.0.0/8被用作回環(huán)地址,回環(huán)地址表示本機(jī)的地址,常用于對本機(jī)的測試,用的最多的是127.0.0.1。
7)A、B、C類私有地址
私有地址(private address)也叫專用地址,它們不會在全球使用,只具有本地意義。
A類私有地址:10.0.0.0/8,范圍是:10.0.0.0~10.255.255.255。
B類私有地址:172.16.0.0/12,范圍是:172.16.0.0~172.31.255.255。
C類私有地址:192.168.0.0/16,范圍是:192.168.0.0~192.168.255.255。
4. 子網(wǎng)掩碼及網(wǎng)絡(luò)劃分
隨著互聯(lián)網(wǎng)應(yīng)用的不斷擴(kuò)大,原先的IPv4的弊端也逐漸暴露出來,即網(wǎng)絡(luò)號占位太多,而主機(jī)號位太少,所以其能提供的主機(jī)地址也越來越稀缺,目前除了使用NAT在企業(yè)內(nèi)部利用保留地址自行分配以外,通常都對一個(gè)高類別的IP地址進(jìn)行再劃分,以形成多個(gè)子網(wǎng),提供給不同規(guī)模的用戶群使用。
這里主要是為了在網(wǎng)絡(luò)分段情況下有效地利用IP地址,通過對主機(jī)號的高位部分取作為子網(wǎng)號,從通常的網(wǎng)絡(luò)位界限中擴(kuò)展或壓縮子網(wǎng)掩碼,用來創(chuàng)建某類地址的更多子網(wǎng)。但創(chuàng)建更多的子網(wǎng)時(shí),在每個(gè)子網(wǎng)上的可用主機(jī)地址數(shù)目會比原先減少。
什么是子網(wǎng)掩碼?
子網(wǎng)掩碼是標(biāo)志兩個(gè)IP地址是否同屬于一個(gè)子網(wǎng)的,也是32位二進(jìn)制地址,其每一個(gè)為1代表該位是網(wǎng)絡(luò)位,為0代表主機(jī)位。它和IP地址一樣也是使用點(diǎn)式十進(jìn)制來表示的。如果兩個(gè)IP地址在子網(wǎng)掩碼的按位與的計(jì)算下所得結(jié)果相同,即表明它們共屬于同一子網(wǎng)中。
在計(jì)算子網(wǎng)掩碼時(shí),我們要注意IP地址中的保留地址,即“ 0”地址和廣播地址,它們是指主機(jī)地址或網(wǎng)絡(luò)地址全為“ 0”或“ 1”時(shí)的IP地址,它們代表著本網(wǎng)絡(luò)地址和廣播地址,一般是不能被計(jì)算在內(nèi)的。
子網(wǎng)掩碼的計(jì)算:
對于無須再劃分成子網(wǎng)的IP地址來說,其子網(wǎng)掩碼非常簡單,即按照其定義即可寫出:如某B類IP地址為 10.12.3.0,無須再分割子網(wǎng),則該IP地址的子網(wǎng)掩碼255.255.0.0。如果它是一個(gè)C類地址,則其子網(wǎng)掩碼為 255.255.255.0。其它類推,不再詳述。下面我們關(guān)鍵要介紹的是一個(gè)IP地址,還需要將其高位主機(jī)位再作為劃分出的子網(wǎng)網(wǎng)絡(luò)號,剩下的是每個(gè)子網(wǎng)的主機(jī)號,這時(shí)該如何進(jìn)行每個(gè)子網(wǎng)的掩碼計(jì)算。
下面總結(jié)一下有關(guān)子網(wǎng)掩碼和網(wǎng)絡(luò)劃分常見的面試考題:
1)利用子網(wǎng)數(shù)來計(jì)算
在求子網(wǎng)掩碼之前必須先搞清楚要劃分的子網(wǎng)數(shù)目,以及每個(gè)子網(wǎng)內(nèi)的所需主機(jī)數(shù)目。
(1) 將子網(wǎng)數(shù)目轉(zhuǎn)化為二進(jìn)制來表示。
如欲將B類IP地址168.195.0.0劃分成27個(gè)子網(wǎng):27=11011。
(2) 取得該二進(jìn)制的位數(shù),為N。
該二進(jìn)制為五位數(shù),N = 5。
(3) 取得該IP地址的類子網(wǎng)掩碼,將其主機(jī)地址部分的前N位置1即得出該IP地址劃分子網(wǎng)的子網(wǎng)掩碼。
將B類地址的子網(wǎng)掩碼255.255.0.0的主機(jī)地址前5位置 1,得到 255.255.248.0。
2)利用主機(jī)數(shù)來計(jì)算
如欲將B類IP地址168.195.0.0劃分成若干子網(wǎng),每個(gè)子網(wǎng)內(nèi)有主機(jī)700臺:
(1) 將主機(jī)數(shù)目轉(zhuǎn)化為二進(jìn)制來表示。
700=1010111100。
(2) 如果主機(jī)數(shù)小于或等于254(注意去掉保留的兩個(gè)IP地址),則取得該主機(jī)的二進(jìn)制位數(shù),為N,這里肯定 N<8。如果大于254,則 N>8,這就是說主機(jī)地址將占據(jù)不止8位。
該二進(jìn)制為十位數(shù),N=10。
(3) 使用255.255.255.255來將該類IP地址的主機(jī)地址位數(shù)全部置1,然后從后向前的將N位全部置為 0,即為子網(wǎng)掩碼值。
將該B類地址的子網(wǎng)掩碼255.255.0.0的主機(jī)地址全部置1,得到255.255.255.255,然后再從后向前將后10位置0,即為:11111111.11111111.11111100.00000000,即255.255.252.0。這就是該欲劃分成主機(jī)為700臺的B類IP地址 168.195.0.0的子網(wǎng)掩碼。
3)還有一種題型,要你根據(jù)每個(gè)網(wǎng)絡(luò)的主機(jī)數(shù)量進(jìn)行子網(wǎng)地址的規(guī)劃和計(jì)算子網(wǎng)掩碼。這也可按上述原則進(jìn)行計(jì)算。
比如一個(gè)子網(wǎng)有10臺主機(jī),那么對于這個(gè)子網(wǎng)需要的IP地址是:
10+1+1+1=13。
注意:加的第一個(gè)1是指這個(gè)網(wǎng)絡(luò)連接時(shí)所需的網(wǎng)關(guān)地址,接著的兩個(gè)1分別是指網(wǎng)絡(luò)地址和廣播地址。
因?yàn)?3小于16(16等于2的4次方),所以主機(jī)位為4位。而256-16=240,所以該子網(wǎng)掩碼為255.255.255.240。
如果一個(gè)子網(wǎng)有14臺主機(jī),不少人常犯的錯誤是:依然分配具有16個(gè)地址空間的子網(wǎng),而忘記了給網(wǎng)關(guān)分配地址。這樣就錯誤了,因?yàn)?span style="line-height: 1.5;">14+1+1+1=17,17大于16,所以我們只能分配具有32個(gè)地址(32等于2的5次方)空間的子網(wǎng)。這時(shí)子網(wǎng)掩碼為:255.255.255.224。
5. ARP/RARP協(xié)議
地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。主機(jī)發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP請求廣播到網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請求時(shí)直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會檢測該報(bào)文的真實(shí)性就會將其記入本機(jī)ARP緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽ARP應(yīng)答報(bào)文,使其發(fā)送的信息無法到達(dá)預(yù)期的主機(jī)或到達(dá)錯誤的主機(jī),這就構(gòu)成了一個(gè)ARP欺騙。ARP命令可用于查詢本機(jī)ARP緩存中IP地址和MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。
ARP工作流程舉例:
逆地址解析協(xié)議,即RARP,功能和ARP協(xié)議相對,其將局域網(wǎng)中某個(gè)主機(jī)的物理地址轉(zhuǎn)換為IP地址,比如局域網(wǎng)中有一臺主機(jī)只知道物理地址而不知道IP地址,那么可以通過RARP協(xié)議發(fā)出征求自身IP地址的廣播請求,然后由RARP服務(wù)器負(fù)責(zé)回答。
RARP協(xié)議工作流程:
6. 路由選擇協(xié)議
常見的路由選擇協(xié)議有:RIP協(xié)議、OSPF協(xié)議。
RIP協(xié)議?:底層是貝爾曼福特算法,它選擇路由的度量標(biāo)準(zhǔn)(metric)是跳數(shù),最大跳數(shù)是15跳,如果大于15跳,它就會丟棄數(shù)據(jù)包。
OSPF協(xié)議?:Open Shortest Path First開放式最短路徑優(yōu)先,底層是迪杰斯特拉算法,是鏈路狀態(tài)路由選擇協(xié)議,它選擇路由的度量標(biāo)準(zhǔn)是帶寬,延遲。
7. TCP/IP協(xié)議
TCP/IP協(xié)議是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。通俗而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設(shè)備規(guī)定一個(gè)地址。
IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒有做任何事情來確認(rèn)數(shù)據(jù)包是否按順序發(fā)送的或者有沒有被破壞,IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。
? TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊完成時(shí)要拆除連接,由于TCP是面向連接的所以只能用于端到端的通訊。TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來實(shí)現(xiàn)傳輸?shù)目煽啃浴CP還采用一種稱為“滑動窗口”的方式進(jìn)行流量控制,所謂窗口實(shí)際表示接收能力,用以限制發(fā)送方的發(fā)送速度。


8. UDP協(xié)議
每個(gè)UDP報(bào)文分UDP報(bào)頭和UDP數(shù)據(jù)區(qū)兩部分。報(bào)頭由四個(gè)16位長(2字節(jié))字段組成,分別說明該報(bào)文的源端口、目的端口、報(bào)文長度以及校驗(yàn)值。UDP報(bào)頭由4個(gè)域組成,其中每個(gè)域各占用2個(gè)字節(jié),具體如下:
(1)源端口號;
9. DNS協(xié)議
DNS是域名系統(tǒng)(DomainNameSystem)的縮寫,該系統(tǒng)用于命名組織到域?qū)哟谓Y(jié)構(gòu)中的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù),可以簡單地理解為將URL轉(zhuǎn)換為IP地址。域名是由圓點(diǎn)分開一串單詞或縮寫組成的,每一個(gè)域名都對應(yīng)一個(gè)唯一的IP地址,在Internet上域名與IP地址之間是一一對應(yīng)的,DNS就是進(jìn)行域名解析的服務(wù)器。DNS命名用于Internet等TCP/IP網(wǎng)絡(luò)中,通過用戶友好的名稱查找計(jì)算機(jī)和服務(wù)。
10. NAT協(xié)議
NAT網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation)屬接入廣域網(wǎng)(WAN)技術(shù),是一種將私有(保留)地址轉(zhuǎn)化為合法IP地址的轉(zhuǎn)換技術(shù),它被廣泛應(yīng)用于各種類型Internet接入方式和各種類型的網(wǎng)絡(luò)中。原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網(wǎng)絡(luò)外部的攻擊,隱藏并保護(hù)網(wǎng)絡(luò)內(nèi)部的計(jì)算機(jī)。
11. DHCP協(xié)議
DHCP動態(tài)主機(jī)設(shè)置協(xié)議(Dynamic Host Configuration Protocol)是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作,主要有兩個(gè)用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動分配IP地址,給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對所有計(jì)算機(jī)作中央管理的手段。
12. HTTP協(xié)議
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。
HTTP?協(xié)議包括哪些請求?
GET:請求讀取由URL所標(biāo)志的信息。
POST:給服務(wù)器添加信息(如注釋)。
PUT:在給定的URL下存儲一個(gè)文檔。
DELETE:刪除給定的URL所標(biāo)志的資源。
HTTP?中,?POST?與?GET?的區(qū)別?
1)Get是從服務(wù)器上獲取數(shù)據(jù),Post是向服務(wù)器傳送數(shù)據(jù)。
2)Get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的Action屬性所指向的URL中,值和表單內(nèi)各個(gè)字段一一對應(yīng),在URL中可以看到。
3)Get傳送的數(shù)據(jù)量小,不能大于2KB;Post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。
4)根據(jù)HTTP規(guī)范,GET用于信息獲取,而且應(yīng)該是安全的和冪等的。
I. 所謂?安全的?意味著該操作用于獲取信息而非修改信息。換句話說,GET請求一般不應(yīng)產(chǎn)生副作用。就是說,它僅僅是獲取資源信息,就像數(shù)據(jù)庫查詢一樣,不會修改、增加數(shù)據(jù),不會影響資源的狀態(tài)。
II.?所謂?冪等的?意味著對同一URL的多個(gè)請求應(yīng)該返回同樣的結(jié)果。
13. 一個(gè)舉例
在瀏覽器中輸入?www.baidu.com??后執(zhí)行的全部過程:
現(xiàn)在假設(shè)如果我們在客戶端瀏覽器中輸入http://www.baidu.com,而baidu.com為要訪問的服務(wù)器,下面詳細(xì)分析客戶端為了訪問服務(wù)器而執(zhí)行的一系列關(guān)于協(xié)議的操作:
1)客戶端瀏覽器通過DNS解析到www.baidu.com的IP地址220.181.27.48,通過這個(gè)IP地址找到客戶端到服務(wù)器的路徑。客戶端瀏覽器發(fā)起一個(gè)HTTP會話到220.161.27.48,然后通過TCP進(jìn)行封裝數(shù)據(jù)包,輸入到網(wǎng)絡(luò)層。
2)在客戶端的傳輸層,把HTTP會話請求分成報(bào)文段,添加源和目的端口,如服務(wù)器使用80端口監(jiān)聽客戶端的請求,客戶端由系統(tǒng)隨機(jī)選擇一個(gè)端口如5000,與服務(wù)器進(jìn)行交換,服務(wù)器把相應(yīng)的請求返回給客戶端的5000端口。然后使用IP層的IP地址查找目的端。
3)客戶端的網(wǎng)絡(luò)層不用關(guān)系應(yīng)用層或者傳輸層的東西,主要做的是通過查找路由表確定如何到達(dá)服務(wù)器,期間可能經(jīng)過多個(gè)路由器,這些都是由路由器來完成的工作,不作過多的描述,無非就是通過查找路由表決定通過哪個(gè)路徑到達(dá)服務(wù)器。
4)客戶端的鏈路層,包通過鏈路層發(fā)送到路由器,通過鄰居協(xié)議查找給定IP地址的MAC地址,然后發(fā)送ARP請求查找目的地址,如果得到回應(yīng)后就可以使用ARP的請求應(yīng)答交換的IP數(shù)據(jù)包現(xiàn)在就可以傳輸了,然后發(fā)送IP數(shù)據(jù)包到達(dá)服務(wù)器的地址。
推薦閱讀:
GitHub 標(biāo)星 3w+,很全面的算法和數(shù)據(jù)結(jié)構(gòu)知識
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!!
