談談網絡協議 – 網絡層( Network)


網絡層( Network)

  • 網絡層數據包(IP數據包,Packet)由首部、數據2部分組成
    • 數據:**很多時候 **是由傳輸層傳遞下來的數據段(Segment)
      • ARP、ICMP 是直接在網絡層生成的,不是由傳輸層傳遞下來的

image-20210315142739244

網絡層首部

版本、首部長度、區分服務

  • 版本(Version)

    • 占4位
    • 0b0100:IPv4
    • 0b0110:IPv6
  • 首部長度(Header Length)

    • 占4位,二進制乘以4才是最終長度
    • 0b0101:20(最小值)
    • 0b1111:60(最大值)
  • 區分服務(Differentiated Services Field)

    • 占8位

    • 可以用於提高網絡的服務質量(QoS,Quality of Service)

    • 可實現優先傳輸

總長度

  • 總長度(Total Length)
    • 占16位
    • 首部 + 數據的長度之和,最大值是65535

image-20210315143550675

  • 由於幀的數據不能超過1500字節,所以過大的IP數據包,需要分成片(fragments)傳輸給數據鏈路層
    • 每一片都有自己的網絡層首部(IP首部)

標識、標志

  • 標識(Identification)
    • 占16位
    • 數據包的ID,當數據包過大進行分片時,同一個數據包的所有片的標識都是一樣的
    • 有一個計數器專門管理數據包的ID,每發出一個數據包,ID就加1
  • 標志(Flags)
    • 占3位
    • 第1位(Reserved Bit):保留
    • 第2位(Don't Fragment):1代表不允許分片,0代表允許分片
    • 第3位(More Fragments):1代表還有更多片,0代表是最后一片,沒有更多片

片偏移

  • 片偏移(Fragment Offset) 當數據包過大時,分包后,用來標識當前數據是哪個位置的
    • 占13位
    • 片偏移乘以8字節偏移 (為了能保存更多的數值,才只保存除以8之后的數值)
    • 每一片的長度一定是8的整數倍
    • 片偏移值為:上一個片在整個包中的前面偏移值 + 總長度

以下是 3800字節的數據包,拆成3片

image-20210315150030858

ping - 高級用法

  • ping /?

    • 查看ping的用法
  • ping ip地址 -l 數據包大小

    • 發送指定大小的數據包
  • ping ip地址 -f

    • 不允許網絡層分片
  • ping ip地址 -i TTL

    • 設置TTL的值
  • 通過tracert、pathping命令,可以跟蹤數據包經過了哪些路由器

案例:ping ke.qq.com -l 4000 ,發送一個4000字節的包,拆分后的各項值

image-20210315150803017

  • 片1

    • 總長度:1500
    • 首部:20
    • 數據長度:1480
    • 偏移值:0
  • 片2

    • 其它同上
    • 偏移值:1480
      • 偏移值表示的是在數據中的偏移值,不包括首部
  • 片3

    • 其它同上

    • 數據長度:1068

    • 偏移值:2960

抓包注意點,如果包被分片后,當包沒有傳輸到最后一個時,軟件是不知道是什么協議的,如下圖,前2個包軟件當成了IPV4的協議,只有最后一個包也接收到的時候才能真正解析出協議是ICMP的

image-20210315152843767

生存時間

  • 生存時間(Time To Live,TTL)
    • 占8位
    • 每個路由器在轉發之前會將TTL減1,一旦發現TTL減為0,路由器會返回錯誤報告
    • 觀察使用ping命令后的TTL,能夠推測出對方的操作系統、中間經過了多少個路由器

image-20210315153326863

協議、首部校驗和

  • 協議(Protocol)
    • 8位
    • 表明所封裝的數據是使用了什么協議

image-20210315153458916

  • 首部校驗和(Header Checksum)
    • 用於檢查首部是否有錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM