趣解計算機網絡(一)之入門概念介紹

本文介紹一些入門基本概念算法

1. 辨析幾種「網」

1.1. 計算機網絡

首先來看一張普通的網——蜘蛛網:編程

那麼該蜘蛛網有什麼特色呢?從幾何上看,無外乎有兩個特徵:(紅色部分)和(藍色部分)。服務器

其實生活中你能見到的網,如漁網、鐵網、繩網等等,都具備這個特徵。微信

以此類推,計算機網絡也具備這兩個特徵,只不過再叫點和線就不合適了,咱們換兩個名詞:結點鏈路網絡

因此,計算機網絡就是由若干結點和鏈接這些結點的鏈路組成的。數據結構

結點能夠是計算機、交換機、路由器等設備。鏈路能夠暫時簡單理解爲網線。app

下圖是由五個結點(四臺計算機、一臺集線器)和四條鏈路組成的計算機網絡,能夠簡稱爲網絡:數據結構和算法

在研究網絡之間的關係時,咱們須要把網絡當成一個總體來看,忽略網絡內部的複雜狀況。這時,一個網絡能夠用一朵雲來代替:ide

把某個網絡比做一我的,結點和鏈路則是心肝脾肺腎和血管。性能

研究網絡內部就比如醫生看病,關注的是你身體內的某個器官,以及這些器官之間的聯繫。

研究網絡和網絡之間的關係就比如人際交往,關注的是人這個完整的個體,而不關注器官,畢竟沒人要和器官交朋友。

1.2. 網絡的網絡(互連網/internet)

網絡的網絡就比如「人際關係網」:

智能手機把人們鏈接在一塊兒,構成了人際關係網。把人換成網絡,智能手機換成路由器,「人際關係網」便是「網絡的網絡」。

能夠暫時把路由器看作一臺特殊的計算機。打個比方:

結點比做鏈路比做高速公路網絡比做傳送的數據比做客運汽車路由器比做省際高速公路收費站互連網比做

網絡之間經過路由器鏈接起來構成一個範圍更大的計算機網絡,這種網絡就是「網絡的網絡」,可稱之爲互連網(internet)。

圖1-4中一朵雲表明了一個網絡,該網絡鏈接了多臺計算機。圖1-6中多朵藍色的雲(網絡)鏈接在一塊兒構成了一朵更大的灰色的雲(互連網)。由這兩張圖,咱們能夠得出:計算機鏈接在一塊兒構成網絡,網絡經過路由器鏈接在一塊兒構成互連網。

1.3. 互聯網(Internet)

互聯網(Internet) 是全球最大、最重要的計算機網絡。若是你真正瞭解了互聯網,那麼你也能夠說本身真正瞭解計算機網絡。

那什麼是互聯網呢?

咱們天天都會上網,微信聊天、王者榮耀、看視頻、看博客等等。咱們上的這個「網」指的就是互聯網。咱們之因此可以一塊兒聊天、玩遊戲就是由於你們都被鏈接在了同一張「網」上了。這是互聯網給咱們用戶的第一個體驗:全部上網的人被無形地連在一塊兒了,即連通。各位如今可以看到我寫的博客文章,這是互聯網給咱們用戶的第二個體驗:共享資源,若是沒互聯網,你們就看不到個人文章了。

互聯網的兩個特性:連通性、資源共享。

internetInternet要作區分:

  1. internet泛指多個計算機網絡鏈接在一塊兒而造成的計算機網絡。
  2. Internet特指互聯網,即如今全球最大、最重要的那個計算機網絡,咱們平時上的那個是Internet,而不是internet。

互聯網發展至今,鏈接在其中的已經不只僅只是咱們日常使用的「電腦」了,諸如智能手機、智能手環、智能電器能均可以接入互聯網中。這些設備咱們能夠都稱之爲主機端系統

圖1-7強調了主機接入網絡中,而忽略網絡中的路由器或鏈路。

那主機是怎樣接入互聯網中的呢?

這就得先說說目前的互聯網的基礎結構了。如今的互聯網是多層次ISP結構的互聯網

