計算機網絡 - 網絡層(上)

計算機網絡 - 網絡層(上)

兩種服務

在計算機網絡領域,網絡層應該向運輸層提供怎樣的服務(「面向鏈接」仍是「無鏈接」)曾引發了長期的爭論。算法

一種觀點認爲,應該讓計算機網絡模仿電信網絡,使用面向鏈接的通訊方式。
通訊以前先創建虛電路(Virtual Circuit),以保證雙方通訊所需的一切網絡資源。 (這裏的虛網絡表示這只是一條邏輯上的鏈接,分組沿着這條邏輯鏈接按照存儲轉發方式傳送,而並非真正創建了一條物理鏈接;與之相對的,電路交換的電話通訊是先創建一條真正的鏈接具體可參見概述部分介紹segmentfault

另外一種觀點認爲,應該讓網絡層向上只提供簡單靈活的、無鏈接的、盡最大努力交付的數據報服務
採用這種設計思路,則網絡的造價大大下降,運行方式靈活,可以適應多種應用。且每一個分組獨立選擇路由進行轉發。緩存

網際協議 IP

網際協議 IP 是 TCP/IP 體系中兩個最主要的協議之一。
與 IP 協議配套使用的還有三個協議:網絡

  • 地址解析協議 ARP(Address Resolution Protocol)
  • 網際控制報文協議 ICMP(Internet Control Message Protocol)
  • 網際組管理協議 IGMP(Internet Group Management Protocol)

各層協議

虛擬互聯網絡

所謂虛擬互連網絡也就是邏輯互連網絡,它的意思就是互連起來的各類物理網絡的異構性原本是客觀存在的,可是咱們利用 IP 協議就可使這些性能各異的網絡從用戶看起來好像是一個統一的網絡數據結構

若是在這種覆蓋全球的 IP 網的 上層使用 TCP 協議,那麼就是如今的 互聯網 (Internet)。

分類的IP地址

IP 地址就是給每一個鏈接在互聯網上的主機(或路由器)分配一個在全世界範圍是惟一的 32 位的標識符less

IP地址的編址方法

  • 分類IP地址。這是最基本的編址方法,在 1981 年就經過了相應的標準協議。
  • 劃分子網。這是對最基本的編址方法的改進,其標準 [RFC 950] 在 1985 年經過。
  • 構成超網。這是比較新的無分類編址方法。 1993 年提出後很快就獲得推廣應用。

分類IP地址

IP 地址 ::= { <網絡號>, <主機號>}性能

通常表示IP地址採用 點分十進制記法,將每一個 八位二進制數(1 byte)轉換爲 十進制數

分類IP地址

其中 D類地址多播地址
E類地址保留爲從此使用。

通常不可用的特殊IP地址測試

網絡號 主機號 做爲源地址 做爲目的地址 表明含義
0 0 能夠 不可 在本網絡上的本主機
0 host-id 能夠 不可 在本網絡上的某臺主機 host-id
全 1 全 1 不可 能夠 只在本網絡上進行廣播(各路由器均不轉發)
net-id 全 1 不可 能夠 對 net-id 上的全部主機進行廣播
127 非全 0 或全 1 的任何數 能夠 能夠 用做本地軟件環回測試之用

IP地址的一些特色

一、IP地址其實是標誌一個主機(或路由器)和一條鏈路的接口ui

  • 當一個主機同時鏈接到兩個網絡上時,該主機就必須同時具備兩個相應的 IP 地址;
  • 因爲一個路由器至少應當鏈接到兩個網絡,故一個路由器至少應當有兩個不一樣的 IP 地址。

二、用轉發器網橋鏈接起來的若干個局域網仍爲一個網絡,所以這些局域網都具備一樣的網絡號spa

三、全部分配到網絡號的網絡,不管是範圍很小的局域網,仍是可能覆蓋很大地理範圍的廣域網,都是平等的

IP地址硬件地址

各層使用的地址

網絡數據的傳輸流

路由轉發過程當中,路由器僅根據目的站的IP地址進行路由選擇,IP數據報首部的內容不變
MAC幀每通過一個路由,都將首部的目的地址和源地址更新爲下一個路由(主機)硬件地址和這個路由(主機)硬件地址

IP層屏蔽了傳輸中的細節。

地址解析協議(ARP)

每個主機都設有一個 ARP 高速緩存 (ARP cache),裏面有所在的局域網上的各主機和路由器的 IP 地址到硬件地址的映射表

< IP address;MAC address;TTL >
(TTL:地址映射有效時間)

當主機 A 欲向本局域網上的某個主機 B 發送 IP 數據報時,就先在其 ARP 高速緩存中查看有無主機 B 的 IP 地址。

  • 若有,就可查出其對應的硬件地址,再將此硬件地址寫入 MAC 幀,而後經過局域網將該 MAC 幀發往此硬件地址。
  • 如沒有, ARP 進程在本局域網上廣播發送一個 ARP 請求分組。收到 ARP 響應分組後,將獲得的 IP 地址到硬件地址的映射寫入 ARP 高速緩存
ARP 是解決 同一個局域網上的主機或路由器的 IP 地址和硬件地址的映射問題。
若是所要找的主機和源主機不在同一個局域網上,那麼就要 經過 ARP 找到一個位於本局域網上的某個路由器的硬件地址,而後把分組發送給這個路由器,讓這個路由器把分組轉發給下一個網絡。剩下的工做就由下一個網絡來作。

IP數據報的格式

IP數據報

首部 前部分(20字節)是固定長度,是全部IP數據報共有的;
後面是一些可選字段,其 長度可變
  • 總長度:指首部和數據之和的長度。
  • 標誌:最低位MF=1 表示還有分片;中間位DF=0容許分片
  • 片偏移:表示較長的分組在分片後,某片在原分組中的相對位置片偏移以8個字節爲單位
  • 生存時間:記爲TTL(Time To Live),指示數據報在網絡中可經過的路由器數的最大值。
  • 協議:指出此數據報攜帶的數據使用何種協議,以便目的主機的 IP 層將數據部分上交給那個處理過程。
  • 首部檢驗和:只檢驗數據報的首部,不檢驗數據部分。(採用 16 位二進制反碼求和算法)

IP層分組轉發的流程

路由表中,對每一條路由,最主要的是(目的網絡地址,下一跳地址

根據目的網絡地址就能肯定下一跳路由器,這樣作的結果是:

  • IP 數據報最終必定能夠找到目的主機所在目的網絡上的路由器(可能要經過屢次的間接交付)。
  • 只有到達最後一個路由器時,才試圖向目的主機進行直接交付。

特定主機路由

雖然互聯網全部的分組轉發都是基於目的主機所在的網絡,但在大多數狀況下都容許有這樣的特例,即爲特定的目的主機指明一個路由。

默認路由 (default route)

路由器還可採用默認路由以減小路由表所佔用的空間和搜索路由表所用的時間。
若是一個主機鏈接在一個小網絡上,而這個網絡只用一個路由器和互聯網鏈接,那麼在這種狀況下使用默認路由是很是合適的。

「下一跳」是在下層實現的
當路由器收到待轉發的數據報,不是將下一跳路由器的 IP 地址填入 IP 數據報,而是送交下層的網絡接口軟件。
網絡接口軟件使用 ARP 負責將 下一跳路由器的 IP 地址轉換成硬件地址,並將此 硬件地址放在鏈路層的 MAC 幀的首部,而後根據這個硬件地址找到下一跳路由器。

劃分子網和構造超網

劃分子網

從 1985 年起在 IP 地址中又增長了一個「子網號字段」(Subnet-ID),使兩級的 IP 地址變成爲三級的 IP 地址。
這種作法叫作劃分子網 (subnetting) 。

優勢

  • 減小了 IP 地址的浪費
  • 使網絡的組織更加靈活
  • 更便於維護和管理

子網掩碼

子網掩碼 (subnet mask)用於找出 IP 地址中的子網部分。
子網掩碼長度爲32位(IP地址的長度):

  • 某位 = 1:IP地址中的對應位爲網絡號和子網號
  • 某位 = 0:IP地址中的對應位爲主機號

經過子網掩碼獲得子網網絡地址

路由器在和相鄰路由器交換路由信息時,必須把本身所在網絡(或子網)的子網掩碼告訴相鄰路由器。
路由器的路由表中的每個項目,除了要給出目的網絡地址外,還必須同時給出該網絡的子網掩碼

目的網絡地址,子網掩碼,下一跳地址

劃分子網狀況下的分組轉發
(1) 從收到的分組的首部提取 目的 IP 地址 D
(2) 先用(本網絡內部) 各網絡的子網掩碼和 D 逐位相「與」,看是否和相應的網絡地址匹配。 若匹配,則將分組直接交付。不然就是間接交付,執行 (3)。
(3) 若路由表中有目的地址爲 D 的特定主機路由,則將分組傳送給指明的下一跳路由器;不然,執行 (4)。
(4) 對 路由表中的每一行,將 子網掩碼和 D 逐位相「與」。若結果與該行的目的網絡地址匹配,則將分組傳送給該行指明的下一跳路由器;不然,執行 (5)。
(5) 若路由表中有一個默認路由,則將分組傳送給路由表中所指明的默認路由器;不然,執行 (6)。
(6) 報告轉發分組出錯。

無分類編制CIDR(Classless Inter-Domain Routing)

CIDR使用各類長度的「網絡前綴」(network-prefix)來代替分類地址中的網絡號和子網號。
IP 地址從三級編址(使用子網掩碼)又回到了兩級編址

IP地址 ::= {<網絡前綴>, <主機號>}

CIDR 使用「斜線記法」(slash notation)即在 IP 地址面加上一個斜線「/」,而後寫上網絡前綴所佔的位數(這個數值對應於三級編址中子網掩碼中 1 的個數)。例如: 220.78.168.0/24。

CIDR 地址塊

CIDR 把網絡前綴都相同的連續的 IP 地址組成「CIDR 地址塊」。

路由聚合 (route aggregation) 或構成超網 (supernetting)

一個 CIDR 地址塊能夠表示不少地址,這種地址的聚合常稱爲路由聚合,它使得路由表中的一個項目能夠表示不少個(例如上千個)原來傳統分類地址的路由。
能夠更加有效地分配 IPv4 的地址空間,可根據客戶的須要分配適當大小的 CIDR 地址塊

最長前綴匹配

使用 CIDR 時,路由表中的每一個項目由「網絡前綴」和「下一跳地址」組成。在查找路由表時可能會獲得不止一個匹配結果。
應當從匹配結果中選擇具備最長網絡前綴的路由最長前綴匹配 (longest-prefix matching)。

使用二叉線索查找路由表

爲了進行更加有效的查找,一般是將無分類編址的路由表存放在一種層次的數據結構中,而後自上而下地按層次進行查找。這裏最經常使用的就是二叉線索 (binary trie)。IP 地址中從左到右的比特值決定了從根結點逐層向下層延伸的路徑,而二叉線索中的各個路徑就表明路由表中存放的各個地址。

相關文章
相關標籤/搜索