**
一、ip首部:
1、第乙個4位元組(也就是第一行):
(1)版本號(version),4位;用於標識ip協議版本,ipv4是0100,ipv6是0110,也就是二進位制的4和6。
(2)首部長度(internet header length),4位;用於標識首部的長度,單位為4位元組,所以首部長度最大值為:(2^4 - 1) * 4 = 60位元組,但一般只推薦使用20位元組的固定長度。
(3)區分服務(type of service),8位;用於標識ip包的優先順序,但現在並未使用。
(4)總長度(total length),16位;標識ip資料報的總長度,最大為:2^16 -1 = 65535位元組。
2、第二個四位元組:
(1)標識(identification),16位;用於標識ip資料報,如果因為資料鏈路層幀資料段長度限制(也就是mtu,支援的最大傳輸單元),ip資料報需要進行分片傳送,則每個分片的ip資料報標識都是一致的。
(2)標識(flag),3位,但目前只有2位有意義;最低位為mf,mf=1代表後面還有分片的資料報,mf=0代表當前資料報已是最後的資料報。次低位為df,df=1代表不能分片,df=0代表可以分片。
(3)片偏移(fragment offset),13位;代表某個分片在原始資料中的相對位置。
3、第三個四位元組:
(1)生存時間(ttl),8位;以前代表ip資料報最大的生存時間,現在標識ip資料報可以經過的路由器數。
(2)協議(protocol),8位;代表上層傳輸層協議的型別,1代表icmp,2代表igmp,6代表tcp,17代表udp。協議字段指出此資料報攜帶的資料是使用何種協議,以便使目的主機的ip層知道要將資料部分上交給哪個處理過程。
(3)首部檢驗和(header checksum),16位;只檢驗資料報的首部,但不包括資料部分。用於驗證資料完整性,計算方法為,傳送方:首先把ip資料報首部劃分為許多16位字的序列,將校驗和位置零,然後把所有16位字反碼算術運算相加後,將得到的和的反碼寫入檢驗和字段。(分為16位字的序列,求和取反碼寫入檢驗和字段)。接受方:將首部的所有16位字再使用反碼算術運算相加一次,將取得的和取反碼。若首部未發生任何變化,則此結果為0,於是保留這個資料報。否則認為出差錯,並將此資料報丟棄。
二、tcp首部
1、第乙個4位元組:
(1)源埠,16位;傳送資料的源程序埠
(2)目的埠,16位;接收資料的程序埠
2、第二個4位元組與第三個4位元組
(1)序號,32位;代表當前tcp資料段第乙個位元組佔整個位元組流的相對位置;
(2)確認號,32位;代表接收端希望接收的資料序號,為上次接收到資料報的序號+1,當ack標誌位為1時才生效。
3、第四個4位元組:
(1)資料偏移,4位;實際代表tcp首部長度,最大為60位元組。
(2)保留。佔6位,保留為今後使用,但目前應置為0。
(3)6個標誌位,每個標誌位1位;
urg,為緊急序號,urg=1是緊急指標有效;
ack,為確認序號,ack=1時確認號才有效;
psh,指示接收方立即將資料提交給應用層,而不是等待緩衝區滿;
rst,重置連線。當rst=1時,表明tcp連線中出現嚴重差錯(如由於主機崩潰或其他原因),必須釋放連線,然後再重新建立運輸連線。rst置1還用來拒絕乙個非法的報文段或拒絕開啟乙個連線。
syn,為同步標誌,用於資料同步;
fin,為結束序號,用於傳送端提出斷開連線;
(3)視窗值,16位;標識接收方可接受的資料位元組數。明確指出了現在允許對方傳送的資料量。例如,設確認號是701,視窗欄位是1000.這就表明,從701號算起,傳送此報文段的一方還有接受1000個位元組資料(位元組序號是701~1700)的接收快取空間。詳解可參看:
4、第五個4位元組
(1)校驗和,16位;用於檢驗資料完整性。
(2)緊急指標。16位;只有當urg標識位為1時,緊急指標才有效。它指出本報文段中的緊急資料的位元組數(緊急資料的末尾在報文段中的位置)。緊急指標的值與序號的相加值為緊急資料的最後乙個位元組位置。用於傳送緊急資料。
(不固定長度)
選項mss(最大報文段長度、預設536字長)、視窗擴大、時間戳、選擇確認。
填充。
三、udp首部
udp首部比較簡單,看圖即可理解。
IP TCP UDP首部詳解
一 ip首部 二 tcp首部 圖2 1 圖2 216位視窗大小 tcp的流量控制由連線的每一端通過宣告的視窗大小來控制。它表示接收方可接受資料位元組數。視窗大小是乙個16bit欄位,因而視窗大小最大為65535位元組。16位tcp校驗和 校驗和覆蓋了整個tcp報文段包括tcp首部和tcp資料。這是乙...
IP首部詳解
4位版本 4 位首部長度 8 位服務型別 tos 16 位總長度 16 位識別符號 3 位標誌 13位片偏移 8 位生存時間 8 位協議 16位首部檢驗和 32 位源ip位址 32位目的 ip位址 32 位選項 若有 資料 首都長度 ip首部的長度,一般為 20b.版本 ip位址的版本,目前我們使用...
TCP UDP偽首部詳解
最近在讀stevens 的tcp ip詳解,其中介紹到了udp和tcp偽首部但是介紹的不夠詳細,只說是為了udp和tcp校驗和存在的 同時給出了乙個偽首部的圖,是直接加在udp首部前面的,給我的困惑貌似是真實存在的,其實這個圖應該用虛線表示,下面就我的理解,介紹一下偽首部 1.偽首部並非tcp ud...