一、數(shù)據(jù)鏈路層
(1)數(shù)據(jù)鏈路層與網(wǎng)絡(luò)層的關(guān)聯(lián)
數(shù)據(jù)鏈路層的主要功能就是負(fù)責(zé)相鄰設(shè)備之間的數(shù)據(jù)傳輸 。
在網(wǎng)絡(luò)層是點(diǎn)對點(diǎn)之間的通信。主要通過IP協(xié)議描述起點(diǎn)到終點(diǎn)。而鏈路層則是對網(wǎng)絡(luò)層的補(bǔ)充,負(fù)責(zé)在起點(diǎn)到終點(diǎn)的路徑中,每一個相鄰節(jié)點(diǎn)的數(shù)據(jù)傳輸。
網(wǎng)絡(luò)層主要關(guān)心的是從起點(diǎn)到終點(diǎn)
鏈路層則關(guān)心的是其中路徑上的每一個相鄰節(jié)點(diǎn)的通信
前面舉過唐僧取經(jīng)的例子
比如我們再舉個例子:
比如我們要從河南前往北京,這是我們所描述的起點(diǎn)與終點(diǎn),而光有起點(diǎn)和終點(diǎn)不行,還需要描述途中的行程,如先從河南坐車到某某機(jī)場,然后再從某某機(jī)場轉(zhuǎn)機(jī)到地點(diǎn)A…來到北京,這邊是途中所規(guī)劃的路徑。
這個從起點(diǎn)到終點(diǎn)的整個行程表就相當(dāng)于我們的網(wǎng)絡(luò)層。而這一個一個的地點(diǎn)的移動,也就是具體的行程方式與途徑,就相當(dāng)于數(shù)據(jù)鏈路層。
如果沒有了行程表,即使知道出行方式和途徑也不知道具體的路徑。而只知道行程表,不通過具體的通行也只能停留在原地,這就是網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層之間的關(guān)系。有一點(diǎn)點(diǎn)類似于TCP輔助IP,TCP提供策略,IP提供行動。
(2)局域網(wǎng)通信原理
跨網(wǎng)絡(luò)傳輸?shù)谋举|(zhì)是由無數(shù)個局域網(wǎng)轉(zhuǎn)發(fā)的結(jié)果,要徹底理解跨網(wǎng)絡(luò)轉(zhuǎn)發(fā),就要先理解局域網(wǎng)中的報(bào)文轉(zhuǎn)發(fā)原理
在同一個局域網(wǎng)的主機(jī),是可以直接通信的
如圖:
首先m1要想和m6通信,m1發(fā)送一個mac幀到與總線相連的各個主機(jī)上,然后每個主機(jī)去判斷是發(fā)送給我的,因?yàn)槊總€主機(jī)都有一個唯一標(biāo)識即mac地址,不是則丟棄,是向上交付。
結(jié)論:
局域網(wǎng)中所有的主機(jī)其實(shí)都能收到對應(yīng)的mac,只不過大部分主機(jī)在自己的數(shù)據(jù)鏈路層通過對比數(shù)據(jù)幀中的目標(biāo)mac地址和自己的mac地址是否相等,來決策是否要后續(xù)處理。
抓包工具原理:
在局域網(wǎng)中,網(wǎng)卡是有一種混雜模式,不放棄任務(wù)數(shù)據(jù)幀,直接向上交付。
局域網(wǎng)通信的本質(zhì):
在局域網(wǎng)中,任何時候只能有一個主機(jī)發(fā)消息,如果多個消息被同時發(fā)送,會導(dǎo)致局域網(wǎng)中的數(shù)據(jù)發(fā)生碰撞,變?yōu)闊o效數(shù)據(jù),所以它也要自己的策略,比如碰撞檢測和碰撞避免算法來使主機(jī)盡量不發(fā)生碰撞。
從系統(tǒng)視角看局域網(wǎng):
我們可以把它看作是一個臨界資源,碰撞檢測和碰撞避免來保證任何一個時刻只有一臺主機(jī)能夠向臨界資源寫入數(shù)據(jù)。
局域網(wǎng)不能太大,原因:
局域網(wǎng)太大,主機(jī)很多,任何時刻的碰撞概率會變大,比如無線WIFI,也是在局域網(wǎng)通信,人很多很卡因?yàn)?,如果周圍搭建的基站如果只有一個,而功率是一定的,所以卡。
緩解:可以用交換機(jī),識別局部性的碰撞,對碰撞裝數(shù)據(jù)不做轉(zhuǎn)發(fā),讓碰撞概率變低。
(3)以太網(wǎng)協(xié)議
以太網(wǎng)協(xié)議:
網(wǎng)絡(luò)層的ip協(xié)議負(fù)責(zé)的路由選擇,說直白一點(diǎn),網(wǎng)絡(luò)層的ip協(xié)議在進(jìn)行選路, 而具體如何從A機(jī)器到B設(shè)備,網(wǎng)絡(luò)層并沒有關(guān)心, 而是數(shù)據(jù)鏈路層負(fù)責(zé)相鄰設(shè)備的轉(zhuǎn)發(fā)。
以太網(wǎng)幀格式:
32位源MAC地址/目的MAC地址:表示發(fā)送端/接收端的MAC地址,用于描述識別相鄰的設(shè)備,指網(wǎng)卡的硬件地址(也叫MAC地址), 長度是48位,是在網(wǎng)卡出廠時固化的。
16位上層協(xié)議:用于數(shù)據(jù)分用時選擇上層解析的協(xié)議,幀協(xié)議類型字段有三種值,分別對應(yīng)IP、ARP、RARP,為了方便接收方通過類型辨別當(dāng)前以太網(wǎng)協(xié)議的有效載荷是提交給哪一個協(xié)議的。
32位FCS:幀末尾是CRC校驗(yàn)碼,檢驗(yàn)數(shù)據(jù)在傳輸過程中是否失真。
理解MAC地址和IP地址:
網(wǎng)絡(luò)層進(jìn)行選路,數(shù)據(jù)鏈路層負(fù)責(zé)相鄰設(shè)備的轉(zhuǎn)發(fā)。
數(shù)據(jù)鏈路層根據(jù)網(wǎng)絡(luò)層選擇的路由項(xiàng), 進(jìn)行轉(zhuǎn)發(fā)。 一定需要直到要轉(zhuǎn)發(fā)的這個路由所對應(yīng)的相鄰設(shè)備的MAC地址;
要么是子網(wǎng)內(nèi)機(jī)器的MAC地址
要么是連接的路由項(xiàng)WAN對應(yīng)的MAC地址
(4)ARP協(xié)議
上面說到了以太網(wǎng)協(xié)議格式,可以看到格式中的目的地址和源地址指的是目的MAC地址和源MAC地址,即數(shù)據(jù)在數(shù)據(jù)鏈路層的時候,需要知道目標(biāo)主機(jī)MAC地址,但是網(wǎng)絡(luò)層的協(xié)議遞交給數(shù)據(jù)鏈路層的數(shù)據(jù)僅僅包含目標(biāo)主機(jī)的ip地址,我們無法獲知其對應(yīng)的MAC地址。
如何獲取目標(biāo)主機(jī)的MAC地址呢?
在網(wǎng)絡(luò)通訊時,源主機(jī)的應(yīng)用程序知道目的主機(jī)的IP地址和端口號,卻不知道目的主機(jī)的硬件地址,數(shù)據(jù)包首先是被網(wǎng)卡接收到再去處理上層協(xié)議的,如果接收到的數(shù)據(jù)包的硬件地址與本機(jī)不符,則直接丟棄。
因此在通訊前必須獲得目的主機(jī)的硬件地址。
那也就是說在組織以太網(wǎng)協(xié)議的時候,就需要先知道相鄰設(shè)備的MAC地址,這樣才能一步步知道目的主機(jī)的硬件地址,但是如何當(dāng)前主機(jī)不知道相鄰設(shè)備的MAC地址,該如何做呢?
使用arp協(xié)議,獲取相鄰設(shè)備的MAC地址
- 獲取子網(wǎng)內(nèi)部機(jī)器的MAC地址
- 獲取相連路由器設(shè)備WAN的MAC地址**
ARP協(xié)議就是用來解決這個問題的,他可以通過ip地址獲取對應(yīng)的MAC地址。這里的ip地址本質(zhì)上是通過路由項(xiàng)計(jì)算出來的接下來該條數(shù)據(jù)該去往的ip地址,而不是自己本身該去的目的ip地址。
因此,ARP協(xié)議是介于網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層之間的協(xié)議,話句話來說就是ARP協(xié)議建立了主機(jī) IP地址 和 MAC地址 的映射關(guān)系。
ARP數(shù)據(jù)報(bào)格式:
首部:
以太網(wǎng)目的地址:在ARP請求中,目的MAC地址填充為:0xFFFFFFFF,表示當(dāng)前這條數(shù)據(jù)給子網(wǎng)當(dāng)中的每一條機(jī)器都進(jìn)行轉(zhuǎn)發(fā)。
以太網(wǎng)源地址:就是源MAC地址,就是當(dāng)前主機(jī)的MAC地址。
幀類型:上級協(xié)議(ARP協(xié)議)
28字節(jié)ARP請求/應(yīng)答:
硬件類型:當(dāng)前的網(wǎng)絡(luò)類型:以太網(wǎng)、令牌環(huán)網(wǎng)。
協(xié)議類型:要轉(zhuǎn)換的地址類型,ip轉(zhuǎn)換為MAC。
硬件地址長度:表示MAC地址長度。
協(xié)議地址長度:表示ip地址長度。
op:標(biāo)識是請求還是應(yīng)答
1:請求
2:應(yīng)答
ARP協(xié)議工作原理:
是一種解決地址問題的協(xié)議。以目標(biāo)IP地址為線索,用來定位下一個應(yīng)該接收數(shù)據(jù)分包的網(wǎng)絡(luò)設(shè)備對應(yīng)的MAC地址,通俗來講就是獲取相鄰設(shè)備的MAC地址。如果目標(biāo)主機(jī)不在同一個鏈路上時,可以通過ARP查找下一跳路由器的MAC地址。但ARP只適用于IPv4,不能用于IPv6。
ARP又如何知道MAC地址的?
ARP是借助ARP請求與ARP響應(yīng)兩種類型的包確定MAC地址的。
假定主機(jī)A向同一鏈路上的主機(jī)B發(fā)送IP包,主機(jī)A的IP地址為172.20.1.1,主機(jī)B的IP地址為172.20.1.2,它們互不知道對方的MAC地址。
主機(jī)A為了獲得主機(jī)B的MAC地址,先通過廣播發(fā)送一個ARP請求包。
這個包中包含了想要了解其MAC地址的主機(jī)IP地址,即ARP請求包中已經(jīng)包含了主機(jī)B的IP地址172.20.1.2。因?yàn)閺V播的包可以被同一個鏈路上的其他主機(jī)或路由器接收。
因此ARP的請求包也就會被這同一個鏈路上其他主機(jī)和路由器進(jìn)行解析。
如果ARP請求包中的目標(biāo)IP地址與自己的IP地址一致,那么這個節(jié)點(diǎn)就將自己的MAC地址塞入ARP響應(yīng)包返回給主機(jī)A。
總結(jié):
從一個IP地址發(fā)送ARP請求包以獲得其MAC地址(ARP請求包還有一個作用,那就是將自己的MAC地址告訴給對方),目標(biāo)主機(jī)將自己的MAC地址填入其中的ARP響應(yīng)包返回到源IP地址。由此,可以通過ARP從IP地址獲得MAC地址,實(shí)現(xiàn)鏈路內(nèi)的IP通信。
源主機(jī)發(fā)出ARP請求,詢問“IP地址是192.168.0.20的主機(jī)的硬件地址是多少”, 并將這個請求廣播到本地網(wǎng)段(以太網(wǎng)幀首部的硬件地址FF:FF:FF:FF:FF:FF表示廣播)。
目的主機(jī)接收到廣播的ARP請求,發(fā)現(xiàn)其中的IP地址與本機(jī)相符,則發(fā)送一個ARP應(yīng)答數(shù)據(jù)包給源主機(jī),將自己的硬件地址填寫在應(yīng)答包中。
ARP緩存表
每臺主機(jī)都維護(hù)一個ARP緩存表,可以用arp -a命令查看。緩存表中的表項(xiàng)有過期時間,如果20分鐘內(nèi)沒有再次使用某個表項(xiàng),則該表項(xiàng)失效,下次還要發(fā)ARP請求來獲得目的主機(jī)的硬件地址。(一般為20分鐘)。
為什么要有ARP緩存表?
如果每發(fā)送一個IP數(shù)據(jù)報(bào)都要進(jìn)行一次ARP請求以此確定MAC地址,那將會造成不必要的網(wǎng)絡(luò)流量,因此,通常的做法是把獲取到的MAC地址緩存 一段時間。它指的是指預(yù)見到同樣的信息可能會再次使用,在內(nèi)存中開辟一塊區(qū)域記憶這些信息。
即把第一次通過ARP獲取到的MAC地址作為IP對MAC的映射關(guān)系記憶到一個ARP緩存表中,下一次再向這個IP地址發(fā)送數(shù)據(jù)報(bào)時不需再重新發(fā)送ARP請求,而是直接使用這個緩存表當(dāng)中的MAC地址進(jìn)行數(shù)據(jù)報(bào)的發(fā)送。提高效率。
注意:
每執(zhí)行一次ARP,其對應(yīng)的緩存內(nèi)容都會被清除。不過在清除之前都可以不需要執(zhí)行ARP就可以獲取想要的MAC地址。這樣,在一定程度上也防止了ARP包在網(wǎng)絡(luò)上被大量廣播的可能性。
arp協(xié)議只能在子網(wǎng)內(nèi)部使用,只能給子網(wǎng)內(nèi)部的機(jī)器進(jìn)行廣播arp請求。換句話說,只能獲取子網(wǎng)內(nèi)部機(jī)器的MAC地址。
問題:
IP地址和MAC地址缺一不可?
數(shù)據(jù)鏈路上只要知道接收端的MAC地址不就知道數(shù)據(jù)是準(zhǔn)備發(fā)送給主機(jī)B的嗎,那還需要知道它的IP地址?,只要知道了IP地址,即使不做ARP,只要在數(shù)據(jù)鏈路上做一個廣播不就能發(fā)給主機(jī)B了嗎為什么既需要IP地址又需要MAC地址?
如下圖:
主機(jī)A想要發(fā)送IP數(shù)據(jù)報(bào)給主機(jī)B時必須得經(jīng)過路由器C。即使知道了主機(jī)B的MAC地址,由于路由器C會隔斷兩個網(wǎng)絡(luò),還是無法實(shí)現(xiàn)直接從主機(jī)A發(fā)送數(shù)據(jù)報(bào)給主機(jī)B,發(fā)送ARP是有條件的。此時,主機(jī)A必須得先將數(shù)據(jù)報(bào)發(fā)送給路由器C的MAC地址C1。
所以IP地址和MAC地址兩者缺一不可。于是就有將這兩個地址相關(guān)聯(lián)的ARP協(xié)議,為了避免這兩個階段的通信帶來過多的網(wǎng)絡(luò)流量,ARP具有對IP地址和MAC地址的映射進(jìn)行緩存的功能。有了這個緩存功能,發(fā)送IP包時就不必每次都發(fā)送ARP請求,從而防止性能下降
二、NAT協(xié)議
NAT服務(wù)器將網(wǎng)絡(luò)劃分成為公網(wǎng)和私網(wǎng),針對私網(wǎng)請求數(shù)據(jù)繼續(xù)轉(zhuǎn)換源ip地址,針對公網(wǎng)回復(fù)的應(yīng)答數(shù)據(jù)轉(zhuǎn)換目的ip地址,它針對消息的雙方是透明的,無感知。網(wǎng)絡(luò)請求只能由私網(wǎng)主機(jī)發(fā)起,NAT轉(zhuǎn)換, 公網(wǎng)主機(jī)應(yīng)答。NAT服務(wù)器在轉(zhuǎn)換之后,需要保存映射關(guān)系。
前面說到IPv4協(xié)議中, IP地址數(shù)量不充足的問題,NAT技術(shù)當(dāng)前解決IP地址不夠用的主要手段, 是路由器的一個重要功能,NAT也叫地址轉(zhuǎn)換協(xié)議。
如圖:
工作流程:
如上圖,以10.0.0.10的源主機(jī)與163.221.120.9的目的主機(jī)進(jìn)行通信為例。利用NAT,途中的NAT路由器將發(fā)送源地址從10.0.0.10轉(zhuǎn)換為全局的IP地址(202.244.174.37)再發(fā)送數(shù)據(jù)。反之,當(dāng)包從地址163.221.120.9發(fā)過來時,目標(biāo)地址(202.244.174.37)先被轉(zhuǎn)換成私有IP地址10.0.0.10以后再被轉(zhuǎn)發(fā),在TCP或UDP中,由于IP首部中的IP地址還要用于校驗(yàn)和的計(jì)算,因此當(dāng)IP地址發(fā)生變化時,也需要相應(yīng)地將TCP、UDP的首部進(jìn)行轉(zhuǎn)換。
總結(jié):
- 私網(wǎng)對公網(wǎng)請求的時候:將網(wǎng)絡(luò)數(shù)據(jù)當(dāng)中的私網(wǎng)的源ip地址轉(zhuǎn)化成為公網(wǎng)的ip地址。
- 公網(wǎng)對私網(wǎng)的應(yīng)答:將網(wǎng)絡(luò)數(shù)據(jù)當(dāng)中的公網(wǎng)的目的ip地址轉(zhuǎn)化成為私網(wǎng)的ip地址。
- 靜態(tài)NAT:NAT協(xié)議,將一個私網(wǎng)和一個公網(wǎng)唯一進(jìn)行映射管理。
- 動態(tài)NAT:NAT管理的不止是一個公網(wǎng)ip,當(dāng)私網(wǎng)數(shù)據(jù)到來的時候,選擇一個空閑的ip進(jìn)行映射。
但是不管是靜態(tài)還是動態(tài)都是1對1的關(guān)系,都是一個私網(wǎng)IP映射一個公網(wǎng)IP,并沒有實(shí)質(zhì)性的的緩解枯竭。
三、NAPT協(xié)議
問題:
因?yàn)镹AT并沒有實(shí)質(zhì)性解決問題,如果私網(wǎng)中有多個主機(jī)同時訪問同一個外網(wǎng)的服務(wù)器,并且服務(wù)器返回的數(shù)據(jù)中,目的的IP地址都是相同的,因?yàn)槎际峭ㄟ^NAT映射的同一個公網(wǎng)IP。那么此時,NAT路由器如何判定要把數(shù)據(jù)轉(zhuǎn)發(fā)給哪一個數(shù)據(jù)?
這時候又引入了NAPT技術(shù),使用IP地址加端口號來解決這個問題。
從下圖看,發(fā)送時,通過NAPT技術(shù),將不同主機(jī)的發(fā)送端口號進(jìn)行處理,使得發(fā)送的時候的時候雖然用的是同一個IP地址,但是端口號不同,并且將這些映射關(guān)系存于轉(zhuǎn)換表中,等數(shù)據(jù)發(fā)送回來時,在轉(zhuǎn)發(fā)給對應(yīng)的主機(jī)。
例子:
主機(jī)163.221.120.9的端口號是80,左面圖中有兩個客戶端10.0.0.10和10.0.0.11同時進(jìn)行通信,并且這兩個客戶端的本地端口都是1025。此時,僅僅轉(zhuǎn)換IP地址為某個全局地址202.244.174.37,會讓轉(zhuǎn)換后的所有數(shù)字完全一致。因此,只要將10.0.0.11的端口號轉(zhuǎn)換為1026就可以解決問題。NAPT路由器生成一個NAPT轉(zhuǎn)換表,就可以正確地轉(zhuǎn)換地址跟端口的組合,讓客戶端A、B能同時與服務(wù)器之間進(jìn)行通信。
什么時候生成這個表?
這種轉(zhuǎn)換表在NAT路由器上自動生成。在TCP的情況下,建立TCP連接首次握手時的SYN包一經(jīng)發(fā)出,就會生成這個表。而后又隨著收到關(guān)閉連接時發(fā)出FIN包的確認(rèn)應(yīng)答從表中被刪除,UDP中兩端應(yīng)用進(jìn)行通信時起止時間不一定保持一致,因此在這種情況下生成轉(zhuǎn)換表相對較難 。
為什么UDP通信兩端起止時間不一定保持一致?
這是因?yàn)閁DP是一種無連接的協(xié)議,它不提供可靠的數(shù)據(jù)傳輸和流量控制機(jī)制。由于UDP沒有建立連接的過程,它不會維護(hù)任何連接狀態(tài)或發(fā)送確認(rèn)。發(fā)送方將消息封裝成數(shù)據(jù)包并發(fā)送給接收方,而接收方會盡可能地接收和處理這些數(shù)據(jù)包,這意味著無法保證數(shù)據(jù)包的傳遞順序、可靠性或時序性。
在UDP中,發(fā)送方和接收方獨(dú)立工作,互不干擾。這意味著發(fā)送方可以以自己的速度發(fā)送數(shù)據(jù)包,而接收方可以以不同的速度接收和處理數(shù)據(jù)包。這可能導(dǎo)致起止時間不一致,因?yàn)榘l(fā)送方可能在短時間內(nèi)發(fā)送大量數(shù)據(jù)包,而接收方可能需要更長的時間來接收和處理這些數(shù)據(jù)包。
總結(jié):
在使用TCP或UDP的通信當(dāng)中,只有目標(biāo)地址、源地址、目標(biāo)端口、源端口以及協(xié)議類型(TCP還是UDP)五項(xiàng)內(nèi)容都一致時才被認(rèn)為是同一個通信連接。此時所使用的正是NAPT。NAPT的場景下,一個公網(wǎng)ip,理論上最大可以轉(zhuǎn)換多65536私網(wǎng)ip。
NAT網(wǎng)關(guān)對于私網(wǎng)主機(jī)和公網(wǎng)主機(jī)而言,是透明的,雙方在通信過程中是無感知的。
NAT網(wǎng)關(guān)會保存轉(zhuǎn)換之后的映射關(guān)系,防止應(yīng)答回來之后再次進(jìn)行轉(zhuǎn)換。
私網(wǎng)到公網(wǎng):是將網(wǎng)絡(luò)數(shù)據(jù)當(dāng)中的源ip地址修改為公網(wǎng)ip地址。
公網(wǎng)到私網(wǎng):是將網(wǎng)絡(luò)數(shù)據(jù)當(dāng)中的目的ip地址修改成為私網(wǎng)ip地址。
NAPT增加了端口的轉(zhuǎn)換,就可以讓一個公網(wǎng)ip服務(wù)多個私網(wǎng)主機(jī)。緩解了ip地址枯竭的問題數(shù)據(jù)只能先從私網(wǎng)到公網(wǎng),不能從公網(wǎng)到私網(wǎng)。
四、ICMP協(xié)議
ICMP協(xié)議是一個網(wǎng)絡(luò)層協(xié)議,一個新搭建好的網(wǎng)絡(luò), 往往需要先進(jìn)行一個簡單的測試, 來驗(yàn)證網(wǎng)絡(luò)是否暢通; 但是IP協(xié)議并不提供可靠傳輸. 如果丟包了, IP協(xié)議并不能通知傳輸層是否丟包以及丟包的原因。
ICMP功能:
確認(rèn)IP包是否成功到達(dá)目標(biāo)IP地址。
通知在發(fā)送過程中IP包被丟棄的原因。
ICMP也是基于IP協(xié)議工作的. 但是它并不是傳輸層的功能, 因此人們?nèi)匀话阉鼩w結(jié)為網(wǎng)絡(luò)層協(xié)議。
ICMP只能搭配IPv4使用. 如果是IPv6的情況下, 需要是用ICMPv6
ping命令:
ping后面跟域名,不是url,這個域名可以通過DNS(后面說)解析成IP地址。
它能驗(yàn)證網(wǎng)絡(luò)的連通性, 同時也會統(tǒng)計(jì)響應(yīng)時間和TTL(IP包中的Time To Live, 生存周期)。ping命令會先發(fā)送一個 ICMP Echo Request給對端。
對端接收到之后, 會返回一個ICMP Echo Reply。
注意:
telnet是23端口, ssh是22端口, 那ping是什么端口?
因?yàn)閜ing命令基于ICMP, 是在網(wǎng)絡(luò)層. 而端口號, 是傳輸層的內(nèi)容. 在ICMP中根本就不關(guān)注端口號這樣的信息。
五、DNS
現(xiàn)說一下NAT的缺陷:
因?yàn)镹AT的轉(zhuǎn)換完全依賴這個轉(zhuǎn)換表,所以有著很多限制。
- 無法從NAT外部向內(nèi)部服務(wù)器建立連接;
- 轉(zhuǎn)換表的生成和銷毀都需要額外開銷;
- 通信過程中一旦NAT設(shè)備異常, 即使存在熱備, 所有的TCP連接也都會斷開
所以這時候就有了代理服務(wù)
其實(shí)代理服務(wù)器就是個人網(wǎng)絡(luò)與互聯(lián)網(wǎng)服務(wù)商之間的中間代理機(jī)構(gòu)。
打個比方,比如我們直接訪問服務(wù)器,就相當(dāng)于我們直接去生產(chǎn)廠家買東西,此時可能因?yàn)槁吠具b遠(yuǎn),或者手續(xù)繁瑣導(dǎo)致時間會很長。而通過代理服務(wù)器請求服務(wù),就相當(dāng)于幫我們在代銷商這里買東西,他把貨從遙遠(yuǎn)的地方進(jìn)過來,手續(xù)他也處理好了,我們只需要付錢拿貨就行。
代理服務(wù)器是一種應(yīng)用比較廣的技術(shù).
翻墻: 廣域網(wǎng)中的代理.
負(fù)載均衡: 局域網(wǎng)中的代理.
例子:
例如我們訪問一些國外的網(wǎng)站時,直接訪問是不行的,而通過代理服務(wù)器請求服務(wù),讓他來獲取數(shù)據(jù),再把數(shù)據(jù)轉(zhuǎn)發(fā)給我們,此時我們就也能獲取到了這個網(wǎng)站的數(shù)據(jù)。
當(dāng)使用代理服務(wù)器訪問同一個目標(biāo)服務(wù)器的人多了之后,為了提高效率,不用每次都去轉(zhuǎn)發(fā)來獲取數(shù)據(jù),代理服務(wù)器可能會提前將目標(biāo)服務(wù)器的內(nèi)容緩存下來,有人訪問時直接將緩存的數(shù)據(jù)發(fā)送回去,這就是反向代理的技術(shù),而前面所說的轉(zhuǎn)發(fā)的那種是正向代理。
正向代理服務(wù)器本質(zhì)上將各種請求收集在一起,方便對請求做管理
反向代理服務(wù)器往往作為一個緩存
而通過反向代理服務(wù)器把到來的流量或請求較為均衡地分散到各個集群不同的主機(jī)上,叫負(fù)載均衡。
注意:
需要注意的是,這里的代理服務(wù)與NAT服務(wù)是完全不同的東西,雖然看上去很像。
代理服務(wù)是一個應(yīng)用層服務(wù),可以部署在任意設(shè)備上,工作在應(yīng)用層,我們個人向代理服務(wù)器發(fā)起請求,然后他再去訪問目標(biāo)服務(wù)器。
而NAT服務(wù)是一個網(wǎng)絡(luò)層服務(wù),部署在網(wǎng)關(guān)設(shè)備上,工作在網(wǎng)絡(luò)層,我們請求的是目標(biāo)服務(wù)器。
六、DHCP
DHCP是一種網(wǎng)絡(luò)協(xié)議,用于自動分配IP地址和其他與網(wǎng)絡(luò)連接相關(guān)的配置信息給網(wǎng)絡(luò)中的設(shè)備。
如果每到一個新地方,每連接一臺新設(shè)備,都需要設(shè)置一次IP地址,這無疑是一件非常麻煩的事情。所以為了實(shí)現(xiàn)自動設(shè)置IP地址,統(tǒng)一管理IP地址分配,就產(chǎn)生了DHCP。文章來源:http://www.zghlxwxcb.cn/news/detail-622252.html
當(dāng)主機(jī)連接到網(wǎng)關(guān)設(shè)備時,就會廣播DHCP請求,獲取到網(wǎng)關(guān)的IP地址,以及DHCP服務(wù)自動分配給自己的IP地址,生成自己的路由表。
注意:文章來源地址http://www.zghlxwxcb.cn/news/detail-622252.html
- 在大型網(wǎng)絡(luò)環(huán)境中,可能會有一個或多個專門的DHCP服務(wù)器,用于管理和分配大量設(shè)備的IP地址和配置信息。這些 DHCP 服務(wù)器可以集中管理整個網(wǎng)絡(luò)中的 IP 地址池,并為連接到網(wǎng)絡(luò)的設(shè)備動態(tài)分配合適的 IP 地址,使每個設(shè)備都能夠在網(wǎng)絡(luò)中進(jìn)行通信。
- DHCP服務(wù)器通常支持其他配置參數(shù)的分配,例如子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器等。通過 DHCP,網(wǎng)絡(luò)管理員可以更輕松地管理和配置大量設(shè)備,而無需手動為每個設(shè)備分配和配置網(wǎng)絡(luò)信息。
- 在小型網(wǎng)絡(luò)或家庭網(wǎng)絡(luò)環(huán)境,路由器通常集成了DHCP服務(wù)器的功能,因此路由器可以充當(dāng) DHCP 服務(wù)器。但對于大型網(wǎng)絡(luò)或要求更復(fù)雜網(wǎng)絡(luò)配置的環(huán)境,會單獨(dú)設(shè)置專用的 DHCP 服務(wù)器
到了這里,關(guān)于Linux【網(wǎng)絡(luò)基礎(chǔ)】數(shù)據(jù)鏈路層&IP協(xié)議技術(shù)補(bǔ)充&DNS&DHCP的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!