計算機網絡 中國大學MOOC 哈爾濱工業大學 習題答案

 

轉自 https://blog.csdn.net/qq_37514135/article/details/82733651

計算機網絡做業題

第一章

第一題

如圖所示網絡。A在t=0時刻開始向C發送一個2Mbits的文件;B在t=0.1+e秒(e爲無限趨近於0的小正實數)向D發送一個1Mbits的文件。忽略傳播延遲和結點處理延遲。
這裏寫圖片描述
請回答下列問題:html

  1. 若是圖中網絡採用存儲-轉發方式的報文交換,則A將2Mbits的文件交付給C須要多長時間?B將1Mbits的文件交付給D須要多長時間?
  2. 若是圖中網絡採用存儲-轉發方式的分組交換,分組長度爲等長的1kbits,且忽略分組頭開銷以及報文的拆裝開銷,則A將2Mbits的文件交付給C須要大約多長時間?B將1Mbits的文件交付給D須要大約多長時間?
  3. 報文交換與分組交換相比,哪一種交換方式更公平?(即傳輸數據量小用時少,傳輸數據量大用時長)
  4. 因爲A先發報文因此,A的報文在路由器的隊列中排在B的報文前面,因此A交付2Mbits報文須要時間爲:2/10+2/20+2/10=0.5s=500ms;(3分)
    B將1Mbits的文件交付給D須要時間爲:1/10+2/20(排隊時間)+1/20+1/10=0.35s=350ms。(3分)
  5. 從t=0時刻到t=0.1s,A發送了1000個分組,用時:1000×1000/10000000=0.1s,
    從t=0.1s時刻起與B共享鏈接路由器的鏈路,平均各共享到帶寬10Mbps,A大約再用時:1/10+2×1000/10000000=0.1002s交付剩餘的1000個分組,故A向C交付2Mbits文件大約須要(0.1+0.1002)s≈0.2s;(3分)
    B向D交付1Mbits文件須要時間大約爲:1/10+2×1000/10000000=0.1002s≈0.1s。(3分)
  6. 分組交換比報文交換更公平。(2分)

第二題

考慮兩臺主機A和主機B由一條帶寬爲R bps、長度爲M米的鏈路互連,信號傳播速率爲V m/s。假設主機A從t=0時刻開始向主機B發送分組,分組長度爲L比特。試求:java

  1. 傳播延遲(時延)dp;
  2. 傳輸延遲dt;
  3. 若忽略結點處理延遲和排隊延遲,則端到端延遲de是多少?
  4. 若dp>dt,則t=dt時刻,分組的第一個比特在哪裏?
  5. 若V=250000km/s,L=512比特,R=100 Mbps,則使帶寬時延積恰好爲一個分組長度(即512比特)的鏈路長度M是多少?
    (注:1k=103,1M=106)
  6. 傳播延遲(時延)dp=M/V;(2分)
  7. 傳輸延遲dt=L/R;(2分)
  8. 端到端延遲de= L/R+M/V;(2分)
  9. 若dp>dt,則t=dt時刻,分組的第一個比特所在位置是:距離主機A的Vdt米的鏈路上;(2分)
  10. 帶寬時延積=Rdp=RM/V=512,所以, M=512V/R=512×250000000/100000000 =1280米。(2分)

第三題

假設主機A向主機B以存儲-轉發的分組交換方式發送一個大文件。主機A到達主機B的路徑上有3段鏈路,其速率分別是R1=500kbps,R2=2Mbps,R3=1Mbps。試求:算法

  1. 假設網絡沒有其餘流量,則傳送該文件的吞吐量是多少?
  2. 假設文件大小爲4MB,則傳輸該文件到主機B大約須要多少時間?
    (注:1k=103,1M=106)
  3. 傳送該文件的吞吐量:TH=500kbps;(3分)
  4. 傳送該文件到主機B大約須要時間:T=4×8×106/(500×103)=64s。(3分)

第二章

第一題

