arp icmp n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第八章 ARP 與 ICMP PowerPoint Presentation
Download Presentation
第八章 ARP 與 ICMP

Loading in 2 Seconds...

play fullscreen
1 / 71

第八章 ARP 與 ICMP - PowerPoint PPT Presentation


  • 195 Views
  • Uploaded on

第八章 ARP 與 ICMP. 網路層中除了 IP 協定,常見的 TCP/IP 協定還有 位址解析協定( Address Resolution Protocol , ARP ) 網際網路控制訊息協定( Internet Control Message Protocol , ICMP ). 8-1 MAC Address. IP 位址是使用網路時不可或缺的資訊,封包的傳遞需要有發送端與接收端的 IP 位址才能順利進行 IP 位址是屬於網路層的封包內容,路由器的路由功能需要它 可是在資料連結層運作的交換器或橋接器卻不認識 IP 位址

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第八章 ARP 與 ICMP' - lois


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
網路層中除了IP 協定,常見的TCP/IP 協定還有
    • 位址解析協定(Address Resolution Protocol,ARP)
    • 網際網路控制訊息協定(Internet Control Message Protocol,ICMP)
8 1 mac address
8-1 MAC Address
  • IP 位址是使用網路時不可或缺的資訊,封包的傳遞需要有發送端與接收端的IP 位址才能順利進行
  • IP 位址是屬於網路層的封包內容,路由器的路由功能需要它
  • 可是在資料連結層運作的交換器或橋接器卻不認識IP 位址
    • 它們只認識MAC 位址(Media Access Control Address),也稱為硬體位址或實體位址(Physical Address)
  • 相對的,IP 位址有時也稱為軟體位址、協定位址或邏輯位址(Logical Address)
slide4
每片網路卡的MAC 位址都是唯一的,MAC 位址可以當成是網路卡的身分證字號,在出廠時就已經被廠商所設定好。
  • MAC 位址使用6 個Bytes 表示
    • 前3 個Bytes 為廠商代碼,
      • 每個製造網路卡的廠商都要先去向IEEE 註冊,申請一個稱為組織唯一識別碼(Organizationally Unique Identifier,OUI)的廠商代碼
    • 後面3 個Bytes 則為廠商賦與網路卡的產品流水編號
  • MAC 位址的資訊存在資料連結層
    • 因此不能跨越運作於網路層的路由器,只能在區域網路中傳遞
slide6
在路由過程當中,網路層產生的封包(Packet)內容,在路由過程當中,網路層產生的封包(Packet)內容,
    • 來源位址放的是發送端的IP 位址
    • 目的位址則是接收端的IP 位址
  • 在資料連結層將封包封裝成訊框(Frame)時
    • 來源位址是發送端負責傳送出去的網路卡之MAC 位址(有時一部主機可能有多片網路卡)
    • 目的位址則是資料傳送出去遇到的第一台路由器上,負責接收此資料的網路卡的MAC 位址
  • 之後陸續傳送過程中時,每經過一個路由器
    • 訊框的來源位址與目的位址會變更為傳送線路兩端的網路卡的MAC 位址
    • 封包的來源位址與目的位址則不會變動
slide7
如圖8-2 所示,PC1 要送資料給PC2,途中會經過R1 與R2 兩台路由器。
  • 資料在PC1 到R1 的過程中
    • 封包的來源位址是PC1 的網路卡a 的IP 位址,目的位址是PC2 的網路卡f 的IP 位址
    • 而訊框的來源位址是PC1 的a 網路卡的MAC 位址,目的位址則是R1 的b 網路卡的MAC 位址
slide8
在R1 到R2 的過程中,
    • 封包的來源位址同樣是PC1 的網路卡a 的IP 位址,目的位址同樣是PC2 的網路卡f 的IP 位址
    • 而訊框的來源位址變成是R1 的c 的網路卡的MAC 位址,目的位址則變成是R2 的d 網路卡的MAC 位址
