計算機網絡該怎么學?


一、計算機網絡體系結構

常見的教材第一章一上來就列出一大堆名詞解釋,還有特點啥的,看了就很頭疼。學的時候也花了不少力氣去記,但很快就忘了,說到底就是把知識孤立地記憶了。

所以首先從第一章開始就應該從整體出發,打造知識體系,搞清楚核心問題。先得知道計算機網絡是什么,用來干什么,然后明白為什么要分層。在構建基礎知識結構的時候,要把下面幾個問題給搞清楚,這樣理解后面就容易多了。

1.什么是計算機網絡?

簡單來說,計算機網絡就是由通信設備和線路連起來,進行傳數據,共享信息的網絡(系統)。

2.衡量計算機網絡性能的指標是什么?

衡量計算機網絡的性能,狹義上可以理解成網速快不快,一般從帶寬、時延、吞吐量、速率等來衡量。帶寬和吞吐量比較常見,帶寬就是傳輸的速度,每秒傳輸多少比特的數據。而吞吐量是單位時間內數據通過量。

3.計算機網絡為什么要分層?

計算機網絡本質之一就是來傳輸數據,但它的任務絕不這么簡單。還要看傳輸的數據能不能“發送”和“接收”,要怎么告訴其他主機看得懂你發的,萬一接收的主機處於關機狀態,又要怎么辦?

這就好像寫情書給喜歡的女孩子,雖然看起來很簡單,但是做起來難。內容該怎么寫,既要含蓄又不能太直白。寫好了之后該怎么給她,是當着面給,還是偷偷地塞她桌肚里。萬一被別人劫持了,你又該怎么辦?

面對復雜的數據傳輸任務,人們因此對計算機網絡分層。就是將龐大而復雜的問題,轉化成小而局部的問題,方便研究和處理。

4.七層協議,四層協議,五層協議又是怎么回事?

為了讓復雜問題簡單化,於是采用了分層這個辦法。不同分層是因為分的邏輯不同,但OSI和五層協議少見,TCP/IP才是重點。

目前廣泛使用的是TCP/IP四層協議,因為它簡單又實用。但一般TCP/IP協議只有最上面的三層,最下面的沒啥具體內容,但為了方便弄懂計算機網絡,我后面還是得從下往上,把這五層都講一下。

這里補充幾個概念:
協議:交換數據的規則
端口:相鄰兩層交換數據的口
服務:下層為緊鄰上層提供的功能

二、物理層

先從物理層開始,它比較簡單,主要看的是計算機之間怎么傳輸數據(單位比特流),而不是只有像雙絞線、同軸電纜或光纖這樣的傳輸媒介,它們只是物理層的一部分。

在謝希仁書中物理層開頭就給你一大塊數據通信的基礎知識,可能很多人就懵了。別擔心,這不是對大多數人來說不是重點,只是幫你理解物理層。

1.物理層下面的傳輸媒體有哪些?

傳輸媒體就是物理通路,就是我們常見的各種網線。分導引型和非導引型,常見的導引型傳輸媒體有雙絞線、同軸電纜和光纜。

2.什么是信道?

信道就是信息通道,也是傳送信息通過的媒介,它是單方向的也是看不見的。它不是電路,電路包含發送信道和接收信道。

信道和傳輸媒體的區別:
信道是看不到的,只是一種概念,而傳輸媒體看的到,就是那些實實在在的線
信道包含傳輸媒體和設備

3.幾種常見的信道復用技術是什么?

“復用”可以理解成是共用,采用這種技術是為了節省成本。原來是多條信道,現在合並成一條,節省空間和成本。常見的復用技術有頻分復用、時分復用和統計時分復用。

復用的示意圖

總結一下,物理層通過傳輸媒介來發送和接收信息,里面傳輸的數據本質就是二進制0和1。單向發送信息的通道叫信道,為了節約成本會采用信道復用技術,就是把原來多條信道合並成一條大信道。

三、數據鏈路層

數據鏈路層傳輸數據的單位是幀,這一層分兩種類型的信道。一對一主機連接的信道就是“點對點信道”,一對多連接的信道就是“廣播信道”。

1.什么是局域網?什么又是以太網?

局域網就是廣播信道的一種,常見的拓撲結構如下圖。隨着局域網的發展,出現了不同稱呼的局域網,比如以太網就是局域網的一種。但是以太網發展太快,以至於后來它成了“局域網”的同義詞。

局域網的拓撲

2.計算機和外部鏈接靠什么?

計算機和外部連接主要靠的是適配器,以前是裝在網卡里的,然后插在計算機里,現在是直接差在計算機里。

適配器里有 MAC 地址,這個地址指明了傳輸數據的目的地。MAC地址是物理地址,也是個身份標識,不會因為你把電腦從上海帶到北京就改變的。但是你更換一個適配器,那么地址就變了。

3.數據鏈路層怎么傳數據?

