--- tags: 1092, lsa --- # Week 03(2021/03/11) - Book mode https://hackmd.io/@ncnu-opensource/book [TOC] ## 網路架構 ### OSI 七層 - 太複雜惹,通常用在理論的部分 - physical layer - data link - data frame - [mac address](https://zh.wikipedia.org/wiki/MAC%E5%9C%B0%E5%9D%80) - 用來確認網路位址 - 每個網卡都有一個 - `ip link show` : 看自己的 mac address - network layer - 將ip 加到加到封包 - 決定封包路徑 - ipv4 & ipv6 - class A/B/C/D/E - `ifconfig` - 子網路遮罩 - 判斷網路是否在同一網域 - 詳情請看上學期共筆 ^_^ - ICMP - 包含封包裡面 - 回報錯誤訊息跟分析路由 - ex : ttl (time to live) - 每轉發一次 ttl - 1 - if ttl == 0: 傳輸錯誤(逾時) - `traceroute` 實做方式 - 發icmp封包 ttl 為 1...n(n = 主機經過節點數目) - 如果 網速很慢可以看看網路速度哪裡最慢 - transport layer - tcp - 三向交握(重複交談直到另一方有回應) - 慢啟動:一開始的傳輸資料速度較慢 - udp(射後不理) - session layer - 負責建立網路連線 & 保持網路連線 - presentation layer - ssl -> 現在叫 TLS - application layer - HTTP - 1.0: - 預設關閉 - 只能保持一個連線 - 因為慢啟動, so 傳輸速度不高 - 1.1: - 預設開啟 - keep alive : 保持與伺服器的聯繫,不用每次重建 - 2.0: - 保持開著,速度不會掉 ### TCP/IP 五層(四層) - application layer - 輸入網址會發生麼事哩 1. 檢查瀏覽器是否由瀏覽過,有的會就用暫存,不然就往下做 2. etc/hosts 3. udp 53 port 4. DNS - `nslookup` - `dig` - `traceroute` 5. 透過 http 解析原本的網站內容 - `GET 網址 HTTP/1.0` - transport layer - 如果是 HTTPS 會在這邊加解密 - network layer - linkkk - 包上 MAC - 轉換成位元組 - `arp` - 轉換成 實體ip ##### 偷偷補充個 || Layer |中文| 資料 | 設備名稱 | 負責功能 | 協定 | 例子 | |-| --- |---|---| ---- |---| --- |---| |7| Application |應用層| message || 定義介面給應用程式 | HTTP FTP SMTP DHCP POP3|網路瀏覽器(IE、Firefox)、電子郵件、線上遊戲、即時通訊(MSN Messenger、ICQ)等| |6| Presentation |表現層|message || 轉成網路的標準格式 加解密 加解壓縮 |SSL|將ASCII編碼轉成應用層可以使用的資料,或是處理圖片及其他多媒體檔案,如JPGE圖片檔或MIDI音效檔。| |5| Session |會談層| message|| 同步控制(群播) 網路建立連線的確認 |ADSP SOCKS NetBIOS |NetBIOS names-檔案及列印分享(網路上的芳鄰)| |4| Transport |傳送層(TCP層)| segment| |end-to-end 流量控制 資料完整偵測 | TCP UDP || |3| Network |網路層(IP層)|packet|router |決定`route`路徑 header格式偵測 | IP IPX ICMP|| |2| Data-Link |資料鏈結層| frame| switch | point-to-point 壅塞控制 資料完整偵測 |有線-802.3 無線-802.11|| |1| Physical |實體層|bits | hub repeater |把`位元串`傳出去||| google BBR : 很方便的酷東西 [Private IP](https://zh.wikipedia.org/wiki/%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C) ### 光纖網路線 - 是由很多玻璃或塑膠製的纖維組成,用全內反射原理來傳導光線。 - [更多詳情](https://hackmd.io/@ncnu-opensource/book/%2FgbyngS7lRzutIpBibjyIjQ?type=book#%E5%85%89%E7%BA%96%E7%B6%B2%E8%B7%AF%E7%B7%9A) ### POE (Power Over Ethernet) - 讓網路線可以**供電**到裝置的技術 - [更多詳情](https://hackmd.io/@ncnu-opensource/book/%2FgbyngS7lRzutIpBibjyIjQ?type=book#%E7%84%A1%E7%B7%9A%E7%B6%B2%E8%B7%AF) ### 為什麼 SNMP 要用 UDP ? :::spoiler 解答 如果 server 壞掉成功傳送的機率 50%,用 TCP 的話會因為三向交握的關係導致連線一直無法成功,UDP 會直接將封包丟過去,成功的機率較高。 ::: ### BGP (邊界匝道器協定) - 有一台專屬的 switch 可以幫你把封包傳送到某個特定的目的地 - [更多詳情](https://hackmd.io/@ncnu-opensource/book/%2FgbyngS7lRzutIpBibjyIjQ?type=book#Anycast) ### 流量控制 - SHAPING(限制 ) - Leaky Bucket - 輸入速率可以變化但輸出速率不變 - Token Bucket - Bucket 滿了就不在放封包 - SCHEDULING(排程) - SFQ - 多個動態分配的 queues 組成﹐一個 queue 負責一個 conversation - TBF - 一個緩衝區 (bucket) 構成,存放 tokens - 僅在有足夠的 token 可用時才發送封包 - CBQ - 網路排程的一種排隊規則 - HTB - 保證每個類別的頻寬,但也允許特定的類別可以突破頻寬上限,佔用別的類的頻寬 - POLICING(策略) - DROPPING(丟棄) - [更多詳情](https://hackmd.io/gbyngS7lRzutIpBibjyIjQ#SHAPING%EF%BC%88%E9%99%90%E5%88%B6)