網路基礎概念

2020-05-04
other

網路基礎概念

  • Client & Server
  • TCP(Transmission Control Protocol)
  • HTTP (Hypertext Transfer Protocol)

    Client & Server

    一般來說傳輸資料的兩端會分為 客戶端 ( Client ) 跟 伺服器端 ( Server )
  • Client: 以網頁來說就是你的瀏覽器、電腦,主要會發送 「 請求 request 」到 Server 端
  • Server: 收到 request 開始處理資料,完成後會回傳 「回應 response 」到 Client 端

以下為簡易程序:

  • 瀏覽器發送 HTTP request 到 Server
    • request 包含 head 跟 body
  • Server 回傳 response 到瀏覽器
    • response 包含 head 跟 body
  • 瀏覽器進行解析 html、css、js、圖片檔案…等等,渲染成可讀性高的網頁內容

再詳細一點的request(但還是很簡易):

  1. 一開始先發送 request 到副檔名為 .html 的 url
  2. DNS(域名系統) 解析成 IP 位置
  3. Server 接收到 request、 回傳 response
  4. 瀏覽器解析 html 檔案
  5. 根據 html 內容,一但發現有 CSS、JS、圖片檔案,再發送各檔案的 request(這裡就1.2.3步驟那邊)
  6. 發送完包含在 html 所有資源的 request
  7. 開始下載資源 ( CSS、JS、圖片檔 )
  8. 進行渲染網頁

TCP(Transmission Control Protocol)

三項交握(Three-way handshake)
舉個A(Client),B(Server)互相傳遞資料的例子:

  1. A先傳給B資料 — A傳送功能正常
  2. B接收到資料 — B接收功能正常
  3. B回傳A資料(告知已收到) — B傳送功能正常
  4. A接收到資料(知道B接收功能正常) — A接收功能正常
  5. A再回傳資料給B,讓B知道他傳送的資料已收到
  6. B接收到資料(知道A接收功能正常) — B傳送功能正常

A–>B, B–>A, A–>B
以上為三次的傳遞動作,這樣A,B都知道雙方的接收跟傳送功能都正常,就可以正常互傳遞資料,不過次數不是一定,也可以三次以上,但三次算最低限度

TCP為通訊協定,必須制定一些協定,才可以保證資料傳送接收正常

網路分層:

1
2
3
- 保證收發正常(TCP) --- 如何傳送資料	
- 傳送者/接收者(IP:Internet Protocol) --- 收發地址
- 傳送資料(實體電纜) --- 實際傳送資料

HTTP (Hypertext Transfer Protocol)

應用在HTTP的網路分層:

這裡加上了HTTP協定

1
2
3
4
- 訂機票(HTTP) --- 實際應用
- 保證收發正常(TCP) --- 如何傳送資料
- 傳送者/接收者(IP:Internet Protocol) --- 收發地址
- 傳送資料(實體電纜) --- 實際傳送資料

HTTP通訊協議:

  • 標準化內容格式
  • html分為header & body
  • 狀態碼(status code)顯示傳送接收結果
    • 200成功,3XX重新導向,4XX客戶端錯誤,5XX伺服器端錯誤
  • 請求資料方法(HTTP method)
    • GET接收,POST傳送,DELETE刪除,PUT更新(覆蓋資料),PATCH更新(針對現有資料更新)

Port(連線埠): 服務代碼

  • 傳送到指定的Server IP : Port ,才能使用那個網頁的服務
    • EX. server IP:80 — HTTP伺服器服務代碼(瀏覽器就是80,默認碼)
    • EX. server IP:21 — FTP伺服器服務代碼

我們把上面的HTTP網路再分詳細一點

網路分層:

1
2
3
4
- 訂機票(HTTP)  /  訂食物(FTP)   --- 實際應用
- 保證收發正常(TCP) --- 如何傳送資料
- 傳送者/接收者(IP:Internet Protocol) --- 收發地址
- 傳送資料(實體電纜) --- 實際傳送資料

另外,傳送資料協定也有其他種:
UDP(User Datagram Protocol)用戶數據報協議,用於即時性傳送資料
EX. live直播.即時通話或是即時視訊,因為重點在傳輸速度,但不可保證收發資料正常

最後把上面分層整理一下,變成下面這樣:

TPC/IP 四層模型

1
2
3
4
- 訂機票(HTTP)   /   訂食物(FTP)      --- 實際應用             應用層
- 保證收發正常(TCP)/ 即時傳輸(UDP) --- 如何傳送資料 傳輸層
- 傳送者/接收者(IP:Internet Protocol) --- 收發地址 網路互連層
- 傳送資料(實體電纜) --- 實際傳送資料 網路存取層

網域名稱系統(DNS:Domain Name System)

輸入網址後利用DNS查詢對應的IP位址,也就是把網址轉換成IP位址,或可以逆向操作

網域層級表示:

層級表示

DNS 的查詢流程:

  1. client side 先向DNS伺服器查詢網址的IP位址
  2. DNS會先查詢自己記憶體內有沒有暫存這網址
  3. 沒有就轉向Root domain查詢
  4. Root domain沒查詢到在往Top level domain查詢
  5. 以此類推直到找到此網址IP
  • 如果我們查尋同一個網站,電腦就會再hosts將這網站的IP位址紀錄下來,這樣一來以後只要重新查找相同網站就會從hosts找到並馬上連到那個網站,但假如查找沒搜尋過的網站,電腦就會找尋比較久,這段時間其實就是電腦再向DNS伺服器查尋IP位址
來源:

Comments: