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ì)話(huà)。傳輸協(xié)議的選擇根據(jù)數(shù)據(jù)傳輸方式而定。
兩個(gè)傳輸協(xié)議:
傳輸控制協(xié)議TCP:為應(yīng)用程序提供可靠的通信連接。適合于一次傳輸大批數(shù)
據(jù)的情況。并適用于要求得到響應(yīng)的應(yīng)用程序。
用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP:提供了無(wú)連接通信,且不對(duì)傳送包進(jìn)行可靠的保證。適
合于一次傳輸小量數(shù)據(jù),可靠性則由應(yīng)用層來(lái)負(fù)責(zé)。
應(yīng)用層
應(yīng)用程序通過(guò)這一層訪(fǎng)問(wèn)網(wǎng)絡(luò)。
網(wǎng)絡(luò)接口技術(shù)
IP使用網(wǎng)絡(luò)設(shè)備接口規(guī)范NDIS向網(wǎng)絡(luò)接口層提交幀。IP支持廣域網(wǎng)和本地網(wǎng)
接口技術(shù)。
串行線(xiàn)路協(xié)議
TCP/IPG一般通過(guò)internet串行線(xiàn)路協(xié)議SLIP或點(diǎn)對(duì)點(diǎn)協(xié)議PPP在串行線(xiàn)上進(jìn)
行數(shù)據(jù)傳送。(是不是我們平時(shí)把它稱(chēng)之為異步通信,對(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地址映射為硬件地址的過(guò)程。地址解
析協(xié)議ARP用于獲得在同一物理網(wǎng)絡(luò)中的主機(jī)的硬件地址。
解釋本地IP地址(要了解地址解析工作過(guò)程的朋友看好了)
主機(jī)IP地址解析為硬件地址:
(1)當(dāng)一臺(tái)主機(jī)要與別的主機(jī)通信時(shí),初始化ARP請(qǐng)求。當(dāng)該IP斷定IP地址是
本地時(shí),源主機(jī)在ARP緩存中查找目標(biāo)主機(jī)的硬件地址。
(2)要是找不到映射的話(huà),ARP建立一個(gè)請(qǐng)求,源主機(jī)IP地址和硬件地址會(huì)被
包括在請(qǐng)求中,該請(qǐng)求通過(guò)廣播,使所有本地主機(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ī)的話(huà),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)若沒(méi)找到該網(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緩存中,通過(guò)ARP廣播獲得。一旦它獲得
硬件地址,ICMP響應(yīng)就送到路由器上,然后傳到源主機(jī)。
ARP緩存
為減少?gòu)V播量,ARP在緩存中保存地址映射以備用。ARP緩存保存有動(dòng)態(tài)項(xiàng) [next]
和靜態(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)未用則刪除。緩存容量滿(mǎn)時(shí),
刪除最老的記錄。
加入靜態(tài)(永久)記錄
通過(guò)添加靜態(tài)ARP項(xiàng)可減少ARP請(qǐng)求訪(fǎng)問(wèn)主機(jī)的次數(shù)。
ARP包的結(jié)構(gòu)
ARP結(jié)構(gòu)的字段如下:
硬件類(lèi)型--使用的硬件(網(wǎng)絡(luò)訪(fǎng)問(wèn)層)類(lèi)型。
協(xié)議類(lèi)型--解析過(guò)程中的協(xié)議使用以太類(lèi)型的值。
硬件地址長(zhǎng)度--硬件地址的字節(jié)長(zhǎng)度,對(duì)于以太網(wǎng)和令牌環(huán)來(lái)說(shuō),其長(zhǎng)度為6字節(jié)。
協(xié)議地址長(zhǎng)度--協(xié)議地址字節(jié)的長(zhǎng)度,IP的長(zhǎng)度是4字節(jié)。
操作號(hào)--指定當(dāng)前執(zhí)行操作的字段。
發(fā)送者的硬件地址--發(fā)送者的硬件地址。