《計算機網絡——自頂向下方法》習題答案與知識點總結 第二章

知識點總結

  • P2P體系結構最引人注目的特性之一是它們的自擴展性。儘管每個對等方都由於請求文件產生工作量,但每個對等方通過向其他對等方分發文件也爲系統增加服務能力。
  • 在給定的一對進程之間的通信會話場景中,發起通信(即在該會話開始時發起與其他進程的聯繫)的進程被標識爲客戶,在會話開始時等待聯繫的進程是服務器。
  • 套接字是同一臺主機內應用層與運輸層之間的接口。由於該套接字是建立網絡應用程序的可編程接口,因此套接字也稱爲應用程序和網絡之間的應用程序編程接口(Application Programming Interface,API)。
  • 因特網(更一般的是TCP/IP網絡)爲應用程序提供兩個運輸層協議,即UDP和TCP。當你(作爲一個軟件開發者)爲因特網創建一個新的應用時,首先要做出的決定是,選擇UDP還是選擇TCP。每個協議爲調用它們的應用程序提供了不同的服務集合。
  • 服務要求要考慮:數據丟失、帶寬和時間敏感
  • 無論TCP還是UDP都沒有提供任何加密機制,所以因特網界已經研製了TCP的加強版本,稱爲安全套接字層(Secure Sockets Layer,SSL)。用SSL加強後的TCP不僅能夠做傳統的TCP所能做的一切,而且提供了關鍵的進程到進程的安全性服務,包括加密、數據完整性和端點鑑別。我們強調SSL不是與TCP和UDP在相同層次上的第三種因特網運輸協議,而是一種對TCP的加強,這種強化是在應用層上實現的。特別是,如果一個應用程序要使用SSL的服務,它需要在該應用程序的客戶端和服務器端包括SSL代碼(利用現有的、高度優化的庫和類)。SSL有它自己的套接字API,這類似於傳統的TCP套接字API。
  • UDP是一種不提供不必要服務的輕量級運輸協議,它僅提供最小服務。UDP是無連接的,因此在兩個進程通信前沒有握手過程。UDP協議提供一種不可靠數據傳送服務,也就是說,當進程將一個報文發送進UDP套接字時,UDP協議並不保證該報文將到達接收進程。不僅如此,到達接收進程的報文也可能是亂序到達的。
  • HTTP使用TCP作爲它的支撐運輸協議(而不是在UDP上運行)。
  • 因爲HTTP服務器並不保存關於客戶的任何信息,所以我們說HTTP是一個無狀態協議(stateless protocol)。
  • 往返時間(Round-Trip Time,RTT)的定義:該時間是指一個短分組從客戶到服務器然後再返回客戶所花費的時間。RTT包括分組傳播時延、分組在中間路由器和交換機上的排隊時延以及分組處理時延
  • 響應時間=2*RTT+服務器傳輸HTML文件的時間
  • HTTP請求報文的第一行叫做請求行(request line),其後繼的行叫做首部行(header line)。請求行有3個字段:方法字段、URL字段和HTTP版本字段。方法字段可以取幾種不同的值,包括GET、POST、HEAD、PUT和DELETE。絕大部分的HTTP請求報文使用GET方法。當瀏覽器請求一個對象時,使用GET方法,在URL字段帶有請求對象的標識
  • 在這裏插入圖片描述
  • 實體體,在使用GET方法時爲空,在使用POST方法時才使用此實體體。
  • 響應報文
