1. 程式人生 > 實用技巧 >【計算機網路】學習筆記,第一篇:概述(謝希仁版)

【計算機網路】學習筆記,第一篇:概述(謝希仁版)

本來沒想著更新計網,想直接整理一下 HTTP、TCP 那塊,不過想了一下從頭開始整理哇,順便鞏固一下學的知識

  • 此係列文章對於考研遠還是不夠的,參考一下即可
  • 文章主要針對科班上課做的簡單筆記,以及後面針對一些面試涉及內容的詳細講解
  • 再三宣告:考研的同學好好去背書,做題!!!
  • 此文章整理自:【計算機網路】(第七版)謝希仁

一 計算機網路在資訊時代中的作用

21世紀是一個數字化、網路化,資訊化的時代,它是一個以網路為核心的資訊時代

有三大網路被人們所熟知:電信網路、有線電視網路、計算機網路

  • 電信網路:提供電話、電報及傳真等服務
  • 有線電視網路: 向用戶傳送各種電視節目
  • 計算機網路:使使用者能在計算機之間傳送資料檔案

隨著技術發展,電信網路和有線電視網路都逐漸融入了現代計算機網路技術,擴大了原有的服務範圍,而計算機網路也能夠向用戶提供電話通訊、視訊通訊以及傳送視訊節目的服務。

所以如果能將上述三種網路互相融合為一個網路就被稱之為三網融合

二 因特網 Vs 網際網路 Vs 互連網

因特網和網際網路的區分主要因為 Internet 的中文譯名不統一造成的

  • 因特網:由全國科學技術名詞審定委員會推薦的,比較準確,但長期未得到推廣
  • 網際網路:針對流行程度上來說,網際網路才是一定意義上被大眾使用的譯名

網際網路和互連網的定義也很不同

  • 互連網:指在區域性範圍互連起來的計算機網路。
  • 網際網路:指當今世界上最大的計算機網路(Internet)

三 網際網路的特點

  • 連通性 (connectivity)

    • 即無論距離有多遠,都可以便捷快速的交換各種資訊
  • 共享 (Sharing)

    • 資源共享

四 網際網路的組成

  • 邊緣部分:由所有連線在網際網路上的主機組成,這部分是使用者直接使用的,用於通訊(傳送資料、音訊、視訊)和資源共享
  • 核心部分:由大量網路和連線這些網路的路由器組成,這部分是為邊緣部分提供服務的(提供連通性和交換)

(一) 邊緣部分

明確一個概念:我們通常說的 “主機A 和 主機B 進行通訊”,實際上指的是在 主機A 上的某個程式和執行在 主機B 上的另一個程式進行通訊,而由於 “程序” 就是 “執行著的程式” 所以也就是說:”主機A 的某個程序和 主機B 上的另一個程序在進行通訊“

這個比較嚴密的說法也可以簡稱為 ”計算機之間通訊“

在網路邊緣端系統之間的通訊方式可以劃分為兩大類:客戶-伺服器方式(C/S方式) 和 對等方式(P2P方式),下面來簡單說一下:

(1) 客戶-伺服器方式(C/S方式)

  • C/S 全程為 Client/Server,即:客戶/服務

  • 客戶-伺服器方式描述的是程序之間的服務與被服務的關係,客戶是服務請求方,伺服器是服務方

  • 客戶程式:被使用者呼叫後執行,在打算通訊時主動向遠地伺服器發起通訊(請求服務)

  • 伺服器程式:被動的等待接收來自各地的客戶請求,可以同時處理多個請求

(2) 對等連線方式(P2P 方式)

  • p2p 即 peer to peer,因為 2 的英文是 two 與 to 發音一致,所以將 to 用 2 指代

  • 等通訊方式並不區分哪一個是服務請求方還是服務提供方,只要兩個主機都運行了對等連線軟體,就可以進行平等的、對等連線通訊

(二) 核心部分

在網路核心部分起到重要作用的就是計算機網路,它是一種專用計算機(非主機)路由器是實現分組交換 的關鍵構件,其任務是轉發收到的分組,這是網路核心部分最重要的功能,但是想要了解分組交換,就不可避免講到其發展歷經的極大過程

