###### tags: `說明` :::danger 筆記內容用於個人學習,大都整理自公開的網路資訊,再加上自己的學習心得 ::: --- [TOC] --- # 資訊網路工程 ## OSI (Open System Interconnection Reference Model) **開放式系統互連通訊參考模型** :::info :memo: :mega: > PDNTSPA [color=red] > > PD 拿錢 (NT) 做 SPA [name=mohjj][time=2019 ,02 ,23][color=blue] | OSI 七層 |PDNTSPA |應用| | :--------: | :-------- |:--------: | |==實體層==| (==P==hysical Layer) | Brigde,**網路卡**,乙太網(802.3) |==資料連結層==| (==D==ata Link Layer) | LLC,**MAC**,Bridge,WI-FI(802.11),**ARP** |==網路層==| (==N==etwork Layer) | **Router**,**IP**,**ICMP**,**OSPF**,**RIP**,**RARP** |==傳輸層==| (==T==ransport Layer) |**TCP**,**UDP**,**SCTP** |==會議層==| (==S==ession Layer) | |==表達層==| (==P==resentation Layer) |**資料加密和解密**,資料壓縮和解壓,資料編碼和解碼 |==應用層==| (==A==pplication Layer)|HTTP,SMTP,POP3,FTP<br>TELNET,**SSH**,HTTPS,**SNMP**,P2P,Client-server ::: ___ ## TCP/IP ### 網際網路協議 網際網路協議(英語:Internet Protocol Suite,縮寫 **IPS**)[1]是一個網路通訊模型,以及一整個網路傳輸協定家族,為網際網路的基礎通訊架構。它常被通稱為**TCP/IP**協定套組(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP[2]。因為該協定家族的兩個核心協定:TCP(傳輸控制協定)和IP(網際網路協定),為該家族中最早通過的標準[3]。由於在網路通訊協定普遍採用分層的結構,當多個層次的協定共同工作時,類似電腦科學中的堆疊,因此又被稱為TCP/IP協定疊(英語:TCP/IP Protocol Stack)[4][5] 。這些協定最早發源於美國國防部(縮寫為DoD)的ARPA網專案,因此也被稱作**DoD模型**(DoD Model)[6]。這個協定套組由網際網路工程任務組負責維護。 TCP/IP提供點對點的連結機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。它將軟體通訊過程抽象化為四個抽象層,採取協定堆疊的方式,分別實作出不同通訊協定。協定套組下的各種協定,依其功能不同,被分別歸屬到這四個階層之中[7][8],常被視為是簡化的七層OSI模型。 ___ ## PDU(Protocol Data Unit) ### 協議數據單元 在 OSI 模型系統里,PDU 和最底下四層相關。 | OSI 模型 | Unit |協定| | -------- | -------- |---| | 實體層 | 數據位(Bit) || | 資料連結層 | 數據幀(Frame) || | 網路層 | 數據包(Packet) |**IP**| | 傳輸層 | 數據段(Segment) |**TCP**,**UDP**| | 會議層以上 | 數據(data) || --- ## TCP/IP Model ### TCP/IP Model 跟 OSI 對應 :::success | OSI 七層 |TCP/IP四層 | | :-------- | :-------- | |實體層,資料連結層| 網路存取(連結)層(==N==etwork Access(link) Layer) | |網路層| 網路互連層(==I==nternet Layer) | |傳輸層| 傳輸層(==T==ransport Layer) | |會議層,表達層,應用層| 應用層(==A==pplication Layer)| ::: 網路協定 (networking protocol) 由許多層級 (layer) 組成,每一層所使用的資料結構則統稱為協定資料單元 (PDU)。其中包含了控制與位址資訊的表頭/標頭(header),與實際乘載的資料(data)。 ![](https://i.imgur.com/iMmMTsX.png) 先來個簡單的示意圖: ![](https://i.imgur.com/zbpShHR.png) 發送方 寫好了 信紙 (第 4 層), 將其放入 信封,並寫上收件人、地址…後,成為了信件 (第 3 層), 接著將多封信件封箱,成為了包裹 (第 2 層), 最後交由卡車 將其運輸給 接收方 (第 1 層)。 這種在 資料/封包 在傳遞到下一層以前, 新增此層的 表頭 (header) 或其他元資料的動作,稱為 封裝。 反之,拆裝 或稱解封裝、解包 (unpack) 是 資料/封包 從底層傳遞到上層前,去除表頭的行為。 封裝 (Encapsulation) 與 拆裝 (Decapsulation), 抽象出每層的資料結構,使底層無需知道上層的具體細節, 以增加 酬載 (payload) 的擴充性與彈性。 相同的觀念,應用在常見的 TCP/IP Model 中: ![](https://i.imgur.com/UTQFuBw.png) :::info TCP 表頭 + 資料,稱為 ==**TCP 區段 (TCP Segment)**== ::: :::info IP 表頭 + 資料,稱為 IP 資料包 (IP Datagram) 或更常見的名稱 ==**封包 (packeet)**== ::: :::info 資料鏈結層表頭 + 資料 + 表尾 (如果有的話),則稱作 ==**訊框 (Frame)**==。 ::: 另外,若傳輸層使用 UDP,則稱為 UDP 資料包 (UDP Datagram),應用層 也可能自我 (或結合其他應用) 進行封裝。 --- ## packet switching ### 封包交換 在計算機網路和通訊中,封包交換(英語:Packet switching)是一種相對於電路交換的通訊範例,封包(又稱消息、或消息碎片) :::info 在節點間單獨路由,不需要在傳輸前先建立通訊路徑。 ::: 封包交換是數據通訊中一種新的且重要的概念,現在是世界上網際網路通訊、數據和語音通訊中最重要的基礎。在此之前,數據通訊是基於電路交換的想法,就像在傳統的電話電路一樣,在通話前先建立專有線路,通訊雙方要在電路的兩端。 ### ARPAnet(Advanced Research Projects Agency Network) 封包交換技術是在1960年代末出現的,當時美國高級研究計劃局(簡稱ARPA)為實現遠程計算機之間的資訊交換,資助建設一個試驗性的網路,該網路被稱為==ARPANET==。ARPANET 的主要研究成果之一就是開發一種新的網路協議,在 ARPANET 網路上對話必須使用這種網路協議。該協議採用一種新的網路資訊傳輸技術,這就是封包交換技術。 :::warning - 傳送的資料分為數個大小相等的區塊, - 透過不特定的路徑在網路中傳遞 - 非同步傳輸模式(ATM) ::: ![](https://i.imgur.com/ijTu8Im.png) ___ ## FTP(File Transfer Protocol) ### 檔案傳輸協定 是一個用於在電腦網路上在用戶端和伺服器之間進行檔案傳輸的應用層協定。檔案傳送(file transfer)和檔案存取(file access)之間的區別在於:前者由FTP提供,後者由如NFS等應用系統提供[1]。參考文獻RFC959定義了此規範。 FTP是一個8位元的用戶端-伺服器協定,能操作任何類型的檔案而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求資料之間的時間,會非常長;並且不時的必須執行一些冗長的登入行程。 FTP 是屬於 ==TCP== 服務的一種, FTP 是所有通訊協定裡最特殊的,其他的通訊協定例如 HTTP、SMTP、POP3...都只需要一個通訊埠,然而 FTP 卻需要兩個通訊埠 :::info port 21: 用來傳遞客戶端與伺服器之間的命令稱之為命令通訊埠(Command Port) ::: :::info port 20: 真正用來傳遞資料的,稱之為資料通訊埠(Data Port) ::: FTP資料傳送的模式又分二種:PORT、PASV。兩者主要分別在於它們會向FTP伺服器發出不同的FTP Command。 ## VoIP (Voice Over Internet Protocol) ### 網際網路電話 基於 IP 的 語音傳輸(英語:Voice over Internet Protocol,縮寫為 VoIP)是一種==語音通話技術==,經由網際協定(IP)來達成語音通話與多媒體會議,也就是經由網際網路來進行通訊。其他非正式的名稱有IP電話(IP telephony)、網際網路電話(Internet telephony)、寬頻電話(broadband telephony)以及寬頻電話服務(broadband phone service)。 --- ## 範例: ### IP 位址”1100000000000000000000000000011”的 dotted-decimal 寫法表示 :::success 以下何為 IP 位址”1100000000000000000000000000011”的 dotted-decimal 寫法表示? `(A)` 192.0.0.3 `(B)` 3.0.0.192 `(C)` 2.0.0.2 ==`(D)`== 96.0.0.3 ==`(E)`== 以上皆非 ::: :::warning 依照IETF於1981年9月發布的RFC 791,IP位址的長度為32 bits(4 bytes),雖然此題所敘述之IP位址“1100000000000000000000000000011”只有31 bits,但在電腦中用設定運算子(Assignment Operator)將這31 bits的二進位碼輸入到32bits的空間時,所缺少的那一個最高有效位元(Most Significant Bit)會被視為0,因此最後所顯示的IP會等同於“01100000000000000000000000000011”。而根據dotted-decimal寫法是先將32 bits的IP位址以八個為一組分成4組,變為 :::danger 01100000.00000000.00000000.00000011 最後再轉成10進位,故答案應為:D“96.0.0.3”。 ::: 因本題目有爭議,故選D或E都對 ___ ## 類比信號(Analog signal)與數位信號(Digital signal) * 類比信號(Analog signal) 是屬於一種連續性的信號,如溫度、濕度、光線…等等都屬於此類的信 號。為觀察類比信號中電壓、電流…等各種信息,一般會使用示波器來進行測量。 * 數位信號(Digital signal) 則是一種以0、1來表示的非連續性信號。因信號狀態較為單純,故需觀察數位信 號時,使用邏輯分析儀來進行測量記錄更為妥當。 ![](https://i.imgur.com/pHwMYLw.png) 數位信號(Digital signal)特徵 > `(1)`一般比類比信號==便宜== > `(2)`較==不容易受到雜訊干擾== > `(3)`較==容易衰退== > `(4)`可靠度高且容易儲存 ___ ## 滲透測試 ==Nmap== 是一款網絡掃描和主機檢測的非常有用的工具。 Nmap是不局限於僅僅收集信息和枚舉,同時可以用來作為一個漏洞探測器或安全掃描器。 ___ ## NAT(Network Address Translation) ### 網路位址轉換 網路位址轉換又稱網路掩蔽、IP掩蔽(英語:Network Address Translation,縮寫:NAT),在電腦網路中是一種在IP封包通過路由器或防火牆時重寫來源IP地址或目的IP位址的技術。這種技術被普遍使用在有多台主機但只通過一個公有IP位址存取因特網的私有網路中。它是一個方便且得到了廣泛應用的技術。當然,NAT也讓主機之間的通訊變得複雜,導致了通訊效率的降低。 NAT是用來讓私有的IP位址能夠存取外面的網際網路,而不需要經過任何的註冊IP位址的動作。 剛剛介紹過,私有IP位址是沒有辦法直接存取到外面的網際網路,所以若要連到網際網路,勢必一定要使用已經註冊的公有IP位址(Public IP Address),而NAT技術就是幫忙做公有IP位址和私有IP位址之間的轉換動作,讓使用私有IP位址的電腦也能夠方便地存取外面的網際網路。 NAT運行種類 > `(1)`==靜態==(Static)NAT [color=red] > > 靜態NAT是指 > > :::danger > > 將私有IP位址對應到公有IP位址,並允許內部網路的電腦使用公有IP位址連線到網際網路[color=blue] > > ::: > > 而這裡所使用的對應方式是採用一對一的方式,也是最基本的NAT > > > `(2)`==動態==(Dynamic)NAT > > 動態NAT方式則是將一個私有IP位址與一群公有IP位址做對應。[color=blue] > > > `(3)`Overlapping > > 與動態NAT剛好相反,是將多個私有IP位址與單一一個公有IP位址做對應。[color=blue] > > :::info 超載是一種特殊形式的動態 NAT, 藉由==使用不同埠號==, 將多個未註冊的 IP 位址對應到單一個註冊的 IP 位址 (多對一)。 ::: ![](https://i.imgur.com/ImsgO9K.png) ___ ## Automatic Repeat-reQuest,ARQ ### 自動重傳請求 是OSI模型中數據鏈路層和傳輸層的錯誤糾正協議之一。它通過使用確認和超時這兩個機制,在不可靠服務的基礎上實現可靠的信息傳輸。如果發送方在發送後一段時間之內沒有收到確認幀,它通常會重新發送。ARQ可能包括停止等待ARQ協議和連續ARQ協議,錯誤檢測(Error Detection)、正面確認(Positive Acknowledgment)、超時重傳(Retransmission after Timeout)和 負面確認及重傳(Negative Acknowledgment and Retransmission)等機制。 自動重傳請求 > `(1)`==停止並等待ARQ協議==(stop-and-wait) [color=red] > > **Step 1.** > > 端點主機A傳送資料(封包1)給端點主機 > > B,並設定一個『計時器』(timer)開始計時,並等待B的確認封包回應 > > **Step 2.** > > 端點主機B接受到『封包1』時,驗證資料> > 正確無誤後,隨即送出一個『確認』的封包『確認 > > 1』給A,告訴A已正確收到『封包1』 > > **Step 3.** > > 當端點主機A在『固定時間』內,收到B所回應的『確認1』封包後,便繼續傳送下一個『封包2』,並重複 > > Step1~Step3 > > :::danger > > ![](https://i.imgur.com/jaWvgpZ.png) > > :::[color=blue] > > > > > `(2)`==回退N重傳==(Go-Back-N) > > 傳輸多個封包 必須有個暫存的區域,暫存的區域中存在著窗格大小(Window Size) N,存放著各種封包(已確認、已送出但未收到ACK、未送出的封包等等)。接收端也會開啟窗格來接收封包,會記著目前收到封包的編號,假設收到順序不對的封包N+1(等待接收第N個,下一個傳來的卻是第N+1號),**會將N以後的封包全部丟棄,此時傳送端一直沒收到ACK(N),會把N號以後的封包全部重新傳送出去。**[color=blue] > > > `(3)`==選擇重傳==(Selective Repeat) > > GBN的傳送方法 往往會造成不必要的重複,因此SR的傳送方法 就是**只針對未收到的封包做重新傳輸的動作**。首先規劃出大小為N的窗格來限制大小,窗格的基底會停留在最近一個尚未收到ACK的封包區域,當封包時間逾時會重新送出封包,直到收到該封包的ACK 窗格基底才會往前移動。[color=blue] > > ``` 下圖為 Go-Back-N 跟 selective Repeat 比較 如果傳送 Data 2 時失敗 1.Go-Back-N:接收到 NAK2 時表示 Data 2 接收失敗,則雖然 Data 3 跟 Data 4 已傳出但是也會被丟棄,回到 Data 2 全部再重傳 2.selective Repeat:接收到 NAK2 時表示 Data 2 接收失敗,但 Data 3 跟 Data 4 已傳出且不會被丟棄,只要重傳 Data 2 既可往下傳送其他 Data ``` ![](https://i.imgur.com/S58z0oT.png) ## 三向交握(Three Way Handshake) ### 『建立連線』階段的『三向交握』 由於TCP是一個連線導向( connection oriented )的傳輸協定,所以在 彼此傳送資料前會經過一個連線『交握』( handshaking )的動作,也就 是先透過此交握的動作,彼此達到協商以及交換資訊的目的,而此動作 稱之為『三向交握』( Three Way Handshake ) 顧名思義,『三向』交握 ,就是透過主動要求連線的『客戶端』( Host A),與被動要求連線的『伺服端』( Host B),經過三次封包交換達成連 線協議,包括以下三個基本步驟,並參考圖10-16所示 ![](https://i.imgur.com/TLFe0jn.png) <br> ![](https://i.imgur.com/C61zXOK.png) <br> ![](https://i.imgur.com/NTwwedm.png) ___ ## SCTP(Stream Control Transmission Protocol) ### 流控制傳輸協定 作為一個傳輸層協定,SCTP 可以理解為和 TCP 及 UDP 相類似的。 :::info 它提供的服務有點像 TCP,又同時將 UDP 的一些優點相結合。是一種提供了可靠、高效、有序的資料傳輸協定 :::danger TCP + UDP 的優點 ::: 相比之下 TCP 是面向位元組的,而 ==SCTP 是針對成影格==的訊息。 :::info SCTP 將資料傳給應用層的方式,是將資料視為message(bytes的集合),SCTP 的特徵是==message-oriented==,意思就是說它傳送的是一串message(每一個 message 是 byte 為單位的集合) ::: 相對於 TCP 是以 byte 為單位,傳送的是破碎的串流。在 SCTP 發送端用一個動作送出訊息,接收端也是用一個動作取出訊息傳給對應的應用程式。相較於TCP,是一個串流導向的協定,可靠地且有順序地傳送以 bytes 為單位的串流。然而 TCP 並不允許接收端知道發送端的應用程式呼叫送出 bytes 集合的次數。在發送端 TCP 只是簡單的附加更多 bytes 在 queue 裡等待著送到網路上,而 SCTP 是將要送出的 outband message 都保有自己獨立的queue。 - ==**SCTP 透過四向交握**==(four-way handshake) SCTP association 之建立與終止流程示意圖 ![](https://i.imgur.com/sg08zkm.png) TCP 通訊協定於初始連線時,透過三向交握的方式進行初始連線的建立,然而,==三向交握因具有 DoS 攻擊之弱點,於是在 SCTP 通訊協定的設計,初始連線則是採用四向交握的策略,SCTP 通訊協定先天上的設計可避免 DoS 攻擊的發生==。 - 適用於網路電話,影片串流 ,即時傳輸 ___ ## Intel 處理器 ![](https://i.imgur.com/MCV90oO.png) ___ ## 中間人攻擊 中間人攻擊(英語:Man-in-the-middle attack,縮寫:MITM)在密碼學和電腦保安領域中,是指攻擊者與通訊的兩端分別建立獨立的聯絡,並交換其所收到的資料,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個對談都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。在許多情況下這是很簡單的(例如,在一個未加密的Wi-Fi 無線存取點的接受範圍內的中間人攻擊者,可以將自己作為一個中間人插入這個網路)。 一個中間人攻擊能成功的前提條件是攻擊者能將自己偽裝成每一個參與對談的終端,並且不被其他終端識破。中間人攻擊是一個(缺乏)相互認證的攻擊。大多數的加密協定都專門加入了一些特殊的認證方法以阻止中間人攻擊。 :::danger 例如,**SSL**協定可以驗證參與通訊的一方或雙方使用的憑證是否是由權威的受信任的**數位憑證**認證機構頒發,並且能執行雙向身分認證。 ::: ___ ## signed number representations ### 有符號數 在數學中,任意基數的負數都在最前面加上「−」符號來表示。然而在電腦硬體中,數字都以無符號的二進位形式表示,因此需要一種編碼負號的方法。目前有四種方法,用於擴充二進位數字系統,來表示有符號數: - 原碼(sign-and-magnitude) - 反碼(one's complement) - 二補數(two's complement) - 移碼(offset binary,excess-N) ### 原碼 符號及值(sign & magnitude)的處理辦法是 :::info 分配一個符號位(sign bit)來表示這個符號:設定這個位(通常為最高有效位)為 0 表示一個正數,為 1 表示一個負數 ::: 數字中的其它位指示數值(或者絕對值)。因此一個位元組只有7位(除去符號位),數值的範圍從0000000(0)到1111111(127)。這樣當你增加一個符號位(第八位)後,可以表示從−127~10~到+127~10~的數字。這種表示法導致的結果就是可以有**兩種方式表示零** - 00000000(+0) - 10000000(−0) 這大大增加數位電路的複雜性和設計難度。CPU亦須執行兩次比較,來測試運算結果是否為零。 ### 一補數 將==二進位數反轉==,得到的數即為原二進位的一補數(ones' complement)。若某一位為0,則使其變為1,反之亦然。 同原碼表示一樣,0的反碼表示形式也有兩種: - 00000000(+0) - 11111111(−0)。 ___ ### 二進位補數 二補數(英語:2's complement)是一種用二進位表示**有號數**的方法,也是一種將數字的正負號變號的方式,常在電腦科學中使用。 正數和0的二補數就是將該數字本身。 :::danger 負數的二補數則是將其**對應正數按位元取反再加1**。 ::: :::info 例如 (11001101)~2~ 的補數算法 ==> 00110010(位元取反) ==> 00110011(再加1) ==> 51~10~ 所以(11001101)~2~為 -51~10~ ::: 二補數系統的最大優點是可以在加法或減法處理中,==不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有號數加法==,而且減法可以用一個數加上另一個數的二補數來表示,因此只要有加法電路及二補數電路即可完成各種有號數加法及減法,在電路設計上相當方便。 另外,==二補數系統的0就只有一個表示方式==,這點和一補數系統不同(在一補數系統中,0有二種表示方式),因此在判斷數字是否為0時,只要比較一次即可。 下方的表是一些8-bit二補數系統的整數。它的可表示的範圍包括-128到127,總共256(=2^8^)個整數。 :::danger 8-bit二補數系統可表示範圍為 -2^8^ ~ 2^8^ -1 ==> -128 ~ 127 ::: ![](https://i.imgur.com/LAgJO6g.png) 有兩個數字的二補數等於本身:==一個是0==,另一個為該位元內可表示有符號位區分的二進位形式的==最大負數==(即1000...)。 ___ ## float 浮點數的表示與計算 ### 浮點數表示 分為三個部份 - ==**S**==:符號,表示正負值,0為正,1為負 - ==**E**==:指數,基準值加上指數,單精度(32bits)基準值為 2^(8-1)^-1 = 127,倍精度(64bits)基準值為 2^(11-1)^-1 =1023 - ==**M**==:小數,又為精確值,小數值得正規劃,並且隱藏 MSB 的 1 (正規劃後面用例子解釋) ![](https://i.imgur.com/8KeGhJR.png) ex:-12.625 使用 IEEE-754 單精度表示浮點數 :::info 1. 不管正負號直接將數值轉為二進制  12.625 => 1100.101 = 1.100101 × 2^3^ 2. 第二步驟:計算指數  127+3=130 => 10000010 3. 第三步驟:填入數值置於浮點數規格中 | S(1 bit) | E(8 bits) | M(23 bits) | | :-------- | :-------- | :-------- | | 1 | 10000010 | 100101 0000 0000 0000 0000 0| :::danger *注意: - 小數部份要隱藏 MSB 的 1 ,只填入小數點之後的數值 - 剩餘沒用到的地方補 0,補足至 23bits (倍精度就補足到 52bits) ::: 如此一來可以將轉出來的浮點數再表示成 16 進制 => 1100 0001 0100 1010 0000 0000 0000 0000 => C14A0000 補充:  1. 指數E保留0與255做為特殊用途,因此指數真正的範圍在1~254之間。  2. 指數E與小數M的特殊用途組合如下    E=0  M=0:表示0    E=0  M≠0:未正規形式    E=255 M=0:表示無限大 (配合正負號,可以表示正無限、負無限)    E=255 M≠0:NaN (Not a Number)  3. 浮點數精確度的問題    由於浮點數當小數位數不足的時候會發生兩種 error    a.進位誤差:超出表示範圍的數值,使用四捨五入產生的誤差    b.捨去誤差:不足放入小數表示位數所剩餘的小數值,皆捨去產生的誤差    所以為了解決這樣的誤差,只有提高小數點可存放的位數,但是相對的所佔用的容量就很大 ### 最大正浮點數 單精度最大正數 : | S(1 bit) | E(8 bits) | M(23 bits) | | :-------- | :-------- | :-------- | | 1 | 11111110 | 11111111111111111111111| +1.11111111111111111111111 * 2^127^ = +(2- (2^-23^))~2~ * ( 2^127^) = +3.402823668 * 10^38^ 雙精度最大正數 :一樣的算法 = +(2-(2^-52^))~2~ * (2^1023^) = +1.7976931348 * 10^308^ ### 最小正浮點數 單精度最小正數 : | S(1 bit) | E(8 bits) | M(23 bits) | | :-------- | :-------- | :-------- | | 1 | 00000001 | 00000000000000000000000| +1.00000000000000000000000 * 2^-126^ = +(1.0)~2~ * ( 2^-126^) 雙精度最小正數 :一樣的算法 = +(1.0)~2~ * ( 2^-1022^) ## EAP(Extensible Authentication Protocol) ### 擴充認證協定 擴展認證協議(英語:Extensible Authentication Protocol,縮寫為 EAP),是一個在無線網絡或點對點連線中普遍使用的==認證框架==。它被定義在RFC 3748中,並且取代了舊版協議RFC 2284,後來被新版協議RFC 5247取代。EAP不僅可以用於無線區域網,還可以用於有線區域網,但它在無線區域網中使用的更頻繁。最近,WPA和WPA2標準已經正式採納了5類EAP作為正式的認證機制。 802.1X驗證涉及到三個部分:**申請者、驗證者和驗證伺服器**。申請者是一個需要連接到LAN/WAN的用戶端裝置(如可攜式機),同時也可以指執行在用戶端上,提供憑據給驗證者的軟體。驗證者是一個網路裝置,如乙太網路交換機或無線存取點。驗證伺服器通常是一個執行著支援==RADIUS==和EAP協定的主機。 驗證者就像是一個受保護網路的警衛。申請者(如用戶端裝置)不允許通過驗證者存取到受保護一側的網路,直到申請者的身分被驗證和授權。這就像是允許進入一個國家之前要在機場的入境處提供一個有效的簽證一樣。使用802.1X基於埠的驗證,申請者向驗證者提供憑據,如用戶名稱/密碼或者數位憑證,驗證者將憑據轉發給驗證伺服器來進行驗證。如果驗證伺服器認為憑據有效,則申請者(用戶端裝置)就被允許存取被保護側網路的資源[8]。 803. ___ ## SNMP ### Simple Network Management Protocol ![](https://i.imgur.com/1JLqCr1.png) SNMP定義有5種指令,括號中的數字有其相關的PDU種類。 :::info | 指令 |PDU種類|說明| | :--------: | :--------: |:--------| |==Get-Request==| 0 | 請求管理代理者的MIB,提供一個值或一組值。 |==Get-Next-Request==| 1 | |==Get-Response==| 2 | | |==Set-Request==| 3 |設定(或更改)管理代理者MIB中的值,例如:在關閉設備時發出警告| |==Trap==| 4 |警告訊息由管理代理者的警報∕事件組合(pair)來啟動。警告的目的是通知管理站,此時可能需要網路管理員採取行動的事件。 ![](https://i.imgur.com/LRUVFu8.png) ::: ___ ## subnet mask ### 網路遮罩 [可參考故事性描述IPv4,IP,Mask等觀念的網站](https://www.jannet.hk/zh-Hant/post/IP-Address-Version-4-IPv4/) 「網路遮罩」又叫「子網掩碼」、「位址遮罩」、「子網路遮罩」(subnet mask),它是一種用來指明一個IP位址的==哪些位標識的是主機所在的網路位址以及哪些位標識的是主機位址==的位遮罩。 IPv4位址被分為三部分:網路部分(network)、子網路部分(subnetwork,現在常被認為是網路部分的一部分——儘管它本來是「rest」部分的一部分)和主機(host)部分。共有三類IP位址,它們分別指定了各部分占多少位。 ![](https://i.imgur.com/QPyZWZC.png) 子網路的劃分是一個將主機部分的若干位分配到網路部分的過程。例如,對於一個給定的A類網路:10.0.0.0,子網路遮罩:255.255.0.0可以將其劃分為256個子網路(從10.0.0.0到10.255.0.0)——第一個八位位組表示網路位址,第二個表示子網路號,而最後兩個表示主機部分。用子網路遮罩對主機位址進行位與操作,就能夠提取出完整的子網路位址(參見下面的例子)。 子網路遮罩並不局限於整數個八位位組的情況。==例如,255.254.0.0(或「/15」)同樣是一個有效的遮罩==。 :::info 255.254.0.0 ==> 11111111.11111110.00000000.00000000 /15 表示 32 bit 中前 15 碼為 1,其餘為 0,也就是跟上面一樣 ::: [子網路遮罩] TCP/IP 運作所需要的第二個項目,是子網路遮罩。 TCP/IP 通訊協定會使用子網路遮罩,來決定主機是位於本機子網路上或在遠端網路上。 以 TCP/IP 來說,IP 位址中做為網路及主機位址的部分並非固定的,因此除非您擁有更多資訊,否則無法決定上述網路及主機位址。 此資訊是由另一個稱為子網路遮罩的 32 位元數字所提供。 在本範例中,子網路遮罩是 255.255.255.0。 除非您知道 255 在二進位表示法中等於 11111111,否則不會明白這個數字代表的意義;因此,子網路遮罩為: 11111111.11111111.11111111.0000000 將 ==IP 位址和子網路遮罩排在一起,就能分隔位址的網路部分與主機部分==: 11000000.10101000.01111011.10000100 -- IP address (192.168.123.132) 11111111.11111111.11111111.00000000 -- Subnet mask (255.255.255.0) 前 24 個位元 (子網路遮罩當中的 24 個數字 1) 識別為網路位址,最後 8 個位元 (子網路遮罩中剩餘的 8 個數字 0) 識別為主機位址。 這樣可得到下列結果: 11000000.10101000.01111011.00000000 -- Network address (192.168.123.0) 00000000.00000000.00000000.10000100 -- Host address (000.000.000.132) 所以您現在知道,以使用 255.255.255.0 子網路遮罩的本範例而言,網路 ID 是 192.168.123.0,主機位址是 0.0.0.132。 當某封包抵達 192.168.123.0 子網路時 (從本機子網路或遠端網路),且該封包的目的地位址為 192.168.123.132,您的電腦會從網路接收該封包並加以處理。 幾乎所有十進位子網路遮罩都會轉換成左邊全部都是 1 及右邊全部都是 0 的二進位數字。 :::danger ## 子網路遮罩 所有 1 或 0 都必須是連續的 下列何者可為 IP 位址 120.1.2.200 主機之子網路遮罩? A. 255.255.120.0 B. 255.255.162.0 **==C. 255.255.248.0==** D. 255.255.251.0 120 => 01111000 162 => 11100010 **==248 => 11111000==** 251 => 11111011 ::: ### 網路、廣播位址 :::success 一個網段,必須要有一個==網路位址==及一個==廣播位址== ::: 算法 ==**網路位址(NA)**== : 利用一開始的IP來對遮罩做 & ==**廣播位址(BA)**== : 網路位址(NA)按照網路遮罩後都改為1 ==**可用IP**== : NA ~ BA 間,去掉 NA,BA ex: 66.248.89.147/23 網路遮罩:255.255.254.0 ip: 66.248.89.147 11111111.11111111.11111110.00000000<br> 01000010.11111000.01011001.10010011 做 and 01000010.11111000.01011000.00000000<br> 網路位址(NA) =>66.248.88.0 01000010.11111000.0101100==1.11111111==<br> 廣播位址(BA) =>66.248.89.255 可用網段要去掉 NA 跟 BA 所以為 66.248.88.1 ~ 66.248.89.254 可用 IP 66.248.88.1 ~ 66.248.88.255 有 255 台 IP<br> 66.248.89.0 ~ 66.248.89.254 有 255 台 IP 67. 255 + 255 = 510 --- ## IP 保留位址 ### 常用的保留位址 | 位址網段 | 範圍 | 位址數 |效用域|用途| | -------- | -------- | -------- | -------- | -------- | | 127.0.0.0/8| 127.0.0.0 – 127.255.255.255| 16,777,216|主機|用於到本地主機的環回位址| | 169.254.0.0/16| 169.254.0.0 – 169.254.255.255| 65,536|子網路|用於單鏈路的兩個主機之間的本地鏈路位址| | 172.16.0.0/12| 172.16.0.0 – 172.31.255.255| 1,048,576|專用網路|用於專用網路中的本地通訊| | 192.168.0.0/16| 192.168.0.0 – 192.168.255.255| 65,536|專用網路|用於專用網路中的本地通訊| | **224.0.0.0/4**| 224.0.0.0 – 239.255.255.255| 268,435,456|網際網路|用於==多播==| | **255.255.255.255/32**| 255.255.255.255| 1|子網路|用於受限==廣播位址==| ___ ## multicast ### 多點傳送 多播(英語:multicast,台灣又譯作多點傳送、多點廣播或群播,中國大陸又譯作組播)是指把資訊同時傳遞給一組目的位址。它使用的策略是最高效的,因為訊息在每條網路鏈路上只需傳遞一次,且只有在鏈路分叉的時候,訊息才會被複製。與多播相比,常規的點到單點傳遞被稱作單播。當以單播的形式把訊息傳遞給多個接收方時,必須向每個接收者都傳送一份資料副本。由此產生的多餘副本將導致傳送方效率低下,且缺乏可延伸性。不過,許多流行的協定——例如XMPP,用限制接收者數量的方法彌補了這一不足。 ___ ## CBC(Cipher Block Chaining) ### 密碼分組鏈接 密碼學中,區塊(block)密碼的工作模式(mode of operation)允許使用同一個區塊==密碼密鑰==對多於一塊的資料進行加密,並保證其安全性。 區塊密碼自身只能加密長度等於密碼區塊長度的單塊資料,若要加密變長資料,則資料必須先被劃分為一些單獨的密碼塊。通常而言,最後一塊資料也需要使用合適==填充==(padding)方式將資料擴充到符合密碼塊大小的長度。一種工作模式描述了加密每一資料塊的過程,並常常使用基於一個通常稱為==初始化向量==的附加輸入值以進行隨機化,以保證安全。 1976年,IBM發明了密碼區塊連結(CBC,Cipher-block chaining)模式[14]。在CBC模式中,每個明文塊先與前一個密文塊進行互斥或後,再進行加密。在這種方法中,每個密文塊都依賴於它前面的所有明文塊。同時,為了保證每條訊息的唯一性,在第一個塊中需要使用==初始化向量==。 :::success 加密 ![](https://i.imgur.com/7Xsj5YT.png) ::: :::success 解密 ![](https://i.imgur.com/Xf4VB2L.png) ::: ___ ## Mobile Ad Hoc Networks (MAHNET) ### 隨建即連網路 隨建即連網路(英語:mobile ad hoc network,縮寫為MANET,或英語:mobile mesh network),又譯為行動隨意網路、移動臨時網絡,它是一種以行動裝置,==通過無線連結,自我組態所形成的網路,屬於無線隨意網路的一種==。 在MANET之中的每個行動裝置都可以自由移動,隨時改變無線連結。每個行動裝置節點都必須協助轉發網路封包,即使這個封包是跟這個裝置無關的。因此,每個節點都扮演了路由器的角色。要建立一個 MANET,最根本的挑戰在於讓每個行動裝置都能夠得到足夠的資訊,以協助保持網路資訊的流通。像這樣的網路可能是自己運作的,或者連結到更大的網際網路。 ___ ## System Bus ### 系統匯流排 系統匯流排(英語:System Bus)是一個單獨的電腦匯流排,是連接電腦系統的主要元件。這個技術的開發是用來降低成本和促進模組化。系統匯流排結合資料匯流排的功能來搭載資訊,位址匯流排來決定將資訊送往何處,控制匯流排來決定如何動作。雖然系統匯流排於1970年代至1980年代廣受歡迎,但是現代的電腦卻使用不同的分離匯流排來做更多特定需求用途。 :::info 匯流排頻寬 = 頻率×寬度(Bytes/sec) ::: > ### `(1)`==資料匯流排==(Data Bus) [color=red] > > 負責資料傳送於五大單元之間 > > :::danger > > 是雙向傳輸的匯流排 > > ::: > > 一般而言,資料匯流排線有幾位元可以決定一台電腦是幾位電腦,也就是說,**電腦的資料匯流排如有32條,則稱此電腦為32位元的電腦**,這是因為資料匯流排的傳輸位元數與CPU一次能處理的位元數通常是相等的。[color=blue] > ### `(2)`==位址匯流排==(Address Bus) > > 與控制訊號配合負責傳送位址,為一種CPU對記憶體 ==**單向輸出**== 的排線,位址匯流排可決定主記憶體的最大記憶體容量 > > :::info > > 如果位址匯流排有 n 條排線(n位元),則主記憶體最大可定址到 2^n^ 個記憶體位址,因為記憶體位址可存放一個位元組(Byte),所以最大可有 2^n^ Bytes 的記憶體空間 > > ::: > > 如果有一台電腦的位址匯流排有32條線,則其記憶體的定址空間最大為232bytes,也就是4GB。[color=blue] > > > ### `(3)`==控制匯流排==(Control Bus) > > 負責傳送CPU執行指令時所發出之控制訊號,為一種CPU對其他單元**單向輸出**的排線,由控制單元傳送控制訊號給其他單元。[color=blue] ___ ## 二進位→十六進位 :::info 以小數點為基準,分向左右兩邊每 4 位取一組,不足 4 位則補 0。 ::: EX: 111010011.101~2~ > 1 1101 0011 . 101~2~ > 0001,1101,0011.1010~2~ > 1D3.A~16~ ___ ## 同步匯流排(synchronous bus)與非同步匯流排(asynchronous bus)的比較 | |同步匯流排 |非同步匯流排| | :--------: | :-------- |:-------- | |優點| 共用 CLOCK ==速度快== | 容易擴充可支援不同速率裝置 |缺點| BUS不能太長,且需共用同一時脈 | ==速度慢==,有握手協定 |MEMO| CPU跟MEMORY之間的BUS通常為同步 | I/O BUS 常為非同步 ___ ## IEEE 802.11 has two basic modes ### infrastructure modes :::info Most Wi-Fi networks are deployed in infrastructure mode. ::: 目前兩種無線區域網路應用架構模式之一,透過此種架構模式,即可達成網路資源的共享,==此應用需透過 Access Point== In infrastructure mode, a base station acts as a wireless access point hub, and nodes communicate through the hub. The hub usually, but not always, has a wired or fiber network connection, and may have permanent wireless connections to other nodes. Wireless access points are usually fixed, and provide service to their client nodes within range. Wireless clients, such as laptops, smartphones etc. connect to the access point to join the network. Sometimes a network will have a multiple access points, with the same 'SSID' and security arrangement. In that case connecting to any access point on that network joins the client to the network. In that case, the client software will try to choose the access point to try to give the best service, such as the access point with the strongest signal. ### ad hoc modes 目前兩種無線區域網路應用架構模式之一,一群電腦接上無線網路卡,即可相互連接,資源共享,==無需透過Access Point==。 An ad hoc network (not the same as a WiFi Direct network[3]) is a network where stations communicate only ==peer to peer (P2P)==. ___ ## CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance) ### 載波偵測多重存取附碰撞避免 IEEE 802.11又稱為『無線乙太網路』(Wireless Ethernet),這是因為 802.11 的存取技術與 Ethernet 網路非常相似。 :::success Ethernet(IEEE 802.3) 的 MAC 協定是 CSMA/CD(Carrier Sense Multiple Access with Collision Detection) ::: :::info 802.11 是 『載波偵測多重存取附碰撞避免』(Carrier Sense Multiple Access with Collision Avoidance, CSMA/CA) ::: 兩者之間的運作模式非常接近。它們的基本原理都是在一個==多重存取的環境下,制定一個標準的競爭模式,而各個工作站就依照此競爭模式來取得傳輸媒介(有線媒介或無線電波)的使用權==。CSMA/CD 的運作是在一個有線的傳輸媒介(同軸電纜)上,工作站比較容易偵測到所發送的訊號是否有和其他工作站碰撞;但在無線網路的環境裡,要偵測訊號是否有和其他工作站碰撞可就難了,因此,IEEE 802.11 採用另一種運作模式來避免工作站之間發生碰撞,這個模式就是 CSMA/CA 通訊協定。 #### CSMA/CA 運作過程 CSMA/CA(載波偵測多重存取/碰撞避免)運作過程如下: - 訊號採用廣播的方式傳送(非常容易受到無線電波干擾) - 當節點要發送訊號時偵測頻道是否空閒 - 若是空閒則等待 IFS, Interval Frame Space 時間後再次偵測頻道是否空閒 - 若是空閒則發送封包,反之重新進入等待頻道空閒(隨機等待時間) - 發送 RTS 之後必須在限定時間內收到來至目的端的 CTS 訊號 - 當失敗 32 次之後通知上層 Timeout :::info RTS/CTS 機制除了可以==避免碰撞==外,它也可以解決==無線電波涵蓋盲點== (Hidden Node Problem) 的問題 ::: 此外 CSMA/CA 又可分為以下兩種類型 1. 分散式協調功能 (Distributed Coordination Function, **DCF**):競爭式服務 (Contention Service) 2. 集中式協調功能 (Point Coordination Function, **PCF**):無競爭式服務 (Contention-Free Service) #### IEEE 802.11 MAC 通訊協定 IEEE 802.11 MAC 主要提供了二種不同功能的擷取方法: 所謂的「協調式功能」(Coordination Function) 是指一個用來決定什麼時候那個工作站能開始送收資料的機制 - **DCF** 分散協調式功能 (Distributed Coordination Function) 它主要是利用一種叫做載波感測多重擷取及衝撞避免( CSMA/CA)的技術,來提供工作站送收==非同步資料==,這種方法可用在 Ad Hoc 和 Infrastructure 的無線區域網路架構中 分散式協調功能是 IEEE 802.11 最基本的擷取方法。無論是無基礎架構網路 (Ad hoc) 或有基礎架構網路 (infrastructure), 所有工作站都應該具有分散式協調功能。如圖13-21 所示,利用 CSMA/CA 的技術,不同工作站間能共享同一傳輸媒介,並且解決不同工作站間可能發生的擷取衝突。CSMA/CA 是利用所謂的載波感測技術,來判斷某一頻寬中的信號能量是否達到一個基準點,如果信號的強度在這基準點之下,就表示該頻寬未被佔用,因此工作站就可使用該頻寬來送收資料。反之,若信號強度在基準點之上,則表示傳輸媒介目前是忙碌的,在這種情況之下,工作站必需延緩 (defer) 訊框傳送時間,直到發現傳輸媒介是空閒的,才能傳送訊框。實際上, IEEE 802.11 又將訊框分為三種不同的優先權等級,==每種優先權等級的訊框在傳送之前都必需等待一段固定大小的時間,稱為「訊框間隔」(Inter-Frame Space, IFS)== - **PCF** 集中協調式功能 (Point Coordination Function) PCF 提供工作站送收具有時限性 (time bounded) 的資料,在使用上屬於 ==**免競爭**==(contention free)方法,因此也 ==**不會發生訊框衝撞**== 的情形,但只能用在某種基礎架構的無線區域網路中。 ![](https://i.imgur.com/N1WrMuK.png) ### CSMA/CD 『載波檢測多重存取附碰撞偵測』(Carrier Sense Multiple Access with Collision Detection, CSMA/CD)是 IEEE 802.3 所制定的『媒介存取控制』(Medium Access Control, MAC)通訊協定。它的上層必須配合 IEEE 802.2 LLC,而下層可依照不同環境需求結合各種傳輸媒介。圖 8-1 為 CSMA/CD 網路(一般稱之為 Ethernet 網路)的基本結構,網路拓樸圖為匯流排(Bus)架構,網路基本特性如下: ![](https://i.imgur.com/16DLdvL.png) 基本規範歸類如下 - 傳輸速率:10Mbps(高速 Ethernet 可達 100 Mbps ~ 1 Gbps) - 訊框格式:IEEE 802.3 CSMA/CD格式 ,最大訊框為 1518 位元組,最小訊框為 64 位元組。 - 傳輸媒介: 50 歐姆之同軸電纜(Coaxial Cable)、無遮蔽式雙絞線(UTP)或光纖(Optical Fiber)。 - 網路拓樸圖:==匯流排架構==、==廣播方式傳輸==,最大網路範圍 2500 公尺。 - ==不提供保證傳送延遲服務==:CSMA/CD 協定為競爭式,沒有優先權傳輸服務。所以不保證工作站是否能在某段時間內取得傳輸媒介的使用權。 - ==頻寬使用不保證公平==:工作站的使用頻寬沒有平均分配,由競爭原則取得頻寬使用權。 - 高負載時頻寬使用率低:高負載時工作站之間碰撞機率提昇,易造成頻寬使用率降低。 - 較不適合多媒體資訊傳輸:因不保證傳輸延遲時間,而且基本協定規格的速率只有 10 Mbps,所以對即時傳輸的多媒體應用較不適合。 由以上介紹,我們大略可以了解 CSMA/CD 有許多致命的缺點,譬如,==頻寬分配不均==、==容易發生碰撞==的現象而影響傳輸效率。但目前新的技術都足以克服這些困難,使傳輸效率和傳輸速率較原來標準完善,也才能使 Ethernet 網路立足於工業界。 #### CSMA/CD 運作過程 CSMA/CD(載波偵測多重存取/碰撞偵測)運作過程如下: - 訊號採用廣播的方式傳送(所以才會發生碰撞) - 當節點要發送訊號時,會先偵測通道是否有其他節點正在使用(carrier sense) - 當通道沒有被其他節點使用時,就傳送封包 - 封包傳送之後立即檢查是否發生碰撞(carrier detection),若是發生碰撞則對通道發出高頻訊號高知其他節點已經發生碰撞 - 碰撞後隨機等待一段時間重新發送封包 - 嘗試 15 次都失敗的話則告知上層 Timeout ### WMAN WLAN WPAN 我們先回想一下教科書上寫的,有線網路依距離分為 WAN(廣域網路)、MAN(都會網路)、LAN(區域網路),到了無線時代加個W(=wireless)就變成了 WWAN、WMAN、WLAN,此外再加上個WPAN(無線個人網路)。 以距離分 - ==**WWAN**== 3G、3.5G或是之前的 GPRS(2.5G),則屬於WWAN無線廣域網路,類比到有線網路的WAN就會像是傳統數據撥接或ADSL寬頻撥接的無線版本,只要有系統服務的地方,WWAN並不會受到區域限制,而且是直接連上Internet,不需經過閘道,也不跟其他用戶分享頻寬。 - ==**WMAN**== **WiMAX** 屬於 WMAN 無線都會網路,理論傳輸距離號稱50公里,實際情況則約有10幾公里,一個基地台就足以涵蓋整個台北市。 - ==**WLAN**== **WiFi、MIMO** 都屬於無線區網,可以傳輸的距離最多數十公尺,主要在家中或辦公室使用。 - ==**WPAN**== 像**藍芽**,或是未來的 **Wireless USB** 等技術,只在個人的數位裝置間作訊號傳輸,使用距離通常不須超過10公尺。 ![](https://i.imgur.com/Bt9U0OX.png) --- ### IEEE 802.11a IEEE 802.11a 規範的實體層是採用 5 GHz 的 U-NII(Unlicensed Nation Information Infrastructure)頻段,使用 5.725 ~ 5.850 GHz 之間的頻段,因此有 125 MHz 的傳輸頻帶可以使用。另外,展頻傳輸系統是採用 ==『正交分頻多工』(Orthogonal Frequency Division Multiplexing, OFDM)== 技術,OFDM 是利用多個頻道來同時傳送資料,以提高傳輸速率。而且 IEEE 802.11a 為了合乎各種情況使用,可採用不同的調變方式,提供多種傳輸速率,如表 15-8 所示。其中調變方式有 BPSK(Binary Phase-Shift Keying)、QPSK(Quadrature Phase-Shift Keying)以及 QAM(Quadrature Amplitude Modulation)。 ### IEEE 802.11b IEEE 802.11b 規範的實體層延伸自 802.11,為目前無線區域網路最普遍的規範,傳輸速率也接近『有』線的 Ethernet 網路,確實是『無線 Ethernet』(Wireless Ethernet)的代表作。**02.11b 採用『高速直接展頻』(High Rate DSSS, ==HR/DSSS==)技術**,利用 2.4 GHz ISM 頻段,可提供的資料傳輸速率為 11 Mbps,使用的調變技術為 CCK(Complementary Code Keying)。為了相容於 IEEE 802.11 早期的 DSSS 規範,802.11b 規定其系統必須自動降低速率,使能與 2 Mbps 的 DSSS 相容。可見 IEEE 802.11b 中應提供兩種傳輸功能:其一為 HR/DSSS 模式,可提供 5.5 Mbps 與 11 Mbps 的傳輸速率;另一為 802.11 DSSS 模式,可提供 1 Mbps 和 2 Mbps 的速率,所以在 IEEE 802.11b 規範中有:1 Mbps、2 Mbps、5.5 Mbps、以及 11 Mbps 等四種傳輸速率。其中 1 Mbps 採用 DBPSK(Differential Binary Phase Shift Keying)調變技術,2 Mbps 採用 DQPSK(Differential Quadrature Phase Shift Keying),這兩種都採用 11-chip 的展頻碼。 ### IEEE 802.11g IEEE 802.11g在2003年7月被通過。其載波的頻率為2.4GHz(跟802.11b相同),共14個頻段,原始 ==傳送速度為 54Mbps==,淨傳輸速度約為24.7Mbit/s(跟802.11a相同)。802.11g的裝置向下與802.11b相容。 其後有些無線路由器廠商因應市場需要而在IEEE 802.11g的標準上另行開發新標準,並將理論傳輸速度提升至108Mbit/s或125Mbit/s。 ### IEEE 802.11ac IEEE 802.11ac是802.11家族的一項無線網路標準,由IEEE標準協會制定[1],透過 5GHz 頻帶提供高通量的無線區域網路(WLAN)[1],俗稱 **5G WiFi** (5th Generation of Wi-Fi)[2]。理論上它能夠提供最少1Gbps頻寬進行多站式無線區域網通訊,或是最少500Mbps的單一連線傳輸頻寬。 2008年年底,IEEE 802標準組織成立新小組,目的是在於建立新標準來改善802.11-2007標準。包括建立提高無線傳輸的速度的標準,使無線網路的能夠提供與有線網路相當的傳輸效能。 ### 802.11 網路標準重點 | 802.11 實體層協定| 頻率(GHz) | | -------- | -------- | | a | 5 | | ac | 5 | | ax | 2.4/5 | | n | 2.4/5 | | b | 2.4 | | g | 2.4 | 802.11 - 使用 **ISM** 頻道傳送訊息 - 802.11a 使用 OFDM - 802.11b 使用 DSSS - 允許**多重存取** ___ ## Mbps 跟 MBps 經常會在這方面搞混 :::danger MB/s 和 Mb/s 是有區別的 其中 ==**大B 代表 Byte**==,==**小b 代表 bit**== ::: - 1 Kb = 1024 bit - 1 KB = 1024 Byte - 1 Mb = 1024 Kb - 1 MB = 1024 KB - 1 Byte = 8 bit - 1 MB = 8Mb - 1 Mb = 0.125 MB 數據傳輸率的單位一般採用 MB/s 或 Mb/s。 在數據傳輸率上官方數據中(如電信部門)一般採用 Mb/s為單位。 而下載軟件(如IE、迅雷、快車)一般採用MB/s為單位。 ### 網路傳輸專線 T1.T2.T3.T4 | 傳輸 | 速率 | 倍率 | | -------- | -------- | -------- | | T1 | 1.544 Mbps | 1 個 T1 的速度 | | T2 | 6.312 Mbps | 4 個 T1 的速度 | | T3 | 44.736 Mbps | 28 個 T1 的速度 | | T4 | 274.176 Mbps | 168 個 T1 的速度 | #### 何謂T1 訊號 ? T1 訊號是由 AT&T 貝爾實驗室 (Bell Labs)所定義出來在通訊傳輸時所使用的單位,它的速率相當於 ==**1.544 Mbps**==,這是美制的規格,可以同時傳送24 路電話訊號 (每路訊號為 64 Kbps),類似的歐洲規格稱為 E1,可以傳送 30 條電話訊號,速率為 2.048 Mbps。 在原始定義的 T1 訊號中,使用八位元的取樣大小來傳送每條電話訊號,而24 條電話訊號便需要8×24=192 位元,在傳送的過程當中,將這些位元加上一個同步位元,所以實際傳輸的碼框大小為193 位元。碼框傳送的速率是 8 KHz (每秒傳送 8,000 次),所以一秒鐘資料的傳輸量為 193×8000=1,544,000=1.544 Mbps。 #### 何謂T2 訊號 ? 一個T2 訊號相當於 4 個T1,可傳送 96 個波道,其速率為6.312 Mbps。 #### 何謂T3 訊號 ? 一個T3 訊號相當於 7 個T2,也就是 28 個T1,一般可傳送672 個波道 ,其速率為 44.736 Mbps。在光纖系統當中,相對應的頻寬為 OC-1 或是STS-1。 #### 何謂T4 訊號 ? 一個T4 訊號相當於 6 個T3,或是 42 個T2,或是 168 個T1,可傳送 4032 個波道,其速率為 274.176 Mbps ## E-R MODEL 的二元關係型態 如果一個關係是有關兩個實體,則描述這樣關係的型態就稱為二元關係型態 二元關係型態的結構限制包括兩部份:==基數比==和==參與度== :::info 基數比用來表示一個實體最多可以跟幾個實體發生此類關係 > [color=red] > > 1:1 表示左邊的一個實體最多與右邊的一個實體發生此類關係,同時右邊的一個實體最多也只能跟左邊的一個實體發生此類關係 ![](https://i.imgur.com/4Gbnx5U.png) [color=blue] > > 1:N 表示左邊的一個實體最多與可跟右邊的多個實體發生此類關係,但右邊的一個實體最多也只能跟左邊的一個實體發生此類關係 ![](https://i.imgur.com/sbouaTs.png) [color=blue] > > M:N 表示左邊的一個實體最多與可跟右邊的多個實體發生此類關係,同時右邊的一個實體最多也能跟左邊的多個實體發生此類關係 ![](https://i.imgur.com/SJfzWo9.png) [color=blue] ::: :::success 參與度是衡量一個實體型態裡的每一實體是否至少需參與一個關係,若是,稱為 ***完全參與(以雙線表示)*** ,否則稱為 ***部分參與(以單線表示)*** ![](https://i.imgur.com/WPYv2Zi.png) ::: ___ ## Ping ping是一種電腦網路工具,用來測試封包能否透過IP協定到達特定主機。ping的運作原理是向目標主機傳出一個 ==ICMP== echo@要求封包,並等待接收echo回應封包。程式會按時間和成功回應的次數估算遺失封包率(丟包率)和封包往返時間(網路時延,Round-trip delay time)。 ___ ## UDP 協定(User Datagram Protocol) 是一個相簡單的協定,僅提供Host-To-Host (End-toEnd)最基本的功能,也就是提供連接埠號給主機判斷是由何應用程式處理資訊。 UDP 和 IP 是一個==非連線型(Connectionless)的非可靠傳輸協定==,它並==不會運用確認機制==來保證資料是否正確的被接收、不需要重傳遺失的資料、資料的接收可不必按順序進行、也不提供回傳機制來控制資料流的速度。因此, UDP 信息可能會在網路傳送過程中遺失、重複,不過速度也可能比接收端的處理速度還快。對於某些訊息量較大、時效性大於可靠性的傳輸來說(像是影音類的). 在資料損失時並不會造成重大影響,且對時效需求較高時會使用 UDP,例如 > 1. DNS查詢 > 2. 網路多媒體視訊和網路廣播(Multicast或Broadcast) ==**process-to-process**== The User Datagram Datagram Protocol Protocol (UDP) is called a connectionless, connectionless, unreliable unreliable transport transport protocol protocol. ==**It does not add anything to the services of IP except to provide process process-to-process communication instead of host-to-host communication.**== 另外 DUP 跟 TCP 都有 checksum 機制 ### UDP header UDP is a simple, datagram-oriented, transport layer protocol: each output operation by a process produces exactly one UDP datagram, which causes one IP datagram to be sent. The encapsulation of a UDP datagram as an IP datagram looks like this: ![](https://i.imgur.com/h9CUODf.png) **UDP Header Format** Each UDP message is called a user datagram. Conceptually, a user datagram consists of two parts: a UDP Header and a UDP data area. The header is divided in four 16-bit fields as shown: ![](https://i.imgur.com/TRPq9Oo.png) * **Source and Destination Port** The port numbers identify the sending process and the receiving process. TCP and UDP use the destination port number to demultiplex incoming data from IP. Since IP has already demultiplexed the incoming IP datagram to either TCP or UDP (based on the protocol value in the IP header), this means the TCP port numbers are looked at by TCP, and the UDP port numbers by UDP. The TCP port numbers are independent of the UDP port numbers. * **Length** The length in bytes of the UDP header and the encapsulated data. The minimum value for this field is 8. * **Checksum** This is computed as the 16-bit one's complement of the one's complement sum of a pseudo header of information from the IP header, the UDP header, and the data, padded as needed with zero bytes at the end to make a multiple of two bytes. If the checksum is set to zero, then checksuming is disabled. The designers chose to make the checksum optional to allow implementations to operate with little computational overhead. If the computed checksum is zero, then this field must be set to 0xFFFF. ___ ## TCP/IP (Transmission Control Protocol/Internet Protocol) ![](https://i.imgur.com/3Q7yXEA.png) 是目前世界上使用最廣的通訊協定。TCP/IP 的出現,成功的利用網路將世界連接起來,成就了眾所皆知的Internet。TCP/IP 家族中幾個重要的協定,有 ==**IP**== , ==**ARP**== ,==**RARP**==, ==**ICMP**== , ==**UDP**== 和 ==**TCP**== 等等。 :::info > [color=blue] > ### ==**IP**== >IP (Internet Protocol) 是一種**不可靠 (unreliable),盡力傳送的 (best-effort delivery),無連接式 (connectionless)** 的分封傳送的協定,定義了 TCP/IP 傳輸的基礎以及封包繞路的功能。IP主要工作有選擇路徑,切割封包。IP網路自從網路開始發展以來,一直是網路技術上熱門應用與話題之一,而無論在什麼網路情況下,IP網路都扮演很重要的角色。IP網路有幾個優勢 : 1. 不需事先建立連線 目前IP網路的網路層協定為 IPv4或IPv6,是屬於非連接的 (connectionless) 傳輸形態,亦即在傳輸前不需先藉由通訊協定建立連線。 2. 分布最廣的區域網路 目前 IP 網路的分布幾乎涵蓋了整個網路的世界。使用者幾乎到處都可以買到可以接上 IP 網路的網路卡,而且價格便宜。 「IP層」擔負的主要功能: * **Forward(Routing)**:如果封包不是屬於同一個網路的時候,會將之送往閘道。 * **控制數據流量**:當路由器的緩衝區飽和的時候,會通知其他路由器使用其它路徑或暫停發送封包(ICMP)。 * **「定址機制」功能(Addressing)**:提供兩台節點電腦之間「32-bit IP網址(定址機制)」功能,以確保資料封包能夠送達目的節點電腦。兩台節點電腦的IP網址共有8Bytes,皆置於「IP層」的標頭內。 * **「分割及重組」功能(Fragmentation and Reassembly)** ::: :::info > [color=blue] > ### ==**DNS**== >DNS(Domain Name System)是網際網路的一項服務。 > :::warning > 它作為將 ==**域名和IP位址相互對映**== 的一個分散式資料庫,能夠使人更方便地存取網際網路 > ::: >DNS使用TCP和UDP埠53[1]。目前,對於每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。 > :::warning > 目前DNS伺服器也提供把指定的IP地址轉換其對應網域名稱的服務 > ::: - master server 主要名稱伺服器由它所在的主機上的檔案中取得管理地帶的資料。如果您的學校擁有自己的網域(Domain),則必須建立自己的DNS系統,來回答網路上對您學校中,所有與網際網路有關的電腦名稱與IP地址的轉換服務。 - slave server 次要名稱伺服器是由其他管理這個地帶的名稱伺服器中取得地帶的資料。為了網路穩定度的考慮,通常你需要一部次要名稱伺服器,以備不時之需。 - cache-only 這種類型的DNS主機沒有自己的資料庫,單純僅幫助Client端向外部的DNS主機要求資料而已~簡單的來說,他可以想成是一個『代理人』的角色而已~通常設定在防火牆上面! ::: :::info > [color=blue] > ### ==**ARP**== >ARP(Address Resolution Protocol)是通過解析網路層位址來找尋資料鏈路層位址的一個在網路協定包中極其重要的網路傳輸協定。 ARP 最初在1982年的RFC 826(徵求意見稿)[1]中提出並納入網際網路標準 STD 37. ARP 也可能指是在多數作業系統中管理其相關位址的一個行程。 > :::warning > ARP 是通過網路位址(例:IPv4)來定位 MAC 位址 > 即從「32-bit IP位址」得知「48-bit硬體網路卡位 > 址」 的一種方法機制 > ::: >ARP 已經在很多網路層和資料連結層之間得以實現,包括 IPv4,Chaosnet, DECnet 和 Xerox PARC Universal Packet(PUP)使用IEEE 802標準, 光纖分散式資料介面, X.25, 影格中繼和非同步傳輸模式(ATM),IEEE 802.3和IEEE 802.11標準上IPv4占了多數流量。 ::: ### ARP spoofing ARP欺騙(英語:ARP spoofing),又稱ARP毒化(ARP poisoning,網路上多譯為ARP病毒)或ARP攻擊,是針對乙太網路位址解析協定(ARP)的一種攻擊技術。此種攻擊可讓攻擊者取得區域網路上的資料封包甚至可篡改封包,且可讓網路上特定電腦或所有電腦無法正常連線。最早探討ARP欺騙的文章是由Yuri Volobuev所寫的《ARP與ICMP轉向遊戲》(ARP and ICMP redirection games)[1]。 - ARP欺騙的運作原理是由攻擊者發送假的ARP封包到網路上,尤其是送到閘道器上。其目的是要讓送至特定的IP位址的流量被錯誤送到攻擊者所取代的地方 - 攻擊者可將這些流量另行轉送到真正的閘道(被動式封包嗅探,passive sniffing)或是篡改後再轉送(**中間人攻擊**,man-in-the-middle attack) - 攻擊者亦可將ARP封包導到不存在的MAC位址以**達到阻斷服務攻擊**的效果,例如netcut軟體。 :::info > [color=blue] > ### ==**RARP**== >逆位址解析協定(Reverse Address Resolution Protocol)是一種網路協定,網際網路工程任務組(IETF)在RFC903中描述了RARP[1]。RARP使用與ARP相同的報頭結構,作用與ARP相反。RARP用於將MAC位址轉換為IP位址。其因為較限於IP位址的運用以及其他的一些缺點,因此漸為更新的BOOTP或DHCP所取代。 > :::warning > 主要是想經由詢問網絡上其它主機而得到自己的 IP 位址。 ::: :::info > [color=blue] > ### ==**ICMP**== >網際網路控制訊息協定(Internet Control Message Protocol)是網際網路協定套組的核心協定之一。它用於TCP/IP網路中傳送控制訊息,提供可能發生在通訊環境中的各種問題回饋,通過這些資訊,使管理者可以對所發生的問題作出診斷,然後採取適當的措施解決。 > ICMP [1]依靠IP來完成它的任務,它是IP的主要部分。它與傳輸協定(如TCP和UDP)顯著不同:它一般不用於在兩點間傳輸資料。它通常不由網路程式直接使用,除了ping和traceroute這兩個特別的例子。 IPv4中的ICMP被稱作ICMPv4,IPv6中的ICMP則被稱作ICMPv6。 > :::warning - 每個 ICMP 訊息都是**直接封裝在一個 ==IP封包==** 中 的,因此,和 UDP 一樣,**ICMP 是不可靠的**。 - TRACERT 跟 Ping 都是透過 ICMP ::: :::info > [color=blue] > >### ==**TCP**== >TCP (Transport Control Protocol) 是TCP/IP 標準的協定。TCP提供一個可靠的 (reliable),全雙工的 (full duplex) stream 資料服務,是很多應用協定的基礎。TCP為連接導向 (connection-oriented) 的通訊協定,在資料傳送前需要先建立連接。TCP利用 IP協定送收資料,並可以關閉其中一個方向的資料傳輸。由於封包的格式包含了封包序列參數和確認參數,因此可以利用這些欄位來作位元流控制和錯誤控制。因此,TCP協定提供給使用者一個可靠的傳送機制,讓遺失的封包透過重送的過程使接收端可以收到正確且無誤的資料。此種傳送的方式較不適合具有即時性 (real-time) 的資料,因為重送所造成的延遲將使得即時資料的傳輸效率大打折扣。因此,在TCP/IP協定家族中,TCP和IP可以說是最重要的兩個協定了。 ### TCP header ![](https://i.imgur.com/Jk17QXH.png) ::: :::info > [color=blue] ==**UDP**== UDP (User Datagram Protocol) 提供一個無連接 (connectionless),不可靠 (unreliable)的傳輸服務。因為即時性資料有延遲上的限制,所以利用TCP協定往往無法滿足即時多媒體傳輸所能容忍的延遲,所以現今即時資料主要都是利用UDP協定來當作傳輸的方式。 此協定只需要告訴傳送端的位址和封包長度即送至網路上,因為封包格式非常簡單,所以在協定中並沒有針對傳輸的資料做任何的控制,現今即時資料的應用皆採用此協定,例如VoIP (Voice Over IP),至於在控制的部分則交由上層的協定來做。 ::: ### 網路層跟傳輸層的傳輸方式 ![](https://i.imgur.com/YWnKdqM.png) ___ ### 使用 TCP 跟 UDP 分類 | | | | -------- | -------- | | TCP | SMTP,FTP,HTTP,Telent | | UDP | DNS,RIP,SNMP,DHCP,TFTP,線上遊戲 | ___ ## DHCP(Dynamic Host Configuration Protocol) ### 動態主機設定協定(英語:Dynamic Host Configuration Protocol,DHCP)是一個區域網路的網路協定,使用 UDP 協定工作,主要有兩個用途: - 用於內部網路或網路服務供應商==自動分配IP位址==給用戶 - 用於內部網路管理員作為對所有電腦作中央管理的手段 DHCP統一使用兩個IANA分配的埠作為BOOTP:伺服器端使用67/udp,用戶端使用68/udp。 DHCP執行分為四個基本過程,分別為 - 請求IP租約(REQUEST) - 提供IP租約(OFFER) - 選擇IP租約 - 確認IP租約(Acknowledge) 客戶在獲得了一個 IP 位址以後,就可以傳送一個 ARP 請求來避免由於 DHCP 伺服器位址池重疊而引發的 IP 衝突。 ![](https://i.imgur.com/gyR6S8R.png) ___ ## TCP和UDP的優缺點及區別 - TCP的優點:==**可靠,穩定**==。 TCP的可靠體現在TCP在傳遞數據之前,會有三次握手來建立連接,而且在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後,還會斷開連接用來節約系統資源。 - TCP的缺點:==**慢,效率低,占用系統資源高,易被攻擊**==。 TCP在傳遞數據之前,要先建連接,這會消耗時間,而且在數據傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每台設備上維護所有的傳輸連接,事實上,每個連接都會占用系統的CPU、記憶體等硬件資源。 而且,因為 TCP有確認機制、三次握手機制,這些也導致TCP容易被人利用,做到DOS、DDOS、CC等攻擊。 - UDP的優點:==**快,比TCP稍安全**==。 UDP沒有TCP的握手、確認、窗口、重傳、擁塞控制等機制,UDP是一個無狀態的傳輸協議,所以它在傳遞數據時非常快。沒有TCP的這些機制,UDP較TCP被攻擊者利用的漏洞就要少一些。但UDP也是無法避免攻擊的,比如:UDP Flood攻擊等等。 :::danger UDP 因較不易被攻擊比 TCP 安全性高ㄧ些 ::: ___ ## DoS(denial-of-service attack) ## DDoS(distributed denial-of-service attack) ### 阻斷服務攻擊 阻斷服務攻擊(英語:denial-of-service attack,縮寫:DoS attack、DoS)亦稱洪水攻擊,是一種網路攻擊手法。 :::info 其目的在於使目標電腦的網路或系統資源耗盡,使==服務暫時中斷或停止==,導致其正常用戶無法存取 ::: 當駭客使用網路上兩個或以上被攻陷的電腦作為「殭屍」向特定的目標發動「阻斷服務」式攻擊時,稱為分散式阻斷服務攻擊(distributed denial-of-service attack,縮寫:DDoS attack、DDoS)。據2014年統計,被確認為大規模DDoS的攻擊已達平均每小時28次。[1]DDoS發起者一般針對重要服務和知名網站進行攻擊,如銀行、信用卡支付閘道器、甚至根域名伺服器等。 DoS也常見於部分網路遊戲,被心懷不滿的玩家或是競爭對手廣泛使用。DoS也常被用於抗議,自由軟體基金會創辦人理察·斯托曼曾表示,DoS是「網路街頭抗議」的一種形式。[2] :::danger DoS 是一種主動式攻擊手法 ::: ___ ## SSH(Secure Shell) Secure Shell(安全外殼協定,簡稱SSH)是一種加密的網路傳輸協定,可在不安全的網路中為網路服務提供安全的傳輸環境[1]。SSH通過在網路中建立安全隧道來實現SSH用戶端與伺服器之間的連接[2]。雖然任何網路服務都可以通過SSH實現安全傳輸,SSH最常見的用途是**遠端登入系統**,人們通常利用SSH來傳輸命令列介面和遠端執行命令。使用頻率最高的場合類Unix系統,但是Windows作業系統也能有限度地使用SSH。2015年,微軟宣布將在未來的作業系統中提供原生SSH協定支援[3]。 在設計上,SSH是Telnet和非安全shell的替代品。Telnet和Berkeley rlogin、rsh、rexec等協定採用明文傳輸,使用不可靠的密碼,容易遭到監聽、嗅探和中間人攻擊[4]。SSH旨在保證非安全網路環境(例如網際網路)中資訊加密完整可靠。 不過,SSH也被指出有被嗅探甚至解密的漏洞。早在2011年,中國的網際網路審查機構已經有能力針對SSH連線的刺探及干擾。[5][6]而後愛德華·史諾登泄露的檔案也指出,美國國家安全域有時能夠把SSH協定傳輸的資訊解密出來,從而讀出SSH對談的傳輸內容[7]。2017年7月6日,非營利組織維基解密確認美國中央情報局已經開發出能夠在Windows或Linux作業系統中竊取SSH對談的工具。[8] **概述** SSH以==非對稱加密實現身分驗證==[2]。身分驗證有多種途徑,例如其中一種方法是使用自動生成的公鑰-私鑰對來簡單地加密網路連接,隨後使用密碼認證進行登入;另一種方法是人工生成一對公鑰和私鑰,通過生成的金鑰進行認證,這樣就可以在不輸入密碼的情況下登入。任何人都可以自行生成金鑰。公鑰需要放在待存取的電腦之中,而對應的私鑰需要由用戶自行保管。認證過程基於生成出來的私鑰,但整個認證過程中私鑰本身不會傳輸到網路中。 SSH協定有兩個主要版本,分別是SSH-1和SSH-2。無論是哪個版本,核實未知金鑰來源都是重要的事情,因為SSH只驗證提供用戶是否擁有與公鑰相符合的私鑰,只要接受公鑰而且金鑰符合伺服器就會授予許可。這樣的話,一旦接受了惡意攻擊者的公鑰,那麼系統也會把攻擊者視為合法用戶。 **SSH的安全驗證** 在用戶端來看,SSH提供兩種級別的安全驗證。 * ==第一種級別(基於密碼的安全驗證)== 知道帳號和密碼,就可以登入到遠端主機,並且所有傳輸的資料都會被加密。但是,可能會有別的伺服器在冒充真正的伺服器,無法避免被「中間人」攻擊。 * ==第二種級別(基於金鑰的安全驗證)== 需要依靠金鑰,也就是你必須為自己建立一對金鑰,並把公有金鑰放在需要存取的伺服器上。用戶端軟體會向伺服器發出請求,請求用你的金鑰進行安全驗證。伺服器收到請求之後,先在你在該伺服器的用戶根目錄下尋找你的公有金鑰,然後把它和你傳送過來的公有金鑰進行比較。如果兩個金鑰一致,伺服器就用公有金鑰加密「質詢」(challenge)並把它傳送給用戶端軟體。從而避免被「中間人」攻擊。 在伺服器端,SSH也提供安全驗證。 在第一種方案中,主機將自己的公用金鑰分發給相關的客戶端,客戶端在存取主機時則使用該主機的公開金鑰來加密資料,主機則使用自己的私有金鑰來解密資料,從而實現主機金鑰認證,確保資料的保密性。 在第二種方案中,存在一個金鑰認證中心,所有提供服務的主機都將自己的公開金鑰提交給認證中心,而任何作為客戶端的主機則只要儲存一份認證中心的公開金鑰就可以了。在這種模式下,客戶端必須存取認證中心然後才能存取伺服器主機。 ___ ## 公開公鑰資料傳送 用對方公鑰加密:對方無法確認是誰送的 ![](https://i.imgur.com/ET1In86.png) 用自已私鑰加密:任何人都可以解開(因為自己的公鑰是公開的) ![](https://i.imgur.com/QbYKoaa.png) ==**四把金鑰**== 自己要送data給對方 1. 先用**對方公鑰**加密(只有對方私鑰可以解密) 2. 再加一層**自己的私鑰**加密(可以讓對方知道是誰送的) ==> 傳送給對方 3. 對方先用**我的公鑰**解密第一層(可以知道是我送的) 4. 再用**對方的私鑰**解密第二層(此時才可以看到 data) ![](https://i.imgur.com/sMbrVuU.png) ___ ## SSL,TLS,HTTPS - **SSL** - 公開公鑰加密技術達到 **驗證** - 對稱性加密技術達到 **機密性** - 使用 **MD5、SHA** 雜湊等為基礎的訊息確認碼達到**資料完整性** - **無法提供不可否認性** ![](https://i.imgur.com/gjKNwom.png) - **TLS** 是更新、更安全的 SSL 版本。我們仍將安全性憑證稱為 SSL,因為這是較常用的詞彙。 傳輸層安全性協定(英語:Transport Layer Security,縮寫作 TLS),及其前身安全通訊協定(Secure Sockets Layer,縮寫作 SSL)是一種安全協定,目的是為網際網路通訊提供安全及資料完整性保障。網景公司(Netscape)在1994年推出首版網頁瀏覽器,網景領航員時,推出HTTPS協定,以SSL進行加密,這是SSL的起源。IETF將SSL進行標準化,1999年公布第一版TLS標準檔案。隨後又公布RFC 5246 (2008年8月)與 RFC 6176 (2011年3月)。在瀏覽器、電子郵件、即時通訊、VoIP、網路傳真等應用程式中,廣泛支援這個協定。主要的網站,如Google、Facebook等也以這個協定來建立安全連線,傳送資料。目前已成為網際網路上保密通訊的工業標準。 TLS協定採用 ==**主從式架構模型**==,用於在兩個應用程式間透過網路建立起安全的連線,防止在交換資料時受到 ==**竊聽及篡改**==。 ![](https://i.imgur.com/9PtmvrL.png) ## SSL(Secure Socket Layer)安全協定對網站憑證查核的項目 用SSL安全協定,商家之網站需要取得合法憑證,網站憑證的查核包含 1. **憑證是否由受信賴信賴的憑證機構(CA)所發出** 2. **憑證需要在有效期限之內** 3. **憑證所登錄的與買家所檢視的網頁名稱,必須相符一致** :::danger 不包含 **查核憑證記載的公司是否可信賴** ::: :::info 至於憑證記載的公司是否可信賴我個人認為可以這樣理解 SSL是建立安全連線 主要是防址資料在網路傳輸時遭到竊取 跟電家是否信賴無關 另外信賴是無法透過申請一個安全協定就可以保障的 就跟國家的發佈CAS(優良農產品肉品) 難道有拿到CGS的店家就是安全可信任的嗎? XD ::: - **HTTPS** (Hyper Text Transfer Protocol Secure,超級文字傳輸協議安全) 會在網站受到 SSL 憑證保護時在網址中出現。該憑證的詳細資料包括發行機構與網站擁有人的企業名稱,可以透過按一下瀏覽器列上的鎖定標記進行檢視。 ___ ## SHA(Secure Hash Algorithm) ### 安全雜湊演算法 是一個==密碼雜湊函式==家族,是 FIPS 所認證的安全雜湊演算法。能計算出一個數位訊息所對應到的,長度固定的字串(又稱訊息摘要)的演算法。且若輸入的訊息不同,它們對應到不同字串的機率很高。 SHA家族的演算法,由美國國家安全域(NSA)所設計,並由美國國家標準與技術研究院(NIST)發布,是美國的政府標準,其分別是: - SHA-0:1993年發布,當時稱做安全雜湊標準(Secure Hash Standard),發布之後很快就被NSA撤回,是SHA-1的前身。 - SHA-1:1995年發布,SHA-1在許多安全協定中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被視為是MD5(更早之前被廣為使用的雜湊函式)的後繼者。但SHA-1的安全性在2000年以後已經不被大多數的加密場景所接受。2017年荷蘭密碼學研究小組CWI和Google正式宣布攻破了SHA-1[1]。 - SHA-2:2001年發布,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。雖然至今尚未出現對SHA-2有效的攻擊,它的演算法跟SHA-1基本上仍然相似;因此有些人開始發展其他替代的雜湊演算法。 - SHA-3:2015年正式發布,SHA-3並不是要取代SHA-2,因為SHA-2目前並沒有出現明顯的弱點。由於對MD5出現成功的破解,以及對SHA-0和SHA-1出現理論上破解的方法,NIST感覺需要一個與之前演算法不同的,可替換的加密雜湊演算法,也就是現在的SHA-3。 ___ ## 公開金鑰密碼系統 在密碼學裡面,我們一般把加/解密演算法分為兩大類: - **「秘密金鑰演算法」**(secret-key algorithm) 秘密金鑰演算法的特點在於其加密與解密時,都是用==同一把金鑰==,又稱為 ==**對稱金鑰演算法(symmetric-key algorithm)**== :::info 著名的演算法如 DES、IDEA、TripleDES、**AES** 等等。 ::: :::danger 秘密金鑰密碼系統也無法做到電子簽章(digital signature) - **「公開金鑰演算法」**(public-key algorithm) 公開金鑰演算法則分為==兩把金鑰==,分別為加密和解密所使用,一般也稱為 ==**非對稱金鑰演算法(asymmetric-key algorithm)**==。 :::success 最大的特點在於將加密和解密的金鑰分為兩支 - 『公開金鑰』(Public Key) - 『私密金鑰』(Private Key) ==**若用公開金鑰加密,則就只能用相對應的私密金鑰解密**== 如此一來我們就==可將公開金鑰公開==,自己保存一支私密金鑰,要將資料加密送給對方時,只需用對方的公開金鑰加密,資料送達時,對方再用其私密金鑰解密,即可安全的完成傳輸。::: :::info 公開金鑰密碼系統的演算法,稱為 ==Rivest-Shamir-Adleman(RSA)== 演算法,一直到今天,RSA 還是一個最簡單、最被廣泛使用的公開金鑰演算法 :::danger 同時能滿足 - 加/解密 - 電子簽名 ![](https://i.imgur.com/NFosxgQ.png) ![](https://i.imgur.com/OCiSYxK.png) ___ ## SET(Secure Electronic Transaction) ### 安全電子交易協議 Secure Electronic Transaction,是一個用來保護Internet上付款交易的開放性規範,它包含交易雙方的身分認證及傳送資料加密。 為了實現更加完善的==即時電子支付==,SET協議應運而生。SET協議(Secure Electronic Transaction),被稱之為安全電子交易協議,是由Master Card和Visa聯合Netscape,Microsoft等公司,於1997年6月1日推出的一種新的電子支付模型。SET協議是B2C上基於信用卡支付模式而設計的,它保證了開放網路上使用信用卡進行線上購物的安全。SET主要是為瞭解決用戶,商家,銀行之間通過信用卡的交易而設計的,它具有的保證交易數據的完整性,交易的不可抵賴性等種種優點,因此它成為目前公認的信用卡網上交易的國際標準。 --- ## Digital Signature ### 數位簽章(又稱公鑰數位簽章) 是一種類似寫在紙上的普通的物理簽名,但是使用了==公鑰加密領域的技術實現==,用於鑑別數位信息的方法。一套數位簽章通常定義兩種互補的運算,一個用於簽名,另一個用於驗證,但法條中的電子簽章與數位簽章,代表之意義並不相同 - 電子簽章用以辨識及確認電子文件 **簽署人身分**、資格及電子文件真偽者。 - 數位簽章則是以數學演算法或其他方式運算對其加密,才形成的電子簽章,意即並非所有的電子簽章都是數位簽章。 數位簽章不是指將簽名掃描成數位圖像,或者用觸摸板獲取的簽名,更不是落款。 數位簽章了的文件的完整性是很容易驗證的(不需要騎縫章、騎縫簽名,也不需要筆跡鑑定),而且數位簽章具有==不可抵賴性(即不可否認性)==,不需要筆跡專家來驗證。 --- ## Digital Certificate ### 數位憑證 數位憑證可以唯一識別某個實體;數位憑證實際上是由可信任的機構所發出的電子 ID 卡。 數位憑證可讓使用者驗證取得憑證者以及憑證簽發者。 數位憑證是 ==SSL== 用來進行公開金鑰加密的工具。 :::info 公開金鑰加密法使用兩個不同的加密金鑰: - 一個私密金鑰 - 一個公開金鑰 ::: ==公開金鑰加密法亦稱為非對稱加密法==,因為您可以用一個金鑰將資訊加密,然後使用給定的公用-專用金鑰配對中的補充金鑰將其解密。 數位憑證有兩個用途:它可以建立擁有者的身份識別,並且可提供擁有者的公開金鑰。 數位憑證是由可信任的機構--==憑證管理中心(CA)==--發出,並且只限用一段時間。 超過有效期限時,數位憑證就必須替換。 數位憑證的格式 數位憑證中會包含 有關憑證擁有者的身份識別以及有關憑證管理中心的特定資訊。 - 擁有者的識別名稱。 - 數位憑證的發出日期。 - 數位憑證的到期日期。 - 簽發者的識別名稱。 這是憑證管理中心的識別名稱。 - 簽發者的數位簽章。 --- ## 單位與計算 ### Byte 位元組 位元組(中國大陸作字節,港澳作位元組,英語:Byte),通常用作電腦資訊計量單位,不分資料型態。[1][2] 一個位元組代表 ==**八個位元**== (中國大陸作比特,港澳作位元,英語:Bit) ___ ## 數據機 數據機(英語:Modem,modulator-demodulator的英文縮寫) :::warning 數位訊號 <==> 類比訊號 ::: 它的目標是產生能夠方便傳輸的類比訊號並且能夠通過解碼還原原來的數位訊號。根據不同的應用場合,數據機可以使用不同的手段來傳送類比訊號,比如使用光纖,射頻無線電或電話線等。 數據機是數據通信設備(DCE,Data Communication Equipment)而不是 數據終端設備(DTE,Data Terminal Equipment) ## Hub、Switch、IP分享器、Router ### 集線器(Hub)、交換器(Switch)、IP分享器、路由器(Router)的差別 * 1.封包: 網路上資料的傳輸是以封包的方式傳遞,封包裡面通常含有來源和目的的IP位址,來源和目的的MAC位址,當然還有資料啦。 * 2.IP位址: 我想這個大家都知道,要上網一定要有IP位址,如果IP位址不夠,那麼就需要IP分享器囉。 * 3.MAC位址: 這個比較少人知道,==**每一張網路卡其實都有一個MAC位址**==,全世界絕對不會有跟你相同的MAC位址的網路卡或設備。 ### HUB :::info > [color=blue] ==**HUB**== 我們稱做集線器,一般而言,HUB有兩大特性 > 1. 一個就是 ==**廣播**== > >當 A 電腦要透過 HUB 送資料給 B 電腦的時候,A 送出來的資料其實連接在這台 HUB 上的電腦都會收到,但是只有 B 電腦會將資料收起來,其他電腦則是將封包丟掉。 > > >集線器會把收到的任何數位訊號,經過再生或放大,再從集線器的所有埠送出,這會造成訊號之間碰撞的機會很大,而且訊號也可能被竊聽,並且這代表所有連到集線器的裝置,都是屬於同一個==碰撞網域以及廣播網域==,因此大部份集線器已被交換機取代。 > > > 2. 一個就是 ==**半雙工**== > > **收資料或送資料不能同時**,你一次只能做其中一種 > ::: ### Switch :::info > [color=blue] ==**Switch**== 中文叫交換器,和 HUB 看起來一樣,但實際上差別很大。首先switch ==**並不會一直廣播,而且是全雙工的**==。主要是SWITCH 會記錄封包中的 ==MAC 位址==所以當電腦 A 傳送資料給電腦 B 時,其他電腦並不會也收到資料,而且這個時候別的電腦也可以同時互相傳送資料。 雖然 SWITCH 有上述的好處,但是要傳送的資料封包每一個都必須經過 SWITCH 判斷決定要送往哪一台電腦,所以會有一些延遲,因此有時候電腦數少於五台,用 HUB 反而比 SWITCH 快 ::: ### IP分享器 :::info > [color=blue] ==**IP分享器**== 這個設備通常會有一個 WAN port 和 1~4 個不等的 Lan port(其實是Switch)。WAN port 一般是接 ADSL modem(也就是小烏龜啦),而 Lan port 則是接到 PC 電腦。這個設備主要的功能是 NAT,也就是做IP分享的意思,他會將 WAN port 的真實IP(可以是固定IP或浮動IP)分享給 LAN port 的電腦使用。 ::: ### Router :::info > [color=blue] ==**Router**== 中文叫路由器,路由器通常最少會有兩個介面,而這兩個介面分別區隔不同的 IP 網段。例如 IP 分享器有 WAN 和 LAN 兩種介面,區隔 WAN 的實際 IP 與 LAN 的虛擬 IP 網段,所以說 IP 分享器是 Router其實並沒有錯誤。不過我們技術人員口中所說的 router 都是那種超級貴死人,而且兩個介面都是用在真實 IP 網段的設備。 好像有點離題了,其實如果你對 switch 的原理有一點瞭解,那麼其實 router 有一點像 switch,只不過 Router是依照 ==**封包的目的IP**== 來決定資料是要傳往哪一個介面的哪一個網域。 ::: ### Gateway :::info > [color=blue] ==**Gateway**== 在現代網路術語中,閘道器(gateway)與路由器(router)的定義不同。**閘道器(gateway)能在==不同協定==間移動資料**,**而路由器(router)是在==不同網路==間移動資料**,相當於傳統所說的IP閘道器(IP gateway)。 閘道器顧名思義就是連接兩個網路的裝置,對於語音閘道器來說,他可以連接PSTN和乙太網路,這就相當於VOIP,把不同電話中的類比訊號通過閘道器而轉換成數位訊號,而且加入協定再去傳輸。在到了接收端的時候再通過閘道器還原成類比的電話訊號,最後才能在電話機上聽到。 對於乙太網路中的閘道器只能轉發三層以上封包,這一點和路由是一樣的。而不同的是閘道器中並沒有路由表,他只能按照預先設定的不同網段來進行轉發。閘道器最重要的一點就是埠對映,子網路內用戶在外網看來只是外網的IP位址對應著不同的埠,這樣看來就會保護子網路內的用戶。 ::: ### bridge :::info > [color=blue] ==**bridge**== 橋接器(英語:network bridge),又稱網橋,一種網路裝置,負責網路橋接(network bridging)之用。橋接器將網路的==多個網段==在資料鏈路層(OSI模型第2層)連接起來(即橋接)。 ::: 備註解釋一下NAT功能: 一般IP分享器LAN port裡的電腦室使用虛擬IP,也就是俗稱的假IP,這個網段通常是192.168.X.X,最常見的是192.168.0.X與192.168.1.X。這個IP網段是保留的網段,在實際網際網路並不能使用。NAT這個功能負責記錄網卡MAC位址與假IP的關係並做轉換。 舉例來說,假設使用者有兩台PC透過IP分享器上網 A電腦IP為192.168.0.2,網路卡MAC位址是00046F12301A B電腦IP為192.168.0.50,網路卡MAC位址是000879215B09 當A電腦想要連網站yahoo.com.tw時,A電腦會送出資料給yahoo,而IP分享器會記錄192.168.0.2的MAC是00046F12301A,並把資料內來源IP 192.168.0.2改成WAN port的真實IP,然後送往YAHOO。Yahoo收到以後會依照真實IP位址回傳資料給IP分享器,IP分享器再依照資料內的MAC位址判別出這封包是要給A電腦的,於是把目的IP改成192.168.0.2送往A電腦。 簡單的說,IP分享器是透過傳送封包內的MAC位址來分辨這個封包資料是要給哪一台電腦的,進而達到分享IP的功能。 請注意,有些IP分享器會說自己是IP sharing router或者是寬頻Router,但這與實際的Router有一段差距。 ___ ## Open Shortest Path First 開放式最短路徑優先 :::info 運行於 ==**應用層)**== ::: ### ==**DR**== (Designated Router) 指定路由器(Designated Router, DR) ### ==**BDR**== (Backup Designated Router, BDR) 備份指定路由器 Open Shortest Path First (OSPF) 是屬於 ==Link-State Routing Protocol==,每隻在 OSPF 裡的 Router 都會向 Neighbor 交換自己的 Link-State,當 Router 收到這些 Link-State 之後,就會運用 Dijkstra Algorithm (戴克斯特拉算法) 來計算出最短的路徑 (Shortest Path) ![](https://i.imgur.com/i3JftZQ.png) ![](https://i.imgur.com/8ycBEdV.png) ![](https://i.imgur.com/jdHQBZh.png) ### Routing protocol ### 路由協定 路由協定(英語:Routing protocol)是一種指定封包轉送方式的網路協定。Internet 網路的主要節點裝置是路由器,路由器通過路由表來轉發接收到的資料。轉發策略可以是人工指定的(通過靜態路由、策略路由等方法)。在具有較小規模的網路中,人工指定轉發策略沒有任何問題。但是在具有較大規模的網路中(如跨國企業網路、ISP網路),如果通過人工指定轉發策略,將會給網路管理員帶來巨大的工作量,並且在管理、維護路由表上也變得十分困難。為了解決這個問題,動態路由協定應運而生。動態路由協定可以讓路由器自動學習到其他路由器的網路,並且網路拓撲發生改變後自動更新路由表。網路管理員只需要組態動態路由協定即可,相比人工指定轉發策略,工作量大大減少。 ### 管理距離(administrative distance) 每一種路由協定都有預設的管理距離(Administrative Distance,==AD==),當然這並不代表此數值是無法修改。這個管理距離可以針對網路環境與設定等因素,由網路管理人員手動修改。 管理距離,英文稱為Administrative Distance值,簡稱為AD值。管理距離(AD值)是一個從0到255的整數。 :::info 每一種路由協定都有一個預設的管理距離(AD值)與之對應,代表這個路由協定所提供的資訊的可靠程度,==其值越低,代表可靠程度越高== ::: 用下面這個圖例來做說明: ![](https://i.imgur.com/eu9XeWe.png) 常用AD值預設(網路管理人員可手動修改) | Protocol | Ad | | -------- | -------- | | Connected | 0 | | Static | 1 | | IGRP | 100 | | OSPF | 110 | | RIP | 120 | ![](https://i.imgur.com/hdV2okY.png) **常見路由協定** 常見的路由協定有 **RIP**、IGRP(Cisco私有協定)、EIGRP(Cisco私有協定)、**OSPF**、IS-IS、BGP等。 RIP、IGRP、EIGRP、OSPF、IS-IS 是內部網路關協定(IGP),適用於單個 ISP 的統一路由協定的執行,一般由一個ISP運營的網路位於一個AS(自治系統)內,有統一的 AS number(自治系統號)。BGP是自治系統間的路由協定,是一種外部閘道器協定,多用於不同 ISP 之間交換路由資訊,以及大型企業、政府等具有較大規模的私有網路。 ### RIP(Routing Information Protocol) 路由信息協議是一種==內部==網關協議(IGP :::info - **內部路由協定**(Interior Gateway Protocol)簡稱為 IGP - 外部路由協定(Exterior Gateway Protocol)簡稱為 EGP ::: 為最早出現的 ==距離向量路由協定==。屬於網路層,其主要應用於規模較小的、可靠性要求較低的網絡,可以通過不斷的交換信息讓路由器動態的適應網絡連接的變化,這些信息包括每個路由器可以到達哪些網絡,這些網絡有多遠等。 RIP 路由協定有以下幾個特性: 1. RIP 路由協定採用 Distance Vector 路由演算法。 2. 根據網路路徑所必須經過的設備數目來決定最佳網路路徑。 3. 一條網路路徑==最多只能允許經過 15 個路由器設備==。 4. 預設上,路由器設備會每隔 30 秒互相傳遞網路路由資訊的更新。 5. RIP 路由協定支援 Load Balancing 功能,預設支援四條 Load Balancing 網路路徑,最多支援六條網路路徑。 ### flooding 演算法 洪泛法(Flooding)是一種簡單的路由演算法,將收到的封包,往所有的可能連結路徑上遞送,直到封包到達為止。 洪泛法的基本原理是,當封包到達某一個節點時,路由器根據現存的連線,將封包複製,往每一個連線上寄送(除了封包進來的連線之外)。這保證了,只要目的地是可以到達的,封包最終一定可以到達目的。 ### OSPF OSPF協定是「開放式最短路徑優先(Open Shortest Path First)」的縮寫,屬於鏈路狀態路由協定。OSPF提出了「區域(area)」的概念,每個區域中所有路由器維護著一個相同的鏈路狀態資料庫(LSDB)。區域又分為骨幹區域(骨幹區域的編號必須為0)和非骨幹區域(非0編號區域),如果一個執行OSPF的網路只存在單一區域,則該區域可以是骨幹區域或者非骨幹區域。如果該網路存在多個區域,那麼必須存在骨幹區域,並且所有非骨幹區域必須和骨幹區域直接相連。OSPF利用所維護的鏈路狀態資料庫,通過最短路徑優先演算法(SPF演算法)計算得到路由表。OSPF的收斂速度較快。由於其特有的開放性以及良好的擴充性,目前OSPF協定在各種網路中廣泛部署。 ### IS-IS IS-IS協定是Intermediate system to intermediate system(中間系統到中間系統)的縮寫,屬於鏈路狀態路由協定。標準IS-IS協定是由國際標準化組織制定的ISO/IEC 10589:2002所定義的,標準IS-IS不適合用於IP網路,因此IETF制定了適用於IP網路的整合化IS-IS協定(Integrated IS-IS)。和OSPF相同,IS-IS也使用了「區域」的概念,同樣也維護著一份鏈路狀態資料庫,通過最短生成樹演算法(SPF)計算出最佳路徑。IS-IS的收斂速度較快。整合化IS-IS協定是ISP骨幹網上最常用的IGP協定。 ### IGRP IGRP協定是「內部網路關路由協定(Interior Gateway Routing Protocol)」的縮寫,由Cisco於二十世紀八十年代獨立開發,屬於Cisco私有協定。IGRP和RIP一樣,同屬距離向量路由協定,因此在諸多方面有著相似點,如IGRP也是周期性的廣播路由表,也存在最大跳數(預設為100跳,達到或超過100跳則認為目標網路不可達)。IGRP最大的特點是使用了混合度量值,同時考慮了鏈路的頻寬、延遲、負載、MTU、可靠性5個方面來計算路由的度量值,而不像其他IGP協定單純的考慮某一個方面來計算度量值。目前IGRP已經被Cisco獨立開發的EIGRP協定所取代,版本號為12.3及其以上的Cisco IOS(Internetwork Operating System)已經不支援該協定,現在已經罕有執行IGRP協定的網路。 ### EIGRP 由於IGRP協定的種種缺陷以及不足,Cisco開發了EIGRP協定(增強型內部網路關路由協定)來取代IGRP協定。EIGRP屬於進階距離向量路由協定(又稱混合型路由協定),繼承了IGRP的混合度量值,最大特點在於引入了非等價負載均衡技術,並擁有極快的收斂速度。EIGRP協定在Cisco裝置網路環境中廣泛部署。 ### BGP 為了維護各個ISP的獨立利益,標準化組織制定了ISP間的路由協定BGP。BGP是「邊界閘道器協定(Border Gateway Protocol)」的縮寫,處理各ISP之間的路由傳遞。但是BGP執行在相對核心的地位,需要用戶對網路的結構有相當的了解,否則可能會造成較大損失。 --- ## Link state 與 Distance vector 原理 - **距離向量繞徑法**(Distance Vector Routing): **RIP** 每個路由器定期與相鄰的路由器交換資訊,將其所知道的所有資訊,也就是==最 新的路由表,整個傳給**相鄰**的每個路由器==。 - **連結狀態繞徑法**(Link State Routing): **OSPF**、**IS-IS** 每個節點都必須知道網路中 ==**所有**連結的成本==,Router 會蒐集自己週遭鄰居的資訊 (Link State Information)。之後每個 Router 會與同區域的所有其他路由器交換 彼此之前蒐集的 Link State 資訊 ## Link state 與 Distance vector 比較 | | Distance Vector | Link State | | -------- | -------- | -------- | | Protocol | **RIP** | **OSPF**、**IS-IS** | | 交換資訊 | 只有 ==**相鄰**== 路由器交換資訊 | ==**整個**自治系統內==的路由器都會交換資訊 | | 更新 | 傳遞整份的資料(Routing Table),而且只會傳遞給鄰近的路由器設備而已 | 只會傳遞少部分更新的路由資料,而且會把這樣的更新資料傳遞到各個路由器設備內 | 更新模式 | 週期性傳送(RIP 預設每隔 30 秒) | 線路有變時 ## IP尋徑常見問題與解決方法 常見的問題包括: - 尋徑模式進入「無窮迴圈」(**Infinite Loop**); - 計數值「無窮累加」(**Infinite Count**) ___ ## IPv4 封包結構重點 **Header** | 位偏移 | 長度 | 內容 | | -------- | -------- | -------- | |0-3 | 4 bits | 版本 |8-13 | 6 bits | 區分服務 | |14-15 | 2 bits | ==顯式擁塞通告== | |16-31 | 16 bits | 全長(Total Length)| | 16-18 | 3 bits | 標誌 (Flags) | | 19-31 | 13 bits | ==分片偏移 (Fragment Offset)==| | 64-71 | 8 bits | 存活時間 ==TTL==(Time To Live) | | 96-127 | 32 bits | 來源 IP 位址 | | 28-159 | 32 bits | 目的 IP 位址 | ## IPv6 封包結構重點 ![](https://i.imgur.com/OGL9k0m.png) ### TTL(Time To Live) 存活時間(英語:Time To Live,簡寫TTL)是電腦網路技術的一個術語 :::info 指一個封包在經過一個路由器時,可傳遞的最長距離(躍點數) :::danger 每當封包經過一個路由器時,其存活次數就會被==減1==。 ::: 當其存活次數為0時,路由器便會取消封包並傳送一個ICMP TTL 封包給原封包的發出者。其設計目的是防止封包因不正確的路由表等原因造成的無限循環而無法送達及耗盡網路資源。 ## IPv4 跟 IPv6 比較 ### IPv4 跟 IPv6 比較重點比較如下 [詳細比較請參考這邊](https://www.ibm.com/support/knowledgecenter/zh-tw/ssw_ibm_i_71/rzai2/rzai2compipv4ipv6.htm) :::info | 說明 |IPv4 |IPv6| | :--------: | :-------- |:-------- | |Address(位址)| ==**32**== 位元長(4 個位元組)形式如 192 ==**.**== 168 ==**.**== 1 ==**.**== 0 |==**128**== 位元長(16 個位元組)形式如 xxxx ==**:**== xxxx ==**:**== xxxx ==**:**== xxxx ==**:**== xxxx ==**:**== xxxx ==**:**== xxxx ==**:**== xxxx| |IP header(IP 標頭)| ==**20-60**== 個位元組的可變長度,取決於呈現的 IP 選項。| ==**40**== 個位元組的固定長度。 沒有 IP 標頭選項。 通常,IPv6 標頭比 IPv4 標頭簡單。| 傳送|單點傳送(unicast)<br>群組傳送(multicast)<br>廣播傳送 (broadcast)|單播(unicast)<br>多播(multicast)<br>任播(anycast)| ::: ___ ## IPv6 ### IPv6 延伸標頭 IPv6簡化標頭的格式:主標頭固定40為元組,並對IPv4部分欄位刪除或變成延伸項目,==減少封包的運作成本,也提升了執行效率==。 時下 IPv6 規格文件定義六個 Extension 標頭,所有 IPv6 節點皆須支援: - Hop-by-Hop Options 標頭 - ==Routing 標頭== - ==Fragment 標頭== - Destination Options 標頭 - ==Authentication 標頭== - Encapsulating Security Payload 標頭 IPv6位址的分類 - 單播(unicast)位址 - 任播(anycast)位址 - 多播(multicast)位址 ___ ## HTTP persistent connection ### HTTP持久連接 HTTP 持久連接(HTTP persistent connection,也稱作 HTTP keep-alive 或 HTTP connection reuse)是使用 ==**同一個 TCP 連接**== 來傳送和接收多個 HTTP 請求/應答,而不是為每一個新的請求/應答開啟新的連接的方法。 ___ ## 網路拓樸 ### 網路拓樸類型 ### Bus 匯流排拓樸 ==**被動式**==(被動偵測傳輸是否出錯) 各網路節點透過網路設備連接到一條共用之線路,訊息的傳送是沿著匯流排傳送欲新增或刪除節點相當容易,且若某一節點故障並不會導致整個系統癱瘓 匯流排拓撲(英文:Bus Topology),又稱匯流排網路(Bus Network);該網路之節點直接連接到一個共用的半雙工的線性網路上。由於該拓撲是由一條主纜線串接所有的電腦或其他網路設備,因此也稱為線性匯流排 :::info - 新增或刪除節點相當容易 - 某一節點故障並不會導致整個系統癱瘓 :::danger 如果有一部分==主纜上中斷時,整個網路都會中斷== ::: ![](https://i.imgur.com/zD7NQyg.png) ### Star 星狀拓樸 ==**主動式**==(主動判斷是否可以傳送) 透過一個中央控制節點與其他節點連接星狀網路和匯流排網路一樣,新增或刪除節點相當容易,只需增加或移除一條與中央控制節點相連的連線 ![](https://i.imgur.com/LcfUEL9.png) ### Ring 環狀拓樸 ==**主動式**== 各網路節點相互連接形成一個環,傳送的訊息會在環上進行 ==**單向傳送**== :::info - 不會因為某一節點故障而使整個網路系統無法使用 ::: ![](https://i.imgur.com/MrxGlYh.png) ### Tree 樹狀拓樸 ==**主動式**== 樹狀網路中之各節點連接形成樹狀結構,任兩個節點間僅存在一條傳輸路徑 ![](https://i.imgur.com/i7pjaLI.png) ### Mesh 網狀拓樸 網狀 (Mesh) 拓樸 網路節點連接形成類似錯綜複雜之網狀結構 ==**主動式**== ![](https://i.imgur.com/2lW6nHu.png) ___ ## FDMA、TDMA與CDMA 何謂FDMA、TDMA、CDMA? 多重接取(Multiple Access)技術,依方式分有 **FDMA:(Frequency Division Multiple Access)** **TDMA:(Time division multiple access)** **CDMA:(Code Division Multiple Access)** 三種。多重接取的功能主要是作為控制頻寬資源之用,由於行動電話使用的無線電頻寬十分有限,並不像有線網路只要抽換或加舖線路即可增加頻寬,因此頻寬的使用必須隨機調配,也就是用戶要打電話時,系統才指派頻寬給用戶使用,並於通話結束後取回頻寬,以便指派給稍後要打電話的用戶使用。 一個行動電話系統之容量就像一間會議室的空間,FDMA及TDMA就像是將大會議室分隔成許多小會議室,用戶要用時,就分派給一間小會議室,如此可以給多用戶使用;而CDMA則是不隔間,但不同用戶使用不同的展頻碼(Spreading Code)來調變,接收器可依不同展頻碼來過濾掉其他用戶訊號而取出需要的資訊。 讓我們看看雞尾酒會頻道存取的理論。在一個大房間內,有許多人正在交談,TDM的方式就是所有的人集中在房子中間,但是大家輪流交談,也就是先和某人說完後,再和另一人交談;FDM則是將人群分成好幾團,每一團同時之間都有自己的對話,但團與團之間是獨立開來的。CDMA則是讓大家集中在一起聊天,但每一對所說的語言都不同,說法語的這一對只認定法語,並將其他聲音視為雜訊。因此CDMA主要重點在於能夠萃取出自己想要的訊號,並將任何其他東西視為隨機雜訊。 ### FDMA(Frequency Division Multiple Access) ![](https://i.imgur.com/TwqA1OG.png) FDMA的方式是在**頻率上直接切割**,將全數頻寬切成每個等寬頻帶的通道,每個通道可供一個用戶使用 ### TDMA(Time division multiple access) ![](https://i.imgur.com/qbrCxPV.png) TDMA(如GSM)則是先切成幾個略小的頻帶(此一動作不是必須的,視系統而定),然後每個頻帶上再切割成時間等長的時槽(Slot),若干個時槽再結合成訊框(Frame),每個訊框的第一號時槽組成TDMA的第一號通道,其餘依此類推,每一通道供一用戶使用,如此不同用戶的訊號便不至於重疊。 ### CDMA(Code Division Multiple Access) ![](https://i.imgur.com/1iEHPvk.png) CDMA好比在一間房間中,同時有一組人用中文交談而另一組人用英文交談,彼此會有干擾的產生,即在中文聽者耳中英文只是較大的噪音而已,並不會影響到聽中文的辨識能力,因此可以在同一時間、空間,有多組人用不同語言交談。但當數目多到一定程度時,彼此距離必須拉近才能聽見,此時涵蓋率相對降低,容量亦受限制。 CDMA允許 ==**任何工作站在任何時間,可在整個頻譜上傳輸**==。多個同時間傳輸可藉由編碼理論來區隔,CDMA同時也不假設碰撞的框架全然會受干擾。相反的,它假設多個訊號可以線性方式加在一起。 優點: :::info - CDMA可避免時序同步化的問題以及頻道分配的問題,它為完全非集中式以及完全動態方式 - 可以應用在保密和安全傳輸上 - 不需要同步(asynchronous) - 在理想無雜訊的CDMA系統中,容量(也就是工作站的數目)可以任意的大 - 任何工作站在任何時間,可在整個頻譜上傳輸 ::: ___ ## MAC (Media Access Control) MAC位址(英語:Media Access Control Address),直譯為媒體存取控制位址,也稱為區域網路位址(LAN Address),乙太網路位址(Ethernet Address)或實體位址(Physical Address)在OSI模型中,第三層網路層負責IP位址,第二層資料鏈結層則負責MAC位址。MAC位址用於在網路中唯一標示一個網卡,一台裝置若有一或多個網卡,則每個網卡都需要並會有一個唯一的MAC位址。 :::info MAC 用來確認網路裝置位置的位址 MAC 位址用於在網路中==唯一==標示一個網卡 ::: MAC 位址共 48位元(6個位元組),以十六進位表示。前24位元由IEEE決定如何分配,後24位元由實際生產該網路裝置的廠商自行指定。 ff:ff:ff:ff:ff:ff 則作為廣播位址。 01:xx:xx:xx:xx:xx 是多播位址,01:00:5e:xx:xx:xx 是IPv4多播位址。 --- ### Beacon MAC Management 1. Beacon is used in Time Synchronization Function (TSF) 2. Beacon is used in Power Management 3. In infrastructure mode, Traffic Indication Map (TIM) sent with Beacon ### Beacon is used in Time Synchronization Function (TSF) IEEE 802.11 的做法是讓所有的工作站都配置一個「時序同步功能」計時器 (Timing Synchronization Function Timer, TSF Timer)。希望每部工作站內的 TSF Timer 值都能相同。在有基礎架構的網路環境下,擷取點為時序的主控者,應該負責執行時序同步的功能。由於 BSSs 所涵蓋的範圍可以部份或全部重疊,因此各個BSS 的擷取點彼此之間應該不要同步,否則有可能在同一時間都送出 Beacon 訊框,使得其所管轄的工作站在接收 Beacon 訊框時造成衝撞的現象。擷取點為了完成將其所管轄的工作站同步的任務,必須週期性的傳送攜帶其 TSF Timer 值的 Beacon 訊框。工作站本身的 TSF Timer 值如果與 Beacon 訊框上的不同,就應該修正為相同。 ### Beacon is used in Power Management 工作站可以依其所需決定其電源管理模式是處於啟動模式 (Active Mode) 或省電模式 (Power Save Mode, PS Mode)。工作站更改模式時必須利用所傳送訊框中的訊框控制欄位 (Frame Control Field) 內的電源管理位元 (Power Management bit) 來通知協調者。協調者有訊框要送給省電模式工作站時,不可以隨時傳送,必須先將這些訊框儲存起來而在特定的時間傳送。至於有哪些工作站有訊框儲存在協調者中待送則是記錄在訊務指示對照表 (Traffic Indication Map, TIM) 中。協調者每次傳送 Beacon 訊框時都會將此對照表放入其中。處於省電模式的工作站應該定時的起來接收 Beacon 訊框(時間間隔由工作站內部之 aListenInterval 參數定義)。工作站取得 TIM 後可自行研判其是否有訊框儲存在協調者中。每一個與協調者建立連結關係的工作站都被分配一個工作站辨識碼 (Station ID, SID)。TIM 則是以虛擬位元對照表 (Virtual Bitmap) 的方式記錄工作站是否有訊框儲存在協調者中。例如第 i 個位元等於 1 表示 SIDi 有訊框儲存在協調者中。SID0 則保留給廣播或群播訊框,第 0 個位元等於 1 表示有廣播或群播訊框儲存在協調者中。 ### In infrastructure mode, Traffic Indication Map (TIM) sent with Beacon 協調者每次傳送 Beacon 訊框時都會將此對照表(訊務指示對照表 Traffic Indication Map (TIM))放入其中 ___ ## 預設埠位址-Port Number | 協定名稱 | port| | -------- | -------- | | FTP | 21 命令通訊埠(Command Port)<br>20 資料通訊埠(Data Port) | | SMTP | 25 | | Telnet | 23 | | POP3 | 110 | | DNS | 53 | | DHCP | 67,68 | | SNMP | 161,162 | | HTTPS | 443 | | IMAP | 143 | ![](https://i.imgur.com/ZGCUgJe.png) ___ ## Hamming distance ### 漢明距離 在資訊理論中,兩個等長字符串之間的漢明距離(英語:Hamming distance)是兩個字符串==對應位置的不同字符的個數==。換句話說,它就是將一個字符串變換成另外一個字符串所需要替換的字符個數。 例如: 10==1==1==1==01與 10==0==1==0==01之間的漢明距離是 2。 2==14==3==8==96與 2==23==3==7==96之間的漢明距離是 3。 "==t==o==n==e==d=="與 "==r==o==s==e==s=="之間的漢明距離是 3。 ___ ## VPN(Virtual Private Network) ### 虛擬私人網路 是一種常用於連接中、大型企業或團體與團體間的私人網路的通訊方法。它利用隧道協定(Tunneling Protocol)來達到保密、傳送端認證、訊息準確性等私人訊息安全效果,這種技術可以用不安全的網路(例如:網際網路)來傳送可靠、安全的訊息。需要注意的是,加密訊息與否是可以控制的,如果是沒有加密的虛擬私人網路訊息依然有被竊取的危險。 ### PPTP(Point to Point Tunneling Protoco) 點對點隧道協定 是實現虛擬私人網路(VPN)的方式之一。PPTP使用傳輸控制協定(TCP)建立控制通道來傳送控制命令,以及利用通用路由封裝(GRE)通道來封裝對等協定(PPP)封包以傳送資料。這個協定最早由微軟等廠商主導開發,但因為它的加密方式容易被破解,微軟已經不再建議使用這個協定。 ### L2TP 第二層隧道協定 是一種虛擬隧道協定,通常用於虛擬私人網路。L2TP協定自身不提供加密與可靠性驗證的功能,可以和安全協定搭配使用,從而實現資料的加密傳輸。經常與L2TP協定搭配的加密協定是IPsec,當這兩個協定搭配使用時,通常合稱L2TP/IPsec。 ### IPSec(Internet Protocol Security) 網際網路安全協定 是一個協定套件,透過對IP協定的封包進行==加密和認證==來保護 IP 協定的網路傳輸協定族(一些相互關聯的協定的集合)。 IPsec 由兩大部封包成: - (1)建立安全封包流的金鑰交換協定(**IKE協定**) - (2)保護封包流的協定(**ESP協定** 或 **AH協定**)。 網際網路金鑰交換(IKE協定)。 加密封包流的封裝安全載荷協定(ESP協定) 認證頭協定(AH協定) 用於保證資料的機密性、來源可靠性、無連線的完整性並提供抗重播服務。 ___ ## SRAM(Static Random-Access Memory) 靜態隨機存取記憶體 是隨機存取記憶體的一種。所謂的「靜態」,是指這種記憶體 ==**只要保持通電,裡面儲存的資料就可以恆常保持**==[1]。相對之下,動態隨機存取記憶體(DRAM)裡面所儲存的數據就需要週期性地更新。 :::danger 然而,當電力供應停止時,SRAM儲存的數據還是會消失(被稱為volatile memory) ::: 這與在斷電後還能儲存資料的ROM或快閃記憶體是不同的。 :::info 有 m 條位址線與 n 條資料線的 SRAM,其記憶體存儲容量是 2^m^ 個字元(word),2^m^×n bits,每個字元的長度至少是 64 bit。 位址線 = 記憶體大小 資料線 = 資料傳輸通道 ::: ex: 一個 512K x 8 的 SRAM 記憶體,通常具有 19 條位址線接腳跟 8 條資料傳輸通道 ___ ## Hamming Code ### 漢明碼 漢明碼(Hamming Code),奇偶檢驗碼,是在電信領域的一種線性偵錯碼,以發明者Richard Hamming的名字命名。 漢明碼在傳輸的訊息流中插入驗證碼,以==偵測並更正==單一位元錯誤。由於簡單的漢明編碼,它們被廣泛應用於內部記憶體(RAM)。其 SECDED (single error correction, double error detection) 版本另外加入一檢測位元,可以偵測兩個以下同時發生的位元錯誤,並能夠更正單一位元的錯誤。 :::info 可使用 Hamming code 來進行錯誤偵測與更正 ::: ___ ## parity bit ### 奇偶校驗位 奇偶校驗位(英語:parity bit)或校驗位元(英語:check bit)是一個表示給定位數的二進位數中 ==1 的個數==是奇數還是偶數的二進位數。奇偶校驗位是==最簡單的錯誤檢測碼==。 奇偶校驗位有兩種類型: - ==**偶校驗位**==: 讓1的個數變偶數 一組給定數據位中 1 的個數是奇數,補一個 bit為 1,使得總的 1 的個數是偶數。 例:0000001,補一個 bit 為 1,變成 0000001==1==。 - ==**奇校驗位**==: 讓1的個數變奇數 一組給定數據位中 1 的個數是奇數,補一個 bit為 0,使得總的 1 的個數是奇數。 例:0000001,補一個 bit 為 0,變成 0000001==0==。 偶校驗實際上是循環冗餘校驗的一個特例,通過多項式 x + 1 得到1位CRC。 :::danger parity bit 可放於最前面的 bit 或最後面 bit,做題目時要留意位置 ::: ___ ## Wireless Application Protocol(WAP) ### 無線應用協定 無線應用通訊協定(Wireless Application Protocol,WAP),是一個使 **行動用戶使用無線裝置**(例如行動電話)隨時使用網際網路的資訊和服務的開放的規範。WAP 的主要意圖是使得袖珍的、手提的無線終端裝置能夠獲得類似網頁瀏覽器的功能,因此其功能上有限。WAP1.X 規定無線裝置存取的頁面是用 WML(一種XML方言)語言編寫的,但是 WAP2.0 將 XHTML-MP 做為主要內容格式。 ___ ## WI-FI無線 目前常見的網路加密有 - ==**WEP**== WEP為有線等效加密(Wired Equivalent Privacy),又稱無線加密協議(Wireless Encryption Protocol),屬於為早期採用的加密技術。但由於==採用重覆的金鑰,因此只要有心人士花時間進行監聽封包,蒐集資訊後就能破解出來==。雖然有人認為WEP可以防止非專業人士破解,但幾年前就有廠商推出「卡皇」無線網卡,廠商提供自動化解決方案,購買者不用懂太多電腦知識也能破解無線網路的密碼。因此還是不太建議使用,最簡單的防破解方式,就是拋棄最舊的方式改用WPA或WPA2。 WEP是一種老式的加密方式,在2003年時就被WPA加密所淘汰,由於其安全性能存在好幾個弱點,很容易被專業人士攻破,不過,對於非專業人來說還是比較安全的。其次由於WEP採用的是IEEE 802.11技術,而現在無線路由設備基本都是使用的IEEE 802.11n技術,因此,當使用WEP加密時會影響無線網絡設備的傳輸速率,如果是以前的老式設備只支持IEEE 802.11的話,那麼無論使用哪種加密都可以兼容,對無線傳輸速率沒有什麼影響。 - ==**WPA,WPA2**== **WPA(英語:Wi-Fi Protected Access)** 意即「Wi-Fi存取保護」,是一種保護無線網路(Wi-Fi)存取安全的技術標準。它是應研究者在前一代的有線等效加密(WEP)系統中找到的幾個嚴重的弱點而產生的。目前廣泛實作的有WPA、WPA2兩個標準,WPA實作了IEEE 802.11i標準的大部分,是在802.11i完備之前替代WEP的過渡方案。WPA的設計可以用在所有的無線網卡上,但未必能用在第一代的無線接取器上。 WPA/WPA2是一種最安全的加密類型,不過由於此加密類型需要安裝 Radius 伺服器,因此,一般普通用戶都用不到,只有企業用戶為了無線加密更安全才會使用此種加密方式,在設備連接無線WIFI時需要Radius伺服器認證,而且還需要輸入 Radius 密碼。 - ==**WPA-PSK,WPA2-PSK**== WPA-PSK/WPA2-PSK 是我們現在經常設置的加密類型,這種加密類型安全性能高,而且設置也相當簡單,不過需要注意的是它有 AES 和 TKIP 兩種加密算法。 - **TKIP**:Temporal Key Integrity Protocol(臨時密鑰完整性協議),這是一種舊的加密標準。 - **AES**:Advanced Encryption Standard(高級加密標準),安全性比 TKIP 好,推薦使用。 ### AES(Advanced Encryption Standard) 進階加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱 Rijndael 加密法,是美國聯邦政府採用的一種區段加密標準。 :::info AES 用來替代原先的 DES,已經被多方分析且廣為全世界所使用 經過五年的甄選流程,進階加密標準由美國國家標準與技術研究院(NIST)於2001年11月26日發布於FIPS PUB 197,並在2002年5月26日成為有效的標準。 :::danger 2006年,AES 已然成為 ==**對稱金鑰加密**== 中最流行的演算法之一。 ::: ___ ## WSN (Wireless sensor network) ### 無線感測網路 無線感測網路(Wireless sensor network),或譯無線感知網路,無線傳感器網路,是由許多在空間中分布的自動裝置組成的一種無線通訊電腦網路,這些裝置使用傳感器共同作業地監控不同位置的物理或環境狀況(比如溫度、聲音、振動、壓力、運動或污染物)。無線傳感器網路的發展最初起源於戰場監測等軍事應用。而現今無線傳感器網路被應用於很多民用領域,如環境與生態監測、健康監護、家居自動化以及交通控制等。 ___ ## RDIF(Radio Frequency IDentification) ### 無線射頻辨識 無線射頻辨識(英語:Radio Frequency IDentification,縮寫:RFID)是一種無線通訊技術,可以通過無線電訊號識別特定目標並讀寫相關數據,而無需識別系統與特定目標之間建立機械或者光學接觸。 依據標籤內部==供電有無==,RFID標籤分為被動式、半被動式(也稱作半主動式)、主動式三類。 - **被動式** 被動式標籤==沒有內部供電電源==,其內部積體電路通過接收到的電磁波進行驅動,這些電磁波是由RFID讀取器發出的。 - 半主動式 - **主動式** 與被動式和半被動式不同的是,主動式標籤本身具==有內部電源供應器==,用以供應內部IC所需電源以產生對外的訊號。 --- ## NFC(Near Field Communication) ### 近距離無線通訊 又簡稱近距離通訊或近場通訊,是一套通訊協定,讓兩個電子裝置(其中一個通常是行動裝置,例如智慧型手機) :::warning 在相距==幾公分之內==進行通訊 ::: NFC,如同過去的電子票券智慧卡一般,將允許行動支付取代或支援這類系統。NFC 應用於社群網路,分享聯絡方式、相片、影片或檔案。[2]具備 NFC 功能的裝置可以充當電子身分證和鑰匙卡。[3]NFC 提供了設定簡便的低速連接,也可用於引導能力更強的無線連接。[3] :::info 近場通訊技術由非接觸式射頻識別 ==**(RFID)演變**== 而來 ::: 由飛利浦半導體(現恩智浦半導體)、諾基亞和索尼共同於2004年研製開發[4],其基礎是 RFID 及互連技術。近場通訊是一種短距高頻的無線電技術,在13.56MHz 頻率運行於 20 公分距離內[5]。其傳輸速度有 106 Kbit/秒、212 Kbit/秒或者 424 Kbit/秒三種。目前近場通訊已通過成為 ISO/IEC IS 18092 國際標準、EMCA-340 標準與ETSI TS 102 190標準。NFC 採用主動和被動兩種讀取模式。 ___ ## Smart card , IC Card ### 智慧卡 智慧卡(英語:Smart card或IC Card)又稱智能卡、聰明卡、積體電路卡[1]及IC卡,是指貼上或嵌有積體電路晶片的一種可攜式卡片塑膠。卡片包含了 - 微處理器 - I/O介面及記憶體 - 提供了資料的運算、存取控制及儲存功能 卡片的大小、接點定義目前是由ISO規範統一,主要規範在ISO7810中。常見的有電話IC卡、身分IC卡,以及一些交通票證和記憶卡。 --- ## 視訊壓縮 ==**失真壓縮**== 資料壓縮是透過==去除資料中的冗餘資訊==而達成。就視訊資料而言,資料中的冗餘資訊可以分成四類: - 時間上的冗餘資訊 在視訊資料中,相鄰的影格(frame)與影格之間通常有很強的關連性,這樣的關連性即為時間上的冗餘資訊。 - 空間上的冗餘資訊 在同一張影格之中,相鄰的像素之間通常有很強的關連性,這樣的關連性即為空間上的冗餘資訊。 - 統計上的冗餘資訊 統計上的冗餘資訊指的是欲編碼的符號(symbol)的機率分布是不均勻(non-uniform)的。 - 感知上的冗餘資訊 感知上的冗餘資訊是指在人在觀看視訊時,人眼無法察覺的資訊。 右上圖為一個典型的視訊編碼器。在進行當前訊號編碼時,編碼器首先會產生對當前訊號做預測的訊號,稱作預測訊號(predicted signal),預測的方式可以是時間上的預測(inter prediction),亦即使用先前影格的訊號做預測,或是空間上的預測(intra prediction),亦即使用同一張影格之中相鄰像素的訊號做預測。得到預測訊號後,編碼器會將當前訊號與預測訊號相減得到殘餘訊號(residual signal),==並只對殘餘訊號進行編碼==,如此一來,可以去除一部份時間上或是空間上的冗餘資訊。接著,編碼器並不會直接對殘餘訊號進行編碼,而是先將殘餘訊號經過變換(通常為離散餘弦變換)然後量化以進一步去除空間上和感知上的冗餘資訊。量化後得到的量化係數會再透過熵編碼,去除統計上的冗餘資訊。 在解碼端,透過類似的相反操作,可以得到重建的視訊資料。 ## 影像壓縮 ==**失真壓縮 或 無失真壓縮**== #### 無失真壓縮 對於如繪製的技術圖、圖表或者漫畫,優先使用無失真壓縮,這是因為失真壓縮方法,尤其是在低的位速條件下,將會帶來壓縮失真,如醫療圖像或者用於存檔的掃描圖像……等,這些有價值的內容的壓縮也儘量選擇無失真壓縮方法。 - 遊程編碼 - 熵編碼法 - 如LZW這樣的自適應字典演算法 #### 失真壓縮 有損方法非常適合於自然的圖像,例如一些應用中圖像的微小損失是可以接受的(有時是無法感知的),這樣就可以大幅度地減小位速。 - 色彩空間:這是化減到圖像中常用的顏色。所選擇的顏色定義在壓縮圖像頭的調色盤中,圖像中的每個像素都用調色盤中顏色索引表示。這種方法可以與抖動一起使用以模糊顏色邊界。 - 色度抽樣:這利用了人眼對於亮度變化的敏感性遠大於顏色變化,這樣就可以將圖像中的顏色資訊減少一半甚至更多。 - ==變換編碼==:**這是最常用的方法**。首先使用如離散餘弦變換(DCT)或者小波變換這樣的傅立葉相關變換,然後進行量化和用熵編碼法壓縮。 - 分形壓縮: ___ ## 病毒 ### 開機型的病毒(Boot-type virus) 是界定為在電腦開機時,搶先作業系統進入記憶體的程式。 ### 檔案型的病毒(File-type virus) 是介定為在檔案執行時,在原檔案之前執行的程式。病毒本體寄居於可執行檔案中,當此檔案被執行時,便侵入作業系統取得絕對控制權;當然也有不常駐而僅在執行時感染其它檔案的病毒。 ### 巨集病毒(英語:Macro virus) 是一種使得應用軟體的相關應用文檔內含有被稱為巨集的可執行代碼的病毒。 一個電子表格程式可能允許用戶在一個文檔中嵌入「巨集命令」,使得某種操作得以自動運行;同樣的操作也就可以將病毒嵌入電子表格來對用戶的使用造成破壞。 ### 複合型病毒(Multi-Partite Virus) 複合型病毒兼具開機型病毒以及檔案型病毒的特性。它們可以傳染*.COM,*.EXE檔,也可以傳染磁碟的開機系統區(Boot Sector)。由於這個特性,使得這種病毒具有相當程度的傳染力。一旦發病,其破壞的程度將會非常可觀!例如:台灣曾經流行的大榔頭(Hammer),歐洲流行的Flip翻轉病毒皆是。 ### 蠕蟲病毒 computer worm 電腦蠕蟲(computer worm)與電腦病毒相似,是一種==能夠自我複製==的電腦程式。 與電腦病毒不同的是,電腦蠕蟲不需要附在別的程式內,可能不用使用者介入操作也能自我複製或執行。電腦蠕蟲未必會直接破壞被感染的系統,卻幾乎都對網路有害。電腦蠕蟲可能會執行垃圾程式碼以發動分散式阻斷服務攻擊,令電腦的執行效率極大程度降低,從而影響電腦的正常使用;可能會損毀或修改目標電腦的檔案;亦可能只是浪費頻寬。 蠕蟲與病毒在設計上十分類似,因此被視為次一級的病毒。蠕蟲會從一台電腦散播到另一台電腦,但與病毒不同的是,它無需人為操作,就有以自行傳播的能力。蠕蟲利用您系統上的檔案或資訊傳遞功能,使其得以自主散播。==蠕蟲的最大危險是它有能力在您的系統上進行複製==,因此您的電腦不是只送出一隻蠕蟲,而是會送出成百上千個複製的蠕蟲,進而造成巨大的破壞影響 ### 特洛伊木馬 Trojan Horse 特洛伊木馬(Trojan Horse),在電腦領域中指的是一種==後門程式==,是駭客用來盜取其他用戶的個人資訊,甚至是遠端控制對方的電腦而加殼製作,然後通過各種手段傳播或者騙取目標使用者執行該程式,以達到盜取密碼等各種資料資料等目的。與病毒相似,木馬程式有很強的隱秘性,隨作業系統啟動而啟動。 特洛伊木馬程式不是病毒。它是一種看起來像正常應用程式的破壞性程式。與病毒不同,==特洛伊木馬程式不會自我複製==,但是同樣具有破壞性。 特洛伊木馬程式會在您的電腦上留下一個後門入口,讓惡意使用者/程式存取您的系統,以盜取機密或個人資訊。 ___ ## 循環冗餘碼(CRC) 題目: 假設資料位元為 10101010,生成多項式為x4+x2+x1+1 (10111) 問 CRC 碼以及加上 CRC 碼後的完整訊息為何? :::info 解法為長除法 + XOR (不是ㄧ般除法,而是執行XOR) ::: 1. 羃次補0 ==>羃次多少就補幾個 0;本題最高4所以補4個0 被除數:101010100000 除數為生成多項式的係數:10111 2. 長除法 ==> CRC 用的是二進位除法,不能化為十進位做減法運算,相減時不要借位,只用 XOR 使用長除法取 101010100000 除以生成多項式 10111 的餘數 ![](https://i.imgur.com/1nNWyFD.png) 注意:第一個 10101 不夠 10111 減還是可以做下來,因為是做 XOR CRC 碼為上述所求出的==餘數1100==,而完整訊息則是在原始的資料位元後面加上 CRC 碼,得到 101010101100,只要收訊端有正確的接收到訊息,該訊息將能被生成多項式整除。 ___ ## Huffman 霍夫曼編碼(英語:Huffman Coding),又譯為哈夫曼編碼、赫夫曼編碼,是一種用於無失真資料壓縮的熵編碼(權編碼)演算法。由美國電腦科學家大衛·霍夫曼(David Albert Huffman)在1952年發明。 :::info 的一種==無失真==資料壓縮演算法 霍夫曼編碼將固定長度字元用不同長度的碼編輯 ::: ![](https://imgur.com/72P39aH.gif) ![](https://i.imgur.com/AuxTusr.png) Huffman Code 產生的方式在建立一二元樹,此二元樹的產生是一連串的排序和合併直至剩下二筆資訊機率和等於 1,然後再根據此二元樹找出每一原始資料的 Huffman-Code,找法是由上而下有分枝即每分枝給1和0。 ![](https://i.imgur.com/SdLHhqb.png) ## LZW(Lempel-Ziv-Welch) 藍波-立夫-衛曲編碼法(Lempel-Ziv-Welch,縮寫LZW),是亞伯拉罕·藍波、傑可布·立夫與泰瑞·衛曲共同提出。 :::info 的一種==無失真==資料壓縮演算法 ::: 它在1984年由泰瑞·衛曲改良亞伯拉罕·藍與傑可布·立夫在1978年發表的 LZ78 的版本而來(主要是基於藍波、立夫的壓縮概念,設計出一套具有可逆推的邏輯程式)。 與霍夫曼編碼相比,藍波-立夫-衛曲編碼法被視作將不同長度字串以固定長的碼編輯(霍夫曼編碼將固定長度字元用不同長度的碼編輯)。其優點在於此方法只需儲存一個相當小的表格,即可儲存資料還原時相對應的值,所以所需成本相對地低;然而,這種演算法的設計著重在實現的速度,由於它並沒有對資料做任何分析,所以並不一定是最好的演算法(參考LZMA,LZ77)。 編碼 編碼依據是先將資料的個別單一字元先建立成一個字串編碼表(CSET),再分別給予編號,例如原始資料為aabcaac,其字串編碼表為: ![](https://i.imgur.com/4cpymQN.png) 在隨後的編(解)碼過程,字串編碼表會隨著字串鍵入而逐漸擴大,如下: ![](https://i.imgur.com/xxHPtot.png) 因此 aabcaac 壓縮後為 112343。 ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___