udp,icmp协议格式
UDP 協定
UDP 的全名是:『User Datagram Protocol, 用戶資料流協定』,UDP 與 TCP 不一樣, UDP 不提供可靠的傳輸模式,因為他不是連線導向的一個機制,這是因為在 UDP 的傳送過程中,接受端在接受到封包之後,不會回覆回應封包 ( ACK ) 給發送端,所以封包並沒有像 TCP 封包有較為嚴密的驗證機制。至於 UDP 的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
頭資料如下表所示:
16 bytes 16 bytes
Source Port Destination Port
Message Length Checksum
Data
圖十四、UDP 封包的表頭資料
TCP 封包確實是比較可靠的,因為通過三向交握嘛~不過,也由於三向交握的緣故, TCP 封包的傳輸速度會較慢。 至於 UDP 封包由於不需要確認對方是否有正確的收到資料,故表頭資料較少,也因為如此所以 UDP 就可以在 Data 處填入更多的資料了。同時 UDP 比較適合需要即時反應的一些資料流,例如即時通訊軟體或者是影像即時傳送軟體等, 就可以使用這類的封包傳送說。也就是說, UDP 傳輸協定並不考慮連線要求、連線終止與流量控制等特性, 所以使用的時機是當資料的正確性不很重要時,例如上面提到的即時通訊軟體啊~
另外,很多的軟體其實是同時提供 TCP 與 UDP 的傳輸協定的,舉例來說,查詢主機名稱的 DNS 服務就同時提供了 UDP/TCP 協定。由於 UDP 較為快速,所以我們 client 端可以先使用 UDP 來與伺服器連線。 但是當使用 UDP 連線卻還是無法取得正確的資料時,便轉換為較為可靠的 TCP 傳輸協定來進行資料的傳輸囉。 這樣可以同時兼顧快速與可靠的傳輸說~
ICMP 協定
ICMP 的全稱是『 Internet Control Message Protocol, 網際網路訊息控制協定 』。 基本上,ICMP 是一個錯誤偵測與回報的機制,最大的功能就是可以確保我們網路的連線狀態與連線的正確性~ 同樣的,ICMP 封包也是必須要裝在 IP 封包的 Data 內才行喔~ 因為在 Internet 上面有傳輸能力的就是 IP 封包啦~ ICMP 有相當多的類別可以偵測與回報,底下是比較常見的幾個 ICMP 的類別 (Type):
類別代號 類別名稱與意義
Echo Reply (代表一個回應信息) 0
Distination Unreachable (表示目的地不可到達) 3
Source Quench (當 router 的負載過高時,此類別碼可用來讓發送端停止發送訊息) 4
Redirect (用來重新導向路由路徑的資訊) 5
Echo Request (請求回應訊息) 8
Time Exceeded for a Datagram (當資料封包在某些路由傳送的現象中造成逾時狀態,此類別碼可11 告知來源該封包已被忽略的訊息)
Parameter Problem on a Datagram (當一個 ICMP 封包重複之前的錯誤時,會回覆來源主機關12 於參數錯誤的訊息)
Timestamp Request (要求對方送出時間訊息,用以計算路由時間的差異,以滿足同步性協定的要13 求)
Timestamp Replay (此訊息純粹是回應 Timestamp Request 用的) 14
Information Request (在 RARP 協定應用之前,此訊息是用來在開機時取得網路信息) 15
Information Reply (用以回應 Infromation Request 訊息) 16
Address Mask Request (這訊息是用來查詢子網路 mask 設定信息) 17
Address Mask Reply (回應子網路 mask 查詢訊息的) 18
那麼我們是如何利用 ICMP 來檢驗網路的狀態呢,最簡單的指令就是 ping 與 traceroute 了, 這兩個指令可以透過 ICMP 封包的輔助來確認與回報網路主機的狀態。在設定防火牆的時候, 我們最容易忽略的就是這個 ICMP 的封包了,因為只會記住 TCP/UDP 而已,事實上, ICMP 封包可以幫助連線的狀態回報,除了上述的 8 可以考慮關閉之外,基本上, ICMP 封包也不應該全部都擋掉喔~