計算機網絡自頂向下方法簡答題與綜述題題目與答案彙總

  1. 內網用NAT和DHCP訪問外網的過程(NAT穿越問題);
    參考博客

  2. 爲什麼實際帶寬會小於鏈路帶寬?TCP擁塞控制的機制和過程;

    1. 分組時延和丟失
      a) 傳輸時延:數據塊長度與信道帶寬的影響;
      b) 傳播時延:信道長度與信號傳播速率;
      c) 處理時延:交換結點(如路由器)爲存儲轉發而進行了一些必要處理,比如差錯檢測;
      d) 排隊時延:結點緩存隊列中分組排隊所經歷的時延,與網絡中通信量有關。
    2. 擁塞控制和流量控制
      a) 傳輸層(TCP)會檢測網絡擁塞程度而抑制發送方的數據,使發送方發送分組的速度與接收方收取分組的速度匹配
    3. CSMA/CD協議等其他因素

    注:TCP擁塞控制過程:

    1. AIMD(加性增乘性減):除“緩啓動”階段TCP大小每個週期增加1mss,如果 出現擁塞則每次減半但不會小於1mss;
    2. “緩啓動”:第一個週期發送1mss數據之後逐漸按指數增加,直到“緩啓動”閾值(上一次loss事件的一半),結束“緩啓動”階段;
    3. 超時處理:如果沒有收到ack檢測到超時事件表示嚴重擁塞則將TCP窗口大小改爲1mss並重新開始“緩啓動”,“緩啓動”閾值變先前一半;若收到3個冗餘ACK後:窗口減半再線性增加,“緩啓動”閾值變先前一半。
  3. LAN多路訪問協議中的協議以及每個協議的特點;
    分類:

    1. 信道劃分協議:包括
      a) 頻分(信道頻譜劃分爲若干頻帶,每個站點分配一個固定頻帶,無傳輸時相應頻帶空閒);
      b) 時分(週期性接入信道,每個站點在每個週期佔用固定長度的時隙,未使用則時隙空閒);
      c) 波分;
      d) 碼分。
    2. 隨機訪問協議:當節點要發送數據時,利用信道全部速率發送分組,若多個節點同時傳輸則會產生衝突,典型的兩種協議(時隙ALOHA和非時隙ALOHA協議還有CSMA、CSMA/CD(應用於以太網)、CSMA/CA(應用於802.11))。
      a) 時隙ALOHA特點:所有幀大小相同,時間被劃分爲等長的時隙,結點只能在時隙開始時刻發送幀,如果衝突則以概率p重傳;
      b) 非時隙ALOTHA特點:有新的幀生成時立即發送,衝突可能性增大,但更加簡單無需同步;
      c) CSMA特點:發送幀之前,監聽信道,若空閒則發送,反之推遲發送(又分爲1堅持、非堅持、p堅持),“邊發邊聽,不發不聽”;
    3. 輪轉協議:分爲輪詢和令牌傳遞兩大類;
      a) 輪詢:主節點輪流邀請從屬節點發送數據;
      b) 令牌傳遞:控制令牌依次從一個節點傳遞到下一個節點,拿到令牌纔可以發送數據。
  4. 一個網段向另一個網段發送數據的過程(不知道對方MAC地址,ARP原理);
    a) 判斷是否在同一子網:分別將兩個IP地址與子網掩碼相與,並比較結果是否一樣,如果不一樣,則不在同一子網,封裝ARP廣播包(目的MAC地址爲全F)獲取網關1的MAC地址;
    b) 網關1收到ARP廣播包返回自己的MAC地址,主機將數據源IP地址和MAC地址設爲自己的IP地址和MAC地址,目的IP地址即爲目的IP地址,目的MAC爲網關1的MAC地址,封裝發送數據幀到鏈路。
    c) 網關1收到,解析獲得目的IP不是自己,查看路由表,路由表中有關於目標網段的下一跳,然後把源MAC和目的MAC地址重寫,從相應的接口發出去,數據包沿途經過的路由器或網關設備都執行相同的動作。
    d) 到達目標網段後,網關設備查看ARP表,找目標IP的MAC地址(數據幀傳輸過程中源目IP不變,MAC地址在變化) 然後封裝成幀進行發送(注意每次判斷是否在同一網段都需要將子網掩碼分別與自己的IP和目的IP與運算判別)

  5. 描述一下死鎖(給你一個rdt狀態機讓你描述);
    此題簡單,課本第三章第6題。附上那道題的答案:
    如果 rdt2.1 發送方正處於“等待來自上層的調用0”,接收方處於“等待來自下層的0”,發送方發送序號爲 0 的分組,而接收方正確接收並向發送方發送 ACK;此時發送方處於“等待 ACK 或 NAK 0”,接收方處於“等待下層的 1”,如果此 ACK 損壞,發送方重發序號0的分組,而接收方會發送 NAK,這將導致一個死循環;其實此接收方並沒有標註初始狀態,如果發送方初始狀態爲“等待來自上層的 0”,接收方初始爲“等待下層的 1”,也會導致上述死鎖。

  6. TCP和UDP異同點;

  1. TCP:①面向連接;②每一條TCP連接只能是點對點的(一對一);③提供可靠的交互服務;④支持全雙工通信;⑤面向字節流。
  2. UDP:①無連接;②盡最大努力交付;③面向報文;④無擁塞控制;⑤支持一對一、一對多、多對一和多對多的交互通訊;⑥首部開銷少。
  1. GBN和SR工作過程和發送窗口尺寸(異同點);

    1. GBN:
      a) 分組頭部包含序列號;
      b) 窗口大小爲N,最多允許N個分組未確認;
      c) ACK(n),則表示確認從開始到n(包含n)的序列號全部正確接收;
      d) 爲空中在傳的分組設置一個Timer計時器,處理超時,如果收到了timeout(n)事件,那麼會重傳的是n以及n以後的所有分組(儘管後面的可能已經收到了,這就是回退,回退到n開始傳,GBN);
      e) 接收方會有一個期望序列號,如果收到的不是期望的分組,直接丟棄;
    2. SR(選擇重傳):
      a) GBN有缺陷,累積確認機制導致回退到N,重複傳了很多。
      b) 爲了解決這個問題,對每個分組分別確認,不再只接收期望的,接到不期望的,就先緩存(設置緩存機制),接到期望的才交付上層;
      c) 發送方只需要重傳那些沒收到ACK的分組了;
      d) 產生了接收方窗口(GBN只有發送方窗口),用來緩存,現在有兩窗口了;
      e) 序列號的位數是K的話,那麼得滿足 接收方窗口大小N+發送方N<= 2的k次方,防止因爲接收方ACK丟失導致發送重發k號分組,而此時接收方滑到了新窗口,新窗口有新的k號分組(不是原來的,共用序號產生的),導致出錯。
  2. TCP發送方接收方特點,接收方接收到錯誤的或亂序的數據包如何處理;
    TCP發送接收特點:

    1. 發送方:採用應答機制,發送方發送的每個報文段都必須得到接收方的回答,才認爲傳輸成功,爲每個已經發送的數據段啓動超時定時器,超時只重發引起超時的分組,若收到連續三個ACK則在計時器結束之前快速重傳,有多個發送方窗口;
    2. 接收方:多個接收方窗口,累計應答機制,收到TCP報文段後放入接收緩衝區;
    3. 遇到錯誤:對最近一次確認過的重新確認;
    4. 遇到亂序:先緩存,根據序號重新排序在遞交給應用層。
  3. 描述TCP連接創建和斷開過程;
    TCP建立的三次握手:

    1. 發送端發送一個SYN報文段(SYN位被置位1),SYN中包含TCP目的端口和發送端的初始序列號,同時攜帶着TCP選項數據。
    2. 接收端在收到發送端連接請求後,接收端發送自己SYN報文段,同時對發送端的SYN進行確認,如前所述,接收端發送的ACK是發送的序列號+1。此時ACK位與SYN位都被置位。接收端發送SYN+ACK到發送端。
    3. 發送端接收到接收端的SYN+ACK數據後,進行確認,發送ACK=接收方發來的上一個seq+1的報文段給接收端,完成三次握手

    TCP斷開的四次握手:

    1. TCP協議規定通過發送一個FIN段(FIN被置位1)來發起關閉操作,發送端發送FIN段給接收端,告知它數據已發送完畢,請求斷開TCP連接。同時FIN報文段還包含着對最近收到的數據進行ACK。
    2. 接收端接收FIN報文段後,對FIN進行確認,發送ACK=上一個seq+1給發送端。
    3. 接收端將連接關閉發送給上層應用程序,由應用程序發起連接關閉操作。此時接收端由被動關閉連接變成主動,併發送FIN報文段給發送端。
    4. 發送端接收到FIN後,發送回ACK給接收端後,TCP連接終止。如果FIN丟失,發送FIN的那端需要重新發送FIN,知道接收到ACK爲止。
      參考博客
  4. 數據報網絡和虛電路網絡的異同點;
    虛電路網絡/數據報網絡特點:

    1. 發送數據前需要/不用先建立連接;
    2. 每個分組含有虛電路標識/目的IP地址用於路由器轉發;
    3. 若路徑中一個路由器損壞則所有分組都無法到達目的地/則可能都其他,剩餘分組可選擇其他路由器到達目的地;
    4. 分組按序/亂序到達;
      另附一張圖