一般計算機網絡中傳輸的數據不是連續傳的,而是一整塊數據分割成一塊或一組,這一小塊數據就是分組(也叫IP數據報,這個在網絡層會詳細解釋)。組分是從網絡層傳來的,所以在數據鏈路層就要用數據鏈路層的方式來處理。

從網絡層傳輸數據到物理層

上面說到不同主機之間連接有兩大類,這兩大類有區別,但幾個基本特點是一致的:封裝成幀、透明傳輸、差錯檢測和流量控制。

數據鏈路層拿到網絡層傳來的分組,然后就要在數據前加上用ASCII表示的首部(SOH)和尾部(EOT)專門字符。

用幀首部和尾部封裝成幀

但也會出現傳的數據不是ASCII字符時,那么數據里會有SOH和EOT,這就要用透明傳輸的辦法了。簡單說就是數據里的SOH和EOT前加上轉義字符ESC,要是傳到網絡層,那就傳之前刪除這個轉義字符就好。

數據傳輸不可能不出錯,所以需要CRC(循環冗余檢驗)的檢錯技術,這就是差錯檢測。

數據傳輸有時候就像人說話一樣,正常對話應該是你一句,我一句。可是總有人會插嘴,打斷你。放到數據傳輸里,也有數據一起傳輸導致發生沖突的情況,所以就需要流量控制這個策略。

流量控制就兩種方式,一是“停止-等待流量控制”,另外一個是“滑動窗口流量控制”。第一個就像是你說一句話,我說一句話,這樣互不干擾,才會讓對話效率高。第二個就是發送方用一個窗口括住一組數據,同時接收方也有一個窗口來接收數據。對於接收方而言,只有放到窗口的數據才算是有效的,出去的就是無效的。

四、網絡層

網絡層傳輸單位是IP數據報,這一部分最重要的也就是這個IP和其他配套的協議,以及路由器輸出數據的過程。

1.什么是虛擬IP網?

網絡層主要提供的是將不同的網絡(異構)連接起來,比如TCP/IP體系就是在網絡層采用標准化協議。正是采用這種相同的網際協議(IP),或者說是相同的規則,才讓不一樣的主機連接一起。這就是虛擬IP網。

2.網絡層中的中繼器是什么?有什么用?

在互聯網中有中間設備,因為兩台主機之間不可能直接連接,所以需要中間設備連在一起,對於網絡層來說,中繼器是路由器。這可以理解成中間人,這就像你讓A帶句話給B,而A就是中間人。

不同層次有不同的中繼設備,物理層的是集線器,數據鏈路層的是網橋或交換機,網絡層是路由器,網絡層以上是網關。

在網絡層中路由器主要起着“選什么路”和“從哪轉發”的作用。“選什么路”靠的是算法來實現的,“從哪轉發”靠的是路由器將IP數據報從合適的端口發出去。

3.網絡層怎么傳輸數據?

網絡層中發數據,首先要有數據和地址。在網絡層傳輸的單位是IP數據報,前面加個首部(IP地址),然后就傳到數據鏈路層。這里順便說下IP地址和MAC地址的區別。IP地址是IP數據報的首部,MAC地址是MAC幀的首部。網絡層及其以上是用IP地址,數據鏈路層及其以下是硬件地址。

IP地址和硬件地址的區別

我們常見的IPv4,IPv6這樣的是IP地址的版本,對應的就是第4,第6版本。也有1,2,3,5版本,但是沒發布。IP地址是有限的,IPv4不夠用了,於是IPv6就發明了。

在解決IP地址不夠用的問題時,人們發明了子網掩碼。

現在有了數據和地址,但還不能發數據,因為還需要找出相對應的硬件地址。地址解析協議ARP就是來解決這個問題的。ARP就是解析出在數據鏈路層用的硬件地址,讓IP數據報通過去。

ARP協議的作用

由於傳輸數據存在效率低下和出錯的情況,於是人們在網際層用忘記控制報文協議ICMP來提高數據交付的機會。最常見的應用就是PING,在DOS系統里用PING測試兩台主機之間的連通性。

五、運輸層

運輸層傳輸單位是TCP報文,不同於網絡層呢個,運輸層的范圍比它更大,提供了主機進程之間的通信。在運輸層中最重要的是兩個協議:TCP 和 UDP。

運輸層和網絡層之間的區別

1.運輸層提供什么服務?

運輸層實現的是主機間進程的通信,它們按照相同的協議進行數據傳輸,而接收方在剝去報文首部后又可以把它交到目的進程中。

此外運輸層還要借助服務訪問點TSAP來傳送數據,這個服務訪問點類似IP地址,MAC地址,是傳輸的目的地。

2.TCP和UDP協議是什么?二者有什么區別?

這兩個都是運輸層的協議,分別是用戶數據報協議TCP和傳輸控制協議UDP。按照不同的協議傳輸的數據單位也是不一樣的,TCP協議傳輸數據的單位是TCP報文段,而UDP傳輸數據的協議是UDP用戶數據報。

