現代社會,網絡已經和水,電一樣成爲我們的不可或缺的日常需求了,可以說網絡無處不在。作爲一名用戶,只需要學會如何使用網絡即可,而作爲一名計算機專業的學生,一名程序員有必要去深入瞭解其中原理。
因此,本章主要會介紹一些計算機網絡的基本定義,網絡的體系結構等,旨在學習計算機網絡的基本概念,爲接下來的網絡編程打下良好的基礎。
之前在大二在學過計算機網絡,但是時間太久了很多已經都忘了,因此這篇博客也是對我自己知識的一次梳理,主要參考用書是謝希仁的《計算機網絡》。
基礎知識
計算機網絡向用戶提供的最重要的功能就是兩個:
- 連通性:所謂連通是指網絡使得用戶能夠交換信息,好像用戶計算機是彼此相連的
- 共享性:資源可以共享,方便用戶
網絡可以看作是若干結點和連接這些結點的鏈路組成的,其中結點可以是計算機,集線器,路由器,交換機等。
網絡是把很多計算機聯繫起來,而因特網把很多網絡聯繫起來。因特網本身很複雜,但是從工作方式分爲以下兩大塊:
1. 關於邊緣部分:
邊緣部分利用核心部分提供的服務,使得衆多主機(端系統)能夠進行通信,交換或者共享信息。更深一層的理解,主機A和主機B通信,實際上是主機A的一個進程和主機B的一個進程通信。
端系統之間的通信一般可分爲兩大類,客戶-服務器(CS模型),對等(P2P)。
2. 關於核心部分:
核心部分十分複雜,因爲它要向邊緣的大量主機提供服務,使得任何一個主機都能向其他主機通信。
其中,起關鍵作用的就是路由器,它也是一種專用計算機,主要是實現分組交換,也就是轉發收到的分組。
分組優缺點:
計算機網絡的性能指標
- 速率
- 帶寬
- 吞吐量
- 時延
- 往返時間
具體可見謝希仁的《計算機網絡》第六版 p19
計算機網絡體系結構
主要有兩個模型,一個是OSI七層模型,一個TCP/IP四層模型。
這是在《計算機網絡》書中的一段文字和圖片,用來說明網絡體系結構,實際上,我們一般重點還是在TCP/IP四層協議上。
關於爲什麼要分層?書上也給出分層的好處: