- 第一章 概述
- 1.計算機網路概覽
- 1.1 網路與計算機網路
- 1.2 計算機網路的功能
- 1.3 計算機網路的組成
- 1.3.1 組成部分
- 1.3.2 工作方式
- 1.3.3 功能組成
- 1.4 計算機網路的分類
- 1.5 小結
- 2.計算機網路的標準化工作
- 2.1 標準的分類
- 2.2 RFC
- 2.3 標準化工作的相關組織
- 2.4 小結
- 3.計算機網路效能指標
- 3.1 速率
- 3.2 頻寬
- 3.3 吞吐量
- 3.4 頻寬、速率、吞吐量區別
- 3.5 時延
- 3.5.1 定義
- 3.5.2 分類
- 3.6時延頻寬積
- 3.7 往返時延RTT
- 3.8 利用率
- 4. 計算機網路分層結構
- 4.1 分層緣由
- 4.2 分層原則
- 4.3 術語解析
- 4.4 小結
- 4.5 分層結構
- 4.5.1 OSI七層結構
- 4.5.2 OSI參考模型解釋通訊過程
- 4.5.2.1 概覽
- 4.5.2.2 各層介紹
- 4.5.2.2.1 應用層
- 4.5.2.2.2 表示層
- 4.5.2.2.3 會話層
- 4.5.2.2.4 傳輸層
- 4.5.2.2.5 網路層
- 4.5.2.2.6 資料鏈路層
- 4.5.2.2.7 物理層
- 4.5.3 TCP/IP參考模型
- 4.5.3.1 對比
- 4.5.4 五層參考模型
- 4.5.4.1 介紹
- 4.5.4.2 資料的封裝與解封
- 5.小結
- 1.計算機網路概覽
- 第二章 物理層
- 1. 物理層的基本概念
- 2.資料通訊基礎知識
- 2.1 典型的資料通訊模型
- 2.2 相關術語解析
- 2.3 三種通訊方式
- 2.4 兩種資料傳輸方式
- 2.5 碼元、速率、波特、頻寬
- 2.5.1 碼元
- 2.5.2 速率、波特
- 2.5.3 練習題
- 3.奈氏準則與夏農定理
- 3.1 失真
- 3.2 碼間串擾【失真現象之一】
- 3.3奈氏準則【奈奎斯特定理】
- 3.4夏農定理
- 3.5奈氏與夏農
- 4.編碼與調製
- 4.1 基帶訊號與寬頻訊號
- 4.2 編碼與調製
- 4.3.1 數字資料編碼為數字訊號
- (1)非歸零編碼【NRZ】
- (4)歸零編碼【RZ】
- (5)反向不歸零編碼【NRZI】
- (2)曼徹斯特編碼
- (3)差分曼徹斯特編碼
- (6)4B/5B編碼
- 4.3.2 數字資料調製為模擬訊號
- 4.3.3 模擬資料編碼成數字訊號
- 4.3.4 模擬資料調製為模擬訊號
- 4.3.1 數字資料編碼為數字訊號
- 5.傳輸介質與分類
- 5.1 導向性傳輸介質
- 5.1.1 雙絞線
- 5.1.2 同軸電纜
- 5.1.3 光纖
- 5.2非導向性傳輸介質
- 5.1 導向性傳輸介質
- 6.物理層裝置
- 6.1 中繼器【轉發器】
- 6.2 集線器【多口中繼器】
- 7. 小結
- 第三章 資料鏈路層
- 1.資料鏈路層基本概念
- 2. 功能概述
- 3. 封裝成幀
- 4. 透明傳輸
- 4.1 簡介
- 4.2 組幀方法
- 4.2.1 字元計數法
- 4.2.2 字元(節)填充法
- 4.2.3 零位元填充法
- 4.2.4 違規編碼法
- 5. 差錯控制
- 5.1 差錯來源
- 5.2 位元錯誤
- 5.3.1 檢錯編碼之奇偶校驗碼
- 5.3.2 檢錯編碼之CRC迴圈冗餘碼
- 5.3.3 糾錯編碼--海明碼
- 6. 流量控制、可靠傳輸、滑動視窗
- 6.1 流量控制
- 6.1.1 緣由
- 6.1.2 流量控制的方法
- 6.2 流量控制之停止-等待協議
- 6.2.1 為什麼需要該協議
- 6.2.2 研究的前提
- 6.2.3 停止-等待協議的應用情況
- 6.2.3.1 無差錯情況
- 6.2.3.2 有差錯情況
- 6.2.3.3 效能分析
- 6.3 流量控制之後退N幀協議【GBN】
- 6.3.1 滑動視窗
- 6.3.2 GBN傳送方必須響應的三件事
- 6.3.3 GBN接收方的任務
- 6.3.4 滑動視窗長度
- 6.3.5 GBN效能分析
- 6.1 流量控制
- 7. 通道劃分介質訪問控制
- 7.1 傳輸資料使用的兩種鏈路
- 7.2 介質訪問控制
- 7.3 通道劃分介質訪問控制
- 7.4 靜態劃分通道
- 7.4.1 頻分多路複用【FDM】
- 7.4.2 時分多路複用 【TDM】
- 7.4.3 統計分時多工【STDM】
- 7.4.4 波分多路複用【WDM】
- 7.5 動態劃分通道
- 7.5.1 ALOHA協議
- 7.5.2 CSMA協議
- 7.5.2.1 1-堅持CSMA
- 7.5.2.2 非堅持CSMA
- 7.5.2.3 p-堅持CSMA
- 7.5.2.4 對比
- 7.5.3 CSMA/CA協議
- 7.5.3.1 介紹
- 7.5.3.2 工作原理
- 7.5.3.3 CSMA/CD與CSMA/CA對比
- 7.5.4 CSMA/CD協議
- 7.5.4.1 介紹
- 7.5.4.2 傳播時延對載波監聽的影響
- 7.5.4.3 碰撞後的重傳時機
- 7.5.4.4 最小幀長問題
- 8. 輪詢訪問介質訪問控制
- 8.1 對比
- 8.2 輪詢協議
- 8.3 令牌傳遞協議
- 9. 區域網基本概念和體系結構
- 9.1 區域網
- 9.1.1 區域網拓撲結構
- 9.1.2 區域網傳輸介質
- 9.1.3 區域網介質訪問控制方法
- 9.1.4 無限區域網劃分
- 9.1.5 IEEE 802標準
- 9.1.6 MAC子層與LLC子層
- 9.2 乙太網
- 9.2.1 乙太網概述
- 9.2.2 乙太網傳輸介質與拓撲結構的發展
- 9.2.3 10 BASE-T乙太網
- 9.2.4 介面卡與MAC地址
- 9.2.5 乙太網MAC幀
- 9.2.6 高速乙太網
- 9.3 IEEE 802.11 無限區域網
- 9.3.1 IEEE 802.11
- 9.3.2 802.11的MAC幀頭格式
- 9.3.3 無線區域網分類
- 9.3.3.1 有固定基礎設施的無線區域網
- 9.3.3.2 無固定基礎設施無線區域網的自組織網路
- 9.1 區域網
- 10. PPP協議與HDLC協議
- 10.1 廣域網
- 10.2 PPP協議
- 10.2.1 特點
- 10.2.2 需滿足的要求
- 10.2.3 無需滿足的要求
- 10.2.4 三個組成部分
- 10.2.5 狀態圖
- 10.2.6 幀格式
- 10.3 HDLC協議
- 10.3.1 簡介
- 10.3.2 HDLC的站
- 10.3.3 幀格式
- 10.4 PPP協議與HDLC協議對比
- 11. 鏈路層裝置
- 11.1 物理層擴充套件乙太網
- 11.2 鏈路層擴充套件乙太網
- 11.2.1 網橋
- 11.2.1.1 簡介
- 11.2.1.2 透明網橋
- 11.2.1.3 源路由網橋
- 11.2.2 乙太網交換機【多介面網橋】
- 11.2.1 網橋
- 11.3 衝突域和廣播域
- 第四章 網路層
- 1. 網路層功能概述
- 2. 資料交換方式
- 2.1 進行資料交換的原因
- 2.2 電路交換
- 2.3 報文交換
- 2.4 分組交換
- 2.4.1 介紹
- 2.4.1 資料包方式&虛電路方式
- 2.4.1.1 資料包介紹【因特網在使用】
- 2.4.1.2 虛電路介紹
- 2.4.1.3 資料包 & 虛電路
- 2.4.2 幾種傳輸單元對比
- 2.5 報文交換 & 分組交換
- 2.6 小結
- 3. IP 資料包
- 3.1 TCP/IP 協議棧構造
- 3.2 IP 資料包格式
- 3.3 IP 資料包分片
- 3.3.1 最大傳輸單元 MTU
- 3.3.2 分片所涉及的首部欄位
- 3.3.3 部分欄位單位
- 4. IPv4 地址
- 4.1 IP 編址歷史
- 4.2 分類的 IP 地址
- 4.2.1 IP 地址介紹
- 4.2.2 網際網路中的 IP 地址
- 4.2.3 分類方法
- 4.2.4 特殊的 IP 地址
- 4.2.5 私有 IP 地址
- 4.2.6 各類 IP 地址可指派數
- 4.3 網路地址轉換【NAT】
- 4.4 子網劃分與子網掩碼
- 4.4.1 分類 IP 地址的缺點
- 4.4.2 劃分方法
- 4.4.3 子網劃分例子
- 4.4.4 子網掩碼
- 4.4.5 使用子網時分組的轉發
- 4.5 無分類編址 CIDR【構成超網】
- 4.5.1 介紹
- 4.5.2 構成超網
- 4.5.3 最長字首匹配
- 5. ARP 協議
- 5.1 介紹
- 5.2 傳送資料的過程
- 5.3 例題
- 6. DHCP 協議
- 6.1 主機如何獲取 IP 地址
- 6.2 DHCP 介紹
- 7. ICMP 協議
- 7.1 介紹
- 7.2 ICMP 差錯報文
- 7.2.1 五種型別
- 7.2.2 ICMP 差錯報文資料欄位
- 7.2.3 不傳送 ICMP 差錯報文的情況
- 7.3 ICMP 詢問報文
- 7.4 ICMP 應用
- 8. IPv6
- 8.1 為什麼使用 IPv6
- 8.2 IPv6 資料包格式
- 8.3 IPv6 & IPv4
- 8.4 IPv6 地址表示形式
- 8.5 IPv6 基本地址型別
- 8.6 IPv4 向 IPv6 過渡的策略
- 8.6.1 IPV6表示IPV4的兩類方法
- 8.7 總結
- 9. 路由演算法及相關路由協議
- 9.1 路由演算法
- 9.1.1 路由表結構
- 9.1.2 路由演算法分類
- 9.1.3 分層次的路由選擇協議
- 9.2 RIP 協議及距離向量演算法
- 9.2.1 RIP 協議
- 9.2.1.1 介紹
- 9.2.1.2 RIP 協議報文格式
- 9.2.1.3 特點
- 9.2.2 路由資訊交換規則
- 9.2.3 距離向量演算法
- 9.2.4 小結
- 9.2.1 RIP 協議
- 9.3 OSPF 協議及鏈路狀態演算法
- 9.3.1 OSPF 協議
- 9.3.2 鏈路狀態路由演算法
- 9.3.3 OSPF 的區域
- 9.3.4 OSPF 分組情況
- 9.3.5 其他特點
- 9.4 BGP 協議
- 9.4.1 介紹
- 9.4.2 BGP 協議交換資訊的過程
- 9.4.3 BGP 協議報文格式
- 9.4.4 BGP 協議特點
- 9.4.5 BGP-4 的四種報文
- 9.5 三種路由協議比較
- 9.1 路由演算法
- 10. IP 組播
- 10.1 IP 資料包的三種傳輸方式
- 10.2 IP 組播地址
- 10.3 硬體組播
- 10.4 IGMP 協議與組播路由協議
- 10.4.1 IGMP 協議
- 10.4.1.1 協議工作圖解
- 10.4.1.2 協議在 TCP/IP 協議簇中的位置
- 10.4.1.3 IGMP 工作的兩個階段
- 10.4.2 組播路由選擇協議
- 10.4.2.1 介紹
- 10.4.2.2 常使用的三種演算法
- 10.4.1 IGMP 協議
- 10.5 總結
- 11. 移動 IP
- 11.1 相關術語
- 11.2 通訊過程
- 12. 網路層裝置
- 12.1 路由器
- 12.1.1 介紹
- 12.1.2 輸入埠對線路上收到的分組的處理
- 12.1.3 輸出埠將交換結果傳送來的分組傳送到線路
- 12.2 三層裝置的區別
- 12.3 路由表與路由轉發
- 12.1 路由器
- 第五章 傳輸層
- 1. 傳輸層概述
- 1.1 介紹
- 1.2 傳輸層的兩個協議
- 1.3 傳輸層的定址與埠
- 2. UDP 協議
- 2.1 UDP 概述
- 2.2 UDP 首部格式
- 2.2.1 圖解
- 2.2.2 UDP 校驗
- 3. TCP 協議
- 3.1 TCP 協議特點
- 3.2 TCP 報文段首部格式
- 3.3 TCP 連線管理
- 3.3.1 TCP 的連線建立
- 3.3.2 SYN 洪泛攻擊
- 3.3.3 TCP 連線的釋放
- 3.3.4 TCP 可靠傳輸
- 3.3.4.1 校驗
- 3.3.4.2 序號
- 3.3.4.3 確認
- 3.3.4.4 重傳
- 3.3.5 TCP 流量控制
- 3.3.6 TCP 擁塞控制
- 3.3.6.1 介紹
- 3.3.6.2 四種演算法
- 慢開始和擁塞避免
- 快重傳和快恢復
- 1. 傳輸層概述
- 第六章 應用層
- 1. 應用層概述
- 2. 網路應用模型
- 2.1 客戶伺服器(C/S)模型
- 2.2 P2P模型
- 3. 域名解析系統DNS
- 3.1 域名
- 3.2 域名伺服器
- 3.3 域名解析過程
- 4.檔案傳輸協議FTP
- 4.1 FTP與TFTP
- 4.2 FTP伺服器與客戶端
- 4.3 FTP工作原理
- 5. 電子郵件
- 5.1 電子郵件系統概述
- 5.1.2 資訊格式
- 5.1.3 組成結構
- 5.2 簡單電子郵件傳送協議SMTP
- 5.2.1 介紹
- 5.2.2 通訊過程
- 5.2.3 MIME
- 5.3 郵局協議POP3
- 5.4 網際報文存取協議IMAP
- 5.5 基於全球資訊網的電子郵件
- 5.1 電子郵件系統概述
- 6. 全球資訊網和HTTP協議
- 6.1 全球資訊網概述
- 6.2 超文字傳輸協議HTTP
- 6.2.1 介紹
- 6.2.2 HTTP特點
- 6.2.3 HTTP協議的連線方式
- 6.2.4 報文結構
- ping原理
- 1. 網際控制報文協議ICMP
- 1.1 簡介
- 1.2 種類
- 1.3 差錯報告報文
- 1.4 不應該傳送ICMP差錯報告報文的情況
- 1.5詢問報文
- 2. ICMP的應用-PING
- 3. PING測試
- 4. 擴充
- 4.1 tracert
- 4.2 測試
- 1. 網際控制報文協議ICMP
- 面試常問
- 1. OSI的七層模型分別是什麼?各自的功能是什麼?
- 2. 說說一次完整的HTTP請求過程包含的步驟?
- 3. 解釋一下DNS?
- 4. DNS的工作原理
- 5. 為什麼域名解析用UDP協議
- 6. 區域傳輸為什麼使用TCP協議
第一章 概述
1.計算機網路概覽
1.1 網路與計算機網路
計算機網路
:是一個將分散的、具有獨立功能的計算機系統
,透過通訊裝置
與線路
連線起來,由功能完善的軟體
實現資源共享
和資訊傳遞
的系統。
1.2 計算機網路的功能
資料通訊
:連通性
資源共享
:硬體、軟體、資料
分散式處理
:多臺計算機各自承擔同一工作任務的不同部分(如 Hadoop
平臺)
提供可靠性
:一臺計算機當機,可由其他替代機頂替等
負載均衡
:多臺計算機共同提供服務,分擔壓力
。。。。。。
1.3 計算機網路的組成
1.3.1 組成部分
硬體
:主機、鏈路、路由器、交換機、集線器等
軟體
:執行在主機上的各種應用軟體
協議
:
1.3.2 工作方式
邊緣部分
:直接面向使用者使用的各種主機
- C/S 方式
- P2P方式
核心部分
:為邊緣部分服務
1.3.3 功能組成
通訊子網
:實現資料通訊,包含網路層、資料鏈路層、物理層。由各種傳輸介質、通訊裝置、相應的網路協議組成。
資源子網
:實現資源共享/資料處理,包含應用層、表示層、會話層。是實現資源共享功能的裝置和軟體的集合。
1.4 計算機網路的分類
-
按分佈範圍
:可分為 廣域網【WAN 使用交換技術】、都會網路【MAN】、區域網【WAN 使用廣播技術】、個人區域網【PAN】 -
按使用者
:可分為 公用網【如中國電信,普通使用者只需要繳納一定費用即可獲得使用許可權】、專用網【如軍隊、鐵路等的專用網,只有特殊使用者方可使用】 -
按交換技術
:電路交換、報文交換、分組交換 -
按拓撲結構
:匯流排型、星型、環型、網狀型【常用於廣域網】
按傳輸技術
:- 廣播式網路:共享公共通訊通道
- 點對點網路:使用分組儲存轉發和路由選擇機制
1.5 小結
2.計算機網路的標準化工作
要實現不同廠商的硬、軟體之間相互連通,必須遵從統一的標準
2.1 標準的分類
法定標準
:由權威機構制定的正式的、合法的標準【OSI】
事實標準
:某些公司的產品在競爭中佔據了主流,時間長了,這些產品中的協議和技術就成了標準【TCP/IP】
2.2 RFC
2.3 標準化工作的相關組織
2.4 小結
3.計算機網路效能指標
3.1 速率
速率即資料率
或稱資料傳輸率
或位元率
,指的是連線在計算機網上的主機在數字通道上傳送資料位數的速率。
單位:b/s kb/s Mb/s Gb/s Tb/s
漢語表示:
- 千 1 kb/s = 10^3 b/s
- 兆 1 Mb/s = 10^6 b/s
- 吉 1 Gb/s = 10^9 b/s
- 太 1 Tb/s = 10^12 b/s
區分
:儲存容量的表示法1 KB = 2^10 B = 1024 B = 1024 * 8b
1 MB = 2^10 KB = 1024 KB
1 GB = 2^10 MB = 1024 MB
1 TB = 2^10 GB = 1024 GB
3.2 頻寬
-
頻寬
:原本是指某個訊號具有的頻頻寬度,即最高頻率與最低頻率之差,單位是赫茲【Hz】 -
在計算機網路中,
頻寬
用來表示網路的通訊線路傳送資料的能力,通常是指單位時間內從網路中的某一點到另一點所能透過的最高資料率
。單位是位元每秒
。
3.3 吞吐量
【定義】
單位時間內透過某個網路(或通道、介面)的資料量。單位:b/s
【注意】
吞吐量受網路頻寬或網路的額定速率的影響
3.4 頻寬、速率、吞吐量區別
3.5 時延
3.5.1 定義
資料(報文/分組/位元流)從網路(或鏈路)的一端傳送到另一端所需要的的時間。也叫延遲
、遲延
,單位:s
3.5.2 分類
傳送時延(傳輸時延)
:從傳送分組的第一個位元算起,到該分組的最後一個位元傳送完畢需要的時間
傳播時延
:資料在通道上傳送資料耗時。取決於電磁波傳播速度與鏈路長度。
排隊時延
:分組在進入路由器後需要在輸入佇列中排隊,確認轉發介面後,也需要在輸出佇列中排隊,由此產生排隊時延。
處理時延
:主機或路由器在收到分組時需要花費一定時間進行處理,由此產生處理時延。
3.6時延頻寬積
時延頻寬積又稱為以位元為單位的鏈路長度
,即某段鏈路現在有多少位元。
3.7 往返時延RTT
-
從傳送方傳送資料開始,到傳送方收到接收方的確認,總共經歷的時延。
-
RTT[Round-Trip Time]主要包含:
- 往返傳播時延 = 傳播時延 * 2
- 末端處理時延
3.8 利用率
4. 計算機網路分層結構
4.1 分層緣由
舉個例子:一臺計算機需要向另外一臺計算機傳送檔案
傳送檔案前需要完成的工作:
發起通訊的計算機必須將資料通訊的通路進行
啟用
要告訴網路如何識別目的主機
傳送方要查明接收方是否開機,網路連線是否正常
傳送方需查明,對方計算機中檔案管理程式是否已經做好準備
確保差錯和意外可以解決
。。。
4.2 分層原則
分層的基本原則:
- 各層之間
相互獨立
,每層只實現一種相對獨立的功能- 每層之間
界限自然清晰
,易於理解,相互交流盡可能少- 結構上可分割。每層都採用
最適合的技術
來實現- 保持下層對上層的獨立,
上層單向使用下層提供的服務
- 整個分層結構應該促進標準化工作
舉個例子:82年拉菲的快遞之旅
4.3 術語解析
實體
:第n層的活動元素稱為n層實體
。同一層的實體叫對等實體
協議
:為進行網路中的對等實體
資料交換而建立的規則、標準或約定,稱為網路協議。【水平意義】
- 語法:規定傳輸資料的格式
- 語義:規定所要完成的功能
- 同步:規定各種操作的順序
介面
(訪問服務點SAP):上層使用下層服務的入口
服務
:下層為相鄰上層提供的功能呼叫。【垂直意義】
SDU服務資料單元
:為完成使用者所要求的功能而應傳送的資料PCI協議控制資訊
:控制協議操作的資訊PDU協議資料單元
:對等層次之間傳送的資料單元
4.4 小結
-
網路體系結構是從
功能
上描述計算機網路結構的 -
計算機網路體系結構(簡稱網路體系結構)是
分層結構
-
每層遵循某個/些
網路協議
以完成本層的功能 -
計算機網路體系結構
是計算機網路的各層及其包含的協議
的集合 -
第n層向第n+1層提供服務時,此服務不僅包含第n層本身的功能,還包含由下層服務提供的功能
-
僅僅在
相鄰之間有介面
,且所提供服務的具體實現細節對上層完全遮蔽 -
體系結構是
抽象
的,而具體實現是指硬體以及能執行的一些軟體
4.5 分層結構
4.5.1 OSI七層結構
4.5.2 OSI參考模型解釋通訊過程
4.5.2.1 概覽
【端到端、點到點】
【資料封裝與解封過程】
4.5.2.2 各層介紹
4.5.2.2.1 應用層
- 所有能和使用者互動產生網路流量的程式,如 QQ、瀏覽器等。而無法聯網的如記事本,則不屬於計算機網路的應用層範疇
- 典型應用層服務:
- 檔案傳輸【FTP】
- 電子郵件【SMTP】
- 全球資訊網【HTTP】
4.5.2.2.2 表示層
用於處理在
兩個通訊系統
中交換的資訊
的表示方式(語法、語義)
功能一
:資料格式變換
功能二
:資料加密解密
功能三
:資料壓縮和恢復主要協議:JPEG、ASCII
4.5.2.2.3 會話層
向表示層
實體/使用者程序
提供連線的建立
、在連線上有序地傳輸資料
。這是會話,也是同步建立
【SYN】
功能一
:建立、管理、終止會話
功能二
:使用校驗點可以使會話在通訊失效時,從校驗想·點/同步點
繼續恢復通訊,實現資料同步
。適用於傳輸大檔案主要協議:ADSP、ASP
4.5.2.2.4 傳輸層
負責主機中兩個程序的通訊,即
端到端
的通訊。傳輸單位是報文段或使用者資料包
功能一
:可靠傳輸【確認重傳】、不可靠傳輸【最大努力交付】
功能二
:差錯控制
功能三
:流量控制【控制傳送速率】
功能四
:複用分用
- 複用:多個應用層程序可同時使用下面運輸層的服務
- 分用:運輸層把收到的資訊分別交付給上面應用層中相應的程序
主要協議:TCP、UDP
4.5.2.2.5 網路層
主要任務是,把
分組
從源端傳到目的端,為分組交換網上的不同主機
提供通訊服務
。網路層傳輸單位是資料包
。
功能一
:路由選擇【選擇最佳路徑】
功能二
:流量控制
功能三
:差錯控制
功能四
:擁塞控制 擁塞控制:若所有節點都來不及接受分組,而要丟棄大量分組的話,網路就處於擁塞狀態。因此要採取一定措施緩解這種擁塞。
主要協議:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
4.5.2.2.6 資料鏈路層
主要任務是把
網路層傳下來的資料包
組裝成幀
。資料鏈路層的傳輸單位是幀
。
功能一
:成幀【定義幀的開始和結束】
功能二
:差錯控制:幀錯 + 位錯
功能三
:流量控制
功能四
:訪問(接入)控制【控制對通道的訪問】主要協議:SDLC、HDLC、PPP、STP
4.5.2.2.7 物理層
主要任務是在
物理媒體
上實現位元流的透明傳輸
。物理層傳輸的單位是位元
。
透明傳輸
:不管所傳資料是什麼樣的位元組合,都應當能夠在鏈路上傳送
功能一
:定義介面特性
功能一
:定義傳輸模式【單工、半雙工、雙工】
功能一
:定義傳輸速率
功能一
:位元同步
功能一
:位元編碼主要協議:Rj45、802.3
4.5.3 TCP/IP參考模型
4.5.3.1 對比
相同點:
- 都分層
- 都基於獨立的協議棧的概念
- 都可以實現異構網路的互連
不同點:
- OSI定義三點:服務、協議、介面
- OSI先出現,參考模型先於協議發明,不偏向特定協議
- TCP/IP設計之初考慮到
異構網路互連
的問題,故將IP作為重要的層次
面向連線
【分三個階段】:
- 建立連線【發出一個建立連線的請求,只有在連線建立成功之後,才能開始資料傳輸】
- 資料傳輸
- 釋放連線【當資料傳輸完畢,就必須釋放連線】
無連線
:沒有面向連線這麼多的階段,無連線直接進行資料傳輸
4.5.4 五層參考模型
4.5.4.1 介紹
應用層
:支援各種網路應用【FTP、SMTP、HTTP】
傳輸層
:程序-程序的資料傳輸【TCP、UDP】
網路層
:源主機到目的主機的資料分組、路由選擇和分組轉發【IP、ICMP、OSPF】
資料鏈路層
:把網路層傳下來的資料包組裝成幀【Ethernet、PPP】
物理層
:位元傳輸
4.5.4.2 資料的封裝與解封
5.小結
第二章 物理層
1. 物理層的基本概念
物理層解決如何在連線各種計算機的傳輸媒體上
傳輸資料位元
流,而不是指具體的傳輸媒體
。物理層的
主要任務
:確定與傳輸媒體介面有關的一些特性==>定義介面標準
- 機械特性:規定物理連線時所採用的規格、介面形狀、引線數目、引腳數量和排列情況
- 電氣特性:規定傳輸二進位制位時,線路上訊號的
電壓範圍
、抗阻匹配、傳輸速率和距離限制等- 功能特性:指明某條線上出現的某一電平表示何種意義,介面部件的訊號線的用途
- 規程特性【過程特性】:定義各條物理線路的工作規程和時序關係
2.資料通訊基礎知識
2.1 典型的資料通訊模型
2.2 相關術語解析
通訊的目的是
傳送資訊
資料
:傳送資訊的實體,通常是有意義的符號序列
訊號
:資料的電氣/電磁表現,是資料在傳輸過程中的存在形式
。訊號分兩種==>
信源
:產生和傳送資料的源頭
信宿
:接收資料的終點
通道
:訊號的傳輸媒介。一般用來表示向某一個方向傳送資訊的介質。因此一條通訊線路往往包含一條傳送通道和一條接收通道。通道的分類==>
2.3 三種通訊方式
從通訊雙方資訊的互動方式看,可以有三種基本方式:
單工通訊
:只有一個方向的通訊而沒有反方向的互動,僅需要一條通道半雙工通訊
:通訊的雙方都可以傳送或接受資訊,但不能雙方同時傳送和接收,需要兩條
通道全雙工通訊
:通訊雙方可以同時傳送和接受資訊,需要兩條
通道
2.4 兩種資料傳輸方式
2.5 碼元、速率、波特、頻寬
2.5.1 碼元
2.5.2 速率、波特
2.5.3 練習題
3.奈氏準則與夏農定理
3.1 失真
3.2 碼間串擾【失真現象之一】
3.3奈氏準則【奈奎斯特定理】
【習題】
3.4夏農定理
【注意】
【例題】
3.5奈氏與夏農
4.編碼與調製
4.1 基帶訊號與寬頻訊號
【使用場景】
4.2 編碼與調製
4.3.1 數字資料編碼為數字訊號
(1)非歸零編碼【NRZ】
高1低0
編碼容易實現,但沒有檢錯功能,且無法判斷一個碼元的開始和結束,以至於收發雙方難以保持同步。
(4)歸零編碼【RZ】
訊號電平在一個碼元之內都要恢復到零的這種編碼方式
(5)反向不歸零編碼【NRZI】
訊號電平反轉表示0,訊號電平不變表示1
(2)曼徹斯特編碼
將一個碼元分成兩個相等的間隔,前一個間隔為低電平後一個間隔為高電平表示碼元1;碼元0則正好相反。也可以採用相反的規定。該編碼的特點是在每一個碼元的中間出現電平跳變,位中間的跳變既作時鐘訊號(可用於同步),又作資料訊號,但它所佔的頻頻寬度是原始的基頻寬度的兩倍
(3)差分曼徹斯特編碼
同1異0
常用於區域網傳輸,其規則是:若碼元1,則前半個碼元的電平與上一個碼元的後半個碼元的電平相等,若為0,則相反。該編碼的特點是,在每個碼元的中間,都有一次電平的跳轉,可以實現自同步,且抗干擾性強於曼徹斯特編碼
(6)4B/5B編碼
4.3.2 數字資料調製為模擬訊號
4.3.3 模擬資料編碼成數字訊號
4.3.4 模擬資料調製為模擬訊號
5.傳輸介質與分類
5.1 導向性傳輸介質
5.1.1 雙絞線
5.1.2 同軸電纜
5.1.3 光纖
【簡介】
【單模/多模光纖】
【特點】
5.2非導向性傳輸介質
6.物理層裝置
6.1 中繼器【轉發器】
6.2 集線器【多口中繼器】
7. 小結
第三章 資料鏈路層
1.資料鏈路層基本概念
結點
:主機、路由器
鏈路
:網路中兩個結點之間的物理通道,鏈路的傳輸介質主要有雙絞線、光纖和微波。分為有線鏈路、無線鏈路
資料鏈路
:網路中兩個結點之間的邏輯通道,把實現控制資料傳輸協議的硬體和軟體加到鏈路上就構成資料鏈路
幀
:鏈路層的協議資料單元,封裝網路層資料包
資料鏈路層
負責從一個結點(透過一條鏈路)向另一個物理鏈路直接相連的相鄰結點傳送資料包
2. 功能概述
在物理層提供的服務的基礎上向網路層提供服務
,其最基本的服務
是將源自網路層的資料可靠地
傳輸到相鄰結點的目標機網路層。其主要作用
是加強物理層傳輸原始位元流的功能,將物理層提供的可能出錯的物理連線改造成為邏輯上無差錯的資料鏈路
,使之對網路層表現為一條無差錯的鏈路。
功能一
:為網路層提供服務。無確認無連線服務、有確認無連線服務、有確認面向連線服務。(有連線一定有確認)
功能二
:鏈路管理,即連線的建立、維持、釋放【用於面向連線的服務】
功能三
:組幀
功能四
:流量控制【限制傳送方】
功能五
:差錯控制【幀錯/位錯】
3. 封裝成幀
在一段資料的前後部分新增首部和尾部
,構成一個幀。接收端在收到物理層上交的位元流後,就能根據首部和尾部的標記,從收到的位元流中識別幀的開始和結束
。
首部和尾部包含許多的控制資訊,他們的一個重要作用是幀定界
【確定幀的界限】
幀同步
:接收方應當能從接收到的二進位制位元流中區分出幀的開始和終止
組幀的四種方法
:字元計數法、字元(節)填充法、零位元填充法、違規編碼法
4. 透明傳輸
4.1 簡介
4.2 組幀方法
4.2.1 字元計數法
缺點
:當首個計數字段出錯時,會導致後續所有幀的識別錯誤
4.2.2 字元(節)填充法
【此時有可能發生以下錯誤】
【解決方案】
4.2.3 零位元填充法
4.2.4 違規編碼法
5. 差錯控制
5.1 差錯來源
為什麼要在鏈路層進行差錯控制
:當兩臺主機通訊需要經過一臺交換機和20臺路由器時,若經過第一個路由器時幀已經發生了錯誤,則此時路由器的鏈路層可以發現錯誤並丟棄,減少了錯誤幀繼續傳遞所造成的資源浪費。
5.2 位元錯誤
編碼 VS 編碼
資料鏈路層編碼
和物理層的資料編碼與調製
不同。
- 物理層編碼針對的是
單個位元
,解決傳輸過程中位元的同步等問題,如曼徹斯特編碼。- 資料鏈路層的編碼針對的是
一組位元
,透過冗餘碼的技術實現一組二進位制位元串在傳輸過程中是否出現了差錯。
冗餘編碼
:在資料傳送之前,先按某種關係附加上一定的冗餘位,構成一個符合某一規則的碼字後再傳送。當要傳送的有效資料變化時,相應的冗餘位也隨之變化,使碼字遵從不變的規則。接收端根據收到碼字是否仍符合原規則來判斷是否出錯。
5.3.1 檢錯編碼之奇偶校驗碼
5.3.2 檢錯編碼之CRC迴圈冗餘碼
【冗餘碼計算】
【接收端檢錯】
【注意】
5.3.3 糾錯編碼--海明碼
海明碼
:可以發現雙位元錯誤
,只能糾正單位元錯誤
工作原理:動一發而牽全身
工作流程:
計算過程:
【確定校驗碼位數r】
【確定檢驗碼和資料的位置】
【求出校驗碼的值】
【檢錯並糾錯】
6. 流量控制、可靠傳輸、滑動視窗
6.1 流量控制
6.1.1 緣由
傳送端較高的傳送速度
和接收端較低的接收能力
的不匹配,會造成傳輸出錯,因此流量控制也是資料鏈路層一項重要工作。
資料鏈路層流量控制
與傳輸層流量控制
區別:
- 資料鏈路層的流量控制是點對點的,而傳輸層的流量控制是端到端的
- 資料鏈路層流量控制的手段:接收方收不下就不回覆確認
- 傳輸層流量控制手段:接收端給傳送端一個視窗公告
6.1.2 流量控制的方法
【各協議傳送視窗與接收視窗的大小】
停止-等待協議
:傳送視窗大小=1, 接收視窗大小=1
後退N幀協議(GBN)
:傳送視窗大小>1,接收視窗大小=1
選擇重傳協議(SR)
:傳送視窗大小>1,接收視窗大小>1在資料鏈路層,視窗大小是固定的。
6.2 流量控制之停止-等待協議
6.2.1 為什麼需要該協議
-
為了實現流量控制
-
除了位元出差錯,底層通道還會出現丟包問題
丟包
:由物理線路故障、裝置故障、病毒攻擊、路由資訊錯誤等原因導致的資料包的丟失
6.2.2 研究的前提
- 雖然現在常用全雙工通訊方式,但是為了討論的方便,僅考慮一方為傳送方,一方為接收方的情況。
- 由於是在討論可靠傳輸的原理,故暫不考慮資料是在哪一層次上傳送的
停止-等待
就是每傳送完一個分組就停止傳送,等待對方確認後再傳送下一個分組
6.2.3 停止-等待協議的應用情況
6.2.3.1 無差錯情況
6.2.3.2 有差錯情況
- 資料幀丟失或者檢測到幀出錯
- ACK丟失
- ACK遲到
6.2.3.3 效能分析
停止-等待協議
簡單易操作- 通道利用率太低
通道利用率:
6.3 流量控制之後退N幀協議【GBN】
6.3.1 滑動視窗
6.3.2 GBN傳送方必須響應的三件事
【上層的呼叫】
上層要傳送資料時,傳送方先檢查傳送視窗是否已滿。如果未滿
,則產生一個幀並將其傳送;若果視窗已滿
,傳送方只需將資料返回給上層,暗示上層視窗已滿,上層等會再發。(實際實現中,傳送方法可以快取這些資料,視窗不滿時再傳送幀)。
【收到了一個ACK】
GBN協議中,對n號幀的確認採用累積確認
的方式,表明接收方已經收到n號幀和它之前的全部幀。
【超時事件】
協議的名字為後退N幀/回退N幀,來源於出現丟失幀
和幀的時延過長
時,傳送方的行為。就像在停止-等待協議
中一樣,定時器將再次用於恢復資料幀或確認幀的丟失。如果出現超時傳送方將重傳所有已傳送但未被確認的幀。
接收方按幀編號順序接收幀,當某一編號幀無法收到時,將一直等待該幀,其後的幀直接丟棄。傳送方經過一定時間後,將未接收確認的幀重傳。
6.3.3 GBN接收方的任務
- 如果正確收到n號幀並且按序,接收方將為n幀傳送一個ACK,並將該幀中是資料部分交付給上一層
- 其餘情況都丟棄幀,併為最近按序接收的幀重新傳送ACK。接收方無需快取任何失序幀,只需要維護一個資訊:
expectedseqnum【下一個按序接收的幀序號】
執行中的GBN:
6.3.4 滑動視窗長度
如:採用2個位元對幀編號,傳送視窗大小為4【大於上述給定範圍】,若第一次傳送4個幀全部丟失,則傳送發重傳,此時接收端無法確認此時的4個幀是新幀還是舊幀。
【習題】
6.3.5 GBN效能分析
- 因連續傳送資料幀而提高了通道利用率
- 在重傳時必須把原來已經正確傳送的資料幀重傳,使得傳送效率降低
- 基於以上描述,引出
選擇重傳協議
7. 通道劃分介質訪問控制
7.1 傳輸資料使用的兩種鏈路
點對點鏈路
:兩個相鄰節點透過一個鏈路相連,沒有第三者。【應用:PPP協議,常用於廣域網
】
廣播式鏈路
:所有主機共享通訊介質。【應用:早期的匯流排乙太網、無限區域網、常用於區域網
】
【典型拓撲結構:匯流排型、星型(邏輯匯流排型)】
7.2 介質訪問控制
介質訪問控制
的內容就是,採取一定的措施,使得兩對節點之間的通訊不會發生互相干擾的情況。
7.3 通道劃分介質訪問控制
通道劃分介質訪問控制
:將使用介質的每個裝置與來自同一通道上的其他裝置的通訊隔離開,把時域和頻域資源
合理地分配給網路上的裝置。
多路複用技術
:把多個訊號組合在一條物理通道上進行傳輸,使得多個計算機或終端裝置共享通道資源
,提高通道利用率。
7.4 靜態劃分通道
7.4.1 頻分多路複用【FDM】
7.4.2 時分多路複用 【TDM】
7.4.3 統計分時多工【STDM】
改進的分時多工
若線路傳輸速率為
8000bit/s
,則對於TDM來說,每個使用者【A、B、C、D】只能得到2000bit/s
;而對於STDM,每個使用者最高可以得到8000bit/s
。
7.4.4 波分多路複用【WDM】
7.5 動態劃分通道
7.5.1 ALOHA協議
【純ALOHA協議】
不監聽通道、不按時間槽傳送、隨機重發。
【時隙ALOHA協議】
把時間分成若干個相同的時間片,所有使用者在時間片開始時刻同步接入網路通道,若發生衝突,則必須等到下一個時間片開始時刻再傳送。控制想發就發的隨意性
【區別】
7.5.2 CSMA協議
7.5.2.1 1-堅持CSMA
7.5.2.2 非堅持CSMA
7.5.2.3 p-堅持CSMA
7.5.2.4 對比
7.5.3 CSMA/CA協議
7.5.3.1 介紹
7.5.3.2 工作原理
7.5.3.3 CSMA/CD與CSMA/CA對比
7.5.4 CSMA/CD協議
7.5.4.1 介紹
7.5.4.2 傳播時延對載波監聽的影響
7.5.4.3 碰撞後的重傳時機
【例題】
7.5.4.4 最小幀長問題
為了使CSMA/CD協議能發揮作用,即在幀傳送完畢之前就可以檢測到碰撞,需要定義一個最小幀長
【最小幀長】
8. 輪詢訪問介質訪問控制
8.1 對比
8.2 輪詢協議
8.3 令牌傳遞協議
9. 區域網基本概念和體系結構
9.1 區域網
9.1.1 區域網拓撲結構
9.1.2 區域網傳輸介質
9.1.3 區域網介質訪問控制方法
9.1.4 無限區域網劃分
9.1.5 IEEE 802標準
IEEE 802現有標準
9.1.6 MAC子層與LLC子層
9.2 乙太網
9.2.1 乙太網概述
乙太網提供無連線、不可靠的服務
9.2.2 乙太網傳輸介質與拓撲結構的發展
9.2.3 10 BASE-T乙太網
9.2.4 介面卡與MAC地址
9.2.5 乙太網MAC幀
9.2.6 高速乙太網
9.3 IEEE 802.11 無限區域網
9.3.1 IEEE 802.11
9.3.2 802.11的MAC幀頭格式
【四種格式比對】
9.3.3 無線區域網分類
9.3.3.1 有固定基礎設施的無線區域網
9.3.3.2 無固定基礎設施無線區域網的自組織網路
10. PPP協議與HDLC協議
10.1 廣域網
廣域網強調資源共享,區域網強調資料傳輸!
10.2 PPP協議
10.2.1 特點
10.2.2 需滿足的要求
10.2.3 無需滿足的要求
- 無需糾錯
- 無需流量控制
- 無需序號
- 不支援多點線路
10.2.4 三個組成部分
10.2.5 狀態圖
10.2.6 幀格式
10.3 HDLC協議
10.3.1 簡介
10.3.2 HDLC的站
10.3.3 幀格式
10.4 PPP協議與HDLC協議對比
11. 鏈路層裝置
11.1 物理層擴充套件乙太網
主機與集線器之間的距離超過100m後,失幀會變得非常嚴重
:
為了實現遠距離通訊,需要擴充套件乙太網
:
- 把物理連線線路改為光纖
- 使用主幹集線器
可以形成更大的衝突域
缺點:
- 傳送衝突機率變高
- 鏈路通訊效率降低
11.2 鏈路層擴充套件乙太網
11.2.1 網橋
11.2.1.1 簡介
11.2.1.2 透明網橋
11.2.1.3 源路由網橋
11.2.2 乙太網交換機【多介面網橋】
乙太網交換機的兩種交換方式:
11.3 衝突域和廣播域
【例題】
第四章 網路層
1. 網路層功能概述
主要任務是把 分組
從源端傳到目的端,為分組交換網上的不同主機提供提供通訊服務。網路層傳輸單位是 資料包
。
功能一
:路由選擇與分組轉發【最佳路徑】
功能二
:異構網路互連【依靠路由器
把 wifi、4G、校園網等網路互連,構成更大的網路】
功能三
:擁塞控制
2. 資料交換方式
2.1 進行資料交換的原因
圖一:實現主機間通訊,需要大量通訊鏈路
圖二:所需通訊鏈路減少了,但是無法支撐遠距離通訊以及大量主機接入的通訊
圖三:能很好的解決上述問題
2.2 電路交換
2.3 報文交換
2.4 分組交換
2.4.1 介紹
分組
:把大的資料塊(報文
)分割成許多小的資料塊
2.4.1 資料包方式&虛電路方式
2.4.1.1 資料包介紹【因特網在使用】
2.4.1.2 虛電路介紹
2.4.1.3 資料包 & 虛電路
2.4.2 幾種傳輸單元對比
2.5 報文交換 & 分組交換
2.6 小結
3. IP 資料包
IP的三個特性:
- 無連線性(Connectionless):
- IP是一種無連線協議,也稱為無狀態協議。這意味著在傳送資料之前,通訊的兩個裝置不需要建立持久的連線。每個資料包(IP資料包)都獨立處理,路由器根據目標地址將其從源傳輸到目標。這使得IP非常適用於分散式的、靈活的網路環境。
- 不可靠性(Unreliable):
- IP協議本身並不提供可靠性。它依賴於更高層的協議(例如TCP,Transmission Control Protocol)來確保資料的可靠傳輸。IP主要關注資料包的傳輸,但不保證它們是否按照正確的順序到達目的地,也不保證是否有任何錯誤。
- 盡最大努力交付
3.1 TCP/IP 協議棧構造
3.2 IP 資料包格式
協議欄位:TCP ==> 6 UDP ==> 17
首部檢驗和:此處的檢驗和與 ICMP 的檢驗和不同,此處的檢驗和只檢驗首部
3.3 IP 資料包分片
3.3.1 最大傳輸單元 MTU
3.3.2 分片所涉及的首部欄位
【例題】
3.3.3 部分欄位單位
一種八片首飾
【總長度單位是 1Byte、片偏移單位是 8Byte、首部長度單位是 4Byte】
4. IPv4 地址
4.1 IP 編址歷史
- 分類的 IP 地址
- 子網的劃分
- 構成超網【無分類編址方法】
4.2 分類的 IP 地址
4.2.1 IP 地址介紹
4.2.2 網際網路中的 IP 地址
4.2.3 分類方法
4.2.4 特殊的 IP 地址
4.2.5 私有 IP 地址
路由器對目的地址是私有IP地址的資料包一律不進行轉發
4.2.6 各類 IP 地址可指派數
4.3 網路地址轉換【NAT】
透過安裝了 NAT 軟體的路由器實現私有 ip 與外部全球 ip 的兩次轉換(先將請求資料包轉到外部 ip,再將外部回覆從外部 ip 對應到私有 ip
4.4 子網劃分與子網掩碼
4.4.1 分類 IP 地址的缺點
容易造成地址的浪費
4.4.2 劃分方法
4.4.3 子網劃分例子
4.4.4 子網掩碼
兩級 ip 地址就是有網路號和主機號的 ip 地址,三級 IP 地址就是有網路號,子網號,主機號的 ip 地址
【例題 1】
子網掩碼全 1 與運算後是本身,全 0 與運算是全 0
【例題 2】
4.4.5 使用子網時分組的轉發
直接交付: 透過查路由表可以直接轉發
間接交付: 需要經過多個路由器才可抵達目的 ip
特定主機路由: 有“備註”的特殊主機路由地址
預設路由: 在 IPv4 地址中,0.0.0.0 表示所有 IP 地址,因此預設路由通常被設定為指向所有網路的下一跳地址
丟棄: ip 資料包首部有 ttl,當 ttl 耗盡時就會丟棄並報告轉發分組出錯
4.5 無分類編址 CIDR【構成超網】
4.5.1 介紹
【例子】
最小地址
:主機號全 0,表示本網路
最大地址
:主機號全 1,表示廣播地址
IP地址位數
:2 5 = 32 個 IP 地址
CIDR地址塊
:用主機位全 0 表示
地址掩碼
:令網路位(前 27 位)全 1,後面的主機位全 0,(11111111 11111111 11111111 11100000)
4.5.2 構成超網
與劃分子網的區別:劃分子網是 由少變多 ,構成超網是 由多變少
【例子】
解題步驟
: 尋找地址共性(交集),再令主機位全 0(表網路地址)
4.5.3 最長字首匹配
匹配成功還不夠,還需要在所有匹配成功的網路地址裡找 CIDR 字首最長的(匹配就是拿自己的子網掩碼和目的 IP 地址相與,看所得網路地址和自己是否相同
0.0.0.0
:是預設閘道器(預設路由),當此路由器裡沒有可以與目的 IP 地址相匹配的,就會走此 IP 地址進入另一個路由器遍歷匹配,以此迴圈。
【習題】
5. ARP 協議
5.1 介紹
5.2 傳送資料的過程
【同一區域網路內】
【不同區域網之間-01】
【不同區域網之間-02】
ARP快取記憶體
:一個區域網內才有 ARP 快取記憶體
5.3 例題
6. DHCP 協議
6.1 主機如何獲取 IP 地址
- 靜態配置:【如,學校電腦室,由管理員手動配置, IP 地址、子網掩碼、預設閘道器】
- 動態配置【如,學校教室,人員流動大,手機、電腦等主機裝置不固定】
6.2 DHCP 介紹
7. ICMP 協議
7.1 介紹
網際控制報文協議
ICMP 報文位於 IP 資料包的資料部分
IP 資料包的首部檢驗和只檢驗首部,故位於資料部分的 ICMP 報文有著自己的檢驗和
我的問題:ICMP 可以作為 IP 資料包的資料部分全部內容嗎(有效負載)?
是可以的,IP 資料包的資料部分可以只包含 ICMP 報文資訊。在這種情況下,整個 IP 資料包的有效負載(Payload)就是 ICMP 報文。 ICMP 報文是一種特殊型別的資料,用於在網路中傳遞控制訊息和錯誤資訊,總的來說,ICMP 報文可以是 IP 資料包的全部有效負載,但始終巢狀在 IP 資料包中,以確保在網路中正確傳遞。
7.2 ICMP 差錯報文
7.2.1 五種型別
第二點的源點抑制已經棄用
7.2.2 ICMP 差錯報文資料欄位
我的問題:
1. ICMP 差錯報告報文為什麼要加上 IP 資料包首部,包含 ICMP 報文的 IP 資料包不是有首部嗎?
因為這兩個的 IP 資料包首部是不同的,一個是出錯資料包的首部,一個是返回資料包的首部,他們的源地址和目的地址是
不同的
eg:
2.為什麼要加上資料部分的前八個位元組?
額外附上資料的前 8 位元組的原因在於:IP 報文資料經常承載傳輸層的協議分組,前 8 個位元組剛好是分組的頭部。 有了差錯包的傳輸層分組頭部,則可以進一步確定差錯是訪問目標主機的什麼埠產生的。
7.2.3 不傳送 ICMP 差錯報文的情況
7.3 ICMP 詢問報文
第三和四種報文已經棄用
7.4 ICMP 應用
ping
:使用了 ICMP 詢問報文
Traceroute
:使用了 ICMP 時間超過差錯報告報文,主機透過傳送一連串資料包,並使這些資料包的 ttl 依次增加(第一個為 1),那麼每個資料包在 ttl 歸 0 後就會返回一個 ICMP,從而得知源點到終點的路徑(經過了哪些路由器)
8. IPv6
8.1 為什麼使用 IPv6
-
32 位 IPv4 地址空間已分配殆盡
-
CIDR、NAT 等技術的應用治標不治本
-
IPv6 能從 根本上解決 地址耗盡的問題
-
改進了源 IPv4 的首部結果,使其能快速處理、轉發資料包
-
支援 QoS【Quality of Service 服務質量】指一個網路能夠利用各種基礎技術,為指定的網路通訊提供更好的服務能力,是網路的一種安全機制,是用來解決網路延遲和阻塞等問題的一種技術。
有人說過:以 IPV6 的地址量,地球上的每一個沙粒都可以分到一個 IPV6 地址
8.2 IPv6 資料包格式
【簡圖】
擴充套件首部 :是對基本首部的補充,可以沒有,沒有時就是對 IPV4 的一種簡化
【詳圖】
8.3 IPv6 & IPv4
8.4 IPv6 地址表示形式
8.5 IPv6 基本地址型別
8.6 IPv4 向 IPv6 過渡的策略
上圖裡將 IPV6 協議的資料包封裝到 IPV4 協議資料包的資料部分,兩個 IPV4 路由器之間的鏈路可以稱為隧道
8.6.1 IPV6表示IPV4的兩類方法
為了實現同IPv4的相容性和過渡,在IPv6地址設計了兩類地址來表示IPv4地址:一類是相容的,它是96位0和32位的IPv4地址:另一類是對映的,它是由80位的0後面跟著16位的1,再後面就32位的IPV4地址。
8.7 總結
9. 路由演算法及相關路由協議
9.1 路由演算法
9.1.1 路由表結構
9.1.2 路由演算法分類
9.1.3 分層次的路由選擇協議
9.2 RIP 協議及距離向量演算法
9.2.1 RIP 協議
9.2.1.1 介紹
適用於小型網路
9.2.1.2 RIP 協議報文格式
RIP 協議報文是 UDP 資料包的資料部分,UDP 是傳輸層協議,所以 RIP 是高層應用層的協議
9.2.1.3 特點
好訊息傳的快,壞訊息傳的慢
‘
當壞訊息比好訊息傳得慢是就會出現相鄰路由器不斷更新路由表項直到距離到 16 的情況
9.2.2 路由資訊交換規則
路由器間彼此 每三十秒 交換一次資訊,第一次各路由器得知自己相鄰的資訊,在下一次就能合併鄰居的鄰居的資訊
9.2.3 距離向量演算法
若路由表裡有和傳回的專案下一跳相同的專案還更新路由表的原因是路由表資訊 必須是最新的 ,通訊鏈路時時都會發生變化
距離向量演算法 :就是將鄰居路由器發來的所有表項下一跳改為 鄰居 ,再將所有的距離 加一 (與鄰居的距離)
【例題 1】
簡單 “修改”,“加一” 後,根據演算法判斷是否需要更新表項,沒有的表項要更新,下一跳沒變要更新,下一跳改變判斷距離縮寫了要更新
【例題 2】
解:加上延遲後分別在值裡找最小值,注意 C 到自己的距離為 0
9.2.4 小結
9.3 OSPF 協議及鏈路狀態演算法
9.3.1 OSPF 協議
9.3.2 鏈路狀態路由演算法
9.3.3 OSPF 的區域
區域邊界路由器 :如 R3、R4、R7 這些處於邊界的路由器
自治系統邊界路由器 :在主幹路由器中的路由器 R6,這種需要與其他自治系統相連的路由器又叫自治系統邊界路由器
9.3.4 OSPF 分組情況
OSPF 協議所屬層次 :有人說它是傳輸層的協議,因為它是 IP 資料包的資料部分,也有人說他是網路層協議,說法不一
9.3.5 其他特點
收斂速度快於 RIP 協議的原因是,OSPF 協議省去了 RIP 協議裡與自己路由表對照的那一步,它將收來的資訊都放入鏈路狀態資料庫裡,並且統一使用 Dijkstra 演算法處理
9.4 BGP 協議
9.4.1 介紹
9.4.2 BGP 協議交換資訊的過程
BGP 協議交換的是一組 路徑向量
9.4.3 BGP 協議報文格式
不難看出 BGP 協議是應用層協議
9.4.4 BGP 協議特點
BGP 支援 CIDR(Classless Inter-Domain Routing),這意味著它可以有效地處理不同長度的 IP 字首,而不僅僅是傳統的類別 A、B 或 C 網路。
9.4.5 BGP-4 的四種報文
BGP-4 是現在最常用的 BGP 協議
9.5 三種路由協議比較
OSPF 使用 IP 報文可以減少一個傳輸層的協議頭,從而減少開銷
10. IP 組播
10.1 IP 資料包的三種傳輸方式
【單播模式下-IP 資料包的傳送】
【組播模式下-IP 資料包的傳送】
10.2 IP 組播地址
10.3 硬體組播
10.4 IGMP 協議與組播路由協議
10.4.1 IGMP 協議
網際組管理協議IGMP
10.4.1.1 協議工作圖解
10.4.1.2 協議在 TCP/IP 協議簇中的位置
10.4.1.3 IGMP 工作的兩個階段
10.4.2 組播路由選擇協議
10.4.2.1 介紹
10.4.2.2 常使用的三種演算法
10.5 總結
11. 移動 IP
11.1 相關術語
11.2 通訊過程
12. 網路層裝置
12.1 路由器
12.1.1 介紹
路由器可以理解為一種特殊的計算機,所以在和主機相連時用交叉線
路由器可分為路由選擇部分和分組轉發部分,路由選擇部分用於處理RIP/OSPF分組等,交給路由選擇處理機生成路由表,資料分組則交給分組轉發部分,透過查詢路由錶轉發
12.1.2 輸入埠對線路上收到的分組的處理
12.1.3 輸出埠將交換結果傳送來的分組傳送到線路
12.2 三層裝置的區別
12.3 路由表與路由轉發
第五章 傳輸層
1. 傳輸層概述
1.1 介紹
1.2 傳輸層的兩個協議
-
面向連線的傳輸控制協議TCP
:傳送資料之前必須建立連線,資料傳送結束後要釋放連線。不提供廣播或多播服務。由於 TCP 要提供可靠的面向連線的傳輸服務,因此不可避免增加了許多開銷:確認、流量控制、計時器及連線管理等。【可靠、面向連線、時延大、適用於大檔案】 -
無連線的使用者資料包協議UDP
:傳送資料之前不需要建立連線,收到 UDP 報文後也不需要給出任何確認。【不可靠、無連線、時延小、適用於小檔案】
1.3 傳輸層的定址與埠
複用
:應用層所有的應用程序都可以透過傳輸層再傳輸到網路層
分用
:傳輸層從網路層收到資料後交付給指明的應用程序
埠【邏輯埠/軟體埠】
:是傳輸層的 SAP,標識主機的應用程序(SAP:服務訪問點)
埠號只有本地意義,在因特網中不同計算機的相同埠號是沒有聯絡的
埠號長度為 16bit,能表示 65536 個不同的埠號
客戶端使用的埠號又叫短暫埠號
2. UDP 協議
使用者資料包協議
2.1 UDP 概述
2.2 UDP 首部格式
2.2.1 圖解
2.2.2 UDP 校驗
3. TCP 協議
3.1 TCP 協議特點
3.2 TCP 報文段首部格式
3.3 TCP 連線管理
3.3.1 TCP 的連線建立
seq是符號位,ack是確認位,ACK是控制位裡的確認位,1代表ack有值
3.3.2 SYN 洪泛攻擊
解決辦法:SYN cookie
3.3.3 TCP 連線的釋放
u代表前面傳送資料過程中傳送的最後一個資料序號加一
我對建立連線時需要三次握手,斷開連線卻需要四次握手的理解:建立連線時,三步握手的過程確保了雙方都同意建立連線,雙方都知道對方已經準備好進行通訊,而斷開連線時,由於已經進行了資料的傳輸,雙方都需要對資料進行處理,處理好的一方發出斷開連線請求,它不能同時要求另一方斷開連線,另一方可能還沒有處理完資料,所以斷開連線時需要兩方單獨發出請求
總之:四步握手確保了雙方都有足夠的時間來處理完資料,而不會導致資料的丟失。在斷開連線時,確保了雙方都有機會告知對方它們已經完成了資料的傳輸和處理。
3.3.4 TCP 可靠傳輸
可靠傳輸:可靠傳輸就是我發12345,你就得收到12345,不能時1234也不能是42351,必須全且按序
3.3.4.1 校驗
與 UDP 校驗一樣,增加偽首部
3.3.4.2 序號
3.3.4.3 確認
在沒有收到4,5,6時,即使已經收到了7、8,但接收方返回的確認幀仍然還是4,應為採用累計確認
3.3.4.4 重傳
3.3.5 TCP 流量控制
對於第五行的理解:因為201300的資料丟失,傳送方隨之有發來301400的資料,接收方在接收後,會將201300的視窗空出,此時雖然視窗還存在200個位元組大小的空間,但是傳送方不知道201300的資料丟失,所以只能傳送100位元組新資料
3.3.6 TCP 擁塞控制
3.3.6.1 介紹
3.3.6.2 四種演算法
慢開始和擁塞避免
新的ssthresh值為:發生擁塞時最大擁塞視窗量的一半
擁塞視窗的翻倍在於是否收到前面視窗的確認
達到門限值後就減緩
快重傳和快恢復
當收到三個冗餘確認報文後就會啟動快重傳演算法(流量控制內容),然後會採用快回復,將cwnd設為產生擁塞視窗值的一半
第六章 應用層
1. 應用層概述
2. 網路應用模型
2.1 客戶伺服器(C/S)模型
2.2 P2P模型
3. 域名解析系統DNS
3.1 域名
每個點後的內容叫一個標號,規定不能超過63個字元,但為了方便記憶,一般不超過12個字元,不區分大小寫
域名的完整部分在比如com這種頂級域名後面還有一個“ . ”,稱為根,域名的等級從左到右,由低到高
3.2 域名伺服器
3.3 域名解析過程
分為遞迴查詢和迭代查詢
引入快取記憶體,記錄之前查詢的域名與IP的對映結果,使得下次查詢可以直接從快取裡讀取,大大減少了域名伺服器的負荷,加快dns解析的速度
注:為了使快取記憶體的對映結果的準確性,會為其新增一個計時器,定時檢查對映的可用性
通常情況下,DNS(Domain Name System)使用的是運輸層的UDP(User Datagram Protocol)協議,而不是TCP(Transmission Control Protocol)協議。UDP是一種無連線的、輕量級的傳輸協議,適用於一些對實時性要求較高、可以容忍一定丟失的應用場景。
DNS使用UDP主要是出於效能和效率的考慮。DNS查詢通常是短小的請求-響應過程,UDP的無連線特性可以減少通訊的開銷。此外,DNS通常在網路中起到定址的作用,而不需要像TCP那樣建立持久的連線。
4.檔案傳輸協議FTP
4.1 FTP與TFTP
4.2 FTP伺服器與客戶端
4.3 FTP工作原理
5. 電子郵件
5.1 電子郵件系統概述
5.1.2 資訊格式
5.1.3 組成結構
5.2 簡單電子郵件傳送協議SMTP
5.2.1 介紹
5.2.2 通訊過程
5.2.3 MIME
5.3 郵局協議POP3
5.4 網際報文存取協議IMAP
5.5 基於全球資訊網的電子郵件
6. 全球資訊網和HTTP協議
6.1 全球資訊網概述
6.2 超文字傳輸協議HTTP
6.2.1 介紹
6.2.2 HTTP特點
6.2.3 HTTP協議的連線方式
- 非持久連線(Non-Persistent Connection):
- 在非持久連線中,每個HTTP請求都需要新建一個TCP連線,並在請求完成後立即關閉連線。
- 每個請求都獨立處理,伺服器在每次請求後都需要重新建立連線,這導致連線的開啟和關閉的開銷。
- 對於每個請求,都需要經歷TCP的三次握手和四次揮手的過程,這增加了延遲和資源消耗。
- 持久連線(Persistent Connection):
- 在持久連線中,客戶端和伺服器之間的TCP連線在一定的時間內保持開啟狀態,可以被多個請求和響應共享。
- 在一個持久連線中,多個HTTP請求和響應可以在同一個TCP連線上依次傳輸,而無需每次都重新建立連線。
- 持久連線減少了連線建立和關閉的開銷,提高了效能,特別是對於多個小檔案或資源的請求。
6.2.4 報文結構
ping原理
1. 網際控制報文協議ICMP
1.1 簡介
有效轉發IP報文和提高交付成功的機會
ICMP報文作為IP報文的資料部分被髮送出去,屬於網路層協議
ICMP報文格式:
ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告
1.2 種類
ICMP報文分為兩種:ICMP差錯報告報文 和 ICMP詢問報文
幾種常用的報文型別:
程式碼欄位
:進一步區分某種型別的幾種不同的情況
檢驗和欄位
:檢驗整個報文IP報文首部的檢驗和欄位,並不檢驗資料部分,因此,經過IP報文傳輸並不保證ICMP報文沒有差錯
1.3 差錯報告報文
- 終點不可達:當路由器或者主機不能交付資料包時就向源點傳送終點不可達報文
- 時間超時:
- 當路由器或主機收到生存時間為 0 的資料包時,會丟棄資料包並向源點傳送時間超時報文
- 當終點在規定時間內不能接收到全部的資料包片時,會丟棄所有已收到的資料包片並向源點傳送時間超時報文
- 引數問題:當路由器或者主機收到的資料包的首部中有的欄位不正確時,丟棄資料包並向源點傳送引數問題報文
- 改變路由【重定向】:路由器把改變路由報文傳送給主機,讓主機知道下一次應該將資料包傳送給另外的路由器【可透過更好的路由】
1.4 不應該傳送ICMP差錯報告報文的情況
- 對ICMP差錯報告報文,不再傳送ICMP差錯報告報文
- 對第一個資料包片的所有後續報片,都不傳送ICMP差錯報告報文
- 對具有多播地址的資料包,都不傳送ICMP差錯報告報文
- 對具有特殊地址的資料包【127.0.0 或 0.0.0.0】,不傳送ICMP差錯報告報文
1.5詢問報文
- 回送請求和回答報文:用來測試目的站是否可達及瞭解其相關資訊。ICMP回送請求報文由主機或者路由器向特定目的主機發出的詢問,收到此報文的木器主機必須給源主機或路由器傳送ICMP回送回答報文。
- 時間戳請求和回答報文:用於時鐘同步和時間測量。ICMP時間戳請求報文是請求某臺主機或路由器回答當前的日期和時間。在ICMP時間戳回答報文中有一個32位的欄位,其中寫入的整數代表從1900年1月1日到當前時刻一共有多少秒。
2. ICMP的應用-PING
- ICMP的一個重要的應用就是
分組網間探測PING
,用來測試兩臺主機之間的連通性。- PING使用了ICMP回送請求和回答報文,是應用層直接使用網路層ICMP的一個例子,沒有透過傳輸層的TCP或UDP。
3. PING測試
- 一共傳送四個ICMP回送請求報文
- 由於往返的ICMP報文上都有時間戳,因此很容易計算出往返時間
4. 擴充
4.1 tracert
- ICMP的另外一個應用
- 用來跟蹤一個分組從源點到終點的路徑
- tracert命令從源主機向目的主機傳送一連串的IP資料包,資料包中封裝的是無法交付的UDP使用者資料包【使用了非法的埠號】。
- 第一個資料包P1的生存時間TTL設定為1,當P1到達路徑上的第一個路由器R1時,路由器R1先收下它,接著把TTL值減去1。由於TTL等於0,R1把P1丟棄,並向源主機傳送一個ICMP時間超時差錯報告報文
- 源主機接著傳送第二個資料包P2,並把TTL設定為2.當P2到達R2時,TTL為0. 此時發回ICMP時間超時差錯報文。
- 如此繼續下去,直到最後一個資料包到達目的主機,TTL為1,主機不轉發資料包也不把TTL減1。但因IP資料包中封裝的是無法交付的運輸層UDP報文,因此目的主機要向源主機傳送ICMP終點不可達差錯報文
- 如此,源主機達到了自己的目的,因為這些路由器和最後的目的主機發來的ICMP報文正好給出了源主機想知道的路由資訊--到達目的主機所經過的路由器的IP地址,以及到達其中的每一個路由器的往返時間。
4.2 測試
- 圖中每一行有三個時間出現,是因為對應與每一個TTL值,源主機要傳送三次相同的IP資料包
- 原則上,IP資料包經過的路由器越多,所花費的時間也會越多。但有時正好相反,這是因為網際網路的擁塞程度隨時都在變化,也很難預料到。
- 因此完全有可能經過更多的路由器反而花費的時間更少
面試常問
1. OSI的七層模型分別是什麼?各自的功能是什麼?
- 應用層:所有能和使用者互動產生網路流量的程式,包含協議FTP、SMTP、HTTP等
- 表示層:用於處理兩個通訊系統【如使用者程序】之間資訊的表示方式【如資料格式轉換、加解密、壓縮恢復等】,包含協議JPEG、ASCII等
- 會話層:為表示層實體/使用者程序提供連線建立,以便資料在連線上有序傳輸。在會話層包含檢驗點,當連線異常斷開重連後,可以使會話狀態從檢驗點恢復,適合大檔案傳輸。包含協議ADSP、ASP等
- 傳輸層:為兩個程序提供端到端通訊,傳輸單位是使用者資料包或報文段。主要功能是可靠傳輸、不可靠傳輸、流量控制、差錯控制、複用分用。主要協議TCP、UDP
- 網路層:把分組從源主機傳到目的主機,為分組交換網上的兩臺主機提供通訊服務。傳輸單位是資料包。主要功能是 路由選擇、差錯控制、流量控制、擁塞控制。主要協議:IP、IPX、ARP、RARP、ICMP、IGMP、OSPF
- 資料鏈路層:把網路層傳下來的資料包封裝成幀。主要功能是 流量控制、差錯控制、通道訪問控制。主要協議 PPP、STP、HDLC、SDLC
- 物理層:在物理媒體上實現位元流的透明傳輸。主要功能是 定義介面特性、定義傳輸模式、定義傳輸速率、位元編碼、位元同步。主要協議,Rj45、802.3
2. 說說一次完整的HTTP請求過程包含的步驟?
- 進行域名解析
- 發起TCP3次握手建立連線
- 客戶端發起http請求
- 伺服器響應請求,返回HTML程式碼
- 客戶端解析程式碼,並請求HTML程式碼中包含的資源【JS、CSS、圖片等】
- 瀏覽器對頁面進行渲染
- 4次揮手斷開連線
3. 解釋一下DNS?
答:DNS即域名系統,是IP地址與域名相互對映的分散式資料庫。主要功能是域名解析,即能根據域名解析出對應的IP地址。DNS屬於應用層協議,使用UDP進行通訊。
4. DNS的工作原理
- 瀏覽器發出域名解析請求,先在瀏覽器查詢快取,若無則在作業系統查詢快取,若無則把請求發往本地域名伺服器。
- 本地域名伺服器查詢自身快取,若無則把請求發往根域名伺服器。
- 根域名伺服器返回頂級域名伺服器地址給本地域名伺服器。
- 本地域名伺服器根據返回的地址再次傳送請求。頂級域名伺服器查詢自身快取,若無則返回下一層域名伺服器,如此往復,直到找到記錄。
- 本地域名會快取返回的結果,並把結果返回給瀏覽器。
5. 為什麼域名解析用UDP協議
- 因為UDP工作方式簡單方便,只需一次請求、一次響應即可完成解析工作。
- 而使用TCP需要三次握手建立連線、請求與應答、四次揮手等操作,複雜且耗時長。
- UDP傳輸內容最大不能超過512位元組,但是對於域名解析來說已經足夠。
6. 區域傳輸為什麼使用TCP協議
- 將一個區域檔案複製到多個DNS伺服器的過程稱為區域傳輸,用來實現DNS伺服器的主從複製。
- TCP 協議為可靠傳輸協議