一----IP簡介
1---IP地址簡介:Internet Protocol Address-IP網際協議地址,常讀寫為IP,有IPV4,IPV6(現在的主流依然是IP v4)
所有的IP地址都由國際組織NIC(Network Information Center)負責統一分配,目前全世界共有三個這樣的網絡信息中心。
2---IP地址的組成:
(1)---長度:32bit(也說32位,4字節=4B=32b),一共有2^32個IPV-4地址,
(2)---寫法:“4組點分十進制樹”--意思將一個32位的IP地址分為4段,每段由2進制轉換為10進制的樹來進行表示,每段數字范圍為0-255
(3)---組成:一個IP地址由網絡號和主機號組成。
a:網絡號:同一網段內的IP地址的我網絡號是相同的,通過網絡號來區分主機之間是不是在邏輯上屬于同一網絡。
b:主機號:同一網段內主機部分不同時重復出現,通過主機部分來標識車主本主機在這個網絡內的位置。
二-----IP報頭詳解
IP報頭大小為固定20字節(20B*8=160bit),總共由12部分組成。
1- -version---------版本(占4b,指IP協議的版本)。
2- -Header Length---頭部長度。(頭部長度是指IP報頭的總長度,因為有Option可選部分,通常為20字節,在20--60字節)。
該字段單位為32位字(1個32位字為4字節),因此當ip報頭長度為1111時是最大60字節;
IP報頭長度不是4字節的整數倍是,就需要對填充域進行填充;
常用IP報頭長度為20字節---顯示為1010。
3-----Differentiated Services Field(type of service)(占8b)--TOS,服務類型。用來指定特殊的報文處理方式,又劃分為IP precedenc和D/T/R和reserve保留字段,RFC2474的tos取消了ip precedence字段而使用了DSCP,給QoS用來打標簽。
一般情況下不使用這個字段。
4--Total Length----總長度(占16b)
標示此IP報頭和數據的之和的總長度。
總長度16位,一個數據最大長度65535字節;
鏈路只允許1500字節,超過的話需要進行MTU分片。
一個數據包由IP報頭和數據兩部分組成,而IP報頭為20---60字節,所以不會有一個數據包里純數據超過1480字節的。
5- -Identification----ID標識符(占16b)
與標記字段和偏移字段用于IP報文分片。
原始報文大小超過MTU(<1480B)就必須將原始數據進行分片,每個分片小于MTU
對同一原始文件被分片的報文打上相同的標記,也用來判斷流量是否來于同一主機。
IP軟件在存儲器中維持一個計數器沒生產一個數據包,計數器就加1,并賦予標識字段。
數據報文進行分片處理后每個分片的標識值都與原數據包的標識值相同,接收端具有同標識值的分片就能最終正確重組為原數據。
Idertification(標識字段):
源站沒發送一個分組,標識值+1
(源IP地址,標識)------>全網唯一的分組標識。
6- -Flag----標記(占3b)
占3位,目前只有2位具有意義;
第一位沒有被使用
第二位D時不分片為(DF),當DF位置為1時表示路由器不能對報文進行分片處理。
第三位M--More fragment---多分片(MF)
當路由器對報文進行分片時,除了最后一個分片的MF位設置為0外,其他所有分片MF位置為1,以便接收者直到收到MF位為0的分片為止。
7- -Fragmentation offset----分片偏移(13b)
標識分片在分組中的位置。
片偏移以8個字節為偏移單位,分片的長度為8字節的整數倍;
以太網最大幀長為1518B,IP報文1500B(三層)+幀頭18B(二層)。
注意:
MTU不是固定1500,這要取決現場物理環境;
MTU不包含幀頭幀尾。
8- -Time to live--TTL----生存時間(8b)
跳數大小,即數據包能傳多少跳,
不同操作系統TTL的默認最大值會有所不同(linux-255;win98--225;win7/8/10--64);
表示數據包在網絡中的壽命(最初以秒為單位,現在以跳數為單位,最大225);
分組壽命,防止路由成環時IP數據被無限轉發;
源和目的路由器之間的路由數量(跳數);
路由設備每此轉發將TTL值減1,TTL為0時丟棄該分組。
9- -Protocol----協議(8b)
標識數據攜帶的數據是何種協議,標識傳輸層地址或協議號
如1代表ICMP,6代表TCP,17代表UDP
10- -Header checksum----報頭校驗和(16b)
用于校驗檢查IP報頭是否有出入。
只校驗IP報頭部,數據部分由高層協議校驗(TCP頭的校驗字段包含IP頭和數據的校驗)
無需重復校驗數據部分;
縮短路由器轉發分組時的處理時間,數據部分由終端用高層協議校驗。
1- 發送方先把校驗和字段置為0,對首部中沒個16bit(切割多個16b)進行二進制反碼求和,結果存在校驗和字段中。
2- 收到一份IP數據包后同樣對首部中每個16b進行二進制碼反求和,接收方計算中包含了發送方存在的首部校驗和。
3- 如果傳輸過程無錯誤,接收方結算結果全為1,傳輸中出現錯誤或數據丟失校驗和結果為非全1,接受者第丟棄校驗未通過數據。
4- 不生成錯誤報文,由上層發現丟失數據進行重傳。
11- -source ip address----源IP地址(32b)
此數據發起者的IP地址。
12- -Destination ip address----目的IP地址(32b)
此數據的接收者IP地址。
13- -Option----可選字段(0--40B)
Option字段很少使用,用于控制,轉發要求,測試等。