8 2 arp
8-2 ARP
  • ARP 的功能在於利用已知的IP 位址去查詢對應的MAC 位址。
  • 在網路上傳輸資料時,已知的資訊多為IP 位址
  • 在傳輸過程中,各節點需要利用IP 位址求得相對應之MAC 位址,以供訊框傳輸
    • 此時便需利用ARP 的解析功能,將取得的MAC 位址加入訊框中
slide11
如之前的圖8-2,PC1 要傳送資料至PC2,已知資訊為PC1 與PC2 的IP 位址
  • 當資料要自PC1 傳送到R1 時,PC1 本身的組態設定資訊中,含有預設閘道(Default Gateway)的記錄,這筆記錄便是R1 的b 網路卡IP 位址
    • 但因為不知道b 的MAC 位址,PC1 便會利用ARP 去解析,得到的MAC 位址便可加入訊框中
slide12
當資料由a 網路卡送出,透過b 網路卡到達R1
  • 因為路由器中的路由表記錄了往PC2 的網路需要由c 網路卡送往d 網路卡,內容皆以IP 位址記錄
    • R1 便可利用ARP 解析出d 網路卡的MAC 位址
  • 以這種方式,每一台路由器重複同樣的動作,便可將資料順利送達目的地,也就是PC2
8 2 1 arp
8-2-1 ARP 的運作方式
  • ARP 的解析功能,只需要用兩種封包
    • ARP 請求(ARP Request)
    • ARP 回應(ARP Reply)
  • 如圖8-3,若電腦A 目前已知IP 位址192.168.100.6,要查詢所對應的MAC位址
  • 從圖中可知該IP 位址是電腦F 的,理論上應該是要直接找電腦F,但是實際情況是電腦A 並不知道這組IP 位址是電腦F 的,此時ARP 請求便派上用場
slide15
ARP 請求封包是在資料連結層運作的廣播封包
  • 電腦A 以廣播方式送出ARP請求封包,
    • 封包中記錄了電腦A(發送端)的IP 位址、MAC 位址與要查詢的IP位址192.168.100.6
    • 封包會送給區域網路內的每一台裝置。
  • 區域網路中每一台裝置都會收到同樣的封包,便將裡面要查詢的IP 位址取出來與自己的IP 位址做比對
    • 比對不合,知道不是查詢自己的資料,就會把封包丟棄
slide16
電腦F 發現要查詢的192.168.100.6 是它的IP 位址
    • 就產生一個ARP 回應封包,裡面記錄電腦F(發送端)的IP 位址、AC 位址與電腦A(接收端)的IP 位址、MAC 位址
    • 因為它從ARP 請求封包知道是電腦A 所提出的查詢,所以直接將封包指定回傳給電腦A,而不再使用廣播的方式
8 2 2 arp
8-2-2 ARP 快取
  • 回到圖8-4,當電腦A 利用ARP 請求查到電腦F 的IP 位址與MAC 位址的對應,便會把資料存到ARP 快取(Cache)中
    • 如果之後還有需要查詢電腦F 的MAC 位址時,就可以直接在ARP 快取中得到,而不必再用ARP 請求的廣播封包,避免因為太多廣播在網路上所造成的負擔
  • 所以每當有需要查詢IP 位址所對應的MAC 位址時,在產生ARP 請求前,會先檢查是否在ARP 快取中存有資料
    • 如果有,就直接使用裡面的資料
    • 如果沒有,才會對外送出ARP 請求封包
slide19
ARP 快取中記錄的資料,可分為
    • 動態
    • 靜態
  • 動態記錄
    • 來自查詢解析出來的結果,自動儲存起來,以提供之後的查詢
    • 如果IP 位址與MAC 位址的對應有變動(原來的IP 位址對應到其他MAC 位址或是IP 位址不存在,或者原來的MAC 位址對應到其他IP 位址或是MAC 位址不存在了),
      • 因為沒有使用ARP 去解析新的對應,ARP 快取中的資料也就不會更新
      • 一旦有封包要送往這種位址時,由ARP 快取中得到錯誤的對應,封包送出去時,由於實際IP 位址與MAC 位址對應錯誤,將沒有辦法找到裝置可以處理它
    • 所以使用動態記錄時需要有時間的限制,當時間到便將此記錄刪掉,以便更新記錄
