TCP / IP

61
TCP TCP / / IP IP 麋麋 麋麋

description

TCP / IP. 麋鹿. 何謂通訊協定. 簡單的說就是種標準和規則 如果要將節點 A 的東西傳到節點 B ,他們必須有相同的協   定才能傳輸。  節點:連接在網路上的每個電腦設備都稱之為節點,都有屬於自己的位址跟名字可以供判別。EX:個人電腦、工作站、伺服器。. TCP/IP的由來. - PowerPoint PPT Presentation

Transcript of TCP / IP

Page 1: TCP / IP

TCPTCP // IPIP麋鹿麋鹿

Page 2: TCP / IP

何謂通訊協定何謂通訊協定 簡單的說就是種標準和規則簡單的說就是種標準和規則

  如果要將節點如果要將節點 AA 的東西傳到節點的東西傳到節點 BB ,他們必須有相同的,他們必須有相同的協   定才能傳輸。協   定才能傳輸。

 節點:連接在網路上的每個電腦設備都稱之為節點,都有 節點:連接在網路上的每個電腦設備都稱之為節點,都有屬於自己的位址跟名字可以供判別。EX:個人電腦、工屬於自己的位址跟名字可以供判別。EX:個人電腦、工作站、伺服器。作站、伺服器。

Page 3: TCP / IP

TCP/IP的由來TCP/IP的由來 TCP/IP是冷戰時期的產物,是應美國國防部的戰爭TCP/IP是冷戰時期的產物,是應美國國防部的戰爭

考量而開發的。為配合考量而開發的。為配合 ARPANETARPANET (Advanced Research (Advanced Research Projects Agency Network) .Projects Agency Network) . 來處理不同硬體間的連線來處理不同硬體間的連線問題。其實TCP/IP所指的是一套龐大的通訊協定家問題。其實TCP/IP所指的是一套龐大的通訊協定家族,其中以族,其中以 Transmission Control Protocol(TCP) Transmission Control Protocol(TCP) 及 及 IInternet Protocol (IP) nternet Protocol (IP) 這兩套協定最具代表性 ,IP工這兩套協定最具代表性 ,IP工作於網路層,提供一套標準讓有不同的網路有規則可循,作於網路層,提供一套標準讓有不同的網路有規則可循,前提是您想使用 前提是您想使用 IP IP 從一個網路將封包路由到另一個網路從一個網路將封包路由到另一個網路 。。設計上可用來在LAN-LAN與PC-PC間進行設計上可用來在LAN-LAN與PC-PC間進行傳輸。IP可視為遊戲規則,TCP用來詮釋這些規則。傳輸。IP可視為遊戲規則,TCP用來詮釋這些規則。

Page 4: TCP / IP

IPIP IP IP 是 是 Internet Protocol Internet Protocol 的縮寫的縮寫 ,他的功能有點像門牌,他的功能有點像門牌

號碼,主要要在號碼,主要要在網路層網路層( Layer 3 )( Layer 3 )的功能。的功能。 IP IP 是一種資料封包的格式,這個 是一種資料封包的格式,這個 IP IP 資料封包最大可以資料封包最大可以

到達 到達 65535 bytes 65535 bytes 為了讓 為了讓 IP IP 封包可以適用在所有的網路媒體訊框當中,因封包可以適用在所有的網路媒體訊框當中,因

此, 此, IP IP 封包是可以被『重組的』!封包是可以被『重組的』!

Page 5: TCP / IP

網域的概念與 網域的概念與 IP IP 的分級的分級 IP IP 的組成當中,除了以 的組成當中,除了以 32 bits 32 bits 的組成方的組成方

式來說明外,還具有所謂的『網域』的概式來說明外,還具有所謂的『網域』的概念存在 念存在

事實上在 事實上在 IP IP 的 的 32 bits 32 bits 資料中,主要分資料中,主要分為 為 HOST_ID HOST_ID 與 與 Net_ID Net_ID 兩部份 兩部份

同一個 同一個 Net_ID Net_ID 內,不能具有相同的 內,不能具有相同的 HosHost_ID t_ID ,否則就會發生 ,否則就會發生 IP IP 衝突,可能會造衝突,可能會造成兩部主機都沒有辦法使用網路的問題! 成兩部主機都沒有辦法使用網路的問題!

Page 6: TCP / IP

192.168.0.0~192.168.0.255 192.168.0.0~192.168.0.255 這個 這個 C Class C Class 的說明: 的說明: 11011000000.10101000.00000000.0000000000000.10101000.00000000.0000000011000000.10101000.00000000.11111111 11000000.10101000.00000000.11111111

|------------Net_ID----------|-host--||------------Net_ID----------|-host--| 在 在 C Class C Class 的範例當中,前面三組數字 的範例當中,前面三組數字 (1(1

92.168.0) 92.168.0) 稱為網域號碼 稱為網域號碼 (Net_ID) (Net_ID) ,最後,最後面一組數字則稱為 主機號碼 面一組數字則稱為 主機號碼 (Host_ID)(Host_ID) 。。同一個網域當中的定義是『在同一個網段同一個網域當中的定義是『在同一個網段內,主機的 內,主機的 IP IP 具有相同的 具有相同的 Net_ID Net_ID ,並,並且具有獨特的 且具有獨特的 Host_IDHost_ID 』,那麼這些 』,那麼這些 IP IP 群就是同一個網域內的 群就是同一個網域內的 IP IP 網段 。網段 。

Page 7: TCP / IP

在同一個網段內,在同一個網段內, Net_ID Net_ID 是不變的,而 是不變的,而 Host_ID Host_ID 則是則是不可重複,此外, 不可重複,此外, Host_ID Host_ID 在二進位的表示法當中,不可在二進位的表示法當中,不可同時為 同時為 0 0 也不可同時為 也不可同時為 1 1 ,例如上面的例子當中, ,例如上面的例子當中, 192.1192.168.0.0 ( Host_ID 68.0.0 ( Host_ID 全部為 全部為 0 )0 ) 以及 以及 192.168.0.255 ( Host_I192.168.0.255 ( Host_ID D 全部為 全部為 1 ) 1 ) 不可用來作為網段內主機的 不可用來作為網段內主機的 IP IP 設定,也就設定,也就是說,這個網段內可用來設定主機的 是說,這個網段內可用來設定主機的 IP IP 是由 是由 192.168.0.1 192.168.0.1 到 到 192.168.0.254192.168.0.254 ;;

在同一個網域之內,每一部主機都可以透過 在同一個網域之內,每一部主機都可以透過 MAC MAC 訊框的訊框的格式傳遞資料, 並透過 格式傳遞資料, 並透過 ARPARP 協定與廣播封包 協定與廣播封包 (broadcas(broadcast) t) 取得 取得 MAC MAC 與 與 IP IP 的對應後,直接利用 的對應後,直接利用 MAC MAC 訊框傳遞訊框傳遞資料。 資料。

在同一個物理網段之內,如果兩部主機設定成不同的 在同一個物理網段之內,如果兩部主機設定成不同的 IP IP 網網段,則兩部主機無法直接以 段,則兩部主機無法直接以 MAC MAC 訊框格式進行資料的傳訊框格式進行資料的傳遞,因為廣播封包無法查詢到 遞,因為廣播封包無法查詢到 MAC MAC 與 與 IP IP 的對應。 的對應。

當 當 Host_ID Host_ID 所佔用的位元越大,亦即 所佔用的位元越大,亦即 Host_ID Host_ID 數量越多數量越多時,表示同一個網域內可用以設定主機的 時,表示同一個網域內可用以設定主機的 IP IP 數量越多。數量越多。

Page 8: TCP / IP

IP的分級IP的分級 A Class : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> Net_ID A Class : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> Net_ID 的開的開頭是 頭是 0 0

        |--net--|---------host------------||--net--|---------host------------| A Class : 0.xx.xx.xx ~ A Class : 0.xx.xx.xx ~ 126.xx.xx.xx 126.xx.xx.xx B Class : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> Net_ID B Class : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> Net_ID 的開的開頭是 頭是 1010

|------net-------|------host------||------net-------|------host------| B Class : 128.xx.xx.xx ~ 191.xx.xx.xx B Class : 128.xx.xx.xx ~ 191.xx.xx.xx C Class : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> Net_ID C Class : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> Net_ID 的開的開

頭是 頭是 110110 |-----------net-----------|-host--| |-----------net-----------|-host--| C Class : 192.xx.xx.xx ~ 223.xx.xx.xx C Class : 192.xx.xx.xx ~ 223.xx.xx.xx

