跳轉到內容

Ict-創新/LPI/109.1

來自華夏公益教科書

109.1 網際網路協議基礎

[編輯 | 編輯原始碼]

考生應能正確理解 TCP/IP 網路基礎知識。


關鍵知識領域

  • 理解網路掩碼。
  • 瞭解私有和公有 "點分十進位制" IP 地址之間的差異。
  • 設定預設路由。
  • 瞭解常用的 TCP 和 UDP 埠(20、21、22、23、25、53、80、110、119、139、143、161、443、465、993、995)。
  • 瞭解 UDP、TCP 和 ICMP 之間的差異和主要特性。
  • 瞭解 IPv4 和 IPV6 之間的主要差異。
  • 瞭解 IPv6 的基本特性。



IP 地址和點分十進位制表示法


二進位制數

10 = 21 100 = 22 101 = 22 + 1 111 = 100 + 010 + 001


這意味著二進位制數可以很容易地轉換為十進位制數,如下所示

10000000 =27 =128

01000000=26 =64

00100000=25=32

00010000=24=16

00001000=23=8

00000100=22=4

00000010=21=2

00000001=20=1


點分十進位制表示法

連線到 IP 網路的每個網路介面都分配了一個 32 位的 IP 地址。 這個地址通常透過將其分成 4 個位元組,以十進位制形式寫入每個位元組值,並用點分隔來表示。這稱為 "點分十進位制" 表示法。例如

十進位制 二進位制
192.168.1.1 11000000.10101000.00000001.00000001


廣播地址、網路地址和子網掩碼

[編輯 | 編輯原始碼]

IP 地址分為兩部分。上部(左側)是 網路地址。它標識介面連線到的網路。如果 IP 資料包需要透過中間路由器路由,那麼路由決策就是使用 IP 地址的這一部分。下部(右側)是 主機地址。它標識網路上的特定機器(主機)。


子網掩碼

子網掩碼(也稱為子網掩碼)用於定義 IP 地址中哪一部分用作網路地址。子網掩碼也可以用點分十進位制表示法來寫,例如

16 位和 17 位子網掩碼

255.255.0.0 16 位 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 0 0 0 0 0 0 0 0 . 0
255.255.128.0 17 位 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 0 0 0 0 0 0 0 . 0

如果您知道正在使用的子網掩碼,您可以確定兩個 IP 地址是否在同一個網路上。例如,考慮 IP 地址 32.128.1.1 和 32.128.0.11。以二進位制形式,它們看起來像這樣

00100000 . 10000000 . 00000001 . 00000001
00100000 . 10000000 . 00000000 . 00000011

使用 16 位子網掩碼(255.255.0.0),這些 IP 地址在同一個網路上(因為它們的前 16 位是相同的)。因此,在這些兩個 IP 地址之間傳送的資料包不需要路由;它可以直接傳送到其目的地。

但是,使用 24 位子網掩碼(255.255.255.0),上面的兩個地址將在不同的網路上

00100000 . 10000000 . 00000001 . 00000001
00100000 . 10000000 . 00000000 . 00000011

因此,在這些兩個 IP 地址之間傳送的資料包需要路由;也就是說,它需要透過一個或多箇中間路由器(閘道器)才能到達正確的網路。


網路地址

每個網路都有一個在設定路由時需要的編號。網路編號是點分十進位制的一部分。主機地址部分被零替換。

典型的網路地址:192.168.1.0


網路類

在 IP 網路的早期,IP 地址的網路部分和主機部分之間的分隔只有三個地方。這些被稱為 A 類、B 類和 C 類。詳細來說


A 類:8 位網路地址和 24 位主機地址

IP 編號的第一個位元組用於網路地址。因此,預設子網掩碼將是 255.0.0.0。剩下的 3 個位元組可用於設定主機介面。

由於 255.255.255 和 0.0.0 是無效的主機號,因此有 224 – 2 = 16 777 214 個可能的主機。

IP 編號的第一個位元組範圍從 1127。這對應於二進位制範圍 00000001 到 01111111。A 類地址的前兩位可以設定為 "00" 或 "01"。


B 類:16 位網路地址和 16 位主機地址

IP 編號的前兩個位元組用於網路地址。預設子網掩碼是 255.255.0.0。有 216 – 2 = 65 534 個可能的主機。

第一個位元組範圍從 128191。請注意,第一個位元組的二進位制範圍是 10000000 到 10111111。也就是說,B 類地址的前兩位始終設定為 "10"。


C 類:24 位網路地址和 8 位主機地址

前三個位元組用於網路地址。預設子網掩碼是 255.255.255.0。有 28 – 2 = 254 個可能的主機。

