## Network Core ### Store and forward * Forwarding table * Rotuing protocols * package switching ![](https://hackmd.io/_uploads/r14jYuXMa.png) ### Total nodal delay * Nodal processing delay * Queuing delay * Transmission delay * Propogation delay **End-to-end Delay** ![](https://hackmd.io/_uploads/By0go_QMT.png) ## Protocol layer ### Aplication layer protocol * HTTP(80) * SMTP(25) - 傳送和接收電子郵件的資訊 * FTP(20,21) - 用戶端和伺服器間傳輸檔案 * DNS(53) - 網域名稱轉換為IP地址 ### Cyber attack(網路攻擊) * Malware(惡意軟體) * Botnet(殭屍網路) * Self-repilcating(蟯蟲) * DOS(阻斷服務攻擊) * DDOS(分散式阻斷服務攻擊) * Packet sniffing - 讀取網路封包 * IP spoofing - 假冒他人IP ### Network application Architectures * Clinet server architecture * <a style="color:orange">P2P architetures(對等網路)</a> <a style="color:orange">**P2P architetures(對等網路)**</a> * Minimal reliance on dedicated server * Direct communication between peers * Self scalability(擴展性) 對等式網路(英語:peer-to-peer, 簡稱P2P),又稱對等技術,是去中心化、依靠使用者群(peers)交換資訊的網際網路體系,它的作用在於,減低以往網路傳輸中的節點,以降低資料遺失的風險。 ![](https://hackmd.io/_uploads/Skf98tmza.png) 與有中心伺服器的中央網路系統不同,對等網路的每個使用者端既是一個節點,也有伺服器的功能,任何一個節點無法直接找到其他節點,必須依靠其戶群進行資訊交流。 <h3 style="color:orange">API && socket</h3> socket是一種作業系統提供的行程間通訊機制 兩個應用程序之間的聯絡則是透過Socket,透過Socket電腦可以配合不同的方法完成不同的傳輸工作 在伺服器端需要建立兩個Socket,一個用來監聽客戶所傳過來的訊息,另外一個用來回傳訊息給客戶 客戶端方面則需要一個Socket來傳送客戶所要傳送的訊息 在作業系統中,通常會為應用程式提供一組應用程式介面(API),稱為插座介面(英語:socket API)。應用程式可以通過插座介面,來使用網路插座,以進行資料交換 在插座介面中,以IP位址及通訊埠組成插座位址(socket address)。遠端的插座位址,以及原生的插座位址完成連線,之後就可以彼此交換資料。 ![](https://hackmd.io/_uploads/SkAci8SMT.png) > 圖片來源:https://pws.niu.edu.tw/~ttlee/os.101.1/day/socket/ ### TCP && UDP <a style="color:orange">**TCP**</a> * Connection oriented Service - 三方交握 * Reliable data transfer service(確保資料接收) - 確保資料順序的正確性 * Congestion control mechanism(壅塞管控) **三方交握流程** ![](https://hackmd.io/_uploads/BkKN8c7za.png) **UDP** * Connection less * Unreliable data transfer service * No congestion control ## HTTP ### Persistent connection && Non-persistent connection **Non-persistent connection** * 每個request和response是根據不同的TCP連線傳送的 **Persistent connection** * 每個request和response是根據同一個TCP連線傳送的 ### Proxy server Proxy Server,會把大家常常看的網頁資料暫存在一個位置,這個位置通常機器設備會很好,頻寬會很大,所以讀者讀取的速度就會很快。 瀏覽器會先向DNS要ip,然後找到ip後,會先向proxy server 查詢是否有這個網站的資料,如果有的話,Proxy Server 就直接把內容傳給了使用者 ![](https://hackmd.io/_uploads/SJrsV_Qzp.png) ### HTTP/1.1 && HTTP/2 **HPPT/1.1** * Presistent connection - 允許server和clinet使用同一個TCP connection傳送封包 **HTTP/2** * Framing - 在一個TCP connection中,藉由將原本的封包內容,拆成數塊較小的frame並一次傳送多個給目標 * Message priortization - 對於每個request和response設定不同的優先度(重要的資料可以先傳) * Push - 對於一個request,server可以傳送多個response