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