算機(jī)網(wǎng)絡(luò)五層模型與必考計(jì)算題:從奈氏準(zhǔn)則到TCP擁塞控制)
簡(jiǎn)介《計(jì)算機(jī)網(wǎng)絡(luò)》期末復(fù)習(xí)電子版資料謝希仁第8版面向高校計(jì)算機(jī)與網(wǎng)絡(luò)相關(guān)課程學(xué)習(xí)者尤其適合期末沖刺階段梳理知識(shí)框架、查漏補(bǔ)缺也可用于課堂同步復(fù)習(xí)與考前快速回憶。資源圍繞教材第8版整理覆蓋互聯(lián)網(wǎng)組成與邊緣/核心結(jié)構(gòu)、性能指標(biāo)計(jì)算、OSI與TCP/IP體系、物理層傳輸媒體與信道復(fù)用、數(shù)據(jù)鏈路層的PPP與CSMA/CD等高頻考點(diǎn)并對(duì)香農(nóng)公式、奈氏準(zhǔn)則、時(shí)延帶寬積等計(jì)算型內(nèi)容作了歸納兼顧概念理解與公式應(yīng)用。壓縮包內(nèi)共1個(gè)docx文檔大小約1.36MB文檔按章節(jié)組織、重點(diǎn)標(biāo)注清晰便于打印或平板批注。已有19422人學(xué)習(xí)下載可作為章節(jié)復(fù)習(xí)提綱與考前自測(cè)的參考幫助讀者快速定位重點(diǎn)概念、理順計(jì)算思路并減少遺漏適合不同基礎(chǔ)讀者按需查閱。1. 網(wǎng)絡(luò)知識(shí)地圖五層模型與那一串必考計(jì)算題學(xué)計(jì)算機(jī)網(wǎng)絡(luò)最容易走偏的一步是把五層體系背得滾瓜爛熟卻在卷子第一道時(shí)延計(jì)算上卡住。謝希仁第8版的骨架其實(shí)很清楚概述給出一張“邊緣—核心”的地圖和三組性能指標(biāo)物理層解決比特怎么變成信號(hào)數(shù)據(jù)鏈路層解決一段鏈路上幀怎么傳網(wǎng)絡(luò)層解決分組怎么跨網(wǎng)絡(luò)走運(yùn)輸層解決進(jìn)程之間的可靠交付應(yīng)用層才是域名、郵件、網(wǎng)頁(yè)這些看得見的東西。每一層都對(duì)應(yīng)一個(gè) PDU比特、幀、分組、報(bào)文段、報(bào)文考試?yán)镎J(rèn)錯(cuò)層后面的推導(dǎo)就沒有意義。這張地圖適合按層刷題的人也適合最后兩周倒著回查的人——從應(yīng)用層往下拋問題哪一層答不上來就翻回哪一層補(bǔ)。下面按“先物理、再鏈路、再網(wǎng)絡(luò)、再運(yùn)輸”的順序把每一層里真正會(huì)考的東西挑出來。2. 物理層與數(shù)據(jù)鏈路層比特、幀與四個(gè)必考計(jì)算這兩層在課本上占的篇幅不算多但計(jì)算題密度極高。物理層三個(gè)公式奈氏、信噪比、香農(nóng)幾乎每年都出數(shù)據(jù)鏈路層則圍繞 CRC、最小幀長(zhǎng)、爭(zhēng)用期做文章。把這兩層放在一起梳理是因?yàn)樗鼈児餐卮鹨粋€(gè)問題一串比特怎么可靠地變成一段鏈路上的一幀。2.1 奈氏準(zhǔn)則與香農(nóng)公式先分清「碼元」還是「比特」奈氏準(zhǔn)則說的是理想低通信道下碼元速率的極限帶寬為 WHz時(shí)碼元最高傳輸速率為 2W 碼元/秒超過這個(gè)值就會(huì)出現(xiàn)嚴(yán)重碼間串?dāng)_。注意它給的是碼元速率不是比特率只有當(dāng)每個(gè)碼元攜帶 n 個(gè)比特時(shí)才能寫成 2W·log2(V)。香農(nóng)公式給的是信息傳輸速率的上限C W·log2(1 S/N)其中 W 是信道帶寬HzS/N 是線性信噪比C 的單位是 bit/s。信噪比經(jīng)常以分貝給出換算關(guān)系是 10·log10(S/N)所以 dB 值除以 10 再取 10 的冪才是代入香農(nóng)公式的線性值。這一步在考場(chǎng)上出錯(cuò)率極高很多人直接把 30dB 當(dāng)成 S/N 30 代進(jìn)去結(jié)果差了幾個(gè)數(shù)量級(jí)。import math def nyquist(bandwidth_hz: float) - float: 無噪聲理想低通信道碼元速率上限單位 碼元/秒 return 2 * bandwidth_hz def shannon(bandwidth_hz: float, snr_db: float) - float: 有噪聲信道信息傳輸速率上限單位 bit/s snr_linear 10 ** (snr_db / 10) # 分貝轉(zhuǎn)線性比值別直接用 dB 值 return bandwidth_hz * math.log2(1 snr_linear) print(nyquist(3000)) # 6000 碼元/秒注意單位是碼元不是比特 print(shannon(3000, 20)) # 約 19.97 kbit/s上面這段代碼的作用是把兩個(gè)上限分開算清楚。參數(shù)上bandwidth_hz是信道帶寬snr_db是以分貝表示的信噪比snr_linear是中間變量代表真正的 S/N。邏輯說明只有一句奈氏回答“理想無噪時(shí)碼元能跑多快”香農(nóng)回答“有噪時(shí)信息能跑多快”兩者不能互相替代也不會(huì)同時(shí)出現(xiàn)在一道題的同一個(gè)問號(hào)里。2.2 傳輸媒體與四種信道復(fù)用FDM、TDM、STDM、CDM傳輸媒體分導(dǎo)引型和非導(dǎo)引型。導(dǎo)引型里雙絞線最便宜分無屏蔽 UTP 和屏蔽 STP同軸電纜是早期有線電視的載體光纜帶寬最高是現(xiàn)在長(zhǎng)途干線的主力。非導(dǎo)引型里無線電波向所有方向傳播、穿透力強(qiáng)微波向固定方向傳播衛(wèi)星通信就屬于這一類優(yōu)點(diǎn)是距離遠(yuǎn)、覆蓋廣、容量大缺點(diǎn)是受氣候影響、傳播時(shí)延長(zhǎng)、誤碼率高、成本高紅外線和激光同樣要求方向固定。四種復(fù)用技術(shù)的區(qū)別用一張表對(duì)照最省事復(fù)用方式資源切分維度特點(diǎn)典型考點(diǎn)頻分 FDM按頻率切各路信號(hào)同一時(shí)間占用不同帶寬與 TDM 的“時(shí)間/頻率”互換時(shí)分 TDM按時(shí)間切所有用戶不同時(shí)間占用同一頻帶時(shí)隙浪費(fèi)統(tǒng)計(jì)時(shí)分 STDM按需分配時(shí)隙又稱異步 TDM提高利用率與 TDM 的差別碼分 CDM按碼型切同一時(shí)間、同一頻帶靠正交碼區(qū)分內(nèi)積計(jì)算碼分多址 CDMA 是計(jì)算題常客。規(guī)則只有三條碼片序列里 0 寫成 ?1、1 寫成 1接收端用本站碼片與收到的序列做內(nèi)積再除以碼片長(zhǎng)度結(jié)果為 1 表示發(fā)送比特 1?1 表示發(fā)送比特 00 表示沒發(fā)送。# CDMA 內(nèi)積判定結(jié)果 1 發(fā) 1-1 發(fā) 00 未發(fā)送 chip_s [1, -1, 1, -1, 1, -1, 1, -1] received [1, -1, 1, -1, 1, -1, 1, -1] product sum(a * b for a, b in zip(chip_s, received)) / len(chip_s) print(product) # 1.0說明該站這一拍發(fā)送的是比特 1這段代碼的關(guān)鍵是最后的除法內(nèi)積之和必須除以碼片長(zhǎng)度才是規(guī)范化后的結(jié)果否則得到的是 8 而不是 1。參數(shù)chip_s是某站的碼片序列received是信道上一拍收到的疊加信號(hào)product就是判定依據(jù)。2.3 數(shù)據(jù)鏈路層三個(gè)基本問題與 CRC 計(jì)算數(shù)據(jù)鏈路層要解決三件事封裝成幀、透明傳輸、差錯(cuò)檢測(cè)。封裝成幀是在網(wǎng)絡(luò)層交下來的 IP 數(shù)據(jù)報(bào)前后加首部和尾部形成幀透明傳輸解決的是數(shù)據(jù)里恰好出現(xiàn)幀定界符的問題用字節(jié)填充轉(zhuǎn)義字符處理差錯(cuò)檢測(cè)只檢錯(cuò)不糾錯(cuò)檢出錯(cuò)就丟棄什么也不做。循環(huán)冗余檢驗(yàn) CRC 的步驟要背下來由生成多項(xiàng)式得到除數(shù) P二進(jìn)制n 位在待發(fā)送數(shù)據(jù)后面補(bǔ) n?1 個(gè) 0做模 2 除法得到余數(shù) RR 就是幀檢驗(yàn)序列 FCS把它附加到數(shù)據(jù)后面一起發(fā)送。接收端把收到的數(shù)據(jù)除以 P余數(shù)為 0 就認(rèn)定無差錯(cuò)。def crc_remainder(data_bits: str, poly_bits: str) - str: 模 2 除法求余數(shù)data_bits 需已補(bǔ)好 n-1 個(gè) 0 bits list(data_bits) n len(poly_bits) for i in range(len(bits) - n 1): if bits[i] 1: # 首位為 1 才做異或 for j in range(n): bits[i j] str(int(bits[i j]) ^ int(poly_bits[j])) return .join(bits[-(n - 1):]) # 末尾 n-1 位即 FCS print(crc_remainder(1101011011 0000, 10011)) # 輸出 1110代碼里poly_bits是生成多項(xiàng)式對(duì)應(yīng)的二進(jìn)制除數(shù)長(zhǎng)度 ndata_bits必須是已經(jīng)補(bǔ)好 n?1 個(gè) 0的待發(fā)送數(shù)據(jù)。函數(shù)返回末尾 n?1 位就是冗余碼 FCS。邏輯上它模擬的是模 2 除法——不借位、只異或。提示如果題目給的是接收端收到的數(shù)據(jù)就不要再補(bǔ) n?1 個(gè) 0 了直接除。這是最典型的失分點(diǎn)很多人算完才發(fā)現(xiàn)多補(bǔ)了 4 個(gè) 0整道題的余數(shù)全錯(cuò)。2.4 CSMA/CD 與以太網(wǎng)幀16 字口訣背后的四個(gè)數(shù)CSMA/CD 的十六字總結(jié)是“先聽后發(fā)邊聽邊發(fā)沖突停止延遲重發(fā)”。展開來說多點(diǎn)接入說明它是總線型網(wǎng)絡(luò)載波監(jiān)聽指發(fā)送前和發(fā)送中都要不停監(jiān)聽信道碰撞檢測(cè)指發(fā)送過程中一旦發(fā)現(xiàn)其他站也在發(fā)立即中斷本站發(fā)送然后按退避算法延遲重發(fā)。圍繞它要記四個(gè)數(shù)。爭(zhēng)用期是 2τ10Mbit/s 以太網(wǎng)取 51.2μs也就是 512 比特時(shí)間。最小幀長(zhǎng) 2τ × 數(shù)據(jù)率10Mbit/s 下就是 64 字節(jié)。幀間最小間隔是 9.6μs相當(dāng)于 96 比特時(shí)間。100BASE-T 快速以太網(wǎng)把這三個(gè)數(shù)都縮到原來的十分之一爭(zhēng)用期 5.12μs、幀間間隔 0.96μs但最短幀長(zhǎng)仍然是 64 字節(jié)不變。使用 CSMA/CD 的以太網(wǎng)只能半雙工通信因?yàn)橐粋€(gè)站不可能同時(shí)發(fā)送和接收但必須邊發(fā)邊聽。這一點(diǎn)和后面交換機(jī)的工作方式正好相反以太網(wǎng)交換機(jī)工作在數(shù)據(jù)鏈路層以全雙工方式工作沒有碰撞問題也不使用 CSMA/CD 協(xié)議它之所以還叫以太網(wǎng)只是因?yàn)樗匀徊捎靡蕴W(wǎng)幀結(jié)構(gòu)。MAC 幀發(fā)往物理層時(shí)前面還要再加 8 字節(jié)首部前同步碼加幀開始定界符。IEEE 802.3 規(guī)定出現(xiàn)下列情況之一就是無效的 MAC 幀幀長(zhǎng)度不是整數(shù)個(gè)字節(jié)用收到的 FCS 查出有錯(cuò)數(shù)據(jù)字段不在 461500 字節(jié)之間。這三個(gè)條件經(jīng)常被拆成選擇題的四個(gè)選項(xiàng)。3. 網(wǎng)絡(luò)層IP 編址、分片與路由協(xié)議三件套網(wǎng)絡(luò)層是整本書的重心也是計(jì)算量最大的一層。它要解決的是“分組怎么從一個(gè)網(wǎng)絡(luò)走到另一個(gè)網(wǎng)絡(luò)”具體落到三件事上地址怎么編、分組太長(zhǎng)怎么切、路由表怎么建。3.1 分類 IP 地址與三類特殊地址分類編址是理解 CIDR 的基礎(chǔ)五類地址的劃分必須張口就來類別開頭位第一字節(jié)范圍網(wǎng)絡(luò)號(hào)長(zhǎng)度最大主機(jī)數(shù)A 類單播011261 字節(jié)2^24 ? 2B 類單播101281912 字節(jié)2^16 ? 2C 類單播1101922233 字節(jié)2^8 ? 2D 類多播1110224239無無最大主機(jī)數(shù)里減掉的 2是主機(jī)號(hào)全 0 的網(wǎng)絡(luò)地址和全 1 的廣播地址。另外還有兩類要單獨(dú)記住127 開頭且主機(jī)號(hào)不全為 0、不全為 1 的地址是環(huán)回測(cè)試地址專用地址只能用于機(jī)構(gòu)內(nèi)部通信不能與互聯(lián)網(wǎng)主機(jī)直接通信三個(gè)地址塊分別是 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。3.2 子網(wǎng)掩碼與 CIDR斜線記法怎么換算無分類編址 CIDR 把網(wǎng)絡(luò)號(hào)改叫網(wǎng)絡(luò)前綴用斜線記法表示前綴位數(shù)網(wǎng)絡(luò)前綴相同的連續(xù) IP 地址組成一個(gè) CIDR 地址塊。地址掩碼的規(guī)則是網(wǎng)絡(luò)前綴全為 1、主機(jī)號(hào)全為 0把 IP 地址與掩碼按位與就得到網(wǎng)絡(luò)地址。這里有一條容易記反的性質(zhì)網(wǎng)絡(luò)前綴越短地址塊越大包含的地址數(shù)越多網(wǎng)絡(luò)前綴越長(zhǎng)地址塊越小這條路由就越具體。最長(zhǎng)前綴匹配就是靠這條性質(zhì)工作的——路由表里有多條都能匹配時(shí)選前綴最長(zhǎng)的那條因?yàn)樗罹唧w。路由聚合構(gòu)造超網(wǎng)則反過來把幾條前綴連續(xù)的短路由合并成一條更短前綴的路由減小路由表規(guī)模。3.3 IP 數(shù)據(jù)報(bào)分片三個(gè)字段的三把尺子IP 數(shù)據(jù)報(bào)首部里有三個(gè)字段最容易混它們的單位各不相同字段長(zhǎng)度單位要點(diǎn)首部長(zhǎng)度4 位4 字節(jié)最小 0101即 20 字節(jié)必須是 4 的整數(shù)倍總長(zhǎng)度16 位1 字節(jié)首部 數(shù)據(jù)部分之和分片后每片要重算片偏移13 位8 字節(jié)該片在原分組中的相對(duì)位置除最后一片外長(zhǎng)度須為 8 的整數(shù)倍分片時(shí)還要看兩個(gè)標(biāo)志位MF 1 表示后面還有分片MF 0 表示這是最后一片DF 1 表示不能分片DF 0 表示可以分片。回憶數(shù)據(jù)鏈路層的要求——MAC 幀的數(shù)據(jù)部分不能超過 MTU而 MTU 指的就是 IP 數(shù)據(jù)報(bào)的總長(zhǎng)度不含幀頭幀尾一旦總長(zhǎng)度超過 MTU 就必須分片。MTU 1500 # 以太網(wǎng)最大傳送單元單位字節(jié) header 20 # IP 首部固定長(zhǎng)度 total 4000 # 原始數(shù)據(jù)報(bào)總長(zhǎng)度 payload total - header # 3980 字節(jié)數(shù)據(jù) max_data (MTU - header) // 8 * 8 # 每片數(shù)據(jù)取 8 的整數(shù)倍得 1480 offset 0 while payload 0: size min(max_data, payload) print(f片偏移{offset // 8}數(shù)據(jù)長(zhǎng)度{size}MF{1 if payload size else 0}) payload - size offset size這段代碼演示的是分片的核心約束每片的數(shù)據(jù)長(zhǎng)度必須是 8 的整數(shù)倍所以max_data要先整除 8 再乘回 8片偏移記錄的是相對(duì)位置除以 8 的商最后一片的 MF 置 0其余置 1。參數(shù)MTU是鏈路能承載的最大幀數(shù)據(jù)量header是首部長(zhǎng)度total是原始總長(zhǎng)度三者定了分幾片、每片多長(zhǎng)、偏移多少就都定了。3.4 RIP、OSPF、BGP三種路由協(xié)議的判斷與算法路由選擇協(xié)議分兩大類內(nèi)部網(wǎng)關(guān)協(xié)議 IGP 在一個(gè)自治系統(tǒng)內(nèi)部使用代表是 RIP 和 OSPF外部網(wǎng)關(guān)協(xié)議 EGP 在自治系統(tǒng)之間使用代表是 BGP。自治系統(tǒng) AS 指在單一技術(shù)管理下的許多網(wǎng)絡(luò)、IP 地址和路由器它對(duì)其他 AS 表現(xiàn)出單一且一致的路由選擇策略。協(xié)議類型算法思想交換內(nèi)容承載方式適用范圍RIP內(nèi)部距離向量整張路由表UDP 數(shù)據(jù)報(bào)小型互聯(lián)網(wǎng)OSPF內(nèi)部鏈路狀態(tài)相鄰路由器的鏈路狀態(tài)直接封裝進(jìn) IP 數(shù)據(jù)報(bào)較大自治系統(tǒng)BGP外部路徑向量網(wǎng)絡(luò)可達(dá)性信息TCP 報(bào)文AS 之間RIP 的特點(diǎn)是只和相鄰路由器交換信息按固定時(shí)間交換整張路由表并且“好消息傳得快壞消息傳得慢”。距離向量算法的更新步驟是固定的三步先把相鄰路由器 B 發(fā)來的路由表里距離那一列每項(xiàng)加 1下一跳全改成 B再和自己表里逐項(xiàng)比較如果自己沒有這個(gè)網(wǎng)絡(luò)就直接插入如果有且下一跳也是 B 就直接替換如果有但下一跳不是 B 就比較距離更小才替換否則不動(dòng)。OSPF 最主要的特征是使用鏈路狀態(tài)協(xié)議用洪泛法向本自治系統(tǒng)內(nèi)所有路由器發(fā)送信息發(fā)送的是本路由器相鄰的所有路由器的鏈路狀態(tài)并且只有鏈路發(fā)生變化時(shí)才重新發(fā)送。BGP-4 有四種報(bào)文OPEN、UPDATE、KEEPALIVE、NOTIFICATION。4. 運(yùn)輸層與應(yīng)用層TCP 擁塞控制與端口那些事運(yùn)輸層是很多人第一遍學(xué)不明白的地方原因是它和網(wǎng)絡(luò)層的分工總被記混網(wǎng)絡(luò)層為主機(jī)之間的通信提供服務(wù)運(yùn)輸層則在網(wǎng)絡(luò)層的基礎(chǔ)上為應(yīng)用進(jìn)程之間的通信提供服務(wù)。一句話網(wǎng)絡(luò)層管到主機(jī)運(yùn)輸層管到進(jìn)程。4.1 UDP 與 TCP八個(gè)維度的取舍維度UDPTCP連接無連接面向連接可靠性盡最大努力交付可靠交付不丟不重?cái)?shù)據(jù)形式面向報(bào)文面向字節(jié)流通信方式一對(duì)一、一對(duì)多均可點(diǎn)對(duì)點(diǎn)全雙工不涉及支持擁塞控制沒有有首部長(zhǎng)度8 字節(jié)20 字節(jié)起適用場(chǎng)景實(shí)時(shí)音視頻、DNS 查詢文件傳輸、網(wǎng)頁(yè)瀏覽UDP 首部只有 8 字節(jié)四個(gè)字段各 2 字節(jié)源端口、目的端口、長(zhǎng)度、檢驗(yàn)和。TCP 首部固定部分 20 字節(jié)選項(xiàng)字段最長(zhǎng)可擴(kuò)到 40 字節(jié)所以首部最長(zhǎng) 60 字節(jié)。4.2 端口號(hào)與套接字進(jìn)程之間的地址軟件端口是應(yīng)用層各種協(xié)議進(jìn)程與運(yùn)輸實(shí)體進(jìn)行層間交互的地點(diǎn)。端口號(hào)分兩大類服務(wù)器端使用的端口號(hào)包括熟知端口號(hào) 01023這部分表要背和登記端口號(hào) 102449151客戶端使用的端口號(hào)是 4915265535又叫短暫端口號(hào)。IP 地址加端口號(hào)構(gòu)成套接字它是運(yùn)輸層通信的端點(diǎn)??荚?yán)锝?jīng)常出“某個(gè)服務(wù)默認(rèn)用哪個(gè)端口”的選擇題DNS 是 53、HTTP 是 80、FTP 是 21、SMTP 是 25、POP3 是 110這幾個(gè)必須張口就來。4.3 TCP 擁塞控制四個(gè)算法連成一條窗口曲線擁塞控制和流量控制不是一回事。流量控制是讓發(fā)送方別發(fā)太快要讓接收方來得及接收屬于端到端擁塞控制是防止過多數(shù)據(jù)注入網(wǎng)絡(luò)導(dǎo)致網(wǎng)絡(luò)性能變差是全局性的過程產(chǎn)生條件是“對(duì)資源的需求大于可用資源”。四個(gè)算法要連起來看慢開始階段擁塞窗口按 2 倍增長(zhǎng)到達(dá)慢開始門限后進(jìn)入擁塞避免階段每輪加 1收到三個(gè)重復(fù)確認(rèn)時(shí)執(zhí)行快重傳并進(jìn)入快恢復(fù)擁塞窗口降為當(dāng)前的一半然后繼續(xù)線性增長(zhǎng)超時(shí)的情況最嚴(yán)重?fù)砣翱谥苯咏档?1重新慢開始。cwnd 1 ssthresh 16 for r in range(1, 13): print(f第 {r} 輪cwnd {cwnd}) if cwnd ssthresh: cwnd * 2 # 慢開始每輪翻倍 else: cwnd 1 # 擁塞避免每輪加 1這段模擬只覆蓋了增長(zhǎng)階段參數(shù)cwnd是擁塞窗口ssthresh是慢開始門限。實(shí)際考題會(huì)疊加“超時(shí)”和“三個(gè)重復(fù)確認(rèn)”兩個(gè)事件前者把cwnd重置為 1、ssthresh減半后者把cwnd和ssthresh都減半后進(jìn)入快恢復(fù)。窗口曲線題的套路是把每輪的 cwnd 值列成一行畫出來和標(biāo)準(zhǔn)圖對(duì)照哪一輪拐彎不對(duì)就是哪一步算錯(cuò)了。4.4 三次握手與四次揮手序號(hào)和確認(rèn)號(hào)的對(duì)應(yīng)關(guān)系三次握手的報(bào)文順序是 SYN、SYNACK、ACK四次揮手是 FIN、ACK、FIN、ACK。記住一句口訣三次握手、四次分手。確認(rèn)號(hào)的含義要單獨(dú)強(qiáng)調(diào)ack 是我對(duì)你的期望即我希望你下一個(gè)傳來的序號(hào)。所以對(duì)方下一個(gè)發(fā)來的 seq 必須等于這個(gè) ack不等就要重傳。把這句話想明白了握手和揮手那兩張圖就不用死記畫的時(shí)候自然知道箭頭該指向哪。4.5 應(yīng)用層域名解析的遞歸與迭代應(yīng)用層知識(shí)點(diǎn)比較碎但 DNS 解析方式幾乎是必考。域名服務(wù)器分四類根域名服務(wù)器、頂級(jí)域名服務(wù)器、權(quán)限域名服務(wù)器、本地域名服務(wù)器。解析方式有兩種一句話區(qū)分遞歸查詢靠別人迭代查詢靠自己。遞歸查詢時(shí)主機(jī)只發(fā)一次請(qǐng)求剩下的活由本地域名服務(wù)器替它跑完迭代查詢時(shí)本地域名服務(wù)器每次收到的都是“下一步去問誰”的答復(fù)自己一站一站問下去。做題時(shí)先看是誰在發(fā)請(qǐng)求、誰在返回答案再看返回的到底是最終結(jié)果還是下一跳地址。還有一個(gè)經(jīng)常被問到的過程題一個(gè)報(bào)文從應(yīng)用層到物理層要經(jīng)過哪些封裝。應(yīng)用層數(shù)據(jù)交給運(yùn)輸層加 TCP 或 UDP 首部成為報(bào)文段交給網(wǎng)絡(luò)層加 IP 首部成為數(shù)據(jù)報(bào)交給數(shù)據(jù)鏈路層加幀頭和幀尾成為幀最后到物理層變成比特流發(fā)出去。每一層封裝的位置和加的首部長(zhǎng)度都可以和前面幾章的數(shù)字對(duì)上。5. 易錯(cuò)易漏點(diǎn)期末最容易翻車的五個(gè)地方這一章是把前面零散提到的坑集中列一遍。每條按“易漏點(diǎn)是什么、為什么會(huì)漏、怎么補(bǔ)”來寫對(duì)照自己的錯(cuò)題本看中一條就補(bǔ)一條。5.1 三個(gè)計(jì)算類易漏點(diǎn)第一CRC 計(jì)算時(shí)給的是接收端數(shù)據(jù)卻多補(bǔ)了 n?1 個(gè) 0。漏的原因是平時(shí)練習(xí)都是從發(fā)送端算起形成肌肉記憶看到二進(jìn)制串就條件反射補(bǔ)零。補(bǔ)的辦法是在草稿紙最上面先寫一行“發(fā)送/接收”圈出來再動(dòng)筆如果是接收端直接除除完看余數(shù)是否為零一步就能判對(duì)錯(cuò)。第二IP 分片里三個(gè)字段的單位混著用。首部長(zhǎng)度按 4 字節(jié)算總長(zhǎng)度按 1 字節(jié)算片偏移按 8 字節(jié)算三個(gè)尺子同時(shí)在手最容易在“首部長(zhǎng)度是 160bit 等于多少字節(jié)”這一步繞暈。補(bǔ)的辦法是固定換算順序先把 bit 換算成字節(jié)再用首部長(zhǎng)度字段的值乘以 4 驗(yàn)證最后確認(rèn)每片數(shù)據(jù)長(zhǎng)度是不是 8 的整數(shù)倍。分片題只要這三個(gè)數(shù)對(duì)了后面就是機(jī)械填空。第三信道利用率和時(shí)延帶寬積的分子分母拿錯(cuò)。信道利用率是發(fā)送幀所需時(shí)間除以發(fā)送幀所需時(shí)間 端到端傳播時(shí)延時(shí)延帶寬積是傳播時(shí)延乘以帶寬兩個(gè)公式長(zhǎng)得像用錯(cuò)一個(gè)整題白算。補(bǔ)的辦法是記單位時(shí)延帶寬積的單位是比特是“鏈路能裝多少比特”信道利用率沒有單位是一個(gè)比值永遠(yuǎn)小于 1。拿不準(zhǔn)時(shí)先看單位比背公式可靠。5.2 兩個(gè)概念類易錯(cuò)點(diǎn)第四以為用了交換機(jī)就沒有沖突又以為交換機(jī)還在跑 CSMA/CD。漏的原因是課本上“以太網(wǎng)”三個(gè)字反復(fù)出現(xiàn)讓人誤以為所有以太網(wǎng)都一個(gè)樣。實(shí)際是集線器工作在物理層所有端口共享帶寬、共享沖突域交換機(jī)工作在數(shù)據(jù)鏈路層全雙工工作每個(gè)端口獨(dú)享帶寬沒有碰撞問題也不使用 CSMA/CD只是沿用了以太網(wǎng)幀結(jié)構(gòu)。補(bǔ)的辦法是拿那道“10 個(gè)站共享 10Mbit 與 10 個(gè)站每站 10Mbit”的選擇題反復(fù)做做到能一眼判斷拓?fù)漕愋?。第五遞歸查詢和迭代查詢的角色搞反。漏的原因是兩張圖長(zhǎng)得太像都是箭頭來回飛。補(bǔ)的辦法是抓住“誰在干活”遞歸是本地域名服務(wù)器替主機(jī)跑完全程主機(jī)只問一次迭代是本地域名服務(wù)器每問一次就拿到下一站地址自己接著問。判斷時(shí)先看第一條請(qǐng)求是誰發(fā)給誰的再看返回的是最終 IP 還是下一跳地址兩個(gè)特征對(duì)上就不會(huì)錯(cuò)。6. 復(fù)習(xí)清單與查漏補(bǔ)缺考前一周怎么把分?jǐn)?shù)撿回來復(fù)習(xí)到這一章知識(shí)點(diǎn)應(yīng)該已經(jīng)過了一遍。剩下的問題不是“還有多少?zèng)]看”而是“哪一塊看了但不會(huì)用”。我用一張按層拆開的自查表把每層的必會(huì)項(xiàng)和自測(cè)方式列出來你可以直接照著打勾。層次必會(huì)項(xiàng)自測(cè)方式打勾概述四種時(shí)延、時(shí)延帶寬積、RTT、信道利用率隨便給一組帶寬和距離五分鐘內(nèi)算完□物理層奈氏、信噪比換算、香農(nóng)、CDMA 內(nèi)積不看書寫出三個(gè)公式并各做一題□數(shù)據(jù)鏈路層CRC、最小幀長(zhǎng)、爭(zhēng)用期、無效 MAC 幀三條件手算一次 CRC寫出 64 字節(jié)的來歷□網(wǎng)絡(luò)層分類地址、CIDR、掩碼、分片、RIP 更新獨(dú)立完成一次分片和一次距離向量更新□運(yùn)輸層UDP/TCP 對(duì)比、端口分類、四算法、握手揮手畫出 cwnd 曲線標(biāo)出每次拐點(diǎn)原因□應(yīng)用層DNS 兩種查詢、各協(xié)議默認(rèn)端口口述一次完整解析過程□查漏補(bǔ)缺的順序建議從下往上先物理層的公式再鏈路層的計(jì)算再網(wǎng)絡(luò)層的編址與分片最后運(yùn)輸層的窗口曲線。原因是上層題目經(jīng)常調(diào)用下層結(jié)論比如分片題要用 MTUMTU 又來自鏈路層擁塞控制的窗口變化又要結(jié)合 RTT 理解。下層不牢上層的題做對(duì)了也是碰巧。時(shí)間分配上計(jì)算題占的復(fù)習(xí)比重應(yīng)該高于概念題。概念題靠一張對(duì)照表就能覆蓋計(jì)算題必須動(dòng)手算而且要在紙上算——眼睛看一遍覺得會(huì)了落筆就露餡這是血淚經(jīng)驗(yàn)。每一類計(jì)算題至少獨(dú)立做三遍第一遍對(duì)著答案第二遍合上書第三遍限時(shí)。最后留一個(gè)習(xí)慣每次做錯(cuò)一道計(jì)算題不要只抄正確答案而是把錯(cuò)的那一步單獨(dú)寫在一張便簽上比如“接收端多補(bǔ)了 4 個(gè) 0”“片偏移忘了除以 8”貼在書桌前??记澳且恢懿豢葱骂}只看這些便簽翻一遍就知道自己會(huì)在哪里翻車。從那以后我每次復(fù)習(xí)這類偏計(jì)算的科目都強(qiáng)制走一遍“公式默寫—獨(dú)立計(jì)算—錯(cuò)步歸檔”的流程不再靠反復(fù)看書來獲得“我好像會(huì)了”的錯(cuò)覺。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取