第一個位元組範圍從 192 223。這對應於二進位制範圍 11000000 到 11011111。由此我們可以得出結論,C 類地址的前兩位始終設定為 "11"。


廣播地址

網路的廣播地址是透過將主機地址設定為 "全為 1" 來獲得的。例如,C 類網路 192.168.1.0 的廣播地址是 192.168.1.255。B 類網路 150.66.0.0 的廣播地址是 150.66.255.255。傳送到廣播地址的資料包將被網路上的所有主機接收。通常,您只能傳送到您自己網路的廣播地址,因為路由器通常配置為不轉發定向廣播資料包。例如,192.168.1.0 網路上的機器不能使用地址 192.168.7.255 來廣播到 192.168.7.255 網路。

給定一個 IP 地址和一個子網掩碼,可以應用簡單的邏輯運算來計算網路編號和廣播地址。

要從 IP 編號中檢索網路地址,只需將 IP 與子網掩碼進行 AND 運算即可。

網路地址 = IP AND 子網掩碼

類似地,廣播地址是透過將網路地址 OR "非子網掩碼" 來找到的。

廣播地址 = 網路地址 OR 非[子網掩碼]

這裡,AND 和 OR 是對這些地址的二進位制形式進行的邏輯運算。'非' 表示 '按位取反'

例子

取 IP 192.168.3.5 和子網掩碼 255.255.255.0。我們可以執行以下操作

網路地址 = IP AND 子網掩碼

11000000.10101000.00000011.00000101(192.168.3.5)

AND

11111111.11111111.11111111.00000000(255.255.255.000)

_____________________________________________


11000000.10101000.00000011.00000000 (192.168.3.0)


廣播地址 = IP OR 非-子網掩碼


11000000. 10101000.00000011.00000101(192.168.3.5)

OR

00000000.00000000.00000000.11111111(000.000.000.255)

_____________________________________________


11000000.10101000.00000011.11111111(192.168.3.255)


保留的 IP 地址

三個 IP 地址塊(A 類、B 類和 C 類各一個)被保留用於私有(內部)網路。這些地址永遠不會在網際網路上使用。下表顯示了三個私有地址塊。

A 類 10.x.x.x
B 類 172.16.x.x -- 172.31.x.x
C 類 192.168.0.x

在世界各地,大量私有內部網路(內聯網)重複使用這些地址塊。通常,小型公司網路只佔用一個 "真實" IP 地址(即可以在網際網路上路由的地址)。這個地址分配給公司外部閘道器的外部介面。這種對私有地址的重複使用大大降低了 IP 地址空間分配的速度,否則本來會發生這種速度。


子網

在 IP 網路的早期,一種名為 子網 的技術被用來允許組織將其分配的 IP 地址塊劃分為多個物理網路。例如,考慮一個擁有 B 類地址塊 140.3.0.0 的組織。理論上,這標識了一個可以容納 65,534 個主機的單一網路,如上所述。這個數字對於實際應用來說太大。子網用於將地址塊分割成多個網路。從本質上講,分配給 IP 地址的主機位的位實際上被用來選擇網路。IP 地址的網路 ID 部分和主機 ID 部分之間的邊界由子網掩碼決定。

例如,我們擁有 140.3.0.0 地址塊的示例組織可能會選擇使用 24 位子網掩碼(255.255.255.0)將其地址塊分割成 256 個網路,每個網路最多可容納 254 個主機 - 這是一個更實用的解決方案。

再舉一個例子,一家擁有 C 類地址塊 199.48.6.0 的公司可能會選擇使用 26 位子網掩碼(255.255.255.192),這將使它能夠將其地址空間分割成 4 個網路,每個網路最多可容納 62 個主機。


CIDR 表示法

從 1993 年開始,網際網路從 A 類、B 類和 C 類地址轉向使用無類別域間路由 (CIDR)。使用 CIDR,網路地址和主機地址之間的邊界可以放置在任何位位置。使用 CIDR 表示法,網路地址以點分十進位制形式寫出,後面跟著定義網路 ID 的位數。例如,以下表示法是等效的


10.0.0.0/9

網路 10.0.0.0,子網掩碼 255.128.0.0

我們將以 C 類地址塊 192.168.1.0 為例。我們調查 25 位網路和 26 位網路。


25 位網路

子網掩碼:11111111.11111111.11111111.10000000 或 255.255.255.128

由於網路 = IP AND 子網掩碼,我們從子網掩碼中看到,可以根據主機的範圍形成兩個網路地址

1. 192.168.1.0xxxxxxx 範圍內的主機地址導致 192.168.1.0 網路。在 CIDR 表示法中,這將寫為 192.168.1.0/25

