【轉(zhuǎn)】計算機網(wǎng)絡(luò)基礎(chǔ)知識總結(jié)

作者:Poll的筆記
博客出處:http://www.cnblogs.com/maybe2030/
本文版權(quán)歸作者和博客園所有豌鸡,歡迎轉(zhuǎn)載热幔,轉(zhuǎn)載請標明出處虽抄。

閱讀目錄
1. 網(wǎng)絡(luò)層次劃分
2. OSI七層網(wǎng)絡(luò)模型
3. IP地址
4. 子網(wǎng)掩碼及網(wǎng)絡(luò)劃分
5. ARP/RARP協(xié)議
6. 路由選擇協(xié)議
7. TCP/IP協(xié)議
8. UDP協(xié)議 
9. DNS協(xié)議
10. NAT協(xié)議
11. DHCP協(xié)議
12. HTTP協(xié)議
13. 一個舉例

計算機網(wǎng)絡(luò)學(xué)習(xí)的核心內(nèi)容就是網(wǎng)絡(luò)協(xié)議的學(xué)習(xí)奔穿。網(wǎng)絡(luò)協(xié)議是為計算機網(wǎng)絡(luò)中進行數(shù)據(jù)交換而建立的規(guī)則、標準或者說是約定的集合茵乱。因為不同用戶的數(shù)據(jù)終端可能采取的字符集是不同的,兩者需要進行通信孟岛,必須要在一定的標準上進行瓶竭。一個很形象地比喻就是我們的語言,我們大天朝地廣人多渠羞,地方性語言也非常豐富斤贰,而且方言之間差距巨大。A地區(qū)的方言可能B地區(qū)的人根本無法接受次询,所以我們要為全國人名進行溝通建立一個語言標準荧恍,這就是我們的普通話的作用。同樣屯吊,放眼全球送巡,我們與外國友人溝通的標準語言是英語,所以我們才要苦逼的學(xué)習(xí)英語盒卸。
  計算機網(wǎng)絡(luò)協(xié)議同我們的語言一樣骗爆,多種多樣。而ARPA公司與1977年到1979年推出了一種名為ARPANET的網(wǎng)絡(luò)協(xié)議受到了廣泛的熱捧蔽介,其中最主要的原因就是它推出了人盡皆知的TCP/IP標準網(wǎng)絡(luò)協(xié)議摘投。目前TCP/IP協(xié)議已經(jīng)成為Internet中的“通用語言”,下圖為不同計算機群之間利用TCP/IP進行通信的示意圖虹蓄。


回到頂部

1. 網(wǎng)絡(luò)層次劃分

為了使不同計算機廠家生產(chǎn)的計算機能夠相互通信谷朝,以便在更大的范圍內(nèi)建立計算機網(wǎng)絡(luò),國際標準化組織(ISO)在1978年提出了“開放系統(tǒng)互聯(lián)參考模型”武花,即著名的OSI/RM模型(Open System Interconnection/Reference Model)圆凰。它將計算機網(wǎng)絡(luò)體系結(jié)構(gòu)的通信協(xié)議劃分為七層,自下而上依次為:物理層(Physics Layer)体箕、數(shù)據(jù)鏈路層(Data Link Layer)专钉、網(wǎng)絡(luò)層(Network Layer)、傳輸層(Transport Layer)累铅、會話層(Session Layer)跃须、表示層(Presentation Layer)、應(yīng)用層(Application Layer)娃兽。其中第四層完成數(shù)據(jù)傳送服務(wù)菇民,上面三層面向用戶。
  除了標準的OSI七層模型以外,常見的網(wǎng)絡(luò)層次劃分還有TCP/IP四層協(xié)議以及TCP/IP五層協(xié)議第练,它們之間的對應(yīng)關(guān)系如下圖所示:

回到頂部

2. OSI七層網(wǎng)絡(luò)模型

TCP/IP協(xié)議毫無疑問是互聯(lián)網(wǎng)的基礎(chǔ)協(xié)議阔馋,沒有它就根本不可能上網(wǎng),任何和互聯(lián)網(wǎng)有關(guān)的操作都離不開TCP/IP協(xié)議娇掏。不管是OSI七層模型還是TCP/IP的四層呕寝、五層模型,每一層中都要自己的專屬協(xié)議婴梧,完成自己相應(yīng)的工作以及與上下層級之間進行溝通下梢。由于OSI七層模型為網(wǎng)絡(luò)的標準層次劃分,所以我們以O(shè)SI七層模型為例從下向上進行一一介紹塞蹭。


