淺談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協議有一個大致的瞭解,之後我們會陸陸續續介紹給多協議的,敬請期待!