2. 192.168.1.1xxxxxxx 範圍內的主機地址導致 192.168.1.128 網路。在 CIDR 表示法中,這將寫為 192.168.1.128/26


在這兩種情況下,用 0 或 1 替換 x 將得出網路編號和廣播地址

網路地址 用 0 替換 用 1 替換
0 網路:0 廣播:127
128 網路:128 廣播:255

我們還可以確定每個網路上的最大主機數。由於主機地址是 7 位長的,並且我們排除了 2 個值(全為 1 和全為 0),因此每個網路有 27 – 2 = 126 個主機,或者總共有 252 個主機。

請注意,如果使用預設子網掩碼 255.255.255.0,我們有 254 個可用的主機地址。在上面的例子中,192.168.1.127 和 192.168.1.128 分別用於第一個廣播和第二個網路,這就是為什麼只有 252 個主機地址可以被使用。


26 位網路

子網掩碼:11111111.11111111.11111111.11000000 或 255.255.255.192

同樣在這裡,根據主機的地址,可以使用 AND 規則確定 4 個不同的網路地址。

1. 192.168.1.00xxxxxx 範圍內的主機地址對應於 192.168.1.0 網路。

2. 192.168.1.01xxxxxx 範圍內的主機地址對應於 192.168.1.64 網路。

3. 192.168.1.10xxxxxx 範圍內的主機地址對應於 192.168.1.128 網路。

4. 192.168.1.11xxxxxx 範圍內的主機地址對應於 192.168.1.192 網路。

將上述數字中的 x 替換為 1,我們將得到相應的廣播地址:192.168.1.63、192.168.1.127、192.168.1.191、192.168.1.255

每個子網有 26 – 2 = 62 個可能的宿主,總共 248 個。

圖 109.1-1:示例網路

Internet 協議 (IP) 的一部分任務是將資料包路由到正確的機器。在每臺機器上,Linux 都維護著一個 路由表。例如,上圖中的機器 B 將包含一個條目,實際上表示“要到達 192.168.1.0 網路,請透過 192.167.0.254 的路由器”。在主題 109.2 中,我們將瞭解如何配置這些路由。這臺機器還將包含一個用於 預設路由 的路由條目;這告訴它將資料包傳送到哪裡才能到達它沒有更具體路由的其他網路。對於機器 B,預設路由將是 192.168.0.4。預設路由通常被稱為 預設閘道器。對於許多所謂的樁網路(只有一個連線的閘道器),預設路由是唯一需要的。例如,機器 P、Q 和 R 只需要一個指向 192.168.1.254 的預設路由。

IPV6 基礎


IPv6 是一種網際網路層協議,提供跨多個 IP 網路的端到端資料報傳輸。IPv6 附帶了 IPv4 中沒有的更多功能。它在 1998 年 12 月釋出的網際網路標準文件 RFC 2460 中有描述。IPv6 自豪地宣稱它是一種支援許多動態即插即用功能的協議。因此,在 IPv6 中有多種方法可以分配 IP 地址。本指南將介紹兩種 IPv6 地址分配方法:無狀態和有狀態。


IPv6 地址分配

網際網路號碼分配機構 (IANA) 為區域網際網路註冊機構分配了 23/12 位塊。區域網際網路註冊機構 RIR(Afrinic)將 19/32 塊分配給本地網際網路註冊機構。


本地網際網路註冊機構 (ISP) 為終端使用者分配 IPv6 地址。

建議家庭使用者獲取 46 或 56 位塊,這意味著多個子網是可能的。


使用者可以申請獲得獨立於自身提供商的 IPv6 地址塊,地址塊由

區域網際網路註冊機構 (RIR) 分配,一個 獨立於提供商的地址空間 是由 (RIR) 直接分配給終端使用者的 IP 地址塊。使用者必須與 ISP 簽訂合同才能在網際網路中獲得該地址塊的路由。


IPv6 的目標和優勢。

IPv6 的目標 IPv6 的優勢 IPv6 的優勢
簡化地址分配 內建多播 無狀態自動配置
簡化網路管理, 隨著裝置數量的增長,無需重新編號網路,例如從 C 類到 A 類。 使用者可以在從一個位置移動到另一個位置時保持會話,例如在公共汽車、飛機上的無線和行動網路
簡化路由 當位置發生變化時,無需重新編號網路 簡化的 IPv6 標頭意味著即使比 IPv4 大,也能更快地處理
解決安全性和移動性問題 無需 NAT 更好的路由聚合,
增加地址空間 無需地址重用 內建多播


IP 地址表示法

IPv4 和 IPv6 地址之間的主要區別在於長度。IPv4 地址長 32 位,而 IPv6 地址長 128 位。這意味著 IPv4 地址由 32 個 1 和 0 組成,而 IPv6 地址由 128 個組成,即 128 個二進位制數字。這種巨大的長度迫使 IPv6 地址使用與 IPv4 地址不同的表示法來書寫,從而使它們很容易與 IPv4 地址區分開來。