1)物理層(Physical Layer)
  激活孽江、維持、關(guān)閉通信端點之間的機械特性番电、電氣特性竟坛、功能特性以及過程特性。該層為上層協(xié)議提供了一個傳輸數(shù)據(jù)的可靠的物理媒體钧舌。簡單的說,物理層確保原始的數(shù)據(jù)可在各種物理媒體上傳輸涎跨。物理層記住兩個重要的設(shè)備名稱洼冻,中繼器(Repeater,也叫放大器)和集線器隅很。
  2)數(shù)據(jù)鏈路層(Data Link Layer)
  數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù)撞牢,其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標機網(wǎng)絡(luò)層。為達到這一目的叔营,數(shù)據(jù)鏈路必須具備一系列相應(yīng)的功能屋彪,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame)绒尊,幀是數(shù)據(jù)鏈路層的傳送單位畜挥;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯婴谱,如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配蟹但;以及在兩個網(wǎng)絡(luò)實體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放的管理谭羔。數(shù)據(jù)鏈路層在不可靠的物理介質(zhì)上提供可靠的傳輸华糖。該層的作用包括:物理地址尋址、數(shù)據(jù)的成幀瘟裸、流量控制客叉、數(shù)據(jù)的檢錯、重發(fā)等。
  有關(guān)數(shù)據(jù)鏈路層的重要知識點:
  1> 數(shù)據(jù)鏈路層為網(wǎng)絡(luò)層提供可靠的數(shù)據(jù)傳輸兼搏;
  2> 基本數(shù)據(jù)單位為幀卵慰;
  3> 主要的協(xié)議:以太網(wǎng)協(xié)議;
  4> 兩個重要設(shè)備名稱:網(wǎng)橋和交換機向族。
  3)網(wǎng)絡(luò)層(Network Layer)
  網(wǎng)絡(luò)層的目的是實現(xiàn)兩個端系統(tǒng)之間的數(shù)據(jù)透明傳送呵燕,具體功能包括尋址和路由選擇、連接的建立件相、保持和終止等再扭。它提供的服務(wù)使傳輸層不需要了解網(wǎng)絡(luò)中的數(shù)據(jù)傳輸和交換技術(shù)。如果您想用盡量少的詞來記住網(wǎng)絡(luò)層夜矗,那就是“路徑選擇泛范、路由及邏輯尋址”。
  網(wǎng)絡(luò)層中涉及眾多的協(xié)議紊撕,其中包括最重要的協(xié)議罢荡,也是TCP/IP的核心協(xié)議——IP協(xié)議。IP協(xié)議非常簡單对扶,僅僅提供不可靠区赵、無連接的傳送服務(wù)。IP協(xié)議的主要功能有:無連接數(shù)據(jù)報傳輸浪南、數(shù)據(jù)報路由選擇和差錯控制笼才。與IP協(xié)議配套使用實現(xiàn)其功能的還有地址解析協(xié)議ARP、逆地址解析協(xié)議RARP络凿、因特網(wǎng)報文協(xié)議ICMP骡送、因特網(wǎng)組管理協(xié)議IGMP。具體的協(xié)議我們會在接下來的部分進行總結(jié)絮记,有關(guān)網(wǎng)絡(luò)層的重點為:
  1> 網(wǎng)絡(luò)層負責對子網(wǎng)間的數(shù)據(jù)包進行路由選擇摔踱。此外,網(wǎng)絡(luò)層還可以實現(xiàn)擁塞控制怨愤、網(wǎng)際互連等功能派敷;
  2> 基本數(shù)據(jù)單位為IP數(shù)據(jù)報;
  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> 重要的設(shè)備:路由器。
  4)傳輸層(Transport Layer)
  第一個端到端柿汛,即主機到主機的層次冗酿。傳輸層負責將上層數(shù)據(jù)分段并提供端到端的埠对、可靠的或不可靠的傳輸。此外裁替,傳輸層還要處理端到端的差錯控制和流量控制問題项玛。
  傳輸層的任務(wù)是根據(jù)通信子網(wǎng)的特性,最佳的利用網(wǎng)絡(luò)資源弱判,為兩個端系統(tǒng)的會話層之間襟沮,提供建立、維護和取消傳輸連接的功能昌腰,負責端到端的可靠數(shù)據(jù)傳輸开伏。在這一層,信息傳送的協(xié)議數(shù)據(jù)單元稱為段或報文遭商。
  網(wǎng)絡(luò)層只是根據(jù)網(wǎng)絡(luò)地址將源結(jié)點發(fā)出的數(shù)據(jù)包傳送到目的結(jié)點固灵,而傳輸層則負責將數(shù)據(jù)可靠地傳送到相應(yīng)的端口。
  有關(guān)網(wǎng)絡(luò)層的重點:
  1> 傳輸層負責將上層數(shù)據(jù)分段并提供端到端的劫流、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題巫玻;
  2> 包含的主要協(xié)議:TCP協(xié)議(Transmission Control Protocol,傳輸控制協(xié)議)祠汇、UDP協(xié)議(User Datagram Protocol仍秤,用戶數(shù)據(jù)報協(xié)議);
  3> 重要設(shè)備:網(wǎng)關(guān)可很。
  5)會話層
  會話層管理主機之間的會話進程诗力,即負責建立、管理根穷、終止進程之間的會話谓着。會話層還利用在數(shù)據(jù)中插入校驗點來實現(xiàn)數(shù)據(jù)的同步昼钻。
  6)表示層
  表示層對上層數(shù)據(jù)或信息進行變換以保證一個主機應(yīng)用層信息可以被另一個主機的應(yīng)用程序理解。表示層的數(shù)據(jù)轉(zhuǎn)換包括數(shù)據(jù)的加密霉涨、壓縮惫周、格式轉(zhuǎn)換等尘惧。
  7)應(yīng)用層
  為操作系統(tǒng)或網(wǎng)絡(luò)應(yīng)用程序提供訪問網(wǎng)絡(luò)服務(wù)的接口。
  會話層递递、表示層和應(yīng)用層重點:
  1> 數(shù)據(jù)傳輸基本單位為報文喷橙;
  2> 包含的主要協(xié)議:FTP(文件傳送協(xié)議)、Telnet(遠程登錄協(xié)議)登舞、DNS(域名解析協(xié)議)贰逾、SMTP(郵件傳送協(xié)議),POP3協(xié)議(郵局協(xié)議)菠秒,HTTP協(xié)議(Hyper Text Transfer Protocol)疙剑。
