引言
先來講講我自身的感受,偶然看到知乎上一位剛?cè)雽W(xué)的學(xué)生問如何學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)這門課番川,我畢業(yè)多年邑狸,依稀還能記得這門課確實(shí)挺枯燥懈糯,因?yàn)闆]有什么實(shí)踐,都停留在理論階段单雾,茲認(rèn)為一旦實(shí)踐赚哗,就是網(wǎng)絡(luò)安全的實(shí)驗(yàn)課了。
對于一個軟件開發(fā)者而言硅堆,接觸的最頻繁的莫過于網(wǎng)絡(luò)請求屿储,停留在代碼階段。當(dāng)產(chǎn)品交付時(shí)渐逃,移交給運(yùn)維人員够掠,產(chǎn)品即刻由于寫代碼的疏忽,各種漏洞被人攻擊茄菊,樹大就招風(fēng)疯潭。
網(wǎng)絡(luò)安全是個學(xué)科赊堪,網(wǎng)絡(luò)的基礎(chǔ)也多而復(fù)雜,慢慢竖哩,慢慢靠近并揭開它無趣的面紗哭廉。
一、OSI七層協(xié)議模型相叁、TCP/IP四層模型學(xué)習(xí)筆記
1. OSI七層和TCP/IP四層的關(guān)系
開放系統(tǒng)互連參考模型 (Open System Interconnect 簡稱OSI)
OSI七層模型圖云盤鏈接 密碼:1fm4
1.1 OSI
引入了服務(wù)遵绰、接口、協(xié)議增淹、分層的概念椿访,TCP/IP
借鑒了OSI
的這些概念建立TCP/IP
模型。
1.2 OSI
先有模型虑润,后有協(xié)議成玫,先有標(biāo)準(zhǔn),后進(jìn)行實(shí)踐端辱;而TCP/IP
則相反梁剔,先有協(xié)議和應(yīng)用再提出了模型,且是參照的OSI
模型舞蔽。
1.3 OSI
是一種理論下的模型荣病,而TCP/IP
已被廣泛使用,成為網(wǎng)絡(luò)互聯(lián)事實(shí)上的標(biāo)準(zhǔn)渗柿。
TCP:transmission control protocol 傳輸控制協(xié)議
UDP:user data protocol 用戶數(shù)據(jù)報(bào)協(xié)議
OSI七層網(wǎng)絡(luò)模型 | TCP/IP四層概念模型 | 對應(yīng)網(wǎng)絡(luò)協(xié)議 |
---|---|---|
應(yīng)用層(Application) | 應(yīng)用層 | HTTP个盆、TFTP,、FTP朵栖、 NFS颊亮、 WAIS、SMTP |
表示層(Presentation) | 應(yīng)用層 | Telnet陨溅、 Rlogin终惑、 SNMP、Gopher |
會話層(Session) | 應(yīng)用層 | SMTP门扇、 DNS |
傳輸層(Transport) | 傳輸層 | TCP雹有、UDP |
網(wǎng)絡(luò)層(Network) | 網(wǎng)絡(luò)層 | IP, ICMP, ARP, RARP, AKP, UUCP |
數(shù)據(jù)鏈路層(Data Link) | 數(shù)據(jù)鏈路層 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP |
物理層(Physical) | 數(shù)據(jù)鏈路層 | IEEE 802.1A, IEEE 802.2到IEEE 802.11 |
2. OSI七層協(xié)議模型
七層結(jié)構(gòu)記憶方法:應(yīng)、表臼寄、會霸奕、傳、網(wǎng)吉拳、數(shù)质帅、物
應(yīng)用層協(xié)議需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer protocol)煤惩、POP3(post office protocol 3)嫉嘀、IMAP4(Internet mail access protocol)
3. TCP/IP四層模型
3.1 應(yīng)用層:對應(yīng)OSI
中的應(yīng)用層、表示層盟庞、會話層
3.2 物理鏈路層:對應(yīng)OSI
中的數(shù)據(jù)鏈路層吃沪、物理層(也有叫網(wǎng)絡(luò)接口層)
3.3 數(shù)據(jù)包說明:
IP
層傳輸單位是IP
分組汤善,屬于點(diǎn)到點(diǎn)的傳輸什猖;TCP
層傳輸單位是TCP
段,屬于端到端的傳輸
二红淡、OSI參考模型
OSI(Open System Interconnection不狮,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型稱為開放式系統(tǒng)互聯(lián)參考模型 ,是一個邏輯上的定義在旱,一個規(guī)范摇零,它把網(wǎng)絡(luò)從邏輯上分為了7層。每一層都有相關(guān)桶蝎、相對應(yīng)的物理設(shè)備驻仅,比如路由器,交換機(jī)登渣。OSI 七層模型是一種框架性的設(shè)計(jì)方法 噪服,建立七層模型的主要目的是為解決異種網(wǎng)絡(luò)互連時(shí)所遇到的兼容性問題,其最主要的功能就是幫助不同類型的主機(jī)實(shí)現(xiàn)數(shù)據(jù)傳輸胜茧。它的最大優(yōu)點(diǎn)是將服務(wù)粘优、接口和協(xié)議這三個概念明確地區(qū)分開來,通過七個層次化的結(jié)構(gòu)模型使不同的系統(tǒng)不同的網(wǎng)絡(luò)之間實(shí)現(xiàn)可靠的通訊呻顽。
1.物理層(Physical Layer)
物理層定義了所有電子及物理設(shè)備的規(guī)范雹顺。其中特別定義了設(shè)備與物理媒介之間的關(guān)系,這包括了針腳廊遍、電壓嬉愧、線纜規(guī)范、集線器喉前、中繼器没酣、網(wǎng)卡、主機(jī)適配器(在SAN中使用的主機(jī)適配器)以及其他的設(shè)備的設(shè)計(jì)定義被饿。因?yàn)槲锢韺觽魉偷氖窃嫉谋忍財(cái)?shù)據(jù)流四康,即設(shè)計(jì)的目的是為了保證當(dāng)發(fā)送時(shí)的信號為二進(jìn)制“1”時(shí),對方接收到的也是二進(jìn)制“1”而不是二進(jìn)制“0”狭握。因而就需要定義哪個設(shè)備有幾個針腳闪金,其中哪個針腳發(fā)送的多少電壓代表二進(jìn)制“1”或二進(jìn)制“0”,還有例如一個bit需要持續(xù)幾微秒,傳輸信號是否在雙向上同時(shí)進(jìn)行哎垦,最初的連接如何創(chuàng)建和最終如何終止等問題囱嫩。
為了更好理解物理層與數(shù)據(jù)鏈路層之間的區(qū)別,可以把物理層認(rèn)為最主要的漏设,是與某個單一設(shè)備與傳輸媒介之間的交互有關(guān)墨闲,而數(shù)據(jù)鏈路層則更多地關(guān)注使用同一個通訊媒介的多個設(shè)備(例如,至少兩個設(shè)備)之間的互動郑口。物理層的作用是告訴某個設(shè)備如何傳送信號至一個通訊媒介鸳碧,以及另外一個設(shè)備如何接收這個信號(大多數(shù)情況下它并不會告訴設(shè)備如何與通訊媒介相連接)。有些過時(shí)的物理層標(biāo)準(zhǔn)如RS-232倒是的確使用物理線纜來控制通訊媒介的接入犬性。
物理層的主要功能和提供的服務(wù)如下:
在設(shè)備與傳輸媒介之間創(chuàng)建及終止連接瞻离。
參與通訊過程使得資源可以在共享的多用戶中有效分配。例如乒裆,沖突解決機(jī)制和流量控制套利。
對信號進(jìn)行調(diào)制或轉(zhuǎn)換使得用戶設(shè)備中的數(shù)字信號定義能與信道上實(shí)際傳送的數(shù)字信號相匹配。這些信號可以經(jīng)由物理線纜(例如銅纜和光纜)或是無線信道傳送鹤耍。
2.數(shù)據(jù)鏈路層(Datalink Layer)
數(shù)據(jù)鏈路層(Data Link Layer)是OSI模型的第二層肉迫,負(fù)責(zé)建立和管理節(jié)點(diǎn)間的鏈路。該層的主要功能是:通過各種控制協(xié)議稿黄,將有差錯的物理信道變?yōu)闊o差錯的喊衫、能可靠傳輸數(shù)據(jù)幀的數(shù)據(jù)鏈路。
在計(jì)算機(jī)網(wǎng)絡(luò)中由于各種干擾的存在抛猖,物理鏈路是不可靠的格侯。因此,這一層的主要功能是在物理層提供比特流的基礎(chǔ)上财著,通過差錯控制联四、流量控制方法,使有差錯的物理線路變?yōu)闊o差錯的數(shù)據(jù)鏈路撑教,即提供可靠的通過物理介質(zhì)傳輸數(shù)據(jù)的方法朝墩。
該層通常又被分為介質(zhì)訪問控制(MAC)和邏輯鏈路控制(LLC)兩個子層。
MAC
子層的主要任務(wù)是解決共享型網(wǎng)絡(luò)中多用戶對信道競爭的問題伟姐,完成網(wǎng)絡(luò)介質(zhì)的訪問控制收苏;
LLC
子層的主要任務(wù)是建立和維護(hù)網(wǎng)絡(luò)連接,執(zhí)行差錯校驗(yàn)愤兵、流量控制和鏈路控制鹿霸。
數(shù)據(jù)鏈路層的具體工作是接收來自物理層的位流形式的數(shù)據(jù),并封裝成幀秆乳,傳送到上一層懦鼠;同樣钻哩,也將來自上層的數(shù)據(jù)幀,拆裝為位流形式的數(shù)據(jù)轉(zhuǎn)發(fā)到物理層肛冶;并且街氢,還負(fù)責(zé)處理接收端發(fā)回的確認(rèn)幀的信息,以便提供可靠的數(shù)據(jù)傳輸睦袖。
3.網(wǎng)絡(luò)層(Network Layer)
網(wǎng)絡(luò)層(Network Layer)是OSI模型的第三層珊肃,它是OSI參考模型中最復(fù)雜的一層,也是通信子網(wǎng)的最高一層馅笙。它在下兩層的基礎(chǔ)上向資源子網(wǎng)提供服務(wù)伦乔。其主要任務(wù)是:通過路由選擇算法,為報(bào)文或分組通過通信子網(wǎng)選擇最適當(dāng)?shù)穆窂窖有贰T搶涌刂茢?shù)據(jù)鏈路層與傳輸層之間的信息轉(zhuǎn)發(fā)评矩,建立、維持和終止網(wǎng)絡(luò)的連接阱飘。具體地說,數(shù)據(jù)鏈路層的數(shù)據(jù)在這一層被轉(zhuǎn)換為數(shù)據(jù)包虱颗,然后通過路徑選擇沥匈、分段組合、順序忘渔、進(jìn)/出路由等控制高帖,將信息從一個網(wǎng)絡(luò)設(shè)備傳送到另一個網(wǎng)絡(luò)設(shè)備。
一般地畦粮,數(shù)據(jù)鏈路層是解決同一網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)之間的通信散址,而網(wǎng)絡(luò)層主要解決不同子網(wǎng)間的通信.例如在廣域網(wǎng)之間通信時(shí),必然會遇到路由(即兩節(jié)點(diǎn)間可能有多條路徑)選擇問題宣赔。
在實(shí)現(xiàn)網(wǎng)絡(luò)層功能時(shí)预麸,需要解決的主要問題如下:
尋址:數(shù)據(jù)鏈路層中使用的物理地址(如MAC
地址)僅解決網(wǎng)絡(luò)內(nèi)部的尋址問題。在不同子網(wǎng)之間通信時(shí)儒将,為了識別和找到網(wǎng)絡(luò)中的設(shè)備吏祸,每一子網(wǎng)中的設(shè)備都會被分配一個唯一的地址。由于各子網(wǎng)使用的物理技術(shù)可能不同钩蚊,因此這個地址應(yīng)當(dāng)是邏輯地址(如IP
地址)贡翘。
交換:規(guī)定不同的信息交換方式。常見的交換技術(shù)有:線路交換技術(shù)和存儲轉(zhuǎn)發(fā)技術(shù)砰逻,后者又包括報(bào)文交換技術(shù)和分組交換技術(shù)鸣驱。
路由算法:當(dāng)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間存在多條路徑時(shí),本層可以根據(jù)路由算法蝠咆,通過網(wǎng)絡(luò)為數(shù)據(jù)分組選擇最佳路徑踊东,并將信息從最合適的路徑由發(fā)送端傳送到接收端。
連接服務(wù):與數(shù)據(jù)鏈路層流量控制不同的是,前者控制的是網(wǎng)絡(luò)相鄰節(jié)點(diǎn)間的流量递胧,后者控制的是從源節(jié)點(diǎn)到目的節(jié)點(diǎn)間的流量碑韵。其目的在于防止阻塞,并進(jìn)行差錯檢測缎脾。
4.傳輸層(Transport Layer)
OSI
模型中最重要的一層。傳輸協(xié)議同時(shí)進(jìn)行流量控制或是基于接收方可接收數(shù)據(jù)的快慢程度規(guī)定適當(dāng)?shù)陌l(fā)送速率遗菠。除此之外联喘,傳輸層按照網(wǎng)絡(luò)能處理的最大尺寸將較長的數(shù)據(jù)包進(jìn)行強(qiáng)制分割。例如辙纬,以太網(wǎng)無法接收大于1500字節(jié)的數(shù)據(jù)包豁遭。發(fā)送方節(jié)點(diǎn)的傳輸層將數(shù)據(jù)分割成較小的數(shù)據(jù)片,同時(shí)對每一數(shù)據(jù)片安排一序列號贺拣,以便數(shù)據(jù)到達(dá)接收方節(jié)點(diǎn)的傳輸層時(shí)蓖谢,能以正確的順序重組。該過程即被稱為排序譬涡。工作在傳輸層的一種服務(wù)是 T C P / I P 協(xié)議套中的T C P (傳輸控制協(xié)議)闪幽,另一項(xiàng)傳輸層服務(wù)是I P X / S P X 協(xié)議集的S P X (序列包交換)。
5.會話層(Session Layer)
負(fù)責(zé)在網(wǎng)絡(luò)中的兩節(jié)點(diǎn)之間建立涡匀、維持和終止通信盯腌。 會話層的功能包括:建立通信鏈接,保持會話過程通信鏈接的暢通陨瘩,同步兩個節(jié)點(diǎn)之間的對話腕够,決定通信是否被中斷以及通信中斷時(shí)決定從何處重新發(fā)送。
你可能常常聽到有人把會話層稱作網(wǎng)絡(luò)通信的“交通警察”舌劳。當(dāng)通過撥號向你的 ISP(因特網(wǎng)服務(wù)提供商)請求連接到因特網(wǎng)時(shí)帚湘,ISP 服務(wù)器上的會話層向你與你的 PC 客戶機(jī)上的會話層進(jìn)行協(xié)商連接。若你的電話線偶然從墻上插孔脫落時(shí)蒿囤,你終端機(jī)上的會話層將檢測到連接中斷并重新發(fā)起連接客们。會話層通過決定節(jié)點(diǎn)通信的優(yōu)先級和通信時(shí)間的長短來設(shè)置通信期限
6.表示層(Presentation Layer)
應(yīng)用程序和網(wǎng)絡(luò)之間的翻譯官,在表示層材诽,數(shù)據(jù)將按照網(wǎng)絡(luò)能理解的方案進(jìn)行格式化底挫;這種格式化也因所使用網(wǎng)絡(luò)的類型不同而不同僻孝。表示層管理數(shù)據(jù)的解密與加密璧坟,如系統(tǒng)口令的處理柳沙。例如:在 Internet上查詢你銀行賬戶暖侨,使用的即是一種安全連接型诚。你的賬戶數(shù)據(jù)在發(fā)送前被加密威根,在網(wǎng)絡(luò)的另一端徘六,表示層將對接收到的數(shù)據(jù)解密锄贼。除此之外,表示層協(xié)議還對圖片和文件格式信息進(jìn)行解碼和編碼注簿。
7.應(yīng)用層(Application Layer)
應(yīng)用層(Application Layer)是OSI參考模型的最高層契吉,它是計(jì)算機(jī)用戶,以及各種應(yīng)用程序和網(wǎng)絡(luò)之間的接口诡渴,其功能是直接向用戶提供服務(wù)捐晶,完成用戶希望在網(wǎng)絡(luò)上完成的各種工作。它在其他6層工作的基礎(chǔ)上妄辩,負(fù)責(zé)完成網(wǎng)絡(luò)中應(yīng)用程序與網(wǎng)絡(luò)操作系統(tǒng)之間的聯(lián)系惑灵,建立與結(jié)束使用者之間的聯(lián)系,并完成網(wǎng)絡(luò)用戶提出的各種網(wǎng)絡(luò)服務(wù)及應(yīng)用所需的監(jiān)督眼耀、管理和服務(wù)等各種協(xié)議英支。此外,該層還負(fù)責(zé)協(xié)調(diào)各個應(yīng)用程序間的工作哮伟。
應(yīng)用層為用戶提供的服務(wù)和協(xié)議有:文件服務(wù)干花、目錄服務(wù)、文件傳輸服務(wù)(FTP)澈吨、遠(yuǎn)程登錄服務(wù)(Telnet)把敢、電子郵件服務(wù)(E-mail)、打印服務(wù)谅辣、安全服務(wù)、網(wǎng)絡(luò)管理服務(wù)婶恼、數(shù)據(jù)庫服務(wù)等桑阶。上述的各種網(wǎng)絡(luò)服務(wù)由該層的不同應(yīng)用協(xié)議和程序完成,不同的網(wǎng)絡(luò)操作系統(tǒng)之間在功能勾邦、界面蚣录、實(shí)現(xiàn)技術(shù)、對硬件的支持眷篇、安全可靠性以及具有的各種應(yīng)用程序接口等各個方面的差異是很大的萎河。
應(yīng)用層的主要功能如下:
用戶接口:應(yīng)用層是用戶與網(wǎng)絡(luò),以及應(yīng)用程序與網(wǎng)絡(luò)間的直接接口蕉饼,使得用戶能夠與網(wǎng)絡(luò)進(jìn)行交互式聯(lián)系虐杯。
實(shí)現(xiàn)各種服務(wù):該層具有的各種應(yīng)用程序可以完成和實(shí)現(xiàn)用戶請求的各種服務(wù)。
三昧港、TCP/IP的5層模型
相比于OSI的七層模型擎椰,更常用的是TCP/IP的5層模型。TCP/IP的5層模型是將ISO的七層模型的應(yīng)用層创肥、表示層达舒、會話層合并為應(yīng)用層值朋,得到如下圖所示的五層模型:
TCP/IP通信的三次握手、四次揮手
三次握手:
第一次握手:客戶端發(fā)送syn包(syn=x)到服務(wù)器巩搏,并進(jìn)入SYN_SEND狀態(tài)昨登,等待服務(wù)器確認(rèn);
第二次握手:服務(wù)器收到syn包贯底,必須確認(rèn)客戶的SYN(ack=x+1)丰辣,同時(shí)自己也發(fā)送一個SYN包(syn=y),即SYN+ACK包丈甸,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)糯俗;
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=y+1)睦擂,此包發(fā)送完畢得湘,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手顿仇。
握手過程中傳送的包里不包含數(shù)據(jù)淘正,三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)臼闻。理想狀態(tài)下鸿吆,TCP連接一旦建立,在通信雙方中的任何一方主動關(guān)閉連接之前述呐,TCP 連接都將被一直保持下去惩淳。
四次揮手
第一次揮手:主動關(guān)閉方發(fā)送一個FIN,用來關(guān)閉主動方到被動關(guān)閉方的數(shù)據(jù)傳送乓搬,也就是主動關(guān)閉方告訴被動關(guān)閉方:我已經(jīng)不會再給你發(fā)數(shù)據(jù)了(當(dāng)然思犁,在fin包之前發(fā)送出去的數(shù)據(jù),如果沒有收到對應(yīng)的ack確認(rèn)報(bào)文进肯,主動關(guān)閉方依然會重發(fā)這些數(shù)據(jù))激蹲,但是,此時(shí)主動關(guān)閉方還可以接受數(shù)據(jù)江掩。
第二次揮手:被動關(guān)閉方收到FIN包后学辱,發(fā)送一個ACK給對方,確認(rèn)序號為收到序號+1(與SYN相同环形,一個FIN占用一個序號)策泣。
第三次揮手:被動關(guān)閉方發(fā)送一個FIN,用來關(guān)閉被動關(guān)閉方到主動關(guān)閉方的數(shù)據(jù)傳送斟赚,也就是告訴主動關(guān)閉方着降,我的數(shù)據(jù)也發(fā)送完了,不會再給你發(fā)數(shù)據(jù)了拗军。
第四次揮手:主動關(guān)閉方收到FIN后任洞,發(fā)送一個ACK給被動關(guān)閉方蓄喇,確認(rèn)序號為收到序號+1,至此交掏,完成四次揮手妆偏。
四、了解交換機(jī)盅弛、路由器钱骂、網(wǎng)關(guān)的概念,并知道各自的用途
1.交換機(jī)
在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中挪鹏,交換機(jī)是針對共享工作模式的弱點(diǎn)而推出的见秽。交換機(jī)擁有一條高帶寬的背部總線和內(nèi)部交換矩陣。交換機(jī)的所有的端口都掛接在這條背部總線上讨盒,當(dāng)控制電路收到數(shù)據(jù)包以后解取,處理端口會查找內(nèi)存中的地址對照表以確定目的MAC(網(wǎng)卡的硬件地址)的NIC(網(wǎng)卡)掛接在哪個端口上,通過內(nèi)部交換矩陣迅速將數(shù)據(jù)包傳送到目的端口返顺。目的MAC若不存在禀苦,交換機(jī)才廣播到所有的端口,接收端口回應(yīng)后交換機(jī)會“學(xué)習(xí)”新的地址遂鹊,并把它添加入內(nèi)部地址表中振乏。
交換機(jī)工作于OSI參考模型的第二層,即數(shù)據(jù)鏈路層秉扑。交換機(jī)內(nèi)部的CPU
會在每個端口成功連接時(shí)慧邮,通過ARP
協(xié)議學(xué)習(xí)它的MAC
地址,保存成一張ARP
表舟陆。在今后的通訊中赋咽,發(fā)往該MAC
地址的數(shù)據(jù)包將僅送往其對應(yīng)的端口,而不是所有的端口吨娜。因此,交換機(jī)可用于劃分?jǐn)?shù)據(jù)鏈路層廣播淘钟,即沖突域宦赠;但它不能劃分網(wǎng)絡(luò)層廣播,即廣播域米母。
交換機(jī)被廣泛應(yīng)用于二層網(wǎng)絡(luò)交換勾扭,俗稱“二層交換機(jī)”。
交換機(jī)的種類有:二層交換機(jī)铁瞒、三層交換機(jī)妙色、四層交換機(jī)、七層交換機(jī)分別工作在OSI七層模型中的第二層慧耍、第三層身辨、第四層和第七層丐谋,并因此而得名。
2.路由器
路由器(Router)是一種計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備煌珊,提供了路由與轉(zhuǎn)送兩種重要機(jī)制号俐,可以決定數(shù)據(jù)包從來源端到目的端所經(jīng)過的路由路徑(host到host之間的傳輸路徑),這個過程稱為路由定庵;將路由器輸入端的數(shù)據(jù)包移送至適當(dāng)?shù)穆酚善鬏敵龆?在路由器內(nèi)部進(jìn)行)吏饿,這稱為轉(zhuǎn)送。路由工作在OSI模型的第三層——即網(wǎng)絡(luò)層蔬浙,例如網(wǎng)際協(xié)議猪落。
路由器的一個作用是連通不同的網(wǎng)絡(luò),另一個作用是選擇信息傳送的線路畴博。 路由器與交換機(jī)的差別笨忌,路由器是屬于OSI第三層的產(chǎn)品,交換機(jī)是OSI第二層的產(chǎn)品(這里特指二層交換機(jī))绎晃。
3.網(wǎng)關(guān)
網(wǎng)關(guān)(Gateway)蜜唾,網(wǎng)關(guān)顧名思義就是連接兩個網(wǎng)絡(luò)的設(shè)備,區(qū)別于路由器(由于歷史的原因庶艾,許多有關(guān)TCP/IP的文獻(xiàn)曾經(jīng)把網(wǎng)絡(luò)層使用的路由器(Router)稱為網(wǎng)關(guān)袁余,在今天很多局域網(wǎng)采用都是路由來接入網(wǎng)絡(luò),因此現(xiàn)在通常指的網(wǎng)關(guān)就是路由器的IP)咱揍,經(jīng)常在家庭中或者小型企業(yè)網(wǎng)絡(luò)中使用颖榜,用于連接局域網(wǎng)和Internet。 網(wǎng)關(guān)也經(jīng)常指把一種協(xié)議轉(zhuǎn)成另一種協(xié)議的設(shè)備煤裙,比如語音網(wǎng)關(guān)掩完。
在傳統(tǒng)TCP/IP術(shù)語中,網(wǎng)絡(luò)設(shè)備只分成兩種硼砰,一種為網(wǎng)關(guān)(gateway)且蓬,另一種為主機(jī)(host)。網(wǎng)關(guān)能在網(wǎng)絡(luò)間轉(zhuǎn)遞數(shù)據(jù)包题翰,但主機(jī)不能轉(zhuǎn)送數(shù)據(jù)包恶阴。在主機(jī)(又稱終端系統(tǒng),end system)中豹障,數(shù)據(jù)包需經(jīng)過TCP/IP四層協(xié)議處理冯事,但是在網(wǎng)關(guān)(又稱中介系統(tǒng),intermediate system)只需要到達(dá)網(wǎng)際層(Internet layer)血公,決定路徑之后就可以轉(zhuǎn)送昵仅。在當(dāng)時(shí),網(wǎng)關(guān)(gateway)與路由器(router)還沒有區(qū)別累魔。
在現(xiàn)代網(wǎng)絡(luò)術(shù)語中摔笤,網(wǎng)關(guān)(gateway)與路由器(router)的定義不同够滑。網(wǎng)關(guān)(gateway)能在不同協(xié)議間移動數(shù)據(jù),而路由器(router)是在不同網(wǎng)絡(luò)間移動數(shù)據(jù)籍茧,相當(dāng)于傳統(tǒng)所說的IP網(wǎng)關(guān)(IP gateway)版述。
網(wǎng)關(guān)是連接兩個網(wǎng)絡(luò)的設(shè)備,對于語音網(wǎng)關(guān)來說寞冯,他可以連接PSTN網(wǎng)絡(luò)和以太網(wǎng)渴析,這就相當(dāng)于VOIP,把不同電話中的模擬信號通過網(wǎng)關(guān)而轉(zhuǎn)換成數(shù)字信號吮龄,而且加入?yún)f(xié)議再去傳輸俭茧。在到了接收端的時(shí)候再通過網(wǎng)關(guān)還原成模擬的電話信號,最后才能在電話機(jī)上聽到漓帚。
對于以太網(wǎng)中的網(wǎng)關(guān)只能轉(zhuǎn)發(fā)三層以上數(shù)據(jù)包母债,這一點(diǎn)和路由是一樣的。而不同的是網(wǎng)關(guān)中并沒有路由表尝抖,他只能按照預(yù)先設(shè)定的不同網(wǎng)段來進(jìn)行轉(zhuǎn)發(fā)毡们。網(wǎng)關(guān)最重要的一點(diǎn)就是端口映射,子網(wǎng)內(nèi)用戶在外網(wǎng)看來只是外網(wǎng)的IP地址對應(yīng)著不同的端口昧辽,這樣看來就會保護(hù)子網(wǎng)內(nèi)的用戶衙熔。
4.初識路由表
路由表(routing table)或稱路由擇域信息庫( Routing Information Base),是一個存儲在路由器
或者聯(lián)網(wǎng)計(jì)算機(jī)中的電子表格(文件)或類數(shù)據(jù)庫搅荞。路由表存儲著指向特定網(wǎng)絡(luò)地址的路徑(在有些情況下红氯,還記錄有路徑的路由度量值)。路由表中含有網(wǎng)絡(luò)周邊的拓?fù)湫畔⒐就础B酚杀斫⒌闹饕繕?biāo)是為了實(shí)現(xiàn)路由協(xié)議和靜態(tài)路由選擇痢甘。
路由表使用了和利用地圖投遞包裹相似的思想。只要網(wǎng)絡(luò)上的一個節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)給網(wǎng)絡(luò)上的另一個節(jié)點(diǎn)茉贡,它就必須要知道把數(shù)據(jù)發(fā)送到哪塞栅。設(shè)備不可能直接連接到目的節(jié)點(diǎn),它需要找到另一個方式去發(fā)送數(shù)據(jù)包腔丧。在局域網(wǎng)中构蹬,節(jié)點(diǎn)也不知道如何發(fā)送IP包到網(wǎng)關(guān)。將數(shù)據(jù)包發(fā)到正確的地址是一個復(fù)雜的任務(wù)悔据,網(wǎng)關(guān)需要記錄發(fā)送數(shù)據(jù)包的路徑信息。路由表就存儲著這樣的路徑信息俗壹,就如地圖一樣科汗,是一個記錄路徑信息,并為需要這些信息的節(jié)點(diǎn)提供服務(wù)的數(shù)據(jù)庫绷雏。
如下圖所示為一張路由表:
路由表參數(shù)說明:
Destination:目的網(wǎng)段
mask:子網(wǎng)掩碼
interface:到達(dá)該目的地的本路由器的出口ip
gateway:下一跳路由器入口的ip头滔,路由器通過interface和gateway定義一條到下一個路由器的鏈路怖亭,通常情況下,interface和gateway是同一網(wǎng)段的
metric:跳數(shù)坤检,該條路由記錄的質(zhì)量兴猩,一般情況下,如果有多條到達(dá)相同目的地的路由記錄早歇,路由器會采用metric值小的那條路由
5.TCP倾芝、UDP和HTTP區(qū)別于聯(lián)系
TCP/IP協(xié)議是一個協(xié)議簇,這個協(xié)議簇中包含了很多種協(xié)議箭跳,TCP晨另、UDP和HTTP只是TCP/IP協(xié)議簇的成員。之所以命名為TCP/IP協(xié)議谱姓,因?yàn)門CP,IP協(xié)議是兩個很重要的協(xié)議借尿,就用他兩命名了。
1)TCP/IP協(xié)議簇屉来,大致可分為三個層次:網(wǎng)絡(luò)層路翻、傳輸層和應(yīng)用層。
在網(wǎng)絡(luò)層有IP協(xié)議茄靠、ICMP協(xié)議茂契、ARP協(xié)議、RARP協(xié)議和BOOTP協(xié)議嘹黔。
在傳輸層中有TCP協(xié)議與UDP協(xié)議账嚎。
在應(yīng)用層有FTP、HTTP儡蔓、TELNET郭蕉、SMTP、DNS等協(xié)議喂江。
HTTP也是一個協(xié)議召锈,是從Web服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。
2)HTTP協(xié)議是建立在請求/響應(yīng)模型上的获询。首先由客戶建立一條與服務(wù)器的TCP鏈接涨岁,并發(fā)送一個請求到服務(wù)器,請求中包含請求方法吉嚣、URI梢薪、協(xié)議版本以及相關(guān)的MIME樣式的消息。服務(wù)器響應(yīng)一個狀態(tài)行尝哆,包含消息的協(xié)議版本秉撇、一個成功和失敗碼以及相關(guān)的MIME式樣的消息。
HTTP/1.0為每一次HTTP的請求/響應(yīng)建立一條新的TCP鏈接,因此一個包含HTML內(nèi)容和圖片的頁面將需要建立多次的短期的TCP鏈接琐馆。一次TCP鏈接的建立將需要3次握手规阀。
另外,為了獲得適當(dāng)?shù)膫鬏斔俣仁蒴铮瑒t需要TCP花費(fèi)額外的回路鏈接時(shí)間(RTT)谁撼。每一次鏈接的建立需要這種經(jīng)常性的開銷,而其并不帶有實(shí)際有用的數(shù)據(jù)滋饲,只是保證鏈接的可靠性厉碟,因此HTTP/1.1提出了可持續(xù)鏈接的實(shí)現(xiàn)方法。HTTP/1.1將只建立一次TCP的鏈接而重復(fù)地使用它傳輸一系列的請求/響應(yīng)消息了赌,因此減少了鏈接建立的次數(shù)和經(jīng)常性的鏈接開銷墨榄。
3)雖然HTTP本身是一個協(xié)議,但其最終還是基于TCP的勿她。目前袄秩,有人正在研究基于TCP+UDP混合的HTTP協(xié)議。