與 IPv4 一樣,IPv6 地址用作介面或介面組的識別符號。與 IPv4 一樣,IPv6 地址有多種型別,取決於它們如何表示這些介面。IPv6 有三種類型的地址。本文介紹了所有三種類型,以及一些特殊用途的地址。

IPv4 - 點分十進位制表示法 : 地址寫成 4 組 3 位

十進位制值,用 . 分隔。


192.168.253.018

縮寫規則

刪除前導 0194.168.253.18



IPV4 十進位制:二進位制表示法
194. 168. 253. 18
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
位元組 位元組 位元組 位元組
x 代表位,可以是 1 或 0


IPv6 地址通常顯示為八組四位 十六進位制 數字,用冒號分隔,例如 2001:0dbb:fe01:fe01:0000:0000:0000:2000“不區分大小寫”。

IPV6 十六進位制:二進位制表示法

2001: 0DBB FE01 FE01 0DBB 0000: 0000: 2000
XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
2 位元組 2 位元組 2 位元組 2 位元組 2 位元組 2 位元組 2 位元組 2 位元組
x 代表位,可以是 1 或 0


128 位地址,2^128 = 3,402823669×10³⁸ 個唯一地址。


縮寫規則

  1) Drop leading zeros in a 16 bit value 

例如 2001:0dbb:fe01:fe01:0:0:0:2000

2. 用雙冒號替換一組連續的 0

冒號 :

例如 2001:0dbb:fe01:fe01::2000


示例 2

2001:0db8:0000:0000:8a2e:0000:0000:7334

應用規則 1 後

– 2001:db8:0:0:8a2e:0:0:7334

應用規則 2 後,在任何地址中只應用一次

– 2001:db8:85a3::8a2e:0:0:7334


所有連線到網際網路的裝置都需要一個全域性唯一的地址。IPv4 使用 32 位作為 IP 地址,允許大約 40 億個唯一的 IP 地址。當 IPv4 作為網際網路協議啟動時,他們沒有預料到使用量的爆炸式增長,也沒有預料到線上技術的普及程度。對 IP 地址不斷增長的需求是推動 IPv6 開發的主要動力。

在 IPV4 中,一些技術被作為臨時措施實施,但仍然不夠,其中一些技術包括 NAT、DHCP 和子網。據估計,在無線領域,超過 10 億部手機、個人數字助理 (PDA) 和其他無線裝置需要接入網際網路,並且每臺裝置都需要擁有自己的唯一 IP 地址。

IPv6 支援 128 位地址空間,理論上有 340,282,366,920,938,463,463,374,607,431,768,211,456 個可用的地址。有了這種大型地址空間方案,IPv6 有能力為連線到網際網路的每個裝置或節點提供唯一的地址。





簡化的標頭


IPv6 中改進的路由(即資訊從源到目的地的移動)更有效,因為它包含一個分層地址結構,並且具有簡化的標頭。大量的地址空間允許擁有大量員工的組織獲得連續地址空間塊。連續地址空間允許組織在網際網路上將一個字首下的地址聚合起來進行識別。這種結構化的地址方法減少了網際網路路由器必須維護和儲存的資訊量,並促進了資料更快的路由。此外,如上所述,IPv6 的標頭更簡單,因為從 IPv4 標頭中刪除了六個欄位。簡化的標頭也有助於更快地路由。




IPv6 地址型別


地址型別 描述 二進位制字首 字首
未指定 僅在歷史初始化期間使用 0000...0 (128 位) ::/128
環回 與自身通訊時使用的地址 0000...01(128 位) ::1/128
鏈路本地單播 在單個鏈路或非路由 LAN 上使用,相當於 IPV4 中的 169.254.0.0/16 1111 1110 10 FE80::/10
站點本地 不能在網際網路上使用,類似於 IPV4 中的私有範圍 1111 1110 1100 FEC0::/10
多播 標識多播組,用作目標地址,永遠不用作源地址 1111 1111 FF00::/8
IPV4 對映 用於將 IPV4 嵌入 IPV6 地址中 ::FFFF:192.168.0.1 ::FFFF/96
唯一本地 (ULA)



這些地址保留用於家庭和私人企業,而不是公共場所


1111 1100


FC00::/7
全域性單播




所有其他地址,除了保留的地址



2000::/3



IPv6 地址分配

IPv6 鄰居發現結合並改進了地址解析協議 (ARP)、網際網路控制訊息協議 (ICMP)、路由器發現和 ICMP 重定向在 IPv4 中的功能,並添加了一些新功能。

