以下總結提綱來自于hcgg,偉大無需多言。socket編程沒有寫進去,Rdt的話我后來感覺可能只考概念,其余我感覺會考的部分都在里面了,如果有錯誤或者解釋不清楚造成的疑問,希望大家及時指正,感謝。
應用層
DNS遞歸&迭代【畫圖】
區別
這個up畫的圖很直觀的講了這兩者的區別(里面的問一次?就是發一次域名請求消息)
查詢方式使用
而DNS服務器有本地,頂級這些,具體的查詢方式如下:
1.?在主機查詢本地域名服務器的時候使用遞歸查詢(記成本地服務器幫忙問)
2.?在本地服務器查詢根、頂級、權威域名服務器的時候使用的是迭代查詢(因為問的服務器沒有義務幫忙問)
查詢次數
DNS查詢最少次數為1,這一次是直接查本地域名服務器就查到了。
DNS查詢最多次數為4,1次本地域名服務器沒查到,然后1次根域名服務器,也沒查到,1次頂級域名服務器也沒查到,1次權威域名服務器查到了。順序是根-頂級-權威。
Http版本迭代
1. HTTP/1.0
-
每次請求需建立單獨的 TCP 連接(短連接),請求完成后立即關閉。
-
無狀態協議,不支持持久連接(Keep-Alive)。
-
性能差:頻繁建立連接增加延遲。
2. HTTP/1.1
-
核心改進:
-
持久連接(默認啟用 Keep-Alive):一個 TCP 連接可處理多個請求/響應,減少延遲。
-
管道化(Pipelining):允許連續發送多個請求(無需等待響應),但存在隊頭阻塞(HOL Blocking)問題。
-
緩存控制:新增?
Cache-Control
、ETag
?等頭部字段。 -
分塊傳輸(Chunked Transfer):支持流式傳輸。
-
-
缺點:
-
隊頭阻塞(前一個請求未完成會阻塞后續請求)。
-
頭部冗余(每次請求攜帶重復的頭部信息)。
-
3. HTTP/2
-
核心改進:
-
二進制協議:取代文本格式,解析更高效。
-
多路復用(Multiplexing):單一 TCP 連接上并行傳輸多個請求/響應,解決隊頭阻塞。
-
頭部壓縮(HPACK):減少冗余頭部開銷。
-
服務器推送(Server Push):服務器可主動推送資源。
-
-
缺點:
-
仍依賴 TCP,可能因 TCP 丟包重傳引發隊頭阻塞。
-
4. HTTP/3
-
核心改進:
-
基于 QUIC 協議:使用 UDP 替代 TCP,解決 TCP 的隊頭阻塞和握手延遲。
-
內置加密:默認使用 TLS 1.3,安全性更高。
-
快速連接建立:0-RTT(零往返時間)恢復連接。
-
改進的多路復用:每個數據流獨立傳輸,徹底解決隊頭阻塞。
-
-
優勢:
-
更適合高延遲、不穩定網絡(如移動端)。
-
對比總結
版本 | 核心協議 | 連接方式 | 關鍵改進 | 主要問題 |
---|---|---|---|---|
HTTP/1.0 | TCP | 短連接 | 基礎文本協議 | 性能差 |
HTTP/1.1 | TCP | 持久連接 | 管道化、緩存控制 | 隊頭阻塞、頭部冗余 |
HTTP/2 | TCP | 多路復用 | 二進制、頭部壓縮、服務器推送 | TCP 層隊頭阻塞 |
HTTP/3 | QUIC/UDP | 獨立流傳輸 | 無隊頭阻塞、0-RTT、內置加密 | 兼容性需提升 |
CDN
概念
CDN(Content Delivery Network,內容分發網絡)是一個分布式服務器網絡,用于快速、高效地向用戶分發靜態和動態內容(如網頁、視頻、圖片等)。
作用
-
加速訪問:將內容緩存到離用戶最近的服務器,減少延遲。
-
減輕源站壓力:分擔流量,避免服務器過載。
-
提高可用性:即使部分節點故障,仍可提供服務。
工作原理
-
用戶請求資源時,CDN 會智能選擇最近的邊緣服務器響應。
-
若邊緣服務器沒有緩存,則從源站獲取并緩存,供后續用戶使用。
P2P
P2P(Peer-to-Peer,對等網絡)是一種去中心化的網絡架構,其中所有節點(Peer)地位平等,既可以是客戶端(請求數據),也可以是服務器(提供數據)。
應用?下載使用的種子節點、區塊鏈這些,沒有什么好說的
傳輸層
TCP三次握手四次揮手【畫圖】
UDP
UDP(用戶數據報協議)是一種無連接的傳輸層協議,提供簡單、不可靠的數據傳輸服務。
主要特點
-
無連接:無需建立連接即可發送數據。
-
不可靠:不保證數據順序、不重傳丟失報文。
-
高效:頭部開銷小(僅8字節),傳輸延遲低。
-
支持廣播/多播:可向多個目標同時發送數據。
與TCP的主要區別
-
TCP可靠、有連接、保證順序;UDP不可靠、無連接、不保證順序。
-
TCP適合文件傳輸;UDP適合實時性要求高的應用。
擁塞控制&流量控制
擁塞控制算法
流量控制算法
這個一般會結合TCP三次握手四次揮手去考
RDT
RDT(可靠數據傳輸協議,Reliable Data Transfer)是一種確保數據在不可靠信道上可靠傳輸的機制,通常用于傳輸層(如TCP)或應用層協議設計。核心目的是確保數據無差錯、不丟失、不重復、按序到達接收端。
主要技術
-
校驗和:檢測數據錯誤(如CRC、校驗和)。
-
確認(ACK)與重傳:接收方確認成功接收,發送方超時未收到ACK則重傳。
-
序號(Sequence Number):標識數據包,解決亂序和重復問題。
-
滑動窗口:允許連續發送多個包,提高效率(如TCP的窗口機制)。
RDT 1.0(理想可靠信道)
-
假設:底層信道完全可靠(無比特差錯、無丟包、無亂序)。
-
機制:無需任何額外控制(如校驗、ACK、序號等),直接發送和接收數據。
-
問題:現實中不存在完全可靠的信道,僅作為理論基準。
RDT 2.0(處理比特差錯)
-
問題:信道可能發生比特差錯(如數據損壞)。
-
機制:
-
校驗和(Checksum):檢測數據是否出錯。
-
ACK/NAK:
-
接收方校驗無誤 → 回復?ACK(確認)。
-
校驗出錯 → 回復?NAK(否定確認),要求重傳。
-
-
重傳:發送方收到NAK或未收到反饋時重發數據。
-
-
缺陷:
-
若?ACK/NAK 本身丟失或損壞,發送方無法區分是否需重傳,可能導致重復或丟包。
-
RDT 2.1(引入序號解決ACK/NAK丟失)
-
改進點:在RDT 2.0基礎上增加序號(0/1),解決ACK/NAK丟失導致的歧義。
-
機制:
-
每個數據包攜帶1比特序號(交替0和1)。
-
接收方通過序號判斷是否收到重復包(如收到相同序號則丟棄并重發ACK)。
-
-
示例:
-
發送方發送包(seq=0)→ 接收方回復ACK0。
-
若ACK0丟失,發送方超時重發包(seq=0)→ 接收方發現重復,丟棄包并再次回復ACK0。
-
RDT 2.2(取消NAK,僅用ACK+序號)
-
改進點:取消NAK,全部用帶序號的ACK(如ACK0、ACK1)實現確認。
-
機制:
-
接收方若檢測到錯誤,直接不回復ACK(發送方超時重傳)。
-
若數據正確,回復下一個期望的序號(如收到seq=0,回復ACK1)。
-
-
優勢:簡化協議設計,與TCP的確認機制類似。
RDT 3.0(處理丟包問題)
-
問題:信道可能丟失數據包或ACK(不只有比特差錯)。
-
機制:
-
超時重傳計時器:發送方每次發送數據后啟動計時器,若超時未收到ACK則重傳。
-
序號+ACK:沿用RDT 2.2的序號機制,避免重復包問題。
-
-
關鍵點:
-
計時器時長需大于RTT(往返時間),否則會頻繁誤判丟包。
-
即使ACK丟失,超時重傳仍能保證可靠性。
-
-
示例:
-
發送方發送包(seq=0)→ 若包丟失,接收方無反饋 → 發送方超時重傳。
-
若ACK丟失,發送方超時重傳 → 接收方通過序號去重。
-
各版本核心改進總結
版本 | 解決的問題 | 關鍵技術 | 缺陷或局限 |
---|---|---|---|
1.0 | 無(理想信道) | 無 | 不現實 |
2.0 | 比特差錯 | 校驗和、ACK/NAK、重傳 | ACK/NAK丟失導致歧義 |
2.1 | ACK/NAK丟失 | 1比特序號(0/1) | 仍需NAK機制 |
2.2 | 簡化確認機制 | 僅用帶序號的ACK | 未解決丟包問題 |
3.0 | 數據包或ACK丟失 | 超時重傳計時器 | 效率低(停等協議) |
后續演進(超出基礎RDT)
-
滑動窗口協議:RDT 3.0是停等協議(發1個包等1個ACK),效率低;滑動窗口允許連續發送多個包(如TCP)。
-
擁塞控制:純RDT不解決網絡擁塞問題,需額外機制(如TCP的慢啟動、擁塞避免)。
總結:RDT通過逐步增加差錯檢測、序號、ACK、超時重傳等機制,最終實現可靠傳輸,為TCP等協議奠定基礎。
套接字編程
函數名? | 漢語名 |
socket() | 創建套接字 |
bind() | 綁定地址和端口 |
listen() ? ? | 監聽連接(TCP) |
accept() | 接受連接(TCP) |
connect() | 發起連接(TCP/UDP) |
send()/write() | 發送數據 |
recv()/read() | 接收數據 |
sendto() | 發送數據(UDP) |
recvfrom() | 接收數據(UDP) |
inet_addr()/inet_aton() | IP地址轉換 |
inet_ntoa() | IP地址轉字符串 |
getaddrinfo() | 地址信息查詢 |
freeaddrinfo() | 釋放地址信息 |
setsockopt() | 設置套接字選項 |
getsockopt() | 獲取套接字選項 |
close()/shutdown() | 關閉套接字 |
select()/poll()/epoll() | I/O多路復用 |
fcntl() ? | 文件控制 |
gethostbyname() | 主機名解析(過時) |
可靠數據傳輸協議
可靠數據傳輸協議(RDT)是一種確保數據在網絡中無差錯、不丟失、不重復、按序到達的傳輸機制,通常用于TCP等可靠傳輸協議。
引入技術
-
差錯檢測(如校驗和 Checksum)
-
確認機制(ACK, Acknowledgement)
-
超時重傳(Timeout & Retransmission)
-
序號機制(Sequence Number)
-
滑動窗口(Sliding Window)
回退N幀協議(GBN, Go-Back-N)
(1)基本思想
-
發送方維護一個固定大小的窗口(N),可以連續發送多個分組。
-
接收方只按序接收,丟棄所有亂序分組,并返回最后一個正確接收的ACK。
-
如果某個分組丟失或超時,發送方重傳該分組及其之后的所有分組(“回退N幀”)。
(2)特點
??簡單,接收方只需維護一個期望的序號。
??效率低,一旦丟包,需要重傳大量分組。
選擇重傳協議(SR, Selective Repeat)
(1)基本思想
-
發送方和接收方各自維護一個滑動窗口。
-
接收方緩存亂序到達的分組,并返回每個正確接收的分組的ACK。
-
發送方只重傳丟失或超時的分組,而不是全部回退。
(2)特點
??高效,只重傳丟失的分組,減少帶寬浪費。
??實現復雜,接收方需要緩存亂序分組,并管理多個ACK。
GBN vs SR 對比
特性 | GBN(回退N幀) | SR(選擇重傳) |
---|---|---|
接收方式 | 只按序接收,丟棄亂序分組 | 緩存亂序分組 |
ACK機制 | 累積確認(只ACK最后一個正確接收的) | 單獨確認(每個分組都ACK) |
重傳策略 | 丟失分組及其后所有分組全部重傳 | 僅重傳丟失的分組 |
效率 | 低(可能重傳大量數據) | 高(只重傳必要的分組) |
實現復雜度 | 簡單 | 復雜(需緩存亂序分組) |
總結
-
GBN?適用于低錯誤率網絡,實現簡單但效率低。
-
SR?適用于高錯誤率網絡,效率高但實現復雜。
-
TCP 實際結合了 GBN 和 SR 的思想(如快速重傳、選擇確認 SACK)。
網絡層
IP與子網劃分【計算題】
DHCP
概念
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一種網絡協議,用于自動為設備分配 IP 地址、子網掩碼、默認網關和 DNS 服務器等網絡配置信息。使設備能快速接入網絡,廣泛應用于家庭、企業等場景。
作用
-
自動分配 IP 地址:避免手動配置,減少錯誤。
-
集中管理網絡參數:管理員可統一設置和更新。
-
提高 IP 利用率:動態回收和分配 IP,節省地址資源。
工作原理
-
發現(Discover):客戶端廣播請求 IP 地址。
-
提供(Offer):DHCP 服務器回應可用的 IP 地址。
-
請求(Request):客戶端確認選擇該 IP。
-
確認(Acknowledge):服務器正式分配 IP 并發送配置信息。
優點
-
簡化網絡管理,減少人工配置
-
支持 IP 地址的動態回收和復用
-
可擴展性強,適用于大規模網絡
NAT
NAT(Network Address Translation,網絡地址轉換)是一種網絡技術,用于將私有(內網)IP 地址轉換為公有(外網)IP 地址,使多臺設備能共享一個公網IP訪問互聯網。
作用
-
節省 IPv4 地址:多個設備共用1個公網IP,緩解地址不足問題。
-
增強安全性:隱藏內網設備真實IP,防止外部直接訪問。
-
解決地址沖突:允許不同內網使用相同的私有IP段(如192.168.1.x)。
常見類型
-
靜態NAT:一對一固定映射(如將內網服務器暴露到公網)。
-
動態NAT:多對多IP池映射(臨時分配公網IP)。
-
PAT(NAPT):多對一映射,通過不同端口區分設備(最常見,家庭路由器即采用此方式)。
Traceroute
Traceroute(路由追蹤)是一種網絡診斷工具,用于檢測數據包從源主機到目標主機經過的所有網絡路徑(路由器跳數),并測量每跳的延遲時間。Traceroute 通過TTL機制追蹤網絡路徑,是網絡管理員常用的故障診斷工具。
作用
-
顯示數據包傳輸路徑
-
檢測網絡故障節點(如丟包、高延遲)
-
分析網絡拓撲結構
工作原理
-
發送TTL(生存時間)遞增的探測包(ICMP/UDP/TCP)
-
每經過一個路由器,TTL減1,當TTL=0時返回"超時"響應
-
通過收集各跳的響應IP和耗時,構建完整路徑
路由CS+DV【迪杰斯特拉算法】
數據鏈路層
CRC?校驗和 與?差錯檢測
性能比較
CRC >?校驗和 >?差錯檢測
CRC算法內容
校驗和與奇偶校驗
通信劃分協議
FDM分頻率、TDM分時間、CDM分編碼,三者分別通過頻域、時域和編碼域實現多路信號共享信道。
?FDM(頻分復用,Frequency Division Multiplexing)
-
原理:將總帶寬劃分為多個不同頻率的子信道,每個信號占用一個頻段。
-
特點:
-
各信號并行傳輸,互不干擾(如廣播電臺、Wi-Fi信道)。
-
需要保護頻帶(Guard Band)防止串擾。
-
-
應用:傳統電話系統、無線電廣播、有線電視(CATV)。
TDM(時分復用,Time Division Multiplexing)
-
原理:將時間劃分為固定時隙,每個信號輪流占用全部帶寬的特定時間段。
-
特點:
-
按時間片輪轉(如CPU時間片調度)。
-
需嚴格同步時鐘(如SDH光纖通信)。
-
-
應用:傳統電話PCM系統、4G LTE的時隙分配。
CDM(碼分復用,Code Division Multiplexing)
-
原理:為每個信號分配唯一編碼(擴頻碼),所有信號共享同一頻段和時間,通過編碼區分。
-
特點:
-
抗干擾能力強(如軍事通信)。
-
支持軟容量(用戶數靈活增減)。
-
-
應用:3G(CDMA2000)、GPS信號、Wi-Fi DSSS技術。
對比總結
復用技術 | 劃分維度 | 典型場景 | 核心優勢 | 主要缺點 |
---|---|---|---|---|
FDM | 頻率 | 廣播、ADSL | 簡單易實現 | 帶寬利用率低 |
TDM | 時間 | 傳統電話、光纖通信 | 延遲穩定 | 需精確同步 |
CDM | 編碼 | 3G網絡、衛星通信 | 抗干擾、安全性高 | 實現復雜 |
隨機訪問協議
ALOHA簡單但效率低,CSMA通過監聽信道顯著提升性能;CSMA/CD用于有線網絡,CSMA/CA解決無線沖突問題。
ALOHA(純ALOHA & 時隙ALOHA)
-
原理:
-
純ALOHA:用戶有數據就立刻發送,沖突后隨機退避重發。
-
時隙ALOHA:時間被劃分為時隙,用戶只能在時隙起點發送。
-
-
特點:
-
無需監聽信道,實現簡單。
-
信道利用率低(純ALOHA僅18%,時隙ALOHA約36%)。
-
-
應用:早期衛星通信、RFID標簽。
CSMA(載波監聽多路訪問,Carrier Sense Multiple Access)
-
原理:發送前先監聽信道:
-
非持續CSMA:信道忙則隨機等待后再監聽。
-
1-持續CSMA:信道忙則持續監聽,空閑立即發送。
-
p-持續CSMA:信道空閑時以概率p發送。
-
-
改進版:
-
CSMA/CD(用于以太網):檢測到沖突后立即停止發送。
-
CSMA/CA(用于Wi-Fi):通過ACK和退避機制避免沖突。
-
-
特點:
-
減少沖突概率,提高信道利用率。
-
需額外機制處理隱藏終端問題(如RTS/CTS)。
-
-
應用:有線以太網(CSMA/CD)、無線Wi-Fi(CSMA/CA)。
對比總結
協議 | 核心機制 | 信道利用率 | 典型場景 | 主要缺點 |
---|---|---|---|---|
純ALOHA | 直接發送,沖突后重傳 | ≤18% | 早期衛星通信 | 效率極低 |
時隙ALOHA | 時隙同步發送 | ≤36% | RFID系統 | 需時間同步 |
CSMA | 先監聽后發送 | 較高 | 有線/無線局域網 | 存在隱藏終端問題 |
CSMA/CD | 監聽+沖突檢測 | 80%~90% | 傳統以太網(半雙工) | 不適用于無線環境 |
CSMA/CA | 監聽+沖突避免 | 60%~70% | Wi-Fi(無線網絡) | 額外控制幀開銷 |
輪流協議
輪詢依賴主節點分配發送權,令牌傳輸通過令牌循環實現無沖突訪問;前者適合主從網絡,后者適用于分布式高負載場景。
輪詢(Polling)
-
原理:
-
主節點(如服務器)按固定順序依次詢問各從節點(如終端設備)是否有數據發送。
-
從節點收到詢問后,若有數據則發送,否則回復“無數據”。
-
-
特點:
-
集中式控制:依賴主節點協調,主節點故障則全網癱瘓。
-
公平性:每個節點有均等機會發送數據。
-
效率問題:即使節點無數據,仍需輪詢,造成帶寬浪費。
-
-
應用場景:
-
傳統的主從式網絡(如早期IBM系統)。
-
工業控制網絡(如Modbus協議)。
-
令牌傳輸(Token Passing)
-
原理:
-
一個特殊幀(令牌)在節點間按邏輯順序傳遞。
-
只有持有令牌的節點可發送數據,發送后釋放令牌給下一節點。
-
-
特點:
-
分布式控制:無需主節點,令牌丟失時需恢復機制。
-
無沖突:令牌獨占性避免數據沖突。
-
延遲問題:節點需等待令牌到達,高負載時效率高,低負載時延遲大。
-
-
應用場景:
-
令牌環網絡(如IEEE 802.5)。
-
實時性要求高的網絡(如FDDI光纖網絡)。
-
對比總結
協議 | 控制方式 | 核心機制 | 優點 | 缺點 |
---|---|---|---|---|
輪詢 | 集中式 | 主節點主動詢問從節點 | 公平、易管理 | 主節點單點故障、效率低 |
令牌傳輸 | 分布式 | 令牌循環傳遞 | 無沖突、高負載效率高 | 令牌丟失導致全網癱瘓 |
ARP
ARP通過廣播請求和單播響應,實現IP地址到MAC地址的動態解析,是局域網通信的基礎協議。
概念
ARP(Address Resolution Protocol,地址解析協議)?是一種用于將?IP地址?解析為?MAC地址?的網絡協議,工作在?數據鏈路層(OSI L2)。
作用
-
解決IP→MAC映射:在局域網(LAN)中,設備通過IP地址通信,但實際數據傳輸需要MAC地址。
-
維護ARP緩存表:存儲最近查詢的IP-MAC對應關系,減少重復請求。
工作原理
-
ARP請求(廣播):
-
主機A想發送數據給主機B(已知B的IP,但不知其MAC)。
-
A向局域網廣播發送?"Who has IP_B? Tell IP_A"?的ARP請求。
-
-
ARP響應(單播):
-
主機B收到請求后,回復?"IP_B is at MAC_B"?的單播響應。
-
其他主機忽略該請求。
-
優點
-
簡單高效,解決IP與MAC的映射問題。
-
支持動態更新(ARP緩存表自動刷新)。
路由器和交換機
交換機用于局域網內設備直連(認MAC),路由器用于跨網絡通信(認IP),兩者協同構建完整網絡架構。
交換機(Switch)
-
作用:
-
工作在?數據鏈路層(OSI L2),負責局域網(LAN)內設備間的?MAC地址轉發。
-
通過?MAC地址表?學習并記錄設備連接端口,實現?點對點高效通信。
-
-
特點:
-
僅限局域網:無法跨網絡通信(如連接不同子網)。
-
無IP處理能力:不識別IP地址,僅根據MAC地址轉發數據幀。
-
減少沖突域:每個端口是獨立的沖突域(全雙工模式下無沖突)。
-
-
應用場景:
-
企業內網、家庭局域網(連接電腦、打印機等設備)。
-
路由器(Router)
-
作用:
-
工作在?網絡層(OSI L3),負責不同網絡(如LAN與WAN)間的?IP數據包轉發。
-
通過?路由表?選擇最佳路徑,連接互聯網或跨子網通信。
-
-
特點:
-
跨網絡通信:支持不同IP子網或ISP之間的數據傳輸。
-
NAT功能:共享公網IP(如家庭路由器讓多設備上網)。
-
防火墻功能:過濾非法流量(部分高級路由器支持)。
-
-
應用場景:
-
家庭寬帶接入、企業級網絡互聯、互聯網骨干網。
-
對比總結
設備 | 工作層級 | 核心功能 | 尋址依據 | 典型應用場景 |
---|---|---|---|---|
交換機 | 數據鏈路層(L2) | MAC地址轉發 | MAC地址 | 局域網內設備互聯 |
路由器 | 網絡層(L3) | IP路由與跨網絡通信 | IP地址 | 連接不同網絡/互聯網 |
補充說明
-
三層交換機:結合交換機與路由器功能(支持VLAN間路由)。
-
家庭“路由器”:實際是?路由器+交換機+AP?的集成設備。
知識點筆記
下面這部分是我之前學習時候的知識點筆記,不全,可以簡單的過一下