回到頂部

3. IP地址

1)網(wǎng)絡(luò)地址
  IP地址由網(wǎng)絡(luò)號(包括子網(wǎng)號)和主機號組成,網(wǎng)絡(luò)地址的主機號為全0,網(wǎng)絡(luò)地址代表著整個網(wǎng)絡(luò)言缤。
  2)廣播地址
  廣播地址通常稱為直接廣播地址嚼蚀,是為了區(qū)分受限廣播地址。
  廣播地址與網(wǎng)絡(luò)地址的主機號正好相反管挟,廣播地址中轿曙,主機號為全1。當向某個網(wǎng)絡(luò)的廣播地址發(fā)送消息時僻孝,該網(wǎng)絡(luò)內(nèi)的所有主機都能收到該廣播消息导帝。
  3)組播地址
  D類地址就是組播地址。
  先回憶下A皮璧,B舟扎,C,D類地址吧:
  A類地址以0開頭悴务,第一個字節(jié)作為網(wǎng)絡(luò)號睹限,地址范圍為:0.0.0.0~127.255.255.255;(modified @2016.05.31)
  B類地址以10開頭讯檐,前兩個字節(jié)作為網(wǎng)絡(luò)號羡疗,地址范圍是:128.0.0.0~191.255.255.255;
  C類地址以110開頭,前三個字節(jié)作為網(wǎng)絡(luò)號别洪,地址范圍是:192.0.0.0~223.255.255.255叨恨。
  D類地址以1110開頭,地址范圍是224.0.0.0~239.255.255.255挖垛,D類地址作為組播地址(一對多的通信)痒钝;
  E類地址以1111開頭,地址范圍是240.0.0.0~255.255.255.255痢毒,E類地址為保留地址送矩,供以后使用。
  注:只有A,B,C有網(wǎng)絡(luò)號和主機號之分哪替,D類地址和E類地址沒有劃分網(wǎng)絡(luò)號和主機號栋荸。
  4)255.255.255.255
  該IP地址指的是受限的廣播地址。受限廣播地址與一般廣播地址(直接廣播地址)的區(qū)別在于凭舶,受限廣播地址只能用于本地網(wǎng)絡(luò)晌块,路由器不會轉(zhuǎn)發(fā)以受限廣播地址為目的地址的分組;一般廣播地址既可在本地廣播帅霜,也可跨網(wǎng)段廣播匆背。例如:主機192.168.1.1/30上的直接廣播數(shù)據(jù)包后,另外一個網(wǎng)段192.168.1.5/30也能收到該數(shù)據(jù)報身冀;若發(fā)送受限廣播數(shù)據(jù)報靠汁,則不能收到蜂大。
  注:一般的廣播地址(直接廣播地址)能夠通過某些路由器(當然不是所有的路由器),而受限的廣播地址不能通過路由器蝶怔。
  5)0.0.0.0
  常用于尋找自己的IP地址奶浦,例如在我們的RARP,BOOTP和DHCP協(xié)議中踢星,若某個未知IP地址的無盤機想要知道自己的IP地址澳叉,它就以255.255.255.255為目的地址,向本地范圍(具體而言是被各個路由器屏蔽的范圍內(nèi))的服務(wù)器發(fā)送IP請求分組沐悦。
  6)回環(huán)地址
  127.0.0.0/8被用作回環(huán)地址成洗,回環(huán)地址表示本機的地址,常用于對本機的測試藏否,用的最多的是127.0.0.1瓶殃。
  7)A、B副签、C類私有地址
  私有地址(private address)也叫專用地址遥椿,它們不會在全球使用,只具有本地意義淆储。
  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
回到頂部

4. 子網(wǎng)掩碼及網(wǎng)絡(luò)劃分