slide20
靜態記錄
    • 預先得知IP 位址與MAC 位址的對應關係,以手動方式記錄於ARP 快取中,以方便使用
  • 不論動態與靜態記錄,因為都是ARP 快取資料,而ARP 快取是存在電腦的RAM 中,當電腦關機,記錄就消失了
slide22
硬體類型(Hardware Type)
    • 長度為16 Bits,標示所使用的硬體類型
  • 協定類型(Protocol Type)
    • 長度為16 Bits,標示所使用的是哪一類型協定
    • 通常使用的都是IP 協定,對應欄位的值為2048
  • 硬體位址長度(Hardware Address Length)
    • 長度為8 Bits,標示所使用硬體位址的長度,也就是MAC 位址的長度,以Byte 為計量單位
    • 若使用乙太網路,這裡的值就是6,因為MAC 位址長度是6 Bytes
slide24
協定位址長度(Protocol Address Length)
    • 長度為8 Bits,標示所使用協定位址的長度,以Byte 為計量單位
    • 這個欄位要與協定類型欄位配合
      • 當協定類型欄位的值為2048,表示使用IP 協定,這裡就是指IP 位址,因為IP 位址長度為4 Bytes,對應欄位值就是4
  • 動作(Operation)
    • 長度為16 Bits,標示ARP 封包的動作,是ARP Request還是ARP Reply
slide26
發送端硬體位址(Sender Hardware Address)
    • 長度不固定,根據硬體類型與硬體位址長度而定,標示ARP 封包發送端的MAC 位址
    • 若是乙太網路,長度便是6 Bytes
  • 發送端協定位址(Sender Protocol Address)
    • 長度不固定,根據協定類型與協定位址長度而定,標示ARP 封包發送端的協定位址
    • 若是IP 位址,長度便是4 Bytes
slide27
目的端硬體位址(Target Hardware Address)
    • 與發送端硬體位址一樣,長度不固定,根據硬體類型與硬體位址長度而定,標示ARP 封包目的端的MAC位址
    • 若是乙太網路,長度便是6 Bytes
  • 目的端協定位址(Target Protocol Address)
    • 與發送端協定位址一樣,長度不固定,根據協定類型與協定位址長度而定,標示ARP 封包目的端的協定位址
    • 若是IP 位址,長度便是4 Bytes
8 2 4 rarp
8-2-4 RARP
  • 反向位址解析協定(Reverse Address Resolution Protocol,RARP)的功能正好與ARP 相反
    • ARP 是已知IP 位址,要解析其對應的MAC 位址
    • RARP 則是反過來,已知MAC 位址,要解析相對應的IP 位址
  • 與ARP 一樣,RARP 也是只有使用兩種封包
    • RARP 請求(RARP Request)
    • RARP 回應(RARP Reply)
slide29
使用RARP 的情況通常發生在無硬碟電腦上
    • 因為沒有硬碟裝置儲存IP 位址組態,因此使用時會在一開機便以RARP 封包廣播,向伺服器要求指派IP 位址
8 3 icmp
8-3 ICMP
  • 在傳遞所經過的路徑中,各式各樣的狀況都有可能會遇到,如何得知傳輸狀況與所發生的點,進而去尋求解決方式,將狀況解除,才能使得網路運行更加順暢
  • 網際網路控制訊息協定(Internet Control Message Protocol,ICMP)
    • 常用於測試網路連線,網管人員會利用一些工具,送出ICMP 封包,測試網路連線是否正常
    • 有時也用於報告錯誤情形,當網路上的裝置(通常是路由器)發現有錯誤產生時,便使用ICMP 封包回報錯誤
  • 若是需要解決問題,則要尋求其他方式,因為這不是ICMP 所負責,ICMP 只做通報的工作。
