1. 程式人生 > >IP協議配套的四個協議:ARP RARP ICMP IGMP

IP協議配套的四個協議:ARP RARP ICMP IGMP

誰來保證可靠性在計算機網路領域,網路層應該向運輸層提供怎樣的服務(“面向連線”還是“無連線”)曾引起了長期的爭論。爭論焦點的實質就是:在計算機通訊中,可靠交付應當由誰來負責?是網路還是端系統(即是網路層還是運輸層)方案一:讓網路負責可靠交付(借鑑電信網的成功經驗)面向連線的通訊方式,建立虛電路(VirtualCircuit),以保證雙方通訊所需的一切網路資源。如果再使用可靠傳輸的網路協議,就可使所傳送的分組無差錯按序到達終點。但虛電路表示這只是一條邏輯上的連線,分組都沿著這條邏輯連線按照儲存轉發方式傳送,而並不是真正建立了一條物理連線。請注意,電路交換的電話通訊是先建立了一條真正的連線。因此分組交換的虛連線和電路交換的連線只是類似,但並不完全一樣。

方案二:網路層不提供服務質量的承諾。即所傳送的分組可能出錯、丟失、重複和失序(不按序到達終點),當然也不保證分組傳送的時限。網路層向上只提供簡單靈活的、無連線的、盡最大努力交付的資料報服務。網路在傳送分組時不需要先建立連線。每一個分組(即IP資料報)獨立傳送,與其前後的分組無關(不進行編號)。

方案一與方案二的比較:

因特網採用方案二的原因:由於傳輸網路不提供端到端的可靠傳輸服務,這就使網路中的路由器可以做得比較簡單,而且價格低廉(與電信網的交換機相比較)。如果主機(即端系統)中的程序之間的通訊需要是可靠的,那麼就由網路的主機中的運輸層負責(包括差錯處理、流量控制等)。採用這種設計思路的好處是:網路的造價大大降低,執行方式靈活,能夠適應多種應用。因特網能夠發展到今日的規模,充分證明了當初採用這種設計思路的正確性。

網際協議IP
網際協議IPTCP/IP體系中兩個最主要的協議之一。與IP協議配套使用的還有四個協議:地址解析協議ARP
   (Address ResolutionProtocol)
逆地址解析協議RARP
  (Reverse Address ResolutionProtocol)
網際控制報文協議ICMP
  (Internet Control MessageProtocol)
網際組管理協議IGMP
  (Internet Group ManagementProtocol)

IP協議在前面的部落格中都講過了,這裡就只是講一下這4個協議。

地址解析協議ARP
     
不管網路層使用的是什麼協議,在實際網路的鏈路上傳送資料幀時,最終還是必須使用硬體地址。每一個主機都設有一個

ARP快取記憶體(ARPcache),裡面有所在的區域網上的各主機和路由器的IP地址到硬體地址的對映表。當主機A欲向本區域網上的某個主機B傳送IP資料報時,就先在其ARP快取記憶體中檢視有無主機BIP地址。如有,就可查出其對應的硬體地址,再將此硬體地址寫入MAC幀,然後通過區域網將該MAC幀發往此硬體地址。 如果沒有主機A傳送其ARP分組請求,如下圖所示,當主機 B收到AARP請求分組時,就將主機A的這一地址對映寫入主機B自己的ARP快取記憶體中。然後主機A得到主機B的地址對映後就將謝入到自己的ARP快取記憶體中。然後就開始給B主機發送IP報文。

注:IP地址到硬體地址的解析是自動進行的,主機的使用者對這種地址解析過程是不知道的。只要主機或路由器要和本網路上的另一個已知IP地址的主機或路由器進行通訊,ARP協議就會自動地將該IP地址解析為鏈路層所需要的硬體地址。使用ARP的四種典型情況傳送方是主機,要把IP資料報傳送到本網路上的另一個主機。這時用ARP找到目的主機的硬體地址。傳送方是主機,要把IP資料報傳送到另一個網路上的一個主機。這時用ARP找到本網路上的一個路由器的硬體地址。剩下的工作由這個路由器來完成。傳送方是路由器,要把IP資料報轉發到本網路上的一個主機。這時用ARP找到目的主機的硬體地址。傳送方是路由器,要把IP資料報轉發到另一個網路上的一個主機。這時用ARP找到本網路上的一個路由器的硬體地址。剩下的工作由這個路由器來完成。什麼我們不直接使用硬體地址進行通訊?由於全世界存在著各式各樣的網路,它們使用不同的硬體地址。要使這些異構網路能夠互相通訊就必須進行非常複雜的硬體地址轉換工作,因此幾乎是不可能的事。IP層抽象的網際網路遮蔽了下層很複雜的細節在抽象的網路層上討論問題,就能夠使用統一的、抽象的IP地址研究主機和主機或主機和路由器之間的通訊連線到因特網的主機都擁有統一的IP地址,它們之間的通訊就像連線在同一個網路上那樣簡單方便,因為呼叫ARP來尋找某個路由器或主機的硬體地址都是由計算機軟體自動進行的,對使用者來說是看不見這種呼叫過程的。 

逆地址解析協議RARP
逆地址解析協議RARP使只知道自己硬體地址的主機能夠知道其IP地址。這種主機往往是無盤工作站。因此 RARP協議目前已很少使用。

注:地址解析協議ARP和逆地址解析協議RARP

     IP地址與硬體地址及資料流動

 

圖中的 IP1→IP2 表示從源地址IP1到目的地址IP2,兩個路由器的IP地址並不出現在IP資料報的首部中,路由器只根據目的站的IP地址的網路號進行路由選擇,在具體的物理網路的鏈路層只能看見MAC幀而看不見IP資料報。

網際控制報文協議ICMP
為了提高IP資料報交付成功的機會,在網際層使用了網際控制報文協議ICMP(Internet Control Message Protocol)

ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告。

ICMP不是高層協議,而是IP層的協議。

ICMP報文作為IP層資料報的資料,加上資料報的首部,組成IP資料報傳送出去。  

ICMP報文的格式

  • 型別欄位:用來描述特定型別的ICMP報文。

  • 程式碼:進一步描述型別的不同條件

  • 檢驗和:ICMP的檢驗和是必需的。

ICMP報文的種類
ICMP
報文的種類有兩種,即ICMP差錯報告報文和ICMP詢問報文。
ICMP
報文的前4個位元組是統一的格式,共有三個欄位:即型別、程式碼和檢驗和。接著的4個位元組的內容與ICMP的型別有關。

http://images.cnitblog.com/blog/153130/201307/30084519-54fb22b170084405ba5a72c3120f39bc.png

ICMP差錯報告報文共有5終點不可達源點抑制(Sourcequench)  
時間超過引數問題改變路由(重定向)(Redirect) 


ICMP
詢問報文有兩種回送請求和回答報文時間戳請求和回答報文

注:下面的幾種ICMP報文不再使用資訊請求與回答報文掩碼地址請求和回答報文路由器詢問和通告報文不應傳送ICMP差錯報告報文的幾種情況ICMP差錯報告報文不再發送ICMP差錯報告報文。對第一個分片的資料報片的所有後續資料報片都不傳送ICMP差錯報告報文。對具有多播地址的資料報都不傳送ICMP差錯報告報文。對具有特殊地址(如127.0.0.00.0.0.0)的資料報不傳送ICMP差錯報告報文。


ICMP
的應用舉例PINGTraceroute 
PING
用來測試兩個主機之間的連通性,它使用了ICMP回送請求與回送回答報文。PING是應用層直接使用網路層ICMP的例子,它沒有通過運輸層的TCPUDP
Traceroute
通過Traceroute我們可以知道資訊從你的計算機到網際網路另一端的主機是走的什麼路徑。當然每次資料包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。UNIX系統中,我們稱之為Traceroute,MSWindows中為TracertTraceroute通過傳送小的資料包到目的裝置直到其返回,來測量其需要多長時間。一條路徑上的每個裝置Traceroute要測3次。輸出結果中包括每次測試的時間(ms)和裝置的名稱(如有的話)及其IP地址。

Traceroute程式的設計是利用ICMPIPheaderTTLTimeTo Live)欄位(field)。首先,traceroute送出一個TTL1IPdatagram(其實,每次送出的為340位元組的包,包括源地址,目的地址和包發出的時間標籤)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL1。此時,TTL變為0了,所以該路由器會將此datagram丟掉,並送回一個「ICMPtime exceeded」訊息(包括髮IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute收到這個訊息後,便知道這個路由器存在於這個路徑上,接著traceroute再送出另一個TTL2datagram,發現第2個路由器......traceroute 每次將送出的datagramTTL1來發現另一個路由器,這個重複的動作一直持續到某個datagram抵達目的地。當datagram到達目的地後,該主機並不會送回ICMPtime exceeded訊息,因為它已是目的地了,那麼traceroute如何得知目的地到達了呢?
Traceroute
在送出UDPdatagrams到目的地時,它所選擇送達的portnumber 是一個一般應用程式都不會用的號碼(30000以上),所以當此UDPdatagram 到達目的地後該主機會送回一個「ICMPport unreachable」的訊息,而當traceroute收到這個訊息時,便知道目的地已經到達了。所以tracerouteServer端也是沒有所謂的Daemon程式。
Traceroute
提取發ICMPTTL到期訊息裝置的IP地址並作域名解析。每次,Traceroute都打印出一系列資料,包括所經過的路由裝置的域名及IP地址,三個包每次來回所花時間。
Traceroute
有一個固定的時間等待響應(ICMPTTL到期訊息)。如果這個時間過了,它將打印出一系列的*號表明:在這個路徑上,這個裝置不能在給定的時間內發出ICMPTTL到期訊息的響應。然後,TracerouteTTL記數器加1,繼續進行。網際組管理協議IGMP和多播
IGMP
是在多播中用到的一個協議,因此如果要說IGMP的話就不得不談多播,多播的概念

IP多播的一些特點
(1)
多播使用組地址——IP使用D類地址支援多播,多播地址只能用於目的地址,而不能用於源地址。 
(2)
永久組地址——由因特網號碼指派管理局IANA負責指派。
(3)
動態的組成員
(4)
使用硬體進行多播

在區域網上進行硬體多播因特網號碼指派管理局IANA擁有的乙太網地址塊的高24位為00-00-5E因此TCP/IP協議使用的乙太網多播地址塊的範圍是:從00-00-5E-00-00-00
                    
00-00-5E-FF-FF-FF
D
IP地址可供分配的有28位,在這28位中的前5位不能用來構成乙太網硬體地址。
D
IP地址與乙太網多播地址的對映關係

為了使路由器知道多播組成員的資訊,需要利用網際組管理協議IGMP(Internet Group Management Protocol)網際組管理協議

相關推薦

IP協議配套協議ARP RARP ICMP IGMP

誰來保證可靠性在計算機網路領域,網路層應該向運輸層提供怎樣的服務(“面向連線”還是“無連線”)曾引起了長期的爭論。爭論焦點的實質就是:在計算機通訊中,可靠交付應當由誰來負責?是網路還是端系統(即是網路層還是運輸層)?方案一:讓網路負責可靠交付(借鑑電信網的成功經驗)面向連線

TCP/IP-----協議號、埠號、ARPicmp

文章目錄 一、資料流向過程 二、協議詳解 1)ARP協議 2)ICMP協議 協議號 協議號是存在於IP資料報的首部的20位元組的固定部分,佔有8bit.該欄位是指出此資料報所攜帶的是資料是使用何種協議,以便

Position屬性static、fixed、absolute和relative的區別

區別 出現 進行 blog index ont 屬性 -i 通過 1、static(靜態定位):默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。 2、relative(相對定位):生成相對定位的元

頁面制作電影資訊頁面

ron inter 9.png 簡單的 動態 icp soap eid 底部 筆記內容:第四個頁面:制作電影資訊頁面 筆記日期:2018-01-18 點擊輪播圖跳轉到文章詳情頁面 之前的文章列表頁面還有一個小功能沒有實現,就是點擊點擊輪播圖就能跳轉到相應的文章詳情頁面,這

前端性能優化十規則

即使 主機 delete res 響應頭 主機名 rac 種類 克服 HTTP是一種客戶端/服務器協議,由請求和響應構成。瀏覽器向一個特定的URL發送HTTP請求,URL對應的宿主服務器發回HTTP響應。該協議使用簡單的純文本格式。請求的類型有GET、POST、HEAD、P

Position屬性static、fixed、absolute和relative的區別和用法 Position屬性static、fixed、absolute和relative的區別和用法

Position屬性四個值:static、fixed、absolute和relative的區別和用法 在用CSS+DIV進行佈局的時候,一直對position的四個屬性值relative,absolute,static,fixed分的不是很清楚,以致經常會出現讓人很鬱悶的結果。今天研究了一下,總算有所瞭解。

Position屬性static、fixed、absolute和relative的區別和用法

靜下心來慢慢讀,讀完一定會有所收穫的 static(靜態定位):預設值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 宣告)。 relative(相對定位):生成相對定位的元素,通過top,bottom,left,right的設定相對於其正常

過去的Python的挑戰者Swift、Go、Julia、R

python 又稱為“膠水語言”是一種計算機程式設計語言。是一種動態的、面向物件的指令碼語言,最初被設計用於編寫自動化指令碼(shell),隨著版本的不斷更新和語言新功能的新增,越來越多被用於獨立的、大型專案的開發。 沒什麼是永恆的——包括程式語言。很多看起來可能是將來的佼佼者,到頭來可

