1. 程式人生 > 其它 >測試開發基礎|一文搞定計算機網路(一)

測試開發基礎|一文搞定計算機網路(一)

計算機網路知識對測試人員來說是非常重要的基礎技能。無論是在平時測試工作中(比如介面測試),還是測試技術面試時,都會經常涉獵。很多基礎薄弱的同學靠臨時抱佛腳突擊搜尋學習,對系統知識和重點難點的理解總是不夠透徹。
本系列文章就帶大家從最最基礎的網路知識開始,一步一個臺階學習,最終深度理解和掌握計算機網路核心知識點、相關面試題以及在測試工作中的應用。
網路、網際網路、因特網,經常聽到的這三個名詞,他們的區別是什麼?先參考如下圖

  • 網路(Network)
    計算機通過交換機裝置組建成一個區域網,一般不超過100米,例如學校的機房;
  • 網際網路(Network of Network)
    還是以學校機房為例,不同教室之間的網路可以通過路由器相互連線,這就叫做網際網路;並且通過廣域網可以連線的很遠。
  • 因特網(Internet)
    全球最大的一個網際網路
  • 總結
  • 網路:許多計算機連線在一起
  • 網際網路:internet 許多網路連線在一起
  • 因特網:Internet 全球最大的一個網際網路
  • ISP:電信運營商internet service producer
    由上圖可以清晰的看出網路直接的關係,在實際生活中也很容易提現;比如以前在學校的時候,同學和老師之間傳檔案很快,因為大家都是在一個校園網中;再比如網路下載的時候,一般會提供好幾個下載路徑,通常我們選擇本地下載也是速度最快的。
    再由下圖的實際場景可以很清楚的看出ISP、企業和我們普通的網民之間的關係:
  • 區域網:自己購買裝置,自己維護,頻寬固定,100M 1000M 距離100米以內
  • 廣域網:花錢買服務,花錢買頻寬
    1)電路交換——面向連線
  • 連線的三個階段:
  • 建立連線
  • 通訊
  • 釋放連線
  • 缺點
  • 計算機資料具有突發性,導致通訊線路的利用率很低
  • 適合場景:適用於資料量很大的實時性傳輸,核心路由器之間可以使用電路交換
    2)分組交換
    一段較長的報文資料
    分組後將每段資料加上首部,首部資訊中包含了地址等控制資訊

分組交換網中的結點減緩及根據收到的分組的首部中的地址資訊,把分組轉發到下一個結點交換機,用這樣的儲存轉發方式,最後就能到達最終目的地,再根據首部資訊將資料拼接恢復未原來的報文。

    • 優點:

    • 高效

    • 靈活

    • 迅速

    • 可靠

    • 缺點:

    • 時延

    • 開銷
      3)報文交換
      報文交換一般將報文整個傳送,這樣就造成報文一般比分組的長的多,時延也較長
      三種交換方式的比較:

    • 1.速率:
      連線在計算機網路上的主機在數字通道上傳送資料位數的速率,也稱為data rate或bit rate。
      單位是b/s, kb/s, Mb/s, Gb/s.

    • 2.頻寬:
      資料通訊領域中,數字通道所能傳送的最高資料率
      單位是 b/s, kb/s, Mb/s, Gb/s

    • 3.吞吐量:
      即在單位時間內通過某個網路的資料量
      單位 b/s, Mb/s等

    • 4.時延:我們經常說到延時,就是這裡的時延,那麼時延分別有如下幾種:

    • 傳送時延:
      傳送資料時,資料塊從結點進入到傳輸媒體所需要的時間;
      可以類別火車出站,整列火車就好比一段資料,那麼這列火車從站臺出站就好比資料塊從結點進入到傳輸媒體,這個出站所花費的時間就是傳送時延

    • 傳播時延:
      電磁波在通道中需要傳播一定的距離而花費的時間;
      就好比火車從一個站點開到另一個站點的途中所花費的時間。

    • 排隊時延:
      結點快取佇列中分組排隊所經歷的時延;
      這個也比較好類比生活中的例子,比如我們節假日過收費站的時候,車輛需要在不同的車道進行排隊等候進站,這個時間段就是排隊時延

    • 處理時延:
      交換結點為儲存轉發而進行一些必要的處理所花費的時間;
      依然可以以開車進收費站為例,到了收費站以後,我們需要取卡繳費等行為,哪怕是ETC也要減速慢行等待抬杆,有時候可能沒識別到還得倒車再來,這些過程所花費的時間就成為處理時延

    • 5.時延頻寬積:
      單位時間內能夠傳輸的最大資料量;就好比一段公路,如果都擺滿了車,最多可以承載多少車輛。

    • 6.往返時間-RTT(Round-Trip Time)
      從傳送方傳送資料開始,到傳送方收到接收方確認

    • 7.利用率

    • 通道利用率:指出某通道有百分之幾的時間是被利用的(有資料通過),完全空閒的通道利用率是零。

    • 網路利用率:全網路的通道利用率的加權平均值
      如下圖所示,當利用率在接近1的過程中,達到某一個點之後,時延會急劇增大,造成“堵塞”;
      就如同高速公路,平常車輛不多,利用率並不高,但是車速很快,執行通暢;而節假日的時候,因為免費加上出行增加,道路的利用率可能大大增加,但是同行的流暢度也大大降低(本人就經歷過平常四五個小時的車程開了16個小時的痛苦經歷~~,時延太大了呀)

      996×1144 177 KB
      這裡:
      程式開發人員主要考慮的是前3層:應用層-表示層-會話層
      網路工程師主要考慮的是:傳輸層-網路層-資料鏈路層
    • 分層的意義和必要性

    • 各層直接相互獨立

    • 靈活性好

    • 結構上可以分隔開

    • 易於實現和維護

    • 能促進標準化工作

    • 現實舉例說明
      這裡還是以現實生活舉例:

    • 好比現在有一件商品需要從北京裝箱打包傳送到上海,要經過如下步驟:
      商家包裝商品-快遞員打包商品-商品通過汽車運往火車站-商品再通過火車發往上海

    • 這裡想要提高貨物傳送的效率,可以通過很多方式:

    • 然後我們發現無論使用哪種方式,都是獨立的步驟,並不影響其他步驟;可以在各自的“分層”中進行管理優化,每層都要自己的作業方式。

    • 商家包裝方式加快

    • 快遞小哥打包手法更嫻熟

    • 城市交通多修高架和快速路

    • 火車提速

      992×514 79.4 KB
      對於協議分層之間的關係,由於本文內容是基於謝希仁版《計算機網路》,所以這裡直接借用書中的解釋,如下:
    • 主機1向主機2傳送資料

    • 主機2從主機1接收資料
      接收的過程與傳送正好相反,會將首位部以此去除,解封裝。
      具體畫圖參考上文
      1.應用層(資料):確定程序之間通訊的性質以滿足使用者需要以及提供網路與使用者應用
      2.表示層(資料):主要解決擁護資訊的語法表示問題,如加密解密
      3.會話層(資料):提供包括訪問驗證和會話管理在內的建立和維護應用之間通訊的機
      制,如伺服器驗證使用者登入便是由會話層完成的
      4.傳輸層(段):實現網路不同主機上使用者程序之間的資料通訊,可靠
      與不可靠的傳輸,傳輸層的錯誤檢測,流量控制等
      5.網路層(包):提供邏輯地址(IP)、選路,資料從源端到目的端的
      傳輸
      6.資料鏈路層(幀):將上層資料封裝成幀,用 MAC 地址訪問媒介,錯誤檢測與修正
      7.物理層(位元流):裝置之間位元流的傳輸,物理介面,電氣特性等
      8.閘道器:應用層、傳輸層(閘道器在傳輸層上以實現網路互連,是最複雜的網路互連設 備,僅用於兩個高層協議不同的網路互連。閘道器的結構也和路由器類似,不同的是 互連層。閘道器既可以用於廣域網互連,也可以用於區域網互連)
      9.路由器:網路層(路由選擇、儲存轉發)
      10.交換機:資料鏈路層、網路層(識別資料包中的 MAC 地址資訊,根據 MAC 地址進
      行轉發,並將這些 MAC 地址與對應的埠記錄在自己內部的一個地址表中)
      11.網橋:資料鏈路層(將兩個 LAN 連起來,根據 MAC 地址來轉發幀)
      12.集線器(Hub):物理層(純硬體裝置,主要用來連線計算機等網路終端)
      13.中繼器:物理層(在位元級別對網路訊號進行再生和重定時,從而使得它們能夠在
      網路上傳輸更長的距離)
      本文主要參考《計算機網路》謝希仁教材,面試題相關來自網路。

    • 喜歡軟體測試的小夥伴們,如果我的部落格對你有幫助、如果你喜歡我的部落格內容,請 “點贊” “評論” “收藏” 一鍵三連哦。更多技術文章