看完把學霸按在地上摩擦,計算機網絡知識點總結(4)——題目

文章已經全部寫好了,但是要參加活動,然後再搞上鍊接之類的導致有時間差,等一下就把鏈接補回來。

阿偉在學完了《計算機網絡:自頂向下的辦法》以及《TCP/IP詳解:卷一協議(原書第二版)》感覺學的還不是特別好,感覺做題的時候,我簡直人都傻了,寫個文章、用表格的形式、做題目的形式對計算機網絡比較常見的一些知識點進行總結希望在自己成長的同時,可以幫助到有需要的人。

該文章是看了超級多的知乎專欄、CSDN文章等做的總結。題目來源以及題目後面所附代的參考文章的具體網址,會放在另外一個文章裏面,以此來節省篇幅。

以上兩本書私聊可以給電子書。

總體而言,將計算網絡的知識點總結分爲五個文章,總共18個小點,建議按着點來學習:

  1. 計算機網絡的雜項,比如說什麼網關之類的
    ,網址:https://blog.csdn.net/qq_45877524/article/details/105904241
  2. TCP的工具人協議
    ,網址:https://blog.csdn.net/qq_45877524/article/details/105904318
  3. TCP部分》,網址:https://blog.csdn.net/qq_45877524/article/details/105904354
  4. 題目》,網址:https://blog.csdn.net/qq_45877524/article/details/105904417
  5. 整個文章中用到的參考資料,網址:https://blog.csdn.net/qq_45877524/article/details/105886501)》

最後有一個打印版本,方便複習:《組合版本
https://blog.csdn.net/qq_45877524/article/details/105886463


計算機網絡知識點總結


17 比較nice的題目收集,內附答案,侵權立刪

  1. 知乎用戶路人甲的文章《常見面試題整理–計算機網絡篇(每位開發者必備)》,網址:https://zhuanlan.zhihu.com/p/24001696
  2. CSDN博主[Object object]的《TCP 和 UDP 的區別》,網址:https://blog.csdn.net/zhang6223284/article/details/81414149?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2
  3. 至CSDN博主 青柚_的《TCP的三次握手與四次揮手理解及面試題(很全面)》,網址:https://blog.csdn.net/qq_38950316/article/details/81087809
  4. 知乎用戶低端叫獸在的回答《關於三次握手和四次揮手,面試官想聽到怎樣的回答?》,網址:https://www.zhihu.com/question/271701044
  5. CSDN博主逃離地球的小小呆的《子網劃分詳解與子網劃分實例精析》,網址:https://blog.csdn.net/gui951753/article/details/79412524
  6. CSDN博主sHuXnHs的 《TCP擁塞控制機制(附面試題)》,網址:https://blog.csdn.net/shuxnhs/article/details/80644531
  7. 知乎用戶 何柄融 的《通過計算機網絡的一些題目加深理解》,網址:https://zhuanlan.zhihu.com/p/38223259

後面沒有名字代表和前面題目一樣

知識點可能比較亂,將就一下


17.1 請簡述TCP\UDP的區別(知乎:路人甲)

  1. TCP面向連接,UDP面向非連接即發送數據前不需要建立鏈接
  2. TCP提供可靠的服務(數據傳輸),UDP無法保證
  3. TCP面向字節流,UDP面向報文
  4. TCP數據傳輸慢,UDP數據傳輸快

17.2 請簡單說一下你瞭解的端口及對應的服務?

在這裏插入圖片描述


17.3 說一說TCP的三次握手

在這裏插入圖片描述


17.4 說一說TCP的四次揮手

