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