Internet 之網路架構


Internet 是 所 謂 網 際 網 路 , 這 是 大 家 都 知 道 的 , 但 是 整 個 Internet 的 架 構 了 解 的 並 不 多 , Internet 是 用 Router 所 連 成 的 一 個 全 球 網 路 , 使 用 TCPIP 的 IP Routing 將 資 料 送 到 目 的 地 , 所 以 在 這 篇 短 文 中 主 要 是 說 明 整 個 IP Routing 的 動 作 流 程 , 並 進 而 說 明 Internet 的 網 路 結 構 , 這 篇 短 文 是 就 我 的 了 解 來 撰 寫 , 若 有 不 對 的 地 方 請 各 位 先 進 指 教 , 我 會 儘 快 修 改 。


封包(Packet)概念


網 路 便 是 以 網 路 線 材 使 各 PC 及 主 機 及 網 路 設 備 連 接 使 資 料 能 夠 互 享 , 在 Internet 的 使 用 大 部 份 是 使 用 Ethernet , 也 就 是 所 謂 的 乙 太 網 路 , 資 料 在 網 路 上 是 以 封 包 的 方 式 傳 輸 , 封 包 傳 輸 便 是 將 所 欲 傳 輸 之 資 料 切 成 一 段 一 段 的 資 料 包 , 以 這 一 段 一 段 的 封 包 往 網 路 線 上 送 , 到 目 的 地 再 組 合 起 來 , 為 什 麼 要 使 用 封 包 來 傳 輸 , 那 是 因 為 這 樣 才 能 使 網 路 能 讓 多 人 共 享 , 試 想 若 不 用 封 包 來 傳 送 , 網 路 上 的 一 個 使 用 者 要 傳 輸 100 Mbytes 的 資 料 那 網 路 上 的 使 用 者 必 須 等 待 這 個 使 用 者 傳 送 完 後 才 能 使 用 這 個 網 路 , 那 就 不 能 作 到 網 路 共 享 , 而 使 用 封 包 的 方 式 來 傳 輸 則 能 讓 使 用 者 們 平 均 地 來 使 用 網 路 頻 寬 , 讓 每 個 網 路 上 的 使 用 者 感 覺 像 專 用 的 網 路 但 實 際 上 是 多 人 共 同 使 用 。
Internet 上 目 前 大 部 份 是 使 用 Ethernet 網 路 , 而 且 是 使 用 TCPIP Protocol , 所 謂 Protocol 是 一 個 規 約 , 也 就 是 兩 邊 所 講 的 語 言 要 一 樣 才 可 以 溝 通 , 所 以 一 邊 使 用 TCPIP 送 資 料 , 而 接 收 端 也 要 使 用 TCPIP 才 知 道 對 方 在 說 什 麼 , 在 Ethernet 的 網 路 上 傳 送 的 封 包 除 了 有 Ethernet Header 還 有 TCPIP 等 資 料 , 而 且 一 個 Ethernet 的 封 包 大 小 最 多 為 1518 Bytes , 下 圖 說 明 封 包 的 格 式




最 前 面 是 Ethernet 的 Header , 有 目 的 地 的 Ethernet ID 及 來 源 的 Ethernet ID, 接 著 是 IP Header , 然 後 是 TCP 的 Header 及 所 傳 輸 的 資 料 , 在 Internet 上 所 傳 輸 的 資 料 皆 是 以 此 種 模 式 來 傳 輸 , TCPIP Protocol 是 一 個 代 稱 , 實 際 上 這 一 組 的 Protocol 相 當 多 , 除 了 TCP 及 IP 外 還 有 UDP 、 ARP 、 ICMP 、 SMTP 等 等 相 當 多 的 Protocol , 但 在 此 所 要 討 論 主 要 還 是 以 IP 為 主 , 因 為 在 Internet 上 皆 是 使 用 IP 來 使 資 料 送 到 所 連 線 的 點 , 這 個 點 當 然 可 能 在 全 球 各 地 , 這 便 是 IP Routing 的 功 能 , 以 下 對 IP Routing 作 更 詳 細 的 說 明 。

IP Address & Network Number

談 IP Routing 要 從 IP Address 開 始 談 起 , 網 路 上 的 設 備 有 Router 、 Hosts 、 Gateway 等 等 的 字 眼 , 在 此 要 先 說 明 清 楚 , 所 謂 Router 是 指 能 將 進 入 Router 的 封 包 根 據 其 目 的 IP Address 來 判 斷 將 此 封 包 以 最 近 的 路 徑 送 達 目 的 地 者 稱 之 , 除 了 如 CISCO 、 3Com 等 的 Router 外 , 另 外 UNIX 主 機 同 樣 也 具 備 這 樣 的 功 能 , 所 以 在 以 下 所 說 的 Router 可 能 是 實 際 的 Router, 也 可 能 是 UNIX 主 機 , Hosts 一 般 是 指 主 機 , 可 能 是 PC 執 行 TCPIP 的 軟 體 或 是 UNIX 主 機 , 而 Gateway 是 同 Router 一 樣 , 以 下 便 只 使 用 Router 、 Hosts 及 Gateway 稱 之 , 不 另 外 說 明 。
要 使 用 TCPIP 功 能 , 網 路 上 的 設 備 Router 或 是 Hosts 皆 需 要 設 定 IP Address , Router 必 須 對 每 個 介 面 設 定 一 個 IP Address , 所 以 Router 視 其 介 面 的 多 寡 可 能 有 多 個 IP Address 。IP Address 的 格 式 如 下
nnn.nnn.nnn.nnn
nnn 是 從 0 - 255 , 每 個 數 字 之 間 以 "." 來 區 隔 , 但 是 0.0.0.0 及 255.255.255.255 是 不 能 使 用 的 IP Address , IP Address 的 使 用 是 有 一 些 限 制 , 概 略 而 言 0 及 255 不 可 擺 在 IP address 的 首 位 及 最 後 一 個 數 字 , 因 為 這 些 IP Address 是 有 特 殊 用 途 , 所 以 正 確 的 IP Address 如 下 所 示
192.10.10.2
145.23.12.100
這 是 概 略 的 說 法 , 若 欲 詳 細 了 解 請 參 考 TCPIP 的 相 關 書 籍 及 資 料 。
IP Address 除 了 內 含 有 主 機 的 號 碼 (Host Number) 外 , 另 外 也 有 所 謂 網 路 號 碼 (Network Number) , Routing 的 執 行 主 要 是 根 據 Network Number 來 選 擇 最 佳 路 徑 來 傳 送 封 包 , 如 何 知 道 所 使 用 的 IP Address 之 Network Number 是 什 麼 , 在 IP Address 中 分 為 幾 個 Class , 可 歸 類 為

Class
0.0.0.0126.255.255.255A Class
128.0.0.0191.255.255.255B Class
192.0.0.0223.255.255.255C Class
224.0.0.0255.255.255.255D Class
在 Internet 上 的 使 用 , 若 一 個 公 司 向 ISP 申 請 通 常 所 給 的 是 C Class , 所 謂 C Class 便 是 如
203.67.10.0
202.67.12.0
這 樣 便 表 示 可 使 用 的 IP Address 是
203.67.10.1 -- 203.67.10.254
202.67.12.1 -- 202.67.12.254
203.67.10.0 為 什 麼 不 能 用 , 那 是 203.67.10.0 便 是 所 謂 的 Network Number , 而 203.67.10.255 不 能 用 因 為 是 Broadcast Address , 所 以 一 個 C Class 可 使 用 254 個 IP Address 。
跟 著 IP Address 有 所 謂 的 Net Mask , 事 實 上 是 要 使 用 IP Address 及 Net Mask 作 AND 的 結 果 得 到 Network Number , 所 以 各 Class 的 預 設 的 Net Mask 為

255.0.0.0----A Class
255.255.0.0----B Class
255.255.255.0----C Class
要 計 算 所 使 用 IP Address 的 Network Number 可 歸 納 為 Net Mask 為 0 的 填 0 , 為 255 的 保 留 , 以 下 為 例
      203. 67. 10. 45  <-- IP Address
      255.255.255.  0  <-- Net Mask
    ------------------- 
      203. 67. 10.  0  <-- Network Number


      202. 10. 35.100  <-- IP Address
      255.255.255.  0  <-- Net Mask
    -------------------
      202. 10. 35.  0  <-- Network Number