隨著互連網(wǎng)應(yīng)用的不斷擴大碴裙,原先的IPv4的弊端也逐漸暴露出來,即網(wǎng)絡(luò)號占位太多点额,而主機號位太少舔株,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業(yè)內(nèi)部利用保留地址自行分配以外还棱,通常都對一個高類別的IP地址進行再劃分载慈,以形成多個子網(wǎng),提供給不同規(guī)模的用戶群使用诱贿。
  這里主要是為了在網(wǎng)絡(luò)分段情況下有效地利用IP地址娃肿,通過對主機號的高位部分取作為子網(wǎng)號咕缎,從通常的網(wǎng)絡(luò)位界限中擴展或壓縮子網(wǎng)掩碼珠十,用來創(chuàng)建某類地址的更多子網(wǎng)。但創(chuàng)建更多的子網(wǎng)時凭豪,在每個子網(wǎng)上的可用主機地址數(shù)目會比原先減少焙蹭。
  什么是子網(wǎng)掩碼?
  子網(wǎng)掩碼是標志兩個IP地址是否同屬于一個子網(wǎng)的嫂伞,也是32位二進制地址孔厉,其每一個為1代表該位是網(wǎng)絡(luò)位拯钻,為0代表主機位。它和IP地址一樣也是使用點式十進制來表示的撰豺。如果兩個IP地址在子網(wǎng)掩碼的按位與的計算下所得結(jié)果相同粪般,即表明它們共屬于同一子網(wǎng)中。
  在計算子網(wǎng)掩碼時污桦,我們要注意IP地址中的保留地址亩歹,即“ 0”地址和廣播地址,它們是指主機地址或網(wǎng)絡(luò)地址全為“ 0”或“ 1”時的IP地址凡橱,它們代表著本網(wǎng)絡(luò)地址和廣播地址小作,一般是不能被計算在內(nèi)的。
  子網(wǎng)掩碼的計算:
  對于無須再劃分成子網(wǎng)的IP地址來說稼钩,其子網(wǎng)掩碼非常簡單顾稀,即按照其定義即可寫出:如某B類IP地址為 10.12.3.0,無須再分割子網(wǎng)坝撑,則該IP地址的子網(wǎng)掩碼255.255.0.0静秆。如果它是一個C類地址,則其子網(wǎng)掩碼為 255.255.255.0绍载。其它類推诡宗,不再詳述。下面我們關(guān)鍵要介紹的是一個IP地址击儡,還需要將其高位主機位再作為劃分出的子網(wǎng)網(wǎng)絡(luò)號塔沃,剩下的是每個子網(wǎng)的主機號,這時該如何進行每個子網(wǎng)的掩碼計算阳谍。
  下面總結(jié)一下有關(guān)子網(wǎng)掩碼和網(wǎng)絡(luò)劃分常見的面試考題:
  1)利用子網(wǎng)數(shù)來計算
  在求子網(wǎng)掩碼之前必須先搞清楚要劃分的子網(wǎng)數(shù)目蛀柴,以及每個子網(wǎng)內(nèi)的所需主機數(shù)目。
  (1) 將子網(wǎng)數(shù)目轉(zhuǎn)化為二進制來表示;
  如欲將B類IP地址168.195.0.0劃分成27個子網(wǎng):27=11011矫夯;
  (2) 取得該二進制的位數(shù)鸽疾,為N;
  該二進制為五位數(shù)训貌,N = 5
  (3) 取得該IP地址的類子網(wǎng)掩碼制肮,將其主機地址部分的的前N位置1即得出該IP地址劃分子網(wǎng)的子網(wǎng)掩碼。
  將B類地址的子網(wǎng)掩碼255.255.0.0的主機地址前5位置 1递沪,得到 255.255.248.0
  2)利用主機數(shù)來計算
  如欲將B類IP地址168.195.0.0劃分成若干子網(wǎng)豺鼻,每個子網(wǎng)內(nèi)有主機700臺:
  (1) 將主機數(shù)目轉(zhuǎn)化為二進制來表示;
  700=1010111100款慨;
  (2) 如果主機數(shù)小于或等于254(注意去掉保留的兩個IP地址)儒飒,則取得該主機的二進制位數(shù),為N檩奠,這里肯定 N<8桩了。如果大于254附帽,則 N>8,這就是說主機地址將占據(jù)不止8位井誉;
  該二進制為十位數(shù)蕉扮,N=10;
  (3) 使用255.255.255.255來將該類IP地址的主機地址位數(shù)全部置1颗圣,然后從后向前的將N位全部置為 0慢显,即為子網(wǎng)掩碼值。
  將該B類地址的子網(wǎng)掩碼255.255.0.0的主機地址全部置1欠啤,得到255.255.255.255荚藻,然后再從后向前將后 10位置0,即為:11111111.11111111.11111100.00000000,即255.255.252.0洁段。這就是該欲劃分成主機為700臺的B類IP地址 168.195.0.0的子網(wǎng)掩碼应狱。
  3)還有一種題型,要你根據(jù)每個網(wǎng)絡(luò)的主機數(shù)量進行子網(wǎng)地址的規(guī)劃和****計算子網(wǎng)掩碼祠丝。這也可按上述原則進行計算疾呻。
  比如一個子網(wǎng)有10臺主機,那么對于這個子網(wǎng)需要的IP地址是:
  10+1+1+1=13
  注意:加的第一個1是指這個網(wǎng)絡(luò)連接時所需的網(wǎng)關(guān)地址写半,接著的兩個1分別是指網(wǎng)****絡(luò)地址和廣播地址岸蜗。
  因為13小于16(16等于2的4次方),所以主機位為4位叠蝇。而256-16=240璃岳,所以該子網(wǎng)掩碼為255.255.255.240。
  如果一個子網(wǎng)有14臺主機悔捶,不少人常犯的錯誤是:依然分配具有16個地址空間的子網(wǎng)铃慷,而忘記了給網(wǎng)關(guān)分配地址。這樣就錯誤了蜕该,因為14+1+1+1=17犁柜,17大于16,所以我們只能分配具有32個地址(32等于2的5次方)空間的子網(wǎng)堂淡。這時子網(wǎng)掩碼為:255.255.255.224馋缅。
回到頂部

5. ARP/RARP協(xié)議

地址解析協(xié)議,即ARP(Address Resolution Protocol)绢淀,是根據(jù)IP地址獲取物理地址的一個TCP/IP協(xié)議萤悴。主機發(fā)送信息時將包含目標IP地址的ARP請求廣播到網(wǎng)絡(luò)上的所有主機,并接收返回消息更啄,以此確定目標的物理地址稚疹;收到返回消息后將該IP地址和物理地址存入本機ARP緩存中并保留一定時間居灯,下次請求時直接查詢ARP緩存以節(jié)約資源祭务。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個主機互相信任的基礎(chǔ)上的内狗,網(wǎng)絡(luò)上的主機可以自主發(fā)送ARP應(yīng)答消息,其他主機收到應(yīng)答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存义锥;由此攻擊者就可以向某一主機發(fā)送偽ARP應(yīng)答報文柳沙,使其發(fā)送的信息無法到達預(yù)期的主機或到達錯誤的主機,這就構(gòu)成了一個ARP欺騙拌倍。ARP命令可用于查詢本機ARP緩存中IP地址和MAC地址的對應(yīng)關(guān)系赂鲤、添加或刪除靜態(tài)對應(yīng)關(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通信時泡孩,地址解析協(xié)議可以將主機B的IP地址(192.168.1.2)解析成主機B的MAC地址,以下為工作流程:
 ∷掳(1)根據(jù)主機A上的路由表內(nèi)容仑鸥,IP確定用于訪問主機B的轉(zhuǎn)發(fā)IP地址是192.168.1.2。然后A主機在自己的本地ARP緩存中檢查主機B的匹配MAC地址变屁。
 ⊙劭 (2)如果主機A在ARP緩存中沒有找到映射,它將詢問192.168.1.2的硬件地址粟关,從而將ARP請求幀廣播到本地網(wǎng)絡(luò)上的所有主機疮胖。源主機A的IP地址和MAC地址都包括在ARP請求中。本地網(wǎng)絡(luò)上的每臺主機都接收到ARP請求并且檢查是否與自己的IP地址匹配闷板。如果主機發(fā)現(xiàn)請求的IP地址與自己的IP地址不匹配获列,它將丟棄ARP請求。
 』坠浮(3)主機B確定ARP請求中的IP地址與自己的IP地址匹配击孩,則將主機A的IP地址和MAC地址映射添加到本地ARP緩存中。
 ∨羝帷(4)主機B將包含其MAC地址的ARP回復(fù)消息直接發(fā)送回主機A巩梢。
  (5)當主機A收到從主機B發(fā)來的ARP回復(fù)消息時艺玲,會用主機B的IP和MAC地址映射更新ARP緩存括蝠。本機緩存是有生存期的,生存期結(jié)束后饭聚,將再次重復(fù)上面的過程忌警。主機B的MAC地址一旦確定,主機A就能向主機B發(fā)送IP通信了秒梳。
  逆地址解析協(xié)議法绵,即RARP箕速,功能和ARP協(xié)議相對,其將局域網(wǎng)中某個主機的物理地址轉(zhuǎn)換為IP地址朋譬,比如局域網(wǎng)中有一臺主機只知道物理地址而不知道IP地址盐茎,那么可以通過RARP協(xié)議發(fā)出征求自身IP地址的廣播請求,然后由RARP服務(wù)器負責回答徙赢。
  RARP協(xié)議工作流程:
 ∽帜(1)給主機發(fā)送一個本地的RARP廣播,在此廣播包中狡赐,聲明自己的MAC地址并且請求任何收到此請求的RARP服務(wù)器分配一個IP地址窑业;
  (2)本地網(wǎng)段上的RARP服務(wù)器收到此請求后枕屉,檢查其RARP列表数冬,查找該MAC地址對應(yīng)的IP地址;
 〔笫(3)如果存在拐纱,RARP服務(wù)器就給源主機發(fā)送一個響應(yīng)數(shù)據(jù)包并將此IP地址提供給對方主機使用;
 「缇蟆(4)如果不存在秸架,RARP服務(wù)器對此不做任何的響應(yīng);
 ∨剌铩(5)源主機收到從RARP服務(wù)器的響應(yīng)信息东抹,就利用得到的IP地址進行通訊;如果一直沒有收到RARP服務(wù)器的響應(yīng)信息沃测,表示初始化失敗缭黔。
回到頂部

6. 路由選擇協(xié)議

常見的路由選擇協(xié)議有:RIP協(xié)議、OSPF協(xié)議蒂破。
  RIP****協(xié)議 :底層是貝爾曼福特算法馏谨,它選擇路由的度量標準(metric)是跳數(shù),最大跳數(shù)是15跳附迷,如果大于15跳惧互,它就會丟棄數(shù)據(jù)包。
  OSPF****協(xié)議 :Open Shortest Path First開放式最短路徑優(yōu)先喇伯,底層是迪杰斯特拉算法喊儡,是鏈路狀態(tài)路由選擇協(xié)議,它選擇路由的度量標準是帶寬稻据,延遲艾猜。
回到頂部

7. TCP/IP協(xié)議

TCP/IP協(xié)議是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成匆赃。通俗而言:TCP負責發(fā)現(xiàn)傳輸?shù)膯栴}淤毛,一有問題就發(fā)出信號,要求重新傳輸炸庞,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設(shè)備規(guī)定一個地址荚斯。
  IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包埠居,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反事期,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層滥壕。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是否按順序發(fā)送的或者有沒有被破壞兽泣,IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)绎橘。
  TCP是面向連接的通信協(xié)議,通過三次握手建立連接唠倦,通訊完成時要拆除連接称鳞,由于TCP是面向連接的所以只能用于端到端的通訊。TCP提供的是一種可靠的數(shù)據(jù)流服務(wù)稠鼻,采用“帶重傳的肯定確認”技術(shù)來實現(xiàn)傳輸?shù)目煽啃愿灾埂CP還采用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力候齿,用以限制發(fā)送方的發(fā)送速度熙暴。
  TCP報文首部格式:


  TCP協(xié)議的三次握手和四次揮手:

  注:seq:"sequance"序列號;ack:"acknowledge"確認號慌盯;SYN:"synchronize"請求同步標志周霉;;ACK:"acknowledge"確認標志"亚皂;****FIN:"Finally"結(jié)束標志俱箱。
  TCP連接建立過程:首先Client端發(fā)送連接請求報文,Server段接受連接后回復(fù)ACK報文灭必,并為這次連接分配資源匠楚。Client端接收到ACK報文后也向Server段發(fā)生ACK報文,并分配資源厂财,這樣TCP連接就建立了芋簿。
  TCP連接斷開過程:假設(shè)Client端發(fā)起中斷連接請求,也就是發(fā)送FIN報文璃饱。Server端接到FIN報文后与斤,意思是說"我Client端沒有數(shù)據(jù)要發(fā)給你了",但是如果你還有數(shù)據(jù)沒有發(fā)送完成,則不必急著關(guān)閉Socket撩穿,可以繼續(xù)發(fā)送數(shù)據(jù)磷支。所以你先發(fā)送ACK,"告訴Client端食寡,你的請求我收到了雾狈,但是我還沒準備好,請繼續(xù)你等我的消息"抵皱。這個時候Client端就進入FIN_WAIT狀態(tài)善榛,繼續(xù)等待Server端的FIN報文。當Server端確定數(shù)據(jù)已發(fā)送完成呻畸,則向Client端發(fā)送FIN報文移盆,"告訴Client端,好了伤为,我這邊數(shù)據(jù)發(fā)完了咒循,準備好關(guān)閉連接了"。Client端收到FIN報文后绞愚,"就知道可以關(guān)閉連接了叙甸,但是他還是不相信網(wǎng)絡(luò),怕Server端不知道要關(guān)閉位衩,所以發(fā)送ACK后進入TIME_WAIT狀態(tài)蚁署,如果Server端沒有收到ACK則可以重傳÷焖模“光戈,Server端收到ACK后,"就知道可以斷開連接了"遂赠。Client端等待了2MSL后依然沒有收到回復(fù)久妆,則證明Server端已正常關(guān)閉,那好跷睦,我Client端也可以關(guān)閉連接了筷弦。Ok,TCP連接就這樣關(guān)閉了抑诸!
  為什么要三次揮手烂琴?
  在只有兩次“握手”的情形下,假設(shè)Client想跟Server建立連接蜕乡,但是卻因為中途連接請求的數(shù)據(jù)報丟失了奸绷,故Client端不得不重新發(fā)送一遍;這個時候Server端僅收到一個連接請求层玲,因此可以正常的建立連接号醉。但是反症,有時候Client端重新發(fā)送請求不是因為數(shù)據(jù)報丟失了,而是有可能數(shù)據(jù)傳輸過程因為網(wǎng)絡(luò)并發(fā)量很大在某結(jié)點被阻塞了畔派,這種情形下Server端將先后收到2次請求铅碍,并持續(xù)等待兩個Client請求向他發(fā)送數(shù)據(jù)...問題就在這里,Cient端實際上只有一次請求线椰,而Server端卻有2個響應(yīng)胞谈,極端的情況可能由于Client端多次重新發(fā)送請求數(shù)據(jù)而導(dǎo)致Server端最后建立了N多個響應(yīng)在等待,因而造成極大的資源浪費憨愉!所以烦绳,“三次握手”很有必要!
  為什么要四次揮手莱衩?
  試想一下爵嗅,假如現(xiàn)在你是客戶端你想斷開跟Server的所有連接該怎么做娇澎?第一步笨蚁,你自己先停止向Server端發(fā)送數(shù)據(jù),并等待Server的回復(fù)趟庄。但事情還沒有完括细,雖然你自身不往Server發(fā)送數(shù)據(jù)了,但是因為你們之前已經(jīng)建立好平等的連接了戚啥,所以此時他也有主動權(quán)向你發(fā)送數(shù)據(jù)奋单;故Server端還得終止主動向你發(fā)送數(shù)據(jù),并等待你的確認猫十。其實览濒,說白了就是保證雙方的一個合約的完整執(zhí)行!
  使用TCP的協(xié)議:FTP(文件傳輸協(xié)議)拖云、Telnet(遠程登錄協(xié)議)贷笛、SMTP(簡單郵件傳輸協(xié)議)、POP3(和SMTP相對宙项,用于接收郵件)乏苦、HTTP協(xié)議等。
回到頂部

8. UDP協(xié)議

UDP用戶數(shù)據(jù)報協(xié)議尤筐,是面向無連接的通訊協(xié)議汇荐,UDP數(shù)據(jù)包括目的端口號和源端口號信息,由于通訊不需要連接盆繁,所以可以實現(xiàn)廣播發(fā)送掀淘。****UDP通訊時不需要接收方確認,屬于不可靠的傳輸油昂,可能會出現(xiàn)丟包現(xiàn)象繁疤,實際應(yīng)用中要求程序員編程驗證咖为。
  UDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序稠腊、錯誤或重發(fā)躁染。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù)架忌,UDP主要用于那些面向查詢---應(yīng)答的服務(wù)吞彤,例如NFS。相對于FTP或Telnet叹放,這些服務(wù)需要交換的信息量較小饰恕。
  每個UDP報文分UDP報頭和UDP數(shù)據(jù)區(qū)兩部分。報頭由四個16位長(2字節(jié))字段組成井仰,分別說明該報文的源端口埋嵌、目的端口、報文長度以及校驗值俱恶。UDP報頭由4個域組成雹嗦,其中每個域各占用2個字節(jié),具體如下: 『鲜恰(1)源端口號了罪;
  (2)目標端口號聪全;
 〔磁骸(3)數(shù)據(jù)報長度;
 ∧牙瘛(4)校驗值娃圆。
  使用UDP協(xié)議包括:TFTP(簡單文件傳輸協(xié)議)、SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)蛾茉、DNS(域名解析協(xié)議)讼呢、NFS、BOOTP臀稚。
  TCP**** ****與**** ****UDP**** ****的區(qū)別:TCP是面向連接的吝岭,可靠的字節(jié)流服務(wù);UDP是面向無連接的吧寺,不可靠的數(shù)據(jù)報服務(wù)窜管。
回到頂部

9. DNS協(xié)議

DNS是域名系統(tǒng)(DomainNameSystem)的縮寫,該系統(tǒng)用于命名組織到域?qū)哟谓Y(jié)構(gòu)中的計算機和網(wǎng)絡(luò)服務(wù)稚机,可以簡單地理解為將URL轉(zhuǎn)換為IP地址幕帆。域名是由圓點分開一串單詞或縮寫組成的,每一個域名都對應(yīng)一個惟一的IP地址赖条,在Internet上域名與IP地址之間是一一對應(yīng)的失乾,DNS就是進行域名解析的服務(wù)器常熙。DNS命名用于Internet等TCP/IP網(wǎng)絡(luò)中,通過用戶友好的名稱查找計算機和服務(wù)碱茁。
回到頂部

10. NAT協(xié)議

  NAT網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation)屬接入廣域網(wǎng)(WAN)技術(shù)裸卫,是一種將私有(保留)地址轉(zhuǎn)化為合法IP地址的轉(zhuǎn)換技術(shù),它被廣泛應(yīng)用于各種類型Internet接入方式和各種類型的網(wǎng)絡(luò)中纽竣。原因很簡單墓贿,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網(wǎng)絡(luò)外部的攻擊蜓氨,隱藏并保護網(wǎng)絡(luò)內(nèi)部的計算機聋袋。
回到頂部

11. DHCP協(xié)議

DHCP動態(tài)主機設(shè)置協(xié)議(Dynamic Host Configuration Protocol)是一個局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作穴吹,主要有兩個用途:給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動分配IP地址幽勒,給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對所有計算機作中央管理的手段。

回到頂部

12. HTTP協(xié)議