鄰居發現服務 包含四個主要功能

  1) Router Discovery: 

路由器定期傳送路由器通告訊息以宣佈其存在,通告鏈路上的字首,協助地址配置,並共享有關鏈路的其他資訊(MTU、跳數限制等)。路由器通告支援在同一鏈路上使用多個字首。主機可以從路由器通告中瞭解鏈路上的字首,或者當路由器配置為隱瞞這些字首時,可以根據需要從重定向中瞭解這些字首。

  1) Neighbour Discovery: 

IPv6 節點使用鄰居請求和鄰居通告訊息相互通訊其鏈路層地址。這些訊息也用於檢測重複地址和測試可達性。與相應的 IPv4 協議相比,鄰居發現有許多改進和新功能。一些最顯著的區別是

  1)    Neighbour Discovery moves address resolution to the ICMP layer which makes it much less media dependant than ARP as well as adding the ability to use IP layer security when needed. 
  1)    Neighbour Discovery uses link-local addresses. This allows all nodes to maintain their router associations even when the site is renumbered to a new global prefix. 
  1)    All Neighbour Discovery messages carry link-layer address information so a single message (or pair of messages) is all that is needed for nodes to resolve the other’s addresses; no additional address resolution is needed. 


  1) Neighbour Unreachability Detection: 

IPv6 節點依賴於對資料包交付的確認。這透過兩種方式實現。首先,節點“監聽”返回的新的確認或類似的上層協議確認,以確認傳送給鄰居的資料包實際上已到達目的地。當這種確認不存在時,節點會發送單播鄰居請求訊息以確認下一跳可達性。鄰居不可達性檢測是內建的,這使得資料包交付在不斷變化的網路中更加健壯。使用鄰居不可達性檢測,鄰居發現將檢測路由器故障、鏈路故障,最重要的是部分鏈路故障,例如單向通訊。


  1) Redirects: 

與 ICMPv4 重定向功能非常類似,ICMPv6 重定向訊息由路由器用來告知鏈路上的主機某個特定目的地的更好下一跳。其目的是允許路由器幫助主機做出最有效的本地路由決策。

SLAAC

除了上面討論的所有內容外,鄰居發現還支援地址自動配置,即無狀態地址自動配置 (SLAAC)。SLAAC 在兩個階段提供即插即用的 IP 連線:階段 1 - 鏈路本地地址分配,然後是階段 2 - 全域性地址分配。


IPv6 仍然保留透過 DHCPv6(和靜態分配)進行有狀態地址分配的能力,但 SLAAC 提供了一種非常輕量級的地址配置方法,在許多情況下可能更可取。在有狀態自動配置模型中,主機從伺服器獲取介面地址以及其他必需的資訊,例如配置資訊和引數。DHCP 伺服器維護一個手動管理的主機列表,並跟蹤哪些地址分配給了哪些主機。在需要對主機進行集中管理的站點上,DHCP 是必需的。

階段 1 - 鏈路本地地址

階段 1 用於本地連線的步驟

  1) Link-Local Address Generation: Any time that a multicast-capable IPv6-enabled interface is turned up, the node generates a link-local address for that interface. This is done by appending an interface identifier to the link-local prefix (FE80::/10). 
  1) Duplicate Address Detection: Before assigning the new link-local address to its interface, the node verifies that the address is unique. This is accomplished by sending a neighbor solicitation message destined to the new address. If there is a reply than the address is a duplicate and the process stops (requiring operator intervention). 
  1) Link-Local Address Assignment: If the address is unique, the node assigns it to the interface it was generated for. 

此時,該節點已與同一鏈路上的所有其他節點建立 IPv6 連線。只有主機才能進入階段 2;路由器的介面地址必須透過其他方式配置。

階段 2 - 全域性地址

以及階段 2 的全域性連線步驟

  1) Router Advertisement: The node sends a router solicitation to prompt all on-link routers to send it router advertisements. When the router is enabled to provide stateless autoconfiguration support, the router advertisement will contain a subnet prefix for use by neighbouring hosts. 
  1) Global Address Generation: Once it receives a subnet prefix from a router, the host generates a global address by appending the interface id to the supplied prefix. 
  1) Duplicate Address Detection: The host again performs duplicate detection, this time for the new global address. 
  1) Global Address Assignment: Assuming that the address is not a duplicate, the host assigns it to the interface.


使用無狀態地址自動配置 (SLAAC),其中路由器通告訊息會通告鏈路字首以及路由器的鏈路本地地址。然後將字首與節點鏈路層地址組合以形成 EUI-64 地址,或與隨機數組合以形成隱私擴充套件地址。

更好的安全性

