一、互聯網的組成(教材版)
互聯網的拓撲結構非常復雜 ,並且在地理位置上覆蓋了全球,從工作方式上看,可以划分為兩大塊:
- 邊緣部分:這部分由所有連接在互聯網上的主機組成。這部分是用戶直接使用的,用來進行通信和資源共享。
- 核心部分:由大量網絡和連接這些網絡的路由器組成。這部分用來為邊緣部分提供服務。
注意:上述分類過於正規,有興趣深入的同學可以看大學計算機網絡的教材,請看我們下述的科普版本。
二、互聯網的組成(科普版)
說到互聯網大家都不陌生,利用互聯網打開電腦或手機看新聞、寫郵件、逛淘寶、聊微信、看抖音。現代人離開了手機離開了互聯網就好像和全世界斷了聯系,好像已經作為我們身體的一部分了。
區塊鏈號稱是是下一代互聯網。那么,到底什么是互聯網?
作為一個技術老兵,見證互聯網的發展,以下是個人對什么是互聯網的理解:談互聯網主要就是談互聯網的組成,也就是說明互聯網的基礎設施的組成。
互聯網的基礎設施非常龐大,包含硬件、軟件兩部分。下面我們先來看下當你打開瀏覽器,輸入一個網址比如 <www.taobao.com> ,幾秒鍾就看到淘寶首頁。這個一個簡單的動作,整個互聯網到底發送了什么?其實這是一個非常非常復雜的事情。下面是一個簡化的過程描述:
- 瀏覽器檢查是否有緩存過域名對應IP地址
- 如果沒有緩存的域名對應的IP,請求域名服務器解析成對應的IP地址(這個過程也非復雜,暫省了)
- 瀏覽器建立Socket連接,根據http協議組裝get 類型的http header,通過tcp/ip協議發送報文。
- tcp/ip協議會通過網絡層網卡(wifi或網線)發射信號到家庭里面的路由器,家里的路由器發送信號到電訊廠商的交換機(中間可能會經過很多次的路由)找到目標服務器,服務器也許托管在IDC機房,也許在阿里雲VPS,也許在國外。
- 機房里面會有大型交換機、機櫃、專業的精密空調,你要訪問的那台IP的服務器就在其中某個機櫃中。
- 在服務器接收到信號后,會根據tcp/ip協議解出http協議頭。根據get的請求決定需要返回的數據
- 在服務器端實際上根據業務還有很復雜的邏輯;服務器后面還有許多台服務器,到底指定那台服務器來處理請求,需要負載均衡設備來完成
- 要返回的數據是在緩存里面、還是在靜態文件中、還是在數據庫(如MySQL,Oracle)中
- 瀏覽器根據返回的數據,發現有一些靜態資源(如CSS,JS,圖片等)時有重新發起新的http請求,而這些靜態資源文件可能在CDN網絡中,請求靜態資源的整個過程需需要從第一步重新再走一遍,並且很可能中間經過的交換機,路由過程是不一樣的。
上面的過程是不是比你想象中的復雜呢?其實這只是非常非常簡化的過程。在上面的過程中,也許你已經發現了一些名詞,比如網卡,路由器,交換機,又比如tcp/ip,域名,http。這些其實就是互聯網設施中的一部分,有些也許你聽說過,有些也許沒有聽過。為了方便理解,筆者把互聯網的組成分成硬件、軟件兩類總結如下。
2.1 互聯網的硬件組成
硬件組成主要包括終端設備,主要是聯網的個人設備;組成家庭(企業)局域網、城域網、主干網的網絡設備;提供內容服務的服務主機設備等。
- 終端設備:電腦(pc,筆記本),移動設備(手機,pad),智能電視,智能家居
- 網絡設備:網卡,網線,水晶頭,路由器,家用交換機,防火牆設備,中繼器,橋接器
- 主機設備:IDC機房,機櫃,精密空調,負載均衡器,服務器,工作站,小型機、大型機
注意:應該沒有列全,想到后再補充
2.2 互聯網的軟件組成
互聯網的軟件非常多,不太好分類,大致分成網絡協議類,操作系統類,平台中間件類,應用類。
- 網絡協議類,比如互聯網的基礎協議tcp/ip協議
- 操作系統類,比如window,linux,macOS,android,iOS
- 平台中間件類:比如webServer,Nginx,Apache,Tomcat,MySQL等
- 應用類:比如瀏覽器,微信,郵箱,游戲等等。
注意:上述四種分類,上三種都是基於協議開發的應用程序,也就說作為開發的我們要想開發上三種應用程序,則必須得了解互聯網的基礎協議。