所 以 Network Number 是 使 用 IP Address 及 Net Mask 所 得 來 的 , 計 算 Network Number 的 方 式 要 清 楚 , 否 則 便 無 法 了 解 IP Routing 的 方 法 。

IP Routing

以 下 便 要 開 始 來 說 明 IP Routing 的 執 行 方 式 , IP Routing 的 執 行 需 要 一 台 Router , 對 Router 的 每 個 介 面 皆 需 設 定 IP Address 及 Net Mask , 這 兩 個 一 設 定 這 個 介 面 的 Network Number 便 已 決 定 , Net Mask 可 以 不 用 設 定 , 系 統 會 以 預 設 的 Net Mask 來 給 予 , Network Number 一 決 定 後 在 這 個 Router 介 面 上 的 Hosts 或 其 他 網 路 設 備 必 須 設 定 為 同 一 個 Network Number





在 上 圖 中 , Router 的 介 面 IP Address 為 "203.67.10.254" 因 這 個 IP Address 屬 C Class , 所 以 其 Net Mask 為 "255.255.255.0" , 得 知 其 Network Number 為 "203.67.10.0" , 相 對 的 其 他 的 Hosts 也 必 須 是 "203.67.10.0" 這 個 Network Number , 左 下 角 的 Hosts 所 設 定 的 IP Address 為 "202.10.10.5" , 其 Network Number 為 "202.10.10.0" , 如 此 設 定 這 台 Hosts 是 無 法 和 "203.67.10.0" 這 個 Network Number 上 的 Hosts 或 是 Router 來 連 線 的 。
在 此 要 加 以 說 明 Hosts 傳 封 包 的 方 式 便 會 更 清 楚 為 何 在 一 個 網 路 連 線 上 "202.10.10.5" 不 能 和 "203.67.10.n" 的 Hosts 連 線 。 在 Hosts 上 TCPIP 的 設 定 通 常 有 三 項

IP Address
Net Mask
Default Gateway(Router)

由 IP Address 及 Net Mask 可 得 知 所 在 的 Network Number , 以 上 圖 中 Hosts "203.67.10.100" 為 例 , 其 Network Number 為 "203.67.10.0" , 若 在 這 台 主 機 上 執 行
# telnet 203.67.10.1
Hosts 會 取 目 的 IP Address 也 就 是 "203.67.10.1" 和 本 身 的 Net Mask "255.255.255.0" 作 AND , 得 到 "203.67.10.0" 這 個 Network Number , 表 示 所 欲 傳 送 的 Network Number 為 "203.67.10.0" , 之 後 便 和 本 身 的 Network Number 作 比 較 , 結 果 是 在 同 一 個 Network Number 上 , 便 將 封 包 送 到 網 路 上 , 對 封 包 不 作 處 理 。 以 左 下 角 Hosts "202.10.10.5" 為 例 , 本 身 的 Network Number 為 "202.10.10.0" , 一 樣 執 行
# telnet 203.67.10.1
目 的 地 的 Network number 為 "203.67.10.0" , 結 果 和 本 身 的 Network Number 不 同 , 此 時 若 Default Router 有 設 定 則 會 交 由 Router 代 為 傳 送 , Default Router 的 設 定 必 須 為 同 一 個 Network Number , 在 圖 中 Router 之 IP Address 為 "203.67.10.254" 不 能 為 "202.10.10.5" 的 Default Router , 所 以 封 包 便 無 法 送 出 , 因 此 無 法 連 線 。 若 Default Router 沒 有 設 定 則 跟 本 無 法 將 封 包 送 出 , 所 以 也 就 無 法 連 線 。
以 上 的 原 則 是 Hosts 要 送 出 封 包 時 所 執 行 的 動 作 , 根 據 以 上 的 原 則 整 理 其 流 程 圖 如 下





以 上 是 Hosts 封 包 送 出 的 流 程 , 由 上 所 述 在 同 一 個 Lan 上 的 Host 及 Router 必 須 在 同 一 個 Network Number , 否 則 無 法 連 線 。
而 Router 一 般 有 多 個 介 面 , 有 所 謂 2 LAN 2 WAN 是 表 有 二 個 Etherent 介 面 及 二 個 廣 域 的 介 面 , 這 些 介 面 要 使 用 時 皆 要 先 設 定 IP Address , 這 在 前 面 已 提 過 , 而 各 個 介 面 皆 需 是 不 同 的 Network Number , 如 下 圖 所 示