部分 用途
狀態行 有三個字段:協議版本、狀態碼、相應狀態信息
首部行 Collection:close;Data:服務器從文件系統中檢索到這個對象,插入響應報文,並且發送該響應報文的時間;Server;Last-Modified指示了對象創建或者最後修改的日期和時間。Content-Length:首部行指示了被髮送對象中的字節數。Content-Type:首部行指示了實體體中的對象是HTML文本。(該對象類型應該正式地由Content-Type:首部行而不是用文件擴展名來指示。)
實體體
  • 常用狀態碼
    200:請求成功,信息在返回的響應報文中。
    301 Moved Permanently:請求的對象已經被永久轉移了,新的URL定義在響應報文的Location:首部行中。客戶軟件將自動獲取新的URL。
    400Bad Request:一個通用差錯代碼,指示該請求不能被服務器理解。
    404 Not Found:被請求的文檔不在服務器上。
    505 HTTP Version Not Supported:服務器不支持請求報文使用的HTTP協議版本。

  • Web緩存器(Web cache)也叫代理服務器(proxy server),它是能夠代表初始Web服務器來滿足HTTP請求的網絡實體。Web緩存器有自己的磁盤存儲空間,並在存儲空間中保存最近請求過的對象的副本。可以配置用戶的瀏覽器,使得用戶的所有HTTP請求首先指向Web緩存器。一旦某瀏覽器被配置,每個對某對象的瀏覽器請求首先被定向到該Web緩存器。

  • HTTP協議有一種機制,允許緩存器證實它的對象是最新的。這種機制就是條件GET(conditional GET)方法。如果:①請求報文使用GET方法;並且②請求報文中包含一個“If-Modified-Since:”首部行。那麼,這個HTTP請求報文就是一個條件GET請求報文。

  • FTP使用了兩個並行的TCP連接來傳輸文件,一個是控制連接,一個是數據連接

  • HTTP主要是一個拉協議(pull protocol),即在方便的時候,某些人在Web服務器上裝載信息,用戶使用HTTP從該服務器拉取這些信息。特別是TCP連接是由想接收文件的機器發起的。另一方面,SMTP基本上是一個推協議(push protocol),即發送郵件服務器把文件推向接收郵件服務器。

  • SMTP要求每個報文(包括它們的體)使用7比特ASCI碼格式。如果某報文包含了非7比特ASCII字符(如具有重音的法文字符)或二進制數據(如圖形文件),則該報文必須按照7比特ASCII碼進行編碼。HTTP數據則不受這種限制。

  • HTTP把每個對象封裝到它自己的HTTP響應報文中,而SMTP則把所有報文對象放在一個報文之中

  • 如果Type=A,則Name是主機名,Value是該主機名對應的IP地址。因此,一條類型爲A的資源記錄提供了標準的主機名到IP地址的映射。例如(relayl.
    bar.foo.com,145.37.93.126,A)就是一條類型A記錄。
    如果Type=NS,則Name是個域(如foo.com),而Value是個知道如何獲得該域中主機IP地址的權威DNS服務器的主機名。這個記錄用於沿着查詢鏈來路由DNS查詢。例如(foo.com,dns.foo.com,NS)就是一條類型爲NS的記錄。如果Type=CNAME,則Value是別名爲Name的主機對應的規範主機名。該記錄能夠向查詢的主機提供一個主機名對應的規範主機名,例如(foo.com,relayl.bar.foo.com,CNAME)就是一條CNAME類型的記錄。
    如果Type=MX,則Value是個別名爲Name的郵件服務器的規範主機名。舉例來說,(foo.com,mail.bar.foo.com,MX)就是一條MX記錄。MX記錄允許郵件服務器主機名具有簡單的別名。值得注意的是,通過使用MX記錄,一個公司的郵件服務器和其他服務器(如它的Web服務器)可以使用相同的別名。爲了獲得郵件服務器的規範主機名,DNS客戶應當請求一條MX記錄;而爲了獲得其他服務器的規範主機名,DNS客戶應當請求CNAME記錄。

  • DNS只有查詢和回答兩種報文,並且兩種報文格式一致

  • 在這裏插入圖片描述

  • 對於客戶-服務器體系結構:
    Desmax{NFus,Fdmin}分發時間D_{es}\ge max \begin{Bmatrix} \frac{NF}{u_{s}} , \frac{F}{d{min}} \end{Bmatrix}

  • 我們現在來對P2P體系結構進行簡單的分析,其中每個對等方能夠幫助服務器分發文件。特別是,當一個對等方接收到某些文件數據,它能夠使用自己的上載能力重新將據分發給其他對等方。
    對於P2P體系結構:
    Desmax{Fus,Fdmin,NFus+i=1Nui}分發時間D_{es}\ge max \begin{Bmatrix} \frac{F}{u_{s}} , \frac{F}{d{min}},\frac{NF}{u_{s}+\sum_{i=1}^{N}{u_{i}}} \end{Bmatrix}

  • 二者的時間增長圖
    在這裏插入圖片描述

  • 每個洪流具有一個基礎設施結點,稱爲追蹤器(tracker)。當一個對等方加入某洪流時,它向追蹤器註冊自己,並週期性地通知追蹤器它仍在該洪流中。以這種方式,追蹤器跟蹤正參與在洪流中的對等方。一個給定的洪流可能在任何時刻具有數以百計或數以千計的對等方。

  • 在決定請求哪些塊的過程中,Alice使用一種稱爲最稀缺優先(rarest first)的技術。這種技術的思路是,針對她沒有的塊在她的鄰居中決定最稀缺的塊(最稀缺的塊就是那些在她的鄰居中副本數量最少的塊),並首先請求那些最稀缺的塊。這樣,最稀缺塊得到更爲迅速的重新分發,其目標是(大致地)均衡每個塊在洪流中的副本數量。

