1. 程式人生 > >計算機網路自頂向下方法(第六版) 課後題答案 | 第二章

計算機網路自頂向下方法(第六版) 課後題答案 | 第二章

複習題

R1.
非專用的因特網 所在的應用層協議
Web HTTP
檔案傳輸 FTP
遠端登入 Telent
e-mail SMTP
P2P BitTorrent
R2.

網路體系結構是指如五層Internet架構。應用程式體系結構是由應用程式開發人員設計的,它規定了應用程式的廣泛結構(例如客戶機-伺服器或P2P)。

R3.

發起請求的是客戶端,接收請求的是伺服器。

R4.

不。在P2P檔案共享應用程式中,接收檔案的對等點通常是客戶機,傳送檔案的對等點通常是伺服器。

R5.

目標主機的IP地址和目標程序中套接字的埠號。

R6.

使用UDP,事務可以在一個往返時間(RTT)內完成——客戶機將事務請求傳送到UDP套接字,伺服器將響應傳送回客戶機的UDP套接字。對於TCP,至少需要兩個rtt—一個用於設定TCP連線,另一個用於客戶機發送請求,伺服器傳送迴應答。

R7.

例如,使用谷歌文件的遠端字處理就是這樣一個例子。但是,因為谷歌文件在Internet上執行(使用TCP),所以沒有提供計時保證。

R8.

可靠資料傳輸:TCP
(頻寬)吞吐量:都不提供
定時:都不提供
安全性:都不提供

R9.

SSL 在應用層操作。SSL 套接字從應用層獲取未加密的資料,對其進行加密,然後將其傳遞給 TCP 套接字。如果應用程式開發人員希望使用 SSL 增強 TCP,則必須在應用程式中包含 SSL 程式碼。UDP 不能使用 SSL。

R10.

握手協議是指主要用來讓客戶端及伺服器確認彼此的身份的一類網路協議。除此之外,為了保護 SSL 記錄封包中傳送的資料,握手協議還能協助雙方選擇連線時所使用的加密演算法、MAC 演算法及相關金鑰。在傳送應用程式的資料前,必須使用 握手協議來完成上述事項。

R11.

與這些協議相關聯的應用程式要求以正確的順序接收所有應用程式資料,並且沒有間隙。TCP提供此服務,而UDP不提供此服務。

R12.

當用戶第一次訪問站點時,伺服器建立一個惟一的標識號,在其後端資料庫中建立一個條目,並將該標識號作為cookie號返回。這個cookie號儲存在使用者的主機上,由瀏覽器管理。在隨後的每次訪問(和購買)期間,瀏覽器將cookie編號傳送回站點。因此,站點知道這個使用者(更準確地說,這個瀏覽器)什麼時候訪問站點。

R13.

Web快取可以使所需的內容“更接近”使用者,可能是與使用者的主機連線的同一區域網。Web快取可以減少所有物件的延遲,甚至是沒有快取的物件,因為快取減少了連結上的通訊量。

R14.

Telnet 在 Windows 7 中預設不可用。要使它可用,去控制面板,程式和功能,開啟或關閉 Windows 功能,檢查 Telnet 客戶端。要啟動 Telnet,在 Windows 命令提示符中,發出以下命令> Telnet webserverver 80

R15.

FTP使用兩個並行TCP連線,一個連線用於傳送控制資訊(例如傳輸檔案的請求),另一個連線用於實際傳輸檔案。由於控制資訊不是通過檔案傳送的同一連線傳送的,FTP將控制資訊傳送到帶外。

R16.

訊息首先通過HTTP從Alice的主機發送到她的郵件伺服器。然後Alice的郵件伺服器通過SMTP將訊息傳送到Bob的郵件伺服器。然後Bob通過POP3將訊息從郵件伺服器傳輸到主機。

R17.

R18.

通過下載和刪除,在使用者從POP伺服器檢索訊息之後,這些訊息將被刪除。
在下載和儲存配置中,在使用者檢索訊息後不會刪除訊息。

R19.

是的,組織的郵件伺服器和Web伺服器可以有相同的主機名別名。MX記錄用於將郵件伺服器的主機名對映到其IP地址。

R20.

能,但是如果使用者使用gmail帳戶,您將無法看到傳送方的IP地址。

R21.

Bob也沒有必要向Alice提供塊。Alice必須在Bob的前4個鄰居中Bob才能向Alice傳送資料塊;即使Alice在30秒的間隔內向Bob提供塊,這種情況也可能不會發生。

R22.
R23.

P2P檔案共享系統中的覆蓋網路由參與檔案共享系統的節點和節點間的邏輯連結組成。如果節點a和節點B之間存在半永久TCP連線,則節點a到節點B之間存在邏輯鏈路(圖論術語中的“邊”)。覆蓋網路不包括路由器。

R24.

Mesh DHT:
優點是為了將訊息路由到最接近金鑰的對等節點(具有ID),只需要一次跳轉;
缺點是每個對等點必須跟蹤DHT中的所有其他對等點。

迴圈DHT:
優點是每個對等點只需要跟蹤幾個其他對等點;
缺點是需要O(N)跳來將訊息路由到最接近金鑰的對等點。

R25.

檔案傳輸
即時通訊
視訊
分散式計算

R26.

對於UDP伺服器,不存在歡迎套接字(serverSocket),來自不同客戶機的所有資料都通過這個套接字進入伺服器。對於TCP伺服器,有一個歡迎套接字,每當客戶機啟動到伺服器的連線時,就會建立一個新的套接字。因此,為了支援n個併發連線,伺服器需要n+1個套接字。

R27.

對於TCP應用程式,客戶機一執行,它就試圖啟動與伺服器的TCP連線。如果TCP伺服器沒有執行,那麼客戶機將無法建立連線。對於UDP應用程式,客戶機不會在執行後立即啟動連線(或嘗試與UDP伺服器通訊)

習題

P1.

a.
×
因為在對於一個 web page中,每一個object都需要發出一個 request ,然後收到相應的 response,所以 request 一個 web page時,所有object 的 request 和 response 都是成對出現的
b.

在一個持久連線中,因為已經客戶端瀏覽器已經伺服器建立了 TCP 連線,在此基礎上就可以連續傳遞多個 object,當所有 object 的 request 和來自伺服器的 response 都收到後,TCP 連線才關閉,故這兩個不同的網頁可以在同一個持久連線中傳送。
c.
×
在非持久連線中,對於要傳送的每一個 object 都需要建立相應的TCP連線,在對應於每一個 object 的 TCP 連線建立完成後,客戶端就向伺服器傳送 request ,然後在伺服器收到 request 之後就會發回一個包含客戶端請求的 object 的 response 然後就關閉 TCP 連線,因此在一個 TCP 連線中不可能有兩個不同的 HTTP request .
d.
×
DATE 是提供日期和時間標誌,說明報文是什麼時間建立的
e.
×
可以有空的報文體

P2.

訪問控制命令:USER, PASS, ACT, CWD, CDUP, SMNT, REIN, QUIT。
傳輸引數命令:埠,PASV,型別 STRU,模式。
服務命令:RETR, STOR, STOU, APPE, ALLO, REST, RNFR, RNTO, ABOR, DELE, RMD, MRD, PWD, LIST, NLST, SITE, SYST, STAT, HELP, NOOP。

P3.

應用層協議:DNS 和 HTTP
傳輸層協議:DNS 的 UDP;TCP HTTP

P4.

a.
gaia.cs.umass.edu/cs445 /index.html
b.
HTTP / 1.1
c.
持續連線,keep-alive :300
d.
HTTP 報文中沒有 IP 地址。
e.
Mozilla / 5.0。伺服器需要瀏覽器型別資訊將相同物件的不同版本傳送到不同型別的瀏覽器

P5.

a.
狀態碼 200 和 OK 表示伺服器能夠成功定位文件。答覆於 2008 年 3月 7 日(星期二)格林威治標準時間 12:39:45。
b.
最後一次修改 html 是在 2005 年 12 月 10 日星期六 18:27:46 GMT。
Last-Modified: Sat, 10 Dec 2005 18:27:46 GMT
c.
返回的文件中有 3874 位元組。
Content-Length: 3874
d.
返回文件的前五個位元組為:<!doc。伺服器同意持久連線,如連線:Keep-Alive 欄位所示

P6.

a.
客戶端或伺服器都可以向另一方表明,它將關閉持久連線
b.
HTTP不提供任何加密服務
c.
(來自 RFC 2616)“使用持久連線的客戶機應該限制它們維護到給定伺服器的同時連線的數量。單使用者客戶機與任何伺服器或代理連線不應超過 2 個
d.
可能,當伺服器決定關閉“空閒”連線時,客戶機可能已經開始傳送新的請求。從伺服器的角度來看,連線在空閒時被關閉,但從客戶的角度來看,請求正在進行中。

P7.

得到 IP 地址的時間為 RTT1 + RTT2 + … + RTTn
得到 IP 後,本機與伺服器需要三次握手,第一次建立連結,第二次發出請求,第三次傳送物件,由於物件傳送時間為 0 ,所以獲取網頁需要的時間為 2RTT0。
接收到該物件的時間為 2RTT0 + RTT1 + RTT2 + … + RTTn

P8.

a.
沒有並行非持續連線中,每次引用物件都必須重新建立連結。
建立連結 + 獲取物件 = 2 RTT0
總時間為:獲取物件花費的時間為:8 * 2RTT0 。
2 RTT0 + RTT1 + RTT2 + … + RTTn + 8 * 2RTT0 =
18RTT0 + RTT1 + RTT2 + … + RTTn

b.
有並行非持續連線中,只需建立一次 HTTP 連線
獲取物件花費的時間為 2RTT0。
總時間為:2RTT0 + RTT1 + RTT2 + … + RTTn + 2RTT0 =
4RTT0 + RTT1 + RTT2 + … + RTTn

c.
帶流水線的持續 HTTP 中,只需建立一次 HTTP 連線,連線期間可以處理多個請求/響應,獲取物件花費的時間為 RTT0。
總時間為:3 RTT0 + RTT1 + RTT2 + … + RTTn

d.(不帶流水)
與帶流水區別,非流水持續 HTTP 中,每個物件需要花費 1 個 RTT0,
獲取物件花費的時間為 8 RTT0。
總時間為:8 RTT0 + 2 RTT0 + RTT1 + RTT2 + … + RTTn

P9.

a.
Δ \Delta :跨越接入鏈路傳送一個物件的平均時間
β \beta :該物件接入鏈路的平均到達率
Δ \Delta = (850,000 bits)/(15,000,000 bits/sec) = 0.0567 sec
Δ \Delta β \beta = (16 requests/sec)(0.0567 sec/request) = 0.907
平均接入時延 : Δ \Delta /(1- Δ \Delta β \beta )= (0.0567 sec)/(1 - 0.907) = 0.6 seconds
總的平均響應時延 = 平均接入時延 + 平均因特網時延 = 0.6 sec + 3 sec = 3.6 sec.

b.
因為有40%的請求網路滿足,所以訪問鏈路的流量強度減少了40%。
因此平均接入時延: Δ \Delta /(1- Δ \Delta β \beta )= (0.0567 sec)/[1 – (0.6)(0.907)] = 0.12 sec。
如果請求由快取器滿足的話,其響應時間近似為 0 sec。
當快取器未命中時,快取丟失的平均響應時間是 0.12 sec + 3sec = 3.12 sec。
因此平均響應時間是:(0.4)(0 sec) + (0.6)(3.12 sec) = 1.872 sec。
因此平均響應時間由 3.6 sec 減少到 1.872sec。

P10.

todo

P11.

a.
能,因為Bob使用非持續 HTTP 並行例項,有更多的連線,他可以得到更多的鏈路頻寬。
b.
是的,Bob仍然需要執行並行下載;否則,他將得到比其他4個使用者更少的頻寬。

P12.

P13.

The MAIL FROM:在 SMTP中,是來自 SMTP 客戶端的訊息,它標識傳送到SMTP伺服器的郵件訊息的傳送方。
The From:本身不是SMTP訊息,而是郵件訊息主體中的一行。

P14.

SMTP使用僅包含句號的行來標記訊息主體的結束。HTTP使用“Content-Length header欄位”表示訊息體的長度。不,HTTP不能使用SMTP使用的方法,因為HTTP訊息可以是二進位制資料,而在SMTP中,訊息體必須是7位ASCII格式。

P15.

MTA (Mail Transfer Agents) 是郵件傳輸代理的縮寫。主機將訊息傳送給 MTA。然後,該訊息按照 mta 序列到達接收方的郵件閱讀器。我們可以看到,這條垃圾郵件遵循一個 MTAs 鏈。一個誠實的 MTA 應該在收到資訊的地方報告。注意,在這條訊息中,“asusus-4b96([58.88.21.177])”沒有從哪裡收到電子郵件。由於我們假設只有發起者是不誠實的,所以“usus-4b96([58.88.21.177])”一定是發起者。

P16.

UIDL縮寫為“惟一id列表”。當POP3客戶機發出UIDL命令時,伺服器將使用使用者郵箱中所有訊息的唯一訊息ID進行響應。這個命令對於“下載並儲存”很有用。通過維護一個出現在早期會話中檢索到的訊息的檔案列表,客戶機可以使用UIDL命令來確定伺服器上已經看到了哪些訊息。

P17.

P18.

a.
對於給定的域名(如ccn.com)、IP地址或網路管理員名稱,可以使用whois 資料庫定位相應的註冊商、whois伺服器、DNS伺服器等。
b.

c.

d.

e.

f.
攻擊者可以使用 whois 資料庫和 nslookup工具來確定目標機構的 IP 地址範圍、DNS 伺服器地址等。
g.
通過分析攻擊包的源地址,受害者可以使用whois獲取攻擊來自的域的資訊,並可能通知源域的管理員。

P19.

P20.

