OSI-TCP/IP協議族
02-12
OSI-TCP/IP協議族
學習OSI-TCP/IP協議族筆記
OSI參考模型
OSI(Open System Interconnection Reference Model)模型是一個試圖將計算機在世界範圍內互聯為網路的標準框架。從上倒下依次是:應用層、表示層、會話層、傳輸層、網路層、數據鏈路層、物理層。
- 應用層:應用層是最接近用戶的一層,計算機用戶可以通過應用層訪問其他的軟體,為用戶提供常見的網路應用服務。例如:http、https、FTP、TELNET、SSH等。
- 表示層:為不同終端的上層用戶提供數據,主要功能是數據語法轉換、語法表示、數據處理、加密、解密、編碼和解碼等。
- 會話層:負責維持兩個設備之間的通信,為對話連接提供服務。
- 傳輸層:為應用進程提供端到端的通信服務,這裡的端是埠號的意思。例如:TCP、UDP等。
- 網路層:提供路由定址的功能,通過IP找到節點,使兩個節點建立連接。兩台設備建立連接,中間可能經過許多路由器、交換機,網路層找到最佳路徑使兩終端設備實現互聯。
- 數據鏈路層:在兩個網路實體之間提供數據鏈路連接的創建、維持和釋放管理,將數據轉化為對應的二進位數據。數據鏈路層分為2個子層:邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC)。交換機是本層設備。
- 物理層:為傳輸數據提供所需要的物理設備。例如:針腳、電壓、集線器、網卡等。
TCP/IP協議族
互聯網協議族是一個網路通信模型,以及整個網路傳輸協議家族,為互聯網的基礎通信提供架構。TCP/IP參考模型分為四層,從上到下分別是:應用層、傳輸層、網路互連層、網路介面層。- 應用層:通常認為OSI模型的應用層、表示層、會話層在TCP/IP參考模型里是應用層。例如HTTP、HTTPS等。
- 傳輸層:端到端的數據傳輸。例如TCP、UDP等。
- 網路層:尋找目標地址,將數據發送到目標地址。
- 鏈路層:也叫做數據鏈路層或網路介面層,將數據轉化為對應的二進位數據。包括驅動設備和網卡等。
TCP/IP參考模型數據封裝
數據從源主機傳輸到目標主機要進行數據封裝和數據拆包的過程。數據封裝的傳輸過程中,在每一層要加入首部信息,有時還要增加尾部信息。數據單元在傳輸層被稱為段(segment),在網路層被稱為包(package),在鏈路層被稱為幀(frame)。
應用層
應用層是TCP/IP的最高級,我們平時用到的最多,常見的有:HTTP、HTTPS、FTP、SSH等。
傳輸層- TCP:TCP提供一種面向連接的、可靠的位元組流服務。TCP首部20個位元組。
- TCP建立連接需要"三次握手"。客戶端發送請求建立連接;伺服器收到請求,發送同意並請求與客戶端建立連接;客戶端收到請求,發送同意與伺服器建立連接。
- TCP斷開連接需要"四次握手"。客戶端發送斷開請求;伺服器收到請求,發送同意斷開連接的請求;伺服器發送請求斷開連接;客戶端收到,發送同意斷開連接。
- UDP:是一個簡單的面向數據報的傳輸層協議,UDP傳輸速度快,但是它不可靠,UDP首部8個位元組。
- IP協議:IP是網路層上的主要協議。IP協議是不可靠的、無連接的。它僅提供最好的傳輸服務,必須有上層協議提供可靠性。不可靠是指它不保證IP數據成功的到達目的地。無連接的是指IP不維護後續數據報的狀態信息,即如果先後發送A、B數據報,每個數據報到達的順序不確定。
- ICMP:Internet控制報文協議。ICMP傳遞差錯報文及其他需要注意的信息。ICMP是在IP數據報內部被傳輸的。
- IGMP:Internet組管理協議
鏈路層
- 鏈路層用來處理連接網路的硬體部分,主要目的是為IP模塊發送和接收IP數據報,為ARP發送ARP請求和接收ARP應答,為RARP發送RARP請求和接收RARP應答。
- ARP:地址解析協議
- RARP:逆地址解析協議
- 請求方法:GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE
- 狀態碼:1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客戶端錯誤)、5xx(伺服器錯誤)
- 通用首部:Cache-Control、Connection、Date等。
- 請求首部:Accept、Accept-Encoding、Host等。
- 響應首部:Accept-Ranges、ETag等。
- 實體首部:Content-Length、Content-Type等。
小結
OSI參考模型和TCP/IP協議族是計算機網路的基礎,地位非常重要,內容多,這篇學習筆記是這段時間學習的總結。參考TCP IP詳解卷1原書第2版+協議卷2+卷3 全三冊 TCP IP網路與協議(原書第《HTTP權威指南》([美]David Gourley,[美]Brian Totty,[美]Marjorie Sayer,[美]Sailu Reddy,[美]Anshu Aggarwal)【摘要 書評 試讀】- 京東圖書推薦閱讀:
※Logtail技術分享(一) : Polling + Inotify 組合下的日誌保序採集方案
※【RPU-A】官網 HTTP 指南基於新 HttpClient 重構
※Akka HTTP 文檔 (非官方漢化)- 導讀
※關於keep-alive 這個問題?