ISP即互聯網服務提供商(Internet Service Provider),好比中國移動。ISP從互聯網管理機構中申請到許多IP地址,同時也擁有通訊鏈路和路由器等設備。咱們普通用戶只需向ISP交納費用,就可得到一個IP地址,而後就能夠上網了(就是交網費上網,我家是交給中國移動)。

舉個例子,IP地址就像車牌同樣,你只買了個車,可是沒車牌是上不了路的。ISP就負責發車牌、修公路、修收費站。

IP地址通過了互聯網管理機構、ISP、最後纔到用戶手中,而且互聯網管理機構分給ISP的是一批IP地址。

這個模式相似於生產廠家、經銷商、消費者。

多層次是指根據提供服務的覆蓋面積大小以及擁有的IP地址數目的不一樣,ISP能夠分爲不一樣層次的ISP:主幹ISP、地區ISP、本地ISP。

主幹ISP服務面積最大(一般能覆蓋全國),有幾個專門的公司建立和維持。地區ISP次之,地區ISP之間可經過主幹ISP鏈接起來。地區ISP則直接給用戶提供服務。

相似於國家、省、市,用戶則相似於市民。

2. 互聯網的組成

互聯網是全球最大的、覆蓋全球的計算機網絡。如此之大的網絡,從工做方式上看能夠分爲兩部分:邊緣部分核心部分

2.1. 邊緣部分

邊緣部分由鏈接在互聯網上的主機組成,這部分由用戶直接使用,爲用戶提供數據通訊和資源共享的服務。

邊緣部分要利用核心部分提供的服務,才能爲用戶提供通訊和資源共享的服務。好比圖1-8中任意兩我的均可以利用面前的電腦進行通訊。

通訊的方式有兩種:客戶-服務器方式和對等鏈接方式。

一. 客戶-服務器方式

這種方式是目前互聯網上最經常使用的方式。網上的各類信息都存儲在服務器上,咱們須要某信息時就經過互聯網的核心部分提供的服務向服務器發送請求,將其檢索出來,而後服務器再發送給咱們的設備。

客戶是服務請求方,服務器是服務提供方。

客戶和服務器還具備如下特色:

  1. 客戶主動向服務器發送請求,服務器被動接受請求,這就要求服務器要一直運行。
  2. 客戶須要知道服務器的地址,服務器不須要知道客戶的地址。
  3. 客戶對硬件的要求不高(普通的電腦和智能手機便可),服務器對硬件要求較高。

二. 對等鏈接方式

即P2P(peer-to-peer),指兩臺主機在通訊時並不區分哪個是服務請求方,哪個是服務提供方。兩者能夠互相下載對方提供的內容。其實這種方式也是一種特殊的客戶-服務器方式,只不過兩者地位相等。

打個比方,客戶-服務器方式就至關於學生向老師請教問題,而P2P方式就至關於學生之間互相請教問題。

2.2. 核心部分

核心部分由大量網絡和鏈接這些網絡的路由器組成。核心部分爲邊緣部分提供了服務——連通性和交換,因此邊緣部分中的主機纔可以進行數據通訊和資源共享。核心部分要比邊緣部分複雜的多。

核心部分中的大量網絡提供了連通性,這不難理解。那交換是誰提供的?交換的是什麼?分組是什麼?怎麼交換分組?下面就簡單介紹一下這些問題。

Q1: 交換是誰提供的?

A1: 路由器

路由器是一種特殊的計算機,它的任務就是進行分組交換。

Q2: 交換的是什麼?分組是什麼?

A2: 交換的是分組

在網絡中,咱們想要傳輸的信息即報文(message),不是整個的傳輸出去,由於有的會比較長(好比這篇文章),因此一般會將其劃分一個個更小的數據段,可是這些數據塊中只有數據,它並不認識路,怎樣使它在複雜的網絡中不迷路呢?須要給它再加上一些必要的控制信息(首部),數據塊加上首部就構成了一個分組。

打個比方,一個公司要運100噸貨物,這麼多貨物一下確定運不完,因此要分開運,好比每一個集裝箱運10噸。可是這10噸貨物也不認識路,就須要給集裝箱加個貨車頭,貨車頭中有司機和地圖,因此能找到目的地。

100噸貨物就是咱們要發送的信息(報文),每一個集裝箱就是一個個劃分後的數據段,貨車頭就是首部,貨車頭加上集裝箱纔是一個完整的貨車,即分組。

Q3: 怎麼交換分組?

A3: 使用分組交換技術

舉個例子,咱們日常使用微信交流,兩人之間可能相隔十萬八千里,你想說的話怎麼會恰好到達對方的手機上?

這就是網絡核心部分最重要的功能——分組交換。

圖1-6中路由器把許多網絡鏈接在一塊兒構成了一個更大的網絡,互聯網中的大大小小的網絡更是不可勝數,並且通訊鏈路更是複雜多變。

你能夠打開中國地圖,看看上面的鐵路和公路,讓人眼花繚亂。互聯網中的狀況和這差很少。

路由器是實現分組交換的關鍵部件,路由器收到一個分組,會先暫時存下來,而後根據分組中的首部信息,爲其選擇一條合適的接口,將其轉發出去。分組交換使用了存儲轉發技術。

舉個西遊記中的師徒四人去取經的例子,分組交換就是「敢問路在何方」。

唐僧每到一個地方都會說借宿人家說:「貧僧是從東土大唐而來,去往西天拜佛求經的和尚」,別人一聽這句話,只要不是妖怪,天然會告訴他下一步該走哪。雖然可能會走彎路,或者被妖怪抓,可是整體上確定會離西天愈來愈近,最終到達。

在上面的情境中,「東土大唐」就是源地址,「西天」就是目的地址,這兩個信息存在了分組的首部中,因此分組才能在網絡中傳送。「唐僧四人」就是分組,「借宿人家」就是路由器,分組交換就是你問路的過程,不過這種問路,路人不會告訴你全路線,只會告訴你下一步怎麼走。

3. 瞭解計算機網絡

3.1. 定義

上面介紹了好幾種網,蜘蛛網、人際關係網、計算機網絡、網絡的網絡(互連網 / internet)、互聯網(Internet)。除了前兩種,其他都是計算機網絡。可是說了這麼多,好像也沒精準說清楚計算機網絡究竟是什麼?能不能像數學定理同樣,給出一個精準的定義?

我認爲如今大可沒必要。(定義在相關書籍和網上都能檢索到)

舉個例子來講,在你第一次有想學計網這個念頭的時候,首先作的(幾乎是條件反射般的)是否是上網查一查什麼是計算機網絡?這說明計算機網絡已經深刻了咱們的生活,而且咱們可以很熟練地使用它。因此我認爲初學計網時,沒必要死扣它的定義。

如今做爲初學者的咱們只須要提到計算機網絡,就聯想到一張網,而後有許多計算機鏈接在一塊兒就能夠了,如圖1-4和圖1-6。

3.2. 分類

一. 按照網絡的做用範圍分類:

  1. 廣域網WAN(Wide Area Network):做用範圍爲幾十到幾千千米,能長距離地運送數據。
  2. 城域網MAN(Metropolitan Area Network):做用範圍爲5到50千米。
  3. 局域網LAN(Local Area Network):做用範圍較小,學校和公司常用。
  4. 我的區域網(Personal Area Network):做用範圍很小,10m左右,我的工做使用。

二. 按照網絡的使用者分類

  1. 公用網(public network):電信公司出資建造的大型網絡,普通用戶交納費用便可使用。
  2. 專用網(private network):某個單位本身建造的網絡,不對本單位外的人提供使用。

3.3. 性能指標

以人爲例,要衡量一我的健康或強壯與否,須要制定各類指標,好比身高體重、血壓、血糖、肺活量等來定量地衡量。計算機網絡一樣如此,即性能指標。

在介紹計算機網絡的幾種性能指標前,先再看一遍前面的那個比喻:

結點比做鏈路比做高速公路網絡比做傳送的數據比做客運汽車路由器比做省際高速公路收費站互連網比做

一. 速率

速率指的是數據的傳送速率,即每秒鐘傳送多少位信息,也叫數據率。由於不管傳送的是什麼數據,都得轉化爲二進制數字,因此單位是bit/s或b/s或bps。

注意這裏是小寫的b,而日常咱們下載東西時會看到的MB/s、KB/s中的B是大寫的。小寫的指位(bit),大寫的指字節(Byte),1Byte = 8 bit。

二. 帶寬

在計算機網絡中,帶寬用來表示網絡中某通道傳送數據的能力。也即單位時間內網絡中某信道所能經過的最高數據率,所以單位也爲bit/s。

因此帶寬越寬,所能傳送的最高數據率也越高。

帶寬相似於高速公路的路寬,路越寬,單位時間內能經過的車越多。

三. 吞吐量

吞吐量表示在單位時間內經過某個網絡的實際數據量。

四. 時延

時延指數據從網絡的一端傳送到另外一端所需的時間,由多個部分組成。

時延能夠比做你坐客運汽車從出發地到目的地的總時間。

(1)發送時延:是主機或路由器發送數據幀所須要的的時間。

發送時延 = 數據幀長度(bit)/ 發送速率(bit/s)

發送時延能夠比做你的客運汽車出收費站的時間。

(2)傳播時延:指電磁波在信道中傳播必定的距離須要花費的時間。

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

傳播時延能夠比做客運汽車(假設速度像電磁波同樣恆定)在高速公路上花費的時間。

(3)處理時延:主機或路由器收到分組後處理分組花費的時間。

處理時延能夠比做客運汽車通過收費站時繳費所花的時間。

(4)排隊時延:分組通過路由器後須要排隊等待處理的時間和處理完後排隊等待離開的時間

排隊時延能夠比做進入收費站後排隊等待繳費的時間。若是不須要排隊,則排隊時延爲0.

因此,總時延 = 發送時延 + 傳播時延 + 處理時延 + 排隊時延。數據在網絡中的時延由這四部分組成,不能只考慮一部分。

五. 時延帶寬積

時延帶寬積是傳播時延帶寬的乘積。

如上圖,用傳播時延表示長方形的長,帶寬表示寬,則時延帶寬積便是面積。

六. 往返時間RTT

往返時間即兩個結點雙向交互一次所需的時間。

相似於你買了個往返票,作客運汽車從車站出發到目的地一趟,再回到車站的總時間。

七. 利用率

分爲信道利用率和網絡利用率兩種。

  1. 信道利用率:指某信道有百分之幾的時間是被利用的(有數據經過)。徹底空閒的的信道的信道利用率爲0。
  2. 網絡利用率:指全網絡的信道利用率的加權平均值。

信道或網絡的利用率太高會產生很是大的時延,因此某些較大主幹網ISP一般控制信道利用率不能超過50%,若是超過就要準備擴容,增大線路帶寬。

很好理解,路上車多了,就容易堵車,要麼把路上的車變少,要麼把路修的寬一些。

3.4. 非性能指標

若是把性能指標比做氪金遊戲中玩家的技術水平的高低,那非性能指標就至關於玩家的錢包厚度。人民幣玩家可以彌補一些技術上的差距,若是該玩家技術又棒,錢包又鼓,那稱霸遊戲便再也不話下。

非性能指標有:費用、質量、標準化、可靠性、可擴展性和可升級性、易於管理和維護。這些都是見名知意的名詞,不用再解釋了。

4. 計算機網絡體系結構

4.1. 分層

觀察咱們的現實社會,會發現有許多事物都有其體系結構,好比社會、學校、醫院、車站、人等等,這些都是複雜的集合體,正是有了體系結構,才使其可以正確運做。

以車站爲例,車站客流量大,可是人們進去以後可以保持有序,該幹什麼就幹什麼,不會像無頭蒼蠅同樣亂撞。由於車站劃分好了層次,賣票窗口、安檢門、候車區、上車區、出站門......井井有序。

