---
# System prepended metadata

title: 網路是怎樣連接的(一) 網路是甚麼
tags: [計算機網路]

---

---
creator: Zach
tags: 計算機網路
created: 2021-08-24 
---
# 網路是怎樣連接的(一) 網路是甚麼
## 1. 思考重點
1. 網路是怎樣連接起來的?
2. 網路可以解決甚麼問題?
3. 網路的本質是什麼?

## 2. 核心知識
![](https://i.imgur.com/ub7DWnx.png)
<center> 計算機網路概論核心知識點 </center>

## 3. 甚麼是網路
### 3.1. 網路是一種多方交互的網狀結構
我們可以先想想Web(網)的定義是甚麼?人際關係網、交通網路、蜘蛛網?其實說穿了符合以下條件的就可以成為網狀結構:
1. 擁有兩個以上的成員，互相獨立
2. 兩個成員之間至少擁有一條對外聯絡道路
3. 成員之間均可以透過連絡道路訪問到彼此

也就是網路的結構由*Node(節點)* 與 *Link(鏈接)* 組成，我們試著把視角切換到計算機領域，節點設定成電腦上的應用程式，而鏈接則可以看成網路的連接設備，例如光纖、路由器、交換機等，這個就是計算機網路的雛形

接者我們可以把諸多小型網路結合更大的網路，這就讓網路的規模又更上一層，例如我們把多個社區內的家用網路結合成一個區域網路，這種組合模式讓使用者可以訪問到更多用戶，網路的網路形成更大格局的現象就是俗稱的*網際網路 * 或 *互聯網*[^1]，下圖是一個簡單的網路溝通樣貌:
<br/>
![](https://i.imgur.com/kZfAovp.png)
<center> 客戶端向服務器請求資源過程 </center> 
<br/>

在圖中使用者處於不同網域中，他們代表節點也可以表示為 *host(端系統)* 以及*end(端系統)* ，這些端系統可以是電腦、手機、平板，以及近幾年火熱的物聯網設備(例如Apple Watch)只要設備本身具要連網傳輸與發送功能我們都可以把他們定位程端系統

這些端系統透過一個家用路由器或公用WiFi接入網路，再透過路由器與交換機[^2]交互查找最終到達目的地，整個訊息溝通的過程均遵守特定的通訊協定

待接收方接收並解析完消息封包後，回應一個消息封包給發送方，完成溝通的動作，**其實網路就是不斷實現這種溝通模式的通稱**

[^1]: 網際網路的英文為internet，而所謂的Internet(大寫開頭)，泛指運行在TCP/IP協議架構之上的網路設備，在全球區域內互相連線的超大型網際網路，又可以稱為英特網
[^2]: 路由器的作用是查找下一步該跳轉的IP地址，而交換機則是查詢網卡地址，尋找主機，雙方所使用到的分層有所不同，後面章節會提到
### 3.2. 軟體層面的定義
在軟體的視角，網路可以這樣定義:
>分布式的應用進程與使用者直接接觸，使用了他與他之下的所有服務，目的是為了與另一個分布式應用進程達成訊息交替與應用。網路的每一個層次都是運用他之下的服務結合該層特色為上層提供更完整服務。

### 3.3. 硬體層面的定義
在硬體的視角，網路可以這樣定義:
>網路是由終端設備、傳輸媒介與多種轉發設備組成，目的是將類比資訊轉換成高低電位，並藉由傳輸設備將訊息流轉發至目標終端，再將數位訊號轉換成使用者能夠理解的類比訊號。
### 3.4. 計算機網路
其實計算機網路是網際網路的一個子集，也就是說我們把焦點關注在計算機之間常用的通訊協定以及運行在計算機上的應用進程之間的溝通與傳輸方式，常見的計算機網路會涉及到Web應用、IP路由查找、交換機、socket等應用
## 4. 通訊協定
甚麼是通訊協定?通訊協定是**一種對等雙方約定俗成的溝通方式**，說大白話就是我們兩個都可以聽得懂的表達方式，你可以想像你在路上逢人就講法語，應該大部分人都聽不懂你在講什麼吧... 計算機網路也是一樣，在不同層次[^3]之間都存在著多種不同的溝通方式，是要先確認對方身分在進行溝通，還是一上來就要求對方傳遞重要消息，這種狀況可以說是國情不同也不為過吧
<br/>
![](https://i.imgur.com/Pg5kqIv.png)
<center> 雙方共同遵守的通訊方式才能正確交換資訊 </center>
<br/>

[^3]: 這裡泛指TCP/IP分層
## 5. 網際網路整體架構
我們接下來把格局再拉大，既然客戶端的目的是向服務器請求服務，那麼整體的流程是怎樣達成的呢?
首先必須把整體架構分層3個層次來看，分別是:
1. 網路邊緣
2. 接入網
3. 網路核心

其實網路的核心理念就是*client-sever架構*，也就是說**客戶端項服務端請求服務，服務端依照需求滿足客戶端**，這種概念可以體現在網路的交互應用中，而為了滿足所謂的CS架構，我們必須要處理消息的主體與服務類型，這就是網路想解決的問題

下圖把客戶端項服務器請求資料的整個流程概括出來，你也可以思考如過今天我在瀏覽器的網址欄輸入URL以後會發生甚麼事，這個問題可以用以下的流程圖當成一個參考

![](https://i.imgur.com/zwfykin.png)
<center>網路的整體結構</center>
<br/>

### 5.1. 客戶端
客戶端可以是你的主機、手機、筆電等任何可以發請請求的連網設備，又可以稱為*host*或著是*Node(端系統)*。我們透過運行在主機上的應用程式，例如網路瀏覽器等直接與使用者進行互動，透過應用層的通訊協定向下層提供服務內容，最後把消息封裝成*packet(封包)* 然後利用網路的接線設備將線路接入區域路由(例如你家的WiFi分享器)

### 5.2. 接入網
接入網顧名思義是將本機的類比消息轉算成數位消息後再透過接線傳入本地電信營運商的一個步驟，簡單來說就是**透過物理媒介，將端系統連上第一個路由的網路[^4]** ，例如透過雙絞銅線實現的ADSL、乙太網等，以及無線的WiFi

### 5.3. 網路核心
網路核心代表數據封包經過接入網進入的骨幹網路，其中封包會在電信業者提供的區域路由中不斷地跳轉，最終達到目的地，因此網路核心的重點觀念會是IP的查找以及封包的傳輸效率、延遲、吞吐量等問題[^5]
#### 5.3.1. ISP
網際網路服務提供商，就是提供網路服務的電信業者，例如中華電信。我們可以把ISP想像成一個區域的電話薄，可以依照這個電話薄找到該區域的電話號碼，這個範圍可能是一個里，但是假如我要查找別的縣市的目標號碼，我們需要查找縣市級別的電話簿，然後再依照區域縮小到當地里級別的電話薄完成查找，相對的全球區域的查找就要使用到國家級別的電話簿

ISP的概念也是一樣，是有分等級的，更高級別的ISP好處是可以跨更大的區域，但是相對收取更高額的費用會使使用者怯步，因此網路在進行IP查找時會盡可能地使用低等級的ISP，達到成本最佳化。從ISP的概念是不是更可以理解一開始的那句話**網際網路就是網路的網路**
#### 5.3.2. 交換機制
網際網路中使用的交換機制主要有兩種，目前多以分組交換為主:
* 分組交換
* 電路交換

**分組交換的特色是共用與高效**，優點是多個節點可以共用一條通訊鏈路作為封包交換的渠道，也就是一條100MB的數據鏈路在使用通暢時可以達到100MB，只要該條鏈路的傳輸速度達於封包進來的速度，那麼多個節點發布消息時，該鏈路只要按照先後順序即可即時的處理這些消息封包
但他的缺點是假如封包大小過大或鏈路處理速度較慢造成數據處理的延遲[^6]，例如同一時段假如有多名使用者正在使用，便需要排隊等待前面的使用者完成封包的處理

**電路交換的特色是穩定**，則是將一條傳輸的鏈路等分給多個使用者使用，也就是假設一條100MB的傳輸鏈路分給10個使用者，每個人將會分配到10MB，不管有端少使用者正在使用這個數據鏈路，傳輸速度依然是妥妥的10MB
但電路交換在使用前需要先進行網路的撥接才能進行連網，造成即時性不佳，另外使用者也沒辦法完全享受傳輸的極致效能

以餐廳來作為比喻，**分組交換就像是知名連鎖店**，只要店內還有座位或者吃完離開人數大於排隊人數，那麼我們就可以隨時想吃就吃，但是有可能發生客滿的狀況。**電路交換就像是很少人知道的私房餐廳**，一般不接收普通顧客，需要額外電話預約，且對一天的人數限制有嚴格的要求，但是一旦定位成功就一定保證能吃到

### 5.4. 服務端
**服務器也是屬於端節點，網路邊緣的一份子。** 服務端在應用層上運行的應用程序會依照客戶端的請求，將資料庫中的數據返回給客戶端。服務端一般會配置防火牆，讓使用者沒辦法完全得知服務端消息，同時也管控請求消息是否安全，服務端緩存的功能則是保存服務端返回給客戶端的數據，要是下一次客戶端再請求相同數據，則直接由緩存服務端返回即可


[^4]: 這裡泛指edge router(邊緣路由器)是封包會接觸的一連串路由器中的第一個
[^5]:這部分會在後續章節中更新
[^6]:封包的傳輸效率將會再深入理解篇介紹

相關文章: [計算機網路概述(二) 網路分層架構](https://hackmd.io/@Zachlin66/S1u7CR6Zt)



