圖解TCPIP---第四章---IP協議

數據鏈路層的主要作用是在互連同一種數據鏈路的節點之間進行包傳遞
一旦跨越多種數據鏈路 就需要藉助網絡層

主機 配置有IP地址 但是不進行路由控制的設備
路由器 配置有IP地址 具有路由控制能力的設備
節點 主機和路由器的統稱

IP大致分爲三大作用模塊

  • IP尋址
  • 路由(到最終節點爲止的轉發)
  • IP分包與分組

網絡層對數據鏈路層的某些特性進行抽象
比如數據鏈路的類型對IP地址形式就透明

MAC是同一個數據鏈路中的不同站的識別碼
不同數據鏈路通過IP尋址

不同數據鏈路有一個最大的區別 各自的最大傳輸單元不同 Maximum Transmission Unit
MTU在以太網是1500字節 FDDI是4352字節 ATM則爲9180字節
IP上層可能會要求傳送比這些MTU更多字節的數據 爲了解決這個問題 IP進行分片處理 將較大的IP包分爲多個較小的IP包 然後在對端接收時進行組合傳遞給上一層
即在IP層上看可以忽略數據鏈路的MTU

IP面向無連接 不保證可靠性 又上層的TCP提供可靠傳輸

IP地址

IPv4 32位
IP地址由 網絡標識(網絡號) 與 主機標識(主機地址) 兩個部分組成

  • IP地址分類 根據IP地址中的第一位到第四位的比特列
    • A類地址
      • 0開頭 1-8位時網絡號 0.0.0.0-127.0.0.0 表示A類
    • B類地址
      • 10開頭 1-16位是網絡號 128.0.0.0-191.255.0.0 表示B類
    • C類地址
      • 110開頭 1-24位是網絡號 192.0.0.0-223.255.255.0 表示C類
    • D類地址
      • 1110開頭 1-32位是網絡號 224.0.0.0-239.255.255.255 表示D類
      • D類沒有主機標識 通常用於多播
  • IP地址分配注意事項 用比特位表示主機地址時 不可以全部爲0或全部爲1
    • 全部爲0通常表示地址不可獲取
    • 全部爲1通常表示廣播地址

廣播地址

廣播地址用於在同一個鏈路中互相連接的主機之間發送數據包 將IP地址中的主機地址部分全部設置爲1就成爲了廣播地址

  • 本地廣播
    • 在本網絡內的廣播叫本地廣播 例如在網絡地址爲192.168.0.0/24的情況下 廣播地址爲192.168.0.255 這個廣播地址的IP包會被路由器屏蔽不會到達其他鏈路
  • 直接廣播
    • 在不同網絡之間的廣播叫做直接廣播 比如192.168.0.0/24的主機向192.168.1.255/24的目標地址發送IP包 那麼收到這個包的路由器會將這個數據包轉發給192.168.1.0/24 使得所有的192.168.1.1~192.168.1.254主機都能收到這個包
  • 直接廣播具有一定的安全問題 大多數路由器會設置爲不轉發

IP多播

廣播無法穿透路由器 想給其他網段發送同樣的廣播包就做不到
但是多播可以穿透路由器 如下圖
多播使用的是D類地址 IP地址分類也有說明

  • D類224.0.0.0-239.255.255.255都是多播地址
  • 224.0.0.0-239.0.0.255 範圍內不需要路由控制 同一個鏈路內也能實現多播
  • 在上述範圍之外設置多播地址會給全網所有組內成員發送多播包
  • 對於多播 所有的主機(路由器以外的主機和終端)都必須屬於224.0.0.1的組 所有的路由器必須屬於224.0.0.2的組

在這裏插入圖片描述

子網掩碼

ABC類的地址浪費嚴重 現在使用子網掩碼細分出比ABC類更小粒度的網絡
實際是將ABC的主機地址 部分 用作子網地址 這樣可以將原網絡分割多個物理網絡