假設你在瀏覽某網頁時點擊了一個超連接,URL爲「https://www.kicker.com.cn/index.html 」,且該URL對應的IP地址在你的計算機上沒有緩存;文件index.html引用了8個小圖像。域名解析過程當中,無等待的一次DNS解析請求與響應時間記爲RTTd,HTTP請求傳輸Web對象過程的一次往返時間記爲RTTh。請回答下列問題:
1)你的瀏覽器解析到URL對應的IP地址的最短期是多少?最長時間是多少?
2)若瀏覽器沒有配置並行TCP鏈接,則基於HTTP1.0獲取URL連接Web頁完整內容(包括引用的圖像,下同)須要多長時間(不包括域名解析時間,下同)?
3) 若瀏覽器配置5個並行TCP鏈接,則基於HTTP1.0獲取URL連接Web頁完整內容須要多長時間?
4) 若瀏覽器沒有配置並行TCP鏈接,則基於非流水模式的HTTP1.1獲取URL連接Web頁完整內容須要多長時間?基於流水模式的HTTP1.1獲取URL連接Web頁完整內容須要多長時間?

1)瀏覽器解析到URL對應的IP地址的最短期是:RTTd;(2分)最長時間是:5RTTd。(2分)
2)若瀏覽器沒有配置並行TCP鏈接,則基於HTTP1.0獲取URL連接Web頁完整內容須要的時間:18RTTh。(2分)
3) 若瀏覽器配置5個並行TCP鏈接,則基於HTTP1.0獲取URL連接Web頁完整內容須要的時間:6RTTh。(2分)
4) 若瀏覽器沒有配置並行TCP鏈接,則基於非流水模式的HTTP1.1獲取URL連接Web頁完整內容須要的時間:10RTTh;(2分)基於流水模式的HTTP1.1獲取URL連接Web頁完整內容須要的時間:3RTTh。(2分)瀏覽器

第二題

考慮向N個對等方(用戶)分發F=15Gb的一個文件。該服務器具備us=30Mbps的上傳速率,每一個對等方的下載速率di=2Mbps,上傳速率爲u。請分別針對客戶-服務器分發模式和P2P分發模式兩種狀況,對於N=十、100和1000以及u=500kbps、1Mbps和2Mbps的每種組合,繪製最小分發時間圖表。
(注:k=10三、M=10六、G=10^9)

第二章第二題答案緩存

第三章

第一題

假設主機A向主機B發送5個連續的報文段,主機B對每一個報文段進行確認,其中第二個報文段丟失,其他報文段以及重傳的第二個報文段均被主機B正確接收,主機A正確接收全部ACK報文段;報文段從1開始依次連續編號(即一、二、3……),主機A的超時時間足夠長。請回答下列問題:
1).若是分別採用GBN、SR和TCP協議,則對應這三個協議,主機A分別總共發了多少個報文段?主機B分別總共發送了多少個ACK?它們的序號是什麼?(針對3個協議分別給出解答)
2).若是對上述三個協議,超時時間比5RTT長得多,那麼哪一個協議將在最短的時間間隔內成功交付5個報文段?

(1)當採用GBN協議時,由GBN協議可得:
主機A共發送了9個報文段,首先發送報文段1,2,3,4,5,當報文2丟失後,重發報文段2,3,4,5共9個;
主機B共發送8個ACK,首先發送ACK1,2丟失,所以對於3,4,5都發送ACK1共4個ACK1,後對於重傳的2,3,4,5,則發送ACK2,ACK3,ACK4,ACK5,一共8個ACK。
當採用SR協議時,由SR協議可得:
主機A共發送了6個報文段,首先發送報文段1,2,3,4,5,當報文2丟失後,重發報文段2共6個報文段;
主機B共發送5個ACK,首先發送ACK1,ACK3,ACK4,ACK5,對於重發的報文段2,則發送ACK2共5個ACK。
當採用TCP協議時,由TCP協議可得:
主機A共發送了6個報文段,首先發送報文段1,2,3,4,5,當報文2丟失後,重發報文段2共6個報文段;
主機B共發送5個ACK,首先發送4個ACK2,重傳後發送一個ACK6一共5個ACK。
(2)採用TCP協議可在最短的時間間隔內成功交付5個報文段,由於TCP有快速重傳機制,即在未超時狀況下就開始重傳丟失的2號報文段。安全

