前言
- 計算機網絡基礎 該是程序猿需掌握的知識,但往往會被忽略
- 今天,我將獻上一份詳細 & 清晰的計算機網絡基礎 學習指南,涵蓋
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
,即 傳輸控制協議
- 屬于 傳輸層通信協議
- 基于
TCP
的應用層協議有HTTP
、SMTP
、FTP
、Telnet
和POP3
關于TCP
的其他知識:如三次握手、四次揮手、無差錯控制原理等,具體請看文章:計算機網絡:這是一份全面 & 詳細 的TCP協議攻略
3. UDP協議
3.1 定義
User Datagram Protocol
,即 用戶數據報協議
- 屬于 傳輸層通信協議
- 基于
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協議
-
簡介
示意圖 關于其工作方式、報文段等知識,請看文章:這是一份全面& 詳細 HTTP知識講解
5. Socket
5.1 簡介
- 即套接字,是應用層 與
TCP/IP
協議族通信的中間軟件抽象層,表現為一個封裝了 TCP / IP協議族 的編程接口(API)
Socket
不是一種協議,而是一個編程調用接口(API
),屬于傳輸層(主要解決數據如何在網絡中傳輸)- 即:通過
Socket
,我們才能在Andorid平臺上通過TCP/IP
協議進行開發- 對用戶來說,只需調用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地址::={<網絡號>,<主機號>}
其中:
- 網絡號:標志主機(或路由器)所連接到的網絡。一個網絡號在整個因特網范圍內必須是唯一的。
- 主機號:標志該主機(或路由器)。一個主機號在它面前的網絡號所指明的網絡范圍必須是唯一的。
不同類型的IP地址,其主機號 & 網絡號所占字節數不同;故:一個IP地址在整個網絡范圍內是唯一的
- 分類
傳統的IP地址是分類的地址,分為A,B,C,D,E五類
區別在于網絡號 & 主機號占的字節數不同
- 特別注意:在各類IP地址中,有一些IP地址用于特殊用途,不能用于做主機IP地址
6.3 ICMP協議
- 定義
Internet Control Message Protocol
,即 網際控制報文協議
- 屬于IP層協議
- 注:ICMP報文不是高層協議,而是作為IP層數據報的數據,加上數據報首部,組成IP數據報發出去
- 作用
更有效地轉發IP數據包 & 提高交付成功的機會
同時允許主機 / 路由器報告差錯 & 異常情況
分類
ICMP
差錯報告報文 &ICMP
詢問報文主要應用
PING(分組網間探測)、Traceroute(跟蹤1個分組從源點到終點的路徑,原理 = 從源主機向目的主機發送一連串的IP數據報)
下面,將主要介紹Ping
的過程
6.4 Ping的過程
- 定義
Packet InterNet Groper
,即分組網間探測
- 是
ICMP
報文的1個重要應用:使用了IPCM回送請求 & 回送回答報文
- 是應用層直接使用網絡層ICMP的1個例子,無經過傳輸層的TCP、UDP
作用
測試2個主機的連通性-
原理
- 向目的主機發送多個ICMP回送請求報文
- 根據 目的主機返回的ICMP回送回答報文中的時間戳,從而計算出往返時間
- 最終顯示的結果:發送到目的主機的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. 總結
本文全面講解了 開發的基礎知識:計算機網絡
下面我將繼續講解 編程開發的基礎知識,感興趣的同學可以繼續關注本人運營的
Wechat Public Account
:
請點贊!因為你的鼓勵是我寫作的最大動力!
相關文章閱讀
Android開發:最全面、最易懂的Android屏幕適配解決方案
Android事件分發機制詳解:史上最全面、最易懂
Android開發:史上最全的Android消息推送解決方案
Android開發:最全面、最易懂的Webview詳解
Android開發:JSON簡介及最全面解析方法!
Android四大組件:Service服務史上最全面解析
Android四大組件:BroadcastReceiver史上最全面解析
歡迎關注Carson_Ho的簡書!
不定期分享關于安卓開發的干貨,追求短、平、快,但卻不缺深度。