超文本傳輸協(xié)議(HTTP港令,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議啥容。所有的WWW文件都必須遵守這個標準。  HTTP**** ****協(xié)議包括哪些請求缠借?
  GET:請求讀取由URL所標志的信息干毅。
  POST:給服務(wù)器添加信息(如注釋)宜猜。
  PUT:在給定的URL下存儲一個文檔泼返。
  DELETE:刪除給定的URL所標志的資源。
  HTTP**** ****中姨拥,**** ****POST**** ****與**** ****GET**** ****的區(qū)別
  1)Get是從服務(wù)器上獲取數(shù)據(jù)绅喉,Post是向服務(wù)器傳送數(shù)據(jù)。
  2)Get是把參數(shù)數(shù)據(jù)隊列加到提交表單的Action屬性所指向的URL中叫乌,值和表單內(nèi)各個字段一一對應(yīng)柴罐,在URL中可以看到。
  3)Get傳送的數(shù)據(jù)量小憨奸,不能大于2KB革屠;Post傳送的數(shù)據(jù)量較大,一般被默認為不受限制排宰。
  4)根據(jù)HTTP規(guī)范似芝,GET用于信息獲取,而且應(yīng)該是安全的和冪等的板甘。
  I. 所謂 安全的 意味著該操作用于獲取信息而非修改信息党瓮。換句話說,GET請求一般不應(yīng)產(chǎn)生副作用盐类。就是說寞奸,它僅僅是獲取資源信息呛谜,就像數(shù)據(jù)庫查詢一樣,不會修改枪萄,增加數(shù)據(jù)隐岛,不會影響資源的狀態(tài)。
  II. 冪等 的意味著對同一URL的多個請求應(yīng)該返回同樣的結(jié)果瓷翻。

回到頂部

13. 一個舉例

**  在瀏覽器中輸入**** ****www.baidu.com***** *** 后執(zhí)行的全部過程
  現(xiàn)在假設(shè)如果我們在客戶端(客戶端)瀏覽器中輸入http://www.baidu.com礼仗,而baidu.com為要訪問的服務(wù)器(服務(wù)器),下面詳細分析客戶端為了訪問服務(wù)器而執(zhí)行的一系列關(guān)于協(xié)議的操作:
  1)客戶端瀏覽器通過DNS解析到www.baidu.com的IP地址220.181.27.48逻悠,通過這個IP地址找到客戶端到服務(wù)器的路徑元践。客戶端瀏覽器發(fā)起一個HTTP會話到220.161.27.48童谒,然后通過TCP進行封裝數(shù)據(jù)包单旁,輸入到網(wǎng)絡(luò)層。
  2)在客戶端的傳輸層饥伊,把HTTP會話請求分成報文段象浑,添加源和目的端口,如服務(wù)器使用80端口監(jiān)聽客戶端的請求琅豆,客戶端由系統(tǒng)隨機選擇一個端口如5000愉豺,與服務(wù)器進行交換,服務(wù)器把相應(yīng)的請求返回給客戶端的5000端口茫因。然后使用IP層的IP地址查找目的端蚪拦。
  3)客戶端的網(wǎng)絡(luò)層不用關(guān)系應(yīng)用層或者傳輸層的東西匆绣,主要做的是通過查找路由表確定如何到達服務(wù)器藻三,期間可能經(jīng)過多個路由器,這些都是由路由器來完成的工作昨寞,不作過多的描述洛巢,無非就是通過查找路由表決定通過那個路徑到達服務(wù)器括袒。
  4)客戶端的鏈路層,包通過鏈路層發(fā)送到路由器稿茉,通過鄰居協(xié)議查找給定IP地址的MAC地址锹锰,然后發(fā)送ARP請求查找目的地址,如果得到回應(yīng)后就可以使用ARP的請求應(yīng)答交換的IP數(shù)據(jù)包現(xiàn)在就可以傳輸了漓库,然后發(fā)送IP數(shù)據(jù)包到達服務(wù)器的地址恃慧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市米苹,隨后出現(xiàn)的幾起案子糕伐,更是在濱河造成了極大的恐慌,老刑警劉巖蘸嘶,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件良瞧,死亡現(xiàn)場離奇詭異陪汽,居然都是意外死亡,警方通過查閱死者的電腦和手機褥蚯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門挚冤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赞庶,你說我怎么就攤上這事训挡。” “怎么了歧强?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵澜薄,是天一觀的道長。 經(jīng)常有香客問我摊册,道長肤京,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任茅特,我火速辦了婚禮忘分,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘白修。我一直安慰自己妒峦,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布兵睛。 她就那樣靜靜地躺著肯骇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卤恳。 梳的紋絲不亂的頭發(fā)上累盗,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天寒矿,我揣著相機與錄音突琳,去河邊找鬼。 笑死符相,一個胖子當著我的面吹牛拆融,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啊终,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼镜豹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蓝牲?” 一聲冷哼從身側(cè)響起趟脂,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎例衍,沒想到半個月后昔期,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體已卸,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年硼一,在試婚紗的時候發(fā)現(xiàn)自己被綠了累澡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡般贼,死狀恐怖愧哟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哼蛆,我是刑警寧澤蕊梧,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站腮介,受9級特大地震影響望几,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萤厅,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一橄抹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惕味,春花似錦楼誓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至禀倔,卻和暖如春榄融,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背救湖。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工愧杯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鞋既。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓力九,卻偏偏與公主長得像,于是被迫代替她去往敵國和親邑闺。 傳聞我的和親對象是個殘疾皇子跌前,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容