---
tags: OSI (Open System Interconnection Model)
---
# 資訊網路專題期末考內容,OSI七層
## 第7層,應用層
此處最小單位為data
專為應用軟體所設的層,以決定應用軟體所使用的通訊協定,例:HTTPS、FTP、SMTP等
### port的概念
一台PC,使用者同時開啟多個使用網路服務的應用程式(例:同時開啟LOL遊戲以及SPOTIFY服務),電腦是怎麼知道哪個封包是哪個應用程式的?
每個需要網路服務的程式,在開啟的時候會佔住一個"port",每個port只能單獨給一個應用程式使用,封包內會寫到來源以及目的地所使用的port number,即可避免上述問題。
※port number數字較小的大多都是server的port,像是http用80 port,ssh用22 port。
### HTTP的POST和GET概念
GET的作法是將資料夾在網址中送出,像是拍賣網站的頁碼數或是google search送出關鍵字的方法,此方法除了有安全問題以外,夾帶資料長度也有限
POST則與GET作法不同,其會放在封包內的某處
※PUT
### DNS(Domain Name System) Server
做為一般使用者,輸入網址之後,電腦須將其轉換成IP位置才能繼續。於是user會將網址傳給DNS Server,拿到該Domain Name所對應的IP位置後繼續下面的動作
#### DNS Server運作模式:recursive and iterative
recursive: DNS Server若是沒有此Domain Name的資料,Server會自行詢問其他DNS Server並且會找到IP位置候傳回去給使用者
iterative: DNS Server若是沒有此Domain Name的資料,Server會回給User可能知道此Domain Name的DNS Server
## 第6層,表達層
## 第5層,會議層
## 第4層,傳輸層
此處最小單位為segment
主要工作:
* segmenting切割:為了使程式能夠一起使用網路資源,故須將資料分開傳遞
* identifying確認:確認資料傳輸正確
* tracking追蹤:追蹤溝通
* reassembling重組:切割並將資料傳輸給使用者後,使用者仍需要將其重組
加表頭的地方,例如TCP協定常用的SYN、ACK、FIN以及Window Size等
### TCP協定
TCP為較可靠的傳輸協定,因為它有封包編號等機制,以維持其可靠性
#### 三方交握
* user→→→→→SYN,SEQ=0→→→→→server
* user←←←SYN+ACK,SEQ=0←←←server
* user→→→→→ACK,SEQ=1→→→→server
* user←←←←←ACK,SEQ=1←←←←server
* user→→→→→ACK,SEQ=2→→→→server
* user←←←←←ACK,SEQ=2←←←←server
.
.
.
#### TCP常見表頭
* SYN:為1表示這是連接請求或是連接接受請求,用於建立連接和使順序號同步
* ACK:為1表示確認號欄位有效
* SEQ:序號,client會與server說自己需要編號幾的封包,server收到要求後則會將該編號封包傳出
* RST:為1表示出現嚴重差錯。可能需要重新建立TCP連接。還可以用於拒絕非法的header和拒絕連接請求
* FIN:為1表示傳送方沒有資料要傳輸了,要求釋放連接
* Window Size:用於限定此連線流量的大小
#### TCP可靠性優於UDP的原因
因為多了以下東西
sequence number:封包序號
acknowledge number:用於回覆哪些編號的封包已收到,尚未收到哪些封包等
header:包含SYN、ACK、FIN等
#### 那為什麼還要UDP
使用於需要速度但可靠性沒那麼重要的時候,像是網路電話等
## 第三層,網路層
此處最小單位為packet
主要工作:
* addressing
* routing路由:將封包送給下一個router
### IP address、Net Mask and Default Gateway
#### IP Address
作用有兩個
一為標示主機(addressing),提供主機在網路中的位置
二為網路尋址(routing),在整個路由網路間運作的機制中佔很重要角色
#### Net Mask(子網路遮罩)
標示出網路位址與主機位置
假設IP為192.168.100.1,子網路為255.255.255.0
網路位置計算方式為192.168.100.1與255.255.255.0做==AND==運算,可得到192.168.100.0
主機位置計算方式為192.168.100.1與255.255.255.0做==NOT==運算,可得到0.0.0.1
#### Default Gateway(預設閘道)
本網路預設的路由器,當目的地不在這個子網路裡面(自己的網路位置與目的地的網路位置不同),就要將封包交給預設閘道器,進入路由網路
### 路由協定
#### Distance and Vector v.s Link State

#### 路由表收斂
即使路由器間繼續交換資料,也不影響路由表,即趨於穩定
## 第二層,資料連結層
此處最小單位為frame
主要工作:
* framing:根據傳輸的方式(乙太網路、wifi或衛星等等)給予不同表頭包裝
* MAC(Media Access Control):取得網路使用權以及管理
### ARP(Address Resolution Protocol)
封包要傳給下一個接收者,不論是預設閘道器、路由器或是到接收者,都需要知道其MAC位置。
每台電腦都有一個ARP Table,紀錄著IP位置與對應的MAC位置。
但若是IP有更動,或是其他原因,導致ARP Table沒有接收者IP的MAC位置,就要使用廣播,詢問接收者的MAC位置。
※由於是使用廣播知道接收者IP,除非client端和server端在同個子網路,不然client是不知道server端的MAC位置,至少不是透過ARP協定知道。(此處可能有誤不確定)
### CSMA/CA以及CSMA/CD
CSMA/CD是傳統乙太網路的MAC機制,含一個環境,兩個運作方式:
CS(Carrier Sense):偵測有無訊號
MA(Mutiple Access):多人要求在單一通道內存取
CD(Collision Detection):碰撞偵測
-----
CSMA/CA是wifi的MAC機制,CSMA與上述相同
CA(Collision Avoidence):碰撞預防
## 第一層,實體層
此處最小單位為bit
主要工作:
* encoding
* signal
### 4B/5B
### Unshielded Twisted Pairs(UTP)
因為有參考基準(其中一條絞線),使得其較不怕受到干擾
## source
https://docs.google.com/spreadsheets/d/1mu3M6CqnQsWTfRQTBYy0o8VvFrgGyLr7aNRfKTfOacw/edit?usp=drivesdk
https://www.evernote.com/shard/s285/sh/b2ee51a1-ca31-4ee3-b69f-02a3cccabdd7/79b65c2fd09fcc3c8322810f6563307b
https://zh.wikipedia.org/wiki/OSI%E6%A8%A1%E5%9E%8B
https://medium.com/%E5%B0%8F%E5%B0%8F%E8%AA%AA%E6%9B%B8%E4%BA%BA/%E7%B6%B2%E9%A0%81get-%E8%88%87-post-%E5%B7%AE%E7%95%B0-%E7%A7%91%E6%99%AE%E5%A3%B9%E9%BB%9E%E9%80%9A-94cbaa666fdb
https://zh.wikipedia.org/wiki/IP%E5%9C%B0%E5%9D%80
https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AE
https://zh.wikipedia.org/wiki/%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AE
https://zh.wikipedia.org/wiki/%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90%E5%8D%8F%E8%AE%AE