(1) 電路交換

電路交換主要是通過電話連通的方式而產生的:

  • 如果電話機之間通過線路兩兩連線起來,即兩個電話需要一條線

  • 如果有5部電話,則需要10條電線,如下圖:

  • 所以 N 部電話機兩兩直接相連,就會導致需要 (N -1) / 2 條電線,即所需要的電線對的數量與電話機數量的平方( N2 )成正比

  • 為了避免耗費線路過多,所以提出了交換機的概念,即每一部電話都連線到交換機上

從通訊資源的分配角度看,交換”就是按照某種方式動態地分配傳輸線路的資源

※ 使用電路交換的時候需要經過三個必要階段

  • 建立連線:建立一條專用的物理通路,以保證雙方通話時所需的通訊資源在通訊時不會被其他使用者佔用
  • 通訊:主叫和被叫雙方就能互相通電話
  • 釋放連線:釋放剛才使用的這條專用的物理通路(釋放剛才佔用的所有通訊資源)

※ 電路交換特點

  • 在通話時間內,通話的兩個使用者時鐘佔用端到端的通訊資源

※ 電路交換缺點

使用電力交換來傳送計算機資料,線路傳輸效率很低,因為計算機資料是突發式的出現在傳輸線路上,因此線路上真正用來傳送資料的時間往往不到 10% ,甚至 1% ,被使用者 佔用的通訊線路資源絕大部分時間都是空閒的

(2) 報文交換

報文交換的單位是報文,報文攜帶有目標地址,源地址等資訊,報文交換在交換節點採用的是儲存轉發的傳輸方式。簡單的理解就是:整個報文會先傳到相鄰的節點,全部儲存下來再查詢轉發

這種情況下,有如下好處:

  • 無需建立連線,不需要為雙方建立專門的連線,所以不存在建立連線時延
  • 動態分配路線,當傳送方把報文交給交換裝置時,交換裝置先儲存整個報文,然後選擇一條合適的空閒路線,將報文發出去
  • 提高了線路可靠性,和利用率,因為通訊雙方並不是依賴於一條固定的通訊線路

缺點:

  • 因為資料進入交換節點後要經歷儲存、轉發這一過程,因此會引起轉發時延(包括接收報文、校驗正確性、排隊、傳送時間等)

  • 報文交換對報文的大小沒有限制,這就要求網路哦節點需要有較大的快取空間

(3) 分組交換

同報文交換一樣,分組交換也採用了儲存轉發方式,但解決了報文交換中大報文傳輸的問題,分組交換限制了每次傳送的資料塊大小的上限。把它的資料塊劃分為合理的小資料塊再加上一些必要的控制資訊,(如原地址,目的地址和編號資訊等),構成分組,網路節點根據控制資訊把分組送到下一節點,下一節點接收到分組後暫時儲存並排隊等待傳輸,然後根據分組控制資訊選擇它的下一個節點,直到到達目的節點。

分組交換的優點:

  • 高效:在分組傳輸的過程中動態分配傳輸頻寬,對通訊鏈路是逐段佔用
  • 靈活:為每一個分組獨立地選擇最合適的轉發路由
  • 迅速:以分組作為傳送單位,可以不先建立連線就能向其他主機發送分組
  • 可靠:保證可靠性的網路協議;分散式多路由的分組交換網,使網路有很好的生存性。

缺點:

  • 分組在各結點儲存轉發時需要排隊,這就會造成一定的時延
  • 分組必須攜帶的首部(裡面有必不可少的控制資訊)也造成了一定的開銷

(3) 三種交換方式小結

電路交換,整個報文的位元流連續的從源點直達終點,好像在一個管道中傳送

報文交換,整個報文先傳送到相鄰節點,全部儲存下來以後,查詢轉發表,轉發到下一個節點