第二題

假設A、B兩個端系統經過惟一的一條8Mbps鏈路鏈接(M=10^6),該鏈路的雙向傳播時延是150ms;A經過一個TCP鏈接向B發送一個大文件,B的接收緩存足夠大,每一個TCP段最大段長度(MSS)爲1500字節,TCP採用Reno版本,且老是處於擁塞避免階段(即忽略慢啓動)。請回答下列問題:
1).該TCP鏈接可以得到的最大窗口尺寸(以TCP段數計)是多少?
2).該TCP鏈接的平均窗口尺寸(以TCP段數計)和平均吞吐量(以bps計)是多少?
3).該TCP鏈接的擁塞窗口從發生丟包到恢復到最大窗口尺寸要經歷多長時間?

(1)當發送速率最大隻能等於鏈路帶寬時才能不發生丟包,所以由公式可得:
W * MSS / RTT = 8Mbps
W = 8 * 10^6 * 150 * 10^(-3) / (1500 * 8) = 100
所以TCP鏈接可以得到的最大窗口尺寸是100
(2)由公式可得:
平均窗口尺寸爲:We = 0.75 * W,即:
We = 0.75 * 100 = 75,
平均吞吐率爲:
We * MSS / RTT = 75 * (1500 * 8) / 150 * 10^(-3) = 6 * 10^6bps = 6Mbps
(3)因恢復過程當中每一個RTT窗口尺寸增長1個MSS,所以總共須要時間爲:
T = 100 / 2 * RTT = 50 * 150 * 10^(-3) = 7.5s服務器

第四章

第一題

某網絡拓撲如圖所示,其中路由器內網接口、DHCP服務器、WWW服務器與主機1均採用靜態IP地址配置,相關地址信息見圖中標註;主機2~主機N經過DHCP服務器動態獲取IP地址等配置信息。
第四題描述
請回答下列問題。
(1)DHCP服務器可爲主機2~主機N動態分配IP地址的最大範圍是什麼?主機2使用DHCP協議獲取IP地址的過程當中,發送的封裝DHCP Discover報文的IP分組的源IP地址和目的IP地址分別是什麼?
(2)主機2在經過DHCP服務器獲取IP地址的同時還能夠獲取哪些IP地址配置所必須的信息?
(3)若主機1的子網掩碼和默認網關分別配置爲255.255.255.0和111.123.15.2,則該主機是否能訪問WWW服務器?是否能訪問Internet?請說明理由。

(1)DHCP服務器可爲主機2~主機N動態分配IP地址的最大範圍是:111.123.15.5~111.123.15.254;(2分)主機2發送的封裝DHCP Discover報文的IP分組的源IP地址和目的IP地址分別是0.0.0.0和255.255.255.255。(2分)
(2)主機2在經過DHCP服務器獲取IP地址的同時還能夠獲取:子網掩碼(255.255.255.0)、默認網關(111.123.15.1)和域名服務器IP地址。(3分)
(3)主機1能訪問WWW服務器,但不能訪問Internet。(2分)因爲主機1的子網掩碼配置正確而默認網關IP地址被錯誤地配置爲111.123.15.2(正確IP地址是111.123.15.1),因此主機1能夠訪問在同一個子網內的WWW服務器,但當主機1訪問Internet時,主機1發出的IP分組會被路由到錯誤的默認網關(111.123.15.2),從而沒法到達目的主機。(1分)markdown

第五章

第一題

如圖所示網絡拓撲,全部路由器均採用距離向量路由算法計算到達兩個子網的路由(注:到達子網的路由度量採用跳步數)。
在這裏插入圖片描述
假設路由表結構以下表所示。
目的網絡 接口
請回答下列問題:
(1)若全部路由器均已收斂,請給出R1的路由表,要求包括到達圖中全部子網的路由,且路由表中的路由項儘量少。
(2)在全部路由器均已收斂的狀態下,R3忽然檢測到子網192.168.1.128/26不可到達,若接下來R2和R3同時向R1交換距離向量,則R1更新後的路由表是什麼?更新後的R1距離向量是什麼?

