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