習題答案

寫到一半斷電了(悲),我就留下幾道比較好的題目吧

R5.運行在一臺主機上的一個進程,使用什麼信息來標識運行在另一臺主機上的進程?

目標主機的IP地址和目標進程中套接字的端口號。

R9.前面講過TCP能用SSL來強化,以提供進程到進程的安全性服務,包括加密。SSL運行在運輸層還是應用層?如果某應用程序研製者想要用SSL來強化UDP,該研製者應當做些什麼工作?

SSL在應用層運行。SSL套接字從應用層接收未加密的數據,對其進行加密,然後將其傳遞給TCP套接字。如果應用程序開發人員希望使用SSL增強TCP,則必須在應用程序中包含SSL代碼。

R11.爲什麼HTTP、SMTP及POP3都運行在TCP,而不是UDP上?

與這些協議相關聯的應用程序要求以正確的順序接收所有應用程序數據,並且不存在空白。TCP提供此服務,而UDP不提供此服務。

R18.從用戶的觀點看,POP3協議中下載並刪除模式和下載並保留模式有什麼區別嗎?

通過下載和刪除,用戶從POP服務器檢索其消息後,消息將被刪除。這給遊牧用戶帶來了一個問題,他們可能希望從許多不同的機器(辦公PC、家庭PC等)訪問消息。在下載和保存配置中,在用戶檢素消息後不會刪除消息。這也可能不方便,因爲每次用戶從新機器檢素存儲的消息時,所有未副除的消息都將傳輸到新機器(包括非常舊的消息)。

R19.一個機構的Web服務器和郵件服務器可以有完全相同的主機名別名(例如,foo.com)嗎?包含郵件服務器主機名的RR有什麼樣的類型?

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

R20.仔細檢查收到的電子郵件,查找由使用,edu電子郵件地址的用戶發送的報文首部。從其首部,能夠確定發送該報文的主機的IP地址嗎?對於由gmail賬號發送的報文做相同的事。

您應該能夠使⽤.edu電⼦郵件地址查看發送⽅的IP地址。但是,如果⽤⼾使⽤Gmail帳⼾,您將⽆法看到發件⼈的IP地址。

2.6節
R21.在BitTorment中,假定Alice向Bob提供一個30秒間隔的文件塊吞吐量。Bob將必須進行回報,在相同的間隔中向Alice提供文件塊嗎?爲什麼?

Bob也沒有必要爲Alice提供塊。Alice必須是Bob的前4位鄰居,Bob才能向她發送塊;即使Alice在30秒的間隔內向Bob提供塊,也可能不會發⽣這種情況。

R22.考慮一個新對等方Alice加入BifTorrent而不擁有任何文件塊。沒有任何塊,因此她沒有任何東西可上載,她無法成爲任何其他對等方的前4位上載者。那麼Alice將怎樣得到她的第一個文件塊呢?

回想⼀下,在BitTorrent中,⼀個對等點選擇⼀個隨機的對等點,並樂觀地在短時間內解除該對等點的阻塞。因此,愛麗斯最終會被她的⼀個鄰居發送,在此期間,她會從鄰居那⾥得到很多塊。

R23.覆蓋網絡是什麼?它包括路由器嗎?在覆蓋網絡中邊是什麼?

P2P⽂件共享系統中的覆蓋⽹絡由參與⽂件共享系統的節點和節點之間的邏輯鏈接組成。如果A和B之間有⼀個半永久的TCP連接,則從節點A到節點B有⼀個邏輯鏈路(圖論術語中的“邊緣”)。覆蓋⽹絡不包括路由器。

