進入後互聯網時代,我們有必要了解一下互聯網是怎麼互聯的

在這個世界上有倆種人,一種是天天趴在網上,跟計算機網絡親密接觸的人,另一種是天外飛仙,不食人間煙火,自然也不使用互聯網的人😀。

所以,無論你是互聯網世界的新用戶,或者,你已經投身互聯網工作很長時間了,亦或是你每天喜歡使用計算機和網絡的網民,你都應該瞭解基本的網絡知識,特別是計算機網絡。

如果你維護過服務器,或者是一個服務端的開發者,你瞭解遠程的用戶是如何連接到你的服務器或者訪問到你的服務的嗎?
發現大部分人的回答是模糊的,有的根本不明就理,所以,本文就儘可能多的來聊一聊,有關這類計算機網絡與網絡組件的基本知識。

我們先來給計算機網絡下個定義:

計算機網絡可以被定義爲,藉助於數據傳輸介質(例如電纜、光纖等),連接貫穿世界各地的計算機,並交換網絡數據包。

 

 

 

這個圖中包含了基本的網絡組成結構,和常見的網絡設施,以及一些網絡術語,例如:因特網Internet、互聯網服務提供商ISPs、路由器Router等,我們接下來,看一下這些組件是如何工作的,以及之間的交互關係。

計算機網絡常用術語

網絡節點

節點在計算機網絡中的意思是各種計算設備,例如個人PC、移動手機、平板電腦、服務器等等,可用通過網絡與類似的設備進行數據包的交換。

互聯網協議

任何溝通都需要一致的溝通基礎,我們通常稱爲 協議,例如人類溝通的協議,包括各種地方語言、手語、表情等,都是需要事先約定好的規則。

而互聯網是一個遠距離傳輸信息的協議,在傳輸之前,需要先知道對方的位置。
比如,你考慮在你女朋友過生日的時候,送她一份禮物,你需要先知道把禮物送到哪裏,她的家庭或工作地址。

如何給網絡節點設置地址呢?
任何技術都不是憑空產生的,必須踩着前人的肩膀,參考現有技術的啓發,演變而來的。
早期計算機科學家們,想通過唯一的ID,來識別網絡中在計算機,他們想到了當今的電話號碼(telephone number),由此,也想出了一個IP(Internet Protocol)的概念。

這個IP是計算設備在計算機網絡中的地址,從技術的角度來講,它是一個用於標識這個網絡設備的32位數字,所有的網絡設備都基於它們的IP地址往返通信。

例如你上傳一個文件到一個網站,或者從一個網站下載一個文件。在網絡通信中,文件會被轉化成網絡中若干個數據包,每個 “包” 含有網絡節點的目的地(ip和端口,服務端操作系統收到這個包以後,進行按序拼接,之後交給監聽這個端口的進程,也就是一個程序)。

IP地址分爲倆個類別:

  • IPv4,由4組數字組成,二進制每組1kb,8bits,所以共32bits來定義一個IP地址,例如 104.244.42.129 這個ip地址是 twitter.com 的全球唯一地址,它一般是穩定不變的;
  • IPv6,IPv6地址是繼IPv4之後,由於網絡設備大量涌現,IPv4出現不夠用的情況,而定義的一個新的網絡地址協議,基於8個16進制數,用“:”來分割,例如:2001:0cb8:85a3:0000:0000:8a2e:0370:7334,由於還不太穩定,目前沒有被廣泛使用,出於穩定性的考慮,目前互聯網主要還是使用IPv4協議。

IPv4,爲了方便治理,對它進行了分類,包括Class A, B, C, D, E等五類,每個類別可分配不同數量的IP地址,使得路由表能夠做的非常小, 路由器能夠快速地處理網絡轉發,根據網絡規模需求(例如設備的數量),採用不同的IP分類,得到更好的網絡性能。

 

 

 

 


32位IP地址,用第一組數字來區分IP所屬種類,更多關於IP分類的信息請自行科普“IP分類”,其實就是對所有的ip地址進行了人爲分段

 

倆種類型的IPv4地址:

  • 靜態, 隨着時間的變化,這些設備的地址保持不變。例如一些遠程服務器的ip地址通常是的固定不變的,確保用戶每次都能訪問到它。
  • 動態,一般來說,這些ip在網絡中通常分配給普通計算機使用,例如在本地局域網中,內網設備的ip是由所在路由器來動態分配的,設備每次接入或者路由器從新啓動,這些設備的ip地址都有可能發生變化。這個是DHCP(Dynamic Host Configuration Protocol)協議,一般路由器會集成這個服務。

需要注意的一點,每個設備都有可能同時有幾個ip地址,例如一臺計算機同時連接了有線和無線網絡,那它就有倆個ip地址。

路由器

 

 

顧名思義,路由器是一個物理的網絡組件,負責轉發數據包到指定的目的網絡設備。網絡中的設備本身是不知道自己通信的對方的具體位置,由路由器根據路由器自身維護的路由表,加上數據包中的目的設備地址來轉發數據包的請求。

Routing table:
Destination  Gateway     Genmask        Flags Metric Refs Iface
default      192.168.0.1 0.0.0.0        UG    1024   233  eth0
192.168.0.0  *           255.255.255.0  UC    0      0    wlan0
192.168.0.0  *           255.255.255.0  UH    0      2    eth0
  • Destination,目地設備的ip地址;

  • Gateway,網關,網絡與網絡連接的中間設備,例如倆臺路由器的連接,然而,倆臺路由器不能直接連接,需要藉助另一臺路由器,這臺路由器就是網關。

  • 子網掩碼(Genmask/Subnet mask),僅僅是爲了劃分網絡,子網掩碼結合ip地址可以分割成相對較小的ip邏輯區域,便於管理。

  • Flags,接入網絡設備的標記,例如UG,U表示是路由器,G表示是網關。

  • Iface(網絡接口),接入網絡的網絡類型,例如你的設備接入的Wifi,那這個網絡接口就是“wlan”,如果接入的是有線LAN,那網絡接口iface就是“eth”。