以 上 各 界 面 的 Net Mask 為 255.255.255.0 , 所 以 介 面 一 的 Network Number 為 203.67.10.0 , 介 面 二 的 Network Number 為 202.10.10.0 。
在 每 個 Router 中 皆 有 所 謂 的 Routing Table , Router 選 擇 最 佳 路 徑 皆 是 由 Routing Table 來 決 定 , 而 Routing Table 可 由 管 理 者 自 行 建 立 , 稱 之 為 Static Route , 也 可 使 用 RIP 及 OSPF 來 自 行 學 習 , 在 Internet 的 使 用 中 End User 端 皆 是 使 用 Static Router , 而 ISP 則 使 用 Static Route 和 RIP 或 OSPF 並 用 , 在 此 僅 介 紹 Static Route 來 說 明 , RIP 及 OSPF 在 不 久 的 將 來 將 專 篇 介 紹 。
若 公 司 僅 有 一 顆 Router , 那 設 定 非 常 簡 單 , 因 為 當 Router 的 介 面 IP Address 一 設 定 完 成 時 系 統 便 自 動 建 立 一 個 所 在 Network Number 的 Routing , 以 上 圖 為 例 , 當 每 個 介 面 IP Address 設 定 完 成 , Router 的 Routing Table 便 自 動 建 立 如 下


DestinationNet MaskGatewayMetric
203.67.10.0255.255.255.0203.67.10.2540
202.10.10.0255.255.255.0202.10.10.2540
192.10.12.0255.255.255.0192.10.12.30


此 時 圖 中 203.67.10.1 及 202.10.10.1 兩 台 Hosts 資 料 可 以 互 通 , 但 是 若 是 要 連 線 到 不 是 這 兩 個 Network 203.67.10.0 及 202.10.10.0 的 網 路 如 192.192.1.10 時 , 因 為 Routing Table 中 沒 有 這 個 路 徑 , 所 以 便 無 法 連 線 。
若 廣 域 網 路 是 連 接 到 Internet , 那 還 需 加 上 一 行 Default Route , 所 謂 Default Router 是 指 在 Routing Table 找 不 到 合 乎 條 件 的 路 徑 時 便 會 將 封 包 往 Default Router 送 , 此 時 Routing Table 加 上 Default Route 時 如 下 表 所 示


DestinationNet MaskGatewayMetric
203.67.10.0255.255.255.0203.67.10.2540
202.10.10.0255.255.255.0202.10.10.2540
192.10.12.0255.255.255.0192.10.12.30
default192.10.12.30


此 時 圖 中 的 兩 台 Hosts 欲 連 線 到 任 一 個 其 他 的 網 路 時 , Router 便 會 將 封 包 由 廣 域 網 路 的 介 面 送 出 , 由 下 一 個 Router 來 代 為 傳 送 。
接 下 來 便 以 上 圖 來 說 明 整 個 Router 選 路 徑 的 動 作 , 在 上 圖 中 兩 台 Host 的 設 定 如 下
	Host1

           IP Address = 203.67.10.1
	   Net Mask   = 255.255.255.0
           default Router = 203.67.10.254
  	
        Host2

           IP Address = 202.10.10.1
           NetMask    = 255.255.255.0
           Default Router = 202.10.10.254
當 在 Hosts1 執 行
	# telnet 202.10.10.1
時 , 因 為 目 的 位 址 是 不 同 網 路 , 所 以 會 將 封 包 送 到 203.67.10.254 的 Default Router 由 Router 來 傳 送 , Router 收 到 封 包 後 便 將 封 包 的 Destination 的 IP Address 202.10.10.1 取 出 , 便 開 始 由 Routing Table 中 找 尋 路 徑 , 首 先 將 Destination IP Address 和 Routing Table 中 的 第 一 行 的 Net Mask 作 AND 得 到 欲 前 往 的 Network Number 202.10.10.0 , 但 是 Routing Table 中 第 一 行 的 Destination Network 是 203.67.10.0 , 所 以 不 符 合 , 繼 續 和 第 二 行 Routing Table 比 對 , 結 果 Routing Table 第 二 行 符 合 , 所 以 便 將 封 包 往 202.10.10.254 的 介 面 送 出 , 封 包 便 可 到 達 202.10.10.1 (Host2) 的 主 機 , 反 之 Host2 要 回 Host1 的 封 包 也 是 以 一 樣 的 方 式 傳 回 Host1 , 網 路 上 的 Router 皆 是 以 此 方 式 來 選 擇 路 徑 , 以 下 是 整 個 Routing 動 作 的 流 程 圖