R24.考慮一個具有網狀覆蓋網絡拓撲的DHT(即每個對等方跟蹤系統中的所有對等方)。這樣設計的優點和缺點各是什麼?環形DHT(無捷徑)的優點和缺點各是什麼?

⼀種服務器佈局理念稱爲EntDep,它通過在全世界的Access ISP中部署服務器集羣,深⼊到Internet服務提供商的接⼊⽹中。⽬標是減少延遲,提⾼終端⽤⼾和CDN服務器之間的吞吐量。另⼀種理念是將ISP帶回家,在較⼩數量的站點上構建⼤型CDN服務器集羣,並通常將這些服務器集羣放置在IEP(Internet Exchange Point)中。這帶來了居家設計典型的結果是較低的維護和管理成本,與進⼊深度的設計理念。

R25.列出至少4個不同的應用,它們本質上適合P2P體系結構。(提示:文件分佈和即時訊息是兩個這樣的應用。)

2.7節
R26.2.7節中所描述的UDP服務器僅需要一個套接字,而TCP服務器需要兩個套接字。爲什麼?如果TCP服務器支持a個並行連接,每條連接來自不同的客戶主機,那麼TCP服務器將需要多少個套接字?

對於UDP服務器,沒有歡迎套接字,來自不同客戶端的所有數據都通過這個套接字進入服務器。對於TCP服務器,有一個歡迎套接字,每次客戶端啓動到服務器的連接時,都會創建一個新的套接字。因此,爲了支持n個同時連接,服務器需要n個套接字。

R27.對於2.7節所描述的運行在TCP之上的客戶-服務器應用程序,服務器程序爲什麼必須先於客戶程序運行?對於運行在UDP之上的客戶-服務器應用程序,客戶程序爲什麼可以先於服務器程序運行?

對於TCP應用程序,一旦客戶端被執行,它就會嘗試啓動與服務器的TCP連接。如果TCP服務器沒有運行,則客戶選將無法建立連接。對於UDP應用程序,客戶端在執行時不會立即啓動連接(或嘗試與UDP服務器通信)。

Pl.是非判斷題。
a.假設用戶請求由某些文本和3幅圖像組成的Wb頁面。對於這個頁面,客戶將發送一個請求報文並接收4個響應報文。
b.兩個不同的Web頁面(例如,www.mit.edu/research.html及www.mit.edu/students.html)可以通過同一個持續連接發送。
c.在瀏覽器和初始服務器之間使用非持續連接的話,一個TCP報文段是可能攜帶兩個不同的HTTP服務請求報文的。
d在HTTP響應報文中的Dae;首部指出了該響應中對象最後一次修改的時間。
e.HTTP響應報文決不會具有空的報文體。

FTFFF
解析:
a.建立連接以後,只需要發送和相應一個報文
b.三次握手之後,根地址相同
c.不能
d.Data:服務器從文件系統中檢索到這個對象,插入響應報文,並且發送該響應報文的時間
e.可以有

P2.閱讀有關FTP的RFC959。列出這個RFC所支持的所有客戶命令。

可以在這裏閱讀到這個協議的中文版本
命令:
USER
PASS
ACCT
CWD
CDUP
SMNT
REIN
QUIT
PORT
PASV
TYPE
STRU

P3.考慮一個HTTP客戶要獲取一個給定URL的Web頁面。該HTTP服務器的IP地址開始時並不知道。在這種情況下,除了HTTP外,還需要什麼運輸層和應用層協議?

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

P4.題目信息略

a)文檔請求是ittp://gaia.c5…mass.edu/cs453/index.htamt。host:字段表示服務器的名稱,/cs 45a/index.ntm表示文件名。
b)瀏覽器正在運行HTTP1.1版本,就像第一對之前所指出的那樣。
c)湖覽器正在請求持久連接,如連接所示:保持活動。
d)這是刁鑽的問題。此信息不包含在任何地方的HTTP消息中。因此,僅看HTTP消息的交換就無法區分這一點。您需要從P數據報(承載承載HTTPGET請求的TCP段)中獲得信息來回答這個問跳。
e)Moz111A/5.6。服務器需要瀏覽器類型信息將同一對象的不同版本發送到不同類型的瀏覽器。

P5 題目信息仍然略