在過去的三十年中,網際網路一直使用 IPv4 作為底層協議。但是,由於這種端到端模型,IPv4 在設計時幾乎沒有考慮安全性,並假定所需的安全性將在端節點提供。例如,考慮諸如電子郵件之類的應用程式,該應用程式可能需要加密服務 - 在 IPv4 下,端節點上的電子郵件客戶端有責任提供這些服務。如今,網際網路面臨著諸如拒絕服務攻擊、惡意程式碼分發、中間人攻擊、碎片攻擊和偵察攻擊之類的威脅。


更好的服務質量

IPv6 提供了使用流標籤和流量欄位等功能的方法,使應用程式能夠請求對某些資料包進行特殊處理,而不會在整個 WAN 中出現延遲“低延遲”。這使得能夠支援需要良好一致的吞吐量、延遲或抖動程度的多媒體或即時應用程式。這些型別的應用程式被稱為**多媒體**或**即時**應用程式。用於描述此的術語通常是低延遲。流式音訊和影片需要透過高優先順序實現低延遲。


改進的連線性。

在沒有網路地址轉換 (NAT) 的情況下,IP 層的真正端到端連線得以恢復,從而可以實現新的和有價值的服務。點對點網路和應用程式(如多人線上遊戲、視訊會議(流媒體)、檔案共享)更容易建立和維護,而諸如 VoIP 和服務質量 (QoS) 之類的服務也會變得更好,因為計算機組可以彼此直接通訊,而無需中央伺服器。

更好的最佳化

在多播技術中,資料包從一個階段複製到另一個階段,形成一個分層樹狀結構,而不是從源直接傳送。這意味著網路中的資料包更少,從而優化了頻寬利用率,並減少了每個網路節點所需的資源。這種多播技術在需要將資訊流提供給各種連線的裝置(而不僅僅是一個目的地)時特別有用。例如,多播技術用於中繼音訊資料、影片資料、新聞提要、財務資料提要等。

內建移動性

IPv4 中的移動性是可選的,可以透過一組擴充套件來實現。在 IPv6 中,透過使用移動 IPv6 (MIPv6) 必須支援移動性。路由最佳化是移動 IPv6 的內建功能。自動發現和配置服務允許移動節點在任何位置工作,而無需任何特殊路由器的服務。
當移動節點不在家庭網路上時,它會將有關其當前位置“照管地址”的資訊傳送到家庭代理。資料包路由到該主機的方式如下:如果任何主機或節點要與該移動節點通訊,它將首先將資訊資料包傳送到家庭地址。家庭代理接收這些資料包,並使用路由表將這些資料包傳送到移動節點的照管地址。


更好的管理

當需要擴充套件現有網路或合併兩個網路,或者當更改服務提供商時,網路不再需要重新編號。IPv6 提供了功能,以便網路重新編號可以自動發生。它簡化了地址分配、無狀態地址自動配置、網路重新編號和路由器通告方面的某些內容,這些內容在更改網路連線提供商時會發生。IPv6 中的網路地址管理將不再需要手動配置 IP 裝置、主機和路由器。多宿主技術已變得易於實施。如果同時建立到兩個 ISP 的連線,當一個 ISP 的服務中斷時,就會有到網際網路的備份連線。這確保了服務具有更高的可靠性。


輕鬆過渡

IPv6 使用了許多使 IPv4 如此成功的設計特性。這使得從 IPv4 平滑過渡到 IPv6 成為可能。儘管 IPv6 為 IPv4 提供了許多競爭優勢,但 IPv6 的過渡將是一個漸進的過程。當然,與當前的 IPv4 相比,許多應用程式將在 IPv6 平臺上執行得更快、更流暢。


與 IPv6 一起使用的命令

trust@trust-desktop:~$ ifconfig -a

eth0 Link encap:Ethernet HWaddr 00:a1:b0:01:09:90

inet addr:192.168.10.19 Bcast:192.168.10.255 Mask:255.255.255.0

inet6 addr: fe80::2a1:b0ff:fe01:990/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:26710 errors:0 dropped:0 overruns:0 frame:0

TX packets:19011 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:32377321 (32.3 MB) TX bytes:2365746 (2.3 MB)

Interrupt:17 Base address:0xde00


lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:141 errors:0 dropped:0 overruns:0 frame:0

TX packets:141 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:11796 (11.7 KB) TX bytes:11796 (11.7 KB)

trust@trust-desktop:~$


trust@trust-desktop:~$ netstat -r -6

核心 IPv6 路由表

目標 下一跳 標誌 Met Ref 使用 介面

fe80::/64 :: U 256 0 0 eth0

fe80::/64 :: U 256 0 0 virbr0

/0 :: !n -1 1 3 lo
1/128 :: Un 0 1 46 lo

