1. 程式人生 > 實用技巧 >請收好這一份詳細 & 清晰的計算機網路基礎學習指南

請收好這一份詳細 & 清晰的計算機網路基礎學習指南

點選上方“五分鐘學演算法”,選擇“星標”公眾號

重磅乾貨,第一時間送達

來源:簡書,作者:Carson_Ho

連結:https://www.jianshu.com/p/45d27f3e1196

前言

計算機網路基礎是研發/運維工程師都需掌握的知識,但往往會被忽略。

今天,我將獻上一份詳細 & 清晰的計算機網路基礎學習指南,涵蓋 TCP / UDP協議、Http協議、Socket等,希望你們會喜歡。

1、計算機網路體系結構

1.1 簡介

  • 定義
    計算機網路的各層 + 其協議的集合。

  • 作用
    定義該計算機網路的所能完成的功能。

1.2 結構介紹

計算機網路體系結構分為3種:OSI體系結構、TCP / IP體系結構、五層體系結構。

  • OSI 體系結構:概念清楚 & 理念完整,但複雜 & 不實用;

  • TCP / IP 體系結構:含了一系列構成網際網路基礎的網路協議,是Internet的核心協議 & 被廣泛應用於區域網和廣域網;

  • 五層體系結構:融合了OSI 與 TCP / IP的體系結構,目的是為了學習 & 講解計算機原理。

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

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

- 點選圖片可檢視大圖 -

  • OSI的體系結構詳細介紹


- 點選圖片可檢視大圖 -

2、TCP協議

Transmission Control Protocol,即傳輸控制協議

  1. 屬於傳輸層通訊協議

  2. 基於TCP的應用層協議有HTTP、SMTP、FTP、Telnet 和 POP3。

關於TCP的其他知識:如三次握手、四次揮手、無差錯控制原理等,具體請看文章

關於 TCP/IP,必知必會的十個問題

面試官:換人!他連 TCP 這幾個引數都不懂

3、UDP協議

3.1 定義

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

  1. 屬於傳輸層通訊協議

  2. 基於UDP的應用層協議有 TFTP、SNMP 與 DNS

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 例項 唯一代表一個主機上的一個應用程式的通訊鏈路

6、其他知識

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

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

6.2 IP地址(IPv4地址)

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

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

其中:

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

不同型別的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回送請求 & 回送回答報文

  2. 是應用層直接使用網路層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的身份驗證 & 驗證流程



推薦閱讀

吳師兄實名吐槽 LeetCode 上的一道題目。。。面試位元組跳動時,我竟然遇到了原題……計算機專業的學生怎樣練習程式設計才能把程式設計學精通?為什麼 MySQL 使用 B+ 樹一道簡簡單單的位元組跳動演算法面試題


歡迎關注我的公眾號“五分鐘學演算法”,如果喜歡,麻煩點一下“在看”~