a)狀態代碼200和知語ok表示服務器能第找到文檔成功。答覆於2008年3月7日星期二提供格林威治標準時間12.39.45。
b)上一次修改ndex.htm文相是在2005年12月10日星期六18:2746格林尼治時間。
c)返回的文檔中有3874個字節。
d)返回文件的前五個字節是:!醫生服務器同息持久連接,如-onnection:Keep ALive字段所示

P6.獲取HTTP/1.1規範(RFC2616)。回答下面問題:
a.解釋在客戶和服務器之間用於指示關閉持續連接的信令機制。客戶、服務器或兩者都能發送信令通知連接關閉了嗎?
b.HTTP提供了什麼加密服務?
c.一個客戶能夠與一個給定的服務器打開3條或更多條併發連接嗎?
d.如果一個服務器或一個客戶檢測到連接已經空閒一段時間,該服務器或客戶可以關閉兩者之間的傳輸連接。一側開始關閉連接而另一側通過該連接傳輸數據是可能的嗎?請解釋。

a)在RFC2616的第8節中討論了持久連接(這一點的真正目的問題是讓你檢素並閱讀一份RFC(第8.1.2和8.1.21節)rc表示客戶機或服務器可以向另一個表明它是將關閉永久連振。它譜過包含連接令牌來實一關閉“在p請求回覆的連接頭字段中。
b)hp不提供任何加密服務。
c)(來自ICzb10》一使用持久道接的客戶端應該限相而時維護則地定服務器的連接。單用戶客戶端與任何服務器或代理服務器的連接不應超過z個。
d)是。(來自RFC2616r在根務器決定關·空連接的同時,客戶端可能已經開始發送新請求。從服務描的角度來看,連接是在空閒時關閉的,但從客戶端的角度來看,請求正在進行中。“

P7.假定你在瀏覽器中點擊一條超鏈接獲得Web頁面。相關聯的URL的IP地址沒有緩存在本地主機上,因此必須使用DNS lookup以獲得該IP地址。如果主機從DNS得到IP地址之前已經訪問了n個DNS服務器;相繼產生的RTT依次爲RTT,…、RTT.。進一步假定與鏈路相關的Web頁面只包含一個對象,即由少量的HTML文本組成。令RTT。表示本地主機和包含對象的服務器之間的RTT值。假定該對象傳輸時間爲零,則從客戶點擊該超鏈接到它接收到該對象需要多長時間?

RTT(往返延時)
RTT0是兩個過程,也就是建立握手和請求接收的過程,所以,總響應時間爲2*RTT0+RTT1+RTT2+……+RTTn

P8.參照習題7,假定在同一服務器上某HTML文件引用了8個非常小的對象。忽略發送時間,在下列情況下需要多長時間:
a.沒有並行TCP連接的非持續HTTP。
b.配置有5個井行連接的非持續HTTP。
c.持續HTTP。

a.18*RTT0+RTT1+……+RTTn
b.6*RTT0+RTT1+……+RTTn
需要接收一次html才知道引用的是哪八個對象
c.
持續連接,流水線,並行
3*RTT0+RTT1+……+RTTn
持續連接,沒有流水線,沒有並行
10*RTT0+RTT1+……+RTTn

P9.考慮圖2-12,其中有一個機構的網絡和因特網相連。假定對象的平均長度爲850000比特,從這個機構網的瀏覽器到初始服務器的平均請求率是每秒16個請求。還假定從接入鏈路的因特網一側的路由器轉發一個HTTP請求開始,到接收到其響應的平均時間是3秒(參見2.2.5節)。將總的平均響應時間建模爲平均接入時延(即從因特網路由器到機構路由器的時延)和平均因特網時延之和。對於平均接人時延,使用△(1-A8),式中A是跨越接入鏈路發送一個對象的平均時間,B是對象對該接入鏈路的平均到達率。
a.求出總的平均響應時間。
b.現在假定在這個機構LAN中安裝了一個緩存器。假定命中率爲0.4,求出總的響應時間。

在這裏插入圖片描述
15Mbps信息隱藏在圖片裏…
a)3.6s
b)平均響應時間從3.6s縮短到1.24s

