2016-02-26 175 views
-5

我有一個關於網絡協議的問題。當我收到數據包進行解碼時,如何確定其TCP或UDP或ICMP?網絡協議TCP/UDP/ICMP之間的區別

有沒有字節數的任何符號我可以用它來知道?

+0

我認爲這在很大程度上取決於在不同的層中使用哪些協議。例如,在第4層中,UDP的開銷比TCP小,它也將取決於操作系統和網絡堆棧。 –

+0

我使用TCP協議 – Hani

+0

@Hani如果你使用TCP協議,你爲什麼要問這個問題?你正在接受TCP,期限。你甚至沒有收到數據包,只是一個字節流。你的問題沒有意義。 – EJP

回答

0

IPv4數據包標頭有一個協議字段,告訴你哪個協議在數據包有效載荷中。

對於IPv6,它有點複雜。如果沒有IPv6擴展頭,IPv6數據包的Next Header字段會告訴你同樣的事情。如果有IPv6擴展標頭,則需要按照標頭鏈來獲取最後一個標頭,以確定有效載荷類型。

+0

我使用IPv4,但我有多個數據包來弄清楚他們是TCP還是UDP – Hani

+0

我怎麼能知道它們的區別?是否有任何穩定的mac地址,源.etc號碼?謝謝你 – Hani

+0

你似乎很困惑。 MAC地址是第2層地址,它們只存在於第2層幀中,其中有一個EtherType字段告訴你哪個第3層協議位於第3層數據包中。一個IP(三層協議之一)數據包將是一個二層幀的有效載荷,並且它具有協議字段,告訴你哪一個第四層協議在第四層段中。 TCP,UDP,ICMP等(第4層協議)段是第3層數據包的有效載荷。您需要了解OSI圖層,每種類型的標題以及一個圖層如何封裝下一個圖層。 –