## Ch6 網際網路 ### 題目 1. 下列哪項不是網路模擬的用途之一? (A) 網路測試與調整 (B) 網路安全測試 \(C\) 軟體開發和測試 (D) 音樂製作。 2. 以下哪個不是網路模擬常用的工具之一? (A) CiscoPacket Tracer (B) GNS3 \(C\) Wireshark (D) Photoshop。 3. 為什麼使用網路模擬可以更有效率和更安全? (A) 可以模擬出各種網路場景 (B) 不需要額外的真實網路設備 \(C\) 提供方便的快照和還原功能 (D) 以上皆是。 4. 以下哪個不是手動設定電腦上網所需的基本參數? (A) IP位址 (B) MAC位址 \(C\) 預設閘道器 (D) 名稱伺服器。 5. HTTP協定的主要功能是什麼? (A) 控制網路的傳輸速率 (B) 定義網站伺服器和用戶端之間的通訊協定 \(C\) 傳輸郵件 (D) 處理網路連線的安全性。 6. SMTP 協定主要用於什麼目的? (A) 傳輸超文件 (B) 下載檔案 \(C\) 寄送郵件 (D) 處理網路連線的安全性。 7. 下列何者為DNS 協定提供的功能是什麼? (A) 控制網路流量 (B) 處理網路連線的安全性 \(C\) 將網域名稱對應到IP位址 (D) 定義伺服器和用戶端之間的通訊協定。 8. 下列哪一種協定可以利用IP位址來查詢區域網路中對應主機的網路卡卡號? (A) ICMP (B) RARP \(C\) ARP (D) UDP。 9. IPv4子網路遮罩常常以一個斜線和一個整數來表示,如/24。下列哪一個子網路遮罩的值是錯誤的? (A) /1 (B) /33 \(C\) 以上皆錯誤 (D) 以上皆正確。 10. 下列哪一個傳輸層提供的服務,是UDP協定本身即可提供的? (A) 多工傳輸 (B) 流量控制 \(C\) 雍塞控制 (D) 可靠傳輸。 --- <details> <summary><strong>Answer ch6</strong></summary> 1. D 2. D 3. D 4. B 5. B 6. C 7. C 8. C 9. B 10. A </details> ### 附錄 如果今天要打開 Google,發現打不開,要如何處理?(網路排錯) :::success - Step 1: `ping 127.0.0.1` (回圈測試 Loopback) - Step 2: `ping` 區域網路內的設備 (室友/手機) - Step 3: `ping` 預設閘道 (房東的路由器/小烏龜) - Step 4: `ping` 外部服務提供商 (學校/電信商) - Step 5: `ping 8.8.8.8` (Google 的 DNS Server) ::: ## Ch7 網路應用 ### 題目 無 ### 附錄 1 >如果使用者細心觀察的話,可以發現這些網路的內容,有許多都是由使用者提供的。這和傳統主要由伺服器架設人員提供內容的方式有所不同,而這也是所謂 Web 2.0的最佳實踐。 > >Web 2.0 並不是一個規格或是技術標準,它是一種觀念。所謂 Web 2.0 指的是:網站上的內容主要是透過使用者參與而產生。將人與人之間的分享及互動,透過 WWW 技術呈現在網站上,以建立更豐富多元,以人為本的網站內容。當然,除了社群網路外,先前提到的許多網路服務,如 YouTube、或是讀者熟悉的Wikipedia 百科全書、各式各樣的部落格,都是以 Web 2.0 這個觀念來設計的服務呢! ### 附錄 2 :::info **DNS(網域名稱系統)** 的層級結構 | **層級** | **範例與分類** | **說明** | | --------- | -------------------------------------- | ------------------------------------------ | | **頂級網域** | `.tw`, `.jp`, `.cn` | **國家代碼**。代表該網站註冊的地理區域。 | | **第二層網域** | `.edu`, `.com`, `.gov`, `.org`, `.idv` | **類別定義**。`.edu` 是學術、`.gov` 是政府、`.idv` 是個人。 | | **第三層網域** | `thu` (東海大學) | **組織名稱**。這是學校或公司自定義的名稱。 | | **主機名稱** | `mail`, `www` | **服務類型**。`mail` 通常指向郵件伺服器。 | ::: :::warning 電子郵件三大協定 (Email Protocols) | 協定名稱 | 主要功能 | 運作特性 | | :-------------------------------------------- | :------ | :----------------------------------- | | **SMTP**<br>(Simple Mail Transfer Protocol) | 寄送和傳遞郵件 | 負責將信件「推送」出去 (Push) 到收件人的伺服器。 | | **POP3**<br>(Post Office Protocol 3) | 下載郵件 | 從伺服器「搬移」信件至本地端,下載後通常伺服器不留存,適合單機作業。 | | **IMAP**<br>(Internet Message Access Protoco) | 閱讀與同步管理 | 在伺服器上直接讀信並「雙向同步」,多台裝置(手機/電腦)狀態會保持一致。 | ::: ## Ch8 網路安全 ### 題目 1. 若利用加密函數ENC(m, k)使用密鑰k對訊息m進行加密,請問下列哪一種加密函數在運算二次時相當於解出密文? (A) Caesar (B) AES \(C\) TripleDES (D) XOR。 2. 對稱式區塊加密演算法,若遇到訊息長度小於密鑰長度時,應該要如何處理? (A) 不需要處理,直接將訊息與密鑰輸入演算法進行加密即可。 (B) 將訊息後面補上特定字元,直到長度與密鑰相同時再進行加密。 \(C\) 將密鑰長度縮短為與訊息長度相同後,再進行加密。 (D) 將訊息後面補上特定字元,直到長度為密鑰之二倍長時時再進行加密。 3. 關於DDoS攻擊的來源,下列何者為是? (A) 個人上網主機 (B) 伺服器 \(C\) 嵌入式或是物聯網裝置 (D) 以上皆是。 4. 下列何種對稱式演算法是美國國家標準技術局自 2001 年起採用的加密標準? (A) AES (B) BES \(C\) CES (D) DES。 5. 下列哪種應用和非對稱式加解密演算法無關? (A) RSA (B) DSA \(C\) DES (D) ElGamal。 6. RSA演算法是基於計算何種問題的困難度設計而成? (A) 離散對數 (B) 因數分解 \(C\) 二次剩餘 (D) 橢圓曲線。 7. Diffie-Hellman演算法是基於計算何種問題的困難度設計而成? (A) 離散對數 (B) 因數分解 \(C\) 二次剩餘 (D) 橢圓曲線。 8. 下列關於雜湊函數的描述,何者有誤? (A) 修改輸入中的任一字元都可以得到完全不相干的輸出 (B) 雜湊函數是不可逆的函數 \(C\) 相同的輸入一定可以得到相同的輸出 (D) 不同的輸入一定可以得到不同的輸出。 9. 網站上提供的下載檔案常常都會附上其雜湊值。透過驗算和比對雜湊值,我們主要可以確保: (A) 檔案是由該網站提供 (B) 檔案內容無誤 \(C\) 檔案名稱無誤 (D) 檔案不會有侵權問題。 10. 若要驗證資料是由指定對象送出,我們應要求指定對象進行何種操作? (A) 對稱式加密 (B) 非對稱式加密 \(C\) 數位簽章 (D) 雜湊。 --- <details> <summary><strong>Answer ch8</strong></summary> 1. D 2. B 3. D 4. A 5. C 6. B 7. A 8. D 9. B 10. C </details> --- ### 附錄 1 :::success 對稱加密: 1. 加密、解密用同一把鑰匙 2. 適合大量資料庫加、解密 ::: :::warning 非對稱加密: 1. 加密、解密用不同鑰匙 2. 適合用來做驗證機構:驗證資料來源 - 身分驗證 - 數位簽章 ::: 將原始資料與金鑰進行逐位元運算: |**項目**|**二進位數值**| |---|---| |**明文 (Plaintext)**|`0 1 1 0 1 0 0 0` (這是 ASCII 的 'h')| |**金鑰 (Key)**|`1 0 1 0 1 0 1 0`| |**密文 (Ciphertext)**|**`1 1 0 0 0 0 1 0`**| 現在,我們拿剛才得到的密文,再次與同一個金鑰進行 XOR: |**項目**|**二進位數值**| |---|---| |**密文 (Ciphertext)**|`1 1 0 0 0 0 1 0`| |**金鑰 (Key)**|`1 0 1 0 1 0 1 0`| |**還原明文**|**`0 1 1 0 1 0 0 0`**| ### 附錄 2 :::info 網路攻擊最普通的手法,就是阻斷服務攻擊(denial of service)。阻斷服務攻擊的型式有很多種。其中一種就是阻斷網路連線的能力。在發動攻擊時,攻擊者製造大量的網路流量,傳送給被攻擊的目標,讓目標無法進行網路連線,或是提供網路服務。網路的頻寬一定是有限的! 那種找一大群電腦一起發動攻擊的,我們稱其為分散式服務阻斷攻擊(Distributed Denial of Service;DDoS)。相較之下,其攻擊規模更大、更難防範。這樣的攻擊雖然不會導致主機資料損毀或外洩,卻可以使得網路主機因為網路 痪而無法提供服務。 ::: :::info - 特洛伊木馬程式 - 釣魚網站 - DDoS - 字典攻擊 ::: :::warning 無線網路協定: - WEP - WPA ::: ## Ch9 程式語言 ### 題目 無 ### 附錄 1 :::info | **語言層級** | **表現形式** | **特性 / 處理方式** | **範例** | | ------------------------ | ------------------ | --------------------------------------------------------- | ----------------------- | | **機器語言**<br>(Machine) | **0 和 1** (二進位制) | 電腦唯一能直接執行的語言,對人類極難理解。 | `01101000` | | **組合語言**<br>(Assembly) | **助憶符 (Mnemonic)** | **低階語言**。可讀性低,需透過 **組譯器 (Assembler)** 轉為機器碼。 | `MOV`, `ADD`, `PUSH` | | **高階語言**<br>(High-level) | 類英文語法 | **可讀性高**。需透過 **編譯 (Compile)** 或 **直譯 (Interpret)** 轉為機器碼。 | `Python`, `C++`, `Java` | ::: :::warning - Fortran: 工程計算 (如大氣科學) - LISP: 人工智慧 - COBOL: 商業與金融 - PASCAL: 數學計算 - C: 底層硬體 - C++: 物件導向 ::: ### 附錄 2 **Pointer** is a variable that can store the address of another variable. ## Ch10 資料結構 ### 題目 無 ### 附錄 1 ![image](https://hackmd.io/_uploads/B1bqPu9m-l.png) ![image](https://hackmd.io/_uploads/Hy5-wOcmZe.png) ## Ch11 演算法 ### 題目 無 ### 附錄 1 請熟悉 | **演算法名稱** | **運作邏輯 (口訣)** | **平均時間複雜度** | **穩定性** | **特點** | | ---------------------------------- | ------------------------ | ------------------ | ---------- | --------------------------------------------------------- | | **選擇排序法**<br>(Selection Sort) | **找最小,換前面** | $O(n^2)$ | 不穩定 | 概念最簡單,交換次數少,但效能較差。 | | **插入排序法**<br>(Insertion Sort) | **像排撲克牌** | $O(n^2)$ | 穩定 | 在資料量小或**幾乎已排序**時效能極佳。 | | **泡沫排序法**<br>(Bubble Sort) | **兩兩相比,大的往後推** | $O(n^2)$ | 穩定 | 程式碼最易撰寫,但效能通常是最低的。 | | **快速排序法**<br>(Quick Sort) | **選基準點,分左右** | $O(n \log n)$ | 不穩定 | **實務最常用**。採用分治法 (Divide & Conquer),速度最快。 | ### 附錄 2 演算法的五大核心特性是: - 輸入 (Input) - 輸出 (Output) - 明確性 (Definiteness) - 有限性 (Finiteness) - 有效性 (Effectiveness) ## Ch12 軟體工程 無 ### 附錄 1 :::info - 程式開發人員 RD (Research and Development) - 專案管理人 PM (Project Manager) - 測試工程師 QA (Quality Assurance) ![image](https://hackmd.io/_uploads/H15-6OoQWg.png) ::: ## Ch13 資料庫 ### 題目 無 ### 附錄 1 > 將資料建立好之後我們必須透過特殊的語言將資料查詢出來,此類語言稱作查詢語言(query language),而標準的關聯式查詢語言稱作 SQL (Structured Query Language)。 - 資料庫管理者 DBA (DataBase Administrator) - 資料定義語言 DDL (Data Definition Language) - 資料處理語言 DML (Data Manipulation Language) ## Ch14 人工智慧 自己看課本,寫得很詳細