不 管 網 路 架 構 是 如 何 其 Router 的 動 作 皆 是 一 樣 , 只 要 網 路 上 的 Hosts 的 Default Router 設 定 正 確 , 而 且 Router 上 的 Routing Table 設 定 讓 網 路 上 的 Network 皆 有 路 徑 可 到 達 , 那 保 證 網 路 一 定 能 通 。


Internet 的網路組成


以 上 說 明 了 Routing 的 動 作 及 流 程 , 接 下 來 便 要 來 說 明 Internet 的 網 路 架 構 了 , Internet 是 一 個 全 球 的 網 路 , 在 這 個 網 路 上 已 經 有 數 百 萬 台 提 供 服 務 的 主 機 , 而 使 用 者 保 守 估 計 也 超 過 了 三 千 萬 的 使 用 者 , 這 麼 大 的 網 路 皆 是 使 用 Router 來 架 構 完 成 的 , 首 先 由 所 謂 的 NIC 為 源 頭 , 這 個 組 織 是 在 美 國 , 因 為 Internet 的 起 源 是 在 美 國 , 由 這 個 組 織 來 分 發 所 使 用 的 IP Address , 要 在 Internet 上 使 用 的 IP Address 皆 是 要 申 請 的 , 不 合 法 的 IP Address 的 封 包 是 無 法 進 到 Internet 網 路 中 的 , 之 前 在 說 明 IP Address 時 有 提 到 IP Address 分 為 A Class、 B Class 及 C Class , NIC 這 個 組 織 將 這 些 的 IP Address 根 據 申 請 者 的 需 求 分 派 IP Address , 若 取 得 A Class 或 是 B Class 還 可 將 IP Address 分 派 給 別 人 使 用 。 在 此 將 以 小 網 路 漸 進 地 說 明 到 整 個 網 路 , 若 從 NIC 取 得 一 個 B Class 的 IP Address 160.10.0.0 , 便 可 分 派 多 個 C CLass 給 其 單 位 連 接 使 用 如 下 圖




在 上 圖 中 由 A Class 中 取 得 了 一 個 B Class 160.10.0.0 的 IP Address , 有 了 B Class IP Address , 再 分 派 C Class 的 IP Address 給 其 他 單 位 使 用 , 總 共 使 用 了 5 個 Router , 以 下 各 表 格 顯 示 各 Router 的 Routing Table 之 設 定


Router 1
NumberDestinationNet MaskGatewayMetric
1160.10.1.0255.255.255.0160.10.1.2540
2160.10.2.0255.255.255.0160.10.1.2532
3160.10.3.0255.255.255.0160.10.1.2532
4199.1.3.0255.255.255.0199.1.3.2540
5default199.1.3.2541


Router 2
NumberDestinationNet MaskGatewayMetric
1160.10.1.0255.255.255.0160.10.1.2530
2160.10.2.0255.255.255.0199.1.2.2541
3160.10.3.0255.255.255.0199.1.1.2541
4199.1.1.0255.255.255.0199.1.1.2540
5199.1.2.0255.255.255.0199.1.2.2540
6default160.10.1.2541


Router 3
NumberDestinationNet MaskGatewayMetric
1160.10.2.0255.255.255.0160.10.2.2540
2199.1.2.0255.255.255.0199.1.2.2530
3default199.1.2.2531


Router 4
NumberDestinationNet MaskGatewayMetric
1160.10.3.0255.255.255.0160.10.3.2540
2199.1.1.0255.255.255.0199.1.1.2530
3default199.1.1.2531