數據傳輸完畢後,雙方都可釋放連接。最開始的時候,客戶端和服務器都是處於ESTABLISHED狀態,然後客戶端主動關閉,服務器被動關閉。

  1. 客戶端進程發出連接釋放報文,並且停止發送數據。釋放數據報文首部,FIN=1,其序列號爲seq=u(等於前面已經傳送過來的數據的最後一個字節的序號加1),此時,客戶端進入FIN-WAIT-1(終止等待1)狀態。 TCP規定,FIN報文段即使不攜帶數據,也要消耗一個序號。
  2. 服務器收到連接釋放報文,發出確認報文,ACK=1,ack=u+1,並且帶上自己的序列號seq=v,此時,服務端就進入了CLOSE-WAIT(關閉等待)狀態。TCP服務器通知高層的應用進程,客戶端向服務器的方向就釋放了,這時候處於半關閉狀態,即客戶端已經沒有數據要發送了,但是服務器若發送數據,客戶端依然要接受。這個狀態還要持續一段時間,也就是整個CLOSE-WAIT狀態持續的時間。
  3. 客戶端收到服務器的確認請求後,此時,客戶端就進入FIN-WAIT-2(終止等待2)狀態,等待服務器發送連接釋放報文(在這之前還需要接受服務器發送的最後的數據)。
  4. 服務器將最後的數據發送完畢後,就向客戶端發送連接釋放報文,FIN=1,ack=u+1,由於在半關閉狀態,服務器很可能又發送了一些數據,假定此時的序列號爲seq=w,此時,服務器就進入了LAST-ACK(最後確認)狀態,等待客戶端的確認。
  5. 客戶端收到服務器的連接釋放報文後,必須發出確認,ACK=1,ack=w+1,而自己的序列號是seq=u+1,此時,客戶端就進入了TIME-WAIT(時間等待)狀態。注意此時TCP連接還沒有釋放,必須經過2∗*∗MSL(最長報文段壽命)的時間後,當客戶端撤銷相應的TCB後,才進入CLOSED狀態。
  6. 服務器只要收到了客戶端發出的確認,立即進入CLOSED狀態。同樣,撤銷TCB後,就結束了這次的TCP連接。可以看到,服務器結束TCP連接的時間要比客戶端早一些。

17.5 有哪些私有(保留)地址?

A類:10.0.0.0 - 10.255.255.255
B類:172.16.0.0 - 172.31.255.255
C類:192.168.0.0 - 192.168.255.255


17.6 IP地址分爲哪幾類?簡單說一下各個分類

地址範圍 高序位 用途 百分比
A 0.0.0.0 - 127.255.255.255 0 單播/特殊 1/2
B 128.0.0.0 - 191.255.255.255 10 單播/特殊 1/4
C 192.0.0.0 - 223.255.255.255 110 單播/特殊 1/4
D 224.0.0.0 - 239.255.255.255 1110 組播 1/16
E 240.0.0.0 - 255.255.255.255 1111 保留 1/16

17.7 在瀏覽器中輸入網址之後執行會發生什麼?

  1. 查找域名對應的IP地址。這一步會依次查找瀏覽器緩存,系統緩存,路由器緩存,ISPNDS緩存,根域名服務器
  2. 瀏覽器向IP對應的web服務器發送一個HTTP請求
  3. 服務器響應請求,發回網頁內容
  4. 瀏覽器解析網頁內容

17.8 簡單解釋一些ARP協議的工作過程

在這裏插入圖片描述


17.9 說一說OSI七層模型

在這裏插入圖片描述


17.10 說一說TCP/IP四層模型

在這裏插入圖片描述
前面有一張圖非常詳細。


17.11 HTTP 協議包括哪些請求?

  1. GET:對服務器資源的簡單請求
  2. POST:用於發送包含用戶提交數據的請求
  3. HEAD:類似於GET請求,不過返回的響應中沒有具體內容,用於獲取報頭
  4. PUT:傳說中請求文檔的一個版本
  5. DELETE:發出一個刪除指定文檔的請求
  6. TRACE:發送一個請求副本,以跟蹤其處理進程
  7. OPTIONS:返回所有可用的方法,檢查服務器支持哪些方法
  8. CONNECT:用於ssl隧道的基於代理的請求

17.12 簡述HTTP中GET和POST的區別

從原理性看:

  1. 根據HTTP規範,GET用於信息獲取,而且應該是安全和冪等的
  2. 根據HTTP規範,POST請求表示可能修改服務器上資源的請求

