TcpIp詳解--ICMP:Internet控製報文協議

TcpIp詳解--ICMP:Internet控製報文協議

1.概述
ICMP報文是在ip數据報內部被傳輸的,如下圖(圖6-1),它被認為是IP層的一個組成部分,用于傳遞差錯報文及其它需要注意的信息,ICMP報文通常被IP層或更高層協義(TCP或UDP)使用.

(圖6-1)

ICMP報文的格式如下圖(圖6-2)

(圖6-2)

類型字段:有15個不同的值.表示報文的類型
代碼字段:表示不同的條件,与類型字段共同确定報文的類型.
檢驗和字段:算法与ip首部檢驗和算法相同


2.ICMP報文的類型

為了防止對廣播分組響應所帶來的廣播風暴,下面几种情況下不會產生icmp差錯報文:
(1)icmp差錯報文
(2)目的地址是廣播地址或多播地址(即D類地址)的ip數据報
(3)作為連路層廣播的數据報
(4)不是ip分片的第一片
(5)源地址不是單個主机的數据報,也就是說,源地址不能為零地址,環回地址,廣播地址或多播地址.

3.ICMP地址掩碼請求与應答
ICMP地址掩碼請求用于無盤系統在啟動過程中獲取自已的子网掩碼,ICMP請求報文采用廣播的形式.
注:無盤系統獲取子网掩碼的另一個方法是bootp協議.
icmp地址掩碼請求和應答報文的格式如下(圖6-4),其中標識符和序列號字段由發送端任意選擇設定,這些值在應答中將被返回,從而發送端可以將應答与請求匹配.

(圖6-4)

4.icmp時間戳請求与應答
icmp時間戳請求用於查詢另一個系統當前的時間.返回的時間是自午夜開始計算的毫秒數,協調的統一時間(utc).
icmp時間戳請求和應答報文的格式如下圖(圖6-6).

(圖6-6)

請求端填寫發起時間戳,然后發送報文,應答系統收到 請求報文時填 寫接收時間戳,在發送應答時填寫發送時間戳.但實際上,大多數實現把后面兩個字段都設成相同的值(原因是可以讓發送方分別計算發送請求的時間和發送應答的時間).


5.ICMP端口不可達差錯
ICMP不可達報文的一般格式如下(圖6-10),但也有例外,如當代碼為4時,路徑mtu發現机制允許路由器把外出接口的mtu填在第二個32位字的低16位中.另外,icmp也充許系統返回多于8個字節的產生差錯的ip數据報中的數据.

(圖6-10)

下面以發送一份UDP數据報為例,如果目的端口与某個正在使用的進程不相符,那么udp返回一個icmp不可達報文.該報文的格式將如下圖所示(圖6-9):

(圖6-9)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值