jQuery 往table新增新內容有以下方法

jQuery 新增新內容有以下四個方法: append() - 在被選元素的結尾插入內容 prepend() - 在被選元素的開頭插入內容 after() - 在被選元素之後插入內容 before() - 在被選元素之前插入內容 下面例項演示:點選按鈕則

七層協議協議

  OSI 七層模型通過七個層次化的結構模型使不同的系統不同的網路之間實現可靠的通訊,因此其最主要的功能就是幫助不同型別的主機實現資料傳輸 。完成中繼功能的節點通常稱為中繼系統。一個裝置工作在哪一層,關鍵看它工作時利用哪一層的資料頭部資訊。網橋工作時,是以MAC頭部來決定

網路篇——七層協議協議、TCP、HTTP、SOCKET、長短連線

一、From:http://thisliy.javaeye.com/blog/710122http://wenku.baidu.com/view/14a30d0102020740be1e9b84.html (TCP+HTTP工作機制)相信不少初學手機聯網開發的朋友都想知道Http與Socket連線究竟有什麼區

神奇的幸虧有你

他的妻子最愛說這句話:幸虧有你。這也是他最愛聽的話,每次聽了,心裡都猶如灌進了蜜,那個甜噢。 他十歲前生活在奶奶身邊。那是個大家庭,寄人籬下的感覺讓他凡事都隱忍退讓,漸漸形成自卑退縮的性格,及至成年也沒有大改觀。待到談婚論嫁時,這種性格就成了嚴重的阻礙。他倒不急,從小孤獨

《TCP/IP協議族》ARP協議

ARP:地址解析協議 對於乙太網,資料鏈路層上是根據48bit的乙太網地址來確定目的介面,裝置驅動程式從不檢查IP資料報中的目的IP地址。ARP協議為IP地址到對應的硬體地址之間提供動態對映。 工作過程 在乙太網(ARP協議只適用於區域網)中,如果本地主機想要向某一

《TCP/IP協議詳解 卷1》--- ARP地址解析協議

當一臺主機把乙太網資料幀傳送到位於同一區域網上的另一臺主機時,是根據 48 bit的乙太網地址來確定目的介面的。裝置驅動程式從不檢查 IP資料報中的目的IP地址。 ARP為IP地址到對應的硬體地址之間提供動態對映。之所以用動態這個詞是因為這個過程是自動完成的,

linux網路程式設計之TCP/IP基礎(二)利用ARPICMP協議解釋ping命令

一、MTU 乙太網和IEEE 802.3對資料幀的長度都有限制,其最大值分別是1500和1492位元組,將這個限制稱作最大傳輸單元(MTU,Maximum Transmission Unit)。如果I

OSI七層協議與TCP/IP協議之間的比較(學習中)

OSI與TCP/IP的比較: 分層結構 OSI參考模型與TCP/IP協議都採用了分層結構,都是基於獨立的協議棧的概念。OSI參考模型有7層,而TCP/IP協議只有4層,即TCP/IP協議沒有了表示層和會話層,並且把資料鏈路層和物理層合併為網路介面層。不過,二者的分層之間

計算機網絡【1】—— OSI七層協議和TCP/IP協議

class 負責 記錄 icm frame ios 調制解調器 href pap 新開一貼,專門用來記錄計算機網絡相關知識。 一、OSI七層協議 物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層 二、TCP/IP四層協議 網絡接口層、網際層、運輸

協議給站點設置獨享ip

站點 com alt nbsp 增加 解析 自動分配 img 一個點 四層協議給站點設置獨享ip 初始化為四層節點 設置獨占ip 設置獨享的產品不用預設置分組 增加站點 創建站點後,在分組解析裏會自動創建一個以站點名為名稱的分組並且會自動分配一個獨享的i

圖解TCP/IP協議(五)IP相關技術—DNS、ARPICMP、DHCP、NAT、IP隧道

1.DNS DNS(Demain name System)有效管理主機名和IP地址之間的對應關係的系統。 2.ARP ARP(Address Revolution Protocol)是一種解決地址問題的協議,以目標地址為線索,用來定位下一個應該接收資料分包的網路裝置對應的MAC

TCP-IP詳解卷1協議 學習筆記(5) RARP ICMP

參考:TCP-IP詳解卷1:協議 RARP RARP分組的格式與ARP分組基本一致,它們之間的主要差別是RARP請求或應答的幀型別為0x8035,RARP請求的操作碼為3,應答操作碼為4。 RARP請求以廣播的方式傳送,RARP應答一般是單播傳送的。 RARP伺服器實現