從表面上看:

  1. GET請求的數據會附在URL後面,POST的數據放在HTTP包體
  2. POST安全性比GET安全性高

17.13 TCP/UDP裏面什麼是面向連接,什麼是面向無連接?([Object object])

在互通之前,面向連接的協議會先建立連接,如 TCP 有三次握手,而 UDP 不會


17.14 TCP 爲什麼是可靠連接

  1. 通過 TCP 連接傳輸的數據無差錯,不丟失,不重複,且按順序到達。
  2. TCP 報文頭裏面的序號能使 TCP 的數據按序到達
  3. 報文頭裏面的確認序號能保證不丟包,累計確認及超時重傳機制
  4. TCP 擁有流量控制及擁塞控制的機制

17.15 (TCP三次握手)爲什麼客戶端最後還要等待2MSL?(CSDN博主 小書go)

MSL(Maximum Segment Lifetime),TCP允許不同的實現可以設置不同的MSL值。

第一,保證客戶端發送的最後一個ACK報文能夠到達服務器,因爲這個ACK報文可能丟失,站在服務器的角度看來,我已經發送了FIN+ACK報文請求斷開了,客戶端還沒有給我回應,應該是我發送的請求斷開報文它沒有收到,於是服務器又會重新發送一次,而客戶端就能在這個2MSL時間段內收到這個重傳的報文,接着給出迴應報文,並且會重啓2MSL計時器。

第二,防止類似與“三次握手”中提到了的“已經失效的連接請求報文段”出現在本連接中。客戶端發送完最後一個確認報文後,在這個2MSL時間中,就可以使本連接持續的時間內所產生的所有報文段都從網絡中消失。這樣新的連接中不會出現舊連接的請求報文。

17.16(TCP三次握手) 如果已經建立了連接,但是客戶端突然出現故障了怎麼辦?

TCP還設有一個保活計時器,顯然,客戶端如果出現故障,服務器不能一直等下去,白白浪費資源。服務器每收到一次客戶端的請求後都會重新復位這個計時器,時間通常是設置爲2小時,若兩小時還沒有收到客戶端的任何數據,服務器就會發送一個探測報文段,以後每隔75秒發送一次。若一連發送10個探測報文仍然沒反應,服務器就認爲客戶端出了故障,接着就關閉連接。


17.17(TCP三次握手) 爲什麼不能用兩次握手進行連接?(CSDN博主 青柚_)

3次握手完成兩個重要的功能,既要雙方做好發送數據的準備工作(雙方都知道彼此已準備好),也要允許雙方就初始序列號進行協商,這個序列號在握手過程中被髮送和確認。

現在把三次握手改成僅需要兩次握手,死鎖是可能發生的。作爲例子,考慮計算機S和C之間的通信,假定C給S發送一個連接請求分組,S收到了這個分組,併發 送了確認應答分組。按照兩次握手的協定,S認爲連接已經成功地建立了,可以開始發送數據分組。可是,C在S的應答分組在傳輸中被丟失的情況下,將不知道S 是否已準備好,不知道S建立什麼樣的序列號,C甚至懷疑S是否收到自己的連接請求分組。在這種情況下,C認爲連接還未建立成功,將忽略S發來的任何數據分 組,只等待連接確認應答分組。而S在發出的分組超時後,重複發送同樣的分組。這樣就形成了死鎖。


17.18 (TCP三次握手) 如果已經建立了連接,但是客戶端突然出現故障了怎麼辦?

TCP還設有一個保活計時器,顯然,客戶端如果出現故障,服務器不能一直等下去,白白浪費資源。服務器每收到一次客戶端的請求後都會重新復位這個計時器,時間通常是設置爲2小時,若兩小時還沒有收到客戶端的任何數據,服務器就會發送一個探測報文段,以後每隔75秒鐘發送一次。若一連發送10個探測報文仍然沒反應,服務器就認爲客戶端出了故障,接着就關閉連接。


17.19 (TCP三次握手)爲什麼關閉連接要設計成四次?(低端叫獸)