0 10 127 開頭的A類地址都是具有特殊意義的保留地址

用來處理IP用盡的手段

  • 私有網絡的IP地址 原本是不接入互聯網的 後來可以通過NAT連接網絡

    • 10.0.0.1~10.255.255.255 A類 10/8
    • 172.16.0.0~172.31.255.255 B類 172.16/12
    • 192.168.0.0~192.168.255.255 C類 192.168/16 私有IP很像路由器的網址
  • 全局IP地址 基本需要保持互聯網唯一

    • 使用任播時 多臺主機或路由器可以配置一個IP
  • CIDR 無類型域間選路 放棄IP地址的分類 採用任意長度分割IP地址的網絡號和主機號 固定長度的掩碼機制

  • VLSM 可變長的掩碼

  • NAT 轉換私有IP和全局IP

在這裏插入圖片描述

  • 代理服務器
  • 等等…

路由控制

實現IP通信的主機和路由器都必須有一張路由控制表

  • 手動設置 靜態路由控制
  • 自動交換信息學習刷新 動態路由控制
    • 爲了讓動態路由及時刷新路由表 網絡上互聯的路由器必須設置好路由協議來交換信息

在這裏插入圖片描述

IP協議本身沒有定義製作路由控制表的協議 即IP沒有製作路由控制表的協議
路由控制表是由一個路由協議的協議製作而成的

  • 默認路由 0.0.0.0/0或default 指路由表中的任何一個地址都可以與之匹配的記錄
  • 主機路由 IP地址/32 意味着基於主機的網卡上配置的IP地址本身 而不是基於該地址的網絡地址部分進行路由 多用於不希望通過網絡地址路由的情況
  • 環回地址 同一臺計算機程序之間進行網絡通信時使用的默認地址 127.0.0.1 該地址有一個同意義的 localhost 的主機名 使用這個IP或者主機名時數據包不會發向網絡

路由控制表的聚合

在這裏插入圖片描述

IP分割處理與再構成處理

  • 路由器進行分片處理 路由器只要認爲有必要就會週而復始的分片
  • 目標主機再構成 路由器不會重組 大致原因如下
    • 無法保證IP數據包報是否經由同一個路徑發送
    • 分片可能丟失或無法到達
    • 經過下一站可能會再次分片
    • 如果重組工作交給路由器會給路由器帶來多餘負擔 也會降低網絡傳送效率

路徑MTU發現

分片機制也有不足之處 首先分片會增加路由器的負擔 隨着對路由器的性能以及其他要求越來越高 是不希望路由器進行IP數據包的分片處理的

路徑MTU是指從發送端主機到接收端主機之間不需要分片的最大MTU的大小
然後發送主機就可以按照路MTU的大小自行將數據報分片發送

MTU的工作原理就如同下兩圖就不在詳細描述

在這裏插入圖片描述

在這裏插入圖片描述

IPv6

128bit 一般寫成8個16位字節

  • IP地址的擴大與路由控制表的聚合
  • 性能提升
  • 支持即插即用 其實沒有HDCP服務器也可以實現自動分配IP
  • 採用認證和加密功能 IPsec
  • 多播 MobileIP成爲擴展功能

IPv6類似IPv4 也是通過IP地址的前幾位標識IP地址的種類

  • 使用一種全局的單播地址 互聯網中的唯一一個地址 不需要分配IP
  • 限制型網絡 即那些不與互聯網接入的私有網絡 可以使用唯一本地地址
    • 該地址根據一定算法生成隨機數並且融合到地址當中可以像IPv4的私有地址一樣使用
  • 在不使用路由器或者同一個以太網網段內進行通信時可以使用鏈路本地單播地址
  • 在構建允許多種類型的IP地址的網絡時 在同一個鏈路上也可以使用全局單播地址以及本地唯一地址進行通信
  • 在IPv6的環境下可以同時將上述這些IP全部配置到同一個NIC(網卡)上 按需靈活使用

