計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識入門
計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識入門
網(wǎng)絡(luò)是由若干節(jié)點和連接這些節(jié)點的鏈路構(gòu)成,表示諸多對象及其相互聯(lián)系。在數(shù)學(xué)上,網(wǎng)絡(luò)是一種圖,一般認(rèn)為專指加權(quán)圖。網(wǎng)絡(luò)除了數(shù)學(xué)定義外,還有具體的物理含義,即網(wǎng)絡(luò)是從某種相同類型的實際問題中抽象出來的模型。在計算機(jī)領(lǐng)域中,網(wǎng)絡(luò)是信息傳輸、接收、共享的虛擬平臺,通過它把各個點、面、體的信息聯(lián)系到一起,從而實現(xiàn)這些資源的共享。網(wǎng)絡(luò)是人類發(fā)展史來最重要的發(fā)明,提高了科技和人類社會的發(fā)展。下面是小編收集整理的計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識入門范文,歡迎借鑒參考。
計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識入門(一)
網(wǎng)絡(luò)的基本概念
客戶端:應(yīng)用 C/S(客戶端/服務(wù)器) B/S(瀏覽器/服務(wù)器)
服務(wù)器:為客戶端提供服務(wù)、數(shù)據(jù)、資源的機(jī)器
請求:客戶端向服務(wù)器索取數(shù)據(jù)點擊免費下載海量工程資料
響應(yīng):服務(wù)器對客戶端請求作出反應(yīng),一般是返回給客戶端數(shù)據(jù)
URL
Uniform Resource Locator(統(tǒng)一資源定位符)
網(wǎng)絡(luò)中每一個資源都對應(yīng)唯一的地址——URL
IP 、子網(wǎng)掩碼 、路由器 、DNS
IP地址
IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個網(wǎng)絡(luò)和每一臺主機(jī)分配一個邏輯地址,以此來屏蔽物理地址(每個機(jī)器都有一個編碼,如MAC上就有一個叫MAC地址的東西)的差異。是32位二進(jìn)制數(shù)據(jù),通常以十進(jìn)制表示,并以“.”分隔。IP地址是一種邏輯地地址,用來標(biāo)識網(wǎng)絡(luò)中一個個主機(jī),在本地局域網(wǎng)上是惟一的。
IP
IP(網(wǎng)絡(luò)之間互連的協(xié)議)它是能使連接到網(wǎng)上的所有計算機(jī)網(wǎng)絡(luò)實現(xiàn)相互通信的一套規(guī)則,規(guī)定了計算機(jī)在因特網(wǎng)上進(jìn)行通信時應(yīng)當(dāng)遵守的規(guī)則。任何廠家生產(chǎn)的計算機(jī)系統(tǒng),只要遵守IP協(xié)議就可以與因特網(wǎng)互連互通。IP地址有唯一性,即每臺機(jī)器的IP地址在全世界是唯一的。這里指的是網(wǎng)絡(luò)上的真實IP它是通過本機(jī)IP地址和子網(wǎng)掩碼的"與"運算然后再通過各種處理算出來的(要遵守TCP協(xié)議還要加報文及端口什么的,我沒有細(xì)追究,現(xiàn)在還用不上,反正暫時知道被處理過的就行了)
子網(wǎng)掩碼
要想理解什么是子網(wǎng)掩碼,就不能不了解IP地址的構(gòu)成?;ヂ?lián)網(wǎng)是由許多小型網(wǎng)絡(luò)構(gòu)成的,每個網(wǎng)絡(luò)上都有許多主機(jī),這樣便構(gòu)成了一個有層次的結(jié)構(gòu)。IP地址在設(shè)計時就考慮到地址分配的層次特點,將每個IP地址都分割成網(wǎng)絡(luò)號和主機(jī)號兩部分,以便于IP地址的尋址操作。
IP地址的網(wǎng)絡(luò)號和主機(jī)號各是多少位呢?如果不指定,就不知道哪些位是網(wǎng)絡(luò)號、哪些是主機(jī)號,這就需要通過子網(wǎng)掩碼來實現(xiàn)。什么是子網(wǎng)掩碼子網(wǎng)掩碼不能單獨存在,它必須結(jié)合IP地址一起使用。子網(wǎng)掩碼只有一個作用,就是將某個IP地址劃分成網(wǎng)絡(luò)地址和主機(jī)地址兩部分子網(wǎng)掩碼的設(shè)定必須遵循一定的規(guī)則。與IP地址相同,子網(wǎng)掩碼的長度也是32位,左邊是網(wǎng)絡(luò)位,用二進(jìn)制數(shù)字“1”表示;右邊是主機(jī)位,用二進(jìn)制數(shù)字“0”表示。假設(shè)IP地址為“192.168.1.1”子網(wǎng)掩碼為“255.255.255.0”。其中,“1”有24個,代表與此相對應(yīng)的IP地址左邊24位是網(wǎng)絡(luò)號;“0”有8個,代表與此相對應(yīng)的IP地址右邊8位是主機(jī)號。這樣,子網(wǎng)掩碼就確定了一個IP地址的32位二進(jìn)制數(shù)字中哪些是網(wǎng)絡(luò)號、哪些是主機(jī)號。這對于采用TCP/IP協(xié)議的網(wǎng)絡(luò)來說非常重要,只有通過子網(wǎng)掩碼,才能表明一臺主機(jī)所在的子網(wǎng)與其他子網(wǎng)的關(guān)系,使網(wǎng)絡(luò)正常工作。
常用的子網(wǎng)掩碼有數(shù)百種,這里只介紹最常用的兩種子網(wǎng)掩碼。
子網(wǎng)掩碼是“255.255.255.0”的網(wǎng)絡(luò):
最后面一個數(shù)字可以在0~255范圍內(nèi)任意變化,因此可以提供256個IP地址。但是實際可用的IP地址數(shù)量是256-2,即254個,因為主機(jī)號不能全是“0”或全是“1”。
點擊免費下載海量工程資料
子網(wǎng)掩碼是“255.255.0.0”的網(wǎng)絡(luò):
后面兩個數(shù)字可以在0~255范圍內(nèi)任意變化,可以提供255²個IP地址。但是實際可用的IP地址數(shù)量是255²-2,即65023個。
IP地址的子網(wǎng)掩碼設(shè)置不是任意的。如果將子網(wǎng)掩碼設(shè)置過大,也就是說子網(wǎng)范圍擴(kuò)大,那么,根據(jù)子網(wǎng)尋徑規(guī)則,很可能發(fā)往和本地主機(jī)不在同一子網(wǎng)內(nèi)的目標(biāo)主機(jī)的數(shù)據(jù),會因為錯誤的判斷而認(rèn)為目標(biāo)主機(jī)是在同一子網(wǎng)內(nèi),那么,數(shù)據(jù)包將在本子網(wǎng)內(nèi)循環(huán),直到超時并拋棄,使數(shù)據(jù)不能正確到達(dá)目標(biāo)主機(jī),導(dǎo)致網(wǎng)絡(luò)傳輸錯誤;如果將子網(wǎng)掩碼設(shè)置得過小,那么就會將本來屬于同一子網(wǎng)內(nèi)的機(jī)器之間的通信當(dāng)做是跨子網(wǎng)傳輸,數(shù)據(jù)包都交給缺省網(wǎng)關(guān)處理,這樣勢必增加缺省網(wǎng)關(guān)(文章下方有解釋)的負(fù)擔(dān),造成網(wǎng)絡(luò)效率下降。因此,子網(wǎng)掩碼應(yīng)該根據(jù)網(wǎng)絡(luò)的規(guī)模進(jìn)行設(shè)置。如果一個網(wǎng)絡(luò)的規(guī)模不超過254臺電腦,采用“255.255.255.0”作為子網(wǎng)掩碼就可以了,現(xiàn)在大多數(shù)局域網(wǎng)都不會超過這個數(shù)字,因此“255.255.255.0”是最常用的IP地址子網(wǎng)掩碼;假如在一所大學(xué)具有1500多臺電腦,這種規(guī)模的局域網(wǎng)可以使用“255.255.0.0”。
網(wǎng)關(guān)
網(wǎng)關(guān)實質(zhì)上是一個網(wǎng)絡(luò)通向其他網(wǎng)絡(luò)的IP地址。比如有網(wǎng)絡(luò)A和網(wǎng)絡(luò)B,網(wǎng)絡(luò)A的IP地址范圍為“192.168.1.1~192.168.1.254”,子網(wǎng)掩碼為255.255.255.0;網(wǎng)絡(luò)B的IP地址范圍為“192.168.2.1~192.168.2.254”,子網(wǎng)掩碼為255.255.255.0。在沒有路由器的情況下,兩個網(wǎng)絡(luò)之間是不能進(jìn)行TCP/IP通信的,即使是兩個網(wǎng)絡(luò)連接在同一臺交換機(jī)(或集線器)上,TCP/IP協(xié)議也會根據(jù)子網(wǎng)掩碼(255.255.255.0)判定兩個網(wǎng)絡(luò)中的主機(jī)處在不同的網(wǎng)絡(luò)里。而要實現(xiàn)這兩個網(wǎng)絡(luò)之間的通信,則必須通過網(wǎng)關(guān)。如果網(wǎng)絡(luò)A中的主機(jī)發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)主機(jī)不在本地網(wǎng)絡(luò)中,就把數(shù)據(jù)包轉(zhuǎn)發(fā)給它自己的網(wǎng)關(guān),再由網(wǎng)關(guān)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)B的網(wǎng)關(guān),網(wǎng)絡(luò)B的網(wǎng)關(guān)再轉(zhuǎn)發(fā)給網(wǎng)絡(luò)B的某個主機(jī)。網(wǎng)絡(luò)B向網(wǎng)絡(luò)A轉(zhuǎn)發(fā)數(shù)據(jù)包的過程也是如此 所以說,只有設(shè)置好網(wǎng)關(guān)的IP地址,TCP/IP協(xié)議才能實現(xiàn)不同網(wǎng)絡(luò)之間的相互通信。那么這個IP地址是哪臺機(jī)器的IP地址呢?網(wǎng)關(guān)的IP地址是具有路由功能的設(shè)備的IP地址,具有路由功能的設(shè)備有路由器、啟用了路由協(xié)議的服務(wù)器(實質(zhì)上相當(dāng)于一臺路由器)、代理服務(wù)器(也相當(dāng)于一臺路由器)。
路由器(Windows下叫默認(rèn)網(wǎng)關(guān),網(wǎng)關(guān)就是路由,路由就是網(wǎng)關(guān)不要蒙)
如果搞清了什么是網(wǎng)關(guān),默認(rèn)網(wǎng)關(guān)也就好理解了。就好像一個房間可以有多扇門一樣,一臺主機(jī)可以有多個網(wǎng)關(guān)。默認(rèn)網(wǎng)關(guān)的意思是一臺主機(jī)如果找不到可用的網(wǎng)關(guān),就把數(shù)據(jù)包發(fā)給默認(rèn)指定的網(wǎng)關(guān),由這個網(wǎng)關(guān)來處理數(shù)據(jù)包。現(xiàn)在主機(jī)使用的網(wǎng)關(guān),一般指的是默認(rèn)網(wǎng)關(guān)。
如何設(shè)置默認(rèn)網(wǎng)關(guān) 一臺電腦的默認(rèn)網(wǎng)關(guān)是不可以隨隨便便指定的,必須正確地指定,否則一臺電腦就會將數(shù)據(jù)包發(fā)給不是網(wǎng)關(guān)的電腦,從而無法與其他網(wǎng)絡(luò)的電腦通信。默認(rèn)網(wǎng)關(guān)的設(shè)定有手動設(shè)置和自動設(shè)置兩種方式。
手動設(shè)置:手動設(shè)置適用于電腦數(shù)量比較少、TCP/IP參數(shù)基本不變的情況,比如只有幾臺到十幾臺電腦。因為這種方法需要在聯(lián)入網(wǎng)絡(luò)的每臺電腦上設(shè)置“默認(rèn)網(wǎng)關(guān)”,非常費勁,一旦因為遷移等原因?qū)е卤仨毿薷哪J(rèn)網(wǎng)關(guān)的IP地址,就會給網(wǎng)管帶來很大的麻煩,所以不推薦使用。需要特別注意的是:默認(rèn)網(wǎng)關(guān)必須是電腦自己所在的網(wǎng)段中的IP地址,而不能填寫其他網(wǎng)段中的IP地址。
自動設(shè)置:自動設(shè)置就是利用DHCP服務(wù)器來自動給網(wǎng)絡(luò)中的電腦分配IP地址、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)。這樣做的好處是一旦網(wǎng)絡(luò)的默認(rèn)網(wǎng)關(guān)發(fā)生了變化時,只要更改了DHCP服務(wù)器中默認(rèn)網(wǎng)關(guān)的設(shè)置,那么網(wǎng)絡(luò)中所有的電腦均獲得了新的默認(rèn)網(wǎng)關(guān)的IP地址。這種方法適用于網(wǎng)絡(luò)規(guī)模較大、TCP/IP參數(shù)有可能變動的網(wǎng)絡(luò)。另外一種自動獲得網(wǎng)關(guān)的辦法是通過安裝代理服務(wù)器軟件(如MS Proxy)的客戶端程序來自動獲得,其原理和方法和DHCP有相似之處。由于篇幅所限,就不再詳述了。
缺省網(wǎng)關(guān)
缺省網(wǎng)關(guān)(Default Gateway)是計算機(jī)網(wǎng)絡(luò)中一個如何將數(shù)據(jù)包轉(zhuǎn)發(fā)到其他網(wǎng)絡(luò)中的節(jié)點。在一個典型的TCP / IP網(wǎng)絡(luò),節(jié)點(如服務(wù)器、工作站和網(wǎng)絡(luò)設(shè)備)都有一個定義的默認(rèn)路由設(shè)置(指向默認(rèn)網(wǎng)關(guān))??梢栽跊]有特定路由的情況下,明確出發(fā)送數(shù)據(jù)包的下一跳IP地址。
可以看出缺省網(wǎng)關(guān)就是默認(rèn)網(wǎng)關(guān),那么有人會說既然有一樣為什么又憑空多出來一個缺省網(wǎng)關(guān),我的理解是這樣的,應(yīng)該說默認(rèn)網(wǎng)關(guān)是缺省網(wǎng)關(guān)的一個子集。缺省網(wǎng)關(guān)有一個定義的默認(rèn)路由設(shè)置(指向默認(rèn)網(wǎng)關(guān)),缺省網(wǎng)關(guān)就相當(dāng)于一個代理服務(wù)器暫時管理發(fā)送的數(shù)據(jù)包,當(dāng)發(fā)送到目標(biāo)主機(jī)時先由目標(biāo)主機(jī)的缺省網(wǎng)關(guān)接收再找到對應(yīng)的默認(rèn)網(wǎng)關(guān),就相當(dāng)于缺省網(wǎng)關(guān)是父類,默認(rèn)網(wǎng)關(guān)是子類~~
DNS服務(wù)器
域名服務(wù)器(Domain Name Server)。在Internet上域名與IP地址之間是一一對應(yīng)的,域名雖然便于人們記憶,但機(jī)器之間只能互相認(rèn)識IP地址,它們之間的轉(zhuǎn)換工作稱為域名解析,域名解析需要由專門的域名解析服務(wù)器來完成,DNS就是進(jìn)行域名解析的服務(wù)器 。
DHCP服務(wù)器
DHCP指的是由服務(wù)器控制一段IP地址范圍,客戶機(jī)登錄服務(wù)器時就可以自動獲得服務(wù)器分配的IP地址和子網(wǎng)掩碼。提升地址的使用率。
MAC地址
MAC地址就如同我們身份證上的身份證號碼,具有全球唯一性。(知道這個就行了,不用往下看了)
MAC(Media Access Control,介質(zhì)訪問控制)地址
前24位叫做組織唯一標(biāo)志符(Organizationally Unique Identifier,即OUI),是由IEEE的注冊管理機(jī)構(gòu)給不同廠家分配的代碼,區(qū)分了不同的廠家。
后24位是由廠家自己分配的,稱為擴(kuò)展標(biāo)識符。同一個廠家生產(chǎn)的網(wǎng)卡中MAC地址后24位是不同的。
網(wǎng)卡的物理地址通常是由網(wǎng)卡生產(chǎn)廠家燒入網(wǎng)卡的EPROM(一種閃存芯片,通常可以通過程序擦寫),它存儲的是傳輸數(shù)據(jù)時真正賴以標(biāo)識發(fā)出數(shù)據(jù)的電腦和接收數(shù)據(jù)的主機(jī)的地址。點擊免費下載海量工程資料
也就是說,在網(wǎng)絡(luò)底層的物理傳輸過程中,是通過物理地址來識別主機(jī)的,它一定是全球唯一的。比如,著名的以太網(wǎng)卡,其物理地址是48bit(比特位)的整數(shù),如:44-45-53-54-00-00,以機(jī)器可讀的方式存入主機(jī)接口中。以太網(wǎng)地址管理機(jī)構(gòu)(除了管這個外還管別的)(IEEE)(IEEE:電氣和電子工程師協(xié)會)將以太網(wǎng)地址,也就是48比特的不同組合,分為若干獨立的連續(xù)地址組,生產(chǎn)以太網(wǎng)網(wǎng)卡的廠家就購買其中一組,具體生產(chǎn)時,逐個將唯一地址賦予以太網(wǎng)卡。
在一個穩(wěn)定的網(wǎng)絡(luò)中,IP地址和MAC地址是成對出現(xiàn)的。如果一臺計算機(jī)要和網(wǎng)絡(luò)中另一外計算機(jī)通信,那么要配置這兩臺計算機(jī)的IP地址,MAC地址是網(wǎng)卡出廠時設(shè)定的,這樣配置的IP地址就和MAC地址形成了一種對應(yīng)關(guān)系。在數(shù)據(jù)通信時,IP地址負(fù)責(zé)表示計算機(jī)的網(wǎng)絡(luò)層地址,網(wǎng)絡(luò)層設(shè)備(如路由器)根據(jù)IP地址來進(jìn)行操作;MAC地址負(fù)責(zé)表示計算機(jī)的數(shù)據(jù)鏈路層地址,數(shù)據(jù)鏈路層設(shè)備(如交換機(jī))根據(jù)MAC地址來進(jìn)行操作。IP和MAC地址這種映射關(guān)系由ARP(Address Resolution Protocol,地址解析協(xié)議)協(xié)議完成。
服務(wù)器
服務(wù)器的分類
按照軟件開發(fā)階段來分,服務(wù)器可以大致分為2種
(1)遠(yuǎn)程服務(wù)器
別名:外網(wǎng)服務(wù)器、正式服務(wù)器
使用階段:應(yīng)用上線后使用的服務(wù)器
使用人群:供全體用戶使用
速度:服務(wù)器的性能、用戶的網(wǎng)速
(2)本地服務(wù)器
別名:內(nèi)網(wǎng)服務(wù)器、測試服務(wù)器
使用階段:應(yīng)用處于開發(fā)、測試階段使用的服務(wù)器
使用人群:僅供公司內(nèi)部的開發(fā)人員、測試人員使用
速度:由于是局域網(wǎng),所以速度飛快,有助于提高開發(fā)測試效率
本地服務(wù)器的選擇
遠(yuǎn)程服務(wù)器就是本地內(nèi)網(wǎng)服務(wù)器開放外網(wǎng)訪問而已
如果處于學(xué)習(xí)、開發(fā)階段,自己搭建一個本地服務(wù)器即可
端口號
端口包括物理端口和邏輯端口。物理端口是用于連接物理設(shè)備之間的接口,邏輯端口是邏輯上用于區(qū)分服務(wù)的端口。TCP/IP協(xié)議中的端口就是邏輯端口,通過不同的邏輯端口來區(qū)分不同的服務(wù)。
端口有什么用呢?我們知道,一臺擁有IP地址的主機(jī)可以提供許多服務(wù),比如Web服務(wù)、FTP服務(wù)、SMTP服務(wù)等,這些服務(wù)完全可以通過1個IP地址來實現(xiàn)。那么,主機(jī)是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址,因為IP 地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對多的關(guān)系。實際上是通過“IP地址+端口號”來區(qū) 分不同的服務(wù)的。
公認(rèn)端口(Well-Known Ports)
這類端口也常稱之為"常用端口"。這類端口的端口號從0到1023,它們緊密綁定于一些特定的服務(wù)。通常這些端口的通信明確表明了某種服務(wù)的協(xié)議,這種端口是不可再重新定義它的作用對象。80端口實際上總是HTTP通信所使用的,而23號端口則是Telnet服務(wù)專用的。
注冊端口(Registered Ports)
端口號從1025到49151。分配給用戶進(jìn)程或應(yīng)用程序。這些進(jìn)程主要是用戶選擇安裝的一些應(yīng)用程序,而不是分配好的公認(rèn)端口的常用程序。
動態(tài)和/或私有端口(Dynamic and/or Private Ports)
之所以稱為動態(tài)端口,因為它一般不固定分配某種服務(wù),而是動態(tài)分配。
計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識入門(二)
一、網(wǎng)絡(luò)分層
1.七層(接口):解耦,便于開發(fā)
應(yīng)用層:
7.應(yīng)用層:nginx,軟件,瀏覽器,DNS
6.表示層
傳輸層:
5.會話層
4.傳輸層:lvs負(fù)載均衡
網(wǎng)絡(luò)層:
3.網(wǎng)絡(luò)層
鏈路層
2.鏈路層
1.物理層
2.四層:TCP/IP協(xié)議,OSI 7L參考模型對7層的簡化分層和實現(xiàn)
舉例:GET / www.baidu.com/
1.應(yīng)用層(應(yīng)用層+表示層糅合):對數(shù)據(jù)與字符串的封裝
http:字符串書寫格式與兩端方法的交互方式的定義
smtp
ssh
4.傳輸層(會話層+傳輸層糅合)(控制):[三次握手>>(傳輸數(shù)據(jù))>>四次揮手]
連接的定義:非物理的連接,是邏輯連接,是一種狀態(tài)的確認(rèn)(對TCP來說,就是三次握手的狀態(tài)確認(rèn))
tcp:面向連接(狀態(tài))的可靠傳輸協(xié)議
過程:客戶端和服務(wù)端通信,客戶端從65535個端口號中申請一個端口號和服務(wù)器固定端口進(jìn)行通信(一般來說是80端口),三次握手成功后,客戶端和服務(wù)端會各自開辟一個線程來進(jìn)行通信。所以高并發(fā)問題會產(chǎn)生在線程數(shù)量和線程池方面。
udp:不是面向連接的,不可靠的
socket: IP:PORT-IP:PORT
-netstat -natp
5.網(wǎng)絡(luò)層:192.168.9.11
ip.icmp
ROUTE:下一跳
-route -n
6.鏈路層(鏈路層+物理層糅合):
以太網(wǎng):Ethernet:MAC
ARP:全F,兩點通信,交換機(jī)學(xué)習(xí)
arp -a
nginx:負(fù)載5w臺,處在應(yīng)用層,需要在傳輸層建立三次握手后才能進(jìn)行應(yīng)用層數(shù)據(jù)解析和負(fù)載
lvs負(fù)載均衡:負(fù)載10w臺,工作在傳輸層,在三次握手>>數(shù)據(jù)傳輸>>四次揮手的整個過程中都可以監(jiān)視數(shù)據(jù)包的狀態(tài),來進(jìn)行快速的負(fù)載均衡,但是由于lvs沒有權(quán)限觀看應(yīng)用層數(shù)據(jù),所以屬于瞎子負(fù)載,不會根據(jù)數(shù)據(jù)包的真實業(yè)務(wù)需求來進(jìn)行業(yè)務(wù)負(fù)載,可能導(dǎo)致將數(shù)據(jù)包發(fā)送到錯誤的服務(wù)器(不干這個業(yè)務(wù)的服務(wù)器),這時需要nginx和lvs負(fù)載搭配使用來可以達(dá)到百萬級別負(fù)載能力。也就是流量先集中在lvs負(fù)載均衡服務(wù)器,然后這些lvs負(fù)載均衡服務(wù)器將這些數(shù)據(jù)發(fā)送給它后面的nginx服務(wù)器,再由nginx服務(wù)器做負(fù)載均衡,發(fā)送給后臺的各種業(yè)務(wù)功能的tomcat服務(wù)器。
二、高并發(fā)與負(fù)載均衡的三種模型推導(dǎo)
1.名詞補(bǔ)充
2.四層網(wǎng)絡(luò)對應(yīng)模型
知識補(bǔ)充:NAT(網(wǎng)絡(luò)地址/IP轉(zhuǎn)換)
S_NAT:數(shù)據(jù)源地址NAT轉(zhuǎn)換
工作過程:
家里上網(wǎng):假設(shè)在192.168.1.1的路由器網(wǎng)關(guān)下有192.168.1.88和192.168.1.66兩個私有IP地址筆記本,他們要訪問百度的公有ip123.123.123.88.他們的數(shù)據(jù)包會通過四層網(wǎng)絡(luò)封裝發(fā)送給廣播地址192.168.1.255并由路由器的網(wǎng)關(guān)來接收并由路由器通過尋找下一跳的方式最終發(fā)送給百度服務(wù)器。由于在互聯(lián)網(wǎng)中,第一點:不允許私有ip的存在,一旦發(fā)現(xiàn)源數(shù)據(jù)來自私有IP(192.168.1.88/66就是私有IP),則會丟棄掉該數(shù)據(jù)包,所以路由器會對私有IP進(jìn)行轉(zhuǎn)換,將私有IP轉(zhuǎn)換為路由器內(nèi)部由網(wǎng)絡(luò)運營商分配給的公網(wǎng)IP也就是18.18.18.8。第二點:很有可能兩個筆記本在建立連接開始申請的端口號都為21212,那么他們的完整端口號為192.168.1.88:21212和192.168.1.66.21212(圖1)。那么在經(jīng)過路由器的私有到公有IP的轉(zhuǎn)換,兩者的轉(zhuǎn)換后的公有IP都為18.18.18.8:21212,那么到時候數(shù)據(jù)從百度回來后,路由器就不知道應(yīng)該還給哪個筆記本了,所以路由器會在里面維護(hù)一個MAP,來對地址轉(zhuǎn)換做記錄(圖2),路由器會申請兩個不同的端口,例如123與212,分配給兩個筆記本(圖2).最終兩個筆記本的公有IP和端口號為18.18.18.8:123與18.18.18.8:212。這樣數(shù)據(jù)包從百度服務(wù)器送回的時候,就可以根據(jù)MAP中的數(shù)據(jù)來區(qū)分應(yīng)該送回給哪個筆記本了。這樣的地址轉(zhuǎn)換過程,稱之為S_NAT地址轉(zhuǎn)換。
虛擬機(jī)上網(wǎng):虛擬機(jī)如果想要訪問百度,則虛擬機(jī)的宿主機(jī)先通過S_NAT將虛擬機(jī)的IP地址和端口號轉(zhuǎn)換成宿主機(jī)的網(wǎng)卡IP地址,然后通過宿主機(jī)網(wǎng)卡再發(fā)送給路由器,路由器再經(jīng)過S_NAT轉(zhuǎn)換發(fā)送給百度服務(wù)器。
負(fù)載均衡器只做轉(zhuǎn)發(fā),不做三次握手,并保證三次握手>>數(shù)據(jù)傳輸>>四次揮手之間整體的過程完整統(tǒng)一,不被切分。
這里的四層負(fù)載均衡是一個簡單實現(xiàn),后臺的Server是集群式部署而不是分布式部署,所以存儲容量并沒有提升。
具體實施
D_NAT:目標(biāo)地址轉(zhuǎn)換
工作原理:客戶端CIP通過TCP/IP訪問負(fù)載均衡服務(wù)器VIP(也就是負(fù)載均衡服務(wù)器),然后負(fù)載均衡服務(wù)器再將客戶端的數(shù)據(jù)包發(fā)送給真實服務(wù)器Server(RIP),但是由于客戶端的目標(biāo)是VIP,而不是RIP,那么RIP在拿到CIP_VIP的數(shù)據(jù)包后,由于發(fā)現(xiàn)其本身RIP與數(shù)據(jù)包目標(biāo)VIP不同,那么服務(wù)器會丟棄掉這個數(shù)據(jù)包。那么握手就不能夠建立起來了。所以在這個過程中,負(fù)載均衡服務(wù)器會將客戶端的CIP_VIP數(shù)據(jù)包監(jiān)視并修改為CIP_RIP數(shù)據(jù)包(原理類似S_NAT),并自己內(nèi)部維護(hù)一個MAP來記錄修改前的地址與修改后的地址以便數(shù)據(jù)會回送給客戶端(將CIP_RIP的ip對應(yīng)關(guān)系改回CIP_VIP的對應(yīng)關(guān)系,如果不這樣做的話,CIP_RIP的數(shù)據(jù)包直接發(fā)送給客戶端,那么客戶端發(fā)現(xiàn)和自己建立的CIP_VIP連接的IP對應(yīng)關(guān)系不對應(yīng),則會丟棄改數(shù)據(jù)包),之后將CIP_RIP數(shù)據(jù)包發(fā)送給RIP,這個修改目標(biāo)IP的轉(zhuǎn)換,稱之為D_NAT。
不足:所有的數(shù)據(jù)都是通過網(wǎng)線發(fā)送的,我們假設(shè)客戶端有10000個,負(fù)載均衡服務(wù)器一個,server兩個分別負(fù)載5000,首先我們要明確一個概念,網(wǎng)絡(luò)的上行速度和下行速度是不一樣的,換句話說,我們訪問百度,只需要包裝一個幾百字節(jié)的數(shù)據(jù)包給服務(wù)器(上行),而服務(wù)器返回給我們html網(wǎng)頁則是很大的,可能幾個MB(下行),那么如果我們負(fù)載均衡服務(wù)器的網(wǎng)線帶寬不夠,能承受上行而不能承受如此高并發(fā)的下行(也就是說能經(jīng)受訪問,但是經(jīng)受不了數(shù)據(jù)都從負(fù)載均衡服務(wù)器回送給客戶端)。那么,速度還是很慢的,所以這時候我們想,下行這件事情不由負(fù)載均衡來干,由真實服務(wù)器RIP來做,來降低負(fù)載均衡服務(wù)器的下行壓力,于是有了下面的模型。
改善后的具體實施:DR模型——直接路由模型
關(guān)鍵點:
1.IP沖突問題:為了能夠讓RIP向客戶端發(fā)送數(shù)據(jù),則Server(RIP)的IP應(yīng)該為VIP,這樣才會匹配客戶端的CIP_VIP請求數(shù)據(jù)包。但是RealServer的IP已經(jīng)是RIP了并且IP必須是唯一的,而且負(fù)載均衡服務(wù)器的IP也是VIP,那么就不符合IP唯一的規(guī)則。解決辦法是在RealServer中配置一個隱含IP為VIP(圖4中的*VIP),且該隱含IP只對自己可見,對外網(wǎng)公網(wǎng)不可見,那么就可以實現(xiàn)向客戶端回送數(shù)據(jù)包VIP_CIP。,并且解決了IP沖突的問題。
2.數(shù)據(jù)包發(fā)送問題:在解決了IP沖突問題后,還存在一個問題就是數(shù)據(jù)包循環(huán)問題,當(dāng)負(fù)載均衡服務(wù)器收到CIP_VIP的數(shù)據(jù)包后,它會根據(jù)自己的路由表進(jìn)行負(fù)載均衡,但是發(fā)現(xiàn)自己本身就是VIP,所以會將這個數(shù)據(jù)包又直接發(fā)給自己,不會做負(fù)載均衡。解決這一問題是要干擾負(fù)載均衡器,將CIP_VIP數(shù)據(jù)包進(jìn)行一個加工,將數(shù)據(jù)包的目標(biāo)MAC地址,拼接成RealServer(RIP)的MAC地址:CIP_VIP+RIP-MAC。也就是說與D_NAT不同,D_NAT是更改IP地址將CIP_VIP變成CIP_RIP發(fā)送給RealServ-er,是IP層做的工作;而我們現(xiàn)在做的工作是IP層的目標(biāo)IP不做改動,將鏈路層的MAC地址由負(fù)載均衡的MAC地址修改成RealServer的MAC地址。
3.局域網(wǎng)局限性問題:在解決了1和2之后,還是有問題,就是負(fù)載均衡服務(wù)器和RealServer必須在同一網(wǎng)段,也就是在同一個局域網(wǎng)下。如果不在同一個局域網(wǎng)下的話,那么負(fù)載均衡和RealServer之間相當(dāng)于是互聯(lián)網(wǎng)了,那么數(shù)據(jù)包從負(fù)載均衡要走到RealServer的過程是要經(jīng)過路由判定的,要經(jīng)過多個跳躍尋找網(wǎng)關(guān)了。而路由判定是IP層的工作,那么在IP層,MAC地址是要被替代的,那么根據(jù)路由最近判定原則,在第二跳MAC地址又會被刷新覆蓋為負(fù)載均衡服務(wù)器的IP地址,那么數(shù)據(jù)包又發(fā)不出去了,被送回到負(fù)載均衡服務(wù)器。
4.后端RealServer不能使用NAT模式:在解決了1,2,3后,CIP_VIP+RIP-MAC的數(shù)據(jù)包終于發(fā)送到了RealServer。RealServer在確認(rèn)后將同樣以Tcp/IP的方式發(fā)送給客戶端,這時候不能使用NAT模式了,因為NAT模式會更改IP地址,將導(dǎo)致客戶端因為IP地址不匹配同樣不會接受數(shù)據(jù)包。所以RealServer不能以路由或者交換機(jī)的方式接入互聯(lián)網(wǎng),要直接接入互聯(lián)網(wǎng)。所以RealServer的默認(rèn)網(wǎng)關(guān)應(yīng)該直接指向運營商(ISP),并有一個公網(wǎng)IP地址(PIP,也就是RealServer的下一跳)。
DR模型的再改善:TUN隧道模型——突破DR模型物理限制(LVS與RealServer必須在同一局域網(wǎng)下,也就是同一個區(qū)域下)
工作原理:就是在IP層封裝兩層,最好理解TUN隧道技術(shù)的就是,我們要訪問VIP,那么客戶端數(shù)據(jù)包通過路由轉(zhuǎn)發(fā)到了負(fù)載均衡服務(wù)器,負(fù)載均衡服務(wù)器再在CIP_VIP外層包一層IP層信息DIP_RIP,則DIP與RIP之間通過配置好的隧道技術(shù)可以通信了。
計算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識入門(三)
一、網(wǎng)線(雙絞線)連接線的制作
雙絞線制作有 568A 和 568B 兩個標(biāo)準(zhǔn),日常以 568B 標(biāo)準(zhǔn)較常用。 568B 標(biāo)準(zhǔn)按顏色排序為: 1- 橙白、 2- 橙、3- 綠白、4- 藍(lán)、 5- 藍(lán)白、 6- 綠、 7- 棕白、 8- 棕(使用 568A 標(biāo)準(zhǔn)可將568B 標(biāo)準(zhǔn)中橙 - 綠互換,橙白綠 - 白互換即可),直通線制作必須保證雙絞線兩端的雙絞線針腳序列一樣;交叉線制作在直通線基礎(chǔ)上保證橙綠對應(yīng),橙白綠白對應(yīng)(可以理解為一端采用 568A 標(biāo)準(zhǔn),另一端采用 568B 標(biāo)準(zhǔn))。
網(wǎng)線制作好后再一個主要問題是測試網(wǎng)絡(luò),通常檢驗網(wǎng)絡(luò)最常用的參數(shù)是 [-t] 和 [-a] 。檢驗網(wǎng)絡(luò)是否連通、網(wǎng)卡安裝及設(shè)置是否正確可采用以下辦法: 首先 Ping 127.0.0.1 檢驗網(wǎng)絡(luò)回環(huán);第二 Ping 本機(jī) IP 地址,檢測網(wǎng)卡安裝設(shè)置是否完好;第三 Ping 同一網(wǎng)斷中其他計算機(jī) IP 地址,檢測網(wǎng)線是否連好, 整個網(wǎng)絡(luò)是否暢通; 最后要檢驗的是 Internet接入商的 DNS(有些接入商禁止 Ping DNS服務(wù)器的 IP 地址,這一點值得注意)或網(wǎng)關(guān),檢測 Internet 連接是否完好。
二、 網(wǎng)絡(luò)運行過程中的故障排除
網(wǎng)絡(luò)運行過程中或系統(tǒng)安裝過程中一些網(wǎng)絡(luò)為什么不能連接的問題,原因也是多方面的,除一些設(shè)置或軟件禁止而使網(wǎng)絡(luò)不能連通外,大多是由于以下原因造成:
1,網(wǎng)卡未能正確安裝或網(wǎng)卡本身有問題。一般插上網(wǎng)卡,系統(tǒng)沒有提示,說明網(wǎng)卡沒有插好或接口有問題;安裝驅(qū)動后 Ping 回環(huán)正確但 Ping自己 IP不通,首先要檢查網(wǎng)卡是否有問題; Ping 本機(jī)IP通但相鄰微機(jī)不能通訊,首先應(yīng)該檢查網(wǎng)線或網(wǎng)卡接口是否有問題。網(wǎng)卡檢測最好的辦法是代替法,即用問題網(wǎng)卡代替運行正常的同型號網(wǎng)卡。在使用替換法之前最好檢測一下本機(jī)網(wǎng)卡是否插好,不妨換個插槽試試。
2,TCP/IP 協(xié)議的問題。微機(jī)之間不能通訊有問題,原因大多是由于 TCP/IP 協(xié)議引起的。 由于 TCP/IP 協(xié)議本身很脆弱,容易導(dǎo)致通訊不暢通,一般表現(xiàn)是相鄰微機(jī)之間不能通訊(網(wǎng)上鄰居或搜索計算機(jī)找不到) ;還有一些雖然 Internet能正常連接,相鄰微機(jī)之間卻不能通訊。解決這一問題的辦法就是重新添加 TCP/IP 協(xié)議。添加 TCP/IP 協(xié)議在 Win2000及以后發(fā)布的系統(tǒng)中要特別注意,刪除該協(xié)議也許意味著你系統(tǒng)的崩潰,所以在重新啟動前要保證該協(xié)議能夠正確添加上。檢測方法:在排除連接錯誤和網(wǎng)卡接口錯誤后,Ping 本機(jī) IP 通但相鄰微機(jī)不能通訊,是否因TCP/IP 協(xié)議引起故障就應(yīng)該注意了。
3,驅(qū)動程序問題。這一問題主要表現(xiàn)在一些雜牌網(wǎng)卡上,由于沒有正確的驅(qū)動,只能使用一些兼容驅(qū)動程序,從而產(chǎn)生各種意想不到的問題。檢測方法 ing 回環(huán)正確但 Ping 自己 IP 不通,說明網(wǎng)卡驅(qū)動可能有問題(應(yīng)排除網(wǎng)卡硬件故障原因)網(wǎng)卡驅(qū)動安裝不正確。
4,網(wǎng)絡(luò)設(shè)置問題。網(wǎng)絡(luò)設(shè)置包括 IP 、掩碼、網(wǎng)關(guān)和 DNS等,撥號上網(wǎng)還包括用戶名和密碼。因此在網(wǎng)絡(luò)故障出現(xiàn)后,首先檢查設(shè)置是否有問題。一些使用 DHCP服務(wù)的網(wǎng)絡(luò)這一問題就簡單多了,不需要自己設(shè)置網(wǎng)絡(luò)。
三、 網(wǎng)絡(luò)維護(hù)常見的一些具故障解決方案
1,訪問網(wǎng)上鄰居慢。計算機(jī)之間的連接速度不僅非常慢,而且只能找到其中的一部分計算機(jī)。
第一,既然能看到一部分電腦,說明網(wǎng)絡(luò)連接正常,而且正確安裝了網(wǎng)卡驅(qū)動程序和網(wǎng)絡(luò)通訊協(xié)議;
第二,既然 IP 地址與子網(wǎng)掩碼沒有錯誤,說明 IP 地址信息設(shè)置正確;第三,既然域名與工作組相同,應(yīng)當(dāng)能夠非常快地找到同一工作組內(nèi)的其他用戶才對。那么造成這些原因的可能有以下幾點: a,沒有安裝 NetBEUI 協(xié)議。TCP/IP 是一個效率不高的協(xié)議, 因此,在小型局域網(wǎng)中,通常都使用占用系統(tǒng)資源更小、而且效率更高的 NetBEUI 協(xié)議。
b,網(wǎng)卡驅(qū)動程序有缺陷。雖然許多網(wǎng)卡都采用相同的芯片組,但是,驅(qū)動程序并不完全相同。盡管有缺陷的驅(qū)動程序并不一定會導(dǎo)致通訊失敗,但卻往往會在傳輸效率上大打折扣。因此,應(yīng)當(dāng)確認(rèn)網(wǎng)卡驅(qū)動程序的選擇和安裝無誤。
2,何時用直通線,何時該用交叉線 ?
a、以下情況必須使用交叉線:
I. 兩臺計算機(jī)通過網(wǎng)卡直接連接時;
II. 以級聯(lián)方式將集線器或交換機(jī)的普通端口連接在一起時。
b、以下情況必須使用直通線:
I. 計算機(jī)連接至集線器或交換機(jī)時;
II. 一臺集線器或交換機(jī)以 Up-Link 端口連接至另一臺集線器或交換機(jī)的普通端口時;
III. 集線器或交換機(jī)與路由器的 LAN端口連接時。
c、以下情況既可使用直通線,也可使用交叉線:
I. 集線器或交換機(jī)的 RJ-45 端口擁有極性識別功能,可以自動判斷所連接的另一端設(shè)備,并自動實現(xiàn) MDI/MDI-Ⅱ間的切換;
II. 集線器或交換機(jī)的特定端口擁有 MDI/MDI- Ⅱ開關(guān),可通過撥動該開關(guān)選擇使用直通線或交叉線與其他集線設(shè)備連接。
3, 集線器 +路由器無法共享上網(wǎng),可能導(dǎo)致接集線器的計算機(jī)無法訪問 Internet 的原因有三個:
a、集線器自身故障。故障現(xiàn)象是集線器上的計算機(jī)彼此之間無法 Ping 通,更無法 Ping 通路由器。該故障所影響的只能是連接至集線器上的所有計算機(jī)。
b、級聯(lián)故障 . 例如路由器與集線器之間的級聯(lián)跳線采用了不正確的線序,或者是跳線連通性故障,或者是采用了不正確的級聯(lián)端口。故障現(xiàn)象是集線器上的計算機(jī)之間可以Ping 通,但無法 Ping 通路由器。不過,直接連接至路由器LAN端口的計算機(jī)的 Internet 接入將不受影響。
c、寬帶路由器故障 . 如果是 LAN端口故障,結(jié)果將與級聯(lián)故障類似;如果是路由故障,結(jié)果將是網(wǎng)絡(luò)內(nèi)的計算機(jī)都無法接入 Internet ,無論連接至路由器的 LAN端口, 還是連接至集線器。
4, “本地連接”光發(fā)不收可能是如下原因:
a,網(wǎng)卡與 Windows XP 不兼容或者兼容性不好,試著安裝其他操作系統(tǒng)試一下。
b ,網(wǎng)線有問題,雖然用替換法測試過,但是,最好還是將故障計算機(jī)搬到能夠連接到網(wǎng)絡(luò)的計算機(jī)處替換一下。
c ,如果網(wǎng)卡是 10/100Mbps 自適應(yīng),可以試著把網(wǎng)卡速率設(shè)置為 10Mbps試一下(選擇網(wǎng)卡屬性,在“常規(guī)”選項卡中單擊“配置”按鈕,在“高級”選項卡中的“ Link Speed/Duplex Mode ”后面選擇 10 Half Mode )。
d ,“有發(fā)出的字節(jié)數(shù),而接收到的字節(jié)數(shù)為 0”說明線路發(fā)送數(shù)據(jù)正常,而接收出現(xiàn)問題。因此,連通性故障的可能性最大,也可能是接插處(水晶頭與網(wǎng)卡、集線設(shè)備、信息插座的 RJ45 端口)接觸不好。
5, IP 地址沖突 . 就是該計算機(jī)采用的 IP 地址與同一網(wǎng)絡(luò)中另一臺計算機(jī)的 IP 地址完全相同,從而導(dǎo)致通訊失敗。通常情況下, IP 地址沖突是由于網(wǎng)絡(luò)管理員的 IP 地址分配不當(dāng), 或其他用戶私自亂設(shè) IP 地址造成的。 由于網(wǎng)卡的 MAC地址具有惟一性,因此,可以請網(wǎng)管借助于 MAC地址查找到與你發(fā)生沖突的計算機(jī),并責(zé)令其修改 IP 地址。使用“ipconfig /all ”命令,即可查看計算機(jī)的 IP 地址和 MAC地址。最后使用“ ARP -s IP 地址 網(wǎng)卡物理地址”的命令,將此合法 IP 地址與你的網(wǎng)卡 MAC地址進(jìn)行綁定即可。
四、 一般網(wǎng)絡(luò)故障排除步驟
第一步,當(dāng)分析網(wǎng)絡(luò)故障時,首先要清楚故障現(xiàn)象。
應(yīng)該詳細(xì)說明故障的癥侯和潛在的原因。為此,要確定故障的具體現(xiàn)象,然后確定造成這種故障現(xiàn)象的原因的類型。例如,主機(jī)不響應(yīng)客戶請求服務(wù)??赡艿墓收显蚴侵鳈C(jī)配置問題、接口卡故障或路由器配置命令丟失等。
第二步,收集需要的用于幫助隔離可能故障原因的信息。向用戶、網(wǎng)絡(luò)管理員、管理者和其他關(guān)鍵人物提一些和故障有關(guān)的問題。廣泛的從網(wǎng)絡(luò)管理系統(tǒng)、協(xié)議分析跟蹤、路由器診斷命令的輸出報告或軟件說明書中收集有用的信息。
第三步,根據(jù)收集到的情況考慮可能的故障原因??梢愿鶕?jù)有關(guān)情況排除某些故障原因。例如,根據(jù)某些資料可以排除硬件故障,把注意力放軟件原因上。對于任何機(jī)會都應(yīng)該設(shè)法減少可能的故障原因,以至于盡快的策劃出有效的故障診斷計劃。
第四步,根據(jù)最后的可能的故障原因,建立一個診斷計劃。開始僅用一個最可能的故障原因進(jìn)行診斷活動,這樣可以容易恢復(fù)到故障的原始狀態(tài)。如果一次同時考慮一個以上的故障原因,試圖返回故障原始狀態(tài)就困難的多了。
第五步,執(zhí)行診斷計劃,認(rèn)真做好每一步測試和觀察,直到故障癥狀消失。
第六步,每改變一個參數(shù)都要確認(rèn)其結(jié)果。分析結(jié)果確定問題是否解決,如果沒有解決,繼續(xù)下去,直到解決。
小結(jié) :
網(wǎng)絡(luò)故障診斷應(yīng)該實現(xiàn)三方面的目的:確定網(wǎng)絡(luò)的故障點,恢復(fù)網(wǎng)絡(luò)的正常運行;發(fā)現(xiàn)網(wǎng)絡(luò)規(guī)劃和配置中欠佳之處,改善和優(yōu)化網(wǎng)絡(luò)的性能;觀察網(wǎng)絡(luò)的運行狀況,及時預(yù)測網(wǎng)絡(luò)通信質(zhì)量。
網(wǎng)絡(luò)故障診斷以網(wǎng)絡(luò)原理、網(wǎng)絡(luò)配置和網(wǎng)絡(luò)運行的知識為基礎(chǔ)。從故障現(xiàn)象出發(fā), 以網(wǎng)絡(luò)診斷工具為手段獲取診斷信息,確定網(wǎng)絡(luò)故障點,查找問題的根源,排除故障,恢復(fù)網(wǎng)絡(luò)正常運行。