(1)R1的路由表:
目的網絡 接口
192.168.1.0/24 S1(2分)
192.168.1.192/26 E0(2分)
192.168.2.0/23 S0(2分)
(2)R1更新後的路由表:
目的網絡 接口
192.168.1.0/25 S1(2分)
192.168.1.128/26 S0(2分)
192.168.1.192/26 E0(2分)
192.168.2.0/23 S0(2分)
R1的距離向量:
192.168.1.0/25 2(2分)
192.168.1.128/26 3(2分)
192.168.1.192/26 1(2分)
192.168.2.0/23 2(2分)網絡

第六章

第一題

假設CRC編碼的生成比特模式G=10011。請回答下列問題:
(1)若是數據D=1010101010,則CRC編碼後<D,R>=?
(2)若是數據D=1010100000,則CRC編碼後<D,R>=?
(3)若是接收端收到碼字01011010101001,則該碼字在傳輸過程當中是否發生差錯?
(4)若是接收端收到碼字10010101010000, 則該碼字在傳輸過程當中是否發生差錯?

(1)利用G=10011去除1010101010 0000,(1分)得R=0100,(1分)因此,CRC編碼後<D,R>=10101010100100。(1分)
(2)利用G=10011去除1010100000 0000,(1分)得R=1001,(1分)因此,CRC編碼後<D,R>=10101000001001。(1分)
(3)利用G=10011去除01011010101001,(1分)得餘式=0110,不爲0000,(1分)所以該碼字在傳輸過程當中發生差錯。 (1分)
(4)利用G=10011去除10010101010000,(1分) 得餘式=0000,(1分)所以該碼字在傳輸過程當中未發生差錯。 (1分)app

第二題

假設在採用廣播鏈路的10Mbps以太網中,回答下列問題:
(1)某結點連續第5次衝突後,按二進制指數退避算法,選擇K=4的機率是多少?相應地延遲多久再次從新嘗試發送幀?
(2)若是連續第12次衝突,該結點最多延遲多久再次從新嘗試發送幀?

(1)連續第5次衝突後,結點網卡從{0, 1, 2,…, 31}中選擇K,(1分)所以,選擇到K=4的機率爲1/32,(1分)相應地延遲時間爲4512/(1010^6)=0.2048ms=204.8μs。(1分)
(2)當連續12次衝突後,網卡將從{0, 1, 2,…,1022,1023}中選擇K,(1分)所以最多延遲時間是選擇到K=1023,(1分)相應地延遲時間爲1023512/(1010^6)=52.3776ms。(1分)

第三題

某局域網採用CSMA/CD協議實現介質訪問控制,數據傳輸速率爲10 Mbps,主機甲和主機乙之間的距離爲2km,信號傳播速度是200000km/s。請回答下列問題:
(1)若主機甲和主機乙發送數據時發生衝突,則從開始發送數據時刻起,到兩臺主機均檢測到衝突時刻止,最短需通過多長時間?最長需通過多長時間?(假設主機甲和主機乙發送數據過程當中,其餘主機不發送數據)
(2)若網絡不存在任何衝突與差錯,主機甲老是以標準的最長以太網數據幀向主機乙發送數據,主機乙每成功收到一個數據幀後當即向主機甲發送一個64字節的確認幀,主機甲收到確認幀後方可發送下一個數據幀。此時主機甲的有效數據(上層協議數據)傳輸速率是多少?(不考慮以太網幀的前導碼)

