網絡:網絡基礎3(重點)之網絡層

網絡層負責地址管理和路徑選擇

IP協議

首先,我們必須知道,IP協議實現了將數據從A主機跨網絡經過路徑選擇將數據送至B主機
IP在理解上要分爲網絡號+主機號

  • 基本概念
    主機:配有IP地址,但是不進行路由控制的設備;
    路由器:即配有IP地址,又能進行路由控制;
    節點:主機和路由器的統稱;
  • 協議頭格式
    如圖:
    在這裏插入圖片描述
    說明:
    (1)4位版本:指定IP協議的版本,對於IPv4來說是4個字節,對於IPv6來說是16個字節;
    (2)4位頭部長度:IP頭部的長度表示的存在時多少個32bit,也就是length4的字節數,4bit表示大的數字是15,因此IP頭部大長度是60字節;
    (3)8位區分服務:3位優先權字段(已經棄用),4位TOS字段,和1位保留字段(必須置爲0),4位TOS分別表示最小延時, 最大吞吐量, 最高可靠性, 最小成本. 這四者相互衝突, 只能選擇一個. 對於ssh/telnet這樣的應用程序, 最小延時比較重要; 對於ftp這樣的程序, 最大吞吐量比較重要;
    (4)16位總長度:IP數據報整體佔多少個字節
    (5)16位標識:唯一的標識主機發送的報文,如果IP報文在數據鏈路層被分片了,那麼每一個片裏面的這個id都是相同的,到對端重組的時候,根據這個標識可以直接重組;
    (6)3位標誌字段:第一位保留(保留的意思是現在不用,但是還沒想好說不定以後要用到);第二位置1表示禁止分片,這時候如果報文長度超過MTU(1500byte),ip模塊就會丟棄報文(爲什麼要分片?ip將報文交付給下層的MAC幀,所能傳輸的數據包長度不能超過MTU,若超過,就要分片,置0表示允許分片,置1表示禁止分片);第三位表示“更多分片MF”,如果分片了的話,它的後面若還有分片,將當前位置置爲1,若沒有,置爲0;
    (7)13位分片偏移:分片相對於原始IP報文開始處的偏移,其實就是在表示當前分片在原報文中處在哪個位置,實際偏移的字節數是這個值
    8得到的,除了後一個報文之外,其他報文的長度必須是8的整數倍(否則報文就不連續了);
    (8)8位生存時間:用來防止出現路由循環;
    (9)8位協議:表示上層協議的類型,即交付上層哪一種協議(將有效載荷給誰);
    (10)16位頭部校驗和:使用CRC進行校驗來鑑別頭部是否損壞;
    (11)32位源地址和32位目標地址:表示發送端和接收端的IP地址;
    (12)選項字段(不定長最多40字節);
    分片相關:
    上層協議不需要知道IP有沒有分片,一般不建議分片,因爲會導致在網絡中傳送丟包概率增加,IP層沒有超時傳輸機制,若有一個分片丟失,只能依賴傳輸層重傳,結果所有分片都要重傳,大大降低了傳輸層傳輸數據成功率;
  • 網段劃分
    一個IP地址=網絡號+主機號,網段劃分主要是提高主機檢索效率;
    網絡號:保證相互連接的兩個網段具有不同的標識;
    主機號:同一網段內主機之間具有相同的網絡號但是必須有不同的主機號;
    不同的子網就是把網絡號相同的主機放在一起,所有的網絡號相同的主機構成一個子網;
    如果在子網中新增一臺主機,則這臺主機的網絡號和這個子網的網絡號一致,但是主機號必須不能和子網中的其它主機重複;
    關於DHCP:
    就是動態分配IP,一般路由器都帶有DHCP功能,因此路由器可以看成一個DHCP服務器;
  • 五類IP和CIRD塊
    如圖:
    在這裏插入圖片描述
    A類 0.0.0.0到127.255.255.255
    B類 128.0.0.0到191.255.255.255
    C類 192.0.0.0到223.255.255.255
    D類 224.0.0.0到239.255.255.255
    E類 240.0.0.0到247.255.255.255
    但是這種劃分方案的侷限性很大,大多數組織都申請B類地址,導致B類地址很快被分配完了,而A類卻浪費了大量地址,針對這種情況提出了新的劃分方案,稱爲CIDR:
    引入一個額外的子網掩碼來區分網絡號和主機號,子網掩碼是一個32位的正整數,通常用一串“0”來結尾,將IP地址和子網掩碼進行“按位與”操作得到的結果就是網絡號,網絡號和主機號的劃分與這個IP地址是A類,B類還是C類無關;
    主機號從全0到全1就是子網的地址範圍;
  • 特殊的IP地址
    將IP地址中的主機地址全部設爲0,就是網絡號,代表這個局域網,將主機地址全部設爲1就成爲了廣播地址,用於給同一個鏈路中相互連接的所有主機發送數據包;127.*的IP地址用於本機環回測試,通常是127.0.0.1;
私有IP地址和公網IP地址
  • 什麼是私有IP地址和公網IP地址
    如果一個組織內部組件局域網,IP地址只用於局域網內的通信而不直接連到Internet上,理論上使用任意的IP地址都可以,但是RFC1918規定了用於組件局域網的私有IP地址:
    10 .* :前8位是網絡號,共16,777,216個地址
    172.16.到172.31.:前12位是網絡號,共1,048,576個地址
    192.168.*:前16位是網絡號,共65,536個地址
    包含在這個範圍中的, 都成爲私有IP, 其餘的則稱爲全局IP(或公網IP);
    即公網IP地址是在全球範圍內都可以訪問的服務,公網IP表示唯一一臺主機;
  • 路由
    路由的過程就是一跳一跳“問路”的過程,所謂“一跳”就是數據鏈路層中的一個區間,具體在以太網中指從源MAC地址到目的MAC地址之間的幀傳輸區間;
    IP數據包的傳輸過程也和問路一樣:
    路由器的工作原理:
    (1)路由器接收到數據包,提取目的IP地址以及子網掩碼計算目標網絡地址;
    (2)根據目標網絡地址查找路由表,如果找到目標網絡地址就按照相應的出口發送到下一個路由器;
    (3)如果沒有找到,就看一下有沒有默認路由,如果有就按照默認路由的出口發送給下一個路由器;
    (4)如果沒有找到就給源IP發送一個出錯ICMP數據包表明沒法傳遞該數據包;
    (5)如果是直連路由就按照第二層MAC地址發送到目標站點;
    爲了判定當前這個數據包應該發送到哪裏,就要依靠每個節點內部維護一個路由表(可以使用route命令查看);
    總結:ip地址解決的是將數據從A主機跨網絡經過路徑選擇將數據送至B主機,Mac地址解決的是同一網段將數據從A主機送到B主機的問題;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章