# Nodejs 開發者所需要知道的 Network Layer 概念

## 簡介

本文將會介紹兩大要點

1. 資料在網路傳輸時，其底層資料傳輸概念
2. Nodejs 開發者該關注的部份有哪些

## Network Layer

前一篇 [基礎 Network 概念與 Nodejs http module範例](/network-nodejs-http-module) 簡介了網路基礎的架構

以下就網路資料傳輸時的資料傳輸格式做個基礎簡介

由網路架構所知到，網路資料需要從電腦資料依序透過 Switch 接著 Router 到電纜等等不同設施間傳遞。

而為了方便傳輸，因此大致上規範出以下幾個標準作為網路資料分層

每個層集傳輸的資料單位與內容資訊不同

### 資料解析與組合流程

![](https://i.imgur.com/f2LzzKh.png)

藍色箭頭方向代表從電腦傳輸資料逐一被傳訊的 Router 解析訊號的過程

綠色箭頭方向代表從接收的 Router 逐一還原出電腦要送到資料完整資料的過程

### 資料傳輸單位

![](https://i.imgur.com/42dqCdK.png)

Phyiscal Layer 傳輸單位是位元，是傳輸線路上的訊號

Data Link Layer 傳輸單位是 Frame - 由多個位元組成，是 Switch 間所傳輸的基礎單位

Network Layer 傳輸單位是 Packet(封包) - 由多個 Frame 所組成，是 Router 間所傳輸的基礎單位

Transfer Layer 傳輸單位是 Segment - 由多個 Packet 所組成，是電腦裡傳輸的基礎單位

Application Layer 傳輸單位是 Data - 一到多個 Segement 所組成，是由電腦軟體傳輸的格式自行決定。

### 資料傳輸資訊

![](https://i.imgur.com/22535Kq.png)

Phyiscal Layer 傳輸的資訊是 Signal

Data Link Layer 傳輸的資訊是 Mac Address

Network Layer 傳輸的資訊是 IP Address 與 Path

Transfer Layer 傳輸的資訊是 End-To-End Connections 主要有 TCP 與 UDP 兩種傳輸協定

Application Layer 傳輸的資訊主要是應用程式資定的格式


## Nodejs 開發者所需要關注的 Layer

![](https://i.imgur.com/yf7qN7n.png)

對於 Nodejs 開發者所需要關注的網路格式層只需要關注 Application Layer

因為主要都是在應用層對資料做存取

主要也是針對應用層做設計。
