成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

瑞士軍刀協議——ICMP

網絡 網絡管理
IP協議的一個重要補充是是ICMP協議。ICMP是介于網絡層和傳輸層的協議。它的主要功能是傳輸網絡診斷信息。

ICMP協議

IP協議的一個重要補充是是ICMP協議。ICMP(Internet Control Message Protocol)是介于網絡層和傳輸層的協議。它的主要功能是傳輸網絡診斷信息。

[[120601]]

 

ICMP傳輸的信息可以分為兩類,一類是錯誤(error)信息,這一類信息可用來診斷網絡故障。我們已經知道,IP協議的工作方式是“Best Effort”,如果IP包沒有被傳送到目的地,或者IP包發生錯誤,IP協議本身不會做進一步的努力。但上游發送IP包的主機和接力的路由器并不知道下游發生了錯誤和故障,它們可能繼續發送IP包。通過ICMP包,下游的路由器和主機可以將錯誤信息匯報給上游,從而讓上游的路由器和主機進行調整。需要注意的是,ICMP只提供特定類型的錯誤匯報,它不能幫助IP協議成為“可靠”(reliable)的協議。另一類信息是咨詢(Informational)性質的,比如某臺計算機詢問路徑上的每個路由器都是誰,然后各個路由器同樣用ICMP包回答。

(ICMP基于IP協議。也就是說,一個ICMP包需要封裝在IP包中,然后在互聯網傳送。ICMP是IP套裝的必須部分,也就是說,任何一個支持IP協議的計算機,都要同時實現ICMP。)

ICMP包的結構:

 

 

A bunch of Types

ICMP包都會有Type, Code和Checksum三部分。Type表示ICMP包的大的類型,而Code是一個Type之內細分的小類型。針對不同的錯誤信息或者咨詢信息,會有不同的Type和Code。從上面我們可以看到,ICMP支持的類型非常多,就好像瑞士軍刀一樣,有各種各樣的功能。Checksum與IP協議的header checksum相類似,但與IP協議中checksum只校驗頭部不同,這里的Checksum所校驗的是整個ICMP包(包括頭部和數據)。

 

余下的ICMP包格式根據不同的類型不同。另一方面,ICMP包通常是由某個IP包觸發的。這個觸發IP包的頭部和一部份數據會被包含在ICMP包的數據部分。

ICMP協議是實現ping命令和traceroute命令的基礎。這兩個工具常用于網絡排錯。

常見的ICMP包類型

回音

回音(Echo)屬于咨詢信息。ping命令就是利用了該類型的ICMP包。當使用ping命令的時候,將向目標主機發送Echo-詢問類型的ICMP包,而目標主機在接收到該ICMP包之后,會回復Echo-回答類型的ICMP包,并將詢問ICMP包包含在數據部分。ping命令是我們進行網絡排查的一個重要工具。如果一個IP地址可以通過ping命令收到回復,那么其他的網絡協議通信方式也很有可能成功。

源頭冷卻

源頭冷卻(source quench)屬于錯誤信息。如果某個主機快速的向目的地傳送數據,而目的地主機沒有匹配的處理能力,目的地主機可以向出發主機發出該類型的ICMP包,提醒出發主機放慢發送速度(請溫柔一點吧)。

目的地無法到達

目的地無法到達(Destination Unreachable)屬于錯誤信息。如果一個路由器接收到一個沒辦法進一步接力的IP包,它會向出發主機發送該類型的ICMP包。比如當IP包到達最后一個路由器,路由器發現目的地主機down機,就會向出發主機發送目的地無法到達(Destination Unreachable)類型的ICMP包。目的地無法到達還可能有其他的原因,比如不存在接力路徑,比如不被接收的端口號等等。

超時

超時(Time Exceeded)屬于錯誤信息。IPv4中的Time to Live(TTL)和IPv6中的Hop Limit會隨著經過的路由器而遞減,當這個區域值減為0時,就認為該IP包超時(Time Exceeded)。Time Exceeded就是TTL減為0時的路由器發給出發主機的ICMP包,通知它發生了超時錯誤。

traceroute就利用了這種類型的ICMP包。traceroute命令用來發現IP接力路徑(route)上的各個路由器。它向目的地發送IP包,第一次的時候,將TTL設置為1,引發第一個路由器的Time Exceeded錯誤。這樣,第一個路由器回復ICMP包,從而讓出發主機知道途徑的第一個路由器的信息。隨后TTL被設置為2、3、4,...,直到到達目的主機。這樣,沿途的每個路由器都會向出發主機發送ICMP包來匯報錯誤。traceroute將ICMP包的信息打印在屏幕上,就是接力路徑的信息了。

