Download presentation
Presentation is loading. Please wait.
1
Ch9 Networking Protocols and OSI Model
2
OSI Layers Arranged in a Hierarchy
Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer
3
OSI 參考模型
4
Data Exchange Using OSI Layers
L7 data H6 L6 data H5 L5 data H4 L4 data H3 L3 data H2 Transmission Medium
5
1 - 6 資料封裝 當主機透過網路傳送資料到另一裝置時, 這些資料會先經過封裝 (encapsulation):包裹了 OSI 模型之各層協定的資訊。 而且每一層只會與接收裝置那端之對等層級溝通。 每一協定層要溝通與交換資訊必須使用協定資料單元 (Protocol Data Units, PDU)。PDU 包含模型中的每一層附加在資料上的控制資訊。 這些資訊通常加在資料欄位前面的標頭中, 但是也可能位於資料的尾端。
6
資料封裝 OSI 模型中的每一層都會封裝一個 PDU, 而且根據每個標頭所提供的資訊內容, PDU 的名稱也不同。
7
資料封裝 資料串流接著會向下傳給傳輸層, 由它傳送同步封包以建立連結接收裝置的虛擬電路。
資料串流在此會被分解為更小的片段, 並且建立傳輸層標頭 (一種 PDU), 附加到資料欄位的標頭上 - 現在這個資料稱為資料段 (segment)。 每一資料段會加上序號, 以便在接收端依照傳輸的順序重組起來。
8
資料封裝
9
資料封裝 接著, 每個資料段送往網路層進行互連網路之網路定址與遶送;使用邏輯定址 (例如 IP) 讓每個資料段能抵達正確的網路。
網路層協定會將傳輸層送下來的資料段加上控制標頭 - 現在這個資料形式稱為封包 (packet) 或資料包 (datagram)。 請記住, 接收端的傳輸層與網路層會一同運作以重建資料串流, 但是將它們的 PDU 放在本地的網段上 (這是將資訊送達路由器或主機的唯一方式) 則不是它們的工作。
10
資料封裝 資料鏈結層負責從網路層取得封包, 並且將它們放到網路媒介 (纜線或無線) 上。
它會將每個封包封裝為訊框 (frame), 且訊框的標頭中包含來源與目的主機的硬體位址。 如果目的裝置是位於遠端網路, 則訊框會被送往路由器進行遶送, 以穿越互連網路。一旦訊框抵達目的網路, 會用新的訊框將封包送到目的主機。
11
資料封裝 要將訊框放到網路上, 首先必須將它放入數位訊號中。訊框其實上是 1 與 0 的邏輯組合, 由實體層負責將這些數字編碼為數位訊號, 供位於同一網路上的裝置讀取。 接收的裝置會對數位訊號取得同步, 並且從中擷取 (解碼) 出 1 與 0。 此時, 這些裝置會建立訊框, 執行循環冗餘查核 (CRC, cyclic redundancy check), 然後將其結果與訊框的 FCS 欄位比對。
12
資料封裝 如果結果相符, 則從訊框中取出封包, 並且丟棄訊框的其餘部份 - 這個過程稱為解封裝 (deencapsulation)。
封包會傳給網路層檢查位址;如果符合, 則自封包中取出資料段, 並且丟棄封包中的其餘部份。 資料段是在傳輸層處理, 由它重建資料串流, 並且傳送確認給傳輸端工作站, 表示資料已經收到。
13
資料封裝
14
Physical Layer Between Adjacent Nodes
From Data Link Layer L3 data H2 To Data Link Layer L3 data H2 Medium
15
Data Link Layer Between Adjacent Nodes
From Network Layer To Network Layer L3 data L3 data Data Frame Link Layer Data Frame Link Layer H2 H2 To Physical Layer From Physical Layer
16
Network Layer Between Adjacent Nodes
Frame Layer H3 From Transport Layer L4 data Network Layer To Transport Layer L3 data To Data Link Layer From Data Link Layer Frame
17
Transport Layer From Session Layer To Network Layer To Session Layer
L5 data From Session Layer H4 L4 data To Network Layer To Session Layer From Network Layer Transport Layer
18
From Presentation Layer
Session Layer From Presentation Layer L6 data Session Layer H5 Checkpoints L5 data To Transport Layer To Presentation Layer From Transport Layer
19
Presentation Layer From Application Layer To Application Layer
L7 data L7 data Presentation Layer Presentation Layer Encoded, encrypted and compressed data H6 Encoded, encrypted and compressed data H6 Presentation Layer L6 data L6 data To Session Layer From Session Layer
20
From Presentation Layer
Application Layer Application Layer L7 data To Presentation Layer From Presentation Layer … WWW
21
Protocols in the TCP/IP Suite at Different Layers
TELNET Simple Mail Transfer Protocol (SMTP) File Transfer Protocol (FTP) Trivial File Transfer Protocol (TFTP) Hyper Text Transfer Protocol (HTTP) Application Layer Internet Control Message Protocol (ICMP) Internet Protocol (IP) Address Resolution Protocol (ARP) Reverse Address Resolution Protocol (RARP) Network Layer Data Link Layer Network Interface Protocols Physical Layer Physical Networks Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Transport Layer
22
Mapping of TCP/IP Protocols With the OSI Model
Application Applications SMTP FTP DNS HTTP TELNET Presentation Session Transport TCP UDP Network ICMP IP ARP RARP Data Link Protocols specific to the underlying physical media used for data communication at the hardware level Physical
23
Message Transfer From the Source to the Destination at Different Layers
Original Message Original Message TCP header IP header Frame header Source Destination
24
TCP / IP 與 DoD 模型
25
TCP / IP 與 DoD 模型
26
連接埠編號的原則
27
TCP 封包結構
28
TCP 資料段格式 TCP 標頭的長度是 20 位元組, 如果有選項存在的話, 最多可達 24 位元組。
來源埠 (source port) 資料傳送端主機上之應用程式的埠號。 目的埠 (destination port) 目的主機上之應用程式的埠號。
29
TCP 資料段格式 序號 (sequence number) TCP 藉由這個號碼, 將資料放回正確的順序, 或重送遺失、損壞的資料。
這是一種稱為循序化 (sequencing) 的程序。 確認號碼 (acknowledgement number) 定義下次預期會收到的 TCP 位元組。 標頭長度 (header length) 以字組 (32 個位元) 為單位的 TCP 標頭長度, 顯示資料開始之處。 TCP 標頭的長度一定是 32 位元的整數倍 (即使包括選項欄位)。
30
TCP 資料段格式 預留 (reserved) 總是設為 0。 代碼位元 (code bits) 用來控制會談的建立與終結。
視窗 (window) 傳送端願意接收的視窗大小, 以位元組為單位。 檢查碼 (checksum) 循環冗餘查核 (cyclic redundancy check, CRC), 因為 TCP 並不信任下層, 所以會查核所有東西。 此處的 CRC 會查核標頭與資料欄位。
31
TCP 資料段格式 緊急 (urgent) 只有當代碼位元欄位中的緊急指示位元有設定時, 這個欄位才有效;此時這個值表示非緊急資料的第一個資料段位置距離目前序號的位移 (以位元組為單位)。 選項 (option) 可能是 0 或 32 位元的倍數。這表示選項不一定要出現 (長度為 0), 但如果有選項存在, 且總長度不是 32 位元的倍數時, 也要補 0, 以確保後頭的資料會從 32 位元的邊界開始。 資料 (data) 交給傳輸層 TCP 協定的資料, 包括上層的標頭。
32
TCP 資料段格式 以下是個從網路分析器中拷貝出來的 TCP 資料段範例:
33
UDP 資料段格式 從圖 2.4 可以很清楚地看出 UDP 耗費的額外負擔遠比 TCP 要少。
34
UDP 資料段格式 您必須瞭解 UDP 資料段中的每個欄位, 這點很重要, UDP 資料段包含以下的欄位:
來源埠 (source port) 傳送資料之主機上的應用程式埠號。 目的埠 (destination port) 在目的主機上接收資料的應用程式埠號。 長度 (length) UDP 標頭與 UDP 資料的長度。 檢查碼 (checksum) UDP 標頭與 UDP 資料欄位的檢查碼。 資料 (data) 上層資料。
35
UDP 資料段格式 您不妨注意一下, 它的額外負擔多麼少啊!
36
IP
37
IP IP 標頭由以下的欄位組成: 版本 (version) IP 的版本號碼。
標頭長度 (header length) 以 32 位元的字組為長度單位。 優先權與服務類型 (Priority and Type of Service) 服務類型 (Type of Service, ToS) 告訴我們要如何處理該資料包。 這個欄位的前 3 個位元是優先權位元。 總長度 (total length) 封包的長度, 包括標頭與資料。
38
IP 識別碼 (identification) 具唯一性的 IP 封包編號。 旗標 (flags) 指示是否有對封包做切割。
片段位移 (fragment offset) 如果封包太大無法填入一個訊框中, 就會進行切割與重組。 這樣就可容許網際網路上有不同的最大傳輸單元 (Maximum Transmission Unit, MTU)。 存留時限 (TTL) 封包一開始產生時會設定一個存留時限 (Time to Live, TTL), 如果它無法在 TTL 終了之前抵達它所要到的目的地, 就會消失。
39
IP 這樣可避免封包在網路上無止境地繞來繞去。
協定 (protocol) 上層協定號碼 (TCP 是 6, UDP 是 17 [16 進位])。本欄也支援網路層協定, 例如 ARP 與 ICMP。 有些分析器稱此欄位為類型 (Type), 稍後我們會再討論這個欄位。 標頭檢查碼 (header checksum) 只作用在標頭上的 CRC。 來源 IP 位址 (source IP address) 傳送端工作站的 32 位元 IP 位址。
40
IP 以下是從網路分析器捕捉到的一個 IP 封包 (上述的標頭資訊全都出現於此)。
目的 IP 位址 (destination IP address) 封包所要前往之工作站的 32 位元 IP 位址。 IP 選項 (IP option) 供網路測試、偵錯、安全等功能使用。 資料 (data) IP 選項欄位之後的部份就是上層的資料。 以下是從網路分析器捕捉到的一個 IP 封包 (上述的標頭資訊全都出現於此)。
41
IP
42
IP Type 欄位是很重要的 (我們通常稱它為協定欄位, 但這部分析器稱它為 IP Type), 如果標頭沒有下一層的協定資訊, 那麼 IP 就不知道要如何處理封包中的資料。 這個例子告訴 IP 要將資料段交給 TCP。 圖 2.7 展示出當網路層需要將封包交給上層協定時, 它是如何看到傳輸層協定的。
43
乙太網路訊框 802.3 訊框和乙太網路訊框的格式如圖 1.20 所示。
44
乙太網路訊框 下面是 802.3 與乙太網路訊框的欄位細節:
前置位元 (preamble) 交錯的 1、0 模式, 在每個封包開頭提供 5MHz 的時脈, 以供接收裝置用來鎖定進入的位元流。 訊框的啟始符號 / 同步 (Start Frame Delimiter, SFD / Synch) 前置位元是 7 個位元組, 而 SFD 是 1 個位元組 (Synch)。 SFD 是 , 其中最後一對 1 讓那些從中途進入交錯之 1、0 模式的接收端能夠達到同步, 並且偵測到資料的開始。
45
乙太網路訊框 目的位址 (Destination Address, DA) 從最不重要位元 (least significant bit, LSB) 開始轉換 48 位元的值, 供接收工作站用來判斷進入的封包是要通往哪個節點。 目的位址可能是單機位址, 或是廣播或多點傳播的 MAC 位址。 請記住廣播位址是全部為 1 (或是 16 進位的 F), 並且會送往所有的裝置, 但是多點傳播只會送往網路上類似的節點子集合。
46
乙太網路訊框 來源位址 (Source Address, SA) SA 是用來辨識傳送裝置的 48 位元 MAC 位址, 也是從 LSB 開始。 在 SA 欄位中不得使用廣播與多點傳播的位址格式。 長度或類型欄位在 是長度欄位, 但是在乙太網路訊框中則是類型欄位, 藉以辨識網路層協定。 802.3 無法辨識上層協定, 必須在專屬 LAN (例如 IPX) 中使用。
47
乙太網路訊框 現在讓我們來檢視一些 OmniPeek 網路分析儀所捕捉到的訊框。
資料從網路層向下送給資料鏈結層的封包, 長度可能從 64 到 1500 位元組。 訊框查核序列 (Frame Check Sequence, FCS) 位於訊框結尾, 用來儲存循環冗餘查核 (cyclic redundancy check, CRC)。 現在讓我們來檢視一些 OmniPeek 網路分析儀所捕捉到的訊框。 下面的訊框中只有 3 個欄位:目的、來源、與類型 (在這個分析儀上顯示成 Protocol Type)。
48
乙太網路訊框 這是 Ethernet_II 訊框, 請注意類型欄位的值是 IP, 亦即十六進位的 (我們通常表示成 0 x 800)。 下個訊框具有相同的欄位, 所以也是 Ethernet_II 訊框:
Similar presentations