在這裏插入圖片描述

全局單播地址

64位網絡標識 64位主機號
通常接口ID保存64位MAC地址的值 但是這樣會暴漏信息 不太安全 所以有的接口ID會設置爲一個與MAC無關的臨時地址 這個臨時地址通常隨機產生 哈 這樣從IPv6查看定位設備就沒那麼容易拉拉

在這裏插入圖片描述

鏈路本地單播地址

在通過一個數據鏈路內唯一的地址 用於不經過路由器在同一個鏈路中的通信
接口ID通常保存MAC地址

在這裏插入圖片描述

唯一本地地址

不進行互聯網通信時的地址
但是也可以與IPv4類似通過NAT或網關(代理)進行聯網
雖然唯一本地地址不會與互聯網連接 但是也會盡可能生成一個唯一的全局ID

在這裏插入圖片描述

IPv6的分段處理

IPv6的分段處理只在作爲起點的發送端主機上進行路由器不參與


IPv4首部

在這裏插入圖片描述
版本 version P147 可選IP IPv6 PIP 等等
首部長度IHL Internet Header Length P148 單位是4個字節 看圖可以看出 沒有可選字段時 大小應該是5 20個字節
區分服務TOS Type Of Service P149 表示服務質量 這個字段幾乎沒有使用 也有將這個區分爲DSCP和ECN字段的
總長度 Total Length P150 IP首部與數據結合的總字節數 這個字段長16比特 因此最大IP包65535字節
標識 Identification P150 用於分片重組
標誌 Flags P150 標識被分片的信息 參考如下
在這裏插入圖片描述
片偏移 FO Fragment Offset P151 單位爲8字節 最大剛好爲8*8192=65535個字節(上面IP包的總長度最大也爲65535)
生存時間 TTL Time To Live P151 可以經過多少個路由器 經過一個TTL減1 爲0時拋棄該數據包
協議 Protocol P151上層協議類型
首部校驗和 Header Checksum P152 該字段只校驗數據報的首部 不校驗數據部分
源地址 目標地址 對應的IP地址 P152
可選項 Options P152 通常實驗室或診斷時纔用到

  • 安全級別
  • 源路徑
  • 路徑記錄
  • 時間戳

填充 Padding P152 有可選項的時候首部長度可能不是32比特的整數倍 向字段填充0調整爲32比特的整數被


IPv6首部

在這裏插入圖片描述

與IPv4相比省略了首部校驗和字段 路由器不需要計算校驗和 提高了包的轉發效率 TCP和UDP在做校驗和計算的時候會使用僞首部 所以可以驗證IP地址或協議是否正確

  • 版本 Version IPv6的版本號爲6 所以這個字段的值就是6 哈哈
  • 通信量類 Traffic Class 與 IPv4 的 TOS 類似
  • 流標號 Flow Lable 準備用於服務質量 Quality Of Service 控制 只有流標號和源地址目標地址完全一致時才認爲是一個流 可理解爲一種類似索引index的作用 當然還有一些其他功能
  • 有效荷載長度 Payload Length
    • IPv4的Total Length指的時首部和數據一起的長度
    • 有效荷載長度不包括首部 只表示數據部分的長度
    • 有效荷載長度包括可選項 因爲可選項是指連接IPv6首部的數據
  • 下一個首部 Next Header 類似與IPv4的協議字段
    • 在有擴展首部的情況下 該字段表示後面第一個擴展首部的協議類型
  • 條數顯示 Hop Limit 類似於IPv4的TTL
  • 源地址 目標地址 128個bit的IPv6地址

IPv6k擴展首部

  • IPv6首部長度固定
  • 擴展首部通常介於IPv6首部和TCP/UDP首部中間
  • IPv6沒有標識以及標誌字段 需要對IP數據包分片時可以使用擴展首部 如下圖

在這裏插入圖片描述

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