計算機網絡期末復習
一、計算機網絡概述
Point 1
計算機網絡就是以傳輸信息為基本目的,用通信線路和通信設備將多個計算機連接起來的計算機系統的集合。由自治的計算機互聯起來的結合體。
Point 2
按網絡的覆蓋范圍進行分類
(1)局域網**(Local Area Network,LAN)用于連接有限范圍內(如一個實驗室、一幢樓或一個 校園)的各種計算機、終端與外部設備。局域網通常由某個單位單獨擁有、使用和維護。按照 所使用的傳輸媒體的不同,局域網又可分為有線局域網和無線局域網**。
(2) 城域網**(Metropolitan Area Network,MAN)**的覆蓋范圍可跨越幾個街區甚至整個城市,其 作用距離為5~50 km。城域網通常作為城市骨干網。
(3) 廣域網**(Wide Area Network,WAN)**的覆蓋范圍通常為幾十千米到幾千千米,可以覆蓋一 個國家、地區,甚至橫跨幾個洲,因而廣域網有時也稱為遠程網(Long Haul Network)。
(4) 個人區域網**(Personal Area Network,PAN)不同于以上網絡,它不是用來連接普通計算 機的,而是在個人工作的地方把個人使用的電子設備(如便攜式計算機、打印機、鼠標、鍵 盤、耳機等)用無線技術(取代傳統導線)連接起來的網絡,因此也常稱為無線個人區域網 (Wireless PAN,WPAN)**,其作用距離通常在10 m以內。
Point 3
網絡(Network)由若干**結點(Node)和連接這些結點的鏈路(Link)**組成。
Point4
請注意以下兩個意思相差很大的名詞:internet和Internet。
以小寫字母i開始的**internet(互連網絡)**是一個通用名詞,它泛指由多個計算機網絡互連 而成的網絡。這些網絡之間的通信協議(即通信規則)可以是任意的。
以大寫字母I開始的**Internet(互聯網,或因特網)**則是一個專用名詞,它指當前全球最 大的、開放的、由眾多網絡相互連接而成的特定計算機網絡,它采用TCP/IP(Transmission Control Protocol / Internet Protocol)協議簇作為通信規則,其前身是美國的阿帕網 (Advanced Research Projects Agency Network,ARPANet)。TCP/IP是指以TCP和IP為代 表的一系列互聯網協議。
Point5
時延(Delay或Latency)是指數據(一個報文或分組,甚至比特)從網絡(或鏈路)的一端 傳送到另一端所需要的時間。時延有時也稱為延遲或遲延。 需要注意的是,網絡中的時延是由以下幾個不同的部分組成的。
(1)發送時延 (Transmission Delay)是主機或路由器將整個分組的所有比特發送到通信線路上 所需要的時間,也就是從發送分組的第一個比特算起,到該分組的最后一個比特發送到線路上 所需要的時間。發送時延也叫作傳輸時延。
發送時延的計算公式: 發送時延=分組長度/發送速率
對于一定的網絡,發送時延并非固定不變,而是與發送的分組長度(單位是比 特)成正比,與發送速率成反比。由于在分組交換中計算機總是以信道最高數據率發送數據, 因此公式中的發送速率也可以替換成信道帶寬。
(2)傳播時延 (Propagation Delay)是電磁波在信道中傳播一定距離所花費的時間。
傳播時延的計算公式 傳播時延=信道長度/電磁波在信道上的傳播速率
二、物理層
Point1
物理層中傳輸數據是比特流
與傳輸媒體的接口特性。規定傳輸設備與傳輸媒體之間的接口特性。
機械特性:指明接口所用接線器的形狀和尺寸、引腳數目和排列、固定和鎖定裝置等。
電氣特性:指明在接口電纜的各條線上出現的電壓的范圍及阻抗匹配等。
功能特性:指明某條線上出現的某一電平的電壓表示何種意義。
過程特性:指明對應不同功能的各種可能事件的出現順序。
Point2
一個數據通信系統可劃分為三大部分,即源系統(或發送端、發送方)、傳 輸系統(或傳輸網絡)和目的系統(或接收端、接收方)。
Point3
根據信號中代表消息的參數的取值方式不同,信號可分為兩大類。
模擬信號,或連續信號——消息的參數的取值是連續的。
數字信號,或離散信號——消息的參數的取值是離散的。
在使用時間域(或簡稱為時域) 的波形表示數字信號時,代表不同離散數值的基本波形就稱為碼元。在使用二進制編碼時,只 有兩種不同的碼元,一種代表0狀態,另一種代表1狀態
Point4
信道復用技術分為
**頻分復用(Frequency Division Multiplexing,FDM)**就是將傳輸線路的頻帶資源劃分成多個 子頻帶,形成多個子信道。
**時分復用(Time Division Multiplexing,TDM)**技術將傳輸線路的帶寬資源按時間輪流分 配給不同的用戶,每個用戶只在分配的時間里使用線路傳輸數據。
**波分復用(Wavelength Division Multiplexing,WDM)**就是光的頻分復用。
碼分復用(Code Division Multiplexing,CDM)是另一種共享信道的方法。實際上,由于該 技術主要用于無線多址接入(本書中我們不嚴格區分多址與復用),人們更常用的名詞是碼分多址(Code Division Multiple Access,CDMA)。
三、數據鏈路層
Point1
數據鏈路層屬于計算機網絡的低層。數據鏈路層使用的信道主要有以下兩種類型。
(1)點對點信道。這種信道使用一對一的點對點通信方式。
(2)廣播信道。這種信道使用一對多的廣播通信方式,因此過程比較復雜。廣播信道 上可以連接多個計算機,因此必須使用共享信道協議來協調這些計算機的數據發送。
數據鏈路層的三個重要問題:封裝成幀、差錯檢測和可靠傳輸。
Point2
把通信協議的硬件和軟件加到鏈路上,就構成了數據鏈路。這樣的數據鏈路就不再是簡單的物 理鏈路而是邏輯鏈路了。現在最常用的方法是使用網絡適配器,又稱網卡(如撥號上網使用撥號適配器、 通過以太網上網使用局域網適配器)來實現這些協議。
因此,數據鏈路可以轉化為邏輯鏈路,網絡適配器又稱網卡。
Point3
只有數據鏈路層的幀有尾部。
Point4
分組在傳輸過程中,若到了超時計時器所設置的超時重傳時間 發送方仍收不到接收方的任何 確認分組,則重傳原來的分組,這就叫作 超時重傳又稱 超時機制。
當確認分組丟失時,接收方會收到兩個同樣的數據分組,即重 復分組。若接收方不能識別重復分組,則會導致另一種差錯——數據重復。
Point5
發送幀的三種方式
單播( Unicast )幀(一對一),即收到的幀的 地址與本站的 地址相同;
廣播(Broadcast)幀(一對全體),即發送給本局域網上所有站點的幀(全1地址);
多播( Multicast )幀(一對多),即發送給本局域網上一部分站點的幀。
四、網絡層
Point1
網絡層的作用是解決異構網絡之間的連通性和資源共享問題
網絡層的核心是分組轉發和路由選擇
Point2
互聯網是一個數據報網絡,然而,許多其他網絡體系結構包括 幀中繼網絡和 ATM 網絡、X25網絡都是虛電路網絡,它們在網絡層使用連接,這些網絡層連接被稱為虛電路(Virtual Circuit VC )。
Point3
**網際協議( IP)**是 體系中兩個最主要的協議之一,也是最重要的 互聯網標準協議之一。
與 配套使用的主要還有以下三個協議:
地址解析協議( Address Resolution Protocol ARP);
互聯網控制報文協議( Internet Control Message Protocol ICMP);
互聯網組管理協議 ( Internet Group Management Protocol IGMP)。
Point4
將網絡互相連接起來要使用一些中間設備,根據中間設備所在的層 次,可以將中間設備分為以下四種。
物理層使用的中間設備叫作 轉發器(Repeater)
數據鏈路層使用的中間設備叫作 網橋或橋接器( Bridge 3)
網絡層使用的中間設備叫作 路由器( Router )
在網絡層以上使用的中間設備叫作網關(Gateway),用網關連接兩個不兼容的系統 需要在高層進行協議的轉換。
Point5
分址編碼
Point6
為了更有效地轉發 數據報和提高交付成功率,網際層使用了 制報文協議( 互聯網控 , Internet Control Message Protocol ICMP)(也翻譯為網際控制 報文協議)
ICMP報文有兩種,即ICMP差錯報告報文和ICMP詢問報文。
PING 使用了 回送請求和回送應答報文。
tracert,它用來跟蹤一個分組從源點到終點的路徑。
Point7
互聯網就把路由選擇協議劃分 為兩大類。
內部網關協議**( Interior Gateway Protocol IGP)**目前這類的路由選擇協議是 RIP OSPF
外部網關協議(External Gateway Protocol EGP)。目前互聯網使用的外部網關協議就是 的版本 。
Point8
**路由信息協議( Routing Information Protocol RIP)**是內部網關協議。 RIP是一種分布式的 基于距離向量 的路由選擇協議,是互聯網的標準協議。
最大優點就是簡單
RIP允許一條路徑最多包含 15個路由 器。因此“距離”等于16 即相當于不可達。可見 RIP只適用于小型互聯網。
RIP讓一個自治系統中的所有路由器都和自己的相鄰路由器定期交換路由信息。
RIP 好消息傳播得快,而壞消息 傳播得慢。網絡故障信息的傳播往往需要較長的時間(如數分鐘)。這是 的主要缺點之一。
Point9
開放最短路徑優先(Open Shortest Path First, OSPF)
OSPF 采用的是分布式方法
計算題
Point 1
IP數據報格式分析
首先,我們需要理解IP數據報的各個字段:
- 版本 (Version):4位
- 首部長度 (IHL):4位
- 區分服務 (DSCP):6位
- 總長度 (Total Length):16位
- 標識 (Identification):16位
- 標志 (Flags):3位
- 片偏移 (Fragment Offset):13位
- 生存時間 (TTL):8位
- 協議 (Protocol):8位
- 首部校驗和 (Header Checksum):16位
- 源地址 (Source Address):32位
- 目的地址 (Destination Address):32位
- 可選字段 (Options):可變長度
題目分析
新的IP數據報信息為:
46 00 0c 8f 00 23 00 00
20 11 00 00 5e 4b 08 0a
d3 0f 03 06 04 01 00 a1
00 40 be 22 80 06 01 10
00 01 75 70 c2 10 21 04
問題 1:首部是否含有可變部分,若含有可變部分,可變部分包括多少個字節?
通過第一個字節確定版本和首部長度:
- 第一個字節:
46
- 二進制表示:
0100 0110
- 版本:
0100
(即4,IPv4) - 首部長度:
0110
(即6,表示首部長度為 6 * 4 = 24 字節)
- 二進制表示:
從首部長度可以看出,標準的IPv4首部長度為20字節。如果首部長度超過20字節,則表示包含可選字段。這里的首部長度為24字節,因此包含了4字節的可選字段。
答案:
首部含有可變部分,可變部分包括4個字節。
問題 2:生存時間字段的值是多少?該字段的目的是?
生存時間字段在第9個字節,值為:20
,轉換為十進制為 32。
答案:
生存時間字段的值是 32。該字段的目的是防止數據包在網絡中無限循環,表示數據包還能經過多少個路由器。每經過一個路由器,該值減1,當值為0時,數據包將被丟棄。
問題 3:給出這個分組的源地址和目的地址,用點分十進制表示。
-
源地址在13到16字節:
5e 4b 08 0a
- 點分十進制表示:94.75.8.10
-
目的地址在17到20字節:
d3 0f 03 06
- 點分十進制表示:211.15.3.6
答案:
源地址:94.75.8.10
目的地址:211.15.3.6
問題 4:若使用以太網傳輸該IP數據報,根據IP數據報首部中的長度字段判斷該數據報是否需要被分片?若需要進行分片,需分成多少個數據報片?
- 總長度字段在第3和第4字節:
0c 8f
- 轉換為十進制為 3215 字節
以太網的最大傳輸單元 (MTU) 一般為1500字節,所以需要分片。
要分成多少個數據報片:
- 每個片的最大長度為1500字節,其中包括IP首部,因此每個片的數據部分最大為1480字節。
- 3215 - 24(首部) = 3191 字節數據需要傳輸
分片數:
- 前兩個片各包含1480字節數據
- 最后一片包含3191 - 2960(前兩個片數據) = 231 字節數據
需要分成 3 個數據報片。
答案:
該數據報需要被分片,需分成3個數據報片。
問題 5:IP數據報的首部字段中,在分片的過程中會用到哪幾個字段?
在分片過程中會用到以下字段:
- 標識字段 (Identification)
- 標志字段 (Flags)
- 片偏移字段 (Fragment Offset)
- 總長度字段 (Total Length)
答案:
在分片的過程中會用到標識字段、標志字段、片偏移字段和總長度字段。
總結
- 首部含有可變部分,可變部分包括4個字節。
- 生存時間字段的值是32,該字段的目的是防止數據包在網絡中無限循環。
- 源地址:94.75.8.10,目的地址:211.15.3.6。
- 該數據報需要被分片,需分成3個數據報片。
- 在分片的過程中會用到標識字段、標志字段、片偏移字段和總長度字段。
這些答案結合了對IP數據報的結構和給定數據的分析。
Point 2
IP 地址分析
(1) 該主機所在網絡的地址空間大小
IP 地址是 192.168.159.187/20,表示網絡前 20 位是網絡部分,后 12 位是主機部分。
- 地址空間大小計算公式:2^n,其中 n 是主機部分的位數。
- 在此例中,主機部分有 32 - 20 = 12 位。
答案:
地址空間大小為 2^12 = 4096。
(2) 該主機所在網絡的網絡地址和廣播地址
首先,找到子網掩碼:
- 子網掩碼 /20:11111111.11111111.11110000.00000000
- 子網掩碼(十進制):255.255.240.0
將 IP 地址 192.168.159.187 與子網掩碼按位與,得到網絡地址:
- 192.168.159.187(十進制):11000000.10101000.10011111.10111011
- 按位與結果:11000000.10101000.10010000.00000000(即 192.168.144.0)
廣播地址:
- 將網絡地址的主機部分全設為 1:11000000.10101000.10011111.11111111(即 192.168.159.255)
答案:
- 網絡地址:192.168.144.0
- 廣播地址:192.168.159.255
(3) 該主機所在網絡可分配的最小地址和最大地址
可分配的 IP 地址范圍是從網絡地址的下一個地址到廣播地址的前一個地址。
答案:
- 最小地址:192.168.144.1
- 最大地址:192.168.159.254
要判斷IP地址192.168.159.187/20的網絡部分和主機部分,可以按以下步驟進行:
確定子網掩碼
CIDR表示法中的/20表示子網掩碼有20位是網絡部分,其余的是主機部分。我們可以將這個子網掩碼轉換為二進制形式:
- /20表示前20位是1,其余12位是0。
- 子網掩碼二進制形式:11111111.11111111.11110000.00000000
- 子網掩碼十進制形式:255.255.240.0
將IP地址和子網掩碼按位與運算以確定網絡地址
IP地址:192.168.159.187
- 轉換為二進制:11000000.10101000.10011111.10111011
子網掩碼:255.255.240.0
- 轉換為二進制:11111111.11111111.11110000.00000000
進行按位與運算:
11000000.10101000.10011111.10111011
11111111.11111111.11110000.00000000
-----------------------------------
11000000.10101000.10010000.00000000
- 結果為:11000000.10101000.10010000.00000000
- 轉換為十進制:192.168.144.0
確定網絡部分和主機部分
網絡部分:前20位
- 11000000.10101000.1001
主機部分:后12位
- 000000000000
可用地址范圍
網絡地址的范圍從最低到最高:
- 網絡地址:192.168.144.0
- 廣播地址:192.168.159.255
可分配的最小和最大IP地址:
- 最小地址:192.168.144.1
- 最大地址:192.168.159.254
計算IP地址數量
網絡部分20位,主機部分12位:
- 可分配的主機數:2^12 - 2 = 4094(減去網絡地址和廣播地址)
總結
通過以上步驟,確定IP地址192.168.159.187/20的網絡部分是前20位,主機部分是后12位。這種方法可以確保我們準確地確定網絡和主機的范圍及地址空間。
Point 3
CRC 檢驗
接收方收到的信息為 101010110110,生成多項式 P(X) = X^4 + X + 1,轉換為二進制表示為 10011。
進行 CRC 校驗步驟如下:
- 將接收到的信息 101010110110 右邊補上 4 個零,變為 1010101101100000。
- 用生成多項式進行二進制長除:
- 除法步驟:將最高位對齊,進行異或運算,直到無法繼續除。
- 最后得到的余數應為 0,如果不為 0,則表示有誤。
通過長除得到余數,檢查是否為 0。
詳細步驟:
1010101101100000 ÷ 10011
手動執行異或運算,直到得到最終余數。
若余數為 0,則表示沒有錯誤,否則表示有錯誤。
答案:
請在紙上手動計算以確定是否有誤。
在 CRC(循環冗余校驗)計算中,發送方會在數據末尾附加的校驗碼,接收方再通過模2除法進行驗證。在這里,我們用的是直接收到的數據進行校驗。如果想要計算收到的數據是否出錯,我們通常先補0,然后進行模2除法。以下是正確的計算過程:
計算原理
CRC(循環冗余校驗)是一種用于檢測數據傳輸錯誤的算法。它通過對數據進行多項式除法得到一個校驗碼,并在接收端使用同樣的多項式進行校驗,以判斷數據在傳輸過程中是否發生錯誤。
基本步驟如下:
- 將生成多項式轉換為二進制形式。
- 將數據位和附加的校驗位進行模2除法運算。
- 若最后的余數為0,則數據無誤;否則,數據存在錯誤。
詳細計算步驟
已知:
- 接收方收到的信息:
10110110010
- 生成多項式:
P(X) = X^4 + X^3 + 1
,其二進制形式為11001
具體步驟:
-
初始化
- 被除數:
10110110010
(為了進行模2除法,需要在原始數據后補4個0,即變為101101100100000
) - 除數:
11001
- 被除數:
-
逐步進行二進制除法(模2除法,即異或運算)
-
第1步
- 前5位:
10110
與11001
異或運算:10110 11001 ----- 01111
- 結果:
01111
,將結果與下一位拼接,得到11110
- 前5位:
-
第2步
- 前5位:
11110
與11001
異或運算:11110 11001 ----- 00111
- 結果:
00111
,將結果與下一位拼接,得到01111
- 前5位:
-
第3步
- 前5位:
01111
與11001
異或運算:01111 11001 ----- 10110
- 結果:
10110
,將結果與下一位拼接,得到01100
- 前5位:
-
第4步
- 前5位:
01100
與11001
異或運算:01100 11001 ----- 10101
- 結果:
10101
,將結果與下一位拼接,得到01101
- 前5位:
-
第5步
- 前5位:
01101
與11001
異或運算:01101 11001 ----- 10100
- 結果:
10100
,將結果與下一位拼接,得到01110
- 前5位:
-
第6步
- 前5位:
01110
與11001
異或運算:01110 11001 ----- 10111
- 結果:
10111
,將結果與下一位拼接,得到01100
- 前5位:
-
第7步
- 前5位:
01100
與11001
異或運算:01100 11001 ----- 10101
- 結果:
10101
,將結果與下一位拼接,得到01101
- 前5位:
-
第8步
- 前5位:
01101
與11001
異或運算:01101 11001 ----- 10100
- 結果:
10100
,將結果與下一位拼接,得到00100
- 前5位:
-
第9步
- 前5位:
00100
與11001
異或運算:00100 11001 ----- 11100
- 結果:
11100
,將結果與下一位拼接,得到11000
- 前5位:
-
第10步
- 前5位:
11000
與11001
異或運算:11000 11001 ----- 00001
- 結果:
00001
,將結果與下一位拼接,得到00010
- 前5位:
-
第11步
- 前5位:
00010
不需要做異或運算(因為前導位是0) - 結果:
00010
,將結果與下一位拼接,得到000100
- 前5位:
-
第12步
- 前5位:
000100
不需要做異或運算(因為前導位是0) - 結果:
000100
,將結果與下一位拼接,得到0001000
- 前5位:
-
第13步
- 前5位:
0001000
不需要做異或運算(因為前導位是0) - 結果:
0001000
,將結果與下一位拼接,得到00010000
- 前5位:
-
檢查余數
- 最后得到的余數是
00001
,不等于0。
結論
- 接收方收到的信息
10110110010
在傳輸過程中產生了差錯。
Point 4
編碼波形繪制
-
不歸零編碼:
- 每個1對應一個高電平
- 每個0對應一個低電平
-
曼徹斯特編碼:
- 每個1對應低-高轉換
- 每個0對應高-低轉換
-
差分曼徹斯特編碼:
- 每個1在比特邊界時不轉換
- 每個0在比特邊界時轉換
- 第一個碼元從低電平開始
根據以上規則繪制波形。
Point 5
TCP 擁塞控制
已知:
- MSS = 1KB
- RTT = 3ms
- 擁塞窗口初始值 = 32KB
若接收到3個重復ACK,TCP進入快速恢復階段。擁塞窗口從32KB減半為16KB,再加1個MSS,成為17KB。
之后,每個RTT加1個MSS,直到回到擁塞避免階段,按每RTT增長MSS。
計算達到25KB需要的RTT次數:
計算過程:
17KB + n * 1KB = 25KB
n = 8 RTTs
8 RTTs * 3ms/RTT = 24ms
答案:
至少需要24ms。
Point 5
TCP 連接管理
(1) 第一次握手的 SYN 字段和 ACK 字段的取值
- SYN = 1
- ACK = 0
答案:
SYN = 1,ACK = 0
(2) 為什么需要三次握手而不是兩次握手?
三次握手確保雙方的接收和發送能力都正常,防止因舊連接的重復而引發錯誤。
答案:
第三次握手確保客戶端收到服務器確認,防止舊連接干擾。
(3) 確認報文段字段值
初始序號分別為 521 和 1524:
- SYN 位:1
- ACK 位:1
- seq:1524
- ack:521 + 1 = 522
答案:
- SYN = 1
- ACK = 1
- seq = 1524
- ack = 522
(4) 四次握手過程中 B 是否還能給 A 發送數據?
可以。TCP連接釋放前,B依然可以發送數據。
答案:
可以發送數據。
控制
已知:
- MSS = 1KB
- RTT = 3ms
- 擁塞窗口初始值 = 32KB
若接收到3個重復ACK,TCP進入快速恢復階段。擁塞窗口從32KB減半為16KB,再加1個MSS,成為17KB。
之后,每個RTT加1個MSS,直到回到擁塞避免階段,按每RTT增長MSS。
計算達到25KB需要的RTT次數:
計算過程:
17KB + n * 1KB = 25KB
n = 8 RTTs
8 RTTs * 3ms/RTT = 24ms
答案:
至少需要24ms。
Point 5
TCP 連接管理
(1) 第一次握手的 SYN 字段和 ACK 字段的取值
- SYN = 1
- ACK = 0
答案:
SYN = 1,ACK = 0
(2) 為什么需要三次握手而不是兩次握手?
三次握手確保雙方的接收和發送能力都正常,防止因舊連接的重復而引發錯誤。
答案:
第三次握手確保客戶端收到服務器確認,防止舊連接干擾。
(3) 確認報文段字段值
初始序號分別為 521 和 1524:
- SYN 位:1
- ACK 位:1
- seq:1524
- ack:521 + 1 = 522
答案:
- SYN = 1
- ACK = 1
- seq = 1524
- ack = 522
(4) 四次握手過程中 B 是否還能給 A 發送數據?
可以。TCP連接釋放前,B依然可以發送數據。
答案:
可以發送數據。