跳至主要内容

[網際網路] 網路服務與技術

此文章為各筆記之整理,非原創,擷取來源可見資料來源

網頁瀏覽相關協定(HTTP, HTTPS, SSL, TSL)

HTTP

**HTTP(Hypertext Transfer Protocol,超文本傳輸協定)**是一種在網頁伺服器與網頁瀏覽器間,處理網頁資料的通訊協定。

它有一項特性是無狀態(Stateless),也就是每個 request 都被視為是唯一且獨立的,它不會去記住之前的連線,所以只要發送同樣的 request 出去,就會一定會收到相同的 response。

HTTP 通常會搭配 TCP 使用,較少搭配 UDP,慣例上會以 Port 80 當作伺服器的連接埠號。

A cartoon intro to DNS over HTTPS @ Mozilla Hacks

HTTP Proxy(HTTP 代理伺服器)

一般來說,當我們透過 HTTP 對網路上的頁面發送請求時,電腦會直接和伺服器連線。但對於企業或團體來說,常會透過某個負責轉送的電腦,執行網際網路上的處理作業,這類的電腦可以在中間進行資料內容的轉送,一般稱為代理伺服器(Proxy)。

透過 HTTP Proxy 可以達到「內容快取(Content Cache)」的特性,減少網路連線壅塞的情況,並能「偵測病毒和防止駭客入侵」、「阻隔惡意網站」。

HTTPS、SSL 和 TSL

超文本傳輸安全協定(HTTPS) 是一種 HTTP 通訊的安全機制,預設的連接埠號是 443。透過 HTTPS,可以為 HTTP 請求和回應的內容加密,可以偵測通訊內容是否遭到竄改的情況,同時會驗證所要連線的網頁伺服器的真實身份。

身為加密連線,會以**安全通訊端層(Secure Sockets Layer, SSL)傳輸層安全性協定(Transport Layer Security, TLS)**等加密方式來進行加密(屬於 OSI 模型的 Session Layer):

  • SSL 已不再更新,最高版本為 3.0。
  • TLS 其實就是 SSL 的升級版。
  • SSL 3.0 前已經是很過時的加密方式,且也曾被發現嚴重的漏洞,所以建議現在網站的加密方式都要是 TLS 起跳的才安全

因為 TLS 是 SSL 下一代的版本,所以會有人把兩者相互對應:

  • TLS 1.0 —> SSL 3.1(0x0301)
  • TLS 1.1 —> SSL 3.2(0x0302)
  • TLS 1.2 —> SSL 3.3(0x0303)

SSL/TLS 有多種機制(資料交換、金鑰加密方式)可以選擇,伺服器會在通訊一開始和用戶端相互溝通,選擇雙方都適合的機制,這樣過程就稱作「協商(Negotiation)」。

正向代理和反向代理

代理(proxy)指的是透過中間的代理伺服器(proxy server)來達到一些目的:

  • 正向代理(forward proxy):server 在處理請求時,並不知道真正發送請求的 client 是誰,可以用來隱藏 client IP。
  • 反向代理(reverse proxy):client 不知道發送請求後,實際處理請求的是哪個 server,常用在負載平衡(load balancing)上。

Forward Proxy 和 VPN 的差異

  • Forward Proxy 和 VPN 都可以隱藏 client 的 IP 和身份,但兩者最大的差別主要在安全性,一般 client 和 Proxy Server 之間的資料傳遞並不會進行加密(除了基本的 https),不需先登入私人網路即可使用;相對的,client 在與 VPN 伺服器連線時則需要先有登入的機制,client 傳送到 VPN server 的訊息也都會先經過加密處理

電子郵件相關協定(SMTP, POP3, IMAP4)

SMTP:傳遞電子郵件的通訊協定

**SMTP(Simple Mail Transfer Protocol,簡單郵件轉移協定)**是一項用來傳遞電子郵件的通訊協定,通常搭配 TCP 使用,預設使用 Port 25

由於 SMTP 不會將通訊內容加密,近幾年 SMTP 常透過 SSL/TLS 將內容加密,擴展成為 SMTPS

POP3 和 IMAP4:讀取電子郵件的通訊協定