在這裏插入圖片描述
11. 爲什麼要包含層次選路自治系統(AS)的劃分和各自的協議特點(08簡單第三題);

  1. 原因:
    a) 規模:規模龐大時路由表無法存儲和路由計算過程困難,交換量巨大,轉發很難。
    b) 自治管理:管理者希望對自己範圍內路由器進行管理,包括政策等方面諸多因素,減少路由也可以便於管理。
  2. 每個自治系統由一組通常由在相同管理控制下的路由器組成,同一自治系統內運行相同的路由協議,路由協議類型可分爲自治系統內部和自治系統外部;
  3. 自治系統內部協議:
    a) RIP:採用DV(距離向量)算法,健壯性不好;
    b) OSPF:採用洪泛鏈路狀態信息的鏈路狀態協議和Dijkstra最低費用路徑算法;
  4. 自治系統間路由選擇協議:
    BGP協議:獲得每個自治系統可達信息,分發路徑信息承載了路徑屬性,並提供受控制的選路信息分佈;
  5. 自治系統內通過什麼策略確定:
    先通過AS間路由協議學習到目的子網是否可以通過多個網關到達,然後利用AS內路由協議獲得路由信息確定到達每個網關的最小費用路徑的費用。如果有多個網關可達,則採用熱土豆原則(將分組發給剛剛計算的最近的網關路由器)。
  6. 內部路由器的用途:
    a) 邊界(網關)路由器:爲傳遞到自制系統外部的分組提供路由選擇,安全保護
    b) 骨幹路由器:爲分組在區域間轉發提供路由選擇
    c) 區域邊界路由器:爲傳遞到區域外的分組提供路由選擇
    d) 區域內路由器:爲信息在區域內轉發提供路由選擇
  1. 怎樣保證路由表準確無誤?
  1. 最大度量值:路由器設置一個最大度量值,當達到該值時,路由器就會認爲這條路由已經失效,將他清除出路由表;
  2. 水平分割:從一個方向上學來的路由信息,不能再放入發回那個方向的路由更新包並且又發回那個方向;
  3. 路由中毒:網絡出現故障時,通知鄰居該網段不可用
  4. 毒性反轉:當一條路徑信息變爲無效之後,路由器並不立即將它從路由表中刪除,而是用16(表示不可到達),即不可達的度量值將它廣播出去,它可以立即清除相鄰路由器之間的任何環路,
  5. 保持時間:該網段的路由變成“down”狀態時,還要在路由器中保留一段時間;
  6. 觸發更新:當路由器發現某個網段出現故障時,立即發送路由更新包來通知鄰居,而不用等到下一次發送路由更新包的時間
  1. 距離向量算法(DV)和鏈路狀態算法(LS)的區別;
  1. 距離矢量:運行距離矢量路由協議的路由器,會將所有它知道的路由信息與鄰居共享,但是隻與直連鄰居共享!
  2. 鏈路狀態:運行鏈路狀態路由協議的路由器,只將它所直連的鏈路狀態與鄰居共享,這個鄰居是指一個域內(domain),或一個區域內(area)的所有路由器!
  3. 所有距離矢量路由協議均使用Bellman-Ford(Ford-Fulkerson)算法,容易產生路由環路(loop)和無窮計數(counting to infinity)的問題。因此它們必須結合一些防環機制:split-horizon、route poisoning、poison reverse、hold-down timer、trigger updates。
  4. 同時由於每臺路由器都必須在將從鄰居學到的路由轉發給其它路由器之前,運行路由算法,所以網絡的規模越大,其收斂速度越慢。
  5. 鏈路狀態路由協議均使用了強健的SPF算法,如OSPF的Dijkstra,不易產生路由環路,或是一些錯誤的路由信息。路由器在轉發鏈路狀態包時(描述鏈路狀態、拓撲變化的包),沒必要首先進行路由運算,再給鄰居進行發送,從而加快了網絡的收斂速度。
  6. 距離矢量路由協議,更新的是“路由條目”!一條重要的鏈路如果發生變化,意味着需通告多條涉及到的路由條目!
  7. 鏈路狀態路由協議,更新的是“拓撲”!每臺路由器上都有完全相同的拓撲,他們各自分別進行SPF算法,計算出路由條目!一條重要鏈路的變化,不必再發送所有被波及的路由條目,只需發送一條鏈路通告,告知其它路由器本鏈路發生故障即可。其它路由器會根據鏈路狀態,改變自己的拓撲數據庫,重新計算路由條目。
  8. 距離矢量路由協議發送週期性更新、完整路由表更新(periodic & full)
  9. 而鏈路狀態路由協議更新是非週期性的(nonperiodic),部分的(partial)
  1. 電路交換、分組交換、報文交換優缺點;
  1. 電路交換:
    優點:①傳輸時延特別小;②雙方物理鏈路一旦建立,隨時通信,實時性強;③數據傳輸正確性強;
    缺點:①電路交換平均建立時間對計算機通信來說長;② 物理通路被通信雙方獨佔,信道利用率低;③ 難以進行差錯控制;
  2. 報文交換
    優點:①不存在連接建立時延,隨時發送報文;②採用存儲轉發的傳輸方式,使路徑多選擇性,提高傳輸可靠性;便於不同類型,不同規格計算機之間進行通信;提供多目標服務;允許建立數據傳輸優先級;③提高了通信線路的利用率
    缺點:①轉發時延大,實時性差;②只適用於數字信號;③需要網絡結點有大的緩衝區儲存整個報文,增加時延;
  3. 分組交換
    優點:①加速了傳輸速度,時延相比報文傳輸減小;②簡化了存儲管理;③減小了出錯機率和重發數據量;④更適用於優先級策略;
    缺點:①節點交換機需要有很強的處理能力;②傳送信息量增多,降低了通信效率,增加了處理時;③可能出現失序、丟失、重複的問題。
  1. Google(必考,10至15分不一定)
    答案1:
  1. 通過DHCP獲取主機地址,BOB筆記本電腦的操作系統生成一個DHCP請求報文,並將該報文放入到目的端口67,原端口68的UDP報文段,該UDP報文段則被放置在一個具有廣播IP目的地址(255.255.255.255)和源IP地址0.0.0.0的IP數據報中,該數據報被放置在以太網幀中,該幀到源MAC地址爲(自身MAC地址)目的MAC地址爲(ff:ff:ff:ff:ff:ff)進行廣播,路由器在它的具有MAC地址xx的接口接收到該廣播幀,分離出DHCP請求報文,然後給其分配IP,DHCP服務器會產生一個包含IP地址,d n s服務器IP,子網掩碼,默認網關IP的DHCP ACK報文,將其報文封裝並放入以太網幀中以目的MAC爲bob主機MAC,源MAC爲路由器接口MAC發送給bob,bob收到該報文後,將自己的IP地址,DNS服務器IP記錄下來,同時將默認網關的地址安裝在IP轉發表中
  2. 通過DNS查詢谷歌的IP地址,將含有DNS查詢報文的數據報放入以太網幀中,爲了獲取網關路由器的MAC地址,將生成一個目的IP爲(默認網關)的ARP查詢報文,將該報文放置在一個具有廣播地址(FF:FF:FF:FF:FF:FF)的以太網幀中,發送該幀,網關路由器收到該幀後,將返回一個包含自身MAC地址的ARP回答報文,將其放在一個以太網幀中返回bob主機,從中抽取網關路由器的MAC地址,隨後可以將包含DNS查詢報文的幀發送到網關路由器,路由器根據最大前綴匹配原則,利用他的轉發表將其送到DNS服務器上,DNS服務器抽取出DNS查詢報文,然後在他的DNS數據庫中查找名字爲www.google.com,假設它緩存在DNS服務器中,則可以找到包含www.google.com的IP地址的DNS源記錄,DNS服務器則形成一個包含主機名到IP地址映射的DNS回答報文,將報文封裝進以太網幀中,發送到bob主機,bob從DNS回答報文中提取谷歌的IP地址
  3. bob生成TCP套接字,隨後開始進行TCP連接,首先生成一個具有目的端口80 的TCP SYN報文段,將該TCP報文段放置在具有目的IP地址(谷歌)的IP數據報中,將該數據報封裝在MAC地址(網關路由器)的幀中,利用路由器轉發表將該數據報發送到www.google.com,從數據報中取出TCP syn報文並分解到與端口80想聯繫的歡迎套接字中,對於谷歌http服務器和bob主機之間的TCP連接生成一個連接套接字,產生一個TCP syn ack報文段,該報文段最終到達bob主機的以太網卡,將其分解到TCP套接字中, bob主機上的瀏覽器生成包含要獲取的URL的http get報文,將該報文寫入套接字中,get報文成爲一個TCP報文段的載荷,將該報文段交付到www.google.com,www.google.com從TCP套接字中讀取http get報文,生成一個包含請求的web頁內容的響應報文,將該報文發送進TCP套接字中,包含http響應報文的數據報到達bob主機,bob主機上的web瀏覽器程序從套接字中讀取http響應,從http響應體中抽取web頁面的html,最後顯示網頁。
    答案2:
  4. DHCP:客戶機創建一個DHCP請求封裝在UDP中(源IP全0,MAC全f)全網廣播,路由器接收到爲其分配IP並將IP、子網掩碼、網關IP及DNS服務器IP封裝到DHCP ACK數據包封裝後發送給客戶機,客戶機記錄自己的IP掩碼DNS並將網關IP記錄到自己的轉發表
  5. 客戶機將自己和DNS服務器的IP和子網掩碼逐bit相與得到網絡號,如果在同一網段則發全網ARP廣播包(目的MAC爲全F);如果不同則發送ARP廣播包(目的MAC爲網關,IP爲DNS),路由器看到不是給自己的則持續上面這個過程發給上層其他路由直到到達DNS服務器。DNS服務器將MAC發給客戶機
  6. 獲得DNS的MAC發送ARP請求,再DNS數據庫中找到google域名,如果找到google的IP地址原始記錄則形成一個DNS回覆報文(包含主機名到地址的映射)封裝後發給客戶及,如果沒有則到根名稱服務器中尋找其根名稱的頂級域名稱服務器IP,再在其中找其權威名稱服務器的IP,最後在權威名稱服務器中找主機名和IP地址,打包發給客戶機。客戶機從中提取谷歌的IP
  7. 客戶機創建一個被用來發送http報文的TCP套接字進程,準備連接服務器。客戶機創建TCP syn報文到http服務器後被封裝發送給谷歌服務器,谷歌服務器接收到後將其分到80端口並形成一個TCP syn ack報文發給客戶機之前創建的套接字中。客戶機創建http get信息並將其套接字聯同get信息一起成爲TCP報文中有效荷載的一部分,封裝後發給谷歌。谷歌從中提取get信息後形成TCP回覆報文封裝到http報文主體內然後發送套接字到客戶機,客戶機的web瀏覽器從套接字讀取http回覆報文,從http相應報文主體部分提取網頁html內容,最後顯示網頁。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章