---
# System prepended metadata

title: NTCU網際網路期中考前
tags: [學業共筆]

---

## 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