因爲關閉連接時,server端收到客戶端的fin報文,並不會立即關閉socket,只能先回復一個ack告訴client我已經收到你的關閉請求了,同時可能server還有數據沒傳輸完,只有等server端數據傳輸完成了 才能發送fin報文,所以這個地方要分兩次發送,這樣就有了四次揮手.


17.20 (TCP三次握手) 服務端運行一段時間後,套接字出現了大量的Close_Wait狀態,最有可能是什麼原因導致的?

close-wait狀態是因爲client已經發出釋放連接信號了 已經沒有數據傳輸過來,但是server端還有數據未發送完,這個時候就有close-wait狀態了!


17.21 (TCP三次握手) 爲什麼基於TCP的程序往往都有個應用層的心跳檢測機制?

是爲了預防建立好的連接突然客戶端故障了,服務器不能一直等待下去,需要一個計時器和探測包來檢測.


17.22 (TCP三次握手) 服務端的Time_Wait狀態再哪個階段出現?持續多久?爲什麼要設計這麼一個狀態?

timewait階段是最後階段發送確認收到server端的fin報文釋放連接請求後回覆給server端ack報文,之後client端就進入time_wait階段.

持續多久即是問爲什麼不馬上關閉直接進入closed階段,主要是考慮到網絡的不可靠,假如client最後階段發送給server端端ack報文由於網絡原因丟失了server沒收到呢,server端會重新發送fin報文過來,這個時候client端就要等.

等多久?等一個計時器時間2MSL,如果該時間段內再次收到server的fin報文 那client就必須回覆. 如果沒有收到,client就認爲server端已經接收到了最後的ack報文.


17.23 (C類子網劃分子網劃分的計算)(逃離地球的小小呆)題目一

255.255.255.128 (/25)
128的二進制表示爲10000000,只有1位用於定義子網,餘下7位用於定義主機。這裏將對C類網絡192.168.10.0進行子網劃分。
網絡地址=192.168.10.0
子網掩碼=255.255.255.128
回答五大問題:

  1. 多少個子網?
    在128( 10000000 )中,取值爲1的位數爲1,借用了一位主機位,因此答案爲2^1=2。

  2. 每個子網多少臺主機?
    有7個主機位取值爲o( 10000000),還剩下7位主機位,因此答案是2^7-2= 126臺主機。

  3. 有哪些合法的子網?
    256 -128 = 128。也就是子網的增量是128.因此子網爲0和128

  4. 每個子網的廣播地址是什麼?
    在下一個子網之前的數字中,所有主機位的取值都爲1,是當前子網的廣播地址。對於子網0,下一個子網爲128,因此其廣播地址爲127

  5. 每個子網包含哪些合法的主機地址?
    合法的主機地址爲子網地址和廣播地址之間的數字。要確定主機地址,最簡單的方法是寫出子網地址和廣播地址,這樣合法的主機地址就顯而易見了。
    在這裏插入圖片描述

小小呆的這幾個問題比較詳細的講解都可以看它的這個文章:
CSDN博主逃離地球的小小呆的《子網劃分詳解與子網劃分實例精析》,網址:https://blog.csdn.net/gui951753/article/details/79412524


17.24 子網劃分的題目 2

255.255.255.192 (/26)
在第二個示例中,我們將使用子網掩碼255.255.255.192對網絡192.168.10.0進行子網劃分。
網絡地址=192.168.10.0
子網掩碼=255.255.255.192
下面來回答五大問題

  1. 多少個子網?
    在192(11000000)中,取值爲1的位數爲2,因此答案爲2^2=4個子網。
  2. 每個子網多少臺主機?有6個主機位的取值爲o(11000000),因此答案是2^6-2=62臺主機。
  3. 有哪些合法的子網?
    256 -192 = 64。所以子網的步長[增量]爲64,因此子網爲0、64、128和192
  4. 每個子網的廣播地址是什麼?
    在下一個子網之前的數字中,所有主機位的取值都爲1,是當前子網的廣播地址。對於子網0,下一個子網爲64,因此其廣播地址爲63。以此類推。
  5. 合法的主機地址有哪些?
    合法的主機地址爲子網地址和廣播地址之間的數字。要確定主機地址,最簡單的方法是寫出子網地址和廣播地址,這樣合法的主機地址就顯而易見了。
    在這裏插入圖片描述