fe80::2a1:b0ff:fe01:990/128 :: Un 0 1 0 lo

fe80::c8a5:5aff:fe06:7adc/128 :: Un 0 1 0 lo

ff00::/8 :: U 256 0 0 eth0

ff00::/8 :: U 256 0 0 virbr0

/0 :: !n -1 1 3 lo

trust@trust-desktop:~$


trust@trust-desktop:~$ route -A inet6

核心 IPv6 路由表

目標 下一跳 標誌 Met Ref 使用 介面

fe80::/64 :: U 256 0 0 eth0

fe80::/64 :: U 256 0 0 virbr0

/0 :: !n -1 1 3 lo
1/128 :: Un 0 1 46 lo

fe80::2a1:b0ff:fe01:990/128 :: Un 0 1 0 lo

fe80::c8a5:5aff:fe06:7adc/128 :: Un 0 1 0 lo

ff00::/8 :: U 256 0 0 eth0

ff00::/8 :: U 256 0 0 virbr0

/0 :: !n -1 1 3 lo

trust@trust-desktop:~$


trust@trust-desktop:~$ ping6 ::1

PING ::1(::1) 56 data bytes

64 bytes from ::1: icmp_seq=1 ttl=64 time=0.022 ms

64 bytes from ::1: icmp_seq=2 ttl=64 time=0.027 ms

64 bytes from ::1: icmp_seq=3 ttl=64 time=0.032 ms

64 bytes from ::1: icmp_seq=4 ttl=64 time=0.029 ms

^C

--- ::1 ping 統計資訊 ---

4 個數據包已傳送,4 個已接收,0% 資料包丟失,時間 2998 毫秒

rtt min/avg/max/mdev = 0.022/0.027/0.032/0.006 毫秒

trust@trust-desktop:


要檢視 ping6 選項,請使用 $ ping6 -?

trust@trust-desktop:~$ ping6 -?

用法:ping6 [-LUdfnqrvVaA] [-c count] [-i interval] [-w deadline]

[-p pattern] [-s packetsize] [-t ttl] [-I interface]

[-M mtu discovery hint] [-S sndbuf]

[-F flow label] [-Q traffic class] [hop1 ...] destination

trust@trust-desktop:~$


trust@trust-desktop:~$ traceroute6 ::1

traceroute to ::1 (::1) from ::1, port 33434, from port 62840, 30 hops max, 60 byte packets

1 localhost (::1) 0.004 ms 0.001 ms 0.001 ms

trust@trust-desktop:~$


在 Ubuntu 中,您必須安裝 ndisc6 應用程式才能執行 tracert6 命令。

trust@trust-desktop:~$ sudo apt-get install ndisc6


trust@trust-desktop:~$ tracert6 ::1

traceroute to ::1 (::1) from ::1, 30 hops max, 60 byte packets

1 localhost (::1) 0.004 ms 0.001 ms 0.001 ms

trust@trust-desktop:~$


要驗證您是否正在執行 Ipv6,請輸入命令

trust@trust-desktop:~$ cat /proc/net/if_inet6

00000000000000000000000000000001 01 80 10 80 lo

fe8000000000000002a1b0fffe010990 02 40 20 80 eth0

fe80000000000000c8a55afffe067adc 03 40 20 80 virbr0

trust@trust-desktop:~$




檔案:Graphics305
圖 109.1-2:4 層 TCP/IP 模型



4 層TCP/IP 模型

應用程式 應用程式層(FTP、SMTP、SNMP、HTTP、...)
傳輸 交付到特定端點(TCP、UDP)
網際網路 資料包交付和路由(IP、ICMP、IGMP、ARP)
網路訪問 網絡卡,例如乙太網、令牌環……



下表顯示了 TCP/IP 套件中的一些關鍵協議

檔案:Graphics12


TCP/IP 服務和埠

檔案:Graphics307
圖 109.1-3:主機 192.168.0.5 上的服務

在應用程式層,每個服務都在特定埠號上監聽連線。這是一個 16 位數字,標識機器中特定的傳輸端點。傳輸層協議(TCP 和 UDP)負責將資料包交付到正確的埠。


已知服務及其埠的列表位於 /etc/services 中。服務及其關聯埠的官方列表由 IANA(網際網路號碼分配機構)管理。


由於埠號為 16 位,因此有 65535 個可用數字。數字 1 到 1023 被稱為特權埠,並保留用於由 root 執行的服務。大多數標準服務使用此範圍內的埠號。


/etc/services 中的主要埠

ftp-data 20/tcp

ftp 21/tcp

ssh 22/udp

ssh 22/tcp

telnet 23/tcp

smtp 25/tcp mail