以上主要是網絡基礎層面的內容,主要包括ip地址和路由器倆大網絡核心技術,如何識別設備,以及設備彼此之間如何通信,接下來咱們看看如何實現更高層的技術應用。

NAT

 

 

 

Network Address Translation ,網絡地址轉換,爲了讓有限的公有ip連接更多網絡設備,就需要用到NAT,網絡地址轉換,這個功能通常也是由路由器來實現。路由器一頭與Internet服務商獲取一個公網ip,另一頭掛了很多網絡設備,路由器爲每一個設備分配一個內部私有的ip地址,只有這個路由器內部的設備之間可見,之外是無法與這些設備直接連接,需要通過路由器來轉發信號,這就是NAT技術。
例如,你在家裏通過電腦訪問Twitter,網絡連接大概是這樣的,電腦隨機選擇一個端口,去連接路由器,路由器隨機選擇一個端口去連接Twitter服務器,如下:

Private IP   |PrivatePort |PublicIP |PublicPort |Remote |RemotePort
------------- ------------ --------- ----------- ------- -----------
192.168.1.100 | 37641 | 104.244.42.129 | 59273 | 104.244.42.129 | 80

Private IP 和 PrivatePort 是你電腦的ip和端口,PublicIP 和 PublicPort 是路由器的公有ip和路由器的端口,而 Remote 和 RemotePort 是Twitter服務器的ip和端口。

DHCP

DHCP,Dynamic Host Configuration Protocol,
Internet網絡服務商和路由器都有這個功能,爲網絡設備動態分配地址,例如你的電腦第一次接入路由器的時候,可有手動的設置一個靜態的ip地址,也可有由路由器隨機分配一個ip地址,當然,路由器與Internet服務商的網絡連接的時候,也可有動態獲取一個ip地址。

DNS

DNS,Domain Name System/Server,
我們現在都知道,所有的網絡設備都有ip地址,無論是公有ip還是私有ip,通過這個ip就可以訪問響應的網絡設備或者網絡服務,例如,我們訪問 104.244.42.129 這個地址的時候就能打開Twitter的網站,因爲這是Twitter服務器的ip地址。

但是,這個地址沒有可解釋性,就是幾個隨機的數字,人類很難記憶,或者可被記住的數量非常有線,所有,DNS就應用而生了,其實就是一個翻譯的過程,將ip地址和人類容易理解的文字相互轉換,這些文字叫做 域名,例如google.com, twitter.com等,我們訪問這些地址的時候,DNS會將其對應的ip地址找到,然後通過ip去訪問對應的服務器。

 

 

 

 

DNS是怎麼工作的?

  1. DNS是由Internet網絡服務商來管理和維護的;
  2. 在自己的電腦或者路由器上配置DNS服務的地址;
  3. 當我們在瀏覽器敲入一個地址的時候,瀏覽器會向DNS服務商詢問這個域名對應的ip地址,如果這個DNS服務商沒有找到,就會向上級詢問,直到對頂層,如果還沒有找到,就返回域名無效的信息。

域名的結構:

 

 

 

 

包括協議,域名名字,後綴等。

互聯網服務提供商(ISPs)

注意,Internet 和 internet 不是同一個東西,
internet是互聯網,泛指所有可以互聯互通的網絡,而Internet是一個具體的互聯網,叫因特網,就好比 人 和 黑人、白人、男人、女人的區別,一個是概念,一個是具象的東西。

Internet是通過TCP/IP實現的internet,當然還有基於其他協議的internet,而,目前最大,應用範圍最廣的internet就是Internet(因特網)。

而,ISPs(Internet Service Providers)就是Internet網絡服務提供商,可以讓人們很方便的接入Internet,實現與Internet互聯,據說Internet的前身是ARPAnet,美國高等研究計劃署開發的世界上第一個運營的網絡,是全球Internet的鼻祖。

Internet服務商是分層組織結構,包括1級、2級和3級,如下圖:

 

 

 

1級服務商是Internet的主要服務商,國際級別,這些互聯網服務提供商通過海底的大電纜相互連接,並且爲2級服務商提供接入的服務。

小結:

整個Internet的結構看起來如下圖:

 

 

 


可見路由器是網絡中非常重要的一個關鍵環節,對外通過公有ip相互通信,內部爲各個設備分配私有的ip地址,然後通過NAT協議實現網絡轉發,形成了局域網。
而不同的ISPs實現了上層網絡的跨區域連接,形成了廣域網,而最終形成的整張大網就是Internet,因特網,也就是我們天天都離不開的互聯網。

 

而,每個網絡設備之間到底是如何傳輸數據,經過了哪些網絡設備和轉換,以及各種網絡服務是如何,用什麼方式對外提供的,這就是開放式系統互聯通信模型(Open System Interconnection Reference Model,簡稱OSI),定義了不同設備互聯的標準,是設計和描述計算機網絡通信的基本框架。

 

 

 

 

參考

  1. https://medium.freecodecamp.org/computer-networks-and-how-to-actually-understand-them-c1401908172d
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章