分組交換,單個分組(這只是整個報文的一部分)傳送到相鄰節點,儲存下來後,查詢轉發表,轉發到下一個節點

  • 若要連續傳送大量的資料,且其傳送時間遠大於連線建立時間,則電路交換的傳輸速率較快
  • 報文交換和分組交換不需要預先分配傳輸頻寬,在傳送突發資料時可提高整個網路的通道利用率
  • 由於一個分組的長度往往遠小於整個報文的長度,因此分組交換比報文交換的時延小,同時也具有更好的靈活性

(三) 網路的類別

(1) 按網路的作用範圍劃分

  • 廣域網 WAN (Wide Area Network):作用範圍通常為幾十到幾千公里
  • 都會網路 MAN (Metropolitan Area Network):作用距離約為 5 ~ 50 千米,例如一般跨越幾個擷取甚至整個城市
  • 區域網 LAN (Local Area Network) :侷限在較小的範圍(如 1 公里左右),例如一般比如學校或者工廠企業,相對較小的範圍
  • 個人區域網 PAN (Personal Area Network) :範圍很小,大約在 10 米左右

(2) 按照網路的使用者進行分類

  • 公用網:共用網是電信公司出資建造的大型網路,公用的意思就是所有願意按電信公司規定繳納費用的人都可以使用這種網路,也可以稱為公眾網

  • 專用網:這是某個部門為了滿足本單位特殊業務工作的需要而建造的網路,這種網路不向本單位以外的人提供服務,例如軍隊,銀行,電力等等

(3) 補充接入網的概念

接入網 AN (Access Network),它又稱為本地接入網居民接入網

它並不屬於網際網路的核心部分,也不屬於網際網路的邊緣部分

  • 接入網是從某個使用者端系統到網際網路中的第一個路由器(也稱為邊緣路由器)之間的一種網路

  • 接入網只是起到讓使用者能夠與網際網路連線的“橋樑”作用。很多接入網還是屬於區域網

五 計算機網路的效能

(一) 計算機網路效能指標

(1) 速率

網路技術中的速率指的是資料的傳送速率,也稱為資料率或者位元率

速率的單位是 bit/s(位元每秒),或者有時候寫成 b/s 、bps(bit per second)

  • 資料率較高的時候,就會在 bit/s 前加一個字母,例如 k = 10^3 = 千 、M = 10^6 = 兆、G = 10^9 = 吉、T = 10^12 = 太、P = 10^15 = 拍、E = 10^18 = 艾、Z = 10^21 = 澤、Y = 10^24 = 堯
  • 網路速率一般指的是額定速率或者標稱速率

(2) 頻寬

頻寬本來是指某個訊號具有的頻頻寬度訊號的帶寬,是指該訊號所包含的各種不同頻率成分所佔據的頻率範圍,例如在傳統的通訊線路上傳送的電話,訊號的標準頻寬是 3.1 kHz 從 300 Hz 到 3.4 kHz (即話音的主要成分的頻率範圍),這種意義的頻寬單位是赫茲(或千赫、兆赫、吉赫)在過去很長一段時間通訊的主幹線路傳送的,是模擬訊號及連續變化的訊號,因此表示某通道允許通過的訊號頻帶範圍就稱為該通道的頻寬或者通頻帶

在計算機網路中,頻寬用來表示網路中某通道傳送資料的能力,因此網路頻寬表示在單位時間內,網路中的通訊到所能通過的最高資料率,這種意義的頻寬的單位就是資料率的單位,bit/s (位元每秒)

(3) 吞吐量

吞吐量是表示在單位時間內通過某個網路的實際資料量

(4) 時延

時延是指一個報文或分組從一個網路的一端傳送到另一個端所需要的時間

時延 = 傳送時延 + 傳播時延 + 處理時延 + 排隊時延

A:傳送時延

傳送時延是主機或路由器傳送資料幀所需要的時間,也就是從傳送資料的第一個位元算起,到該幀的最後一個位元傳送完畢所需的時間。傳送時延也稱為傳輸時延。(但一般不用傳輸時延,因為容易和別的弄混)

傳送時延 = 資料幀長度(bit) / 傳送速率(bit/s)

B:傳播時延

傳播時延是電磁波在通道中傳播一定的距離需要花費的時間

傳播時延 = 通道長度(m) / 電磁波在通道上的傳播速率(m/s)

