前言

  • 計算機網路基礎 該是程式猿需掌握的知識,也是面試過程中常常考察的內容,但往往會被忽略
  • 今天,我將獻上一份詳細 & 清晰的計算機網路基礎 學習指南,涵蓋 TCP / UDP協議、Http協議、Socket等,希望你們會喜歡。

目錄

 

示意圖

1. 計算機網路體系結構

1.1 簡介

  • 定義 計算機網路的各層 + 其協議的集合
  • 作用 定義該計算機網路的所能完成的功能

1.2 結構介紹

  • 計算機網路體系結構分為3種:OSI體系結構、TCP / IP體系結構、五層體系結構
  • OSI體系結構:概念清楚 & 理念完整,但複雜 & 不實用
  • TCP / IP體系結構:含了一系列構成網際網路基礎的網路協議,是Internet的核心協議 & 被廣泛應用於區域網 和 廣域網
  • 五層體系結構:融合了OSITCP / IP的體系結構,目的是為了學習 & 講解計算機原理

 

示意圖

 

低三層為通訊子網,負責資料傳輸 高三層為資源子網,相當於計算機系統,完成資料處理; 傳輸層承上啟下

  • TCP / IP的體系結構詳細介紹 由於 TCP / IP體系結構較為廣泛,故主要講解

 

示意圖

 

 

示意圖

 

  • OSI的體系結構詳細介紹

 

示意圖

 

 

示意圖

2. TCP協議

Transmission Control Protocol,即 傳輸控制協議

  1. 屬於 傳輸層通訊協議
  2. 基於TCP的應用層協議有HTTPSMTPFTPTelnetPOP3

關於TCP的其他知識:如三次握手、四次揮手、無差錯控制原理等,具體請看文章:計算機網路:這是一份全面 & 詳細 的TCP協議攻略


3. UDP協議

3.1 定義

User Datagram Protocol,即 使用者資料報協議

  1. 屬於 傳輸層通訊協議
  2. 基於UDP的應用層協議有 TFTPSNMPDNS

3.2 特點

無連線的、不可靠的、面向報文、無擁塞控制,具體介紹如下:

示意圖

 

3.3 優缺點

  • 優點:速度快
  • 缺點:訊息易丟失(特別是 網路較差時)

3.4 應用場景(對應應用層協議)

要求通訊速度高

如: 域名轉換:DNS協議 檔案傳輸:FTP協議 網路管理:SNMP協議 遠端檔案伺服器:NFS協議

3.5 報文段格式

  • UDP的報文段共有2個欄位:資料欄位 & 首部欄位
  • 下面主要介紹首部(8位元組、4個欄位)

 

示意圖

 

 

示意圖

 

3.6 TCP、UDP協議的區別

 

示意圖

 


4. HTTP協議


5. Socket

5.1 簡介

  • 即套接字,是應用層 與 TCP/IP 協議族通訊的中間軟體抽象層,表現為一個封裝了 TCP / IP協議族 的程式設計介面(API)

 

示意圖

 

  1. Socket不是一種協議,而是一個程式設計呼叫介面(API),屬於傳輸層(主要解決資料如何在網路中傳輸)
  2. 即:通過Socket,我們才能在Andorid平臺上通過 TCP/IP協議進行開發
  3. 對使用者來說,只需呼叫Socket去組織資料,以符合指定的協議,即可通訊
  • 成對出現,一對套接字:
Socket ={(IP地址1:PORT埠號),(IP地址2:PORT埠號)}
複製程式碼
  • 一個 Socket 例項 唯一代表一個主機上的一個應用程式的通訊鏈路

5.2 其他知識

關於Socket的原理、機制過程 & 使用方式,具體請看文章:Android:這是一份很詳細的Socket使用攻略


6. 其他知識

6.1 在瀏覽器中輸入url地址 ->> 顯示主頁的過程

開啟一個網頁,整個過程會使用哪些協議

 

示意圖

 

6.2 IP地址(IPv4地址)

  • 定義 連線在Internet中的每一臺主機(或 路由器)的全球唯一的識別符號

  • 組成 IP地址 = 32位 = 網路號 + 主機號;即IP地址::={<網路號>,<主機號>}

其中:

  1. 網路號:標誌主機(或路由器)所連線到的網路。一個網路號在整個因特網範圍內必須是唯一的。
  2. 主機號:標誌該主機(或路由器)。一個主機號在它面前的網路號所指明的網路範圍必須是唯一的。

不同型別的IP地址,其主機號 & 網路號所佔位元組數不同;故:一個IP地址在整個網路範圍內是唯一的

  • 分類 傳統的IP地址是分類的地址,分為A,B,C,D,E五類

區別在於網路號 & 主機號佔的位元組數不同

 

示意圖

 

  • 特別注意:在各類IP地址中,有一些IP地址用於特殊用途,不能用於做主機IP地址

 

示意圖

 

6.3 ICMP協議

  • 定義 Internet Control Message Protocol,即 網際控制報文協議
  1. 屬於IP層協議
  2. 注:ICMP報文不是高層協議,而是作為IP層資料報的資料,加上資料報首部,組成IP資料報發出去
  • 作用 更有效地轉發IP資料包 & 提高交付成功的機會

同時允許主機 / 路由器報告差錯 & 異常情況

  • 分類 ICMP差錯報告報文 & ICMP詢問報文

  • 主要應用 PING(分組網間探測)、Traceroute(跟蹤1個分組從源點到終點的路徑,原理 = 從源主機向目的主機發送一連串的IP資料報)

下面,將主要介紹Ping的過程

6.4 Ping的過程

  • 定義 Packet InterNet Groper,即分組網間探測
  1. ICMP報文的1個重要應用:使用了IPCM回送請求 & 回送回答報文
  1. 是應用層直接使用網路層ICMP的1個例子,無經過傳輸層的TCP、UDP
  • 作用 測試2個主機的連通性

  • 原理

    1. 向目的主機發送多個ICMP回送請求報文
    2. 根據 目的主機返回的ICMP回送回答報文中的時間戳,從而計算出往返時間
    3. 最終顯示的結果:傳送到目的主機的IP地址、傳送 & 收到 & 丟失的分組數、往返時間的最小、最大 & 平均值
  • 過程 假設有兩臺主機: (目的主機)PC1:IP = 192.168.1.1 (源主機)PC2:IP = 192.168.1.2

 

示意圖

 

6.5 路由器與交換機的區別

 

示意圖

 

6.6 Cookie 與 Session

  • 簡介

 

示意圖

 

  • 區別 & 對比

 

示意圖

 

6.7 Cookie 與 Token

  • 簡介

 

示意圖

 

  • 基於Cookie的身份驗證 & 驗證流程

 

示意圖

 

 

示意圖

 

  • 基於Token的身份驗證 & 驗證流程

 

示意圖

 

 

示意圖

 


7. 總結

  • 本文全面講解了 開發的基礎知識:計算機網路

  • 下面我將繼續講解 程式設計開發的基礎知識,有興趣可以繼續關注Carson_Ho的開發筆記

作者:Carson_Ho
連結:https://juejin.im/post/5ad7e6c35188252ebd06acfa
來源:掘金
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。