重新定向

重新定向(redirect)屬于錯誤信息。當一個路由器收到一個IP包,對照其routing table,發現自己不應該收到該IP包,它會向出發主機發送重新定向類型的ICMP,提醒出發主機修改自己的routing table。比如下面的網絡: 

 

重新定向

假如145.1發送到145.15的IP包,結果被中間的路由器通過145.17的NIC收到。那么路由器會發現,根據自己的routing table,這個IP包要原路返回。那么router就可以判斷出145.1的routing table可能有問題。所以路由器會向145.1發送redirect類型的ICMP包。

IPv6的Neighbor Discovery

ARP協議用于發現周邊的IP地址和MAC地址的對應。然而,ARP協議只用于IPv4,IPv6并不使用ARP協議。IPv6包通過鄰居探索(ND, Neighbor Discovery)來實現ARP的功能。ND的工作方式與ARP類似,但它基于ICMP協議。ICMP包有Neighbor Solicitation和Neighbor Advertisement類型。這兩個類型分別對應ARP協議的詢問和回復信息。

總結

ICMP協議是IP協議的排錯幫手,它可以幫助人們及時發現IP通信中出現的故障。基于ICMP的ping和traceroute也構成了重要的網絡診斷工具。然而,需要注意的是,盡管ICMP的設計是出于好的意圖,但ICMP卻經常被黑客借用進行網絡攻擊,比如利用偽造的IP包引發大量的ICMP回復,并將這些ICMP包導向受害主機,從而形成DoS攻擊。而redirect類型的ICMP包可以引起某個主機更改自己的routing table,所以也被用作攻擊工具。許多站點選擇忽視某些類型的ICMP包來提高自身的安全性。

責任編輯:林琳 來源: 博客園
相關推薦

2010-12-01 12:31:23

NetCat掃描端口

2017-05-03 14:45:45

MySQL數據恢復

2013-06-08 10:36:47

Linux命令行

2020-07-02 09:21:40

Java 緩存開發

2013-04-11 10:51:27

2011-10-18 14:11:17

Web開發

2014-05-29 14:44:06

瑞士軍刀綜合征開發者

2009-07-21 14:16:18

Scalafor表達式

2022-02-15 10:15:13

Web網絡程序員

2023-04-27 07:06:09

Categraf夜鶯

2021-09-05 18:30:59

Alpine容器Busybox

2019-06-24 09:57:39

網絡工具調試

2011-08-01 09:43:08

PhoneGap 1.PhoneGap

2017-04-21 09:42:18

4G5G物聯網

2023-12-25 12:03:42

2009-09-09 12:10:40

2020-11-07 16:30:27

Python開發程序員

2021-12-28 09:55:40

UbuntuRescuezillaLinux

2015-09-28 09:46:31

ZooKeeper分布式系統瑞士軍刀

2019-06-27 17:00:09

nc命令 Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区四区五区加勒比 | 夜夜爽99久久国产综合精品女不卡 | 国产一级一级 | 高清18麻豆| 日韩精品在线一区 | 黄视频在线网站 | 在线观看免费观看在线91 | 成人免费共享视频 | 九色在线视频 | 久久黄色 | 美人の美乳で授乳プレイ | 99久久久国产精品免费消防器 | 国产电影一区二区三区爱妃记 | 国产精品一区二区久久久久 | 色先锋影音 | 亚洲国产精品99久久久久久久久 | 91久久夜色精品国产网站 | 中文字幕免费视频 | 成人免费视频网站在线观看 | 综合色播 | 午夜影视在线观看 | 日韩在线视频一区二区三区 | 午夜视频网站 | 成人一区二区视频 | 成人av一区二区三区 | 一区二区在线免费观看 | 99精品国自产在线 | 男女免费在线观看视频 | 男女羞羞免费网站 | 久久久久久久电影 | 97影院在线午夜 | 羞羞网站免费 | 人人干人人草 | 日韩在线免费视频 | a爱视频 | a欧美 | 久久亚洲一区二区三区四区 | 嫩呦国产一区二区三区av | 超碰人人在线 | 亚洲视频观看 | 午夜电影福利 |