【網路協議】UDP協議
UDP是一個簡單的面向資料包的運輸層協議:程式的每個輸出操作都會產生一個UDP資料包,並組裝成一份待傳送的IP資料包,這與面向位元組流的協議不同,如TCP,應用程式產生的全體資料與真正傳送的單個IP資料包可能沒有什麼聯絡(主要是在傳輸層就進行分段了,因此不會受IP分片的影響)。
UDP的首部一共8個位元組,很簡單,可以參考書上,這裡也不再詳說。
UDP的校驗和
至於UDP的校驗和,這裡注意下區別就好了,UDP對首部和資料部分都進行校驗,而IP首部的校驗和僅對IP的首部進行校驗,順帶提下TCP,TCP的校驗和也是對首部和資料部分都進行校驗,另外,UDP的校驗和是可選的,而TCP的是必選的。
不可靠協議
UDP是不可靠的協議,沒有超時和重傳功能,當UDP資料封裝到IP資料包傳輸時,如果丟失,會傳送一個ICMP差錯報文給源主機,另外,如果UDP資料包的傳送端沒開啟UDP校驗和,而接收端計算校驗和有差錯,那麼UDP資料包將會被丟掉,也不會傳送ICMP差錯報文。
路徑MTU發現
可以修改Traceroute程式來確定路徑MTU。要做的是傳送分組,並設定將IP首部設定為不分片,傳送的第一個分組的長度正好於出口MTU相等,每次收到ICMP不可分片的差錯報文時,就減小分組長度,使新的ICMP不可分片差錯報文中返回更小的MTU,每次用更小的MTU值來傳送,這樣能找到更小的MTU值。
利用路徑MTU發現機制,應用程式可以充分利用更大的MTU來傳送報文。
UDP最大長度
理論上IP資料包的最大長度為65535位元組,因此理論上的UDP資料包的最大長度為65507(65535-20-8)位元組,但是,大多數實現所提供的長度比這個最大值小。一般有兩個因素的限制(書上給出了一些例子,見P120):
1、應用程式可能胡受到其程式介面的限制,一些API的實現中可能有限定UDP資料包的最大長度。另外,現在大部分系統都預設提供了可讀寫大於8192位元組的UDP資料包。
2、受限於TCP/IP核心的實現,可能存在一些實現特性,使IP資料包長度小於65535位元組。
資料包截斷
正是由於UDP最大資料包的限制(受限於上面的兩個因素,一般都會小於65507),大於這個限制的資料包會被截斷,從而發生資料丟失,且不會有任何資料丟失的通知,這也是UDP協議不可靠傳輸的另一個體現。而TCP則沒有任何資訊邊界,TCP首部中沒有對TCP最長報文段的限制,因此TCP以應用程式讀操作時所要求的長度來傳送資料(理論上一次可以傳送很大的資料,但考慮到網路的傳輸效能,最好不要一次傳輸太大的資料),當然在超過MSS值時會產生分段,因此不會發生資料截斷。
ICMP源站抑制差錯
當一個系統中的某主機或路由器處理資料的速度趕不上接受資料的速度時,因為接收主機的IP快取會被佔滿,可能會產生這個差錯,從而傳送一個ICMP源站抑制差錯報文,這裡要注意是“可能”。
PS:終於要開題了,明天上午第一個上臺,希望一切順利。
相關文章
- 網路協議之:基於UDP的高速資料傳輸協議UDT協議UDP
- 計算機網路之六:UDP協議計算機網路UDP協議
- TCP和UDP協議TCPUDP協議
- Socket:UDP協議小白UDP協議
- UDP協議詳解UDP協議
- 網路協議協議
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- 什麼是協議?| 網路協議定義協議
- TCP/IP、UDP/IP協議TCPUDP協議
- web網路協議Web協議
- 網路管理協議協議
- 網路協議---DNS協議DNS
- 網路程式設計UDP協議方式程式設計UDP協議
- 計算網路之MSTP協議與VRRP協議協議VR
- 網路協議 6 - 路由協議:敢問路在何方?協議路由
- 網路協議之:haproxy的Proxy Protocol代理協議協議Protocol
- UDP協議抓包分析 -- wiresharkUDP協議
- 系列TCP/IP協議-UDP(009)TCP協議UDP
- netty系列之:使用UDP協議NettyUDP協議
- TCP 和 UDP 協議簡介TCPUDP協議
- 網路協議之:socket協議詳解之Datagram Socket協議
- 網路協議基本概述協議
- 防火牆 | 網路協議防火牆協議
- 網路協議入門協議
- 網路通訊協議協議
- 網路協議 1 - 概述協議
- 網路安全網路協議知識點中,http協議是什麼?協議HTTP
- 通訊協議和網路協議有什麼區別協議
- 網路協議之:socket協議詳解之Unix domain Socket協議AI
- 傳輸層協議 TCP 和 UDP協議TCPUDP
- TCP對應的協議和UDP對應的協議(簡單概述)TCP協議UDP
- 網路程式設計協議(TCP和UDP協議,黏包問題)以及socketserver模組程式設計協議TCPUDPServer
- IEEE802網路協議協議
- 常見的網路協議協議
- 最全網路協議(轉載)協議
- TCP/IP協議 - 網路層TCP協議