1、TCP/IP協(xié)議棧
四層模型
TCP/IP這個協(xié)議遵守一個四層的模型概念:應(yīng)用層、傳輸層、互聯(lián)層和網(wǎng)絡(luò)
接口層。
網(wǎng)絡(luò)接口層
模型的基層是網(wǎng)絡(luò)接口層。負責(zé)數(shù)據(jù)幀的發(fā)送和接收,幀是獨立的網(wǎng)絡(luò)信息傳
輸單元。網(wǎng)絡(luò)接口層將幀放在網(wǎng)上,或從網(wǎng)上把幀取下來。
互聯(lián)層
互聯(lián)協(xié)議將數(shù)據(jù)包封裝成internet數(shù)據(jù)報,并運行必要的路由算法。
這里有四個互聯(lián)協(xié)議:
網(wǎng)際協(xié)議IP:負責(zé)在主機和網(wǎng)絡(luò)之間尋址和路由數(shù)據(jù)包。
地址解析協(xié)議ARP:獲得同一物理網(wǎng)絡(luò)中的硬件主機地址。
網(wǎng)際控制消息協(xié)議ICMP:發(fā)送消息,并報告有關(guān)數(shù)據(jù)包的傳送錯誤。
互聯(lián)組管理協(xié)議IGMP:被IP主機拿來向本地多路廣播路由器報告主機組成員。
傳輸層
傳輸協(xié)議在計算機之間提供通信會話。傳輸協(xié)議的選擇根據(jù)數(shù)據(jù)傳輸方式而定。
兩個傳輸協(xié)議:
傳輸控制協(xié)議TCP:為應(yīng)用程序提供可靠的通信連接。適合于一次傳輸大批數(shù)
據(jù)的情況。并適用于要求得到響應(yīng)的應(yīng)用程序。
用戶數(shù)據(jù)報協(xié)議UDP:提供了無連接通信,且不對傳送包進行可靠的保證。適
合于一次傳輸小量數(shù)據(jù),可靠性則由應(yīng)用層來負責(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或點對點協(xié)議PPP在串行線上進
行數(shù)據(jù)傳送。(是不是我們平時把它稱之為異步通信,對于要拿LINUX提供建立
遠程連接的朋友應(yīng)該多研究一下這方面的知識)?
TCP/IP基礎(chǔ)----為Linux做準(zhǔn)備(2)
==============================
2、ARP
要在網(wǎng)絡(luò)上通信,主機就必須知道對方主機的硬件地址(我們不是老遇到網(wǎng)卡
的物理地址嘛)。地址解析就是將主機IP地址映射為硬件地址的過程。地址解
析協(xié)議ARP用于獲得在同一物理網(wǎng)絡(luò)中的主機的硬件地址。
解釋本地IP地址(要了解地址解析工作過程的朋友看好了)
主機IP地址解析為硬件地址:
(1)當(dāng)一臺主機要與別的主機通信時,初始化ARP請求。當(dāng)該IP斷定IP地址是
本地時,源主機在ARP緩存中查找目標(biāo)主機的硬件地址。
(2)要是找不到映射的話,ARP建立一個請求,源主機IP地址和硬件地址會被
包括在請求中,該請求通過廣播,使所有本地主機均能接收并處理。
(3)本地網(wǎng)上的每個主機都收到廣播并尋找相符的IP地址。
(4)當(dāng)目標(biāo)主機斷定請求中的IP地址與自己的相符時,直接發(fā)送一個ARP答復(fù),
將自己的硬件地址傳給源主機。以源主機的IP地址和硬件地址更新它的ARP
緩存。源主機收到回答后便建立起了通信。
解析遠程IP地址
不同網(wǎng)絡(luò)中的主機互相通信,ARP廣播的是源主機的缺省網(wǎng)關(guān)。
目標(biāo)IP地址是一個遠程網(wǎng)絡(luò)主機的話,ARP將廣播一個路由器的地址。
(1)通信請求初始化時,得知目標(biāo)IP地址為遠程地址。源主機在本地路由表中
查找,若無,源主機認為是缺省網(wǎng)關(guān)的IP地址。在ARP緩存中查找符合該網(wǎng)關(guān)
記錄的IP地址(硬件地址)。
(2)若沒找到該網(wǎng)關(guān)的記錄,ARP將廣播請求網(wǎng)關(guān)地址而不是目標(biāo)主機的地址。
路由器用自己的硬件地址響應(yīng)源主機的ARP請求。源主機則將數(shù)據(jù)包送到路由
器以傳送到目標(biāo)主機的網(wǎng)絡(luò),最終達到目標(biāo)主機。
(3)在路由器上,由IP決定目標(biāo)IP地址是本地還是遠程。如果是本地,路由器
用ARP(緩存或廣播)獲得硬件地址。如果是遠程,路由器在其路由表中查找該
網(wǎng)關(guān),然后運用ARP獲得此網(wǎng)關(guān)的硬件地址。數(shù)據(jù)包被直接發(fā)送到下一個目標(biāo)
主機。
(4)目標(biāo)主機收到請求后,形成ICMP響應(yīng)。因源主機在遠程網(wǎng)上,將在本地路
由表中查找源主機網(wǎng)的網(wǎng)關(guān)。找到網(wǎng)關(guān)后,ARP即獲取它的硬件地址。
(5)如果此網(wǎng)關(guān)的硬件地址不在ARP緩存中,通過ARP廣播獲得。一旦它獲得
硬件地址,ICMP響應(yīng)就送到路由器上,然后傳到源主機。
ARP緩存
為減少廣播量,ARP在緩存中保存地址映射以備用。ARP緩存保存有動態(tài)項 [next]
和靜態(tài)項。動態(tài)項是自動添加和刪除的,靜態(tài)項則保留在CACHE中直到計算
機重新啟動。
ARP緩存總是為本地子網(wǎng)保留硬件廣播地址(0xffffffffffffh)作為一個永久項。
此項使主機能夠接受ARP廣播。當(dāng)查看緩存時,該項不會顯示。
每條ARP緩存記錄的生命周期為10分鐘,2分鐘內(nèi)未用則刪除。緩存容量滿時,
刪除最老的記錄。
加入靜態(tài)(永久)記錄
通過添加靜態(tài)ARP項可減少ARP請求訪問主機的次數(shù)。
ARP包的結(jié)構(gòu)
ARP結(jié)構(gòu)的字段如下:
硬件類型--使用的硬件(網(wǎng)絡(luò)訪問層)類型。
協(xié)議類型--解析過程中的協(xié)議使用以太類型的值。
硬件地址長度--硬件地址的字節(jié)長度,對于以太網(wǎng)和令牌環(huán)來說,其長度為6字節(jié)。
協(xié)議地址長度--協(xié)議地址字節(jié)的長度,IP的長度是4字節(jié)。
操作號--指定當(dāng)前執(zhí)行操作的字段。
發(fā)送者的硬件地址--發(fā)送者的硬件地址。