介紹
TCP/IP(傳輸控制協定/網際網路協定)是一組用於網際網路和其他網路的通訊協定
被視為包含四個層次,每個層次負責特定的功能
應用層
這層是 TCP/IP 模型與應用程式之間的界面﹐向使用者提供應用程式服務所需的連接﹐然後透過其下的傳送層來發送和接收資料。應用程式根據傳送層所需的形態來選用資料格式﹐例如一串獨立的資料﹐或是一連續位元的組流。
TCP/IP 協定家族中,本身就定義了眾多的應用工具與協定,例如:HTTP、TELNET、NFS、等等。不同的協定使用不同的穿送層協定。
傳送層
傳送層的主要目的向應用程式之間提供點對點的通訊。它規劃了資料流量﹐也提供一可靠傳輸以確保資料能正確的抵達目的地。傳送層必須能夠提供一套機制來控制和檢測資料傳送的正確性﹐例如安排接收端傳回確認信息﹑重發遺失資料﹑以及剔除重複資料﹑等等。
傳送層軟體會將應用程式送下來的資料切割分包﹐以符合下層傳輸要求的一定體積﹐交由網際網路層處理。傳送層協定會在每一個資料包上面加上一個標頭 (header)﹐記錄一些資訊﹐用來辨識該資料包屬於哪個個程式和由哪個程式來接收。再配以檢測和供接收機器來檢測資料是否完整。
TCP/IP 的傳送層協定主要分為 TCP 與 UDP 兩種,前者為可靠性傳輸、後者為非可靠性傳輸。
網際網路層
這裡處理的是機器之間的通訊﹐為每一個傳送層交下來的封包加上 IP 標頭。網際網路層協定會根據傳送層的位址資料﹐使用路由演算法進行路由判斷﹐然後在 IP 標頭上填上路由資訊﹐以及其它相關的傳送選項資訊﹔再把封包交由下層處理。
這層協定的處理關鍵是路由﹐假如資料包的目的地是本機﹐則將標頭去除﹐將剩下部份交給合適的傳送協定處理﹔否則﹐就要判斷封包是直接傳送到本地網路節點﹐還是要傳送給路由器。如有需要﹐還會送出 ICMP 錯誤和控制訊息﹐同時也要處理接收到的 ICMP 訊。
網路存取層
本層的主要功能是把資料直接送給網路裝置。它定義了如何用網路來傳送 IP 資料段﹐它必須知道底層網路的細節。相對於 OSI 模型﹐TCP/IP 模型的網路存取層整合了 OSI 的實體層﹑資料連接層﹑和網路層的功能。但大部份底層標準是有廠商或 IEEE 制定的。
針對不同的網路實體標準﹐網路存取層有許多不同種類的協定與之對應。正如我們從前面的 OSI 學到的層級觀念來理解﹐就算其中某些協定得到更新﹐但對於上層協定來說﹐是沒影響的。因為TCP/IP 的設計刻意隱藏了較底層的功能。
網路存取層的功能﹐除了把 IP 資料段封裝到網路傳送的實體訊框(frame)之外﹐它還同時負責把 IP 對應到網路設備的實體位址。這樣才能讓以 IP 位址為傳送依據的資料﹐能透過底層網路傳送。
各層常見協定或應用
TCP(傳輸控制協定)
- 用途:用於在網路中提供可靠的、面向連接的資料傳輸。
- 功能:保證資料的順序、完整性,並提供錯誤檢查和修正機制。TCP 是一個面向連接的協定,在傳送資料之前會先建立連接(稱為三次握手),並且會在資料發送後要求接收方確認收到資料(確認回應)。
- 應用:常用於需要高可靠性的應用,如 網頁瀏覽(HTTP/HTTPS)、電子郵件、文件傳輸等。
UDP(使用者資料報協定)
- 用途:提供無連接的資料傳輸服務,速度較快,但不保證資料的可靠性。
- 功能:與 TCP 相比,UDP 並不會對傳輸的資料進行錯誤檢查,也不會進行資料的確認回應,因此它的開銷較小、速度較快,但會增加丟包的風險。
- 應用:常用於對速度要求較高,且能容忍部分丟包的應用,如 即時通訊、線上遊戲、視頻會議、直播串流等。
HTTP(超文本傳輸協定)
- 用途:是用於瀏覽器與伺服器之間傳輸資料的主要協定。
- 功能:HTTP 是無狀態的協定,這意味著每一次請求和回應都是獨立的,伺服器並不會記住上一個請求的狀態。HTTP 默認使用 TCP 來傳輸資料,且定義了八種請求方式。
- GET
- 此方法只能向指定的資源要求取得資料,
- HEAD
- HEAD 跟 GET 方法類似只差別在它並不會回傳你所請求的資源在 body 上,只回傳 HTTP header
- POST
- 向指定的資源提交資料
- PUT
- 向指定資源位置提交更新內容
- DELETE
- 向指定資源位置請求刪除內容
- CONNECT
- HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器
- OPTIONS
- 此方法可使服務器傳回該資源所支持的所有 HTTP 請求方法
- TRACE
- 回顯服務器收到的請求,主要用於測試或診斷
HTTPS(安全超文本傳輸協定)
- 用途:是 HTTP 協定的安全版本,透過 SSL/TLS 協定提供加密和認證功能。
- 功能:HTTPS 在 HTTP 的基礎上增加了資料加密,確保資料在傳輸過程中不會被竊聽或篡改。這對於需要保護隱私或安全的應用(如 網路銀行、電商網站)至關重要。
- 應用:用於所有需要加密的網頁,如銀行、支付系統和安全登入的網站。
QUIC(快速UDP互聯傳輸協定)
- 用途:是由 Google 開發的基於 UDP 的新型協定,旨在提升 HTTPS 連接的速度和性能。
- 功能:QUIC 在保證高效和低延遲的基礎上,提供了與 HTTPS 類似的安全性。與傳統的 TCP 協定不同,QUIC 在連接建立時進行了許多優化,降低了延遲,同時也減少了握手過程中的開銷。
- 應用:被 Google Chrome 和其他現代瀏覽器所支持,主要用於 網站加速 和 視頻流,目前還在逐步普及。
FTP(檔案傳輸協定)
- 用途:用於在客戶端和伺服器之間傳輸檔案。
- 功能:FTP 是一種 無加密 的協定,提供了 兩個通道,一個用來傳送控制訊息(命令和響應),另一個用來傳送檔案數據。透過 FTP,用戶可以上傳、下載、刪除、重命名檔案等。
- 應用:廣泛用於 檔案管理 和 網站檔案傳輸,例如網頁設計師上傳檔案至 Web 伺服器。
SFTP(安全檔案傳輸協定)
- 用途:用於在不安全的網路環境中傳輸檔案,並提供加密功能。
- 功能:SFTP 基於 SSH(Secure Shell)協定,提供了更高的安全性,所有傳輸的檔案和控制訊息都是加密的。這比 FTP 更安全。
- 應用:在需要加密的環境中進行檔案傳輸,如 遠端伺服器管理 或 安全的資料備份。
DNS(域名系統)
- 用途:將域名轉換為 IP 位址,實現用戶使用域名而非 IP 進行網路訪問。
- 功能:DNS 是一個分散式的資料庫系統,將網際網路中的人類可讀名稱(如 www.example.com)轉換為計算機可識別的 IP 位址。
- 應用:所有的網頁瀏覽和網路應用程序都依賴 DNS 來進行域名解析,從而確保可以正確連接到目標伺服器。
SMTP(簡單郵件傳輸協定)
- 用途:用於在網路中傳送電子郵件。
- 功能:SMTP 是一種推送協定,用來將電子郵件從發送端傳送到接收端的郵件伺服器。通常與 POP3 或 IMAP 協定一起使用,後者用來接收郵件。
- 應用:大多數電子郵件服務(如 Gmail、Outlook)都使用 SMTP 來發送郵件。
IMAP(互動郵件存取協定)
- 用途:用於從郵件伺服器中檢索電子郵件。
- 功能:IMAP 允許用戶在伺服器上直接查看和操作郵件,而不需要下載到本地。這使得多設備同步郵件成為可能。
- 應用:廣泛應用於需要跨多個設備(如手機、平板和電腦)同步郵件的情況。
POP3(郵局協定 3)
- 用途:用於從郵件伺服器上下載電子郵件到本地客戶端。
- 功能:與 IMAP 不同,POP3 通常會將郵件下載到本地並刪除伺服器上的副本,這對需要離線閱讀郵件的使用者有用。
- 應用:適用於只使用單一設備來檢視郵件的情況。
Telnet
- 用途:提供遠端訪問服務,允許使用者登入遠端主機。
- 功能:Telnet 是一種非常簡單的遠程控制協定,允許用戶以文字模式登入遠程主機並執行命令。由於其 缺乏加密,不建議在現代環境中使用,通常會被更安全的 SSH 取代。
- 應用:曾用於遠程管理伺服器或網路設備,但由於安全性問題,現在大多數情況下被 SSH 替代。
SSH(安全外殼協定)
- 用途:提供加密的遠端登入和命令執行功能。
- 功能:SSH 提供一個加密的通道,用於遠端管理伺服器。它比 Telnet 更安全,並且支援檔案傳輸(SFTP)和端口轉發等功能。
- 應用:用於 遠端伺服器管理,保證資料傳輸的安全性。
ARP(地址解析協定)
- 用途:將 IP 位址映射到對應的 MAC 地址,用於局域網內的資料傳輸。
- 功能:當主機需要發送資料到同一網段內的其他主機時,ARP 用來解析對方的 MAC 地址,這樣資料才能正確地傳送到對方設備。
- 應用:在局域網內的所有網路設備之間進行通信時使用。
ICMP(網際控制訊息協定)
- 用途:用於診斷網路狀況和錯誤報告。
- 功能:ICMP 用於傳遞錯誤訊息,如 ping 命令就利用 ICMP 檢查兩個主機之間的連通性。它也用於處理路由器無法送達資料包的情況。
- 應用:常用於 網路診斷 和 錯誤檢測,例如在網路故障排除過程中。
RDP(遠端桌面協定)
- 用途:允許用戶遠端訪問 Windows 操作系統的桌面界面。
- 功能:RDP 提供了一個加密的通道,允許用戶在遠端系統上進行操作,就像直接在本地操作一樣。
- 應用:廣泛應用於 遠程工作 和 伺服器管理,尤其是在 IT 和系統管理領域。