網路概論 ============================ ###### tags: `網路概論` ## 前言 帶你快速的了解網路的架構和一些基本的認知,備妥知識才能架設出你需要用的網路 ## 導論 ### 網路成員 * **伺服器(Server):** 提供服務的電腦(通常需要高效能),允許多個使用者經由網路存取。 * **工作站(Workstation):** 提供一般使用者用來存取網路資源的電腦(通常是指一般個人用電腦)。 * **主機(Host):** 在網路中,具有連接網路能力,和網路地址的設備(例如:印表機、筆電、PDA...等)。 ### 網路架構 依照提供資源分享的方式,可以分成兩類: * **對等式網路:** 網路成員彼此之間可以互相提供、接受資源,地位皆一樣,所以又稱為點對點網路(Peer to Peer),在同一網路的其他成員只要擁有權限,即可連接上來使用。 * **優點:** 架設方式簡單,因不需要用到伺服器,花費較少。 * **缺點:** 較為無法負荷多名使用者同時到一台電腦存取資源,且因資源分散在各主機上,各主機的使用者必須自行管理,若沒特殊方法,整體管理不易。 :::success 一般狀況下較適合主機數量不多的網路架構 ::: * **主從式網路:** 由"提供服務或共享資源的主機"伺服器(Server),和"享用服務或是取用共享資源的單位"用戶端(Client)所構成。伺服器管理共享資源,並會安排用戶端同時提出的使用需求。 * **優點:** 方便管理、服務穩定,能負荷較多的使用者連線。 * **缺點:** 耗費資金較多、需要專業人員管理。 :::success 實際來說,會因應使用者的要求,擷取雙方優點,將主從式搭配對等式,提供更方便的資源分享架構。 ::: ### 網路規模 依照需求去規畫該有的規模、範圍,可分成三種: * **區域網路(Local Area Network,LAN):** 規模最小,通常建置於連接同一個群體的資源。傳輸距離較近、傳輸速度高,因架設不需要太多額外裝置,成本較低。 :::success 一般界定範圍約為2公里。 ::: * **都會網路(Metropolitan Area Network,MAN):** 因早期傳輸速度與距離的限制,用來區分跟區域網路的差別(中與小型規模),通常只一個都會區的網路 :::success 因技術的進步,都會與區域網路的分別已越來越模糊,目前較少提到都會網路。 ::: * **廣域網路(Wide Area Network,WAN):** 包含了所有的區域網路,習慣將區域網路間的連線稱為廣域網路。傳輸速度相對較慢,成本較高。 ### 網路拓樸 為了讓規畫網路與管理網路有跡可循,依照網路連接後的形狀歸類成四種: ![](https://i.imgur.com/GU0Eg8H.png) * **匯流排(Bus)網路:** 有一條供所有連接的電腦共用的主網路線,任何電腦都須先連到主網路線才能跟其他電腦溝通 * **優點:** 佈線簡單,先建好主網路線,再加入需要連線的電腦即可。 * **缺點:** 網路上任何一段發生故障,會使整個網路癱瘓、加入或減少一部電腦,就必須中斷整個網路。 :::success 因影響範圍太廣,在現今的網路發展中已被淘汰。 ::: * **星狀(Star)網路:** 將所有要連線的電腦連接到中心點(集線器,Hub),透過集線器讓彼此互相傳遞訊號。 * **優點:** 追查故障位置相對容易。 * **缺點:** 若網路只有一台集線器,又剛好壞掉,就會癱瘓整個網路。 :::success 目前建置小型區域網路會採納的最佳方法。 ::: * **環狀(Ring)網路:** 主網路線繞成一個環,要連線的成員電腦散佈在環的周圍。 * **優點:** 使用權仗(Token)的機制(電腦需要有權仗才被允許傳輸資料,整個網路只有一個權杖,依照順序輪流傳遞)處理了前兩種網路在傳送資料時會遇到的訊號碰撞(Collision)。 * **缺點:** 成本較高,且網路某"線路"或是"節點"故障,就會癱瘓整個網路。可以使用備援線路來處理,但只能避免線路的故障,若是節點故障,依然癱瘓全網。 :::success 常見於光纖網路環境,且採用雙環的架構。 ::: * **網狀(Mesh)網路:** 網路上的每一個節點,都可以找到多條路徑通往某個指定節點。 * **優點:** 因有多路徑,傳輸不容易受阻,具有容錯(Fault Tolerance)功能。 * **缺點:** 架設成本高。 :::warning * 各節點都有與所有其他節點直接相連,稱為完全連結式網狀網路(Fully Connected Mesh Network) * 若存在某些結點沒有直接與所有其他節點直接相連,稱為部分連結式網狀網路(Partially Connected Mesh Network) ::: ### 網路設備 要完成網路的分工,還需要介紹負責居中處理的各類網路設備 * **數據機(Modem):** 俗稱光貓,數據機可以作為本地網絡和Internet之間的橋樑,對數據進行編碼和解碼,是一個將數位訊號調變到類比訊號上進行傳輸,並解調收到的類比訊號為數位訊號的電子裝置。 :::success 一般來說,裝網路寬頻時,寬頻供應商(ex:中華電信)會提供ADSL數據機。 ::: * **網路卡:** 是區域網路中連線計算機和傳輸介質的接口,不僅能實現與區域網路傳輸介質之間的物理連線和電信號匹配,還涉及幀的傳送與接收、幀的封裝與拆封、介質訪問控制、數據的編碼與解碼以及數據快取的功能等。 <center><img src="https://www.easyatm.com.tw/img/2/c26/nBnauM3XxITMyIjNxUTM2UTM0MTM2QDO3EDM0MTNwAzMxAzL1EzL2QzLt92YucmbvRWdo5Cd0FmL0E2LvoDc0RHa.jpg"></center> * **集線器(HUB):** HUB有兩大特性,一個就是廣播,一個就是半雙工。 * **廣播:** 當A電腦要透過HUB送資料給B電腦的時候,A送出來的資料其實連接在這台HUB上的電腦都會收到,但是只有B電腦會將資料收起來,其他電腦則是將封包丟掉。 * **半雙工:** 收資料或送資料不能同時,你一次只能做其中一種。 :::success 當HUB連接非常多電腦時,網路就會變慢。 ::: * **交換器(Switch):** 是把集線器的功能加強在擴充,主要差別在於 Switch 的每個 PORT 連接埠都是個別區隔,每個 PORT 都會自動記憶電腦的 MAC Address,因此交換器會知道每一台電腦發出的要求,並將封包傳送該台電腦,不會出現錯誤。 * **全雙工:** 允許二台設備間同時進行雙向資料傳輸。 * **特殊功能:** 可以切出數個虛擬區域網路(VLAN),以方便網路管理。 <center><img src="https://jackkuo.org/img/HOME_NETWORK_TOPOLOGY.jpg"></center> * **路由器(Router):** 可以將許多網路連結起來,路由器通常最少會有兩個介面,而這兩個介面分別區隔不同的IP網段。例如IP分享器有WAN和LAN兩種介面,區隔WAN的實際IP與LAN的虛擬IP網段。 <center><img src="https://static.tp-link.com/image-20210203091702-2_1612315452316d.png"></center> :::success 決定封包從來源端到目的端所經過的路由路徑( host 到 host 之間的傳輸路徑),這個過程稱為路由 ::: ###### 可參考影片:https://www.youtube.com/watch?v=1z0ULvg_pW8 --- ## 通訊模型 ### 開放系統互連模型(Open System Interconnection Model,OSI) <center><img src="https://i.imgur.com/9DFaVfp.png"></center> 由國際標準化組織(ISO)提出,一個試圖使各種電腦在世界範圍內互連為網路的標準框架,為不同的計算機系統提供了能夠相互通信的標準,確保能夠互相傳送資料。該模型將通訊系統中的資料流劃分為七個層: * 第一層: **實體層(Physical Layer)** ,負責確保原始的資料可在各種物理實體媒體上傳輸。 * ex:同軸電纜、雙絞線、無線電波、集線器、中繼器、光纖等。 * 實體層協定:USB實體層、Bluetooth實體層等。 <center><img src="https://cf-assets.www.cloudflare.com/slt3lc6tev37/3m1ZkcaaBYHoodrEO3brv2/2819c4db294631b5753cd55de0c01bd9/1-physical-layer.svg"></center> * 第二層: **資料連結層(Data Link Layer)** ,將傳輸資料分裝成資料封包格式的規格,檢查資料傳輸錯誤的方法、以及執行資料傳送中的同步化問題、錯誤控制(用CRC碼)、流量控制和鏈路管理等等,確保實體層連結的資料之正確性。 * ex:交換器、橋接器、網路卡等。 * 資料連結層的協定:乙太網(IEEE 802.3)、Wi-Fi(IEEE 802.11)等。 <center><img src="https://www.plixer.com/wp-content/uploads/2018/11/network-layers-3.png.webp"></center> * 第三層: **網路層(Network Layer)** ,管理設備"編址"、跟蹤設備在網絡中的位置,處理網路之間的資料"路由和發送",使兩終端系統能夠互連且決定"最佳路徑",並具有一定的擁塞控制和流量控制的能力。該層使用的最重要通訊協定是 IP,故又稱IP層。 * ex:路由器、Layer 3交換器等。 * 網路層協定:IP (V4、V6)、IPX等。 <center><img src="https://www.plixer.com/wp-content/uploads/2018/11/network-layers-2.png.webp"></center> * 第四層: **傳輸層(Transport Layer)** ,負責在兩個連接裝置之間端對端的資料傳輸及流量控制和錯誤控制,是OSI模型中的關鍵角色。傳輸層確保接收的資料是完整的,若不完整,則會請求重新傳輸,以在接收端執行錯誤控制。 * 主要通訊協定是 TCP( 可靠,在進行通訊時,彼此會互傳確認訊息,同時進行資料處理,確保資料完整無遺漏,像是網頁、信箱、檔案共享 ) 和 UDP( 即時,像是網路電話,速度優於一切 ) 。 <center><img src="https://cf-assets.www.cloudflare.com/slt3lc6tev37/1MGbIKcfXgTjXgW0KE93xK/64b5aa0b8ebfb14d5f5124867be92f94/4-transport-layer.svg"></center> * 第五層: **會議層(Session Layer)** ,負責處理開啟和關閉兩個裝置之間的通訊。通訊開啟時和關閉時當中的時間稱為工作階段。工作階段層可確保工作階段保持足夠長的開啟時間以傳輸所有進行交換的資料,然後立即關閉工作階段以避免浪費資源。 * 運作過程:像召集多人開會(建立連線),然後彼此之間意見交換(資料傳輸),完成後,宣布散會(中斷連線)。 * 溝通議題:使用全雙工模式或半雙工、單工模式?如何發起傳輸?如何結束傳輸?如何設定傳輸參數?...等等 <center><img src="https://www.plixer.com/wp-content/uploads/2018/11/network-layers-1.png.webp"></center> * 第六層: **表現層(Presentation Layer)** ,將資料轉換為應用程式可以接受的形式,以供應用程式層使用。 * 負責編碼(解碼)、加密(解密)和壓縮(解壓縮)資料 <center><img src="https://cf-assets.www.cloudflare.com/slt3lc6tev37/60dPoRIz0Es5TjDDncEp2M/7ad742131addcbe5dc6baa16a93bf189/6-presentation-layer.svg"></center> * 第七層: **應用層(Application Layer)** ,提供為應用軟體而設計的介面,以設定與另一應用軟體之間的通訊,唯一一個直接與來自使用者的資料進行互動的層。 * ex:HTTP(SPDY、HTTP/2)、FTP、DHCP等。 * 服務實例:網頁存取、檔案交換、電子郵件、模擬終端機等。 <center><img src="https://cf-assets.www.cloudflare.com/slt3lc6tev37/koKt5UKczRq47xJsexfBV/c1e1b2ab237063354915d16072157bac/7-application-layer.svg"></center> :::success 第五、六層大多時候被包含進第七層,都是和應用層在一起實現。 ::: #### OSI模型的優點 * 分工合作,責任明確:萬一出了問題,很容易判斷是哪一層沒做好,清楚知道應先改善哪層的工作 * 逐層處理,層層負責:任何一層收到資料時,都可以相信上一層或下一層已經做完它們該做的事,毋需自己操心 * 對等交談:傳送資訊的兩邊,同一層找同一層談,不必擔心其他層的問題。 ###### 參考網址:https://www.cloudflare.com/zh-tw/learning/ddos/glossary/open-systems-interconnection-model-osi/ ###### 參考影片:https://www.youtube.com/watch?v=gxoIrBFfpDU ### 美國國防部模型(Department of Defense Model,DoD) ![](https://i.imgur.com/7pjOWwD.png) DoD模型是TCP/IP協定的網路模型,所以也有人稱之為TCP/IP模型。DoD模型相當於一個OSI模型的精簡版,但Internet並未參考OSI模型,因TCP/IP協定的誕生早於OSI模型。DoD模型只分成四層: * 第一層: **網路存取(連結)層(Network Access (Link) Layer)** ,或是網路介面層(Network Interface),他在主機和網路之間交換數據,負責對硬體編址,並定義用於實際傳輸數據的協定。 * 第二層: **網路互連層(Network Layer)** ,又稱網路層(Internet)。指定了與整個網路對分組進行邏輯傳輸相關的協定,他它負責對主機進行編址——給他們分配IP(網際網路協定)地址,決定資料如何傳送到目的地。 * 第三層: **傳輸層(Transport Layer)** ,又稱為主機對主機層(Host to Host)。負責傳輸過程的流量控制,錯誤處理,資料重送等工作。 * 第四層: **應用層(Application Layer)** ,定義應用程式如何提供服務,讓應用程式能運作在電腦中。 --- ## 網際網路協議套組(Internet Protocol Suite,IPS) 是一個網路通訊模型,以及一整個網路傳輸協定家族,為網際網路的基礎通訊架構。它常被通稱為TCP/IP協定族(TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP。 :::success 因為這個協定家族的兩個核心協議,包括TCP(傳輸控制協定)和IP(網際網路協定),為這個家族中最早通過的標準。 ::: ### 網際網路協定(Internet Protocol,IP) 網路層的主要的協定,提供網際網路上的定址方式,賦予網路裝置唯一的IP位址,使其能連上網,執行傳輸工作。 #### **IP位址** 是網際協定中用於標識傳送或接收資料報的裝置的一串數字。當裝置連接網路,裝置將被分配一個IP位址,用作標識。通過IP位址,裝置間可以互相通訊,如果沒有IP位址,我們將無法知道哪個裝置是傳送方,無法知道哪個是接收方。IP位址有兩個主要功能:**標識裝置**或**網路和定址**。 * **IPv4:** 由32位元二進位陣列成,每8個bits為一組,共4組。常以XXX.XXX.XXX.XXX形式表現,每組XXX代表小於或等於255的10進位數,該表示方法稱為點分十進位。且位址可分為A、B、C、D、E五大類。 ![](https://i.imgur.com/aQYxgF2.png) :::success IPv4的42億個位址最終於2011年2月3日用盡,用NAT網路地址轉換暫時應急 ::: * **網路位址轉換(Network Address Translation, NAT):** 可以改變封包的傳送端IP位址與接收端IP位址,減少真實IP的使用量,也可以將私有IP內部IP改變成真實 IP(外部IP)再傳送到網際網路。 * **公有IP位址(Public address):** 由Inter NIC(Internet Network Information Center 網際網路信息中心)負責。這些IP地址分配給註冊並向Inter NIC提出申請的組織機構,公有IP全球唯一,通過它直接訪問網際網路(直接能上網)。 * **私有IP位址(Private address):** 屬於非註冊地址,專門為組織機構內部使用,說白了,私有IP不能直接上網,但私網IP可以重複。 * **埠口位址轉換(Port Address Translation, PAT):** PAT 是利用埠口位址轉換型的 NAT,也是一般坊間常用的 NAT 設定,它內部與外部位址之間是多對一的關係。即是一個合法 IP 位址可以讓多個內部私有位址共用,之間就是利用埠口對應關係建立,即是『IP 位址 + TCP 埠口』 <center><img src="https://i.imgur.com/clHd9kO.png"></center> :::success 我們平常一般接觸的都是私有網,透過NAT轉成公有IP在網路上傳遞訊息。 ::: * **IPv6:** IPv6二進位制下為128位元長度,以16位元為一組,每組以冒號「:」隔開,可以分為8組,每組以4位十六進制方式表示。位子表示法為xxxx : xxxx : xxxx : xxxx : xxxx : xxxx : xxxx : xxxx,其中每一個 x 都是十六進位值。 * **優點:** 位址空間數量多、傳輸效率優(表頭長度固定,減少運算時間)、安全性高、方便性佳 * **缺點:** 不能跟IPv4互通,所以設備都要更換,短期內無法普及。 #### **網域名稱系統(Domain Name System,DNS)** 它作為將域名和IP位址相互對映的一個分散式資料庫,能夠使人更方便地存取網際網路,就像是網路上的電話簿。當我們輸入網域名稱時,幫我們查詢對應的IP以方便我們去連上網站。 * **網域名稱(Domain Name):** 簡稱域名、網域,是由一串用點分隔的字元組成的網際網路上某一台電腦或電腦組的名稱,用於在資料傳輸時標識電腦的電子方位。域名可以說是一個IP位址的代稱,目的是為了便於記憶後者。 <center><img src="https://wiki.net-chinese.com.tw/sites/wiki.net-chinese.taipei/files/public_images/promote_news/dnintroduction_pic1.png"></center> :::success DNS 解析過程牽涉將主機名稱 (例如 www.example.com) 轉換為便於電腦使用的 IP 位址 (例如 192.168.1.1)。 ::: <center><img src="https://wiki.net-chinese.com.tw/sites/wiki.net-chinese.taipei/files/public_images/promote_sites/LandingPage/URL_and_domain.png"></center> ###### 可參考影片:https://www.youtube.com/watch?v=ZqWb5nNzTf8 #### **MAC Address( Media Access Control Address )** 又被稱為實體地址(Physicial Address),在網路世界中,可以說是網路卡的身分證字號,出廠時就被設定好的,一般情況下是不會去變更他的。MAC位址共48位元(6個位元組),以十六進位表示。 :::info 假設現有一台路由器,含有一個WAN埠及四個LAN埠。它的WAN埠會有一個如61.61.61.61的IP位址,也會有一個如00:0A:02:0B:03:0C的MAC位址。而它的四個LAN埠會各分配到一個例如192.168.1.0/24的IP位址,四個埠各會有一個不同的MAC位址。 ::: ### **位址解析協定 (Address Resolution Protocol,APR)** 是一個通過解析網路層位址來找尋資料鏈路層位址的網路傳輸協定,主要用途就是拿來找到「區域網路」中的另一台電腦用的。簡單來說就是通過IP來定位查詢相對應的MAC位址。 * **RAPR:** 功能是由自己的 MAC Address 詢問自己應有的 IP Address,大多應用在動態 IP 設定使用,回應者是 RARP Server。 ### **動態主機設定協定(Dynamic Host Configuration Protocol,DHCP)** 是一個區域網路的網路協定,能使網路管理員能夠集中管理和自動分配IP網路位址,使用UDP協定工作。主要有兩個用途: * 給內部網路或網路服務供應商自動分配IP位址給用戶 * 給內部網路管理員作為對所有電腦作中央管理的手段 ### **網際網路控制訊息協定( Internet Control Message Protocol,ICMP )** 它用於網際網路協定(IP)中傳送控制訊息,提供可能發生在通訊環境中的各種問題回饋。通過這些資訊,使管理者可以對所發生的問題作出診斷,然後採取適當的措施解決。 ![](https://i.imgur.com/mwbeYGs.png) ### 傳輸控制協定(Transmission Control Protocol,TCP) 是一種連接導向的、可靠的、基於位元組流的"傳輸層"通信協定,負責在網際網路將資料從設備傳輸到伺服器,大部分的網路協定都是建立在TCP上面。TCP協定的執行可劃分為三個階段:連接建立(三次握手)、資料傳送和連接終止(四次揮手)。 * **特點:** 透過建立連線導向、資料確認與重送、流量控制,提供可靠性的資料傳輸。 * **優點:** 提供錯誤檢查和恢復機制、可靠穩定、支持多種路由協議 * **缺點:** 提供的速度比UDP慢、占用資源高 :::success 用在可靠性比時間更重要的應用程序:電子郵件(POP、SMTP 和 IMAP)、安全外殼 (SSH)、網頁瀏覽(HTTP 和 HTTPS)、文件傳輸協議 (FTP)等。 ::: ### 使用者資料包協定(User Datagram Protocol,UDP) 是一種無連接協議,也就是說他只負責資料的傳送,不管中間是否有出差錯也不管是否有安全抵達,沒有錯誤檢測和糾正服務。取而代之的是,無論是否收到數據包,都會不斷地將數據包發送給接收方。這允許設備以更少的開銷更快地相互通信。 * **特色:** 簡易快速、減少電腦資源的耗損、執行即時性的應用程式、傳遞"非"重要資料。 :::success 用在對時間有較高要求的應用程式:域名系統 (DNS)、線上游戲、VPN 隧道、普通文件傳輸協議 (TFTP)等。 ::: ![](https://i.imgur.com/UiqcFYt.png) ###### 可參考影片: https://www.youtube.com/watch?v=Iuvjwrm_O5g ### 超文本傳輸協定(HyperText Transfer Protocol,HTTP) 是一種用於分佈式、協作式和超媒體訊息系統的應用層協定。HTTP是全球資訊網的數據通信的基礎,是一個客戶端(使用者)和伺服器端(網站)之間請求和應答的標準,實際上是藉由 TCP作為資料的傳輸方式。 * **明文傳輸**: 這個特性非常可怕,這代表在輸入信用卡帳號密碼時,如果有中間人監聽,則信用卡的資料就會外流出去。 * **指令請求:** 定義了八種方法(也叫「動作」)來以不同方式操作指定的資源:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT。 * **狀態碼:** 有HTTP回應的第一行都是狀態行,依次是當前HTTP版本號,3位數字組成的狀態代碼,以及描述狀態的短語,彼此由空格分隔。 ![](https://i.imgur.com/VdFnR76.png) #### 超文本傳輸安全協定(HyperText Transfer Protocol Secure,HTTPS) HTTPS 透過 HTTP 進行通訊,但通訊過程使用 SSL/TLS 進行加密,藉由類似於前述的加密方式,在 HTTP 之上定義了相對安全的資料傳輸方法。由於非對稱加密的運算量較高,傳遞回應較慢;實際的架構上,會透過公開金鑰加密傳遞出共用的金鑰,再透過共用金鑰加密進行後續的傳遞,兼顧了安全性及傳遞速度。 ###### 可參考影片:https://www.youtube.com/watch?v=-tRp1IOlKkI #### 統一資源定位符(Uniform Resource Locator,URL) 可以稱為統一資源定位器、定位位址、URL位址,俗稱網頁位址,簡稱網址,是網際網路上標準的資源的位址(Address),如同在網路上的門牌。 * **完整格式:** [協定類型]://[存取資源需要的憑證資訊]@[伺服器位址]:[埠號]/[資源層級UNIX檔案路徑][檔名]?[查詢]#[片段ID] * **標準格式:** [協定類型]://[伺服器位址]:[埠號]/[資源層級UNIX檔案路徑][檔名]?[查詢]#[片段ID] ![](https://i.imgur.com/3gbjb7u.png) #### 全球資訊網(World Wide Web,WWW) 是一套建構於網際網路(Internet)之上,藉由超連結(hyperlink)將分散於全球各地的圖、文、影、音等多媒體資料加以整合應用的資訊系統。全球資訊網並不等同網際網路,全球資訊網只是網際網路所能提供的服務其中之一,是靠著網際網路運行的一項服務。 * WWW 由四個元件組成:瀏覽器(Browser)、伺服器程式(HTTPD)、格式化文件(HTML)及通訊協定(HTTP)。