---
# System prepended metadata

title: 什麼是CSE-CIC-IDS2018？

---


# 目錄

[TOC]
# 什麼是CSE-CIC-IDS2018？

CSE-CIC-IDS2018
（Canadian Institute for Cybersecurity Intrusion Detection System 2018）
是一個重要的入侵檢測數據集，由通訊安全機構（CSE）與加拿大網絡安全研究所（CIC）合作開發。該數據集旨在為網絡安全研究提供豐富、真實和多樣化的網絡流量樣本，以支持入侵檢測系統（IDS）的研究與開發。

* 數據收集：CSE-CIC-IDS2018數據集包含約1600萬個實例，數據是在2018年2月28日至3月9日之間收集的，涵蓋了多種正常和惡意流量類型。
* 攻擊類型：該數據集包括多種攻擊類型，如暴力破解（Bruteforce）、拒絕服務（DoS）、Web攻擊、滲透（Infiltration）、殭屍網絡（Botnet）和分佈式拒絕服務（DDoS）。這些攻擊類型為研究人員提供了分類和檢測的基礎。
* 數據格式：數據集提供了處理過的CSV文件，適合機器學習算法使用，便於研究人員進行實驗和模型訓練。

[官方網站](https://www.unb.ca/cic/datasets/ids-2018.html)

## 研究意義
CSE-CIC-IDS2018數據集的推出是為了克服早期數據集（如KDDCUP99和NSLKDD等）在流量多樣性、容量和攻擊覆蓋面等方面的不足。這些早期數據集已經過時，無法反映當前網絡攻擊的真實情況。通過使用CSE-CIC-IDS2018，研究人員能夠更好地測試和驗證新型入侵檢測技術，尤其是深度學習方法在網絡安全中的應用。

|特徵|	CSE-CIC-IDS2018|	KDD99|	NSL-KDD|
|---|---|---|---|
|數據收集時間|	2018年|	1999年|	2009年|
|樣本數量|	約1600萬|	約490萬|	約126620|
|特徵數量|	超過80個特徵|	41個特徵|	41個特徵|
|攻擊類型|	多種，包括DDoS、暴力破解等|	多種，包括DoS、U2R、R2L等|	多種，包括DoS、U2R、R2L等|
|數據格式|	CSV|	CSV|	CSV|
|冗餘問題|	無冗餘記錄|	高冗餘，約78%|	消除冗餘記錄|



## 詳細的網路配置： 
攻擊基礎設施包括 50 台機器，受害組織由 5 個部門組成，共有 420 台機器和 30 台伺服器。 


## 豐富的特徵提取： 
使用 [CICFlowMeter-V3](https://www.unb.ca/cic/research/applications.html#CICFlowMeter) 工具從捕獲的流量中提取了 80 個特徵，這些特徵涵蓋了網路流量的各個方面，有助於深入分析和建模。

## CICFlowMeter-V3
CICFlowMeter 是一個網路流量生成器和分析器
主要功能：

* 雙向流量生成： 
   CICFlowMeter 能夠生成雙向流量，其中第一個封包決定了正向（來源到目的地）和反向（目的地到來源）的方向。 

* 特徵提取： 
  該工具可分別計算正向和反向方向上的超過 80 種統計網路流量特徵，如持續時間、封包數量、位元組數量、封包長度等。 

* 自定義功能： 
  使用者可以從現有特徵列表中選擇所需特徵，添加新特徵，並控制流量逾時的持續時間。 


* 輸出格式： 
  CICFlowMeter 生成的輸出為 CSV 格式文件，每個流量包含六個標籤欄位（FlowID、SourceIP、DestinationIP、SourcePort、DestinationPort 和 Protocol），以及超過 80 個網路流量分析特徵。

## 網路 Flow
在 CSE-CIC-IDS2018 資料集中，每一筆 log 通常表示一個Flow，而不是單純的即時或持續流量監控，使用的是CICFlowMeter-V3。

---

**網路 Flow** 是指網路中的一組封包的集合，這些封包共享一些共同的特徵，例如源 IP、目標 IP、協議等，並且通常被視為一個邏輯上的單位，用於描述和分析網路流量。Flow 是網路數據分析的核心概念之一，特別是在入侵檢測、網路性能監控和流量管理中。

---

### **網路 Flow 的關鍵特徵**

1. **組成封包的條件**
   - **5 元組標識**：Flow 通常由以下五個關鍵屬性組成：
     - **源 IP 地址**：發送端的 IP。
     - **目標 IP 地址**：接收端的 IP。
     - **源埠號 (Port)**：發送端使用的埠號。
     - **目標埠號 (Port)**：接收端使用的埠號。
     - **協議 (Protocol)**：例如 TCP、UDP、ICMP。
   - 同一個 Flow 中的封包會有相同的 5 元組標識。

2. **Flow 的時間維度**
   - **持續時間** (`Flow Duration`)：Flow 從第一個封包到最後一個封包的時間間隔，單位通常是毫秒 (ms)。
   - **超時定義**：在流量分析工具中，Flow 通常有一個 **閒置時間閾值 (Idle Timeout)**，如果沒有新封包到達且超過閾值，這個 Flow 會被認為結束。

3. **Flow 的數據特徵**
   - **流量大小**：Flow 包含的總位元組數 (Bytes) 和總封包數 (Packets)。
   - **方向**：
     - **Forward Flow**: 從源端向目標端的流量。
     - **Backward Flow**: 從目標端返回源端的流量。
   - **速率**：如每秒位元組數 (`Flow Bytes/s`) 和每秒封包數 (`Flow Packets/s`)。

4. **Flow 的生成方式**
   - Flow 是基於網路封包的捕獲和分析生成的。  
   - 使用工具：例如 NetFlow（由 Cisco 提出）、sFlow、IPFIX、Zeek（原名 Bro）等工具會解析封包並生成 Flow 記錄。

---

### **網路 Flow 的用途**

1. **網路流量監控**
   - Flow 用於記錄網路活動，可以用來分析流量來源、流量分佈以及網路瓶頸。

2. **入侵檢測系統 (IDS)**
   - 通過 Flow 特徵（如流量大小、持續時間）來識別潛在的異常行為，例如 DoS 攻擊或掃描活動。

3. **網路性能分析**
   - Flow 可以用來評估網路性能，分析延遲、丟包率和吞吐量等指標。

4. **帳單和流量計費**
   - 在一些環境中，Flow 的數據可用於按流量大小計費或管理網路資源。

---

### **實例：Flow 的典型記錄**
以下是 Flow 記錄可能包含的屬性：
- **源 IP**：192.168.1.10
- **目標 IP**：10.0.0.1
- **源埠號**：56789
- **目標埠號**：80
- **協議**：TCP
- **總封包數**：150
- **總位元組數**：50000
- **持續時間**：2000 ms
- **平均封包大小**：333 Bytes


CSE-CIC-IDS2018 的 Flow 主要位於 TCP/IP 的：
1. 傳輸層（Transport Layer）：因為它依賴 TCP/UDP 協議來定義端到端的流量特徵。
1. 網路層（Network Layer）：用於識別源 IP 和目標 IP 等特徵。

---
## 數據集 共有十天的csv檔案
[參考](https://www.kaggle.com/datasets/solarmainframe/ids-intrusion-csv?resource=download&select=02-14-2018.csv)
1. 2/14 Brute-force 暴力破解
該數據編製於 2018 年 2 月 14 日。與實際攻擊相比，此特定數據集具有大多數正常流量 （良性）。

1. 2/15 DoS attacks-GoldenEye
該數據編製於 2018 年 2 月 15 日。與實際攻擊相比，這個特定的數據集具有大多數正常流量（良性），其中 95% 的實際流量是無害的。
3. 2/16 DoS attacks-SlowHTTPTest
該數據編製於 2018 年 2 月 16 日。與正常流量相比，這個特定的數據集具有大多數 DDoS 攻擊，其中 Hulk 攻擊優先。
3. 2/20 DDoS attacks-LOIC-HTTP
該數據編製於 2018 年 2 月 20 日。這個特定的數據集具有大多數正常流量，其中93%是無害的。
3. 2/21 DDOS attack-LOIC-UDP
該數據編製於 2018 年 2 月 21 日。與正常流量相比，這個特定的數據集具有大多數 DDoS 攻擊，其中 HOIC 攻擊優先。
3. 2/22 Brute Force -Web
該數據編製於 2018 年 2 月 22 日。此特定檔中的所有信息都被認為是無害的。
3. 2/23 Brute Force -Web
該數據編製於 2018 年 2 月 23 日。此特定檔中的所有信息都被認為是無害的。
3. 2/28 Infilteration 內部滲透
該數據編製於 2018 年 2 月 28 日。此檔中的大部分這些資訊是無害的，但是，它也包含 11% 的滲透攻擊。
3. 3/01 Infilteration 內部滲透
此數據編製於 2018 年 3 月 1 日。此檔中的大部分信息被認為是無害的，但是，28% 的流量被認為是滲透攻擊。
3. 3/02 BOT 殭屍網路
該數據於 2018 年 3 月 2 日編制。此檔中的大部分信息被認為是無害的，但是，27% 的流量被認為是殭屍網路攻擊。

## 六種不同攻擊場景 每條資料共80個特徵
1. 暴力破解（Brute-force）： 對 FTP 和 SSH 協議進行密碼猜測攻擊。
FTP-Bruteforce and SSH-Bruteforce

1. 阻斷服務攻擊（DoS）： 對單一目標發起的阻斷服務攻擊。
DoS-GoldenEye、DoS-Slowloris、DoS-SlowHTTPTest 和 DoS-Hulk
   Dos心臟出血漏洞（Heartbleed）： 利用 OpenSSL 中的心臟出血漏洞進行數據洩露攻擊。

1. 網頁攻擊（Web attacks）： 包括 SQL 注入、跨站腳本（XSS）等針對網站的攻擊
Brute Force-Web, Brute Force-XSS, and SQL Injection

1. 內部滲透（Infiltration）： 模擬內部人員或受感染的內部機器對內部網路的滲透攻擊。

1. 殭屍網路（Botnet）： 模擬受感染的機器組成的殭屍網路活動。


1. 分散式阻斷服務攻擊（DDoS）： 多個來源同時對目標發起的阻斷服務攻擊。
DDoS attacks-LOIC-HTTP, DDoS-LOIC-UDP, and DDOS-HOIC




---
1. Dst Port
 Destination port of connection.
 目標端口號（Destination Port），用來指定該流量的目標端口（例如 443 通常表示 HTTPS 流量）。
 
1. Protocol
 Protocol used during connection.
 使用的協議類型（例如 TCP 是 6，UDP 是 17）。
 
1. Timestamp
 Time that connection occured.
 流量記錄的時間戳，表示何時捕獲該流量。
 
1. Flow Duration
 Duration that connection occurred.
 此流的持續時間，單位為微秒。
 
1. Tot Fwd Pkts
 Total number of forward packets.
 （源到目標）轉發數據包的總數。
 
1. Tot Bwd Pkts
 Total number of backward packets.
 （目標到源）向後數據包的總數。
 
1. TotLen Fwd Pkts
 Total length of forward packets.
 轉發數據包的總長度。
 
1. TotLen Bwd Pkts
 Total length of backward packets.
 向後數據包的總長度。
 
1. Fwd Pkt Len Max
Maximum length of forward packets.
轉發數據包的最大長度。

1. Fwd Pkt Len Min
Minimum length of forward packets.
轉發數據包的最小長度。
 
1. Fwd Pkt Len Mean
正向封包的平均大小

1. Fwd Pkt Len Std
正向封包的標準差

1. Bwd Pkt Len Max

1. Bwd Pkt Len Min

1. Bwd Pkt Len Mean
 
1. Bwd Pkt Len Std

1. Flow Byts/s
流量的位元組傳輸速率

1. Flow Pkts/s
流量的位元組封包速率
 
1. Flow IAT Mean
流的封包到達間隔（Inter-Arrival Time, IAT）的平均值

1. Flow IAT Std
流的封包到達間隔（Inter-Arrival Time, IAT）的標準差

1. Flow IAT Max
流的封包到達間隔（Inter-Arrival Time, IAT）的最大值

1. Flow IAT Min
流的封包到達間隔（Inter-Arrival Time, IAT）的最小值

1. Fwd IAT Tot
正向封包到達間隔的總和

1. Fwd IAT Mean
正向封包到達間隔的平均值

1. Fwd IAT Std
正向封包到達間隔的標準差

1. Fwd IAT Max
正向封包到達間隔的最大值

1. Fwd IAT Min
正向封包到達間隔的最小值

1. Bwd IAT Tot

1. Bwd IAT Mean

1. Bwd IAT Std

1. Bwd IAT Max

1. Bwd IAT Min

1. Fwd PSH Flags
PSH（Push）標誌的數量，表示數據是否需要立即處理。

1. Bwd PSH Flags

1. Fwd URG Flags
URG（Urgent）標誌的數量，表示是否有緊急數據。

1. Bwd URG Flags

1. Fwd Header Len

1. Bwd Header Len

1. Fwd Pkts/s

1. Bwd Pkts/s

1. Pkt Len Min
流中的封包長度的最小值

1. Pkt Len Max
流中的封包長度的最大值

1. Pkt Len Mean
流中的封包長度的平均值

1. Pkt Len Std
流中的封包長度的標準差

1. Pkt Len Var
流中的封包長度的方差

1. FIN Flag Cnt
各種 TCP 旗標（如 FIN、SYN、RST、PSH、ACK、URG）的出現次數，用於分析流的狀態。
FIN (Finish): 表示發送方完成了數據傳輸，準備關閉連接。
1. SYN Flag Cnt
SYN (Synchronize): 表示請求建立連接，是 TCP 三次握手的第一步。
要去追蹤通訊協定 packet tracer


1. RST Flag Cnt
RST (Reset): 表示重置連接，用於中斷非正常的連接。


1. PSH Flag Cnt
PSH (Push): 要求接收方立即處理數據，而不是等待緩衝區填滿。


1. ACK Flag Cnt
ACK (Acknowledgment): 確認收到數據，用於維持 TCP 通信的可靠性。

1. URG Flag Cnt
URG (Urgent): 表示封包內有緊急數據需要立即處理。

1. CWE Flag Count
CWE 和 ECE: 與 TCP 擁塞控制相關，用於指示網路擁堵。

1. ECE Flag Cnt
ECE (Explicit Congestion Notification Echo): 表示接收方的網路擁塞通知。

1. Down/Up Ratio
反向和正向流量大小的比率

1. Pkt Size Avg
整個流量的封包大小平均值。

1. Fwd Seg Size Avg
正向分段大小的平均值。

1. Bwd Seg Size Avg
反向封包的平均分段大小。

1. Fwd Byts/b Avg

1. Fwd Pkts/b Avg

1. Fwd Blk Rate 
正向區塊（Block）的平均速率

1. Bwd Byts/b Avg

1. Bwd Pkts/b Avg

1. Bwd Blk Rate Avg

1. Subflow Fwd Pkts
子流的正向封包數量

1. Subflow Fwd Byts
子流的正向封包位元組大小
子流是將一個大的 TCP 流分割成多個子流以便於更細粒度的分析。

1. Subflow Bwd Pkts

1. Subflow Bwd Byts

1. Init Fwd Win Byts
初始正向窗口大小（位元組數）。

1. Init Bwd Win Byts
初始反向窗口大小。

1. Fwd Act Data Pkts
正向傳輸的有效數據封包數量。
1. Fwd Seg Size Min
正向分段的最小大小。
1. Active Mean
流量處於活躍狀態的時間（毫秒），均值
1. Active Std
標準差
1. Active Max
 最大值
1. Active Min
 最小值
1. Idle Mean
流量處於空閒狀態的時間（毫秒），均值
1. Idle Std
 標準差
1. Idle Max
  最大值
1. Idle Min
  最小值
1. Label
Describes if file is DoS or Benign.
描述檔是 DoS 還是 Benign。
流量的標籤，指出該流量是否是惡意（如攻擊）或正常（Benign）。

---
數據集中總共有 80 列，每列對應於 Unversity of New Brunswick 在 IDS 日誌記錄系統中的一個條目。由於他們的系統將流量分類為向前和向後，因此兩者都有列。下面列出了此數據集中最重要的列。

* Dst 連接埠（目標連接埠）
* Protocol 協定
* Flow Duration 流持續時間
* Tot Fwd Pkts （轉發數據包總數）
* Tot Bwd Pkts （總向後數據包數）
* Label （標籤）

# TCP/IP 通訊協定
___
## TCP/IP 簡介
總共歸類到4個抽象的層中。
每一抽象層建立在低一層提供的服務上，並且為高一層提供服務。 
1. 網路存取層 (實際傳送資料，路由器 / 海底電纜)
2. 網路互連層 (加上收發地址，IP (Internet Protocol))
3. 傳輸層 (如何傳送資料，TCP / UDP)
4. 應用層 (HTTP(HTTPS) / SMTP / FTP …)
![iShot_2024-12-19_08.54.04](https://hackmd.io/_uploads/BkSkyebB1g.png)

___
___

**整體流程：**
1. 資料從應用層透過TCP或UDP埠到達傳輸層，並決定使用TCP或UDP協定來存取網路。
2. 到網際網路層後，IP協定會提供如何將資料導引到正確的邏輯IP位址的資訊。
3. 進入網路存取層後，會透過上層的ARP及RARP協定來轉換IP位址和實際位址
4. 將資料格式化成能在傳輸線上傳輸的格式而送出。
5. 最後資料離開了原始端電腦傳向目的端，而該電腦收到後，則進行相反之步驟。
___
## 　**TCP/IP** 分層

### 第**四**層 **應用層**
#### 主要功能：利用基礎網路交換應用程式專用的資料的協定，協同所有應用程式工作。

    TCP/IP最頂層，其中的應用軟體並沒有明確規範的工作類別
    像是偵測網路資訊的工具或是提供一些網路的服務：
        FTP、DNS...等等。
    
    處理過程：
        資料從網路相關的程式以這種應用內部使用的格式進行傳送，然後編碼成標準協定的格式，
        一旦從應用程式來的資料編碼成一個標準的應用層協定，它將傳送到傳輸層。

        一些特定的程式也被視爲在此層運行，直接提供服務給使用者應用。
#### 程式和對應的協定：
    HTTP（全球資訊網服務）
    FTP（檔案傳輸）
    SMTP（電子郵件）
    SSH（安全遠端登入）
    DNS（名稱⇔IP位址尋找）...等等其他協定。


### 第**三**層　**傳輸層**
#### 主要功能：傳輸層是一個提供應用程式和網路之間的介面。
> 只有IP位址的話，若有不同的應用軟體要同時進形網路傳輸，所有資料就會從同一個出口一起出去而產生混亂的碰撞情形，因此有了連接埠的產生，可以讓一台電腦同時擁有好幾個對外連接的出口，這也使得網路傳輸有了多工的能力。

##### 協定：
    TCP：
        可提供一種可靠的位元組流保證資料完整、無失真並且按順序到達。
        
            傳輸資料被分成好幾個封包傳送時，
            當目的端電腦接收到每一個封包，
            就會傳回一個確認值
            
        對資料的掌控上及偵錯方面，就遠勝於UDP，但速度則不如UDP。
 ###   
    UDP：
        不檢查封包是否已經到達目的地，並且不保證它們按順序到達。
        
            只負則送出及接收，
            不會收到一個封包就回傳一個確認的訊息，
            檢查則是靠著總和檢測值來判定。
        
        典型性應用：
            串流媒體（音訊和視訊等）這樣按時到達比可靠性更重要的應用
        




### 第二層　網路互連層
#### 主要功能：將資料從源網路傳輸到目的網路，並選擇路徑
##### IP協定：     
    IP協定：
         紀錄著三個IP的位址
             分別為目的IP位址
             子網路遮罩位址（用來判定來源IP和目的IP是否在同一網域的一個判斷位址）
             閘接器(路由器)位址（若要送到不同網域時，用以決定封包的傳輸途徑）
    　
>運作：
 先用子網路遮罩計算兩位址是否在同一網域，再決定其傳送途徑。
##### 其他協定：
**要去確認這是什麼**
    ARP協定：
        此協定的功用是轉換實體位址和IP位址
        而RARP則是其反協定。
        
    ICMP協定：
        控制一些網路傳輸上的狀況的協定
        （如遇到狀況時的回傳訊息，就是透過ICMP協定的運作。）

###  第**一**層　**網路存取層**
#### 主要功能：規定資料的傳輸方式，讓網路傳輸有規範及效率
##### 運作：    
    實際上並不是網際網路協定組中的一部分，
    它是封包從一個裝置的網路層傳輸到另外一個裝置的網路層的方法。
    添加報頭準備傳送、
    將資料轉換成一稱為訊框(Frame)的格式，並將其轉為可用電子流或類比脈衝表現的樣式。
    通過實體媒介實際傳送資料達成鏈路功能。
    但也可能是一個虛擬專有網路（VPN）或者隧道，
    在這裡從網路層來的包使用隧道協定和其他（或者同樣的）協定組傳送而不是傳送到實體的介面上。
    VPN和通道通常預先建好，它們有一些直接傳送到實體介面所沒有的特點（加密經過它的資料）。
    另一端，鏈路層將完成資料框接收、去除報頭並且將接收到的包傳到網路層。 
    
##### 常見實體網路架構：
     乙太
     FDDI
     Apple Talk
     Token Ring　　　等等…
     
___

# OSI七層模型

## OSI簡介

開放式系統互聯模型（Open System Interconnection Model）， 簡稱為OSI模型。

1. 由國際標準化組織 **ISO** 所提出的概念模型
2. 整體資料流程分為 **7** 個分層
3. 越高層越偏向軟體，低層則偏向硬體
4. 每個中間層為其上一層提供功能，自身功能則由其下一層提供

![iShot_2024-12-19_08.53.37](https://hackmd.io/_uploads/HyV0Rk-Sye.png)



## 各分層定義 
___
### 第**七**層 **應用層**

   #### 主功能：處理應用程式
     提供使用者網路應用服務，
     專指為應用軟體而設計的介面，
     以設定與另一應用軟體之間的通訊。

  #### 常見的通訊協議
    1. DHCP（Dynamic Host Configuration Protocol）
    2. FTP（File Transfer Protocol）
    3. HTTP（HyperText Transfer Protocol）
    4. POP3（Post Office Protocol-Version 3）

> 第七層的應用軟體（網路瀏覽器、電子郵件、線上遊戲、即時通訊等）透過單一或多種通訊協定傳達資料，依據不同的網路服務方式，這些協定能定義各自的功能及使用規範等細部規則，像是網路瀏覽器藉由HTTP的溝通，即可呈現出完整的網頁。
> 這些和使用者最貼近且直接的應用軟體就屬於第七層應用層的規範。

### 第**六**層 **表達層/展示層**
#### 主功能：轉檔編碼
    資料透過網路傳輸時，
    需要將內容予以加密或解密，而這個過程就屬於展示層
#### 常見編碼
    ASCII、JPGE、MIDI……

### 第**五**層 **會議層/會話層** 
#### 主功能 ：數據傳輸中設定和維護電腦網路中兩台電腦間的通訊連接
    此層級負責建立網路連線使得電腦間得以傳輸資料，
    等到資料傳輸結束時，連線將會中斷
#### 常見應用：
    NetBIOS names，是一種用來識別電腦資源的依據，
    讓在不同電腦上運行的不同程式，可以在區域網路中，
    互相連線，以及分享資料。
    Windows系統中的網路上的芳鄰，
    或是「檔案及列印分享」，通常會看到群組及電腦名稱，
    這些就是NetBIOS names定義的。
    
### 第**四**層 **傳輸層**
#### 主要功能：將傳輸表頭併入資料形成封包，負責整體電腦整體的資料傳輸及控制
    傳輸層可以將一個較大的資料切割成多個8位元組表示的資料流來傳輸，
    替模型頂端的第五、六、七等三個通訊層提供流量管制及錯誤控制。
    傳輸控制協定（Transmission Control Protocol，簡稱TCP）
    則是最長見具有傳輸層功能的協定。
#### TCP
    將資料流分割成適當長度的報文段(受該電腦連接的網路資料鏈路層的最大傳輸單元限制）。
    TCP為了保證不發生丟包，
    因此會給每個封包序號，同時序號也保證了傳送到接收端實體的包的按序接收。
    然後接收端實體對已成功收到的包發回一個相應的確認資訊（ACK），
    如果傳送端實體在合理的往返時延（RTT）內未收到確認，
    那麼對應的封包就被假設為已遺失並進行重傳。
    
### 第**三**層 **網路層／IP層**
#### 主功能 : 提供路由及定址功能，將網路表頭加至數據包，形成封包，以便在網路間傳遞。
    主要的通訊協定是網際網路協定（Internet Protocol，IP）目的主要是為這筆資料定下傳送目的地的位址
    資料在傳輸時，該協定將IP位址加入傳輸資料內，並把資料組成封包（Packet）。
    在網路上傳輸時，封包裡面的IP位址會告訴網路設備這筆資料的來源及目的地。
    由於網路層主要以IP運作為主，故又稱為「IP層」。
#### 常見設備
##### 企業機房
    路由器
    Layer3 交換器
##### 其它
    IP分享器
    俗稱小烏龜的ADSL用戶終端設備
#### 其他協定
    IPX
    X.25

### 第**二**層 **資料連結層**
#### 主要功能：負責網路尋址、錯誤偵測和改錯，為網路之間建立邏輯連結。
    資料連結層將實體層的數位訊號封裝成一組符合邏輯傳輸資料，這組訊號稱為資料訊框（Data Frame）。
    訊框內包含媒體存取控制（Media Access Control，MAC）位址、
    邏輯鏈路控制(Logical Link Control, LLC) 兩部分。
    而資料在傳輸時，這兩項資訊可讓對方主機辨識資料來源。
   
#### 子層1：邏輯鏈路控制 LLC
    主要工作:
         控制訊號的交換
            資料的流量
         解釋上層通訊軟體傳來的命令並產生回應
         克服資料在傳送的過程中所可能發生的種種問題(資料發生錯誤、重覆資料...)
#### 子層2：媒介存取控制 MAC     
    主要工作：
         資料幀的封裝/卸裝
            定址和識別
            接收與傳送
            差錯控制
         鏈路的管理
         
    位址格式：
         由48個位元(6個位元組)構成。
         以16進位的方式來表示
        
    MAC子層的存在消除了不同物理鏈路種類的差異性   
>MAC和IP一樣，都是提供「定址」的方式，好讓各個設備了解網路資料應該要往什麼地方發送。MAC的位址都是唯一的，所有的網路卡都有一個MAC位址，而這個位址不會與世界上其他的網路卡的MAC位址相同

>MAC主要負責控制與連線物理層的物理介質。在傳送資料的時候，MAC協議可以事先判斷是否可以傳送資料，如果可以傳送將給資料加上一些控制資訊，最終將資料以及控制資訊以規定的格式傳送到物理層；在接收資料的時候，MAC協議首先判斷輸入的資訊並是否發生傳輸錯誤，如果沒有錯誤，則去掉控制資訊傳送至LLC層。                

### 第**一**層 **實體層**
#### 主要功能：區域網路上傳送資料框，負責管理電腦通訊裝置和網路媒體之間的互通。
    硬體：
         針腳、線纜、電壓值、集線器、中繼器、網卡、主機介面卡...等
    
# OSI七層架構 和 TCP/IP通訊協定 比較

## 共通性：

同許多其他協定一樣網路傳輸協定也可以看作一個多層組合，每層解決資料傳輸中的一組問題並且向使用這些低層服務的高層提供定義好的服務。高層邏輯上與使用者更為接近，所處理資料更為抽象，它們依賴於低層將資料轉換成最終能夠進行實體控制的形式。

兩者都基於獨立的協議棧的概念，強調網路技術獨立性（Network Technology Independence）和端對端確認（End-to-End Acknowledgement）。

且層的功能大體相同，兩個模型能夠在相應的層找到相應的對應功能。

___
## 定義上差別：
```
>OSI七層是以：“通訊協議的必要功能是什麼？”這個問題未中心，再進行模型化。

>TCP/IP是以：“為了將協議實際安裝到計算機中如何進行程式設計最好？”為中心進行模型化。

>結果：TCP/IP的實用性強。
```

___
## 缺點比較：
### OSI 七層架構 缺點：
1. OSI模型的服務定義和協議相對TCP/IP複雜許多。
   在七層結構中:
    
        會話層和表示層:
            雖然在定義上有一定意義存在，
            不過論實際應用的話，並不一定能有實質上的使用價值。
        
        它的存在價值只能說是為了OSI架構而被定義出來的。
        
        資料鏈路層和網路層：
            涵蓋功能煩雜，從而分成幾個不通功能的子層。
            這使得整體結構臃腫。因此在最初應用時不僅大又笨拙且緩慢。
 
3.  某些功能重複出現：

        定址、
        流量控制、
        出錯控制...等等
        
        這些功能在各層重複出現。導致效率降低，系統功能下降。

5.  某些特性無法找到與之對應的特定層。

        虛擬終端處理原先在表示層，後來被放到應用層
        
        資料安全、加密問題和網路管理無法決定放在哪一層，從而被擱置。


### TCP/IP模型的缺陷：

1.  沒有明顯的區分服務、介面和協議的概念

3.  TCP/IP模型並不是完全通用的，只適合描述TCP/IP模型的協議疊。
 
5.  主機網路層在分層協議中不像是通常意義上的層，
    它比較像一個介面，處於網路層和資料鏈路層的中間。
 
7.  TCP/IP模型不區分物理層和資料鏈路層。
 


___


## 結構比較

### OSI的上三層 相當於 TCP/IP中的應用層

OSI模型的最上面三層（應用層、表現層和會議層）在TCP/IP組中被整合在一個應用層。
由於TCP/IP有一個相對較弱的會議層，由TCP和RTP下的打開和關閉連接組成，並且在TCP和UDP下的各種應用提供不同的埠號，這些功能能夠由單個的應用程式增加。與此相似的是，IP是按照將它下面的網路當作一個黑盒子的思想設計的，這樣在討論TCP/IP的時候就可以把它當作一個獨立的層。



### 定義上的衝突 
IP能夠承載多種不同的高層協定的資料；這些協定使用一個唯一的IP協定號進行標識。
一些IP承載的協定，如ICMP（用來傳送關於IP傳送的診斷資訊）和IGMP（用來管理多播資料），
它們位於IP層之上但是完成網路層的功能，這表明網際網路和OSI模型之間的不相容性。
所有的路由協定，如BGP、OSPF、和RIP實際上也是網路層的一部分，儘管它們似乎應該屬於更高的協定疊。


___
# 結論
**OSI參考模型與TCP/IP參考模型都不完美。**

* OSI：
     由於在ISO制定OSI參考模型過程中總是著眼於通訊模型所必需的功能，理想化得等待政府行為來統     一各種網路協議，在制定過程中忽略了網際網路協議的重要性。
     因此當考慮到這一點時，由於功能複雜難以實現等原因，失去了市場。
 
* TCP/IP：
     在現存的協議基礎上，考慮到“將協議實際安裝到計算機中如何進行程式設計最好”實際應用的問題，
     使得在實現上比較容易，得到了廣大使用者得支援，也得到了大廠商的支援，
     所以TCP/IP參考模型相較被廣大發展，且使用度較高。
 
 