|
1、TCP/IP協(xié)議棧
四層模型
TCP/IP這個(gè)協(xié)議遵守一個(gè)四層的模型概念:應(yīng)用層、傳輸層、互聯(lián)層和網(wǎng)絡(luò)
接口層。
網(wǎng)絡(luò)接口層
模型的基層是網(wǎng)絡(luò)接口層。負(fù)責(zé)數(shù)據(jù)幀的發(fā)送和接收,幀是獨(dú)立的網(wǎng)絡(luò)信息傳
輸單元。網(wǎng)絡(luò)接口層將幀放在網(wǎng)上,或從網(wǎng)上把幀取下來(lái)。
互聯(lián)層
互聯(lián)協(xié)議將數(shù)據(jù)包封裝成internet數(shù)據(jù)報(bào),并運(yùn)行必要的路由算法。
這里有四個(gè)互聯(lián)協(xié)議:
網(wǎng)際協(xié)議IP:負(fù)責(zé)在主機(jī)和網(wǎng)絡(luò)之間尋址和路由數(shù)據(jù)包。
地址解析協(xié)議ARP:獲得同一物理網(wǎng)絡(luò)中的硬件主機(jī)地址。
網(wǎng)際控制消息協(xié)議ICMP:發(fā)送消息,并報(bào)告有關(guān)數(shù)據(jù)包的傳送錯(cuò)誤。
互聯(lián)組管理協(xié)議IGMP:被IP主機(jī)拿來(lái)向本地多路廣播路由器報(bào)告主機(jī)組成員。
傳輸層
傳輸協(xié)議在計(jì)算機(jī)之間提供通信會(huì)話。傳輸協(xié)議的選擇根據(jù)數(shù)據(jù)傳輸方式而定。
兩個(gè)傳輸協(xié)議:
傳輸控制協(xié)議TCP:為應(yīng)用程序提供可靠的通信連接。適合于一次傳輸大批數(shù)
據(jù)的情況。并適用于要求得到響應(yīng)的應(yīng)用程序。
用戶數(shù)據(jù)報(bào)協(xié)議UDP:提供了無(wú)連接通信,且不對(duì)傳送包進(jìn)行可靠的保證。適
合于一次傳輸小量數(shù)據(jù),可靠性則由應(yīng)用層來(lái)負(fù)責(zé)。
應(yīng)用層
應(yīng)用程序通過這一層訪問網(wǎng)絡(luò)。
網(wǎng)絡(luò)接口技術(shù)
IP使用網(wǎng)絡(luò)設(shè)備接口規(guī)范NDIS向網(wǎng)絡(luò)接口層提交幀。IP支持廣域網(wǎng)和本地網(wǎng)
接口技術(shù)。
串行線路協(xié)議
TCP/IPG一般通過internet串行線路協(xié)議SLIP或點(diǎn)對(duì)點(diǎn)協(xié)議PPP在串行線上進(jìn)
行數(shù)據(jù)傳送。(是不是我們平時(shí)把它稱之為異步通信,對(duì)于要拿LINUX提供建立
遠(yuǎn)程連接的朋友應(yīng)該多研究一下這方面的知識(shí))?
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備(2)
==============================
2、ARP
要在網(wǎng)絡(luò)上通信,主機(jī)就必須知道對(duì)方主機(jī)的硬件地址(我們不是老遇到網(wǎng)卡
的物理地址嘛)。地址解析就是將主機(jī)IP地址映射為硬件地址的過程。地址解
析協(xié)議ARP用于獲得在同一物理網(wǎng)絡(luò)中的主機(jī)的硬件地址。
解釋本地IP地址(要了解地址解析工作過程的朋友看好了)
主機(jī)IP地址解析為硬件地址:
(1)當(dāng)一臺(tái)主機(jī)要與別的主機(jī)通信時(shí),初始化ARP請(qǐng)求。當(dāng)該IP斷定IP地址是
本地時(shí),源主機(jī)在ARP緩存中查找目標(biāo)主機(jī)的硬件地址。
(2)要是找不到映射的話,ARP建立一個(gè)請(qǐng)求,源主機(jī)IP地址和硬件地址會(huì)被
包括在請(qǐng)求中,該請(qǐng)求通過廣播,使所有本地主機(jī)均能接收并處理。
(3)本地網(wǎng)上的每個(gè)主機(jī)都收到廣播并尋找相符的IP地址。
(4)當(dāng)目標(biāo)主機(jī)斷定請(qǐng)求中的IP地址與自己的相符時(shí),直接發(fā)送一個(gè)ARP答復(fù),
將自己的硬件地址傳給源主機(jī)。以源主機(jī)的IP地址和硬件地址更新它的ARP
緩存。源主機(jī)收到回答后便建立起了通信。
解析遠(yuǎn)程IP地址
不同網(wǎng)絡(luò)中的主機(jī)互相通信,ARP廣播的是源主機(jī)的缺省網(wǎng)關(guān)。
目標(biāo)IP地址是一個(gè)遠(yuǎn)程網(wǎng)絡(luò)主機(jī)的話,ARP將廣播一個(gè)路由器的地址。
(1)通信請(qǐng)求初始化時(shí),得知目標(biāo)IP地址為遠(yuǎn)程地址。源主機(jī)在本地路由表中
查找,若無(wú),源主機(jī)認(rèn)為是缺省網(wǎng)關(guān)的IP地址。在ARP緩存中查找符合該網(wǎng)關(guān)
記錄的IP地址(硬件地址)。
(2)若沒找到該網(wǎng)關(guān)的記錄,ARP將廣播請(qǐng)求網(wǎng)關(guān)地址而不是目標(biāo)主機(jī)的地址。
路由器用自己的硬件地址響應(yīng)源主機(jī)的ARP請(qǐng)求。源主機(jī)則將數(shù)據(jù)包送到路由
器以傳送到目標(biāo)主機(jī)的網(wǎng)絡(luò),最終達(dá)到目標(biāo)主機(jī)。
(3)在路由器上,由IP決定目標(biāo)IP地址是本地還是遠(yuǎn)程。如果是本地,路由器
用ARP(緩存或廣播)獲得硬件地址。如果是遠(yuǎn)程,路由器在其路由表中查找該
網(wǎng)關(guān),然后運(yùn)用ARP獲得此網(wǎng)關(guān)的硬件地址。數(shù)據(jù)包被直接發(fā)送到下一個(gè)目標(biāo)
主機(jī)。
(4)目標(biāo)主機(jī)收到請(qǐng)求后,形成ICMP響應(yīng)。因源主機(jī)在遠(yuǎn)程網(wǎng)上,將在本地路
由表中查找源主機(jī)網(wǎng)的網(wǎng)關(guān)。找到網(wǎng)關(guān)后,ARP即獲取它的硬件地址。
(5)如果此網(wǎng)關(guān)的硬件地址不在ARP緩存中,通過ARP廣播獲得。一旦它獲得
硬件地址,ICMP響應(yīng)就送到路由器上,然后傳到源主機(jī)。
ARP緩存
為減少?gòu)V播量,ARP在緩存中保存地址映射以備用。ARP緩存保存有動(dòng)態(tài)項(xiàng)
和靜態(tài)項(xiàng)。動(dòng)態(tài)項(xiàng)是自動(dòng)添加和刪除的,靜態(tài)項(xiàng)則保留在CACHE中直到計(jì)算
機(jī)重新啟動(dòng)。
ARP緩存總是為本地子網(wǎng)保留硬件廣播地址(0xffffffffffffh)作為一個(gè)永久項(xiàng)。
此項(xiàng)使主機(jī)能夠接受ARP廣播。當(dāng)查看緩存時(shí),該項(xiàng)不會(huì)顯示。
每條ARP緩存記錄的生命周期為10分鐘,2分鐘內(nèi)未用則刪除。緩存容量滿時(shí),
刪除最老的記錄。
加入靜態(tài)(永久)記錄
通過添加靜態(tài)ARP項(xiàng)可減少ARP請(qǐng)求訪問主機(jī)的次數(shù)。
ARP包的結(jié)構(gòu)
ARP結(jié)構(gòu)的字段如下:
硬件類型--使用的硬件(網(wǎng)絡(luò)訪問層)類型。
協(xié)議類型--解析過程中的協(xié)議使用以太類型的值。
硬件地址長(zhǎng)度--硬件地址的字節(jié)長(zhǎng)度,對(duì)于以太網(wǎng)和令牌環(huán)來(lái)說,其長(zhǎng)度為6字節(jié)。
協(xié)議地址長(zhǎng)度--協(xié)議地址字節(jié)的長(zhǎng)度,IP的長(zhǎng)度是4字節(jié)。
操作號(hào)--指定當(dāng)前執(zhí)行操作的字段。
發(fā)送者的硬件地址--發(fā)送者的硬件地址。
發(fā)送者的協(xié)議地址--發(fā)送者的協(xié)議地址。
目的站硬件地址--目標(biāo)者的硬件地址。
目的站協(xié)議地址--目標(biāo)者的協(xié)議地址。?
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備(3)
==============================
3、ICMP和IGMP
internet控制消息協(xié)議ICMP是用于報(bào)告錯(cuò)誤并代表IP對(duì)消息進(jìn)行控制。
IP運(yùn)用互聯(lián)組管理協(xié)議IGMP來(lái)告訴路由器,某一網(wǎng)絡(luò)上指導(dǎo)組中的可用主機(jī)。
ICMP
ICMP源抑制消息:當(dāng)TCP/IP主機(jī)發(fā)送數(shù)據(jù)到另一主機(jī)時(shí),如果速度達(dá)到路由器或者鏈路
的飽和狀態(tài),路由器發(fā)出一個(gè)ICMP源抑制消息。
ICMP數(shù)據(jù)包結(jié)構(gòu)
類型:一個(gè)8位類型字段,表示ICMP數(shù)據(jù)包類型。
代碼:一個(gè)8位代碼域,表示指定類型中的一個(gè)功能。如果一個(gè)類型中只有一種功能,代
碼域置為0。
檢驗(yàn)和:數(shù)據(jù)包中ICMP部分上的一個(gè)16位檢驗(yàn)和。
指定類型的數(shù)據(jù)隨每個(gè)ICMP類型變化的一個(gè)附加數(shù)據(jù)。
IGMP
IGMP信息傳給別的路由器以使每個(gè)支持多路廣播的路由器獲知哪個(gè)主機(jī)組和哪個(gè)網(wǎng)絡(luò)
中。
IGMP包結(jié)構(gòu)
版本:IGMP的版本,值一般為0x1h。
類型:IGMP消息的類型。0x1h類型稱為主機(jī)成員請(qǐng)求,在多路廣播路由器上用于指定多
級(jí)組中的任何成員輪詢一個(gè)網(wǎng)絡(luò)。0x2h類型稱為主機(jī)成員報(bào)告,在主機(jī)上用于發(fā)布指定組
中的成員情況或?qū)σ粋(gè)路由器的主機(jī)成員請(qǐng)求進(jìn)行回答。
未用:未用的域名被發(fā)送者置零且被接收者忽略。
檢驗(yàn)和:IGMP頭的一個(gè)16位檢驗(yàn)和。
組地址:主機(jī)用該組地址在一個(gè)主機(jī)成員請(qǐng)求中存儲(chǔ)IP多路廣播地址。在主機(jī)成員請(qǐng)求中,
組地址被全置零,而且硬件級(jí)的多路廣播地址被用來(lái)標(biāo)示主機(jī)組。
4、IP
IP是一個(gè)無(wú)連接的協(xié)議,主要就是負(fù)責(zé)在主機(jī)間尋址并為數(shù)據(jù)包設(shè)定路由,在交換數(shù)據(jù)前
它并不建立會(huì)話。因?yàn)樗槐WC正確傳遞,另一方面,數(shù)據(jù)在被收到時(shí),IP不需要收到確
認(rèn),所以它是不可靠的。
有一些字段,在當(dāng)數(shù)據(jù)從傳輸層傳下來(lái)時(shí),會(huì)被附加在數(shù)據(jù)包中,我們來(lái)看一下這些字段:
源IP地址:用IP地址確定數(shù)據(jù)報(bào)發(fā)送者。
目標(biāo)IP地址:用IP地址確定數(shù)據(jù)報(bào)目標(biāo)。
協(xié)議:告知目的機(jī)的IP是否將包傳給TCP或UDP。
檢查和:一個(gè)簡(jiǎn)單的數(shù)學(xué)計(jì)算,用來(lái)證實(shí)收到的包的完整性。
TTL生存有效時(shí)間:指定一個(gè)數(shù)據(jù)報(bào)被丟棄之前,在網(wǎng)絡(luò)上能停留多少時(shí)間(以秒計(jì))。它
避免了包在網(wǎng)絡(luò)中無(wú)休止循環(huán)。路由器會(huì)根據(jù)數(shù)據(jù)在路由器中駐留的時(shí)間來(lái)遞減TTL。其
中數(shù)據(jù)報(bào)通過一次路由器,TTL至少減少一秒。
根據(jù)我們前面提到關(guān)于ARP的知識(shí),如果IP地址目標(biāo)為本地地址時(shí),IP將數(shù)據(jù)包直接傳
給那個(gè)主機(jī);如果目標(biāo)地址為遠(yuǎn)程地址的話,IP在本地的路由表中查找遠(yuǎn)程主機(jī)的路由(看
來(lái)好象我們平時(shí)撥114一樣)。如果找到一個(gè)路由,IP用它傳送數(shù)據(jù)包。如果沒找到呢,就
會(huì)將數(shù)據(jù)包發(fā)送到源主機(jī)的缺省網(wǎng)關(guān),也稱之為路由器。(很多時(shí)候一直在搞網(wǎng)關(guān)和路由器
的定義,其實(shí)我覺得在學(xué)的時(shí)候不一定死摳概念,現(xiàn)在硬件和軟件結(jié)合的產(chǎn)品越來(lái)越多了,
一時(shí)很分清的,只要我們運(yùn)用的時(shí)候可以解決實(shí)際問題嘛。)
這樣當(dāng)路由器收到一個(gè)包后,該包向上傳給IP:
(1)如果交通阻塞(聽起來(lái)蠻可怕的),包在路由器中停滯,TTL至少減1或更多。要是它降
到0的話,包就會(huì)被拋棄。
(2)如果對(duì)于下一網(wǎng)絡(luò)來(lái)說包太大的話,IP會(huì)將它分割成若干個(gè)小包。
(3)如果包被分解,IP為每個(gè)新包制造一個(gè)新頭,其中包括:一個(gè)標(biāo)志,用來(lái)顯示其它小包
在其后;一個(gè)小包ID,用來(lái)確定所有小包是一起的;一個(gè)小包偏移,用來(lái)告訴接收主機(jī)怎
么重新組合它們。
(4)IP計(jì)算一個(gè)新的檢驗(yàn)和。
(5)IP獲取一個(gè)路由的目標(biāo)硬件地址。
(6)IP轉(zhuǎn)發(fā)包。
在下一主機(jī),包被發(fā)送到TCP或UDP。每個(gè)路由器都要重復(fù)該過程。直到包到達(dá)最終目
的地。當(dāng)包到達(dá)最終目的地后,IP將小包組裝成原來(lái)的包。
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備(4)
==============================
5、TCP
TCP是一種可靠的面向連接的傳送服務(wù)。它在傳送數(shù)據(jù)時(shí)是分段進(jìn)行的,主機(jī)交換數(shù)據(jù)必
須建立一個(gè)會(huì)話。它用比特流通信,即數(shù)據(jù)被作為無(wú)結(jié)構(gòu)的字節(jié)流。
通過每個(gè)TCP傳輸?shù)淖侄沃付樞蛱?hào),以獲得可靠性。如果一個(gè)分段被分解成幾個(gè)小段,
接收主機(jī)會(huì)知道是否所有小段都已收到。通過發(fā)送應(yīng)答,用以確認(rèn)別的主機(jī)收到了數(shù)據(jù)。
對(duì)于發(fā)送的每一個(gè)小段,接收主機(jī)必須在一個(gè)指定的時(shí)間返回一個(gè)確認(rèn)。如果發(fā)送者未收
到確認(rèn),數(shù)據(jù)會(huì)被重新發(fā)送;如果收到的數(shù)據(jù)包損壞,接收主機(jī)會(huì)舍棄它,因?yàn)榇_認(rèn)未被
發(fā)送,發(fā)送者會(huì)重新發(fā)送分段。
端口
SOCKETS實(shí)用程序使用一個(gè)協(xié)議端口號(hào)來(lái)標(biāo)明自己應(yīng)用的唯一性。端口可以使用0到65536
之間的任何數(shù)字。在服務(wù)請(qǐng)求時(shí),操作系統(tǒng)動(dòng)態(tài)地為客戶端的應(yīng)用程序分配端口號(hào)。
套接字
套接字在要領(lǐng)上與文件句柄類似,因?yàn)槠涔δ苁亲鳛榫W(wǎng)絡(luò)通信的終結(jié)點(diǎn)。一個(gè)應(yīng)用程序通
過定義三部分來(lái)產(chǎn)生一個(gè)套接字:主機(jī)IP地址、服務(wù)類型(面向連接的服務(wù)是TCP,無(wú)連
接服務(wù)是UDP)、應(yīng)用程序所用的端口。
TCP端口
TCP端口為信息的傳送提供定地點(diǎn),端口號(hào)小于256的定義為常用端口。
TCP的三次握手
TCP對(duì)話通過三次握手來(lái)初始化。三次握手的目的是使數(shù)據(jù)段的發(fā)送和接收同步;告訴其
它主機(jī)其一次可接收的數(shù)據(jù)量,并建立虛連接。
我們來(lái)看看這三次握手的簡(jiǎn)單過程:
(1)初始化主機(jī)通過一個(gè)同步標(biāo)志置位的數(shù)據(jù)段發(fā)出會(huì)話請(qǐng)求。
(2)接收主機(jī)通過發(fā)回具有以下項(xiàng)目的數(shù)據(jù)段表示回復(fù):同步標(biāo)志置位、即將發(fā)送的數(shù)據(jù)段
的起始字節(jié)的順序號(hào)、應(yīng)答并帶有將收到的下一個(gè)數(shù)據(jù)段的字節(jié)順序號(hào)。
(3)請(qǐng)求主機(jī)再回送一個(gè)數(shù)據(jù)段,并帶有確認(rèn)順序號(hào)和確認(rèn)號(hào)。
TCP滑動(dòng)窗口
TCP滑動(dòng)窗口用來(lái)暫存兩臺(tái)主機(jī)間要傳送的數(shù)據(jù),有點(diǎn)類似CACHE。
每個(gè)TCP/IP主機(jī)有兩個(gè)滑動(dòng)窗口:一個(gè)用于接收數(shù)據(jù),另一個(gè)用于發(fā)送數(shù)據(jù)。
6、UDP
用戶數(shù)據(jù)報(bào)協(xié)議UDP提供了無(wú)連接的數(shù)據(jù)報(bào)服務(wù)。它適用于無(wú)須應(yīng)答并且通常一次只傳送
少量數(shù)據(jù)的應(yīng)用軟件。
UDP端口
端口作為多路復(fù)用的消息隊(duì)列使用。
15 NETSTAT 網(wǎng)絡(luò)狀態(tài)
53 DOMAIN 域名服務(wù)器
69 TFTP 平凡文件傳送協(xié)議
137 NETBIOS-NS NETBIOS命令服務(wù)
138 NETBIOS-DGM NETBIOS數(shù)據(jù)報(bào)服務(wù)
161 SNMP SNMP網(wǎng)絡(luò)監(jiān)視器
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備(5)
==============================
IP地址分配
1、IP地址
IP地址標(biāo)識(shí)著網(wǎng)絡(luò)中一個(gè)系統(tǒng)的位置。我們知道每個(gè)IP地址都是由兩部分組成的:網(wǎng)絡(luò)號(hào)
和主機(jī)號(hào)。其中網(wǎng)絡(luò)號(hào)標(biāo)識(shí)一個(gè)物理的網(wǎng)絡(luò),同一個(gè)網(wǎng)絡(luò)上所有主機(jī)需要同一個(gè)網(wǎng)絡(luò)號(hào),
該號(hào)在互聯(lián)網(wǎng)中是唯一的;而主機(jī)號(hào)確定網(wǎng)絡(luò)中的一個(gè)工作端、服務(wù)器、路由器其它TCP/IP
主機(jī)。對(duì)于同一個(gè)網(wǎng)絡(luò)號(hào)來(lái)說,主機(jī)號(hào)是唯一的。每個(gè)TCP/IP主機(jī)由一個(gè)邏輯IP地址確
定。
網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)
IP地址有兩種表示形式:二進(jìn)制表示(1和0太多了就搞不清)和點(diǎn)分十進(jìn)制表示。每個(gè)IP
地址的長(zhǎng)度為4字節(jié),由四個(gè)8位域組成,我們通常稱之為八位體。八位體由句點(diǎn).分開,
表示為一個(gè)0-255之間的十進(jìn)制數(shù)。一個(gè)IP地址的4個(gè)域分別標(biāo)明了網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)。
2、地址類型
為適應(yīng)不同大小的網(wǎng)絡(luò),internet定義了5種IP地址類型。
可以通過IP地址的前八位來(lái)確定地址的類型:
類型 IP形式 網(wǎng)絡(luò)號(hào) 主機(jī)號(hào)
A類 w.x.y.z w x.y.z
B類 w.x.y.z w.x y.z
C類 w.x.y.z w.x.y z
我們來(lái)看一下這5類地址:
A類地址:可以擁有很大數(shù)量的主機(jī),最高位為0,緊跟的7位表示網(wǎng)絡(luò)號(hào),余24位表示
主機(jī)號(hào),總共允許有126個(gè)網(wǎng)絡(luò)。
B類地址:被分配到中等規(guī)模和大規(guī)模的網(wǎng)絡(luò)中,最高兩位總被置于二進(jìn)制的10,允許有
16384個(gè)網(wǎng)絡(luò)。
C類地址:被用于局域網(wǎng)。高三位被置為二進(jìn)制的110,允許大約200萬(wàn)個(gè)網(wǎng)絡(luò)。
D類地址:被用于多路廣播組用戶,高四位總被置為1110,余下的位用于標(biāo)明客戶機(jī)所屬
的組。
E類地址是一種僅供試驗(yàn)的地址。
3、地址分配指南
在分配網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)時(shí)應(yīng)遵守以下幾條準(zhǔn)則:
(1)網(wǎng)絡(luò)號(hào)不能為127。大家知道該標(biāo)識(shí)號(hào)被保留作回路及診斷功能,還記得平時(shí)ping
127.0.0.1?
(2)不能將網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的各位均置1。如果每一位都是1的話,該地址會(huì)被解釋為網(wǎng)內(nèi)
廣播而不是一個(gè)主機(jī)號(hào)。(TCP/IP是一個(gè)可廣播的協(xié)議嘛)
(3)相應(yīng)于上面一條,各位均不能置0,否則該地址被解釋為“就是本網(wǎng)絡(luò)”。
(4)對(duì)于本網(wǎng)絡(luò)來(lái)說,主機(jī)號(hào)應(yīng)該是唯一。(否則會(huì)出現(xiàn)IP地址已分配或有沖突之類的錯(cuò)誤)
分配網(wǎng)絡(luò)號(hào)
對(duì)于每個(gè)網(wǎng)絡(luò)以及廣域連接,必須有唯一的網(wǎng)絡(luò)號(hào),主機(jī)號(hào)用于區(qū)分同一物理網(wǎng)絡(luò)中的不
同主機(jī)。如果網(wǎng)絡(luò)由路由器連接,則每個(gè)廣域連接都需要唯一的網(wǎng)絡(luò)號(hào)。
分配主機(jī)號(hào)
主機(jī)號(hào)用于區(qū)分同一網(wǎng)絡(luò)中不同的主機(jī),并且主機(jī)號(hào)應(yīng)該是唯一的。所有的主機(jī)包括路由
器間的接口,都應(yīng)該有唯一的網(wǎng)絡(luò)號(hào)。路由器的主機(jī)號(hào),要配置成工作站的缺省網(wǎng)關(guān)地址。
有效的主機(jī)號(hào)
A類:w.0.0.1--w.255.255.254
B類:w.x.0.1--w.x.255.254
C類:w.x.y.1--w.x.y.254
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備(6)
==============================
4、子網(wǎng)屏蔽和IP地址
TCP/IP上的每臺(tái)主機(jī)都需要用一個(gè)子網(wǎng)屏蔽號(hào)。它是一個(gè)4字節(jié)的地址,用來(lái)封裝或“屏
蔽”IP地址的一部分,以區(qū)分網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)。當(dāng)網(wǎng)絡(luò)還沒有劃分為子網(wǎng)時(shí),可以使用缺
省的子網(wǎng)屏蔽;當(dāng)網(wǎng)絡(luò)被劃分為若干個(gè)子網(wǎng)時(shí),就要使用自定義的子網(wǎng)屏蔽了。
缺省值
我們來(lái)看看缺省的子網(wǎng)屏蔽值,它用于一個(gè)還沒有劃分子網(wǎng)的網(wǎng)絡(luò)。即使是在一個(gè)單段網(wǎng)
絡(luò)上,每臺(tái)主機(jī)也都需要這樣的缺省值。
它的形式依賴于網(wǎng)絡(luò)的地址類型。在它的4個(gè)字節(jié)里,所有對(duì)應(yīng)網(wǎng)絡(luò)號(hào)的位都被置為1,
于是每個(gè)八位體的十進(jìn)制值都是255;所有對(duì)就主機(jī)號(hào)的位都置為0。例如:C類網(wǎng)地址
192.168.0.1和相應(yīng)的缺省屏蔽值255.255.255.0。
確定數(shù)據(jù)包的目的地址
我們說把屏蔽值和IP地址值做“與”的操作其實(shí)是一個(gè)內(nèi)部過程,它用來(lái)確定一個(gè)數(shù)據(jù)包
是傳給本地還是遠(yuǎn)程網(wǎng)絡(luò)上的主機(jī)。其相應(yīng)的操作過程是這樣的:當(dāng)TCP/IP初始化時(shí),主
機(jī)的IP地址和子網(wǎng)屏蔽值相“與”。在數(shù)據(jù)包被發(fā)送之前,再把目的地址也和屏蔽值作“與”,
這樣如果發(fā)現(xiàn)源IP地址和目的IP地址相匹配,IP協(xié)議就知道數(shù)據(jù)包屬于本地網(wǎng)上的某臺(tái)
主機(jī);否則數(shù)據(jù)包將被送到路由器上。
注:我們知道“與”操作是將IP地址中的每一位與子網(wǎng)屏蔽中相應(yīng)的位按邏輯與作比較。
建立子網(wǎng)
1、 子網(wǎng)簡(jiǎn)介
一個(gè)網(wǎng)絡(luò)實(shí)際上可能會(huì)有多個(gè)物理網(wǎng)段,我們把這些網(wǎng)段稱之為子網(wǎng),其使用的IP地址是
由某個(gè)網(wǎng)絡(luò)號(hào)派生而得到的。
將一個(gè)網(wǎng)絡(luò)劃分成若干個(gè)子網(wǎng),需要使用不同的網(wǎng)絡(luò)號(hào)或子網(wǎng)號(hào)。當(dāng)然了,劃分子網(wǎng)有它
的優(yōu)點(diǎn),通過劃分子網(wǎng),每個(gè)單位可以將復(fù)雜的物理網(wǎng)段連接成一個(gè)網(wǎng)絡(luò),并且可以:
(1) 混合使用多種技術(shù),比如以太網(wǎng)和令牌環(huán)網(wǎng)。(最流行的兩種接口都支持了哦)
(2) 克服當(dāng)前技術(shù)的限制,比如突破每段主機(jī)的最大數(shù)量限制。
(3) 通過重定向傳輸以及減少?gòu)V播等傳輸方式以減輕網(wǎng)絡(luò)的擁擠。
實(shí)現(xiàn)子網(wǎng)劃分
在動(dòng)手劃分子網(wǎng)之前,我們一定要先分析一下自己的需求以及將來(lái)的規(guī)劃。一般情況下我
們遵循這樣的準(zhǔn)則:
(1) 確定網(wǎng)絡(luò)中的物理段數(shù)量。(就是子網(wǎng)個(gè)數(shù)嘛)
(2) 確定每個(gè)子網(wǎng)需要的主機(jī)數(shù)。注意一個(gè)主機(jī)至少一個(gè)IP地址。
(3) 基于此需求,定義:整個(gè)網(wǎng)絡(luò)的子網(wǎng)屏蔽、每個(gè)子網(wǎng)唯一的子網(wǎng)號(hào)和每個(gè)子網(wǎng)的主機(jī)號(hào)
范圍。
子網(wǎng)屏蔽位
在定義一個(gè)子網(wǎng)屏蔽之前,確定一下將來(lái)需要的子網(wǎng)數(shù)量及每子網(wǎng)的主機(jī)數(shù)是必不可少的
一步。因?yàn)楫?dāng)更多的位用于子網(wǎng)屏蔽時(shí),就有更多的可用子網(wǎng)了,但每個(gè)子網(wǎng)中的主機(jī)數(shù)
將減少。(這和定義IP地址的概念正好相反)
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備(7)
==============================
2、定義子網(wǎng)屏蔽
將網(wǎng)絡(luò)劃分成若干個(gè)子網(wǎng)時(shí),必須要定義好子網(wǎng)屏蔽。我們來(lái)看看定義的步驟:
(1)確定物理網(wǎng)段也就是子網(wǎng)的個(gè)數(shù),并將這個(gè)數(shù)字轉(zhuǎn)換成二進(jìn)制數(shù)。比如B類地址,分6
個(gè)子網(wǎng)就是110。
(2)計(jì)算物理網(wǎng)段數(shù)(子網(wǎng)數(shù))的二進(jìn)制位數(shù),這里是110,所以需要3位。
(3)以高位順序(從左到右)將這個(gè)反碼轉(zhuǎn)換成相應(yīng)的十進(jìn)制值,因?yàn)樾枰?位,就將主機(jī)號(hào)
前3位作為子網(wǎng)號(hào),這里是11100000,所以屏蔽就是255.255.254.0。
3、定義子網(wǎng)號(hào)
子網(wǎng)號(hào)與子網(wǎng)屏蔽的位數(shù)相同。
(1)列出子網(wǎng)號(hào)按高到低的順序使用的位數(shù)。例如子網(wǎng)屏蔽使用了3位,二進(jìn)制值是
11100000。
(2)將最低的一位1轉(zhuǎn)換成十進(jìn)制,用這個(gè)值來(lái)定義子網(wǎng)的增量。這個(gè)例子中是1110,所
以增量是32。
(3)用這個(gè)增量迭加從0開始的子網(wǎng)號(hào),直到下一個(gè)值為256。這個(gè)例子中就是w.x.32.1-
w.x.63.254、w.x.64.1-w.x.127.254等。
4、定義子網(wǎng)中的主機(jī)號(hào)
從上面的例子看出,一旦定義了子網(wǎng)號(hào),就已經(jīng)確定了每個(gè)子網(wǎng)的主機(jī)號(hào)了。我們?cè)谧雒?
次增量后得出的值表明了子網(wǎng)中主機(jī)號(hào)范圍的起始值。
確定每個(gè)子網(wǎng)中的主機(jī)數(shù)目
(1)計(jì)算主機(jī)號(hào)可用的位數(shù)。例如在B類網(wǎng)中用3位定義了網(wǎng)絡(luò)號(hào),那么余下的13位定義
了主機(jī)號(hào)。
(2)將這個(gè)余下的位數(shù)也就是主機(jī)號(hào)轉(zhuǎn)換為十進(jìn)制,再減去1。例如13位值1111111111111
轉(zhuǎn)換為十進(jìn)制的話就是8191,所以這個(gè)網(wǎng)絡(luò)中每個(gè)子網(wǎng)的主機(jī)數(shù)就是8190了。
實(shí)現(xiàn)IP路由
1、IP路由簡(jiǎn)介
路由就是選擇一條數(shù)據(jù)包傳輸路徑的過程。當(dāng)TCP/IP主機(jī)發(fā)送IP數(shù)據(jù)包時(shí),便出現(xiàn)了路
由,且當(dāng)?shù)竭_(dá)IP路由器還會(huì)再次出現(xiàn)。路由器是從一個(gè)物理網(wǎng)向另一個(gè)物理網(wǎng)發(fā)送數(shù)據(jù)包
的裝置,路由器通常被稱為網(wǎng)關(guān)。對(duì)于發(fā)送的主機(jī)和路由器而言,必須決定向哪里轉(zhuǎn)發(fā)數(shù)
據(jù)包。在決定路由時(shí),IP層查詢位于內(nèi)存中的路由表。
(1)當(dāng)一個(gè)主機(jī)試圖與另一個(gè)主機(jī)通信時(shí),IP首先決定目的主機(jī)是一個(gè)本地網(wǎng)還是遠(yuǎn)程網(wǎng)。
(2)如果目的主機(jī)是遠(yuǎn)程網(wǎng),IP將查詢路由表來(lái)為遠(yuǎn)程主機(jī)或遠(yuǎn)程網(wǎng)選擇一個(gè)路由。
(3)若未找到明確的路由,IP用缺省的網(wǎng)關(guān)地址將一個(gè)數(shù)據(jù)傳送給另一個(gè)路由器。
(4)在該路由器中,路由表再次為遠(yuǎn)程主機(jī)或網(wǎng)絡(luò)查詢路由,若還未找到路由,該數(shù)據(jù)包將
發(fā)送到該路由器的缺省網(wǎng)關(guān)地址。
每發(fā)現(xiàn)一條路由,數(shù)據(jù)包被轉(zhuǎn)送下一級(jí)路由器,稱為一次“跳步”,并最終發(fā)送至目的主機(jī)。
若未發(fā)現(xiàn)任何一個(gè)路由,源主機(jī)將收到一個(gè)出錯(cuò)信息。
TCP/IP基礎(chǔ)----為L(zhǎng)inux做準(zhǔn)備
==============================
靜態(tài)IP和動(dòng)態(tài)IP路由
路由器采用的路由方式?jīng)Q定它如何獲得路由信息。靜態(tài)路由是IP協(xié)議的函數(shù)實(shí)現(xiàn),它需要
創(chuàng)建路由表并進(jìn)行人工刷新。若路由改變,則靜態(tài)方式的路由器并不通知彼此的變化,也
不會(huì)與動(dòng)態(tài)方式的路由器進(jìn)行交換。
而動(dòng)態(tài)路由是路由協(xié)議的函數(shù)實(shí)現(xiàn),相關(guān)的協(xié)議如:路由信息協(xié)議RIP和開放式最短路徑
協(xié)議OSPF等。這些協(xié)議周期性地在采用動(dòng)態(tài)方式的路由器之間進(jìn)行交換彼此已知的路由
信息,包括信息的變化也能自動(dòng)通知。
2、靜態(tài)IP路由
靜態(tài)路由器只能與有已知接口并正常工作的網(wǎng)絡(luò)通信。此時(shí)可以在每一個(gè)網(wǎng)絡(luò)上增加一個(gè)
路由表,或者為另一個(gè)路由器的本地接口增加缺省網(wǎng)關(guān)地址。
配置靜態(tài)IP路由器
一個(gè)主機(jī)要與網(wǎng)絡(luò)上的其它主機(jī)通信,缺省網(wǎng)關(guān)地址的配置,就要與路由器在本地接口上
的IP地址相匹配。一個(gè)不需要手工增加路由的靜態(tài)路由配置方法,是把每一個(gè)有多接口主
機(jī)的缺省網(wǎng)關(guān)地址,配置成公用網(wǎng)絡(luò)上其它多接口主機(jī)的本地接口,當(dāng)然這種方法只在在
兩個(gè)靜態(tài)路由器的情況下才可行。
創(chuàng)建路由表
我們可以用route命令來(lái)增加路由項(xiàng)目。
比如這條命令:
# route add default 192.168.1.254
就在路由表中增加了一條缺省網(wǎng)關(guān)的地址。其它的使用方法可以參見man中對(duì)route命令
的描述。對(duì)路由表進(jìn)行修改后可以用netstat -r命令來(lái)查看當(dāng)前的路由表的內(nèi)容:
# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.254 UGSc 1 941 ed0 <--剛才手
工加入的項(xiàng)
127.0.0.1 127.0.0.1 UH 1 644 lo0
192.168.1 127.0.0.1 UC 0 0 ed0
192.168.1.254 0:e0:1e:ce:85:a9 UHLW 2 0 ed0
3、動(dòng)態(tài)IP路由
路由器使用動(dòng)態(tài)路由協(xié)議(RIP或OSPF)在已知網(wǎng)絡(luò)間自動(dòng)交換彼此的路由數(shù)據(jù)。如果數(shù)據(jù)
變化的話,路由協(xié)議會(huì)自動(dòng)更新路由表,同時(shí)將更新通知網(wǎng)絡(luò)上其它的路由器。
一個(gè)主機(jī)與網(wǎng)絡(luò)上的其它主機(jī)通信時(shí),缺省網(wǎng)關(guān)地址必須與本地路由器的接IP地址匹配,
也就是說這個(gè)主機(jī)對(duì)外的通信都是通過缺省網(wǎng)關(guān)即本地路由器對(duì)本地的接口代理的。
RIP
路由信息傳輸協(xié)議RIP幫助網(wǎng)絡(luò)交換傳輸信息,所有的RIP信息數(shù)據(jù)都是用UDP端口520
傳輸?shù)摹?
使用RIP的路由器會(huì)互相交換網(wǎng)絡(luò)號(hào)和到達(dá)這些網(wǎng)絡(luò)的路由距離。這個(gè)距離用來(lái)被路由器
選擇到達(dá)網(wǎng)絡(luò)的最少路由。
混合靜態(tài)與動(dòng)態(tài)路由
我們可能會(huì)想到如果使用混合的路由的情況吧。靜態(tài)路由器不與動(dòng)態(tài)路由器交換路由信息。
如果要使靜態(tài)路由器向運(yùn)行RIP或OSPF的動(dòng)態(tài)路由器傳送信息時(shí),必須在各自的路由表
中增加一個(gè)靜態(tài)路由數(shù)據(jù)。
|
|