s6-2 UDP
User Datagram Protocol
? UDP 是一個無連接的(connectionless)的傳輸層協議
? UDP傳輸數據段,無須建立連接
? UDP 在 RFC 768中描述
? 很多C/S應用(如: DNS),都使用UDP發送一個請求, 然后對方應答
UDP 數據段頭
? UDP 數據段包括8字節( 8-Byte)的頭部和數據兩個部分
? 其中的長度域表示的長度包括頭部和數據總共的長度
? 校驗和(checksum)是可選的,如果不計算校驗和,則該域置為 0
? UDP比IP好的地方在于它可以使用源端口和目的端口
端口(port)定義
? 16 位,共有 2 16? 個端口
?端口范圍:0~65535
<1023? 用于公共應用(保留,全局分配,用于標準服務器),IANA分配
1024~49151 用戶端口,注冊端口
>49152? 動態端口,私人端口
自由端口(Free port)
?本地分配
?動態的隨機端口
UDP 保留端口
UDP 校驗和
TCP/UDP偽頭部(pseudo header)
?
注意
? 如果收方的校驗和為全1,傳輸無錯
? 二進制反碼求和
?從低位到高位逐列計算
?0和0相加是0,0和1相加是1,1和1相加是0,但產生進位
?最高位相加產生進位,該位為1
? 檢錯能力較弱,但簡單快速
? 使用協議地址,破壞了分層原則
小結:UDP
提供端點標識,端到端的數據傳輸
不提供差錯檢測和可靠傳輸,但簡潔高效
? UDP是傳輸層的一個輕量級協議,提供高效的端到端的數據段傳輸。
? UDP數據段包括頭部和載荷兩部分,頭部有8個字節,共4個字段。
? UDP不提供數據傳輸的可靠保證
總結
- 上一篇: LVS、Nginx 及 HAProxy
- 下一篇: s6-3 通信模型