P10.考慮一條10米短鏈路,某發送方經過它能夠以150bps速率雙向傳輸。假定包含數據的分組是100000比特長,僅包含控制(如ACK或握手)的分組是200比特長。假定N個並行連接每個都獲得1/N的鏈路帶寬。現在考慮HTTP協議,並且假定每個下載對象是100Kb長,這些初始下載對象包含10個來自相同發送方的引用對象。在這種情況下,經非持續HTTP的並行實例的並行下載有意義嗎?現在考慮持續HTTP。你期待這比非持續的情況有很大增益嗎?評價並解釋你的答案。

比較有難度,單獨記錄了出來

Pll.考慮在前一個習題中引出的情況。現在假定該鏈路由Bob和4個其他用戶所共享。Bob使用非持續HTTP的並行實例,而其他4個用戶使用無並行下載的非持續HTTP。
a.Bob的並行連接能夠幫助他更快地得到Web頁面嗎?
b.如果所有5個用戶打開5個非持續HTTP井行實例,那麼Bob的並行連接仍將是有益的嗎?爲什麼?

a)是的,因爲Bob有更多的連接,他可以獲得更大的帶寬份額
b)是的,這很內卷。

Pl2.寫一一個簡單的TCP程序,使服務器接收來自客戶的行並將其打印在服務器的標準輸出上。(可以通過修改本書中的TCPServer.py程序實現上述任務。)編譯並執行你的程序。在另一臺有瀏覽器的機器上,設置瀏覽器的代理服務器爲你正在運行服務器程序的機器,同時適當地配置端口號。這時你的瀏覽器向服務器發送GET請求報文,你的服務器應當在其標準輸出上顯示該報文。使用這個平臺來確定你的瀏覽器是否對本地緩存的對象產生了條件GET報文。
py2

from socket import *
serverPort=12000
serverSocket=socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('',serverPort))
serverSocket.listen(1)
connectionSocket, addr = serverSocket.accept()
while(True):
sentence = connectionSocket.recv(1024)
 print 'From Server:', sentence, '\n'
serverSocket.close() 

P13.SMTP中的MAILFROM與該郵件報文自身中的From:之間有什麼不同?

來自:inSMTP的郵件是從SMTP客戶端發送的標識發件人的郵件將郵件消息發送到SMTP服務器。
發件人:在郵件消息本身不是SMTP郵件,而不是郵件正文中的一行。

Pl4.SMTP是怎樣標識一個報文體結束的?HTTP是怎樣做的呢?HTTP能夠使用與SMTP標識一個報文體結束相同的方法嗎?試解釋。

SMTP使用僅包含句點的行來標記郵件正文的結束。hp使用“內容長度標題字段”來表示消息正文的長度。
不,HTTP不能使用SMTP使用的方法,因爲HTTP消息可以是二進制數據,而在SMTP中,消息主體必須是7位的ASC格式。

P15題幹略
MTA代表郵件傳輸代理。主機將消息發送給MTA。然後,該消息遵循一系列MTA以到達接收者的郵件閱讀器。我們看到這個垃圾郵件遞循一個MTA鏈。誠實的MTA應該報告它收到滴息的位置。請注意,在此消息中,“asusus-4b96([58.88.21.177])“不報告它收到電子郵件的值置。由於我們假定只有發端人是不誠實的,所以“asusus-4b96([58.88.21.177])“必須是發起人。

P16題幹略

uidl縮寫唯一ID列表”。當POP3客戶端發出uil命令時,服務器用唯一的消息ID來響應於在該服務器中存在的所有消息,用戶的郵箱。此命令對“下載並保持“是有用的。通過維護文件該列表列出了在較早的會話期間檢索到的消息,客戶端可以使用Urel用於確定服務器上的哪些消息已被看到的命令。

P17題略,POP不學習

Pl8.如題:
a.什麼是whois 數據庫?
b.使用因特網上的各種whais數據庫,獲得兩臺DNS服務器的名字。指出你使用的是哪個whois數據庫。
c.你本地機器上使用nslookup向3臺DNS服務器發送DNS查詢:你的本地DNS服務器和兩臺你在(b)中發現的DNS服務器。嘗試對類型A、NS和MX報告進行查詢。總結你的發現。
d.使用nslookup找出一臺具有多個P地址的Web服務器。你所在的機構(學校或公司)的Web服務器具有多個IP地址嗎?
c.使用ARIN whois數據庫,確定你所在大學使用的IP地址範圍。
d.描述一個攻擊者在發動攻擊前,能夠怎樣利用whois數據庫和slookup工其來執行對一個機構的偵察。
討論爲什麼whois數據庫應當爲公衆所用。

a)對於給定的域名輸入(如ccn.com)、IP地址或網絡管理員名稱,whois數據庫可用於定位相應的註冊服務器、whois服務器、DNS服務器等。
b)NS4.YAH00.cOM,網址:ww.Registry er.com;NS1.MSFT.NET,網址:ww.Registry er.com。
d)攻擊者可以使⽤whois數據庫和nslookup⼯具來確定⽬標機構的IP地址範圍、DNS服務器地址等。
通過分析攻擊數據包的源地址,受害者可以使⽤whois獲取攻擊所來⾃的域的信息,並可能通知源域的管理員。

Pl9.在本習題中,我們使用在Unix和Linux主機上可用的dig工具來探索DNS服務器的等級結構。圖2-21講過,在DNS等級結構中較高的DNS服務器授權對該等級結構中較低DNS服務器的DNS請求,這是通過向DNS客戶發送回那臺較低層次的DNS服務器的名字來實現的。先閱讀dg的幫助頁,再回答下列問題。
a.從一臺根DNS服務器(從根服務器[a-m].root-server.net之一)開始,通過使用dg得到你所在系的Web服務器的IP地址,發起一系列查詢。顯示回答你的查詢的授權鏈中的DNS服務器的名字列表。
b.對幾個流行Web站點如oogle.com、yahoo.com或amaxon.com,重複上一小題。

在這裏插入圖片描述

P20.假定你能夠訪問所在系的本地DNS服務器中的緩存。你能夠提出一種方法來粗略地確定在你所在系的用戶中最爲流行的Web服務器(你所在系以外)嗎?解釋原因。

我們可以定期拍攝本地DNS服務器中DNS緩存的快照。該組織在DNS緩存中出現最頻緊的Web服務器是最流行的服務器。這是因爲如果更多的用戶對Web服務器感興趣,那麼DNS請求就會對此感興趣服務器更頻繁地由用戶發送。因此,該Web服務器將出現在DNS中級存更頻繁。

P21.假設你所在系具有一臺用於系裏所有計算機的本地DNS服務器。你是普通用戶(即你不是網絡/系統管理員)。你能夠確定是否在幾秒鐘前從你係裏的一臺計算機可能訪問過一臺外部Web站點嗎?
解釋原因。

是的,我們可以在本地DNS服務器中使用DIG查詢該網站。例如,digCNN.com將返回查找C/N.com的查詢時間。如果CNN.com幾秒鐘前剛剛被訪問,那麼CNN.con的條目將緩存在本地DNS緩存中,因此查詢時間爲0毫秒。否則,查詢時間很長。

P22.考慮向N個對等方分發F=15Cb的一個文件。該服務器具有,=30Mbps的上載速率,每個對等方具有d=2Mbps的下載速率和上載速率u。對於N=10、100和1000並且a=300kbps、700kbps和2Mbps,對於N和a的每種組合繪製出確定最小分發時間的圖表。需要分別針對客戶-服務器分發和P2P分發兩種情況製作。

使用上面公式即可。
在這裏插入圖片描述

P23.考慮使用一種客戶一服務器體系結構向N個對等方分發一個F比特的文件。假定一種流體模型,即某服務器能夠同時向多個對等方傳輸,只要組合速率不超過4,,則以不同的速率向每個對等方傳輸。
a假定4/Nsd….定義一個具有NF/u,分發時間的分發方案。
b.假定u,./N=d….定義一個具有F/d…分發時間的分發方案。
c.得出最小分發時間通常是由maxiNF/u,,F/d.所決定的結論。

P25.考慮在一個有N個活躍對等方的覆蓋網絡中,每對對等方有一條活躍的TCP連接。此外,假定該TCP連接通過總共M臺路由器。在對應的覆蓋網絡中,有多少結點和邊?

在覆蓋網絡中存在N個節點。n(n-1)/2邊。