TCP/IP體系中的運輸層協議

二者最大的區別就是 TCP 是可靠傳輸,傳輸前要鏈接,因此負載就大,還要進行數據的檢驗,流量控制等操作。而 UDP 是不可靠傳輸,傳輸前不需要連接,所以直接把數據傳過去。

3.運輸層怎么傳輸數據?

發送方發出字節流,TCP協議給它加上首部然后通過服務訪問點TSAP(類似端口)傳輸到下一層。從一台主機發送到另一台前要進行TCP3次握手,發送結束后4次揮手。然后接受方收到數據剝去首部,將字節流傳到進程里。

如果傳輸過程中出現擁塞情況,TCP會用4種算法來處理:慢開始,擁塞避免,快重傳和快恢復。

TCP面向字節流

六、應用層

應用層是離網民最近的一層網絡,常見操作就是輸入網址,發送郵件,發送文件,甚至登入QQ也是這一層在起作用。

1.什么是域名系統?

IP地址對人來說不好記,尤其是我們要訪問總打開的主機(服務器),比如某乎、某度、某寶,要我們自己一個一個數字輸入去訪問這就反人性。為了方便人們更好地訪問,於是發明了域名系統DNS就是來將IP地址轉化成主機名字。

“域”就是地域的意思,域名系統就是根據地區分配的主機名字。每個域名都由標號序列組成,各標號之間由“.”隔開。而且域名是有等級的,最右邊的級別最高。

實際工作中域名采用的是“域名解析”的方法,也就是把域名映射成IP地址,或者把IP地址映射成域名。

2.萬維網是怎么組成的?

首先得明白萬維網不是一種特殊的網絡,而是互聯網的一種服務,里面藏了各種各樣的信息。把它比作一個文檔,里面藏了文字,視頻,圖片等數據。

萬維網不是特殊的網絡結構,而局域網和廣域網是特殊的網絡結構。廣域網的范圍比局域網更大, 所以它兩常放在一起比較。后來以局域網中的以太網發展太快,以至於和局域網成了同義詞。
互聯網是很多計算機組成的超大網絡,從范圍上將是最大的。物聯網是萬物可連的網絡,現在的智家具就有物聯網的雛形,比如可以連上手機APP操作。

萬維網一般由資源統一定位符URL、超文本傳輸協議HTTP和超文本標記語言HTML組成。分別解決了用戶要訪問什么地址,根據什么規則訪問和訪問的大概內容是什么的問題。

萬維網的工作過程

3.超文本傳輸協議是怎么操作的?(輸入URL后發生了什么?)

一般我們都是通過在瀏覽器輸入 URL 訪問某個網站的,首先瀏覽器向域名系統DNS發送請求解析,DNS解析成IP地址。然后瀏覽器和服務器建立TCP連接,建立之后發送HTTP請求,服務器就把響應文件傳給瀏覽器。最后TCP釋放,而瀏覽器解釋響應的文件,將Web呈現給用戶。

萬維網的工作過程

七、總結

  • 避坑指南

計算機網絡本質就是一個傳數據的系統,為了讓傳輸簡單點,才實現分層解決問題的。

從上往下,用戶可以在應用層用QQ發消息,發郵件,傳文件,甚至是用瀏覽器訪問網站,傳的內容本質就是一個個的字節。

字節傳到傳輸層,傳輸層要依據規則(TCP/UDP協議)給字節前加上首部,做成TCP報文段或UDP數據報,最后通過接口傳到網絡層。

網絡層給這個數據加上首部做成IP數據報,然后依據網際協議IP找到發送的地點,也就是IP地址,最后通過接口傳到數據鏈路層。

在數據鏈路層接收的數據加上首部和尾部傳給物理層,物理層接收到后就在傳輸媒體上傳輸電磁波(0和1表示),最后找到接收的主機。接收的主機再層層剝離,最后以字節的形式出現在接收方的主機屏幕上。

我最初在學習計算機網絡的時候,也是和大多數人一樣,覺得抽象,看過就忘。然后就使勁地看,結果看得越多越難受。后來“松鼠病”犯了,找各種資料,資料滿滿一個盤,可自己什么都不知道。

后來看別人怎么學習,自己找到了問題,就是孤立地記憶了,腦中沒有知識大綱,各種知識混在一塊。為了打造基礎知識結構,我直接買了一本王道的計算機考研輔導,里面就把知識結構拎出來了,一目了然。快速刷完這個基礎知識結構,再把謝希仁的書看一看,基本也就沒問題了。

  • 書、視頻推薦

經典教材:謝希仁:《計算機網絡》和《計算機網絡:自頂向下》(這本書不難理解)

入門教材:《圖解TCP/IP》,《圖解HTTP》

哈工大計算機網絡和操作系統一直都是口碑不錯的視頻,這里面還包括了網絡編程,網絡安全,非常全面,強烈推薦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM