網絡學習之旅(ip1.0)

傳輸層主要是提供源,目的端口。
網絡層則負責提供源,目的IP地址。
IP層主要有ICMP協議,IGMP協議,ARP協議(有人將這個歸於數據鏈路層)
TCP模塊在執行連接,收發,斷開等操作時,都需要委託IP模塊將數據包封裝成以太網包發送出去。
可以這樣理解,網絡層就是將數據包發送給具體的主機,當然這中間還有轉發節點的貢獻,否則一個包不可能由內網向整個互聯網傳輸。
然後數據包到達具體某一臺主機後就由TCP傳輸模塊的對應端口將數據包給具體的高層服務。

先說說數據包的基本知識。

包是由包頭和數據兩部分組成,頭部主要含有一些目的地址等身份說明的信息,數據部分就是我們具體的內容。
發送方的網絡設備負責創建數據包,創建包的過程就是生成含有控制信息的頭部,然後再加上數據部分。接下來數據包就會發往就近的網絡轉發設備或者中間節點(路由器),然後路由器裏由路由表,按照目的IP查找相應的信息,選擇是發往對應的下一跳路由器或者主機。(當然這個路由選擇爲了提高網絡之間的效率,也會有一定的算法,這裏姑且不考慮)。如果要發送給子網的主機,這就需要集線器來起作用了。 可以理解爲路由器就是將一個個局域網連接起來構成整個大互聯網,而集線器就是子網內部之前傳輸的媒介。

IP包傳輸遵循IP規則,路由器就是按照IP規則傳輸的設備; 而集線器是按照以太網的規則進行輸出的設備。
IP協議根據目的地址判斷下一個IP地址轉發設備的位置
子網中的以太網協議將包傳輸到下一個轉發設備。

以太網數據包的組成:
在這裏插入圖片描述

嚴格說IP數據包是整個互聯網最重要的了,它既要連通TCP和MAC物理網卡,
還要不但能發往全世界並且高效率的發送和接收數據包。
這種情況下有兩張表特別重要: 路由表,ARP表。
要把IP層將清楚勢必要將這部分搞懂。

說了那麼多,可能還是不理解數據包怎麼發送出去的,看張圖:在這裏插入圖片描述
IP包收發操作是那麼簡單嗎?
包收發操作的起點就是TCP模塊“委託” IP模塊發送包操作,這個委託的過程就是TCP模塊在數據塊的前面加上TCP頭部,然後整個傳遞給IP模塊,這部分就是網絡包的內容。同時,TCP模塊還必須指出通信對象的IP地址,將什麼發給誰。收到委託後,IP模塊就會將包的內容當作一整塊數據,在前面加上包含控制信息的頭部。MAC頭部包含通過以太網的局域網傳輸至最近的路由器所需的控制信息。

IP模塊複製添加的:
MAC頭部:以太網用的頭部,包含MAC地址
IP頭部:IP用的頭部,包含IP地址

接下來將包發給物理網卡(有對應的驅動程序),網卡將這些數據包(01組成)按照網線或者光纖以光信號,電信號發出去。

這個過程中IP模塊對所有包的收發操作都是相同的,不論是控制包還是數據包。

IP頭部格式:(20+字節)
版本號:               4bit長度,IP協議版本
頭部長度:           4bit IP頭部的長度。可選字段可導致頭部長度變化,因此這裏需指出。
服務類型:           8bit 表示數據包傳輸的優先級。
總長度:              16bit 表示IP消息的總長度。 最大爲65535字節
ID編號:               16bit 用於識別的編號,一般爲包的序列號(分片的包具有相同的ID號)
標誌FLAG             3bit 兩個Bit有效,代表是否允許分片,以及當前是否爲分片包
分片偏移量:       13Bit  表示當前包的內容爲整個IP包消息的第幾個字節開始的內容
生存時間TTL:    8bit  包的生存時間,當減少到0之後這個包就要丟棄。
協議號:              8bit 協議號表示協議類型(H)
                                TCP: 06
                                UDP:17
                                ICMP: 01
 頭部校驗和:      16bit 用於檢查錯誤,現在已不使用。
 發送方的IP地址:  32Bit  (ipv4爲 32位) 
 接收方IP地址:      32bit                            
 可選字段:         可變長度(用於記錄其他控制信息)
    

發送方的IP地址一般情況下填寫發送發主機的IP地址; 但如果一臺主機有多個IP地址,IP其實是分配給網卡的,例如scapy模塊構造數據包的時候,IP()就要指定具體哪一塊網卡設備。 其實如何選擇網卡,就和路由表一樣的。
windows cmd下 route print 查看

C:\WINDOWS\system32>route print
===========================================================================
接口列表
  5...02 00 4c 4f 4f 50 ......Npcap Loopback Adapter
 24...d0 7e 35 2d e3 80 ......Intel(R) Dual Band Wireless-AC 3160
 25...d0 7e 35 2d e3 81 ......Microsoft Wi-Fi Direct Virtual Adapter
 23...d2 7e 35 2d e3 80 ......Microsoft Wi-Fi Direct Virtual Adapter #2
 17...68 f7 28 30 5c ab ......Realtek PCIe GBE Family Controller
 18...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
 20...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
 69...........................Dr.COM
 22...d2 7e 35 2d e3 81 ......Microsoft Hosted Network Virtual Adapter
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 路由表
===========================================================================
活動路由:
網絡目標        網絡掩碼          網關       接口   躍點數
          0.0.0.0          0.0.0.0       172.20.0.1   172.20.103.191   4260
          0.0.0.0          0.0.0.0            在鏈路上      172.19.41.99     36
        127.0.0.0        255.0.0.0            在鏈路上         127.0.0.1   4556
        127.0.0.1  255.255.255.255            在鏈路上         127.0.0.1   4556
  127.255.255.255  255.255.255.255            在鏈路上         127.0.0.1   4556
      169.254.0.0      255.255.0.0            在鏈路上    169.254.137.28   4506
    169.254.105.0    255.255.255.0            在鏈路上     169.254.105.1   4516
    169.254.105.1  255.255.255.255            在鏈路上     169.254.105.1   4516
  169.254.105.255  255.255.255.255            在鏈路上     169.254.105.1   4516
   169.254.137.28  255.255.255.255            在鏈路上    169.254.137.28   4506
  169.254.255.255  255.255.255.255            在鏈路上    169.254.137.28   4506
     172.19.41.99  255.255.255.255            在鏈路上      172.19.41.99    291
       172.20.0.0      255.255.0.0            在鏈路上    172.20.103.191   4516
   172.20.103.191  255.255.255.255            在鏈路上    172.20.103.191   4516
   172.20.255.255  255.255.255.255            在鏈路上    172.20.103.191   4516
      192.168.2.0    255.255.255.0            在鏈路上      192.168.2.58   4516
     192.168.2.58  255.255.255.255            在鏈路上      192.168.2.58   4516
    192.168.2.255  255.255.255.255            在鏈路上      192.168.2.58   4516
    192.168.155.0    255.255.255.0            在鏈路上     192.168.155.1   4536
    192.168.155.1  255.255.255.255            在鏈路上     192.168.155.1   4536
  192.168.155.255  255.255.255.255            在鏈路上     192.168.155.1   4536
        224.0.0.0        240.0.0.0            在鏈路上         127.0.0.1   4556
        224.0.0.0        240.0.0.0            在鏈路上    172.20.103.191   4516
        224.0.0.0        240.0.0.0            在鏈路上      192.168.2.58   4516
        224.0.0.0        240.0.0.0            在鏈路上    169.254.137.28   4506
        224.0.0.0        240.0.0.0            在鏈路上     169.254.105.1   4516
        224.0.0.0        240.0.0.0            在鏈路上     192.168.155.1   4536
        224.0.0.0        240.0.0.0            在鏈路上      172.19.41.99     36
  255.255.255.255  255.255.255.255            在鏈路上         127.0.0.1   4556
  255.255.255.255  255.255.255.255            在鏈路上    172.20.103.191   4516
  255.255.255.255  255.255.255.255            在鏈路上      192.168.2.58   4516
  255.255.255.255  255.255.255.255            在鏈路上    169.254.137.28   4506
  255.255.255.255  255.255.255.255            在鏈路上     169.254.105.1   4516
  255.255.255.255  255.255.255.255            在鏈路上     192.168.155.1   4536
  255.255.255.255  255.255.255.255            在鏈路上      172.19.41.99    291
===========================================================================

抓包分析IP包:
在這裏插入圖片描述
IP模塊後面還有如何通過網卡發出的? 下篇再說。

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