TCP報文格式+UDP報文格式+MAC幀格式


TCP和UDP的區別:

1)TCP是面向連接的,而UDP是無連接的

2)TCP提供可靠服務,而UDP不提供可靠服務,只是盡最大努力交付報文

3)TCP面向字節流,TCP把數據看成一串無結構的字節流,而UDP是面向報文的(UDP數據報+IP頭部=IP數據報)

4)TCP有擁塞控制,UDP沒有擁塞控制

5)TCP只提供點對點通信,而UDP提供點對點,點對多點,多點對多點的通信

6)TCP提供的是全雙工的可靠信道,而UDP提供的是不可靠信道

7)TCP的首部開銷有20個字節,而UDP的首部開銷只有8個字節

 

TCP報文格式

TCP報文格式

序號:該報文段在整個報文中的序號,為本報文段發送的第一個字節的序號,比如該報文段第一個字節的序號為100,則該報文段的序號為100

確認序號:指明下一個期待收到的字節序號,比如當前報文段的序號為100,報文段的數據部分共有200個字節,則確認序號為100+200=300

 

首部長度:TCP報文首部長度,也是TCP報文數據部分的偏移量,以為存在選項部分

保留位:目前沒有被使用,設置為0

 

標志位

URG=1:緊急比特,報文中有緊急數據,應該盡快傳遞

ACK=1:確認比特,說明該報文是一個發送方返回的確認報文

PSH=1:推送比特,指示接收方在接收到報文后應該盡快交給應用進程,而不是等到整個緩存填滿才發送給應用進程

RST=1:復位比特,TCP連接中出現嚴重差錯,必須釋放連接,然后重新建立連接

SYN=1:同步比特,表示TCP連接正在建立中,該報文是一個協商報文

FIN=1:終止比特,發送端已完成數據傳輸,請求釋放連接

 

窗口大小:接收窗口的大小,表示接收端希望接受的字節數

校驗和:反碼求和,發送端計算,結果存入校驗和字段,接收端校驗,校驗結果和校驗和字段結果不同則丟棄報文,相同也不代表該報文沒有出錯,所以TCP的校驗機制不能檢查出所有等到錯誤,所以我們需要在應用層建立一套新的數據校驗機制:MD5加密,在發送數據前使用MD5加密,並且將MD5摘要一起發送,接收端接收數據后再次進行MD5加密,加密結果等於發送的加密密鑰則數據沒有出錯,不等於在數據出錯了,拋棄該報文

緊急指針:僅在緊急比特URG=1時才有效,指明該TCP報文中緊急數據的字節數,同時也指明了緊急數據的末尾位置,因為緊急數據后面就是普通數據,即使窗口為0,也可以發送緊急數據

選項:(TCP報文除開選項和數據部分,總共20個字節)

TCP報文選項字段.jpg

 

UDP報文格式:(UDP報文首部8個字節)

UDP報文格式

 

MAC幀格式:

以太網的幀格式:

Preamble:前導同步碼7個字節+幀開始定界符1個字節=8個字節

Destination MAC adress:目的MAC地址

Source MAC adress:源MAC地址

Type/Length:幀類型

User date :數據信息

Frame Check Sequence:幀校驗序列

因此以太網幀的范圍是72-1526字節


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM