ICMP報文分析:埠不可達

pengfoo發表於2012-05-11

  ICMP的一個規則是,ICMP差錯報文必須包括生成該差錯報文的資料包IP首部(包含任何選項),還必須至少包括跟在該IP首部後面的前8個位元組(包含源埠和目的埠。在我們的例子中,跟在IP首部後面的前8個位元組包含UDP的首部。

   我們利用前面部落格中UNIX網路程式設計學習(18)中UDP回射程式,不開啟伺服器端程式,只開啟客戶程式,傳送出一個hello,沒有迴應,但是用wireshark抓包,會有:

根據上述ICMP格式:

76 = 14+20+8+20+8+6(hello佔6位元組)

同時,我們也可以學習UDP報文的格式:

48 = 14+20+8+6(6為hello位元組數)

可以看看ip報文格式:

第10個位元組表示協議,其中17表示UDP。(由於TCP,UDP,ICMP,IGMP都要向ip傳送資料,因此ip必須在生成的ip首部加入某種標識,以表明資料屬於哪一層)。為此,在ip首部中存入一個8bit的數值,稱為協議域。

 

 

 

 

相關文章