計算機網絡 - 網絡層

1. 網絡層的功能

負責在不一樣網絡之間盡力轉發數據包
基於數據包的IP地址進行轉發
不負責丟失重傳和按需遞交
每一個數據包都獨立的選擇路徑 在TCP/IP協議中,網絡層包含了IP、ARP、ICMP和IGMP協議。服務器

2. ARP協議

用於獲取本網段內其餘機器的MAC地址。好比局域網網內的PC1(IP地址爲IP1)要給PC2(IP地址爲IP2)發送數據,若是不知道PC2的MAC地址,PC2就會先在本網段內發一個廣播消息"請問IP地址爲IP2的機器的MAC地址是多少?"。PC2收到這條廣播以後,給PC1發送響應,PC1就能夠知道PC2的MAC地址了。網絡

ARP欺騙:PC3回覆了詢問PC2的MAC地址的廣播,以後本來要發給PC2的數據包就會發送給PC3。學習

3. ICMP協議

咱們能夠經過ping這個命令去測試到一個主機的網絡層鏈接是否通暢,這個功能就是網絡層的ICMP協議支持的。使用TCP/IP協議通信的主機,都支持其餘主機來測試到本身的網絡層鏈接是否通暢。測試

網絡流量不該定都是應用層產生的,ping命令接收網絡層產生的流量。cdn

4. IGMP協議

即Internet組播(多播)管理協議。視頻

組播的做用:假如在一個教室裏有20人收看語文課程,30人收看數學課程。若是流媒體服務器發送廣播消息,那教室中全部的計算機都能收到兩種課程,顯然是沒有必要的。那若是流媒體服務器經過點對點通訊給每一個同窗單獨發送感興趣的課程的數據的話,那教師機的發送流量就很是大,浪費網絡資源。並且網卡也可能的帶寬也可能沒法支持這麼大的流量,同窗們播放視頻時就會不流暢。爲了解決這個問題引入了**組播(多播)**通訊,20個要收看語文課程的主機綁定一個相同的組播地址,另外30臺主機綁定另外一個相同的組播地址,教師機只要向兩個組播地址發送數據便可。blog

上面說的場景比較簡單,是局域網的內的組播(能夠在數據鏈路層協議實現),若是要實現跨網段的組播,就須要用到網絡層的組播管理協議了。資源

網絡層的組播(多播):網關經過IGMP的支持週期性的去輪詢本網段內是否還有機器要接收組播IP地址。網關從上游路由器收到一個到本網段的組播包時,若是本網段已經沒有機器想接收這個組播IP的數據了,就會直接丟棄掉這些數據。路由

5. IP協議

IP數據包結構數學

  • 首部

    • 固定部分20字節,可變部分是長度可變的可選字段。
    • 版本:數據包的版本是IPv4 or IPv6
    • 首部長度:減去20字節後就是首均可變部分的長度。通常都是20字節,可變部分不多會用到。
    • 服務類型:數據包的優先級(提升服務質量QoS)。網絡擁塞時網絡層優先發送高優先級的數據包。例如即時聊天的數據包比發送郵件的數據包優先級要高。
    • 總長度:數據包的總長度,減去首部長度就是數據部分的長度。
    • 標識、標誌、片偏移:網絡層從傳輸層收到的數據段大於下面數據鏈路層支持的數據幀最大長度時,會分紅多個IP包進行傳輸,叫作分片傳輸。標識是IP包至關於IP包的序號,一個完整數據包不一樣分片的IP層標識相同。標誌用於指示一個IP包是完整的數據包仍是一個分片,是完整數據包的第幾個分片。片偏移用於記錄分片的數據部分中的第一個字節是完整數據包的數據部分的第幾個字節。
    • 生存時間TTL: 每通過一個路由器TTL減一。TTL耗盡以後路由器丟棄數據不會再繼續往下轉發了。避免網絡中出現了路由環路,數據包一直在網絡中不會消失,浪費網絡流量。
    • 協議:標識傳輸數據的協議版本,進而肯定數據應該由哪一個協議層來處理。若是是ICMP、IGMP協議就在網絡層處理。若是是TCP、UDP協議就向上遞交給傳輸層。
    • 首部檢驗和:用於判斷IP包在傳輸過程當中首部是否發生了變化。若是變化過則丟棄該IP包。
    • 源地址、目的地址

IP協議 RIP和OSPF等能讓路由器自動學習路由表的協議都稱爲IP協議。

靜態路由
須要管理員手動給全部路由器配置路由表,讓路由器知道發往沒有直連的網絡的數據包,下一跳應該發給那個路由器。

動態路由

  • RIP協議
    路由器週期性(30秒)的廣播通過本身能去到哪一個網段以及去其中的某個網段還要通過幾個路由器。經過RIP協議路由器不只可以學習到路由表,還能選出去某個網段的最佳路徑。RIP協議中約定通過路由器較少的路徑是更加好的選擇。路由表保存的信息是有失效時間的,若是網絡中某個路由器發生故障,中止了RIP廣播,其餘路由器也可以感知到,感知到的路由器也會經過廣播把有路由器掛掉的消息通知其餘路由器,並把故障路由器從路由表中剔除掉。
相關文章
相關標籤/搜索