從下向上順次通過,乘客能在每一層完成部分動做,下層爲上層提供服務,但層次之間不相互干擾。好比咱們撤銷賣票窗口,改成取票機,並不影響其餘層次,咱們只要求過了安檢門能去取票機取票,取完票的能去候車區候車。如此一來,就把乘車這個「大問題」劃分紅了若干小問題,這些小問題比較好解決。

計算機網絡也是如此,對其體系結構進行劃分層次。這樣就能像圖1-12那樣循序漸進的進行工做。對計算機網絡進行分層能把這個複雜大問題,也能分紅若干局部小問題,便於研究和處理。

4.2. 協議分層

咱們使用互聯網最常作的事就是通訊,那兩個通訊實體(好比兩臺電腦)之間進行通訊,是隨便發送信息就能接收到嗎?確定不是。

舉個例子,甲乙的平常對話(乙不會英語):

甲:吃了嗎?

乙:吃了。

甲:What a nice day!

乙:你在說什麼?????

同一種意思能夠用多種語言來表達,但甲和乙不用相同的語言是沒法交流的,協議就比如語言

互聯網中,涉及的兩個通訊實體受協議的約束,而且協議無處不在。協議定義了在兩個或多個通訊實體之間交換的報文的格式和 順序,以及報文發送或接受報文或其餘事件中所採起的動做。

前面的車站已經進行分層了,井井有理。如今對協議進行分層(這裏只介紹五層協議模型)。

  1. 應用層:定義應用進程之間的通訊和交互的規則。
  2. 運輸層:負責向兩臺主機中進程之間的通訊提供通用的數據傳輸服務。
  3. 網絡層:負責爲分組交換網上的不一樣主機提供通訊服務、路由選擇、IP地址管理。
  4. 數據鏈路層:負責在互連設備之間傳遞數據。
  5. 物理層:考慮怎樣才能在鏈接各類計算機的傳輸媒體上傳輸數據比特流,而不是具體的傳輸媒體。

4.3. 實體、服務、協議、協議訪問點

一. 實體

實體就是用於發送和接收信息的硬件或軟件進程。如圖1-13中的用戶電腦中的軟件進程。

二. 服務

在分層體系中,每層都有各自的功能,下層會爲上層提供服務,但下層提供的服務並非其所有功能。只有上層看的見的功能纔算是下層提供的服務。

打個比方,員工會爲領導定時彙報工做,但彙報內容是有限的、精簡的。若是你把每日三餐,吃喝拉撒等雞毛蒜皮的小事都彙報了,那會被開的。

三. 協議

協議是控制兩個(多個)對等實體進行通訊的規則的集合。在協議的控制下,兩個對等實體間的通訊使得本層可以向上一層提供服務。要實現本層協議,還要使用下面一層所提供的服務。

打個比方,員工之間須要交流進度,共同協做才能完成工做,而後向領導彙報工做。而領導須要下屬彙報的工做材料才能完成領導的工做。

四. 服務訪問點

上層使用下層提供的服務必須經過與下層交換一些命令——服務原語。

在同一系統中,相鄰兩層的實體進行交互的地方稱爲服務訪問點(Service Access Point,SAP),它是抽象的,其實是一個邏輯接口。

圖1-14畫出了上面四個名詞的關係:

能夠看出:協議是不一樣系統對等實體間的,是水平方向的;服務是同一系統上下層之間的,是垂直方向的。

本文只是介紹了一些入門基本概念,並未真正深刻。好比路由器、分組交換、協議、五層模型等,都只是稍微提一下。由於真正想要了解這些,隻言片語確定不夠,好比對五層模型的理解,可能須要你把這五層都看了一篇,才能在內心創建真正的五層模型。

做者簡介

我是「行小觀」,我會在公衆號『行人觀學』中持續更新「Java」、「Go」、「數據結構和算法」、「計算機基礎」等相關文章。

本文章屬於系列文章「趣解計算機網絡」。

歡迎關注,咱們一塊兒踏上編程的行程。

若有錯誤,還請指正。

相關文章
相關標籤/搜索