17.25 子網劃分的題目 3

從這個案例開始,我不再一一回答這五大問題,大部分的思考是重複的,我只給出問題和圖表類型的答案。
255.255.255.224 (/27)
這次我們將使用子網掩碼255.255.255.224對網絡192.168.10.0進行子網劃分。
網絡地址=192.168.10.0
子網掩碼=255.255.255.224
在這裏插入圖片描述


17.26 子網劃分的題目 4

255.255.255.240 (/28)
再來看一個示例:
網絡地址=192.168.10.0
子網掩碼=255.255.255.240
在這裏插入圖片描述


17.27 子網劃分的題目 5

255.255.255.248 (/29)
繼續練習:
網絡地址=192.168.10.0
子網掩碼=255.255.255.248
在這裏插入圖片描述


17.28 已知IP地址和子網掩碼求子網劃分 1

已知ip地址=192.168.10.33 ,子網掩碼=255.255.255.224,求該網絡的子網劃分。

  1. 求出子網增量:
    由於子網掩碼是224,所以子網步長爲256-224=32
  2. 求有哪些合法子網:
    由上文知道,子網的步長爲32.因此子網爲0、32、64等等
  3. 求出該Ip地址對應的子網號。
    因爲主機地址33位於子網32和64之間,因此屬於子網192.168.10.32
  4. 求該子網對應的廣播地址:
    下一個子網爲64,因此子網32的廣播地址爲63(廣播地址總是下一個子網之前的數字)。
  5. 求合法的主機地址範圍:
    33~62(子網和廣播地址之間的數字)。

17.29 已知IP地址和子網掩碼求子網劃分 2

ip地址=192.168.10.174
子網掩碼=255.255.255.240.合法的主機地址範圍是多少呢?

解答:子網掩碼爲240,因此將256減去240,結果爲16,這是子網增量。要確定所屬的子網,只需從零開始不斷增加16,並在超過主機地址174後停止:0、16、32、48、64、80、96、112、128、144、160、176等。主機地址174位於160和176之間,因此所屬的子網爲160。廣播地址爲175,合法的主機地址範圍爲161~174。

17.30 已知IP地址和子網掩碼求子網劃分 3

ip地址=192.168.10.17
子網掩碼=255.255.255.252 該IP地址屬於哪個子網?該子網的廣播地址是什麼?

256 -252= 4,因此子網爲0、4、8、12、16、20等(除非專門指出,否則總是從0開始)。主機地址17位於子網16和20之間,因此屬於子網192.168.10.16,而該子網的廣播地址爲19,合法的主機地址範圍爲17-18。


17.31B類地址 已知網絡地址和子網掩碼求子網劃分 1

在這裏插入圖片描述
在B類地址中,有16位可用於主機地址。這意昧着最多可將其中的14位用於子網劃分,因爲至少需要保留2位用於主機編址。使用/16意味着不對B類網絡進行子網劃分,但它是一個可使用的子網掩碼。

255.255.128.0 (/17)
網絡地址=172.16.0.0
子網掩碼=255.255.128.0

  1. 多少個子網?
    2^1 =2 (與C類網絡相同)借用了一位主機位。
  2. 每個子網多少臺主機?
    2^15 -2 = 32766 (主機位一共15位,第三個字節7位,第四個字節8位)。
  3. 有哪些合法的子網?
    256 -128 = 128,因此子網爲0和128。鑑於子網劃分是在第三個字節中進行的,因此子網號實際上爲0.0和128.0
  4. 每個子網的廣播地址是什麼?(跟C類相同,廣播地址總是下一個子網前面的數)
    合法的主機地址是什麼?(子網號與廣播地址之間的地址就是合法的主機地址)

17.32 已知網絡地址和子網掩碼求子網劃分 2