除 了 Router 1 、 Router 2 、 Router 3 、 Router 4 的 Router 需 要 設 定 外 , Router 5 也 需 要 , 因 為 Router 5 是 A Class , 由 A Class 取 得 一 個 B Class 來 使 用 , 所 以 在 Router 5 的 Routing Table 中 需 設 定 所 有 160.10.0.0 的 封 包 皆 送 到 Router 1 來 , 因 此 Router 5 的 Routing Table 中 一 定 有 以 下 的 設 定


Router 5
NumberDestinationNet MaskGatewayMetric
1160.10.0.0255.255.0.0199.1.3.2540
2...255.255.255.0...0
3default...1


以 上 是 各 Router 的 Routing Table 的 設 定 , 在 Router 1 及 Router 2 的 Routing Table 項 次 較 多 , 又 因 為 一 個 B Class 可 以 使 用 254 個 C Class , 以 上 只 連 接 了 2 個 C Class , 所 以 在 Router 1 及 Router 2 所 在 的 Lan 上 到 時 可 能 有 數 十 個 Router 以 連 接 254 個 C Class , 而 這 些 Router 的 Routing Table 皆 使 用 Static Route 的 話 , 以 人 工 的 方 式 來 建 立 那 相 當 麻 煩 , 而 且 維 護 非 常 複 雜 , 所 以 便 需 使 用 Routing Protocol RIP 或 OSPF 讓 Router 自 行 學 習 建 立 Routing Table , 不 用 以 人 工 建 立 。
在 以 上 各 個 Router 的 Routing Table 中 有 些 Gateway 的 設 定 是 指 到 自 己 Router 的 IP Address 如 Router 2 的 第 1 項 , 也 有 指 到 下 一 個 Router 的 IP Address 如 Router 1 的 第 2 項 , 這 原 則 是 若 Destination Network Number 是 在 本 身 的 Router 介 面 上 則 Gateway 設 定 在 本 身 的 IP Address 上 , 若 是 Destination Network Number 還 需 要 由 下 一 個 Router 代 為 傳 送 則 Gateway 的 設 定 指 到 下 一 個 Router 的 IP Address , 但 是 WAN Link 因 為 是 點 對 點 的 連 接 , 所 以 Gateway 設 定 在 本 身 的 WAN 介 面 的 IP Address , 或 是 另 一 端 的 IP Address 皆 可 以 。

以 上 是 說 明 TCP/IP IP Routing 的 概 念 , 以 上 各 個 Router 的 Routing Table 可 以 是 由 管 理 者 來 一 個 一 個 設 定 , 我 們 稱 之 為 Static Route, 但 是 在 Internet 上 的 Routing 實 在 是 太 多 了 , 由 其 是 ISP 中 的 各 Router 或 是 ISP 與 ISP 間 的 Routing Table 不 太 可 能 使 用 Static Route 的 設 定 , 那 太 麻 煩 了 , 所 以 會 使 用 所 謂 的 Routing Protocol 來 自 動 地 學 習 交 換 各 個 Router 的 Routing Path , 這 些 的 Routing Protocol 有 RIP、OSPF、IS-IS 或 是 BGP 等 , 這 些 的 Routing Protocol 便 肩 負 者 整 個 Internet Routing 的 交 換。

說 起 這 些 的 Routing Protocol 是 可 以 寫 成 一 本 書 的 , 在 這 我 不 打 算 詳 述 , 待 日 後 有 時 間 再 來 說 明。
在 下 圖 中 先 給 各 位 一 個 概 略 的 Internet 的 網 路 架 構 , 想 了 解 更 多 的 人 可 以 循 著 圖 中 的 各 個 連 接 所 使 用 的 Routing Protocol 來 更 進 一 步 地 學 習 IP Routing。



經 由 以 上 的 說 明 對 Internet 的 架 構 及 Routing 的 方 式 應 該 有 所 了 解 , 雖 然 Internet 的 網 路 架 設 很 大 , 但 是 其 設 定 並 非 那 麼 複 雜 , 仔 細 想 想 便 會 了 解 。 以 上 對 TCPIP 只 介 紹 一 些 , 若 要 了 解 更 多 需 參 考 TCPIP 的 書 籍 , 希 望 這 篇 短 文 對 您 有 所 幫 助 。


Lastest Updated : 1997 年 01 月 24 日

若有話告訴我 , 請留下您的悄悄話 , 同時也歡迎到葉建良的家坐坐