(Linux)網絡基礎- - - 網絡層(IP協議)

網絡基礎- - -網絡層(IP協議)

負責地址管理與路由選擇(爲每一條網絡中的數據根據想去的地方選擇合適的路徑)

IP協議格式
在這裏插入圖片描述

  • 4位版本號:IPV4 / IPV6;
  • 4位首部長度:標識IP報頭有多長,以4字節爲單位(最小20字節/最大60字節);
  • 8位服務類型:3位棄用 / 1位置0,4位TOS字段- - -最大吞吐量 / 最小成本 /最高可靠性 / 最小延時;
  • 16位數據報長度:限制了一個完整的IP報文最大長度不超過64k;udp報文數據最大長度不能超過64-20-8;
  • 分片標識:數據在實際傳輸時的最大長度不僅受限於數據報長度字段,並且受限於鏈路層的一個信息- - -MTU(最大傳輸單元,鏈路層中一條數據幀中的最大數長度(網絡層的報文最大長度),通常在以太網組網方式中是1500字節,可配置),一條udp數據在網絡層限制不大於64k-28即可發送,但是在鏈路層會受限於MTU大小;
    若IP報文大小小於MTU,但是又符合數據報長度字段,則這條數據會在網絡層進行數據分片
    16位分片標識:標識當前分片屬於哪一個完整的上層報文;
    3位標誌:1位保留,1位禁止分片位,1位標誌位(除了最後一個分片外其他分片都置爲1);
    13位分片偏移:當分片在對端進行重組的時候,就需要確定這個分片在原始報文中的什麼位置,13位能夠表示的最大大小是 8192。
    假設一個分片在報文中的位置是:64000個字節的偏移量,這個時候13位分片偏移就沒法識別,因此分片偏移的單位是8個字節,以8字節爲單位,13位偏移量8192*8剛好可以描述的大小就是0~65535,所以每個分片(除了最後一個)長度都是8的整數倍。(例:offset=1000,則表示這個分片的偏移量是8000字節);
  • 8位TTL:報文的最大生存週期,每經過一次路由器就會-1,爲0時表示找不到對端,則會被丟棄(默認一般爲64,現在大多都是128),主要是爲了防止路由環路的問題(多個路由器互相連接,形成轉發環路,數據在環路中不斷轉發出不去);
  • 8位上層協議:記錄傳輸層所使用的協議,用於數據分用時,選擇上層解析協議;
  • 16位校驗和:校驗數據一致性(不同設備工作的不同層,比如路由器,不會到達傳輸層,不會進行傳輸層的校驗);
  • 32位源端IP / 32位對端IP:描述了通信中的兩臺主機;
    0~40字節選項數據:例如保存路由過程中每臺經過的路由器信息…
    在這裏插入圖片描述

地址管理

IP地址的組成:網絡號 + 主機號
網絡號:是一個網絡的標識,俗稱網段; (這個網絡中所分配的IP地址都會帶有這個網絡的標識,這樣的話每個網絡的網絡號保證不同,就可以保證他們分配的IP地址不同);
主機號:一個主機在一個網絡中的標識;(一個網絡中,有很多主機,主機號就是用於在一個網絡中標識不同的主機)
網段的劃分
早期:將所有IP地址劃分了五類(五類網絡)
A:用於組件大型網絡,高1位固定位0,7位網絡號,24位主機號; 網絡號範圍:0~127;IP地址範圍:.0.0.0.0 ~ 127.255.255.255; 1.0.0.0 ~ 1.255.255.255 - - -這就是1號網絡所能分配的IP地址範圍,這種網絡可以容納16581375 個主機;
B:用於組建中型網絡,高2位固定爲10,14位網絡號,16位主機號;網絡號範圍:128.0~ 191.255;IP地址範圍:128.0.0.0 ~ 191.255.255.255; 128.1.0.0~128.1.255.255- - -這就是128.1這個網段所分配的IP地址範圍,這種網絡可以容納65536個主機;
C:用於組建小型網絡,高3位固定爲110,21位網絡號,8位主機號;網絡號範圍:192.0 ~ 223.255;IP地址範圍:192.0.0.0 ~ 223.255.255.255; 192.168.1.0 ~ 192.168.1.255- - -這就是192.168.1這個網段所能分配的IP地址方位,這種網絡可以容納256個主機;
D:特殊IP地址;
E:特殊IP地址;
(早期的這種劃分方式造成了大量的IP地址浪費,大部分公司申請的是B類網絡) - - - - - 劃分不夠精細

當前:CIDR方案- - -如何將網絡劃分的更加精細- - - 使用子網掩碼劃分網絡
子網掩碼:unit32_t 類型的數字,這個數字由連續的二進制1組成;
子網掩碼與IP地址相與:得到當前網絡的網絡號;
子網掩碼取反:得到這個網絡中的主機號範圍,子網掩碼 = 255.255.255.0,則這個網絡中的主機號範圍是:0 ~255;
在這裏插入圖片描述

特殊的IP地址:

  • 0.0.0.0:可以識別當前主機上的任意網卡地址,常用於服務端的監聽地址(表示綁定監聽本機上的所有地址);
  • 255.255.255.255:全網廣播地址(任意一個主機收到這個地址的數據,都會認爲是發送給自己的- - -適配所有IP地址,常用於DHCP請求地址);
  • 127.0.0.1:本地虛擬迴環網卡的IP地址(常用於本地的網絡通信測試- - - 自己給自己發送數據);
  • 主機號全爲0:實際就是網絡號,是網絡的表示,因此全爲0的主機號是不能分配給網絡中主機的;
  • 主機號全爲1:實際上是UDP局域網廣播地址(適配於當前網絡中的所有主機),因此全爲1的主機號是不能分配給網絡中主機的;

公網 / 外網 與 私網 / 內網:

  • 公網 / 外網:我們通常所說的互聯網;
  • 私網 / 內網:一個私有網絡,僅限於內部通信;

IP地址不夠用怎麼辦?
1、DHCP動態地址分配
2、NAT網絡地址轉換(主要就是用於組建私網,私網中的主機要麼只能內部通信,要麼就使用統一 一個對外的IP地址上網)
在這裏插入圖片描述
私網之間,只要網絡不相鄰,網絡號就可以相同,分配的IP地址就可以衝突(因爲它們對外上網的時候會通過NAT服務轉換爲對外的地址進行上網,對外來說是沒有衝突的);但是私網的網絡號,也不能隨便使用,萬一與公網的某個網絡的網絡號衝突了就不合適了(則分配的地址都會與公網地址相沖突)。

RFC文檔1918規定:能夠用於組建私網的網絡號有以下幾種:

  • 10.* . *. * - - -用於組建大型網絡
  • 172.16.* . * ~ 172.31. * .* - - -用於組建中型網絡;
  • 192.168. * .* - - -用於組建小型網絡;

路由選擇

路由爲每一個流經的數據根據目的的IP地址進行路徑選擇

路由表
在這裏插入圖片描述
在這裏插入圖片描述
上圖中藍色圈爲一個小的局域網,紅色圈爲一個小的局域網,但是兩者不能直接進行通信,需要通過運營商路由器發到互聯網後纔可以;藍色圈之間是可以直接通過局域網進行通信的,紅色圈也是。
在這裏插入圖片描述
互聯網中路由器上記錄的路由表(包含的不僅僅是與自己相連的網絡的路由信息,與自己不相連的也會記錄- - -路由器會廣播自己的路由表多少層網絡),路由表生成算法 有很多種。

鏈路層

負責相鄰設備之間的數據幀傳輸(以太網eth),鏈路層負責每一個相鄰節點之間的數據傳輸;
相鄰設備之間也需要描述識別(因爲一個設備可能又很多相鄰設備),鏈路層相鄰設備之間的識別是通過MAC地址實現的。
MAC地址:網卡的硬件地址。
在這裏插入圖片描述

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