(1)主機甲和主機乙之間單向傳播延遲時間= 2km/(200000km/s)=10μs;(1分)
兩臺主機均檢測到衝突時,最短所需時間和最長所需時間對應下面兩種極端狀況:
①主機甲和主機乙同時各發送一個數據幀,(1分)信號在信道中發生衝突後,衝突信號繼續向兩個方向傳播。所以,雙方均檢測到衝突須要1個單向傳播延遲,即10μs。
所以,甲乙兩臺主機均檢測到衝突時,最短需通過10μs。(1分)
②主機甲(或主機乙)先發送一個數據幀,當該數據幀即將到達主機乙(或主機甲)時,主機乙(或主機甲)也開始發送一個數據幀。(1分)這時,主機乙(或主機甲)將當即檢測到衝突;而主機甲(或主機乙)要檢測到衝突,衝突信號還須要從主機乙(或主機甲)傳播到主機甲(或主機乙),(1分)所以,主機甲(或主機乙)檢測到衝突須要2個單向傳播延遲,即20μs。
所以,甲乙兩臺主機均檢測到衝突時,最長需通過20μs。 (1分)
(2)以太網最大幀長爲1518B;(1分)發送1518B的數據幀所用時間(傳輸延遲) = 1518×8 bits/10 Mbps=1214.4μs;(1分)
發送64B的確認幀所用時間(傳輸延遲) = 64×8bits/10Mbps=51.2μs;(1分)
主機甲從發送數據幀開始到收完確認幀爲止的時間記爲T總,則
T總=1214.4+51.2+2×10=1285.6 μs;(1分)
在1285.6μs內發送的有效數據長度=1518B-18B=1500B=12000bits;(1分)
所以,主機甲的有效數據傳輸速率=12000bits/1285.6μs ≈ 9.33Mbps。(1分)

 

做業10

 轉自http://www.javashuo.com/article/p-uwgvrgim-ha.html

一、
若單碼替代密碼的替代關係(密鑰)以下:

明文:abcdefghijklmnopqrstuvwxyz

密文:mnbvcxzasdfghjklpoiuytrewq

1)請加密報文「This is an easy problem」;

2)解密報文「rmij'u uamu xyj」。

 

答:1)uasi si mj cmiw lokngch

        2)wasn't that fun

源代碼以下(java):

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String a = "abcdefghijklmnopqrstuvwxyz";
String b = "mnbvcxzasdfghjklpoiuytrewq";
char [] m = a.toCharArray();
char [] n = b.toCharArray();
String ming = in.nextLine().toLowerCase();
String mi = in.nextLine().toLowerCase();
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
for(int i = 0;i<ming.length();i++) {
for(int j=0;j<m.length;j++) {
if (ming.charAt(i)<'a'||ming.charAt(i)>'z') {
sb1 = sb1.append(ming.charAt(i));
break;
}
else if(m[j]==ming.charAt(i)) {
sb1 = sb1.append(n[j]);
break;
}
}
}

for(int i = 0;i<mi.length();i++) {
for(int j=0;j<m.length;j++) {
if (mi.charAt(i)<'a'||mi.charAt(i)>'z') {
sb2 = sb2.append(mi.charAt(i));
break;
}
else if(n[j]==mi.charAt(i)) {
sb2 = sb2.append(m[j]);
break;
}
}
}

System.out.println(sb1);
System.out.println(sb2);

}

}
二、
假設攻擊者能夠加密明文「The quick brown fox jumps over the lazy dogs」,並的到密文。請問:

1)攻擊者是否能夠利用選擇明文攻擊破解單碼替代密碼的全部報文?爲何?

2)攻擊者是否能夠利用選擇明文攻擊破解多碼替代密碼的全部報文?爲何?

答:

1)能破解;(1分)由於在單碼替代密碼系統中,字母之間的替代關係是固定的,而選擇明文中已包含了全部字母,因此選擇明文攻擊能夠徹底肯定字母替代關係,因此能夠破解。(2分)

2)不行,多碼替代密碼是採用多個單碼替代密碼的組合,不一樣位置採用不一樣的單碼替代密碼,一句話包含不了這些規律信息。

 

三、
考慮p=5和q=11的RSA算法。請問:

1)n和z是什麼?

2)若令e=3,爲何e是一個合理的選擇?

3)求d是的de mod z = 1,且de<160;

4)使用密鑰(n,e)加密報文m=8。(提示:[(a mod n)*(b mod n)] mod n = (a*b) mod n)

答:

1)n = pq = 55;

     z = (p-1)(q-1) = 40;

2)  e<n且e與z互質;