domain 53/tcp

domain 53/udp

http 80/tcp # www 用於某些損壞的

pop-3 110/tcp # PostOffice V.3

sunrpc 111/tcp

sftp 115/tcp

uucp-path 117/tcp

nntp 119/tcp usenet # 網路新聞傳輸

ntp 123/tcp # 網路時間協議

netbios-ns 137/tcp nbns

netbios-ns 137/udp nbns

netbios-dgm 138/tcp nbdgm

netbios-dgm 138/udp nbdgm

netbios-ssn 139/tcp nbssn

imap 143/tcp # imap 網路郵件協議

NeWS 144/tcp news # 視窗系統

snmp 161/udp

snmp-trap 162/udp


IPV4 和 IPV6

[edit | edit source]

IP 協議的新版本(IPV6)使用 128 位定址而不是 32 位定址。IPV6 已經存在了一段時間,並且在 Linux 中得到了完全支援,但尚未廣泛部署。IPV6 的部分動機是為了解決很快就會發生的 IPV4 地址枯竭問題。IPV6 還包括一個強制的安全功能 (IPSec),該功能提供 IP 流量的身份驗證和加密。

IPV6 地址透過將數字分成 8 個 16 位組來寫下,以十六進位制形式寫入每個 16 位值,並用冒號分隔各組,例如

2001:ABCD:FE07:665C:0000:0000:0000:0000

透過省略連續的零組,可以縮寫地址。上面的示例也可以寫成

2001:ABCD:FE07:665C:

http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO 中,介紹了 IPV6 及其在 Linux 中的使用。

TCP/IP 套件

TCP/IP 是一套用於網際網路的協議。主要的兩個協議是 TCP **傳輸控制協議**和 IP **網際網路協議**,但套件中還有許多其他協議。

這些協議按以下所示的堆疊方式分層。資料包從傳送端向下透過堆疊。每一層都會新增一個報頭,以使該層能夠執行其工作。資料包從接收端向上透過堆疊。每一層都會在將其傳遞到上一層之前刪除其自己的報頭。

為了簡化,IP 層負責將資料包傳遞到目標機器,如果需要,則透過中間閘道器進行路由。它不是“保證”交付服務;也就是說,不會進行任何檢查以驗證資料包是否已到達。TCP 處理客戶端和伺服器應用程式之間的連線。它是一個“可靠”協議,因為接收資料包後會確認,並且如果未收到確認,則會重新傳輸資料包。

[[Image:|thumb|圖 109.1-2:4 層 TCP/IP 模型]]

4 層 TCP/IP 模型
應用程式 應用程式層(FTP、SMTP、SNMP、HTTP、...)
傳輸 交付到特定端點(TCP、UDP)
網際網路 資料包交付和路由(IP、ICMP、IGMP、ARP)
網路訪問 網絡卡,例如乙太網、令牌環……

下表顯示了 TCP/IP 套件中的一些關鍵協議

[[Image:|thumb]]

TCP/IP 服務和埠

[[Image:|thumb|圖 109.1-3:主機 192.168.0.5 上的服務]] 在應用程式層,每個服務都在特定埠號上監聽連線。這是一個 16 位數字,標識機器中特定的傳輸端點。傳輸層協議(TCP 和 UDP)負責將資料包交付到正確的埠。

已知服務及其埠的列表位於 /etc/services 中。服務及其關聯埠的官方列表由 IANA(網際網路號碼分配機構)管理。

由於埠號為 16 位,因此有 65535 個可用數字。數字 1 到 1023 被稱為特權埠,並保留用於由 root 執行的服務。大多數標準服務使用此範圍內的埠號。

/etc/services 中的主要埠

ftp-data 20/tcp

ftp 21/tcp

ssh 22/udp

ssh 22/tcp

telnet 23/tcp

smtp 25/tcp mail

domain 53/tcp

domain 53/udp
 
http 80/tcp # www is used by some broken

pop-3 110/tcp # PostOffice V.3

sunrpc 111/tcp

sftp 115/tcp

uucp-path 117/tcp 

nntp 119/tcp usenet # Network News Transfer

ntp 123/tcp # Network Time Protocol

netbios-ns 137/tcp nbns

netbios-ns 137/udp nbns

netbios-dgm 138/tcp nbdgm

netbios-dgm 138/udp nbdgm

netbios-ssn 139/tcp nbssn

imap 143/tcp # imap network mail protocol

NeWS 144/tcp news # Window System

snmp 161/udp

snmp-trap 162/udp



以下是所用檔案、術語和工具的列表:* /etc/services

  • ftp
  • telnet
  • host
  • ping
  • dig
  • traceroute
  • tracepath


上一章 | 下一章

華夏公益教科書