2017-03-02 227 views
-2

我在研究網絡。我想通過ICMP協議傳輸文件,然後通過wireshark捕獲網絡流量來解碼原始數據。但我不知道如何通過ICMP協議傳輸文件。所以我的問題是如何通過ICMP在主機之間傳輸文件。 非常感謝。通過ICMP傳輸文件

+1

你不能,除非你濫用ICMP的子協議之一。你應該看看UDP。 – EJP

+0

似乎你是網絡新手,首先閱讀有關TCP/UDP的內容。實際上,確實存在一種稱爲ICMP隧道的方式來通過ICMP傳輸文件,但我不認爲你的意思是這樣。 – jfly

回答

1

如果研究約TCP/IP層,你會發現,ICMP是因特網層協議,其目的是:

因特網控制消息協議(ICMP)是在因特網協議組的支撐協議。網絡設備(如路由器)使用它來發送錯誤消息和操作信息。

所以ICMP並不像HTTP或FTP等技術上來說,數據傳輸協議,它是不可能在任何情況下使用ICMP數據傳輸協議,除非你改變結構和ICMP的所有編碼,然後它會不不再是ICMP。

0

如果你堅持使用ICMP發送數據(這在某些使用情況下是合理的),我建議你閱讀this articlethat one。第一個也包含使用ICMP傳輸數據的客戶端和服務器的概念證明C代碼。你可以找到另一個例子written in C++ here

此方法背後的想法是使用ICMP Echo(ping)請求和響應傳輸數據(或本例中的文件)的數據(有效負載)部分。大多數設備都會回覆ICMP Echo(ping)請求,所以當其他協議(如ssh,smb,ftp等)被阻止時,這是一種傳輸文件的方式。