# UDP(用戶數據報協議)
> 用戶數據報協議(User Datagram Protocol,UDP)UDP是OSI參考模型中一種無連接的傳輸層協議,它主要用于不要求分組順序到達的傳輸中,分組傳輸順序的檢查與排序由應用層完成 ,提供面向事務的簡單不可靠信息傳送服務。
## 一、UDP協議
1、面向事物,不是面向鏈接
2、UDP不提供可靠性:它把應用程序傳給IP層的數據發送出去,但是并不保證它們能到達目的地
簡單的可以理解UDP就是類似一個郵寄員的角色。你只要告訴它,對方的地址和電話。郵遞員就把你的快遞送到對應的地方,但是中間可能會丟失。對方收到沒有,就不管了。
## UDP頭部信息
> 指定通信的源端端口號、目的端端口號、UDP長度、校驗和、數據


UDP報文各個位置詳解:
- 1、源端口號,16bit
- 2、目的端口號:數據接收者的端口號,16bit
- 3、UDP長度:UDP長度字段指的是UDP首部和UDP數據的字節長度。該字段的最小值為8字節
- 4、UPD校驗和:UDP檢驗和覆蓋UDP首部和UDP數據
- 5、首部長度:首部中32bit字的數目,可表示15*32bit=60字節的首部。一般首部長度為20字節。
- 6、數據
使用**wireshark**抓包查看對應的字段信息。

UDP 是一個簡單的傳輸層協議。和 TCP 相比,UDP 有下面幾個顯著特性:
- UDP 缺乏可靠性。UDP 本身不提供確認,序列號,超時重傳等機制。UDP 數據報可能在網絡中被復制,被重新排序。即 UDP 不保證數據報會到達其最終目的地,也不保證各個數據報的先后順序,也不保證每個數據報只到達一次
- UDP 數據報是有長度的。每個 UDP 數據報都有長度,如果一個數據報正確地到達目的地,那么該數據報的長度將隨數據一起傳遞給接收方。而 TCP 是一個字節流協議,沒有任何(協議上的)記錄邊界。
- UDP 是無連接的。UDP 客戶和服務器之前不必存在長期的關系。UDP 發送數據報之前也不需要經過握手創建連接的過程。
- UDP 支持多播和廣播。
- PC
- IO模型
- Inode介紹
- Linux
- Linux基本操作命令
- Linux網絡相關命令
- Crontab計劃任務
- Shell
- Sed命令
- Awk命令
- LAMP/LNMP
- PHP
- 基本語法
- 面向對象
- 錯誤和異常處理
- 命名空間
- PHP7
- 正則表達式
- Hashtable
- 變量的內部實現
- PHP-FPM
- PHP運行原理
- swoole
- mysql
- SQL標準
- mysql三范式
- 存儲引擎
- Mysql事務
- Mysql索引
- Mysql優化
- Explain
- MySQL索引原理及慢查詢優化
- MongoDb
- 計算機網絡
- IP協議
- TCP(傳輸控制協議)
- UDP(用戶數據報協議)
- HTTP 協議
- HTTPS
- HTTP的基本優化
- Websocket協議
- 版本控制器
- Git
- Svn
- 數據結構
- 數組
- 鏈表
- 算法