Page 9: TCP / IP

消失的消失的 127.xx.xx.xx 127.xx.xx.xx 因為這個網段被拿去給作業系統做為內部因為這個網段被拿去給作業系統做為內部迴圈網路 迴圈網路 ( loopback ) ( loopback ) 之用了!在各個作之用了!在各個作業系統當中,不管該主機的硬體有沒有網業系統當中,不管該主機的硬體有沒有網路卡, 為了讓作業確認自己的網路沒有問路卡, 為了讓作業確認自己的網路沒有問題,所以將 題,所以將 127.xx.xx.xx 127.xx.xx.xx 這個 這個 A Class A Class 的網段的網段拿到作業系統當中,來做為內部的拿到作業系統當中,來做為內部的回路測試回路測試!所以啦,這個 !所以啦,這個 127.0.0.1 127.0.0.1 就不就不可以用來做為其他網路卡的網路網域之設可以用來做為其他網路卡的網路網域之設定喔。 定喔。

Page 10: TCP / IP

Netmask Netmask 的用途的用途 判斷目的地電腦判斷目的地電腦 IPIP 位址是否與自己電腦在位址是否與自己電腦在

同在一網域內如果發現目的地電腦同在一網域內如果發現目的地電腦 IPIP 位址位址不在內部網域,則電腦會將該資料封包傳不在內部網域,則電腦會將該資料封包傳送至閘道器 送至閘道器 ((GatewayGateway) ) ,再由路由器 ,再由路由器 (Ro(Router)uter) 將該資料封包傳至目的地電腦。將該資料封包傳至目的地電腦。

Page 11: TCP / IP

Netmask Netmask 是用來定義出網域的最重要的一個參數是用來定義出網域的最重要的一個參數 比較容易記憶的方法 :比較容易記憶的方法 : 以 以 192.168.0.0~192.168.0.255 192.168.0.0~192.168.0.255 這個網域為範例好了,如這個網域為範例好了,如下所示,這個 下所示,這個 IP IP 網段可以分為 網段可以分為 Net_ID Net_ID 與 與 Host_IDHost_ID ,,既然 既然 Net_ID Net_ID 是不可變的,那就假設他所佔據的 是不可變的,那就假設他所佔據的 bits bits 已已經被用光了 經被用光了 ( ( 全部為 全部為 1 )1 ) ,而 ,而 Host_ID Host_ID 是可變的,就將是可變的,就將他想成是保留著 他想成是保留著 ( ( 全部為 全部為 0 )0 ) ,所以, ,所以, Netmask Netmask 的表的表示就成為:示就成為: 192.168.0.0~192.168.0.255 這個 C Class 的 Netmask 說明 11000000.10101000.00000000.00000000 11000000.10101000.00000000.11111111

|----------Net_ID---------|-host--| 11111111.11111111.11111111.00000000 <== Netmask 二進位

255 . 255 . 255 . 0 <== Netmask 十進位

Page 12: TCP / IP

Class A, B, C Class A, B, C 三個等級的 三個等級的 Netmask Netmask 表示方式: 表示方式: A Class : A Class : 1111111111111111.00000000.00000000.00000000 ==> 255. 0. 0. 0.00000000.00000000.00000000 ==> 255. 0. 0. 0 B Class : B Class : 1111111111111111..1111111111111111.00000000.00000000 ==> 255.255. 0. 0.00000000.00000000 ==> 255.255. 0. 0 C Class : C Class : 1111111111111111..1111111111111111..1111111111111111.00000000 ==> 255.255.255. 0 .00000000 ==> 255.255.255. 0 剛剛提到了當 剛剛提到了當 Host_ID Host_ID 全部為 全部為 0 0 以及全部為 以及全部為 1 1 的時後該 的時後該

IP IP 是不可以使用的,因為 是不可以使用的,因為 Host_ID Host_ID 全部為 全部為 0 0 的時後,表的時後,表示 示 IP IP 是該網段的 是該網段的 Network Network ,至於全部為 ,至於全部為 1 1 的時後就表的時後就表示該網段最後一個 示該網段最後一個 IP IP ,也稱為 ,也稱為 Broadcast Broadcast ,所以說,在 ,所以說,在 192.168.0.0 ~ 192.168.0.255 192.168.0.0 ~ 192.168.0.255 這個 這個 IP IP 網段裡面的相關網路網段裡面的相關網路參數就有: 參數就有: Netmask: 255.255.255.0 Netmask: 255.255.255.0 <==<== 網域定義中,網域定義中,最重要的參數最重要的參數 Network: 192.168.0.0 Network: 192.168.0.0 <==<==第一個 第一個 IP IP

Broadcast: 192.168.0.255 Broadcast: 192.168.0.255 <==<== 最後一個 最後一個 IPIP 可用以設定成為主機的 可用以設定成為主機的 IP IP 數: 數: 192.168.0.1 ~ 192.168.0.254192.168.0.1 ~ 192.168.0.254

Page 13: TCP / IP

一般來說,如果我們知道了 一般來說,如果我們知道了 Network Network 以以及 及 Netmask Netmask 之後,就可以定義出該網域之後,就可以定義出該網域的所有 的所有 IP IP 了!因為由 了!因為由 Netmask Netmask 就可以就可以推算出來 推算出來 Broadcast Broadcast 的 的 IP IP 啊!因此,我啊!因此,我們常常會以 們常常會以 Network Network 以及 以及 Netmask Netmask 來來表示一個網域 表示一個網域

EX:EX: Network/Netmask Network/Netmask 192.168.0.0/255.255.255.0 192.168.0.0/255.255.255.0 192.168.0.0/24192.168.0.0/24 <==<== 因為 因為 Net_ID Net_ID 共有 共有 24 24

個 個 bitsbits

Page 14: TCP / IP

簡單的問題簡單的問題 請試著計算出 請試著計算出 172.16.0.0/23 172.16.0.0/23 這個網域的 這個網域的

Netmask, Network, Broadcast Netmask, Network, Broadcast 等參數 等參數

Page 15: TCP / IP

子網路的切分子網路的切分 在共享媒體上面, 每當任何一部主機想要在共享媒體上面, 每當任何一部主機想要

使用該網路媒體時,就得要利用 使用該網路媒體時,就得要利用 CSMA/CDCSMA/CD 的方式去進行網路監聽的工作,的方式去進行網路監聽的工作,此時對於這麼大的一個網路架構來說,每此時對於這麼大的一個網路架構來說,每部主機要發出 部主機要發出 MAC MAC 訊框前要進行的這個 訊框前要進行的這個 CSMA/CD CSMA/CD 實在會造成系統上面很嚴重的實在會造成系統上面很嚴重的停頓問題!停頓問題!

記得一個網域內不要超過 記得一個網域內不要超過 30 30 部以上的主部以上的主機數量,那樣網路的效能就會比較好一點 機數量,那樣網路的效能就會比較好一點

Page 16: TCP / IP

更加細分的方法更加細分的方法 C Class C Class 的 的 Net_ID Net_ID 佔了 佔了 24 bits 24 bits ,而其實我們,而其實我們

還可以將這樣的網域切的更細,就是讓第一個 還可以將這樣的網域切的更細,就是讓第一個 HHost_ID ost_ID 被拿來作為 被拿來作為 Net_ID Net_ID ,所以,整個 ,所以,整個 NetNet_ID _ID 就有 就有 25 bits 25 bits ,至於 ,至於 Host_ID Host_ID 則減少為 則減少為 7 7 bits bits 。在這樣的情況下,原來的一個 。在這樣的情況下,原來的一個 C Class C Class 的的網域就可以被切分為兩個子網域,而每個子網域網域就可以被切分為兩個子網域,而每個子網域就有『 就有『 256/2 - 2 = 126 256/2 - 2 = 126 』個可用的 』個可用的 IP IP 了!這樣了!這樣一來,在這個網域當中的主機在進行邏輯廣播時,一來,在這個網域當中的主機在進行邏輯廣播時,回應的主機數量就少了一半, 當然對於網路的效回應的主機數量就少了一半, 當然對於網路的效能多多少少有點好處的啦。能多多少少有點好處的啦。

Page 17: TCP / IP

原本的 原本的 C Class C Class 的 的 Net_ID Net_ID 與 與 Host_ID Host_ID 的分別 的分別 11000000.101010011000000.10101000.00000000.00000000 0.00000000.00000000 Network: 192.168.0.0Network: 192.168.0.0 11000000.10101000.00 11000000.10101000.00000000.11111111 000000.11111111 Broadcast: 192.168.0.255Broadcast: 192.168.0.255

|----------Net_ID---------|-host--| |----------Net_ID---------|-host--| 切成兩個子網路之後的 切成兩個子網路之後的 Net_ID Net_ID 與 與 Host_ID Host_ID 為何? 為何? 11000000.101011000000.1010

1000.00000000.01000.00000000.0 0000000 0000000 多了一個 多了一個 Net_ID Net_ID 了了 , , 為為 00 11000000.10111000000.10101000.00000000.1 01000.00000000.1 0000000 0000000 多了一個 多了一個 Net_ID Net_ID 了了 , , 為為 11

|----------Net_ID-----------|-host--| |----------Net_ID-----------|-host--| 第一個子網路 第一個子網路 Network: Network: 11000000.10101000.00000000.0 000000011000000.10101000.00000000.0 0000000 192.168.0.0 192.168.0.0 Broadcast: Broadcast: 11000000.10101000.00000000.0 111111111000000.10101000.00000000.0 1111111 192.168.0.127 192.168.0.127 |----------Net_ID-----------|-host-| |----------Net_ID-----------|-host-| Netmask: Netmask: 11111111.11111111.11111111.1 000000011111111.11111111.11111111.1 0000000 255.255.255.128 255.255.255.128 所有 所有 IP IP 與網域表示式: 與網域表示式: 192.168.0.0/25 192.168.0.0/25 或 或 192.168.0.0/255.255.25192.168.0.0/255.255.25

5.128 5.128 第二個子網路 第二個子網路 Network: Network: 11000000.10101000.00000000.1 000000011000000.10101000.00000000.1 0000000 192.168.0.128 192.168.0.128 Broadcast: Broadcast: 11000000.10101000.00000000.1 111111111000000.10101000.00000000.1 1111111 192.168.0.255 192.168.0.255 |----------Net_ID-----------|-host-| |----------Net_ID-----------|-host-| Netmask: Netmask: 11111111.11111111.11111111.1 000000011111111.11111111.11111111.1 0000000 255.255.255.128 255.255.255.128 所有 所有 IP IP 與網域表示式: 與網域表示式: 192.168.0.128/25 192.168.0.128/25 或 或 192.168.0.128/255.25192.168.0.128/255.25

5.255.128 5.255.128

Page 18: TCP / IP

IP IP 的種類的種類 Public IP : Public IP : 公共 公共 IPIP ,經由 ,經由 INTERNIC INTERNIC 所統一規劃的 所統一規劃的

IPIP , 有這種 , 有這種 IP IP 才可以連上 才可以連上 Internet Internet ;; Privat IP : Privat IP : 私有 私有 IPIP 或或保留 保留 IPIP ,不能直接連上 ,不能直接連上 InterneInterne

t t 的 的 IP IP , 主要用於區域網路內的主機連線規劃, 主要用於區域網路內的主機連線規劃。。 私有 私有 IP IP 也分別在 也分別在 A, B, C A, B, C 三個 三個 Class Class 當中各保留一段作為私有 當中各保留一段作為私有 IP IP

網段,那就是: 網段,那就是: A ClassA Class :: 10.0.0.0 - 10.255.255.255 10.0.0.0 - 10.255.255.255 B ClassB Class :: 172.16.0.0 - 172.31.255.255 172.16.0.0 - 172.31.255.255 C ClassC Class :: 192.168.0.0 - 192.168.255.255 192.168.0.0 - 192.168.255.255

Page 19: TCP / IP

IPIP 的取得方式的取得方式 目前連上網路的電腦 目前連上網路的電腦 IP IP 取得的方式有兩種,取得的方式有兩種,

一種是一種是固定式固定式的,就是永遠固定這個 的,就是永遠固定這個 IPIP 位位置,大部份是使用在專線用戶,就是像一般置,大部份是使用在專線用戶,就是像一般的公司行號,會向 的公司行號,會向 Hinet Hinet 或 或 SeedNetSeedNet去申請一條專線,讓全公司的人可以上網,去申請一條專線,讓全公司的人可以上網,在申請專線的同時,受理的 在申請專線的同時,受理的 ISPISP(如 (如 Hinet Hinet 或 或 SeedNetSeedNet)就會分給這家公司幾)就會分給這家公司幾組 組 IPIP ,而在公司內部的人,因為一直處於,而在公司內部的人,因為一直處於網路連線狀態,因此大部份的網路連線狀態,因此大部份的 MIS MIS 會以固會以固定 定 IP IP 的方式處理,這樣清楚又容易管理。的方式處理,這樣清楚又容易管理。

Page 20: TCP / IP

另一種取得 另一種取得 IP IP 的方式是的方式是隨機隨機取得的,這種取得的,這種情況大部份是發生在撥接用戶(就是要利情況大部份是發生在撥接用戶(就是要利用數據機 用數據機 + + 電話線 電話線 + + 貴死人的連線費用才貴死人的連線費用才能上網的那種),這種使用者因為不是一能上網的那種),這種使用者因為不是一直處於網路連線狀態,所以當他以電話線撥直處於網路連線狀態,所以當他以電話線撥接上 接上 ISP ISP 時,時, ISP ISP 為隨機的從現有無人用為隨機的從現有無人用的 的 IP IP 中傳給用戶一組 中傳給用戶一組 IPIP ,這樣這台電腦,這樣這台電腦才能順利上網。在現實生活中,我們都會以才能順利上網。在現實生活中,我們都會以身份證字號來辨別一個人,在網路世界中則身份證字號來辨別一個人,在網路世界中則是用 是用 IP IP 來辨別一部電腦,因此如果你是來辨別一部電腦,因此如果你是專線用戶,有空還是把自己的 專線用戶,有空還是把自己的 IP IP 記一下,記一下,免得下回重新安裝電腦時,又要找很久才免得下回重新安裝電腦時,又要找很久才能上網了能上網了 ..

Page 21: TCP / IP

在上面的圖示在上面的圖示中有個地方要中有個地方要注意,那就是注意,那就是『每一行所佔『每一行所佔用的位元數為 用的位元數為 32 bits32 bits 』, 也』, 也就是說, 就是說, IP IP 封包的表頭資封包的表頭資料是 料是 32 bits 32 bits 的倍數喔!那的倍數喔!那各個表頭的內各個表頭的內容分別介紹如容分別介紹如下: 下:

Page 22: TCP / IP

Version(Version(版本版本 ))宣告這個 宣告這個 IP IP 封包的版本,例如目前慣用的還是 封包的版本,例如目前慣用的還是 IPv4 IPv4 這個版本,在這這個版本,在這裡宣告的。裡宣告的。

IHL(Internet Header Length, IPIHL(Internet Header Length, IP 表頭的長度表頭的長度 ))告知這個 告知這個 IP IP 封包的表頭長度,單位為位元組封包的表頭長度,單位為位元組 (bytes)(bytes) 。 此 。 此 IHL IHL 長度長度的範圍為 的範圍為 5~155~15 。。

Type of Service(Type of Service( 服務類型服務類型 ))這個項目的內容為『這個項目的內容為『 PPPDTRUUPPPDTRUU 』,表示這個 』,表示這個 IP IP 封包的服務類型,封包的服務類型,主要分為:主要分為:PPPPPP :表示此 :表示此 IP IP 封包的優先度; 封包的優先度; DD :若為 :若為 0 0 表示一般延遲表示一般延遲 (delay)(delay) ,,若為 若為 1 1 表示為低延遲;表示為低延遲;TT :若為 :若為 0 0 表示為一般傳輸量 表示為一般傳輸量 (throughput)(throughput) ,若為 ,若為 1 1 表示為高傳輸表示為高傳輸量;量;RR :若為 :若為 0 0 表示為一般可靠度表示為一般可靠度 (reliability)(reliability) ,若為 ,若為 1 1 表示高可靠度。表示高可靠度。UUUU :保留尚未被使用。:保留尚未被使用。我們前面談到 我們前面談到 gigabit gigabit 乙太網路時曾提到 乙太網路時曾提到 Jumbo frame Jumbo frame 對吧!可以提對吧!可以提高 高 MTUMTU , 由於 , 由於 gigabit gigabit 乙太網路的種種相關規格可以讓這個 乙太網路的種種相關規格可以讓這個 IP IP 封包封包加速且降低延遲, 某些特殊的標誌就是在這裡說明的。加速且降低延遲, 某些特殊的標誌就是在這裡說明的。

Page 23: TCP / IP

Total Length(Total Length( 總長度總長度 ))指這個 指這個 IP IP 封包的總容量,包括表頭與內容 封包的總容量,包括表頭與內容 (Data) (Data) 部分。最大可達 部分。最大可達 65535 bytes65535 bytes 。。

Identification(Identification(辨別碼辨別碼 ))我們前面提到 我們前面提到 IP IP 袋子必須要放在 袋子必須要放在 MAC MAC 袋子當中。不過,如果 袋子當中。不過,如果 IP IP 袋子太大的話, 就得先要將 袋子太大的話, 就得先要將 IP IP 再重組成較小的袋子然後再放到 再重組成較小的袋子然後再放到 MMAC AC 當中。而當 當中。而當 IP IP 被重組時, 每個來自同一筆資料的小 被重組時, 每個來自同一筆資料的小 IP IP 就得要就得要有個識別碼以告知接收端這些小 有個識別碼以告知接收端這些小 IP IP 其實是來自同一個封包才行。 也其實是來自同一個封包才行。 也就是說,假如 就是說,假如 IP IP 封包其實是 封包其實是 65536 65536 那麼大 那麼大 (( 前一個 前一個 Total LengtTotal Length h 有規定有規定 )) , 那麼這個 , 那麼這個 IP IP 就得要再被分成更小的 就得要再被分成更小的 IP IP 分段後才能塞分段後才能塞進 進 MAC MAC 訊框中。那麼每個小 訊框中。那麼每個小 IP IP 分段是否來自同一個 分段是否來自同一個 IP IP 資料,資料,呵呵!這裡就是那個識別碼啦!呵呵!這裡就是那個識別碼啦!

Flags(Flags( 特殊旗標特殊旗標 ))這個地方的內容為『這個地方的內容為『 0DM0DM 』,其意義為:』,其意義為:DD :若為 :若為 0 0 表示可以分段,若為 表示可以分段,若為 1 1 表示不可分段表示不可分段MM :若為 :若為 0 0 表示此 表示此 IP IP 為最後分段,若為 為最後分段,若為 1 1 表示非最後分段 表示非最後分段

Page 24: TCP / IP

Fragment Offset(Fragment Offset( 分段偏移分段偏移 ))表示目前這個 表示目前這個 IP IP 分段在原始的 分段在原始的 IP IP 封包中所佔的位置。 就有點像是封包中所佔的位置。 就有點像是序號啦,有這個序號才能將所有的小 序號啦,有這個序號才能將所有的小 IP IP 分段組合成為原本的 分段組合成為原本的 IP IP 封封包大小嘛! 透過 包大小嘛! 透過 Total Length, Identification, Flags Total Length, Identification, Flags 以及這個 以及這個 FrFragment Offset agment Offset 就能夠將小 就能夠將小 IP IP 分段在收受端組合起來囉!分段在收受端組合起來囉!

Time To Live(TTL, Time To Live(TTL, 存活時間存活時間 ))表示這個 表示這個 IP IP 封包的存活時間,範圍為 封包的存活時間,範圍為 0-2550-255 。當這個 。當這個 IP IP 封包通過封包通過一個路由器時, 一個路由器時, TTL TTL 就會減一,當 就會減一,當 TTL TTL 為 為 0 0 時,這個封包將會時,這個封包將會被直接丟棄。說實在的,要讓 被直接丟棄。說實在的,要讓 IP IP 封包通過 封包通過 255 255 個路由器,還挺難個路由器,還挺難的~ 的~ ^_^^_^

Protocol Number(Protocol Number( 協定代碼協定代碼 ))由於網路上面的封包協定太多了,每個協定都是裝在 由於網路上面的封包協定太多了,每個協定都是裝在 IP IP 當中的, 所當中的, 所以 以 IP IP 當然就得在表頭上面告知收受端,這個 當然就得在表頭上面告知收受端,這個 IP IP 內含有的資料是什內含有的資料是什麼協定才行。 麼協定才行。

Header Checksum(Header Checksum( 表頭檢查碼表頭檢查碼 ))用來檢查這個 用來檢查這個 IP IP 表頭的錯誤檢驗之用 表頭的錯誤檢驗之用

Page 25: TCP / IP

Source AddressSource Address來源的 來源的 IP IP 位址。位址。

Destination AddressDestination Address有來源還需要有目標才能傳送,這裡就是目標的 有來源還需要有目標才能傳送,這裡就是目標的 IP IP 位址。位址。

Options (Options ( 其他參數其他參數 ))這個是額外的功能,提供包括安全處理機制、路由紀錄、這個是額外的功能,提供包括安全處理機制、路由紀錄、時間戳記、 嚴格與寬鬆之來源路由等。時間戳記、 嚴格與寬鬆之來源路由等。

Padding(Padding(補齊項目補齊項目 ))由於 由於 Options Options 的內容不一定有多大,但是我們知道 的內容不一定有多大,但是我們知道 IP IP 每個資料都必須要是 每個資料都必須要是 32 bits32 bits , 所以,若 , 所以,若 Options Options 的資的資料不足 料不足 32 bits 32 bits 時,則由 時,則由 padding padding 主動補齊 主動補齊

Page 26: TCP / IP

TCPTCP IP IP 與路由僅能將資料封包傳送到正確的目標而已,與路由僅能將資料封包傳送到正確的目標而已,

但是這個目的地是否真的能夠收下來這個封包? 但是這個目的地是否真的能夠收下來這個封包?那可就不一定了。要確認該資料能否正確的被目那可就不一定了。要確認該資料能否正確的被目的端所接收, 就必須要在資料封包上面多加一些的端所接收, 就必須要在資料封包上面多加一些參數來判斷才行 。參數來判斷才行 。

TCPTCP 協定會根據所傳送出去封包的狀態,來判斷協定會根據所傳送出去封包的狀態,來判斷該封包是否要重新傳送 該封包是否要重新傳送 (retransmit)(retransmit) ,當網路發,當網路發生問題,在一定的時間內無法到達接收端,此時生問題,在一定的時間內無法到達接收端,此時TCPTCP 也會告訴傳送者 “封包逾時” 也會告訴傳送者 “封包逾時” (time-out) (time-out) 的訊息,它還能做到流量管制 的訊息,它還能做到流量管制 (flow control) (flow control) 的的工作,確保傳送端所送出的封包,能夠適切的由工作,確保傳送端所送出的封包,能夠適切的由接收端接受。接收端接受。

Page 27: TCP / IP

在網路層的 在網路層的 IP IP 之上則是傳送層,而傳送層的資料之上則是傳送層,而傳送層的資料打包成什麼? 最常見的就是 打包成什麼? 最常見的就是 TCP TCP 封包了。這個 封包了。這個 TCP TCP 封包資料必須要能夠放到 封包資料必須要能夠放到 IP IP 的資料袋當中的資料袋當中才行喔! 所以,我們可以將 才行喔! 所以,我們可以將 MAC, IP MAC, IP 與 與 TCP TCP 的的封包資料這樣看:封包資料這樣看:

所以說,所以說, IP IP 除了表頭之外的 除了表頭之外的 Data Data 內容其實就是 內容其實就是 TCP TCP 封包的表頭與內容;而 封包的表頭與內容;而 MAC MAC 的 的 Data Data 內容,內容, 就是一個完整的 就是一個完整的 IP IP 封包資料!,最終還是得以 封包資料!,最終還是得以 MAC MAC 能夠支援的最大容許容量, 才能夠決定 能夠支援的最大容許容量, 才能夠決定 IP IP 與 與 TCP TCP 封包是否需要再進行分段的工作封包是否需要再進行分段的工作

Page 28: TCP / IP

TCP TCP 封包的表頭資料 封包的表頭資料

Page 29: TCP / IP

Source Port & Destination Port ( Source Port & Destination Port ( 來源埠口 來源埠口 & & 目標埠口 目標埠口 ) ) 什麼是埠口什麼是埠口 (port)(port)?我們知道 ?我們知道 IP IP 封包的傳送主要是藉由 封包的傳送主要是藉由 IP IP 位址連位址連接兩端, 但是到底這個連線的通道是連接到哪裡去呢?沒錯!就是連接兩端, 但是到底這個連線的通道是連接到哪裡去呢?沒錯!就是連接到 接到 port port 上頭啦! 舉例來說,鳥站 上頭啦! 舉例來說,鳥站 (http://linux.vbird.org) (http://linux.vbird.org) 有開有開放 放 WWW WWW 伺服器, 這表示鳥站的主機必須要啟動一個可以讓 伺服器, 這表示鳥站的主機必須要啟動一個可以讓 clienclient t 端連接的端口,這個端口就是 端連接的端口,這個端口就是 port port , 中文翻譯成為埠口。同樣的,, 中文翻譯成為埠口。同樣的,用戶端想要連接到鳥哥的鳥站時,就必須要在 用戶端想要連接到鳥哥的鳥站時,就必須要在 client client 主機上面啟動主機上面啟動一個 一個 port port ,這樣這兩個主機才能夠利用這條『通道』來傳遞封包資,這樣這兩個主機才能夠利用這條『通道』來傳遞封包資料喔! 這個目標與來源 料喔! 這個目標與來源 port port 的紀錄,可以說是 的紀錄,可以說是 TCP TCP 封包上最重要封包上最重要的參數了! 下個小單元我們還會繼續介紹。的參數了! 下個小單元我們還會繼續介紹。

Sequence Number ( Sequence Number ( 封包序號 封包序號 ))由於 由於 TCP TCP 封包必須要帶入 封包必須要帶入 IP IP 封包當中,所以如果 封包當中,所以如果 TCP TCP 資料太大資料太大時時 (( 大於 大於 IP IP 封包的容許程度封包的容許程度 )) , 就得要進行分段。這個 , 就得要進行分段。這個 Sequence Sequence Number Number 就是記錄每個封包的序號, 可以讓收受端重新將 就是記錄每個封包的序號, 可以讓收受端重新將 TCP TCP 的的資料組合起來。資料組合起來。

Page 30: TCP / IP

Acknowledge Number ( Acknowledge Number ( 回應序號 回應序號 ) ) 為了確認主機端確實有收到我們 為了確認主機端確實有收到我們 client client 端所送出的封包資料,我們 端所送出的封包資料,我們 client client 端當然希望能夠收到主機方面的回應,那就是這個 端當然希望能夠收到主機方面的回應,那就是這個 Acknowledge Number Acknowledge Number 的用途了。 當 的用途了。 當 client client 端收到這個確認碼時,就能夠確定之前傳遞的封包已端收到這個確認碼時,就能夠確定之前傳遞的封包已經被正確的收下了。 經被正確的收下了。

Data Offset (Data Offset ( 資料補償資料補償 ))在圖十二倒數第二行有個 在圖十二倒數第二行有個 Options Options 欄位對吧!那個 欄位對吧!那個 Options Options 的欄位長度是的欄位長度是非固定的, 而為了要確認整個 非固定的, 而為了要確認整個 TCP TCP 封包的大小,就需要這個標誌來說明整封包的大小,就需要這個標誌來說明整個封包區段的起始位置。 個封包區段的起始位置。

Reserved (Reserved (保留保留 ))未使用的保留欄位。未使用的保留欄位。

Code (Control Flag, Code (Control Flag, 控制標誌碼控制標誌碼 ))當我們在進行網路連線的時候,必須要說明這個連線的狀態,好讓接收端瞭當我們在進行網路連線的時候,必須要說明這個連線的狀態,好讓接收端瞭解這個封包的主要動作。 這可是一個非常重要的控制碼喔!這個欄位共有 解這個封包的主要動作。 這可是一個非常重要的控制碼喔!這個欄位共有 6 6 個 個 bits bits ,分別代表 ,分別代表 6 6 個控制碼,若為 個控制碼,若為 1 1 則為啟動。分別說明如下:則為啟動。分別說明如下:

Page 31: TCP / IP

URG(Urgent)URG(Urgent) :若為 :若為 1 1 則代表該封包為緊急封包, 接收端應該要緊急處理,則代表該封包為緊急封包, 接收端應該要緊急處理,且圖十二當中的 且圖十二當中的 Urgent Pointer Urgent Pointer 欄位也會被啟用。欄位也會被啟用。

ACK(Acknowledge)ACK(Acknowledge) :若為 :若為 1 1 代表這個封包為回應封包, 則與上面提到的 代表這個封包為回應封包, 則與上面提到的 Acknowledge Number Acknowledge Number 有關。有關。

PSH(Push function)PSH(Push function) :若為 :若為 1 1 時, 代表要求對方立即傳送緩衝區內的其他時, 代表要求對方立即傳送緩衝區內的其他對應封包,而無須等待緩衝區滿了才送。對應封包,而無須等待緩衝區滿了才送。

RST(Reset)RST(Reset) :如果 :如果 RST RST 為 為 1 1 的時候, 表示連線會被馬上結束,而無需等的時候, 表示連線會被馬上結束,而無需等待終止確認手續。這也就是說,這是個強制結束的連線, 且發送端已斷線。待終止確認手續。這也就是說,這是個強制結束的連線, 且發送端已斷線。

SYN(Synchronous)SYN(Synchronous) :若為 :若為 1 1 , 表示發送端希望雙方建立同步處理,也就, 表示發送端希望雙方建立同步處理,也就是要求建立連線。通常帶有 是要求建立連線。通常帶有 SYN SYN 標誌的封包表示『主動』要連接到對方的標誌的封包表示『主動』要連接到對方的意思。意思。

FIN(Finish)FIN(Finish) :若為 :若為 1 1 ,表示傳送結束, 所以通知對方資料傳畢,是否同意,表示傳送結束, 所以通知對方資料傳畢,是否同意斷線,只是發送者還在等待對方的回應而已。 斷線,只是發送者還在等待對方的回應而已。

Page 32: TCP / IP

Window (Window (滑動視窗滑動視窗 ))主要是用來控制封包的流量的,可以告知對方目前本身有的緩衝器容量主要是用來控制封包的流量的,可以告知對方目前本身有的緩衝器容量 (Receive Buff(Receive Buffer) er) 還可以接收封包。當 還可以接收封包。當 Window=0 Window=0 時,代表緩衝器已經額滿,所以應該要暫停傳輸時,代表緩衝器已經額滿,所以應該要暫停傳輸資料。 資料。 Window Window 的單位是 的單位是 bytebyte 。。

Checksum(Checksum( 確認檢查碼確認檢查碼 ))當資料要由發送端送出前,會進行一個檢驗的動作,並將該動作的檢驗值標注在這個欄當資料要由發送端送出前,會進行一個檢驗的動作,並將該動作的檢驗值標注在這個欄位上; 而接收者收到這個封包之後,會再次的對封包進行驗證,並且比對原發送的 位上; 而接收者收到這個封包之後,會再次的對封包進行驗證,並且比對原發送的 CChecksum hecksum 值是否相符,如果相符就接受,若不符就會假設該封包已經損毀,進而要求值是否相符,如果相符就接受,若不符就會假設該封包已經損毀,進而要求對方重新發送此封包! 對方重新發送此封包!

Urgent Pointer(Urgent Pointer( 緊急資料緊急資料 ))這個欄位是在 這個欄位是在 Code Code 欄位內的 欄位內的 URG = 1 URG = 1 時才會產生作用。可以告知緊急資料所在的時才會產生作用。可以告知緊急資料所在的位置。 位置。

Options(Options(任意資料任意資料 ))目前此欄位僅應用於表示接收端可以接收的最大資料區段容量,若此欄位不使用, 表目前此欄位僅應用於表示接收端可以接收的最大資料區段容量,若此欄位不使用, 表示可以使用任意資料區段的大小。這個欄位較少使用。 示可以使用任意資料區段的大小。這個欄位較少使用。

Padding(Padding(補足欄位補足欄位 ))如同 如同 IP IP 封包需要有固定的 封包需要有固定的 32bits 32bits 表頭一樣, 表頭一樣, Options Options 由於欄位為非固定, 所以也由於欄位為非固定, 所以也需要 需要 Padding Padding 欄位來加以補齊才行。同樣也是 欄位來加以補齊才行。同樣也是 32 bits 32 bits 的整數。 的整數。

Page 33: TCP / IP

封包的傳送 封包的傳送 在右邊的封包連接模在右邊的封包連接模

式當中,在建立連線式當中,在建立連線之前都必須要通過三之前都必須要通過三個確認的動作, 所以個確認的動作, 所以這種連線方式也就被這種連線方式也就被稱為稱為三向交握三向交握 (Three-way handshake)(Three-way handshake) 。 。 那麼我們將整個流程依據上面的 那麼我們將整個流程依據上面的 A, B, C, A, B, C, D D 四個階段來說明一下: 四個階段來說明一下:

Page 34: TCP / IP

A:A: 封包發起封包發起當用戶端想要對伺服器端連線時,就必須要送出一個要求連線的封包, 此時當用戶端想要對伺服器端連線時,就必須要送出一個要求連線的封包, 此時用戶端必須隨機取用一個大於 用戶端必須隨機取用一個大於 1024 1024 以上的埠口來做為程式溝通的介面。 然以上的埠口來做為程式溝通的介面。 然後在 後在 TCP TCP 的表頭當中,必須要帶有 的表頭當中,必須要帶有 SYN SYN 的主動連線的主動連線 (SYN=1)(SYN=1) ,並且記下,並且記下發送出連線封包給伺服器端的序號 發送出連線封包給伺服器端的序號 (Sequence number = 10001 ) (Sequence number = 10001 ) 。。

B:B: 封包接收與確認封包傳送封包接收與確認封包傳送當伺服器接到這個封包,並且確定要接收這個封包後,就會開始製作一個同當伺服器接到這個封包,並且確定要接收這個封包後,就會開始製作一個同時帶有 時帶有 SYN=1, ACK=1 SYN=1, ACK=1 的封包, 其中那個 的封包, 其中那個 acknowledge acknowledge 的號碼是要給 的號碼是要給 cclient lient 端確認用的,所以該數字會比端確認用的,所以該數字會比 (A (A 步驟步驟 ))裡面的 裡面的 Sequence Sequence 號碼多一號碼多一號 號 (ack = 10001+1 = 10002)(ack = 10001+1 = 10002) , 那我們伺服器也必須要確認用戶端確實可以, 那我們伺服器也必須要確認用戶端確實可以接收我們的封包才行,所以也會發送出一個 接收我們的封包才行,所以也會發送出一個 Sequence (seq=20001) Sequence (seq=20001) 給用戶給用戶端,並且開始等待用戶端給我們伺服器端的回應喔!端,並且開始等待用戶端給我們伺服器端的回應喔!

C:C:回送確認封包回送確認封包當用戶端收到來自伺服器端的 當用戶端收到來自伺服器端的 ACK ACK 數字後 數字後 (10002) (10002) 就能夠確認之前那個要就能夠確認之前那個要求封包被正確的收受了, 接下來如果用戶端也同意與伺服器端建立連線時,求封包被正確的收受了, 接下來如果用戶端也同意與伺服器端建立連線時,就會再次的發送一個確認封包 就會再次的發送一個確認封包 (ACK=1) (ACK=1) 給伺服器,亦即是 給伺服器,亦即是 acknowledge = acknowledge = 20001+1 = 20002 20001+1 = 20002 囉。 囉。

D:D: 取得最後確認取得最後確認若一切都順利,在伺服器端收到帶有 若一切都順利,在伺服器端收到帶有 ACK=1 ACK=1 且 且 ack=20002 ack=20002 序號的封包後,序號的封包後,就能夠建立起這次的連線了。 就能夠建立起這次的連線了。

Page 35: TCP / IP

UDP UDP 是一種在是一種在 IPIP 網路上廣泛使用的通訊協定,網路上廣泛使用的通訊協定,

這個協定使用的是非連接導向的,所以不這個協定使用的是非連接導向的,所以不會檢查傳送出去的資料是否到達使用者端,會檢查傳送出去的資料是否到達使用者端,所以其速度較所以其速度較 TCP (TCP ( 傳輸控制協定傳輸控制協定 ) ) 為快,為快,但也不保證能夠安全的送達但也不保證能夠安全的送達 (( 因為在傳送時因為在傳送時並不需要預先建立連線並不需要預先建立連線 )) 。。

一個一個 UDPUDP 資料封包因為不必傳回它傳送的資料封包因為不必傳回它傳送的結果,所以其資料格式也較結果,所以其資料格式也較 TCPTCP 簡單許多 簡單許多

Page 36: TCP / IP

FINAL作業FINAL作業 在網路上找篇UDP應用的文章,簡述其在網路上找篇UDP應用的文章,簡述其

內容,從其中比較與TCP的不同!PO內容,從其中比較與TCP的不同!PO在網管版!!如果有複製貼上者,我在網管版!!如果有複製貼上者,我就!!!!!!!!!就!!!!!!!!!

Page 37: TCP / IP

 放學回家!! 放學回家!!

Page 38: TCP / IP

補充區補充區

Page 39: TCP / IP

當蘇聯發射第一顆人造衛星時,美國國防部立刻成立了先當蘇聯發射第一顆人造衛星時,美國國防部立刻成立了先進研究計畫署(進研究計畫署( Advanced Research Projects AgencyAdvanced Research Projects Agency, , ARPAARPA),希望能以先進的科技運用在戰略上。經過了幾),希望能以先進的科技運用在戰略上。經過了幾年的努力, 年的努力, ARPA ARPA 以分封交換 以分封交換 (packet switching) (packet switching) 技術技術發展出一套通訊網路理論,發展出一套通訊網路理論, 1969 1969 年九月美國國防部開始年九月美國國防部開始佈署 佈署 ARPANET ARPANET (( NET NET 等於 等於 networknetwork),第一個節點 ),第一個節點 (node) (node) 設立在 設立在 UCLA (Univ. of California at Los AngeleUCLA (Univ. of California at Los Angeles)s) 。。 ARPANET ARPANET 剛開始僅有四個節點,分別設在幾個大學剛開始僅有四個節點,分別設在幾個大學研究中心,其最主要的想法就是設計一個沒有控制中心的研究中心,其最主要的想法就是設計一個沒有控制中心的網路系統,讓網路系統,讓每台電腦的功能都一樣重要每台電腦的功能都一樣重要,傳送資料時可,傳送資料時可以經由任何一台電腦、任何一條可用路線,如此國家防衛以經由任何一台電腦、任何一條可用路線,如此國家防衛系統就可永不斷線(參見 系統就可永不斷線(參見 ARPANET ARPANET 的歷史的歷史,,Hobbes's Internet TimelineHobbes's Internet Timeline)。)。

BACK

Page 40: TCP / IP

OSI七層協定OSI七層協定

Page 41: TCP / IP

在網路的世界,標準化的速度永遠比不上技術革新的速度,在網路的世界,標準化的速度永遠比不上技術革新的速度,從使用國際標準從使用國際標準 OSIOSI 協定的網路,到現在使用業界標準協定的網路,到現在使用業界標準 TTCP/IPCP/IP 的網路已經佔了大半。 的網路已經佔了大半。

階層化與實體階層化與實體

在眾多業者的電腦環境下,具備複雜而且多在眾多業者的電腦環境下,具備複雜而且多 樣的功能是必要的,而為了讓電腦間能夠互樣的功能是必要的,而為了讓電腦間能夠互 相連接,因此制定協定就必須更為單純化。相連接,因此制定協定就必須更為單純化。 因此數台電腦藉由網路連接到分散的系統上因此數台電腦藉由網路連接到分散的系統上

,利用,利用 OSIOSI把功能作階層化的整理。而利用把功能作階層化的整理。而利用其中之一的階層進行資料的傳輸功能模型就其中之一的階層進行資料的傳輸功能模型就稱為實體。藉由導入此概念,通訊協定的規稱為實體。藉由導入此概念,通訊協定的規定就單純化為同一系統內上下的實體間的關定就單純化為同一系統內上下的實體間的關係係 (( 上對下的關係上對下的關係 )) ,以及其對等系統的同一,以及其對等系統的同一階層階層 (Layer)(Layer) 的實體間的關係的實體間的關係 ((各種系統的同階各種系統的同階層平行關係層平行關係 )) 這兩項關係。這兩項關係。

Page 42: TCP / IP

Layer 7Layer 7 應用層 應用層 完全與程式有關,包括定義出檔案的讀取、完全與程式有關,包括定義出檔案的讀取、

複製、開啟、關閉等等, 常見的程式包括複製、開啟、關閉等等, 常見的程式包括有瀏覽器、資料庫處理系統與電子郵件系有瀏覽器、資料庫處理系統與電子郵件系統等等。 統等等。

Page 43: TCP / IP

Layer 6Layer 6 表現層表現層 我們在應用程式上面所製作出來的資料格我們在應用程式上面所製作出來的資料格

式不一定符合網路傳輸的標準編碼格式的!式不一定符合網路傳輸的標準編碼格式的! 所以,在這個層級當中,主要的動作就是: 所以,在這個層級當中,主要的動作就是:將來自本地端應用程式的資料格式將來自本地端應用程式的資料格式轉換轉換 ((或或者是重新編碼者是重新編碼 )) 成為網路的標準格式成為網路的標準格式, 然, 然後再交給底下傳送層等的協定來進行處理。後再交給底下傳送層等的協定來進行處理。所以,在這個層級上面主要定義的是網路所以,在這個層級上面主要定義的是網路服務服務 ((或程式或程式 )) 之間的資料格式的轉換, 包之間的資料格式的轉換, 包括括資料的加解密資料的加解密也是在這個分層上面處理。也是在這個分層上面處理。

Page 44: TCP / IP

Layer 5Layer 5 會談層會談層 在這個層級當中主要定義了兩個位址之間在這個層級當中主要定義了兩個位址之間

的連線通道之連接與掛斷,此外,亦可建的連線通道之連接與掛斷,此外,亦可建立應用程式之對談、 提供其他加強型服務立應用程式之對談、 提供其他加強型服務如網路管理、簽到簽退、對談之控制等等。如網路管理、簽到簽退、對談之控制等等。如果說傳送層是在判斷資料封包是否可以如果說傳送層是在判斷資料封包是否可以正確的到達目標, 那麼會談層則是在正確的到達目標, 那麼會談層則是在確定確定網路服務建立連線的確認網路服務建立連線的確認。。

以上稱之為 以上稱之為 上位階層。上位階層。

Page 45: TCP / IP

Layer 4Layer 4 傳送層 傳送層 這一個分層定義了發送端與接收端的連線這一個分層定義了發送端與接收端的連線技術技術 (( 如 如 TCP TCP 技術技術 )) , 同時包括該技術的, 同時包括該技術的封包格式,資料封包的傳送、流程的控制、封包格式,資料封包的傳送、流程的控制、傳輸過程的偵測檢查與復原重新傳送等等,傳輸過程的偵測檢查與復原重新傳送等等, 以確保各個資料封包可以正確無誤的到達 以確保各個資料封包可以正確無誤的到達目的端 。目的端 。

Page 46: TCP / IP

Layer 3Layer 3 網路層網路層 IP (Internet Protocol) IP (Internet Protocol) 就是在這一層定義就是在這一層定義

的 , 因此這個層級當中最重要的除了 的 , 因此這個層級當中最重要的除了 IP IP 之外,就是封包能否之外,就是封包能否到達目的地的路由 到達目的地的路由 (ro(route) ute) 概念了概念了! 此外,這一個網路層可以涵! 此外,這一個網路層可以涵蓋實體層與資料連結層,通常我們不需要蓋實體層與資料連結層,通常我們不需要設定硬體與相關 設定硬體與相關 MACMAC 的資料, 就是因為的資料, 就是因為網路層已經 網路層已經 (( 有點類似有點類似 ) ) 隱藏了底下兩層 。隱藏了底下兩層 。

Page 47: TCP / IP

Layer 2Layer 2 資料連接層資料連接層 由於傳送資料的網路媒體是以是電子訊號由於傳送資料的網路媒體是以是電子訊號

進行傳送,所以我們的資料要使用這樣的進行傳送,所以我們的資料要使用這樣的訊號傳送時, 就需要制訂各種網路型態的訊號傳送時, 就需要制訂各種網路型態的訊框 訊框 (frame) (frame) 了,才能確保資料可以在不了,才能確保資料可以在不同的網路媒體進行傳送的動作 ,這層可制同的網路媒體進行傳送的動作 ,這層可制定定 frameframe 的格式以及通過網路的方式。有的格式以及通過網路的方式。有一個 一個 Binary synchronous communicatiBinary synchronous communications ons 協定,會協定,會判定出一個封包如果在丟失判定出一個封包如果在丟失的情況下,要等待多久會被重新發送的情況下,要等待多久會被重新發送,這,這個協定也是在這層裡面定義。 個協定也是在這層裡面定義。

Page 48: TCP / IP

Layer 1Layer 1  實體層  實體層

這層內主要定義最基礎的往例硬體標準,這層內主要定義最基礎的往例硬體標準,比如說各種網路線、各種無線連線方式、比如說各種網路線、各種無線連線方式、各種設備規範、各種接頭,還有傳輸的電各種設備規範、各種接頭,還有傳輸的電壓等等。也就是要定義出在終端和網絡之壓等等。也就是要定義出在終端和網絡之間要使用的設備 間要使用的設備

Page 49: TCP / IP

傳輸方向傳輸方向

Page 50: TCP / IP

MACMAC MACMAC    (Media Access Control, (Media Access Control, 媒體存媒體存

取控制 ) 其實就是一個訊框取控制 ) 其實就是一個訊框 ( frame )( frame ) , , 你可以把他想成是一個在網路線上面傳遞你可以把他想成是一個在網路線上面傳遞的包裹, 而這個包裹是整個網路硬體上面的包裹, 而這個包裹是整個網路硬體上面傳送資料的最小單位了。 也就是說,網路傳送資料的最小單位了。 也就是說,網路線可想成是一條『一次僅可通過一個人』線可想成是一條『一次僅可通過一個人』的獨木橋, 而 的獨木橋, 而 MAC MAC 就是在這個獨木橋上就是在這個獨木橋上面動的人。 面動的人。

Page 51: TCP / IP

在這個 在這個 MAC MAC 當中,最重要的就是那個 當中,最重要的就是那個 6 Bytes 6 Bytes 的目的與來源位址了 ,這個位址是硬體位址的目的與來源位址了 ,這個位址是硬體位址 ( ha( hardware address )rdware address ) , 共有 , 共有 6 bytes 6 bytes ,分別由 ,分別由 00:00:00:00:00:00:00 00:00:00:00:00 到 到 FF:FF:FF:FF:FF:FFFF:FF:FF:FF:FF:FF , 這 , 這 6 6 bytes bytes 當中,前 當中,前 3bytes 3bytes 為廠商的代碼,後 為廠商的代碼,後 3byt3bytes es 則是該廠商自行設定的裝置碼了。由於 則是該廠商自行設定的裝置碼了。由於 MAC MAC 主要是與網路卡卡號有關,所以我們也常常將 主要是與網路卡卡號有關,所以我們也常常將 MMAC AC 作為網路卡卡號的代稱。 作為網路卡卡號的代稱。

Page 52: TCP / IP

例如上面的圖示,我的資料要由電腦 例如上面的圖示,我的資料要由電腦 A A 通通過 過 B B 後才送達 後才送達 C C ,而 ,而 B B 電腦有兩塊網路電腦有兩塊網路卡, 其中 卡, 其中 MAC-2 MAC-2 與 與 A A 電腦的 電腦的 MAC-1 MAC-1 互通,至於 互通,至於 MAC-3 MAC-3 則與 則與 C C 電腦的 電腦的 MAMAC-4 C-4 互通。 但是 互通。 但是 MAC-1 MAC-1 不能與 不能與 MAC-3 MAC-3 與 與 MAC-4 MAC-4 互通,為啥?互通,為啥?

Page 53: TCP / IP

想一想想一想 昨天老師問的問題,如何藉由MAC碼來昨天老師問的問題,如何藉由MAC碼來追蹤其IP實際位址!!追蹤其IP實際位址!!

參考網址參考網址 http://www.cc.ncu.edu.tw/~whttp://www.cc.ncu.edu.tw/~w3meng/utp_new.shtml3meng/utp_new.shtml

Page 54: TCP / IP

找方法找方法 查詢現在用的電腦的MAC碼,與其製造查詢現在用的電腦的MAC碼,與其製造廠商(有難度)!!廠商(有難度)!!

Page 55: TCP / IP

因為 因為 MAC-1 MAC-1 這塊網路卡並沒有與 這塊網路卡並沒有與 MAC-3 MAC-3 及 及 MAC-4 MAC-4 使用同樣的 使用同樣的 switch/hub switch/hub 相接嘛!所以,相接嘛!所以,資料的流通會變成:資料的流通會變成:

先由 先由 MAC-1 MAC-1 傳送到 傳送到 MAC-2 MAC-2 ,此時來源是 ,此時來源是 MAMAC-1 C-1 而目的地是 而目的地是 MAC-2MAC-2 ; ;

B B 電腦接收後,察看該訊框,發現目標其實是 電腦接收後,察看該訊框,發現目標其實是 C C 電腦,而為了與 電腦,而為了與 C C 電腦溝通, 所以他會將訊框電腦溝通, 所以他會將訊框內的來源 內的來源 MAC MAC 改為 改為 MAC-3 MAC-3 ,而目的改為 ,而目的改為 MMAC-4 AC-4 ,如此就可以直接傳送到 ,如此就可以直接傳送到 C C 電腦了。電腦了。

也就是說,只要透過 也就是說,只要透過 B (B ( 就是就是路由器路由器) ) 才將封包才將封包送到另一個網域去的時候, 那麼訊框內的硬體位送到另一個網域去的時候, 那麼訊框內的硬體位址就會被改變,然後才能夠在同一個網域裡面直址就會被改變,然後才能夠在同一個網域裡面直接進行 接進行 frame frame 的流通啊! 的流通啊! Back

Page 56: TCP / IP

路由器路由器 路由器是用來將網路的資訊在電腦之間傳送的基路由器是用來將網路的資訊在電腦之間傳送的基本設備,路由器的工作在於 本設備,路由器的工作在於 OSI OSI 模式第三層 模式第三層 (( 網路層網路層 )) ,用來決定資料傳遞的路徑的設備。我,用來決定資料傳遞的路徑的設備。我們使用的們使用的 IPIP 協定就是藉由路由器將不同的協定就是藉由路由器將不同的 IPIP 位位址連接在一起。網路上的資料分成一段一段的封址連接在一起。網路上的資料分成一段一段的封包包 packetpacket ,而這些封包要指向何處便是由路由器,而這些封包要指向何處便是由路由器來決定的,路由器會根據資料的目的地,來決定的,路由器會根據資料的目的地,指示正指示正確的方向,計算評估最便捷有效率的路徑來傳輸確的方向,計算評估最便捷有效率的路徑來傳輸資料資料,也就是說路由器要為封包做最佳化的工作,,也就是說路由器要為封包做最佳化的工作,找出最適當的路徑。找出最適當的路徑。

Back

Page 57: TCP / IP

ARP工作原理ARP工作原理 ARPARP 是是 Address Resolution Protocol Address Resolution Protocol 的縮寫 的縮寫 1. 1. 首先﹐每一台主機都會在 首先﹐每一台主機都會在 ARP ARP 快取緩衝區 快取緩衝區 (ARP Cache)(ARP Cache) 中建立中建立

一個 一個 ARP ARP 表格﹐用來記錄 表格﹐用來記錄 IP IP 位址和實體位址的對應關係。位址和實體位址的對應關係。 2. 2. 當發送主機有一個封包要傳送給目的主機的時候﹐並且獲得目的當發送主機有一個封包要傳送給目的主機的時候﹐並且獲得目的

主機的 主機的 IP IP 位址﹔那發送主機會先檢查自己的 位址﹔那發送主機會先檢查自己的 ARP ARP 表格中有沒有該 表格中有沒有該 IP IP 位址的實體位址對應。如果有﹐就直接使用此位址來傳送框包﹔位址的實體位址對應。如果有﹐就直接使用此位址來傳送框包﹔如果沒有﹐則向網路發出一個 如果沒有﹐則向網路發出一個 ARP Request ARP Request 廣播封包﹐查詢目的主廣播封包﹐查詢目的主機的實體位址。這個封包會包含發送端的 機的實體位址。這個封包會包含發送端的 IP IP 位址和實體位址資料。位址和實體位址資料。3. 3. 這時﹐網路上所有的主機都會收到這個廣播封包﹐會檢查封包的 這時﹐網路上所有的主機都會收到這個廣播封包﹐會檢查封包的 IIP P 欄位是否和自己的 欄位是否和自己的 IP IP 位址一致。如果不是則忽略﹔如果是則會先位址一致。如果不是則忽略﹔如果是則會先將發送端的實體位址和 將發送端的實體位址和 IP IP 資料更新到自己的 資料更新到自己的 ARP ARP 表格去﹐如果已表格去﹐如果已經有該 經有該 IP IP 的對應﹐則用新資料覆蓋原來的﹔然後再回應一個 的對應﹐則用新資料覆蓋原來的﹔然後再回應一個 ARP ARP Reply Reply 封包給對方﹐告知發送主機關於自己的實體位址﹔封包給對方﹐告知發送主機關於自己的實體位址﹔4. 4. 當發送端接到 當發送端接到 ARP Reply ARP Reply 之後﹐也會更新自己的 之後﹐也會更新自己的 ARP ARP 表格﹔表格﹔然後就可以用此紀錄進行傳送了。然後就可以用此紀錄進行傳送了。5. 5. 如果發送端沒有得到 如果發送端沒有得到 ARP Reply ﹐ARP Reply ﹐ 則宣告查詢失敗。 則宣告查詢失敗。

Back

Page 58: TCP / IP

CSMA/CD CSMA/CD CSMA/CD (Carrier-Sense Multiple Access with ColliCSMA/CD (Carrier-Sense Multiple Access with Colli

sion Detection) sion Detection) 的技術。 這種技術的特點就是當節點想的技術。 這種技術的特點就是當節點想要在網路媒體上面傳輸資料時, 會先偵測該媒體上面是否要在網路媒體上面傳輸資料時, 會先偵測該媒體上面是否有其他的節點正在使用,確定沒有其他節點在使用該媒體有其他的節點正在使用,確定沒有其他節點在使用該媒體時,該節點才會開始傳送資料。 並且,當節點開始傳送資時,該節點才會開始傳送資料。 並且,當節點開始傳送資料時,節點也能夠同時偵測是否有發生碰撞的現象。 料時,節點也能夠同時偵測是否有發生碰撞的現象。 ((註:註:任何一個具有 任何一個具有 MAC MAC 的網路媒體接在該網路上面,就稱的網路媒體接在該網路上面,就稱為一個節點為一個節點 "node""node" , 所以,一部主機就是一個 , 所以,一部主機就是一個 nodenode !! ) ) 不過,事實上在這樣的共享媒體環境下,當網路相不過,事實上在這樣的共享媒體環境下,當網路相當忙碌時, 資料的碰撞 當忙碌時, 資料的碰撞 (collision) (collision) 還是會發生的!還是會發生的!

Back

Page 59: TCP / IP

ISPISP ISPISP 網際網路服務提供者就是為位用戶提供街入網際網路服務提供者就是為位用戶提供街入 InternetInternet

和和 InternetInternet 訊息服務的公司或機構 這些公司投資大量資金訊息服務的公司或機構 這些公司投資大量資金建立機房連線設備 並租用大量線路與頻寬 再分給一般用戶建立機房連線設備 並租用大量線路與頻寬 再分給一般用戶

提供的服務提供的服務撥接服務撥接服務專線服務專線服務WWW WWW 網站服務網站服務FTP FTP 服務服務E-Mail E-Mail 服務服務網頁設計網頁設計硬體設備服務硬體設備服務軟體工具服務軟體工具服務顧客技術服務諮詢 顧客技術服務諮詢

Page 60: TCP / IP

GatewayGateway GatewayGateway 主要功能是用來主要功能是用來 "" 連接兩個不同連接兩個不同

的網段的網段 "" 。。也就是說也就是說 ,, 如果系統判定目的端為不同網段如果系統判定目的端為不同網段 ,,就會將封包丟給就會將封包丟給 GatewayGateway 來做轉送來做轉送 ,,反之反之 ,, 如果判定為相同網段如果判定為相同網段 ,,即直接傳到目即直接傳到目的端的端 ,, 不會經由不會經由 Gateway.Gateway.以下我們假設一個環境來說明以下我們假設一個環境來說明 ,, 您可能會較您可能會較清楚清楚 ::

Page 61: TCP / IP

IPIP 分享器分享器 IP: 192.168.1.1 / 255.255.255.0 (IP: 192.168.1.1 / 255.255.255.0 (經由經由 ADSL)ADSL)AA 電腦電腦 IP: 192.168.1.11 / 255.255.255.0 Gateway 192.168.IP: 192.168.1.11 / 255.255.255.0 Gateway 192.168.1.11.1BB 電腦電腦 IP: 192.168.1.21 / 255.255.255.0 Gateway (IP: 192.168.1.21 / 255.255.255.0 Gateway (空白空白 ))

1.A1.A 電腦連至電腦連至 BB 電腦電腦 : : 相同網段 相同網段 (( 不經由不經由 GatGateway,eway, 直接連線直接連線 ))2.A2.A 電腦連至電腦連至 Internet: Internet: 不同網段 不同網段 (( 封包由封包由 GGatewayateway 來轉送來轉送 ,,經由經由 ADSLADSL 連至連至 Internet)Internet)3.B3.B 電腦連至電腦連至 AA 電腦電腦 : : 相同網段 相同網段 (( 不經由不經由 GatGateway,eway, 直接連線直接連線 ))4.B4.B 電腦連至電腦連至 Internet: Internet: 不同網段 不同網段 (( 封包由封包由 GGatewayateway轉送轉送 ,,但因但因 GatewayGateway留空留空 ,,故無法上故無法上網網 ) ) Back