1. TCP分段的格式
1.1 分段:TCP協(xié)議數(shù)據(jù)單元叫分段(segment)。TCP分段分為首部和數(shù)據(jù)兩部分贴谎。應(yīng)用層數(shù)據(jù)長(zhǎng)度超出 IP分組的最大傳輸長(zhǎng)度 時(shí)擅这,需要對(duì)其分段。
1.2 分段的說(shuō)明
圖片來(lái)源
(1)源端口:主叫的TCP端口號(hào)鲫构,16bits。
(2)目標(biāo)端口:被叫的TCP端口號(hào),16bits算途。
(3)序列號(hào):分段序列號(hào),32bits莉钙。本分段數(shù)據(jù)部分的第一個(gè)字節(jié)的序列號(hào),這是該分段數(shù)據(jù)在發(fā)送方數(shù)據(jù)流中的初始位置驾讲。
(4)確認(rèn)號(hào):本分段的主叫方期望接收被叫方的TCP分段序列號(hào)时迫,32bits掠拳。
序列號(hào)和確認(rèn)號(hào)用于確認(rèn)和差錯(cuò)控制。
(5)首部長(zhǎng)度:TCP分段的首部長(zhǎng)度姐刁,4bits。首部長(zhǎng)度以32bits為一個(gè)單位烦味。
(6)保留:6bits聂使。
(7)編碼位:6bits。實(shí)現(xiàn)控制功能,如建立連接岩遗,關(guān)閉連接扇商,傳輸數(shù)據(jù),攜帶確認(rèn)宿礁,流量控制等案铺。
(8)窗口大小:16bits梆靖,滑動(dòng)窗口協(xié)議來(lái)進(jìn)行控制控汉。
(9)校驗(yàn)和:16bits。對(duì)分段首部和數(shù)據(jù)進(jìn)行校驗(yàn)返吻。
(10)緊急指針:16bits姑子。從當(dāng)前序列號(hào)到緊急數(shù)據(jù)位置的偏移量。URG為1時(shí)有效测僵。
(11)選項(xiàng):提供額為的設(shè)置方法街佑。
(12)數(shù)據(jù):應(yīng)用層的協(xié)議數(shù)據(jù)。
2. UDP
2.1 UDP數(shù)據(jù)報(bào):UDP的協(xié)議數(shù)據(jù)單元被稱為用戶數(shù)據(jù)報(bào)捍靠。
2.2 用戶數(shù)據(jù)報(bào)格式
(此圖轉(zhuǎn)載自網(wǎng)絡(luò))
(1) 源端口:16bits沐旨。
(2)目標(biāo)端口:16bits。
(3)長(zhǎng)度:首部長(zhǎng)度+數(shù)據(jù)長(zhǎng)度榨婆,16bits磁携,以字節(jié)為單位。
(4)校驗(yàn)和:校驗(yàn)數(shù)據(jù)報(bào)是否有差錯(cuò)良风,16bits谊迄。校驗(yàn)和為可選字段,字段值為0烟央,則表明不進(jìn)行校驗(yàn)统诺。
2.TCP/UDP區(qū)別
TCP是面向連接,UDP是無(wú)連接吊档。
(1)
TCP的每個(gè)端口號(hào)擁有發(fā)送隊(duì)列和接收隊(duì)列篙议。相當(dāng)于在源主機(jī)和目標(biāo)主機(jī)間建立管道,按照正確的分段號(hào)實(shí)現(xiàn)有序傳輸怠硼;
UDP的每個(gè)端口號(hào)擁有輸入隊(duì)列和輸出隊(duì)列鬼贱。每個(gè)UDP數(shù)據(jù)報(bào)都是獨(dú)立的,不需要同序處理香璃。由于IP分組傳輸是無(wú)連接的这难,可能會(huì)出現(xiàn)晚發(fā)早到的情況。
(2)
TCP提供差錯(cuò)控制(校驗(yàn)和)葡秒、確認(rèn)機(jī)制(序列號(hào)姻乓、確認(rèn)號(hào))嵌溢、流量控制(滑動(dòng)窗口協(xié)議)、擁塞控制蹋岩、重發(fā)機(jī)制(超時(shí)重傳)等實(shí)現(xiàn)可靠傳輸赖草;
UDP僅僅提供課可選擇的差錯(cuò)控制(校驗(yàn)和),一旦錯(cuò)誤就丟棄數(shù)據(jù)報(bào)剪个,不告知發(fā)送方秧骑。因此,UDP是不可靠傳輸扣囊。
(3)
TCP僅僅提供一對(duì)一的連接服務(wù);
UDP提供一對(duì)一乎折、一對(duì)多、多對(duì)一和多對(duì)多的交互通信侵歇。
(4)
TCP的傳輸效率低于UDP傳輸效率骂澄。原因是TCP為了保證可靠傳輸因此會(huì)有額外的消耗。
(此圖轉(zhuǎn)載自網(wǎng)絡(luò))