C:處理時延

處理時延是主機或路由器在收到分組時要花費一定的時間進行處理而形成的

D:排隊時延

分組在經過網路傳輸時,會經過許多路由器。分組在進入路由器之前要先在輸入佇列中排隊等待處理。在路由器確定了轉發介面後,還要在輸出佇列中排隊等待轉發,這就產生了排隊時延

一般來說,傳送時延與傳播時延是我們主要考慮的

  • 對於報文長度較大的情況,傳送時延是主要矛盾
  • 報文長度較小的情況,傳播時延是主要矛盾

(5) 時延頻寬積

公式:時延頻寬積 = 傳播時延 * 頻寬

下圖就可以代表時延頻寬積,圓柱型管道的長度就是傳播時延管道的截面積就是鏈路的頻寬,因此時延頻寬積就是這個管道的體積

對於一條正在傳輸資料的鏈路,只有在代表鏈路的管道都充滿位元的時候,鏈路才的到充分的利用

(6) 往返時間

在計算機中傳輸的時候不僅僅是單向的,往返時間表示從傳送方傳送資料開始,到傳送方收到來自接收方的確認,總共經歷的時間

(7) 時延利用率

  • 通道利用率:其是指出某通道有百分之幾的時間被利用過(有資料通過),完全空閒的通道的利用率是 0
  • 網路利用率:其是全網路的通道利用率的加權平均值

通道利用率並非越高越好,這是因為,根據排隊論的理論,當某通道的利用率增大時,該通道引起的時延也就迅速增加

所以如圖所示,當通道的利用率增大的時候,該通道引起的時延迅速增加

(二) 計算機網路的非效能特徵

  • 費用
  • 質量
  • 標準化
  • 可靠性
  • 可擴充套件性與可升級性
  • 易於管理和維護

六 計算機網路體系結構

(一) 網路協議三要素

  • 語法:資料與控制資訊的結構或格式
  • 語義:需要發出何種控制資訊,完成何種動作以及做出何種響應
  • 同步:事件實現順序的詳細說明

(二) 幾種網路協議體系結構(暫時知道即可)

首先要提的是 OSI 七層協議體系結構,其概念是比較完整的,但是它即複雜又不使用

接著就是 TCP/IP 體系結構,它現在卻得到了非常廣泛的應用但是從實質上將, TCP/IP 只有最上面的一層,是因為下面的網路介面層並沒與什麼具體內容所以在下面我們採用一種折中的方式,那就是綜合 OSI 和 TCP/IP 的優點採用一種只有五層協議的體系結構

簡單說明一下這五層結構中,每一層大概是做什麼的,其每一部分都會花費一章的篇幅來進行詳細的解釋,這裡有個印象就可以了,下面我們從上層到底層來說

(1) 應用層

應用層是體系結構中的最高層。應用層的任務是通過應用程序間的互動來完成特定網路應用。應用層協議定義的是應用程序間通訊和互動的規則。這裡的程序就是主機中正在執行的程式。對於不同的網路應用需要不有不同的應用層協議。在網際網路的應用層協議很多,如域名 DNS,支援全球資訊網應用的HTTP 協議,支援電子郵件的 SMTP 協議,等等。我們把應用層的資料單元稱為報文(messgae)

(2) 運輸層

運輸層的任務就是負責向兩臺主機中程序之間的通訊提供通用的資料傳輸服務。應用程序利用該服務傳送應用層報文。所謂通用的,是指並不針對某個特定網路應用,而是多種應用可以使用同一個運輸層服務。由於一臺主機可以同時執行多個程序,因此運輸層有複用和分用的功能。複用就是多個應用層程序可同時使用下面運輸層的服務,分用和複用相反,是運輸層把收到的資訊分別交付給上面應用層的相關程序。

運輸層主要有下面兩種協議:

  • 傳輸控制協議TCP(Transmission Control Protocol)——提供面向連線的、可靠的資料傳輸服務,其資料傳輸的單位是報文段(segment)。
  • 使用者資料報協議 UDP(User Datagram Protocol)——提供無連線的盡最大努力(best-effort)的資料傳輸服務(不保證資料傳輸的可靠性),其資料傳輸的單位是使用者資料報