3)ed-1恰好被z整除,

     d = (40i+1)/3, i爲大於0的整數,保證d也爲整數,

    當i=2時,d=27

4) c = m^e mod n = 17

 

四、
假設Alice和Bob之間共享兩個密鑰:一個報文認證密鑰S1和一個對稱加密祕鑰S2。請利用圖示設計一個通訊方案,要求支持報文完整性和機密性。

答:

 

 

 

五、 
假設Alice想給Bob發送一封郵件; Bob擁有公鑰-私鑰對(KB+,KB–),Alice有Bob的證書,可是Alice沒有公鑰-私鑰對;Alice和Bob共享相同的散列函數H(·)。請回答下列問題:

1). 在這種狀況下,是否能設計一個方案使得Bob能夠覈實郵件消息是由Alice建立的?若是能,請繪製框圖解釋該方案;若是不能,請簡單解釋緣由。

2). 可否設計一個方案,支持Alice向Bob發送機密性郵件?若是能,請繪製方案框圖;若是不能,請簡單解釋緣由。

答:

1)不能,Alice只持有bob的公鑰,沒有本身和bob所獨有的一段報文認證密鑰s1,也沒有本身的公鑰私鑰對,沒法證實本身是Alice

2)能夠,只要Alice的報文通過Bob的公鑰KB+加密,就能夠實現機密傳輸,Bob收到以後能夠用私鑰解密。

如圖所示:

 

 

 

六、 
假設Alice和Bob基於SSL會話進行通訊。假設有一個沒有任何共享密鑰的攻擊者,在數據包流中插入一個具備正確TCP校驗和與序列號(以及正確的IP地址和端口號)的僞造TCP段。接收端的SSL會接收該僞造TCP段並向上層應用提交載荷嗎?爲何?

答:

不會

SSL協議就是介於TCP和應用層之間的一個安全協議,用於提供傳輸過程當中的機密性、完整性和認證,即使TCP校驗經過,序列號正確,因爲其沒有遵循ssl協議,同樣會被識別出來。

由於僞造的TCP沒法經過數據完整性校驗(攻擊者沒有共享的MAC密鑰)

 

七、
考慮下列僞WEP協議,共享密鑰爲4比特,設爲1010;IV爲2比特,在產生密鑰流時,附加在密鑰以後。產生的4種密鑰流以下:

101000: 0010101101010101001011010100100 . . .

101001: 1010011011001010110100100101101 . . .

101010: 0001101000111100010100101001111 . . .

101011: 1111101010000000101010100010111 . . .

假設全部消息長度爲8比特;ICV爲4比特,是經過數據的前4比特與後4比特異或所得;僞WEP分組包含3個字段:IV字段+消息字段+ICV字段,其中消息字段+ICV字段被加密。

1).若是指望利用IV = 11的WEP協議發送消息 m = 10100000,那麼WEP分組的3個字段的值分別是多少?

2).說明當接收端解密該WEP分組時,如何恢復消息和ICV。

3).假設Trudy截獲了一個WEP分組(未必是IV = 11),並在向接收端轉發前修改該分組,且Trudy並不知道對應任何IV的密鑰流。若是Trudy翻轉了ICV的第一個比特,則Trudy還必須翻轉哪些/個其餘比特,才能使得被修改的分組經過ICV檢查?

答:

1)第一個字段就是IV,不加密,爲:   11

    第二個字段是消息字段,加密以後爲:01011010

    第三個字段 ICV,加密以後爲:0010

2)IV是不加密的,首先用共享密鑰加IV輸入到密鑰流發生器產生密鑰流,用密鑰流和第二第三個字段逐位異或,獲得解密的消息和ICV,以後根據消息計算ICV,與收到的ICV比對,若相同,則代表收到的報文完整。

3)能夠翻轉消息字段的第1位,或者是第5位。

由於ICV的第1位是消息的第1位和第5位異或獲得。密文與相同的密鑰流異或,會還原到原消息,翻轉1位,異或獲得的也是翻轉的,因此,只須要消息的第1位或第5位

相關文章
相關標籤/搜索