-
TCP/IP協議
對於協議目前的理解:包裹在一段真實數據前的一些“頭信息”
1》基本介紹:一共5段,組成IP協議。5個32位(4字節),一共20字節
第1&2行:算是第一層吧,包裝了一些基本信息
第3行:加入了傳輸層的控制信息
第4&5行:加入了網絡層的傳輸路徑的信息
2》每段含義:
======1&2======
4位版本:IP協議的版本,IPV4|IPV6對應(4|6)
4位首部長:IP首部長(以4字節爲單位),填5,表示IP長20個字節,+數據組成一個要傳輸的數據
8位TOS:+3位優先權字段(現在已經忽略不用)
+4位TOS字段(最小延時、最大吞吐量,最高可靠性、最小消費)
+1位未用字段
16位總長:(以字節爲單位)填0x0030=48字節(TCP/IP)
+20字節IP協議
+28字節(選項,如果有,第6層)TCP協議
======
16位標識:唯一標識主機發送的每一段數據報
3位標誌:該報文是否分片,後面是否還有分片
13位片偏移:當前分片在用戶數據中的相對偏移量
======1&2======
=======3=======
8位生存時間:被一個路由處理過就會-1,可以有來分辨操作系統,Windows默認填0x80(128),UNIX默認0xff,
所以說Windows經過 128個路由就不行啦
8位協議號:填0x6表示傳輸層是TCP協議(即第六層會要去填寫對應的TCP協議的報文頭)
16位的校驗和:接受方會對報文頭部的每16位進行反碼求和,由於包涵了本16位,所以求出來的和總是定值,
注意:這裏填寫的16位是一個動態變化的值,爲的就是使最後求出來的值是一個定值
=======3=======
======4&5======
32位源IP:本地PC的IP地址
32位目標IP:目標PC的IP地址
IP地址:網絡ID+主機ID
======4&5======
======6&7======
(選項如果有)28字節:由之前的48-20計算而得,用來加入TCP協議的地方
(數據)若干字節:真正要傳送的有效數據
======6&7======
繼續就是要講嵌在第6層的TCP協議的組成
+TCP協議(嵌在IP的第6層,組成TCP/IP報文)
分段敘述:此協議可謂是對傳輸的行爲做出了各種限制和保證
==========創建基礎通路
1》16位源端口號:發送端主機的端口號,爲了目標主機返回數據時可以找到源主機端口
2》16目標端口號:目標機端口號
==========控制數據位置
3》32位序號:在TCP中傳輸數據的記錄單位是字節,他會對要傳送的數據的每一個字節進行編號,這裏存放的是本輪傳送的第一個字節的編號
4》32位確認序號:要求目標機傳送的下一輪數據的第一個字節編號是XX,例如,這裏填 N,則代表源主機確認N-1字節安全發送完畢,現在發送第N字節開始後的數據吧
==========控制數據傳輸行爲
5》4位數據偏移:應用數據距離整個傳送流首的偏移量,其實就是TCP首部的長度這裏填28字節
6》6位保留:留待後用
7》6位標誌:URG(緊急)、ACK(應答)、PSH(推送)、RST(復位)、SYN(同步)、FIN(終止)、理解:覺得是在傳送“命令”
8》16位窗口大小:源主機的接收窗口(接收數據緩存空間)的大小,旨在告訴目標機器,“你傳送數據回來的時候不要超過我的緩存啊”,相當於限定大小
==========小尾巴
9》16位校驗和:報文頭部每16位反碼求和加上校驗位的反碼求和就是定值 啦
10》16位緊急指針:只有在URG被置位(置1)的時候,纔有用
TCP的命令簡單介紹:
URG:緊急標誌位置1有效
ASK:應答置1表答應
PSH:要求接收端接受到數據時,不加入自己的隊列進行處理,直接推送到目標應用進行處理
RST:復位當前的TCP連接
SYN:同步,用來和ASK一起用,SYN=1:ASK=0表示請求連接,SYN=1: ASK=1表示我答應了你的連接
FIN:終止了當前的連接
要不要來看看UDP/IP
自行類推吧,不做介紹了,
只說一點,這裏的16位源端口可用可不用,原因:UDP不需要目標端口反饋信息,只管矇頭發