**POP3(Post Office Protocol Version 3,電子郵件協定 3)**和 **IMAP4(Internet Message Access Protocol Version 4,網際網路訊息存取協定 4)**都是用來將 Email 從 Email Box 中讀出的通訊協定。

POP3 的特色在於它能夠將 Email Box 中的 Email 讀入電腦中,因此能夠在電腦中進行整理或離線瀏覽,但下載郵件後會將伺服器裡的 Email 清空。通常會搭配 TCP 使用,並且預設使用 Port 110。若透過 SSL/TLS 提供的加密機制則稱為 POP3S預設連接埠為 Port 995

IMAP4 則是將郵件保存在伺服器的 Email Box 內,需要連線才能讀取郵件內容。通常會搭配 TCP 使用,預設為 Port 143,還可以透過 SSL/TLS 的加密機制成為 IMAP4S預設連接埠為 Port 993

用來傳送檔案的通訊協定(FTP)

FTP(File Transfer Protocol)是一項用來傳送檔案的通訊協定,通常會搭配 TCP 使用,預設使用 Port 21 作為傳送控制,使用 Port 20 來傳送資料

傳統上 FTP 不論登入或資料傳送都不採用加密機制,因此若有加密需求,可以使用 FTPS 或 SFTP。

連線到伺服器或網路設備的機制(SSH)

SSH(遠端登入協定)是一項用來連接伺服器或網路設備,必且透過 CUI/GUI 來操控連線對象的通訊協定,同時也是該連線程式的名稱,必須搭配 TCP 使用,預設的連接埠為 Port 22

SSH 的特色在於處理作業採用加密機制,因此安全性高,可避免資料被竊取而外洩的情形。

相關內容可參考 [[IS] 關於 SSH.md](/Users/pjchen/Projects/Note/source/_posts/MIS-IS/[IS] 關於 SSH.md) 。

校時系統(NTP)

**NTP(Network Time Protocol,網路時間通訊協定)**是一種讓電腦只要連上網路就可以進行校時的協定,適用即時性較高的 UDP,預設使用連接埠 Port 123。

NTP 伺服器會透過 NTP 來提供 UTC(世界標準時間)的時間資訊,同時會預估好通訊所需花費的時間。

虛擬化(Virtualization)與雲端(Cloud)

**虛擬化(Virtualization)**包含將單個實體裝置切分成一個或多個虛擬裝置(邏輯裝置)的技術,或者將多個實體裝置整合成一個大型虛擬裝置(邏輯裝置),讓它可以不受實體裝置的數量和設置地點,依照所需的需求新增/刪除電腦,升級/降級電腦設備。

透過虛擬化的服務,使用者可以直接透過網頁畫面,選擇想要使用的電腦、網路、建立系統和架構等多種服務(例如,虛擬主機服務、AWS, Google Cloud, Microsoft Azure),如此,使用者不需準備實體裝置也能使用各種服務。

這種透過虛擬化達到的雲端服務大致可以分為三類:

  • IaaS(Infrastructure as a Service,基礎架構即服務 ):用來建立虛擬主機或虛擬網路的服務,對於外部使用者來說,它使用上就和一般的實體裝置無有太大差異,但由於是虛擬主機的緣故,當有特殊需求的時候,可以迅速增加主機的台數和設備規格。例如,Azure 虛擬主機,Amazon 虛擬主機的服務等。
  • PaaS(Platform as a Service,平台即服務):此種服務並非針對電腦主機本身,而是提供使用者所需的特定功能,像是建立資料庫、架設開發環境、使用者介面等,使用者只需將這些功能相互搭配,即可建立個人化的系統。例如,Heroku。
  • SaaS(Software as a Service,軟體即服務):直接提供網路服務給使用者,像是電子郵件、Google 表單、Google 相簿等等。

imgur

Photo credits: survey guy

近年來則出現新的 **SDN(Software Defined Networking,軟體定義網路)**服務,透過 SDN 可以切分為「資料傳遞」和「傳遞控制」兩部分,使用者可以依照自己的需求搭配所需的網路功能。而 OpenFlow 這是將這樣的想法具體化的規範。

IaaS PaaS SaaS - 雲端服務模式 @ IBM

資料來源