LWIP學習筆記3——IP協議

7 IP協議

IP 協議是一種無連接的不可靠數據報交付協議,協議本身不提供任何的錯誤檢查與恢復機制。它是整個TCP/IP 協議棧的核心協議,上層協議都要依賴 IP 協議提供的服務, IP 協議負責將數據報從源主機發送到目標主機,通過 IP 地址作爲唯一識別碼。

7.1 IP 地址

IP 地址劃分爲 5 大類,分別爲 A、 B、 C、 D、 E 五類,每一類地址都覺定了其中 IP 地址的一部分
組成。
在這裏插入圖片描述
在這裏插入圖片描述
受限廣播地址:
限廣播地址用於定義整個互聯網, 如果設備想使IP 數據報被整個網絡所接收,就發送這個目的地址全爲 1 的廣播包,但這樣會給整個互聯網帶來災難性的負擔, 所以在任何情況下,路由器都會禁止轉發目的地址爲
255.255.255.255 的廣播數據包, 因此這樣的數據包僅會出現在本地網絡中(局域網) ,255.255.255.255 這個地址指本網段內的所有主機。
直接廣播地址:
受限廣播地址是網絡號與主機號都爲 1 的地址,但是直接廣播地址是主機號全爲 1 而得到的地址,廣播地址代表本網絡內的所有主機,使用該地址可以向網絡內的所有主機發送數據。
在這裏插入圖片描述
多播地址:
多播地址用在一對多的通信中,即一個發送者,多個接收者, 不論接受者員數量的多少, 發送者只發送一次數據包。 多播地址屬於分類編址中的 D 類地址, D 類地址只能用作目的地址,而不能作爲主機中的源地址。
環回地址:
127 網段的所有地址都稱爲環回地址,主要用來測試網絡協議是否工作正常的作用。比如在電腦中使用 ping 命令去 ping 127.1.1.1 就可以測試本地 TCP/IP 協議是否正常。
本網絡本主機:
IP 地址 32bit 全爲 0 的地址(0.0.0.0)表示的是本網絡本主機, 這個 IP 地址在 IP 數據報中只能用作源 IP 地址,這發生在當設備啓動時但又不知道自己的 IP 地址情況下。在使用 DHCP 分配 IP 地址的網絡環境中,這樣的地址是很常見的, 主機爲了獲得一個可用的IP 地址,就給 DHCP 服務器發送 IP 數據報,並用這樣的地址(0.0.0.0) 作爲源地址,目的地址爲 255.255.255.255(因爲主機這時還不知道 DHCP 服務器的 IP 地址) ,然後 DHCP服務器就會知道這個主機暫時沒有 IP 地址,那麼就會分配一個 IP 給這個主機。

7.2 IP 數據報

整個 IP 數據報的理論最大長度爲 65535 字節然而,數據報很少有超過 1500 字節的,這是因爲底層鏈路硬件不允許那麼大的數據報出現在鏈路上,以太網數據幀的最大長度爲 1500 個字節,當有一個很大的 IP 數據報出現的時候,就需要進行分片處理;而如果 IP 數據報的數據很少的時候,比如少於 46 個字節,那麼在以太網進行發送數據的時候會填充一定的字節以滿足以太網幀最小度,那麼在接收方就要根據這個字段的內容進行提取有效數據。
在這裏插入圖片描述
在這裏插入圖片描述

7.3 IP 數據報分片

分片處理是將 IP 數據報中的數據分片成兩個或更多個較小的 IP 數據報,用單獨的鏈路層幀封裝這些較小的 IP 數據報;然後向輸出鏈路上發送這些幀, 每個這些較小的數據報都稱爲分片,由於 IP 數據報的分片偏移量是用 8 的整數倍記錄的,所以每個數據報中的分片數據大小也必須是 8 的整數倍。每個數據分片到達目標 IP 地址的主機時間是不一樣的。
在發送主機中,它會把需要分片的數據進行切割(分片) ,按照數據的偏移量進行切割,切割後形成的每個 IP 數據報(即分片)具有與初始 IP 數據報幾乎一樣的 IP 數據報首部,爲什麼說是幾乎一樣而不是全部一樣呢,因爲 IP 數據報首部的標誌、分片偏移量這兩個字段與分片有關,不同的分片,這些信息可能不一樣,不同的分片數據報長度也是不一樣的,校驗和字段也是不一樣的。 但是源 IP 地址、目標 IP 地址與標識號肯定是一樣的,每個分片上的分片偏移量字段是不一樣的。
IP 是一種不可靠的服務,一個或多個分片可能永遠到達不了目的地。因爲這種原因,爲了讓目標主機相信它已經收到了初始 IP 數據報的最後一個分片,其最後一個分片上的標誌字段(最後一位)被設置爲 0。 而所有其他分片的標誌被設爲 1。另外,爲了讓目的主機確定是否丟失了一個分片(且能按正確的順序重新組裝分片),使用偏移字段指定該分片應放在初始 IP 數據報的哪個位置。
在這裏插入圖片描述

7.4 IP 數據報發送

在這裏插入圖片描述

7.5 IP 數據報接收

在這裏插入圖片描述

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