1. 程式人生 > >淺談TCP/IP協議棧(四)IP協議解析

淺談TCP/IP協議棧(四)IP協議解析

附上部落格連結,歡迎大家前來交流學習!
通過之前的網路層基礎知識,IP地址以及路由器的簡介,大家應該對於TCP/IP有一個大致的瞭解,在腦海裡應該對於網路的幾個基礎概念有個大概的瞭解,簡單點說整個協議棧就是在做一件事,規定網路報文(網路傳輸中的資料報)的傳送和接收,而整個協議棧內的協議,也是可以分為之前介紹過的鏈路層-》網路層-》傳輸層-》應用層,在這每一層中都有很多不同的協議,但是最常用的協議,每一層就是一到兩種,所以想學協議,先從每一層最常見,最常用的開始學起:
鏈路層——乙太網、VLAN
網路層——IP協議
傳輸層——TCP/UDP協議
應用層——HTTP協議
上面的幾種協議,如果都能熟練掌握,那基本上就是入門並且偏上的水平了,所以接下來我們就逐一介紹各個協議。
本節先介紹網路層中的IP協議,IP協議是整個網路中最為核心的協議之一。我們先看一下IP協議的協議頭格式,也就是所謂的IP首部格式,如下:
圖片描述

上面就是IP報文的模板,其中IP首部一般為20位元組,也就是圖中的第1行到第5行,第6行為可選欄位,後續的就是報文所攜帶的資料。我們重點介紹IP首部,可以看到,每一行是4個位元組,也就是32位,而對於每一行我們又根據位數分為不同的欄位,先來看看每個欄位具體的含義:
4位版本號:取值為4時代表IPV4協議,取值為6時代表IPV6協議
4位首部長度:單位是4位元組,一般取值為5
8位ToS欄位:這個欄位比較特殊,它相當於是報文的優先順序或者是報文的服務型別,用來區分報文的業務型別,對於裝置做QoS有著重大的意義。
16位總長度:代表這一個IP報文總的長度,後面我們會介紹一個MTU時會介紹該欄位。
16位標示符:用來唯一標記這一份IP報文
8位生存週期TTL欄位:報文的生存週期,報文每經過一次轉發,該欄位值減1,當減為0時,丟棄該報文。
8位協議:代表著這份IP報文承載著何種上層傳輸協議或者網路協議,常見的取值與對應關係如下:
1——ICMP協議
2——IGMP協議
6——TCP協議
17——UDP協議
88——IGRP協議
16位首部校驗和:用於檢驗收到的報文是否有差錯。
32位源IP地址:傳送方IP地址
32位目的IP地址:接收方IP地址
介紹完IP報文的格式以後,我們再來說一下IP報文的特點,其主要特點有以下幾點:
1、IP報文具有不可靠性,即不能傳送方傳送報文後,不保證接收方一定能收到該報文。2
2、IP報文的不保序性,既然IP報文是不靠靠的,那相應的,它也不保證傳送出的報文的順序性,也許發包順序是1、2、3,但是收包順序可能就是3、2、1。
3、IP報文的分片,若傳送報文資料過大,則涉及到報文分片。

綜上所述,我們對IP協議有一個大致的瞭解,之後我們會陸陸續續介紹給多協議的,敬請期待!