1、TCP/IP協議棧
四層模型
TCP/IP這個協議遵守一個四層的模型概念:應用程式層、傳輸層、互聯層和網路
介面層。
網路介面層
模型的基層是網路介面層。負責資料幀的發送和接收,幀是獨立的網路資訊傳
輸單元。網路介面層將幀放在網上,或從網上把幀取下來。
互聯層
互聯協議將資料包封裝成internet資料報,並運行必要的路由演算法。
這裡有四個互聯協議:
網際協議IP:負責在主機和網路之間定址和路由資料包。
位址解析通訊協定ARP:獲得同一物理網路中的硬體主機地址。
網際控制訊息協議ICMP:發送訊息,並報告有關資料包的傳送錯誤。
互聯組管理協議IGMP:被IP主機拿來向本地多路廣播路由器報告主機群組成員。
傳輸層
傳輸協議在電腦之間提供通訊會話。傳輸協議的選擇根據資料轉送方式而定。
兩個傳輸協議:
傳輸控制通訊協定TCP:為應用程式提供可靠的通訊串連。適合於一次傳輸大批數
據的情況。並適用於要求得到響應的應用程式。
使用者資料包通訊協定UDP:提供了無串連通訊,且不對傳送包進行可靠的保證。適
合於一次傳輸小量資料,可靠性則由應用程式層來負責。
應用程式層
應用程式通過這一層訪問網路。
網路介面技術
IP使用網路裝置介面規範NDIS向網路介面層提交幀。IP支援廣域網路和本地網
介面技術。
串列線路協議
TCP/IPG一般通過internet串列線路協議SLIP或點對點通訊協定 (PPP)PPP在串列線上進
行資料傳送。(是不是我們平時把它稱之為非同步通訊,對於要拿LINUX提供建立
遠端連線的朋友應該多研究一下這方面的知識)?
TCP/IP基礎----為Linux做準備(2)
==============================
2、ARP
要在網路上通訊,主機就必須知道對方主機的硬體地址(我們不是老遇到網卡
的物理地址嘛)。位址解析就是將主機IP地址映射為硬體地址的過程。地址解
析協議ARP用於獲得在同一物理網路中的主機的硬體地址。
解釋本地IP地址(要瞭解位址解析工作過程的朋友看好了)
主機IP位址解析為硬體地址:
(1)當一台主機要與別的主機通訊時,初始化ARP請求。當該IP斷定IP地址是
本地時,源主機在ARP緩衝中尋找目標主機的硬體地址。
(2)要是找不到映射的話,ARP建立一個請求,源主機IP地址和硬體地址會被
包括在請求中,該請求通過廣播,使所有本地主機均能接收並處理。
(3)本地網上的每個主機都收到廣播並尋找相符的IP地址。
(4)當目標主機斷定請求中的IP地址與自己的相符時,直接發送一個ARP回覆,
將自己的硬體地址傳給源主機。以源主機的IP地址和硬體地址更新它的ARP
緩衝。源主機收到回答後便建立起了通訊。
解析遠程IP地址
不同網路中的主機互相通訊,ARP廣播的是源主機的預設網關。
目標IP地址是一個遠程網路主機的話,ARP將廣播一個路由器的地址。
(1)通訊請求初始化時,得知目標IP地址為遠程地址。源主機在本地路由表中
尋找,若無,源主機認為是預設網關的IP地址。在ARP緩衝中尋找符合該網關
記錄的IP地址(硬體地址)。
(2)若沒找到該網關的記錄,ARP將廣播請求網關地址而不是目標主機的地址。
路由器用自己的硬體地址響應源主機的ARP請求。源主機則將資料包送到路由
器以傳送到目標主機的網路,最終達到目標主機。
(3)在路由器上,由IP決定目標IP地址是本地還是遠程。如果是本地,路由器
用ARP(緩衝或廣播)獲得硬體地址。如果是遠程,路由器在其路由表中尋找該
網關,然後運用ARP獲得此網關的硬體地址。資料包被直接發送到下一個目標
主機。
(4)目標主機收到請求後,形成ICMP響應。因源主機在遠程網上,將在本地路
由表中尋找源主機網的網關。找到網關後,ARP即擷取它的硬體地址。
(5)如果此網關的硬體地址不在ARP緩衝中,通過ARP廣播獲得。一旦它獲得
硬體地址,ICMP響應就送到路由器上,然後傳到源主機。
ARP緩衝
為減少廣播量,ARP在緩衝中儲存地址映射以備用。ARP緩衝儲存有動態項 [next]
和靜態項。動態項是自動添加和刪除的,靜態項則保留在CACHE中直到計算
機重新啟動。
ARP緩衝總是為本地子網保留硬體廣播位址(0xffffffffffffh)作為一個永久項。
此項使主機能夠接受ARP廣播。當查看緩衝時,該項不會顯示。
每條ARP緩衝記錄的生命週期為10分鐘,2分鐘內未用則刪除。緩衝容量滿時,
刪除最老的記錄。
加入靜態(永久)記錄
通過添加靜態ARP項可減少ARP請求訪問主機的次數。
ARP包的結構
ARP結構的欄位如下:
硬體類型--使用的硬體(網路訪問層)類型。
協議類型--解析過程中的協議使用以太類型的值。
硬體地址長度--硬體地址的位元組長度,對於乙太網路和令牌環來說,其長度為6位元組。
協議地址長度--協議地址位元組的長度,IP的長度是4位元組。
操作號--指定當前執行操作的欄位。
寄件者的硬體地址--寄件者的硬體地址。