1.1 影響網絡傳輸速率的(de)因素
① 網卡的(de)速率
② 傳輸介質速率
1Mbps ==>b==>bit → 網絡數據單位
B==>Byte → 存儲數據單位
100M=100/8=12.5MB 1B=8b 1b=1/8B
1.2 交換機概念基礎
實現一(yī)個局域網絡內(nèi),多台主機通訊的(de)需求
在一(yī)個交換網絡裏面實現互相通訊的(de)身份證表示信息:mac地(dì)址。
交換機所連接的(de)網絡稱為(wèi)一(yī)個廣播域,交換機多個接口都在一(yī)個廣播域中
如(rú)下圖,交換機。主要目的(de)是建立一(yī)個局域網絡。讓多台不同主機之間實現通訊。
1.3 路由器基礎概念
隔離(lí)廣播風暴,實現不同局域網(網段)之間主機通訊
在不同交換網絡裏面實現互相通訊的(de)身份證表示信息:ip地(dì)址(邏輯地(dì)址)
IP地(dì)址==局域網表示信息+主機标識信息
網段信息(網絡地(dì)址)+主機地(dì)址信息
實現多個路由器之間路由表信息相同的(de)過程,成為(wèi)路由收斂過程。
利用動态路由器協議實現
靜态路由器協議:需要手工添加路由信息到路由表中
動态路由協議:自(zì)動獲取到其他路由器中路由表的(de)信息
RIP SDPE IS-IS EIGRP
路由器主要兩個作用
① 路由尋址
② 路由選路 如(rú)下圖路由器的(de)概念
1.4 MAC地(dì)址和(hé)IP地(dì)址
MAC地(dì)址
每個網卡在世界上唯一(yī)的(de)身份标識,具有唯一(yī)性;交換機和(hé)服務器的(de)每個接口都有一(yī)個mac地(dì)址;
mac地(dì)址是由12位16進制數組成的(de),如(rú)E0-DB-55-B2-30-6E;
1位16進制數=4位bit;
2位16進制數=8位bit;
所以一(yī)個mac地(dì)址等于48位二進制數;
ip地(dì)址
是由局域網表示段+主機标識;每個局域網內(nèi)的(de)ip地(dì)址是不能重複的(de),但是不同局域網內(nèi)的(de)ip地(dì)址是可(kě)以出現相同的(de)。
如(rú)192.168.2.1;是32位二進制數
mac地(dì)址和(hé)IP地(dì)址區别:
mac地(dì)址隻在一(yī)個局域網內(nèi)有效 小名
IP地(dì)址在不通網段之間都有效 大名
1.5 bit和(hé)Byte,以及傳輸速率
bit是介質傳輸的(de)最小單位,1個二進制數就是1個bit;
Byte是存儲介質中最小單位,也叫字節,一(yī)個英文字母或者數字符号是一(yī)個byte,一(yī)個漢字是2byte,1byte=8bit,1bit=1/8byte
1 1 1 1 1 1 0 0 1byte
bts是每秒鍾傳輸的(de)bit大小,通常說的(de)是端口或者傳輸介質的(de)傳輸速率,如(rú)運營商承諾的(de)100Mbps,實際傳輸文件大小就隻有100Mbps/8=12.5MBS
前沿: 計算機網絡學(xué)習的(de)核心內(nèi)容就是網絡協議的(de)學(xué)習。網絡協議是為(wèi)計算機網絡中進行數據交換而建立的(de)規則、标準或者說是約定的(de)集合。因為(wèi)不同用戶的(de)數據終端可(kě)能采取的(de)字符集是不同的(de),兩者需要進行通信,必須要在一(yī)定的(de)标準上進行。一(yī)個很形象地(dì)比喻就是我們的(de)語言,我們大天朝地(dì)廣人多,地(dì)方性語言也非常豐富,而且方言之間差距巨大。A地(dì)區的(de)方言可(kě)能B地(dì)區的(de)人根本無法接受,所以我們要為(wèi)全國人名進行溝通建立一(yī)個語言标準,這就是我們的(de)普通話的(de)作用。同樣,放眼全球,我們與外國友人溝通的(de)标準語言是英語,所以我們才要苦逼的(de)學(xué)習英語。
計算機網絡協議同我們的(de)語言一(yī)樣,多種多樣。而ARPA公司與1977年(nián)到1979年(nián)推出了一(yī)種名為(wèi)ARPANET的(de)網絡協議受到了廣泛的(de)熱捧,其中最主要的(de)原因就是它推出了人盡皆知的(de)TCP/IP标準網絡協議。目前TCP/IP協議已經成為(wèi)Internet中的(de)“通用語言”,下圖為(wèi)不同計算機群之間利用TCP/IP進行通信的(de)示意圖。
2.1 網絡層次劃分
為(wèi)了使不同計算機廠家生産的(de)計算機能夠相互通信,以便在更大的(de)範圍內(nèi)建立計算機網絡,國際标準化組織(ISO)在1978年(nián)提出了“開放系統互聯參考模型”,即著名的(de)OSI/RM模型(Open System Interconnection/Reference Model)。它将計算機網絡體系結構的(de)通信協議劃分為(wèi)七層,自(zì)下而上依次為(wèi):物理(lǐ)層(Physics Layer)、數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)、應用層(Application Layer)。其中第四層完成數據傳送服務,上面三層面向用戶。
除了标準的(de)OSI七層模型以外,常見的(de)網絡層次劃分還有TCP/IP四層協議以及TCP/IP五層協議,它們之間的(de)對應關系如(rú)下圖所示:
2.2 OSI七層網絡模型
TCP/IP協議毫無疑問是互聯網的(de)基礎協議,沒有它就根本不可(kě)能上網,任何和(hé)互聯網有關的(de)操作都離(lí)不開TCP/IP協議。不管是OSI七層模型還是TCP/IP的(de)四層、五層模型,每一(yī)層中都要自(zì)己的(de)專屬協議,完成自(zì)己相應的(de)工作以及與上下層級之間進行溝通。由于OSI七層模型為(wèi)網絡的(de)标準層次劃分,所以我們以OSI七層模型為(wèi)例從下向上進行一(yī)一(yī)介紹。
1)物理(lǐ)層(Physical Layer)
激活、維持、關閉通信端點之間的(de)機械特性、電氣特性、功能特性以及過程特性。該層為(wèi)上層協議提供了一(yī)個傳輸數據的(de)可(kě)靠的(de)物理(lǐ)媒體。簡單的(de)說,物理(lǐ)層确保原始的(de)數據可(kě)在各種物理(lǐ)媒體上傳輸。物理(lǐ)層記住兩個重要的(de)設備名稱,中繼器(Repeater,也叫放大器)和(hé)集線器。
2)數據鏈路層(Data Link Layer)
數據鏈路層在物理(lǐ)層提供的(de)服務的(de)基礎上向網絡層提供服務,其最基本的(de)服務是将源自(zì)網絡層來的(de)數據可(kě)靠地(dì)傳輸到相鄰節點的(de)目标機網絡層。為(wèi)達到這一(yī)目的(de),數據鏈路必須具備一(yī)系列相應的(de)功能,主要有:如(rú)何将數據組合成數據塊,在數據鏈路層中稱這種數據塊為(wèi)幀(frame),幀是數據鏈路層的(de)傳送單位;如(rú)何控制幀在物理(lǐ)信道(dào)上的(de)傳輸,包括如(rú)何處理(lǐ)傳輸差錯,如(rú)何調節發送速率以使與接收方相匹配;以及在兩個網絡實體之間提供數據鏈路通路的(de)建立、維持和(hé)釋放的(de)管理(lǐ)。數據鏈路層在不可(kě)靠的(de)物理(lǐ)介質上提供可(kě)靠的(de)傳輸。該層的(de)作用包括:物理(lǐ)地(dì)址尋址、數據的(de)成幀、流量控制、數據的(de)檢錯、重發等。
有關數據鏈路層的(de)重要知識點:
1> 數據鏈路層為(wèi)網絡層提供可(kě)靠的(de)數據傳輸;
2> 基本數據單位為(wèi)幀;
3> 主要的(de)協議:以太網協議;
4> 兩個重要設備名稱:網橋和(hé)交換機。
3)網絡層(Network Layer)
網絡層的(de)目的(de)是實現兩個端系統之間的(de)數據透明傳送,具體功能包括尋址和(hé)路由選擇、連接的(de)建立、保持和(hé)終止等。它提供的(de)服務使傳輸層不需要了解網絡中的(de)數據傳輸和(hé)交換技術。如(rú)果您想用盡量少的(de)詞來記住網絡層,那就是“路徑選擇、路由及邏輯尋址”。
網絡層中涉及衆多的(de)協議,其中包括最重要的(de)協議,也是TCP/IP的(de)核心協議——IP協議。IP協議非常簡單,僅僅提供不可(kě)靠、無連接的(de)傳送服務。IP協議的(de)主要功能有:無連接數據報傳輸、數據報路由選擇和(hé)差錯控制。與IP協議配套使用實現其功能的(de)還有地(dì)址解析協議ARP、逆地(dì)址解析協議RARP、因特網報文協議ICMP、因特網組管理(lǐ)協議IGMP。具體的(de)協議我們會在接下來的(de)部分進行總結,有關網絡層的(de)重點為(wèi):
1> 網絡層負責對子(zǐ)網間的(de)數據包進行路由選擇。此外,網絡層還可(kě)以實現擁塞控制、網際互連等功能;
2> 基本數據單位為(wèi)IP數據報;
3> 包含的(de)主要協議:
IP協議(Internet Protocol,因特網互聯協議);
ICMP協議(Internet Control Message Protocol,因特網控制報文協議);
ARP協議(Address Resolution Protocol,地(dì)址解析協議);
RARP協議(Reverse Address Resolution Protocol,逆地(dì)址解析協議)。
4> 重要的(de)設備:路由器。
4)傳輸層(Transport Layer)
第一(yī)個端到端,即主機到主機的(de)層次。傳輸層負責将上層數據分段并提供端到端的(de)、可(kě)靠的(de)或不可(kě)靠的(de)傳輸。此外,傳輸層還要處理(lǐ)端到端的(de)差錯控制和(hé)流量控制問題。
傳輸層的(de)任務是根據通信子(zǐ)網的(de)特性,最佳的(de)利用網絡資源,為(wèi)兩個端系統的(de)會話層之間,提供建立、維護和(hé)取消傳輸連接的(de)功能,負責端到端的(de)可(kě)靠數據傳輸。在這一(yī)層,信息傳送的(de)協議數據單元稱為(wèi)段或報文。
網絡層隻是根據網絡地(dì)址将源結點發出的(de)數據包傳送到目的(de)結點,而傳輸層則負責将數據可(kě)靠地(dì)傳送到相應的(de)端口。
有關網絡層的(de)重點:
1> 傳輸層負責将上層數據分段并提供端到端的(de)、可(kě)靠的(de)或不可(kě)靠的(de)傳輸以及端到端的(de)差錯控制和(hé)流量控制問題;
2> 包含的(de)主要協議:TCP協議(Transmission Control Protocol,傳輸控制協議)、UDP協議(User Datagram Protocol,用戶數據報協議);
3> 重要設備:網關。
5)會話層
會話層管理(lǐ)主機之間的(de)會話進程,即負責建立、管理(lǐ)、終止進程之間的(de)會話。會話層還利用在數據中插入校驗點來實現數據的(de)同步。
6)表示層
表示層對上層數據或信息進行變換以保證一(yī)個主機應用層信息可(kě)以被另一(yī)個主機的(de)應用程序理(lǐ)解。表示層的(de)數據轉換包括數據的(de)加密、壓縮、格式轉換等。
7)應用層
為(wèi)操作系統或網絡應用程序提供訪問網絡服務的(de)接口。
會話層、表示層和(hé)應用層重點:
1> 數據傳輸基本單位為(wèi)報文;
2> 包含的(de)主要協議:FTP(文件傳送協議)默認21端口、Telnet(遠程登錄協議)默認23端口、DNS(域名解析協議)默認53端口、SMTP(郵件傳送協議)默認25端口,POP3協議(郵局協議)默認端口110,HTTP協議(Hyper Text Transfer Protocol)默認80,HTTPS協議(自(zì)己查)默認端口為(wèi)443。
2.3 IP地(dì)址
1)網絡地(dì)址
IP地(dì)址由網絡号(包括子(zǐ)網号)和(hé)主機号組成,網絡地(dì)址的(de)主機号為(wèi)全0,網絡地(dì)址代表着整個網絡。
2)廣播地(dì)址
廣播地(dì)址通常稱為(wèi)直接廣播地(dì)址,是為(wèi)了區分受限廣播地(dì)址。
廣播地(dì)址與網絡地(dì)址的(de)主機号正好相反,廣播地(dì)址中,主機号為(wèi)全1。當向某個網絡的(de)廣播地(dì)址發送消息時,該網絡內(nèi)的(de)所有主機都能收到該廣播消息。
3)組播地(dì)址
D類地(dì)址就是組播地(dì)址。
先回憶下A,B,C,D類地(dì)址吧(ba):
A類地(dì)址以0開頭,第一(yī)個字節作為(wèi)網絡号,地(dì)址範圍為(wèi):0.0.0.0~127.255.255.255;(modified @2016.05.31)
B類地(dì)址以10開頭,前兩個字節作為(wèi)網絡号,地(dì)址範圍是:128.0.0.0~191.255.255.255;
C類地(dì)址以110開頭,前三個字節作為(wèi)網絡号,地(dì)址範圍是:192.0.0.0~223.255.255.255。
D類地(dì)址以1110開頭,地(dì)址範圍是224.0.0.0~239.255.255.255,D類地(dì)址作為(wèi)組播地(dì)址(一(yī)對多的(de)通信);
E類地(dì)址以1111開頭,地(dì)址範圍是240.0.0.0~255.255.255.255,E類地(dì)址為(wèi)保留地(dì)址,供以後使用。
注:隻有A,B,C有網絡号和(hé)主機号之分,D類地(dì)址和(hé)E類地(dì)址沒有劃分網絡号和(hé)主機号。
4)255.255.255.255
該IP地(dì)址指的(de)是受限的(de)廣播地(dì)址。受限廣播地(dì)址與一(yī)般廣播地(dì)址(直接廣播地(dì)址)的(de)區别在于,受限廣播地(dì)址隻能用于本地(dì)網絡,路由器不會轉發以受限廣播地(dì)址為(wèi)目的(de)地(dì)址的(de)分組;一(yī)般廣播地(dì)址既可(kě)在本地(dì)廣播,也可(kě)跨網段廣播。例如(rú):主機192.168.1.1/30上的(de)直接廣播數據包後,另外一(yī)個網段192.168.1.5/30也能收到該數據報;若發送受限廣播數據報,則不能收到。
注:一(yī)般的(de)廣播地(dì)址(直接廣播地(dì)址)能夠通過某些路由器(當然不是所有的(de)路由器),而受限的(de)廣播地(dì)址不能通過路由器。
5)0.0.0.0
常用于尋找自(zì)己的(de)IP地(dì)址,例如(rú)在我們的(de)RARP,BOOTP和(hé)DHCP協議中,若某個未知IP地(dì)址的(de)無盤機想要知道(dào)自(zì)己的(de)IP地(dì)址,它就以255.255.255.255為(wèi)目的(de)地(dì)址,向本地(dì)範圍(具體而言是被各個路由器屏蔽的(de)範圍內(nèi))的(de)服務器發送IP請求分組。
6)回環地(dì)址
127.0.0.0/8被用作回環地(dì)址,回環地(dì)址表示本機的(de)地(dì)址,常用于對本機的(de)測試,用的(de)最多的(de)是127.0.0.1。
7)A、B、C類私有地(dì)址
私有地(dì)址(private address)也叫專用地(dì)址,它們不會在全球使用,隻具有本地(dì)意義。
A類私有地(dì)址:10.0.0.0/8,範圍是:10.0.0.0~10.255.255.255
B類私有地(dì)址:172.16.0.0/12,範圍是:172.16.0.0~172.31.255.255
C類私有地(dì)址:192.168.0.0/16,範圍是:192.168.0.0~192.168.255.255
2.4 子(zǐ)網掩碼及網絡劃分
随着互連網應用的(de)不斷擴大,原先的(de)IPv4的(de)弊端也逐漸暴露出來,即網絡号占位太多,而主機号位太少,所以其能提供的(de)主機地(dì)址也越來越稀缺,目前除了使用NAT在企業內(nèi)部利用保留地(dì)址自(zì)行分配以外,通常都對一(yī)個高(gāo)類别的(de)IP地(dì)址進行再劃分,以形成多個子(zǐ)網,提供給不同規模的(de)用戶群使用。
這裏主要是為(wèi)了在網絡分段情況下有效地(dì)利用IP地(dì)址,通過對主機号的(de)高(gāo)位部分取作為(wèi)子(zǐ)網号,從通常的(de)網絡位界限中擴展或壓縮子(zǐ)網掩碼,用來創建某類地(dì)址的(de)更多子(zǐ)網。但創建更多的(de)子(zǐ)網時,在每個子(zǐ)網上的(de)可(kě)用主機地(dì)址數目會比原先減少。
什麽是子(zǐ)網掩碼?
子(zǐ)網掩碼是标志兩個IP地(dì)址是否同屬于一(yī)個子(zǐ)網的(de),也是32位二進制地(dì)址,其每一(yī)個為(wèi)1代表該位是網絡位,為(wèi)0代表主機位。它和(hé)IP地(dì)址一(yī)樣也是使用點式十進制來表示的(de)。如(rú)果兩個IP地(dì)址在子(zǐ)網掩碼的(de)按位與的(de)計算下所得結果相同,即表明它們共屬于同一(yī)子(zǐ)網中。
在計算子(zǐ)網掩碼時,我們要注意IP地(dì)址中的(de)保留地(dì)址,即“ 0”地(dì)址和(hé)廣播地(dì)址,它們是指主機地(dì)址或網絡地(dì)址全為(wèi)“ 0”或“ 1”時的(de)IP地(dì)址,它們代表着本網絡地(dì)址和(hé)廣播地(dì)址,一(yī)般是不能被計算在內(nèi)的(de)。
子(zǐ)網掩碼的(de)計算:
對于無須再劃分成子(zǐ)網的(de)IP地(dì)址來說,其子(zǐ)網掩碼非常簡單,即按照其定義即可(kě)寫出:如(rú)某B類IP地(dì)址為(wèi) 10.12.3.0,無須再分割子(zǐ)網,則該IP地(dì)址的(de)子(zǐ)網掩碼255.255.0.0。如(rú)果它是一(yī)個C類地(dì)址,則其子(zǐ)網掩碼為(wèi) 255.255.255.0。其它類推,不再詳述。下面我們關鍵要介紹的(de)是一(yī)個IP地(dì)址,還需要将其高(gāo)位主機位再作為(wèi)劃分出的(de)子(zǐ)網網絡号,剩下的(de)是每個子(zǐ)網的(de)主機号,這時該如(rú)何進行每個子(zǐ)網的(de)掩碼計算。
下面總結一(yī)下有關子(zǐ)網掩碼和(hé)網絡劃分常見的(de)面試考題:
1)利用子(zǐ)網數來計算
在求子(zǐ)網掩碼之前必須先搞清楚要劃分的(de)子(zǐ)網數目,以及每個子(zǐ)網內(nèi)的(de)所需主機數目。
(1) 将子(zǐ)網數目轉化為(wèi)二進制來表示;
如(rú)欲将B類IP地(dì)址168.195.0.0劃分成27個子(zǐ)網:27=11011;
(2) 取得該二進制的(de)位數,為(wèi)N;
該二進制為(wèi)五位數,N = 5
(3) 取得該IP地(dì)址的(de)類子(zǐ)網掩碼,将其主機地(dì)址部分的(de)的(de)前N位置1即得出該IP地(dì)址劃分子(zǐ)網的(de)子(zǐ)網掩碼。
将B類地(dì)址的(de)子(zǐ)網掩碼255.255.0.0的(de)主機地(dì)址前5位置 1,得到 255.255.248.0
2)利用主機數來計算
如(rú)欲将B類IP地(dì)址168.195.0.0劃分成若幹子(zǐ)網,每個子(zǐ)網內(nèi)有主機700台:
(1) 将主機數目轉化為(wèi)二進制來表示;
700=1010111100;
(2) 如(rú)果主機數小于或等于254(注意去(qù)掉保留的(de)兩個IP地(dì)址),則取得該主機的(de)二進制位數,為(wèi)N,這裏肯定 N<8。如(rú)果大于254,則 N>8,這就是說主機地(dì)址将占據不止8位;
該二進制為(wèi)十位數,N=10;
(3) 使用255.255.255.255來将該類IP地(dì)址的(de)主機地(dì)址位數全部置1,然後從後向前的(de)将N位全部置為(wèi) 0,即為(wèi)子(zǐ)網掩碼值。
将該B類地(dì)址的(de)子(zǐ)網掩碼255.255.0.0的(de)主機地(dì)址全部置1,得到255.255.255.255,然後再從後向前将後 10位置0,即為(wèi):11111111.11111111.11111100.00000000,即255.255.252.0。這就是該欲劃分成主機為(wèi)700台的(de)B類IP地(dì)址 168.195.0.0的(de)子(zǐ)網掩碼。
3)還有一(yī)種題型,要你根據每個網絡的(de)主機數量進行子(zǐ)網地(dì)址的(de)規劃和(hé)計算子(zǐ)網掩碼。這也可(kě)按上述原則進行計算。
比如(rú)一(yī)個子(zǐ)網有10台主機,那麽對于這個子(zǐ)網需要的(de)IP地(dì)址是:
10+1+1+1=13
注意:加的(de)第一(yī)個1是指這個網絡連接時所需的(de)網關地(dì)址,接着的(de)兩個1分别是指網絡地(dì)址和(hé)廣播地(dì)址。
因為(wèi)13小于16(16等于2的(de)4次方),所以主機位為(wèi)4位。而256-16=240,所以該子(zǐ)網掩碼為(wèi)255.255.255.240。
如(rú)果一(yī)個子(zǐ)網有14台主機,不少人常犯的(de)錯誤是:依然分配具有16個地(dì)址空間的(de)子(zǐ)網,而忘記了給網關分配地(dì)址。這樣就錯誤了,因為(wèi)14+1+1+1=17,17大于16,所以我們隻能分配具有32個地(dì)址(32等于2的(de)5次方)空間的(de)子(zǐ)網。這時子(zǐ)網掩碼為(wèi):255.255.255.224。
2.5 ARP/RARP協議
地(dì)址解析協議,即ARP(Address Resolution Protocol),是根據IP地(dì)址獲取物理(lǐ)地(dì)址的(de)一(yī)個TCP/IP協議。主機發送信息時将包含目标IP地(dì)址的(de)ARP請求廣播到網絡上的(de)所有主機,并接收返回消息,以此确定目标的(de)物理(lǐ)地(dì)址;收到返回消息後将該IP地(dì)址和(hé)物理(lǐ)地(dì)址存入本機ARP緩存中并保留一(yī)定時間,下次請求時直接查詢ARP緩存以節約資源。地(dì)址解析協議是建立在網絡中各個主機互相信任的(de)基礎上的(de),網絡上的(de)主機可(kě)以自(zì)主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的(de)真實性就會将其記入本機ARP緩存;由此攻擊者就可(kě)以向某一(yī)主機發送僞ARP應答報文,使其發送的(de)信息無法到達預期的(de)主機或到達錯誤的(de)主機,這就構成了一(yī)個ARP欺騙。ARP命令可(kě)用于查詢本機ARP緩存中IP地(dì)址和(hé)MAC地(dì)址的(de)對應關系、添加或删除靜态對應關系等。
ARP工作流程舉例:
主機A的(de)IP地(dì)址為(wèi)192.168.1.1,MAC地(dì)址為(wèi)0A-11-22-33-44-01;
主機B的(de)IP地(dì)址為(wèi)192.168.1.2,MAC地(dì)址為(wèi)0A-11-22-33-44-02;
當主機A要與主機B通信時,地(dì)址解析協議可(kě)以将主機B的(de)IP地(dì)址(192.168.1.2)解析成主機B的(de)MAC地(dì)址,以下為(wèi)工作流程:
(1)根據主機A上的(de)路由表內(nèi)容,IP确定用于訪問主機B的(de)轉發IP地(dì)址是192.168.1.2。然後A主機在自(zì)己的(de)本地(dì)ARP緩存中檢查主機B的(de)匹配MAC地(dì)址。
(2)如(rú)果主機A在ARP緩存中沒有找到映射,它将詢問192.168.1.2的(de)硬件地(dì)址,從而将ARP請求幀廣播到本地(dì)網絡上的(de)所有主機。源主機A的(de)IP地(dì)址和(hé)MAC地(dì)址都包括在ARP請求中。本地(dì)網絡上的(de)每台主機都接收到ARP請求并且檢查是否與自(zì)己的(de)IP地(dì)址匹配。如(rú)果主機發現請求的(de)IP地(dì)址與自(zì)己的(de)IP地(dì)址不匹配,它将丢棄ARP請求。
(3)主機B确定ARP請求中的(de)IP地(dì)址與自(zì)己的(de)IP地(dì)址匹配,則将主機A的(de)IP地(dì)址和(hé)MAC地(dì)址映射添加到本地(dì)ARP緩存中。
(4)主機B将包含其MAC地(dì)址的(de)ARP回複消息直接發送回主機A。
(5)當主機A收到從主機B發來的(de)ARP回複消息時,會用主機B的(de)IP和(hé)MAC地(dì)址映射更新ARP緩存。本機緩存是有生存期的(de),生存期結束後,将再次重複上面的(de)過程。主機B的(de)MAC地(dì)址一(yī)旦确定,主機A就能向主機B發送IP通信了。
逆地(dì)址解析協議,即RARP,功能和(hé)ARP協議相對,其将局域網中某個主機的(de)物理(lǐ)地(dì)址轉換為(wèi)IP地(dì)址,比如(rú)局域網中有一(yī)台主機隻知道(dào)物理(lǐ)地(dì)址而不知道(dào)IP地(dì)址,那麽可(kě)以通過RARP協議發出征求自(zì)身IP地(dì)址的(de)廣播請求,然後由RARP服務器負責回答。
RARP協議工作流程:
(1)給主機發送一(yī)個本地(dì)的(de)RARP廣播,在此廣播包中,聲明自(zì)己的(de)MAC地(dì)址并且請求任何收到此請求的(de)RARP服務器分配一(yī)個IP地(dì)址;
(2)本地(dì)網段上的(de)RARP服務器收到此請求後,檢查其RARP列表,查找該MAC地(dì)址對應的(de)IP地(dì)址;
(3)如(rú)果存在,RARP服務器就給源主機發送一(yī)個響應數據包并将此IP地(dì)址提供給對方主機使用;
(4)如(rú)果不存在,RARP服務器對此不做(zuò)任何的(de)響應;
(5)源主機收到從RARP服務器的(de)響應信息,就利用得到的(de)IP地(dì)址進行通訊;如(rú)果一(yī)直沒有收到RARP服務器的(de)響應信息,表示初始化失敗。
2.6. 路由選擇協議
常見的(de)路由選擇協議有:RIP協議、OSPF協議。
RIP協議 :底層是貝爾曼福特算法,它選擇路由的(de)度量标準(metric)是跳數,最大跳數是15跳,如(rú)果大于15跳,它就會丢棄數據包。
OSPF協議 :Open Shortest Path First開放式最短(duǎn)路徑優先,底層是迪傑斯特拉算法,是鏈路狀态路由選擇協議,它選擇路由的(de)度量标準是帶寬,延遲
2.7 TCP/IP協議
TCP/IP協議是Internet最基本的(de)協議、Internet國際互聯網絡的(de)基礎,由網絡層的(de)IP協議和(hé)傳輸層的(de)TCP協議組成。通俗而言:TCP負責發現傳輸的(de)問題,一(yī)有問題就發出信号,要求重新傳輸,直到所有數據安全正确地(dì)傳輸到目的(de)地(dì)。而IP是給因特網的(de)每一(yī)台聯網設備規定一(yī)個地(dì)址。
IP層接收由更低(dī)層(網絡接口層例如(rú)以太網設備驅動程序)發來的(de)數據包,并把該數據包發送到更高(gāo)層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的(de)數據包傳送到更低(dī)層。IP數據包是不可(kě)靠的(de),因為(wèi)IP并沒有做(zuò)任何事情來确認數據包是否按順序發送的(de)或者有沒有被破壞,IP數據包中含有發送它的(de)主機的(de)地(dì)址(源地(dì)址)和(hé)接收它的(de)主機的(de)地(dì)址(目的(de)地(dì)址)。
TCP是面向連接的(de)通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的(de)所以隻能用于端到端的(de)通訊。TCP提供的(de)是一(yī)種可(kě)靠的(de)數據流服務,采用“帶重傳的(de)肯定确認”技術來實現傳輸的(de)可(kě)靠性。TCP還采用一(yī)種稱為(wèi)“滑動窗口”的(de)方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的(de)發送速度。
TCP報文首部格式:
TCP協議的(de)三次握手和(hé)四次揮手:
注:seq:"sequance"序列号;ack:"acknowledge"确認号;SYN:"synchronize"請求同步标志;;ACK:"acknowledge"确認标志";FIN:"Finally"結束标志。
TCP連接建立過程:首先Client端發送連接請求報文,Server段接受連接後回複ACK報文,并為(wèi)這次連接分配資源。Client端接收到ACK報文後也向Server段發生ACK報文,并分配資源,這樣TCP連接就建立了。
TCP連接斷開過程:假設Client端發起中斷連接請求,也就是發送FIN報文。Server端接到FIN報文後,意思是說"我Client端沒有數據要發給你了",但是如(rú)果你還有數據沒有發送完成,則不必急着關閉Socket,可(kě)以繼續發送數據。所以你先發送ACK,"告訴Client端,你的(de)請求我收到了,但是我還沒準備好,請繼續你等我的(de)消息"。這個時候Client端就進入FIN_WAIT狀态,繼續等待Server端的(de)FIN報文。當Server端确定數據已發送完成,則向Client端發送FIN報文,"告訴Client端,好了,我這邊數據發完了,準備好關閉連接了"。Client端收到FIN報文後,"就知道(dào)可(kě)以關閉連接了,但是他還是不相信網絡,怕Server端不知道(dào)要關閉,所以發送ACK後進入TIME_WAIT狀态,如(rú)果Server端沒有收到ACK則可(kě)以重傳。“,Server端收到ACK後,"就知道(dào)可(kě)以斷開連接了"。Client端等待了2MSL後依然沒有收到回複,則證明Server端已正常關閉,那好,我Client端也可(kě)以關閉連接了。Ok,TCP連接就這樣關閉了!
為(wèi)什麽要三次揮手?
在隻有兩次“握手”的(de)情形下,假設Client想跟Server建立連接,但是卻因為(wèi)中途連接請求的(de)數據報丢失了,故Client端不得不重新發送一(yī)遍;這個時候Server端僅收到一(yī)個連接請求,因此可(kě)以正常的(de)建立連接。但是,有時候Client端重新發送請求不是因為(wèi)數據報丢失了,而是有可(kě)能數據傳輸過程因為(wèi)網絡并發量很大在某結點被阻塞了,這種情形下Server端将先後收到2次請求,并持續等待兩個Client請求向他發送數據...問題就在這裏,Cient端實際上隻有一(yī)次請求,而Server端卻有2個響應,極端的(de)情況可(kě)能由于Client端多次重新發送請求數據而導緻Server端最後建立了N多個響應在等待,因而造成極大的(de)資源浪費!所以,“三次握手”很有必要!
為(wèi)什麽要四次揮手?
試想一(yī)下,假如(rú)現在你是客戶端你想斷開跟Server的(de)所有連接該怎麽做(zuò)?第一(yī)步,你自(zì)己先停止向Server端發送數據,并等待Server的(de)回複。但事情還沒有完,雖然你自(zì)身不往Server發送數據了,但是因為(wèi)你們之前已經建立好平等的(de)連接了,所以此時他也有主動權向你發送數據;故Server端還得終止主動向你發送數據,并等待你的(de)确認。其實,說白了就是保證雙方的(de)一(yī)個合約的(de)完整執行!
使用TCP的(de)協議:FTP(文件傳輸協議)、Telnet(遠程登錄協議)、SMTP(簡單郵件傳輸協議)、POP3(和(hé)SMTP相對,用于接收郵件)、HTTP協議等。
2.8 UDP協議
UDP用戶數據報協議,是面向無連接的(de)通訊協議,UDP數據包括目的(de)端口号和(hé)源端口号信息,由于通訊不需要連接,所以可(kě)以實現廣播發送。UDP通訊時不需要接收方确認,屬于不可(kě)靠的(de)傳輸,可(kě)能會出現丢包現象,實際應用中要求程序員編程驗證。
UDP與TCP位于同一(yī)層,但它不管數據包的(de)順序、錯誤或重發。因此,UDP不被應用于那些使用虛電路的(de)面向連接的(de)服務,UDP主要用于那些面向查詢---應答的(de)服務,例如(rú)NFS。相對于FTP或Telnet,這些服務需要交換的(de)信息量較小。
每個UDP報文分UDP報頭和(hé)UDP數據區兩部分。報頭由四個16位長(cháng)(2字節)字段組成,分别說明該報文的(de)源端口、目的(de)端口、報文長(cháng)度以及校驗值。UDP報頭由4個域組成,其中每個域各占用2個字節,具體如(rú)下:
(1)源端口号;
(2)目标端口号;
(3)數據報長(cháng)度;
(4)校驗值。
使用UDP協議包括:TFTP(簡單文件傳輸協議)、SNMP(簡單網絡管理(lǐ)協議)、DNS(域名解析協議)、NFS、BOOTP。
TCP 與 UDP 的(de)區别:TCP是面向連接的(de),可(kě)靠的(de)字節流服務;UDP是面向無連接的(de),不可(kě)靠的(de)數據報服務。
2.9. DNS協議
DNS是域名系統(DomainNameSystem)的(de)縮寫,該系統用于命名組織到域層次結構中的(de)計算機和(hé)網絡服務,可(kě)以簡單地(dì)理(lǐ)解為(wèi)将URL轉換為(wèi)IP地(dì)址。域名是由圓點分開一(yī)串單詞或縮寫組成的(de),每一(yī)個域名都對應一(yī)個惟一(yī)的(de)IP地(dì)址,在Internet上域名與IP地(dì)址之間是一(yī)一(yī)對應的(de),DNS就是進行域名解析的(de)服務器。DNS命名用于Internet等TCP/IP網絡中,通過用戶友好的(de)名稱查找計算機和(hé)服務。
3.0 NAT協議
NAT網絡地(dì)址轉換(Network Address Translation)屬接入廣域網(WAN)技術,是一(yī)種将私有(保留)地(dì)址轉化為(wèi)合法IP地(dì)址的(de)轉換技術,它被廣泛應用于各種類型Internet接入方式和(hé)各種類型的(de)網絡中。原因很簡單,NAT不僅完美地(dì)解決了lP地(dì)址不足的(de)問題,而且還能夠有效地(dì)避免來自(zì)網絡外部的(de)攻擊,隐藏并保護網絡內(nèi)部的(de)計算機。
3.1 DHCP協議
DHCP動态主機設置協議(Dynamic Host Configuration Protocol)是一(yī)個局域網的(de)網絡協議,使用UDP協議工作,主要有兩個用途:給內(nèi)部網絡或網絡服務供應商自(zì)動分配IP地(dì)址,給用戶或者內(nèi)部網絡管理(lǐ)員作為(wèi)對所有計算機作中央管理(lǐ)的(de)手段。
3.2 HTTP協議
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為(wèi)廣泛的(de)一(yī)種網絡協議。所有的(de)WWW文件都必須遵守這個标準。 HTTP 協議包括哪些請求?
GET:請求讀取由URL所标志的(de)信息。
POST:給服務器添加信息(如(rú)注釋)。
PUT:在給定的(de)URL下存儲一(yī)個文檔。
DELETE:删除給定的(de)URL所标志的(de)資源。
HTTP 中, POST 與 GET 的(de)區别
1)Get是從服務器上獲取數據,Post是向服務器傳送數據。
2)Get是把參數數據隊列加到提交表單的(de)Action屬性所指向的(de)URL中,值和(hé)表單內(nèi)各個字段一(yī)一(yī)對應,在URL中可(kě)以看到。
3)Get傳送的(de)數據量小,不能大于2KB;Post傳送的(de)數據量較大,一(yī)般被默認為(wèi)不受限制。
4)根據HTTP規範,GET用于信息獲取,而且應該是安全的(de)和(hé)幂等的(de)。
I. 所謂 安全的(de) 意味着該操作用于獲取信息而非修改信息。換句話說,GET請求一(yī)般不應産生副作用。就是說,它僅僅是獲取資源信息,就像數據庫查詢一(yī)樣,不會修改,增加數據,不會影響資源的(de)狀态。
II. 幂等 的(de)意味着對同一(yī)URL的(de)多個請求應該返回同樣的(de)結果。
在浏覽器中輸入 www.baidu.com 後執行的(de)全部過程
現在假設如(rú)果我們在客戶端(客戶端)浏覽器中輸入http://www.baidu.com,而baidu.com為(wèi)要訪問的(de)服務器(服務器),下面詳細分析客戶端為(wèi)了訪問服務器而執行的(de)一(yī)系列關于協議的(de)操作:
1)客戶端浏覽器通過DNS解析到www.baidu.com的(de)IP地(dì)址220.181.27.48,通過這個IP地(dì)址找到客戶端到服務器的(de)路徑。客戶端浏覽器發起一(yī)個HTTP會話到220.161.27.48,然後通過TCP進行封裝數據包,輸入到網絡層。
2)在客戶端的(de)傳輸層,把HTTP會話請求分成報文段,添加源和(hé)目的(de)端口,如(rú)服務器使用80端口監聽客戶端的(de)請求,客戶端由系統随機選擇一(yī)個端口如(rú)5000,與服務器進行交換,服務器把相應的(de)請求返回給客戶端的(de)5000端口。然後使用IP層的(de)IP地(dì)址查找目的(de)端。
3)客戶端的(de)網絡層不用關系應用層或者傳輸層的(de)東西,主要做(zuò)的(de)是通過查找路由表确定如(rú)何到達服務器,期間可(kě)能經過多個路由器,這些都是由路由器來完成的(de)工作,不作過多的(de)描述,無非就是通過查找路由表決定通過那個路徑到達服務器。
4)客戶端的(de)鏈路層,包通過鏈路層發送到路由器,通過鄰居協議查找給定IP地(dì)址的(de)MAC地(dì)址,然後發送ARP請求查找目的(de)地(dì)址,如(rú)果得到回應後就可(kě)以使用ARP的(de)請求應答交換的(de)IP數據包現在就可(kě)以傳輸了,然後發送IP數據包到達服務器的(de)地(dì)址。