255.255.255.128 (/25)
這是一個非常難但是卻十分適合生產環境的子網劃分組合
網絡地址=172.16.0.0
子網掩碼=255.255.255.128

  1. 多少個子網?
    2^9=512。一共借用了9個主機位
  2. 每個子網多少臺主機?
    2^7-2 = 126。 還有16-9=7位主機位
  3. 有哪些合法的子網?
    這是比較棘手的部分。這個地方的子網增量應該是 256-255=1,因此第三個字節的可能取值爲0、1 、2、3…255;但別忘了,第四個字節還有一個子網位。還記得前面如何在C類網絡中處理只有一個子網位的情況嗎?這裏的處理方式相同。也就是說第三個字節的每個取值都有0和128這兩種情況。例如,如果第三個字節的取值爲3,則對應的兩個子網爲3.0和3.128。因此總共有512個子網。
  4. 每個子網的廣播地址是什麼?(下一個子網地址的前一位)
    合法的主機地址是什麼?(介於子網地址和該子網的廣播地址之間的就是主機地址)
    下面用圖表列出這個例子的子網劃分結果:
    在這裏插入圖片描述

17.33 已知ip地址和子網掩碼求子網劃分

當使用cidr表示子網劃分,網絡位的位數>24時,比如/25,/27.我們只需要考慮第四個字節。<=24時,我們只需要考慮第三個字節,因爲第四個字節的主機位並沒有被借用,並沒有參與到子網劃分。

問題:172.16.10.33/27屬於哪個子網?該子網的廣播地址是多少?
答案:這裏只需考慮第四個字節。256-224=32,故第四個字節的變化爲0、32、64…。33位於32和64之間,但子網號還有一部分位於第三個字節,因此
答案是該地址位於子網10.32中。由於下一個子網爲10.64,該子網的廣播地址爲172.16.10.63


17.34 A類子網劃分實例 已知網絡地址和子網掩碼求子網劃分 1

A類網絡的子網劃分與B類和C類網絡沒有什麼不同,但需要處理的是24位,而B類和C類網絡中需處理的分別是16位和8位。
可用於A類的所有子網掩碼:
在這裏插入圖片描述

255.255.240.0(/20)
網絡地址=10.0.0.0
子網掩碼=255.255.240.0(/20)時,12位用於子網劃分,餘下12位用於主機編址。

  1. 多少個子網?
    2^12=4096。

  2. 每個子網的主機數?
    2^12-2=4094

  3. 有哪些合法的子網?
    需要考慮哪些字節?借用的主機號來自於第二和第三個字節,因此要考慮第二個和第三個字節,在第二個字節中,子網號的間隔爲1;在第三個字節中,子網號爲0、16、32等,因爲256-240=160

  4. 每個子網的廣播地址是什麼?

  5. 合法的主機地址是什麼?
    具體劃分如表中所示:
    在這裏插入圖片描述

17.35 已知ip地址和子網掩碼求子網劃分

ip地址=10.1.3.65/23
求該ip地址對應的子網以及該子網合法的主機地址和廣播地址:
**回答:**首先,如果不知道/23對應的子網掩碼,你就回答不了這個問題。它對應的子網掩碼爲255.255.254.0。這裏需要注意的字節爲第三個。256-254=2,因此第三個字節的子網號爲0、2、4、6等。在這個問題中,主機位於子網2.0中,而下一個子網爲4.0,因此該子網的廣播地址爲3.255。10.1.2.1~10.1.3.254中的任何地址都是該子網中合法的主機地址。

17.36 (sHuXnHs)TCP的擁塞控制機制是什麼?請簡單說說。