我們可以定期對本地 DNS 伺服器中的 DNS 快取進行快照。出現在 DNS 快取中最頻繁的Web伺服器是最流行的伺服器。這是因為如果更多的使用者對 Web 伺服器感興趣,那麼該伺服器的 DNS 請求將更頻繁地由使用者傳送。因此,Web 伺服器將更頻繁地出現在 DNS 快取中。

P21.

是的,我們可以使用 dig 在本地 DNS 伺服器上查詢那個網站。
例如,“dig cnn.com”將返回查詢cnn.com的查詢時間。如果在幾秒鐘之前訪問了 cnn.com,則 cnn.com 的條目將快取在本地 DNS 快取中,因此查詢時間為 0 msec。否則,查詢時間很長。

P22.

P23.

P24.

P25.

覆蓋網路中有N個節點。有N(N-1)/2條邊。

P26.

P27.

Peer 3 知道Peer 5 剛剛離開系統,所以Peer 3 向它的第一個繼承者(Peer 4)請求它的直接繼承者(Peer 8)的識別符號,然後Peer 3 將使Peer 8 成為第二個繼承者。

P28.

第 6 位會先給第 15 位傳送一條訊息,說“第 6 位的前驅和後繼是誰?”這條訊息通過 DHT 被轉發,直到到達 peer 5, peer 5 意識到它將是 6 的前驅,而它的當前後繼,peer 8,將成為 6 的後繼。接下來,對等點 5 將此前驅和後繼資訊傳送回 6。現在,Peer 6 可以加入DHT,方法是讓 Peer 8 成為它的後繼,並通知 Peer 5,它應該將後繼更改為 6。

P29.

對於每個鍵,我們首先計算其與所有對等點之間的距離(使用d(k,p)),然後將鍵儲存在最接近鍵的對等點中(即距離值最小)。

P30.

可能,隨機地將鍵分配給對等點根本不考慮底層網路,因此很可能會導致不匹配。較短的邏輯路徑可能對應較長的物理路徑。

P31.

a.
如果先執行TCPClient,那麼客戶機將嘗試與不存在的伺服器程序建立TCP連線。將不會建立TCP連線。
b
UDPClient不與伺服器建立TCP連線。因此,如果首先執行UDPClient,然後執行UDPServer,然後在鍵盤上鍵入一些輸入,那麼一切都可以正常工作。
c.
如果使用不同的埠號,那麼客戶端將試圖建立一個TCP連線與錯誤的程序或不存在的程序。會發生錯誤。

P32.

在原始程式中,UDPClient在建立套接字時不指定埠號。在本例中,程式碼允許底層作業系統選擇埠號。在另一行中,當UDPClient執行時,將建立一個埠號為5432的UDP套接字。

UDPServer 需要知道客戶機埠號,以便能夠將資料包傳送回正確的客戶機套接字。DPServer 通過分解從客戶機接收的資料報來確定客戶機埠號。因此,UDP 伺服器可以使用任何客戶機埠號,包括 5432。因此,UDPServer 不需要修改。

P33.

優點:可以更快地下載檔案。
缺點:可能會佔用頻寬,從而顯著降低共享相同物理連結的其他使用者的下載速度。

P34.

對於遠端登入(telnet和ssh)之類的應用程式,面向位元組流的協議非常普遍,因為應用程式中沒有訊息邊界的概念。當用戶鍵入字元時,我們只需將該字元放入 TCP 連線。在其他應用程式中,我們可能會發送一系列在它們之間有固有邊界的訊息。例如,當一個SMTP 郵件伺服器向另一個 SMTP 郵件伺服器傳送多個電子郵件訊息時。由於 TCP 沒有表示邊界的機制,應用程式必須新增標識本身,以便應用程式的接收端能夠區分一條訊息和另一條訊息。如果將每個訊息放入一個不同的 UDP 段,接收端將能夠區分各種訊息,而不需要應用程式的傳送端新增任何指示。

TCP 是流式的資料傳輸,訊息沒有邊界,需要應用層自己去定義訊息邊界,而 UDP 是資料報傳輸,所以協議保證了一次只能接收一個數據報。

P35.

要建立 web 伺服器,我們需要在主機上執行 web 伺服器軟體。許多供應商出售 web 伺服器軟體。然而,當今最流行的 web 伺服器軟體是Apache,它是開源的,而且是免費的。多年來,開源社群對它進行了高度優化。

P36.

鍵是infohash,值存放 infohash 指定的檔案的一個IP地址。

我的 Github:Github
個人網站: 天狼星的部落格
CSDN: CSDN
E-mail: [email protected]
QQ:1136513099
答案下載:https://download.csdn.net/download/sirius_hly/10830333
參考:https://blog.csdn.net/zyj061/article/details/50511076
轉載請註明出處,如有錯誤,歡迎指正,感激不盡,多謝。