IP協議詳解

續接上篇:計算機網絡概述
續接下篇:TCP協議詳解

4、IP協議概述

IP協議是TCP/IP協議的核心,所有的TCP,UDP,IMCP,IGMP的數據都以IP數據格式傳輸。要注意的是,IP提供不可靠、無連接的數據傳送,賴其他層的協議進行差錯控制。不可靠指的是IP數據報不保證能成功的到達目的地,如果出現錯誤則選擇丟棄該數據,然後發送ICMP消息報給信源端。無連接指的是IP不提供任何後續數據報的狀態信息,每個數據報處理都是獨立的。如果一個信源發送了連續的兩個數據報,每個數據報選擇獨立的路由,兩個數據可能不同時到達。

4.1 IP協議消息頭

這裏寫圖片描述
(1) 版本號:IP協議的版本。對於IPv4來說值是4
(2) 頭部長度:4位最大爲0xF,注意該字段表示單位是字(4字節)
(3) 服務類型(Type Of Service,TOS):3位優先權字段(現已被忽略) + 4位TOS字段 + 1位保留字段(須爲0)。4位TOS字段分別表示最小延時、最大吞吐量、最高可靠性、最小費用,其中最多有一個能置爲1。應用程序根據實際需要來設置 TOS值,如ssh和telnet這樣的登錄程序需要的是最小延時的服務,文件傳輸ftp需要的是最大吞吐量的服務。
(4) 總長度: 指整個IP數據報的長度,單位爲字節,即IP數據報的最大長度爲65535字節(2的16次方)。利用首部長度字段和總長度字段,就可以知道IP數據報中的數據內容的啓始位置和長度。
(5) 標識:唯一地標識主機發送的每一個數據報,其初始值是隨機的,每發送一個數據報其值就加1。同一個數據報的所有分片都具有相同的標識值
(6) 標誌: 位1保留,位2表禁止分片(DF),若設置了此位,IP模塊將不對數據報進行分片,在此情況下若IP數據報超過MTU,IP模塊將丟棄數據報並返回一個ICMP差錯報文;位3標識更多分片(MF),除了數據報的最後一個分片,其他分片都要把它設置爲1
(7) 位偏移:分片相對原始IP數據報數據部分的偏移。實際的偏移值爲該值左移3位後得到的,所以除了最後一個IP數據報分片外,每個IP分片的數據部分的長度都必須是8的整數倍

(8) 生存時間(TTL)::數據報到達目的地之前允許經過的路由器跳數。TTL值被髮送端設置,常設置爲64。數據報在轉發過程中每經過一個路由該值就被路由器減1.當TTL值爲0時,路由器就將該數據包丟棄,並向源端發送一個ICMP差錯報文。
(9) 協議: 區分IP協議上的上層協議。在Linux系統的/etc/protocols文件中定義了所有上層協議對應的協議字段,ICMP爲1,TCP爲6,UDP爲17
(10) 首部校驗和: 由發送端填充接收端對其使用CRC算法校驗,檢查IP數據報頭部在傳輸過程中是否損壞
(11) 源IP地址和目的IP地址: 表示數據報的發送端和接收端。一般情況下這兩個地址在整個數據報傳遞過程中保持不變,不論中間經過多少個路由器
(12) 選項:可變長的可選信息,最多包含40字節。選項字段很少被使用。可用的IP可選項有:
  a. 記錄路由: 記錄數據包途徑的所有路由的IP,這樣可以追蹤數據包的傳遞路徑
  b. 時間戳: 記錄每個路由器數據報被轉發的時間或者時間與IP地址對,這樣就可以測量途徑路由之間數據報的傳輸的時間
  c. 鬆散路由選擇: 指定路由器的IP地址列表數據發送過程中必須經過所有的路由器
  d. 嚴格路由選擇: 數據包只能經過被指定的IP地址列表的路由器
  e. 上層協議(如TCP/UDP)的頭部信息

4.2 IP路由選擇

IP層在內存中有一個路由表,當收到一份數據報時並進行發送時,它都要對該表進行搜索一次,當數據報來自某個網絡接口時,IP首先檢查目的IP地址是否爲本機IP地址之一或者IP廣播地址。如果是這樣,數據就被送到IP首部協議字段所指的協議模塊進行處理。如果不是,有路由功能時就進行轉發,要麼就丟棄。

4.2 IP地址介紹

1)IP地址是32位二進制數,每八個爲一段,共四段,10000011.01101011.00010000.11001000,轉換成十進制就是130.107.16.200
2)IP地址由網絡ID和主機ID組成,網絡ID表明所在網絡的編號,主機ID表明計算機的編號。
3)IP地址分爲A、B、C、D、E五類
這裏寫圖片描述
也就是說,分爲以下幾類:
A: 0.0.0.0-127.255.255,其中段0和127不可用
B: 128.0.0.0-191.255.255.255
C: 192.0.0.0-223.255.255.255
D: 224.0.0.0-239.255.255.255
E: 240.0.0.0-255.255.255.255,其中段255不可用

這其中除了段0和段127之外,還有一些IP地址因爲有其他的用途,是不可以用作普通IP的。還有一部分被用作私有IP地址。
這裏寫圖片描述

4.2 子網掩碼

計算機聯網時必須有公有IP地址,除了IP地址外主機還需要知道多少比特用於子網掩碼,以及多少用於主機號,子網掩碼是一個32bit值,值爲1的比特留給網絡號和子網號,爲0的比特留給主機號。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分。

4.3 域名地址(DNS)

由解析器和域名服務器組成。域名服務器是指保存有該網絡中所有主機域名和對應IP地址,並具有將域名轉換成IP地址功能的服務器。域名解析是指將域名映射爲IP地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章