UNIX網絡編程——ICMP報文分析:端口不可達

     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字節數)spa

能夠看看ip報文格式:ip

第10個字節表示協議,其中17表示UDP。(因爲TCP,UDP,ICMP,IGMP都要向ip傳送數據,所以ip必須在生成的ip首部加入某種標識,以代表數據屬於哪一層)。爲此,在ip首部中存入一個8bit的數值,稱爲協議域。博客

相關文章
相關標籤/搜索