8 3 1 icmp
8-3-1 ICMP 封包
  • ICMP 的封包分為表頭與資料
    • 封裝後會成為IP 的Payload 部分
    • 可是ICMP 與IP 是屬於同一層的協定
  • ICMP 的資料部份會隨著ICMP 表頭內容的不同而有變化
    • 因此資料欄位長度不固定
slide33
ICMP 的表頭分為3 個欄位:
    • 類型(Type)
      • 長度為8 Bits,定義出各種不同用途的ICMP 封包類型
    • 代碼(Code)
      • 長度為8 Bits,與類型欄位搭配使用,分出細項類別,並非每一種類型都會使用到代碼
    • 錯誤檢查碼(Checksum)
      • 長度為16 Bits,存放ICMP 封包的錯誤檢查碼,提供比對以防止封包在傳送中出現錯誤
slide36
回音請求(Echo Request)與回音回應(Echo Reply):
    • 這兩種封包是成對搭配運作的,主要應用於網路連線測試上
    • 如圖8-8,A 電腦產生一個EchoRequest 的ICMP 封包傳送給B 電腦,要求B 電腦如果有接收到封包就要回覆
    • 當B 電腦收到Echo Request 封包時,知道A 電腦在等待回覆,便產生一個Echo Reply 的ICMP 封包傳回給A 電腦,告知已經收到A 電腦的封包
slide38
要測試網路連線是否正常時
    • 會選定一個目標主機,使用者於測試主機端產生一個Echo Request 封包,封裝成IP 封包後,經由網路送至目標主機
    • 若是目標主機成功收到此封包,便會產生一個Echo Reply 封包,同樣封裝成IP 封包,再經由網路回傳給測試主機
slide39
使用者看到回應就表示
    • 目標主機目前是存在的
    • 測試主機與目標主機之間的網路連線是正常的
    • 如果測試主機到目標主機需要經過IP 路由的話,則表示它們之間的IP 路由是正確的
  • 因此,若是在限定時間內沒有收到Echo Reply 封包,便可推測有以上3 種情形至少有一種以上出現問題
slide40
目的地無法抵達(Destination Unreachable):
    • 用於通知發送端無法將資料傳送至目的地。
    • 如圖8-9,A 電腦要傳送資料給B 電腦,當封包抵達路由器R3 時,發現通往B 電腦的線路不通
    • R3 便回傳一個Destination Unreachable 的ICMP封包傳回給A 電腦,告知無法將封包送給B 電腦
slide41
資料在傳輸過程中,路由器發現無法將資料繼續傳送下去,例如網路斷線或是路由表中找不到可用的路徑時,便會傳送Destination Unreachable 的封包給發送端,讓發送端知道資料並沒有送到
  • 另外,資料送到了接收端,但是接收端電腦無法處理所收的封包,也會傳送Destination Unreachable 的封包給發送端
slide45
來源端抑制(Source Quench)
    • 當路由器所處理的封包量太大,沒有辦法馬上消化掉,就會產生一個Source Quench 的ICMP 封包通知來源端,請來源端暫時停止傳送或是降低傳送的速度
slide48
重新導向(Redirect)
    • 電腦主機與路由器都會保有自己的路由表,電腦在傳送資料時會依據本身的路由表指定傳送給路由器
    • 因為電腦並不像路由器有較好的路由更新機制去做路由表的定期更新,有時會發生電腦所選擇的路由並非最佳路徑
    • 當資料從電腦送到指定的路由器,路由器發現電腦所指定的路徑並非最佳路徑,便會產生一個Redirect 的ICMP 封包,通知電腦改往最佳路徑的路由方向送
slide49
如圖8-12,A 電腦要傳送資料給B 電腦,它本身的路由表記錄的最佳路徑是透過路由器R3,便將資料往R3 送去
  • R3 收到資料,比對自己的路由表,發現應該往R1 才是最佳路徑,便產生Redirect 的ICMP 封包,回傳給A 電腦,如圖8-13
  • 電腦A 收到R3 的封包,便更改自己的路由表,並重新傳送資料到路由器R1,如圖8-14
slide53
逾時(Time Exceeded)
    • 逾時發生在兩種情況
      • 第一種是封包在網路上傳輸的時間太久了
      • 第二種是封包經過切割後在網路上傳送,接收端於指定時間到仍無法收齊全部切割的封包
    • IP 的表頭有一個TTL 欄位,用來標示封包在網路傳輸的存活時間
    • 當封包送出時,會在TTL 記錄傳送途中可以經過路由器的數目;傳送過程中,每經過一個路由器,便將TTL 值減掉1
    • 當路由器接收到封包,發現表頭中的TTL 值為1,便表示傳送逾時,不能再送出去了,如圖8-15
    • 此時路由器會將封包丟棄,並產生一個Time Exceeded 的ICMP 封包,回傳給來源端,如圖8-16
    • 以這種方式可以避免萬一封包無法正確送到目的地時,在網路上永無止境的流竄
8 3 3 icmp
8-3-3 常見的ICMP 工具
  • Microsoft Windows 系統提供兩種ICMP 工具程式
    • Ping
    • Tracert (在Cisco 路由器為Traceroute)
  • 兩者皆為在命令提示字元模式(或稱為DOS模式)底下的指令工具,都利用ICMP 的Echo Request 搭配Echo Reply 運作
slide57
使用Ping 指令偵測網路時
    • 使用者以Ping 指令送出Echo Request 封包到目的端(預設為4 個)
    • 由目的端回傳Echo Reply 封包,預設上會回傳4 個Echo Reply封包
    • 可針對網址或是IP 位址偵測
  • 圖8-17 為對HINET 網頁做Ping 的偵測
slide59
Ping 指令可結合參數來改變偵測的條件,用 ping /? 指令以查詢可用的參數
  • 常見的參數如表8-5
slide61
Ping 指令直接取得來自目的端的回應
  • Tracert 除了目的端的回應,還會顯示到目的端所經過的每一台路由器
  • 使用Tracert 指令偵測網路時
    • 使用者以Tracert 指令送出Echo Request 封包,IP 封包的目的位址為目的端的IP 位址,TTL 設為1
    • 當送到第一台路由器時,因為TTL=1,所以會丟棄封包,並回傳Time Exceeded 給來源端
    • 來源端收到Time Exceeded 後,會得到第一台路由器傳回的IP 位址
    • 然後來源端再次送出相同的Echo Request 封包,但是TTL 增加為2
    • 所以送到第二台路由器時,因為TTL=1,所以會丟棄封包,並回傳Time Exceeded 給來源端
slide62
來源端收到第二台路由器所發的Time Exceeded 後,會得到第二台路由器傳回的IP 位址
  • 來源端會再將TTL 加1,送出Echo Request 封包,⋯,依此類推
  • 每一台經過的路由器都會傳回封包,告知來源端封包逾時,順便報告自己的IP 位址
  • 最後傳到目的端,便會回傳Echo Reply 封包給來源端,當來源端收到後,整個過程便完成了
slide63
如圖8-19,A 電腦要以Tracert 指令測試與B 電腦之間的網路,並顯示沿途的路由器IP 位址,便發出Echo Request 封包,目的位址為B 的IP 位址,TTL=1
slide65
當封包送到第一台路由器R1 時,因為TTL=1,所以會丟棄封包,並回傳Time Exceeded 給來源端,如圖8-20
slide67
經過反覆的送出Echo Request 封包與接收Time Exceeded 封包,每次都會收到路由器的IP 位址並將TTL 加1,最後封包終於送到B 電腦,如圖8-21