我們知道TCP通過一個定時器(timer)採樣了RTT並計算RTO,但是,如果網絡上的延時突然增加,那麼,TCP對這個事做出的應對只有重傳數據,然而重傳會導致網絡的負擔更重,於是會導致更大的延遲以及更多的丟包,這就導致了惡性循環,最終形成“網絡風暴” —— TCP的擁塞控制機制就是用於應對這種情況。
首先需要了解一個概念,爲了在發送端調節所要發送的數據量,定義了一個“擁塞窗口”(Congestion Window),在發送數據時,將擁塞窗口的大小與接收端ack的窗口大小做比較,取較小者作爲發送數據量的上限。
擁塞控制主要是四個算法:
1.慢啓動:意思是剛剛加入網絡的連接,一點一點地提速,不要一上來就把路佔滿。
連接建好的開始先初始化cwnd = 1,表明可以傳一個MSS大小的數據。
每當收到一個ACK,cwnd++; 呈線性上升
每當過了一個RTT,cwnd = cwnd*2; 呈指數讓升
閾值ssthresh(slow start threshold),是一個上限,當cwnd >= ssthresh時,就會進入“擁塞避免算法”
2.擁塞避免:當擁塞窗口 cwnd 達到一個閾值時,窗口大小不再呈指數上升,而是以線性上升,避免增長過快導致網絡擁塞。
每當收到一個ACK,cwnd = cwnd + 1/cwnd
每當過了一個RTT,cwnd = cwnd + 1
擁塞發生:當發生丟包進行數據包重傳時,表示網絡已經擁塞。分兩種情況進行處理:
等到RTO超時,重傳數據包
sshthresh = cwnd /2
cwnd 重置爲 1
3.進入慢啓動過程
在收到3個duplicate ACK時就開啓重傳,而不用等到RTO超時
sshthresh = cwnd = cwnd /2
進入快速恢復算法——Fast Recovery
4.快速恢復:至少收到了3個Duplicated Acks,說明網絡也不那麼糟糕,可以快速恢復。
cwnd = sshthresh + 3 * MSS (3的意思是確認有3個數據包被收到了)
重傳Duplicated ACKs指定的數據包
如果再收到 duplicated Acks,那麼cwnd = cwnd +1
如果收到了新的Ack,那麼,cwnd = sshthresh ,然後就進入了擁塞避免的算法了。


17.37 (知乎:何柄融)題目 一

長度爲100字節的應用層數據交給傳輸層傳送,需加上20字節的TCP首部。再交給網絡層傳送,需加上20字節的IP首部。最後交給數據鏈路層的以太網傳送,加上首部和尾部工18字節。試求數據的傳輸效率。數據的傳輸效率是指發送的應用層數據除以所發送的總數據(即應用數據加上各種首部和尾部的額外開銷)。若應用層數據長度爲1000字節,數據的傳輸效率是多少?

  1. 100/(100+20+20+18)=63.3%

  2. 1000/(1000+20+20+18)=94.5%

通過這道題目對傳輸效率有一定的認識,然後對數據包的底層進一步加深理解。


17.38 試從多個方面比較電路交換、報文交換和分組交換的主要優缺點。

(1)電路交換:端對端通信質量因約定了通信資源獲得可靠保障,對連續傳送大量數據效率高。(2)報文交換:無須預約傳輸帶寬,動態逐段利用傳輸帶寬對突發式數據通信效率高,通信迅速。(3)分組交換:具有報文交換之高效、迅速的要點,且各分組小,路由靈活,網絡生存性能好。

這到題目需要先理解三種交換方式的原理所在,電路交換就像打電話一樣,先建立連接,然後再進行通信。報文交換和分組交換的原理差不多,只不過報文交換是把全部數據都一次性存儲轉發,而分組交換則分成了多次。


17.39 協議與服務有何區別?有何關係?

網絡協議:爲進行網絡中的數據交換而建立的規則、標準或約定。由以下三個要素組成:

(1)語法:即數據與控制信息的結構或格式。

(2)語義:即需要發出何種控制信息,完成何種動作以及做出何種響應。

(3)同步:即事件實現順序的詳細說明。協議是控制兩個對等實體進行通信的規則的集合。在協議的控制下,兩個對等實體間的通信使得本層能夠向上一層提供服務,而要實現本層協議,還需要使用下面一層提供服務。

協議和服務的概念的區分: 1、協議的實現保證了能夠向上一層提供服務。本層的服務用戶只能看見服務而無法看見下面的協議。下面的協議對上面的服務用戶是透明的。2、協議是“水平的”,即協議是控制兩個對等實體進行通信的規則。但服務是“垂直的”,即服務是由下層通過層間接口向上層提供的。上層使用所提供的服務必須與下層交換一些命令,這些命令在OSI中稱爲服務原語。


17.40 假定某信道受奈氏準則限制的最高碼元速率爲20000碼元/秒。如果採用振幅調製,把碼元的振幅劃分爲16個不同等級來傳送,那麼可以獲得多高的數據率(b/s)?

C=RLog2(16)=20000b/s4=80000b/s

這題考查的是奈奎斯特公式:C = 2B * log2 N ( bps )

這裏B是物理帶寬,而2B爲最高碼元傳輸速率=20000碼元/秒.

N=16.因爲也表示16個等級.即16個信號離散等級。

所以答案=20000log2 16=200004=8000b/s.


17.41 試說明IP地址與硬件地址的區別,爲什麼要使用這兩種不同的地址?

IP 地址就是給每個連接在因特網上的主機(或路由器)分配一個在全世界範圍是唯一的 32 位的標識符。從而把整個因特網看成爲一個單一的、抽象的網絡在實際網絡的鏈路上傳送數據幀時,最終還是必須使用硬件地址。

MAC地址在一定程度上與硬件一致,基於物理、能夠標識具體的鏈路通信對象、IP地址給予邏輯域的劃分、不受硬件限制。


17.42 某單位分配到一個B類IP地址,其net-id爲129.250.0.0.該單位有4000臺機器,分佈在16個不同的地點。如選用子網掩碼爲255.255.255.0,試給每一個地點分配一個子網掩碼號,並算出每個地點主機號碼的最小值和最大值

4000/16=250,平均每個地點250臺機器。 B類IP地址,而子網掩碼爲255.255.255.0,則說明後面16位中的8位也是網絡地址,所以主機數只有8位。

子網號(subnet-id) 子網網絡號 主機IP的最小值和最大值

1: 00000001 129.250.1.0 129.250.1.1—129.250.1.254

2: 00000010 129.250.2.0 129.250.2.1—129.250.2.254

3: 00000011 129.250.3.0 129.250.3.1—129.250.3.254

4: 00000100 129.250.4.0 129.250.4.1—129.250.4.254

5: 00000101 129.250.5.0 129.250.5.1—129.250.5.254

6: 00000110 129.250.6.0 129.250.6.1—129.250.6.254

7: 00000111 129.250.7.0 129.250.7.1—129.250.7.254

8: 00001000 129.250.8.0 129.250.8.1—129.250.8.254

9: 00001001 129.250.9.0 129.250.9.1—129.250.9.254

10: 00001010 129.250.10.0 129.250.10.1—129.250.10.254

11: 00001011 129.250.11.0 129.250.11.1—129.250.11.254

12: 00001100 129.250.12.0 129.250.12.1—129.250.12.254

13: 00001101 129.250.13.0 129.250.13.1—129.250.13.254

14: 00001110 129.250.14.0 129.250.14.1—129.250.14.254

15: 00001111 129.250.15.0 129.250.15.1—129.250.15.254

16: 00010000 129.250.16.0 129.250.16.1—129.250.16.254

17.43 設TCP的ssthresh的初始值爲8(單位爲報文段)。當擁塞窗口上升到12時網絡發生了超時,TCP使用慢開始和擁塞避免。試分別求出第1次到第15次傳輸的各擁塞窗口大小。你能說明擁塞控制窗口每一次變化的原因嗎?

擁塞窗口大小分別爲:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9.

首先是慢開始1,2,4,8。然後此後大於ssthresh,改用擁塞避免算法8,9,10,11,12。但是由於到12時發生超時,所以此後從又從1開始,設ssthresh爲1/2 *12=6。所以1,2,4,6.然後到了又開始擁塞算法,6,7,8,9 所以,最後就是上面的排序。

17.44 我也想在搞多一個問題,但是差不多就算了,在多就買本考研試題吧

在這裏插入圖片描述

參考資料:

整個文章中用到的參考資料,網址:https://blog.csdn.net/qq_45877524/article/details/105886501)》

在這裏插入圖片描述

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