(3) 網路層

網路層負責為分組交換網上的不同主機提供通訊服務。
在傳送資料時,網路層把運輸層產生的報文段或者使用者資料報封裝成分組或者包進行傳送。在TCP/IP體系中,由於網路層使用IP協議,因此分組也叫作IP資料報,或簡稱資料報。
請注意:不要將運輸層的 "使用者資料報 UDP" 和網路層的 "IP資料報" 弄混,此外,無論哪一層傳輸的資料單元,都可以籠統的用"分組"來表示。
網路層的另一個任務就是選擇合適的路由,是源主機運輸層所傳下來的分組,能夠通過網路中的路由器來找到目的主機。

網際網路是有大量的異構(heterogeneous)網路來通過路由器(Router)相互連線起來的。網際網路使用的網路層協議是無連線的網際協議IP(Internet Protocol)和許多路由選擇協議, 因此網際網路的網路層也叫作網際層或IP層。

(4) 資料鏈路層

資料鏈路層通常簡稱為鏈路層。我們知道,兩臺主機之間的資料傳輸,總是在一段一段的鏈路上傳送的, 這就需要使用專門的鏈路層的協議。在兩個相鄰結點之間傳送資料時,資料鏈路層量網路層交下來的IP資料報封裝成幀(frameing),在兩個相鄰節點間的鏈路上傳送幀,每一幀包括資料和必要的控制資訊(如同步資訊、地址資訊、差錯資訊等)

在接收資料時,控制資訊使接收端能夠知道一個幀從哪個位元開始到哪個位元結束,這樣資料鏈路層在收到一個幀後,就可從中提取資料部分,上交到網路層。

控制資訊還能使接收端能夠檢測到所收到的幀中有無差錯。如發現有差錯,資料鏈路層就簡單的丟棄了這個出了差錯的幀,以免繼續在網路傳輸下去白白的浪費資源。如果需要改正資料在資料鏈路層傳輸時出現的差錯(這就是說,資料鏈路層不僅要檢錯,還要糾錯), 那麼就可以採用可靠資料傳輸協議來糾正出現的差錯。這種方法會使資料鏈路層的協議複雜些。

(5) 物理層

在物理層上所傳資料的單位是位元(bit)。傳送方傳送1或者0時,接收方應該接收相同的1或者0,因此物理層要考慮用多大的電壓代表"1"或者"0", 以及接收方如何識別傳送方所發出的位元。物理層還要確定連線電纜的插頭應當有多少根引腳以及各引腳如何連線。當然解釋位元代表的意思,就不是物理層的任務。請注意,傳遞資訊所利用的一些物理媒體,如雙絞線、同軸電纜、光纜、無線通道等,並不是物理層協議之內而是在物理層協議的下面。因此也有人把物理層當做第0層。

在網際網路所使用的的各種協議中,最重要的和最著名的就是TCP和IP兩個協議。現在人們經常提到的TCP/IP並不一定是單指TCP和IP兩個具體的協議,而往往是表示網際網路所使用的的整個TCP/IP協議族(Protocol suite)。

(6) 補充:

① OSI 參考模型把對等層次之間傳送的資料單位稱為該層的協議資料單元 PDU

  • PDU (Protocol Data Unit):協議資料單元,是一個數據單位

② OSI 把層與層之間交換的資料的單位稱為服務資料單元 SDU (Service Data Unit)

③ 各層協議實際上就是在各個對等層之間傳遞資料時的各項規定

協議是 “水平的”,即協議是控制對等實體之間通訊的規則

服務是 “垂直的”,即服務是由下層向上層通過層間介面提供的

七 結尾

如果文章中有什麼不足,歡迎大家留言交流,感謝朋友們的支援!

如果能幫到你的話,那就來關注我吧!如果您更喜歡微信文章的閱讀方式,可以關注我的公眾號

在這裡的我們素不相識,卻都在為了自己的夢而努力 ❤

一個堅持推送原創開發技術文章的公眾號:理想二旬不止