P26.假定Bob加入BifTorent,但他不希想向任何其他對等方上載任何數據(因此稱爲搭便車)。
a.Bob聲稱他能夠收到由該社區共享的某文件的完整副本。Bob所言是可能的嗎?爲什麼?
b.Bob進一步聲稱他還能夠更爲有效地進行他的“搭便車”,方法是利用所在系的計算機實驗室中的多臺計算機(具有不同的IP地址)。他怎樣才能做到這些呢?

是的。只要有足夠的對等人留在蜂羣中,他的第一個索賠就可能是可能的。足夠長的時間。Bob可以總是通過樂觀的非阻塞來接收數據對等端。
他的第二次索賠也是真實的。他可以在每個主機上運行客戶端,讓每個客戶端”免費乘坐並將收集的chunks從不同的主機合併爲單個文件。他甚至可以編寫一個小的調度程序,使不同的主機請求不同的chunks文件。這實際上是P2P網絡中的一種Sybl攻擊。

P27.考慮一個具有N個視頻版本(具有N個不同的速率和質量)和N個音頻版本(具有N個不同的速率和質量)的DASH系統。假設我們想允許播放者在任何時間選擇N個視頻版本和N個音頻版本之一:
a.如果我們生成音頻與視頻混合的文件,因此服務器在任何時間僅發送一個媒體流,該服務器將需要存儲多少個文件(每個文件有一個不同的URL)?
b如果該服務器分別發送音頻流和視頻流並且與客戶同步這些流,該服務器將需要存儲多少個文件?

a.n*n
b.2N

P28.在一臺主機上安裝編譯TCPClient和UDPClient Python程序,在另一臺主機上安裝編譯TCPServer和UDPServer程序。
a.假設你在運行TCPServer之前運行TCPClient,將發生什麼現象?爲什麼?
b.假設你在運行UDPServer 之前運行UDPClient,將發生什麼現象?爲什麼?
c.如果你對客戶端和服務器端使用了不同的端口,將發生什麼現象?

a.什麼也沒發生…
b.正常運行,因爲沒有發送建立連接的請求
c.如果使用不同的端口號,則客戶端將嘗試建立TCP連接錯誤的進程或不存在的進程。會出現錯誤。

P29.假定在UDPClient.py中在創建套接字後增加了下面一行:
clientSocket,bind((””,5432))有必要修改UDPServer.py嗎?UDPClient和UDPServer中的套接字端口號是多少?在變化之前它們是多少?

實際上,這樣做(服務端不進行硬編碼)的好處就是無論客戶端(程序員或者操作系統)分配了哪個端口號,都能夠進行連接。

P30.你能夠配置瀏覽器以打開對某Web站點的多個並行連接嗎?有大量的並行TCP連接的優點和缺點是什麼?

是的,您可以配置許多瀏覽器來打開到網站的多個同時連接。優點是您可以更快地下載該文件。缺點是您可能佔用了帶寬,從而大大減緩了共享相同物理鏈接的其他用戶的下載速度。

P31.我們已經看到因特網TCP套接字將數據處理爲字節流,而UDP套接字識別報文邊界。面向字節APl與顯式識別和維護應用程序定義的報文邊界的API相比,試給出一個優點和一個缺點。

對於遠程登錄(telnet和ssh)之類的應用程序,面向字節流的協議是非常自然的,因爲應用程序中沒有消息邊界的概念。當用戶鍵入一個字符時,我們只需將該字符放到TCP連接中即可。在其他應用程序中,我們可能會發送一系列在它們之間具有固有邊界的消息。例如,當一個SMTP郵件服務器向另一個SMTP郵件服務器連續發送多個電子郵件時。由於TCP沒有指示邊界的機制,所以應用程序必須自己添加指示,以便應用程序的接收方能夠區分一條消息和另一條消息。如果將每條消息放入一個不同的udp段中,則接收端將能夠在沒有任何指示的情況下,區分各種訊息、申請。

也就是說不同的協議用於不同的情況。但是py3的tcp已經不能夠使用字符流傳輸了…

P32.什麼是Apache Web服務器?它值多少錢?它當前有多少功能?爲回答這個問題,你也許要看一下維基百科。

要創建Web服務器,我們需要在主機上送行Web服務器軟件。許多供應商出售Web服務器軟件。然而,當今最流行的Web服務器軟件是Apache,它是開放的源並且是自由的。多年來,它一直受到開源社區的高度優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章