拉了300M的網,下載速度爲啥還是這麼慢?計算機基礎(五)之網絡層完結

大家好,我是後來,我會分享我在學習和工作中遇到的點滴,希望有機會我的某篇文章能夠對你有所幫助,所有的文章都會在公衆號首發,歡迎大家關注我的公衆號" 後來X大數據 ",感謝你的支持與認可。

今天買了一個顯示器已經到家了,用着確實爽歪歪。哈哈!得繼續寫文了,不能對不起它!

上一篇文章,我通過“警察叔叔是怎麼順着網線找到你的 這個話題,爲大家講了IP地址的虛擬性,以及ARP地址解析協議,最後還寫到了劃分子網和構造超網。其實核心知識就是 地址解析協議ARP,以及IP地址不同的劃分規則對應的如何轉發分組 ,當然也同時要理解爲什麼IP地址是虛擬的。這其實就是上一篇文章的核心內容,回看

那麼今天繼續把網絡層的知識講完,今天的知識和生活息息相關。這張圖再次溫習一下。必會!!!
在這裏插入圖片描述
同樣還是引出一個話題:拉了300M的網,下載速度爲啥還是這麼慢?
其實這個問題,我有2個想法

  1. 告訴你爲啥你的網速從來沒達到300M
  2. 說說路由器的工作原理,讓你更瞭解你的路由器(慢慢講)

同時今天的重點也先說一下:

  1. 爲啥網速這麼慢?
  2. 網際控制報文協議ICMP
  3. 路由選擇協議,重新認識你家的路由器
  4. IPv6
  5. IP多播
  6. 虛擬專用網VPN和網絡地址轉換NAT

拉了300M的網,下載速度爲啥還是這麼慢?

其實這個問題,就是網絡商和你玩文字遊戲?
我們來看看宣傳頁
在這裏插入圖片描述
然而我們下載的速度是這樣的:
在這裏插入圖片描述
那麼這個大小寫的b差了多少呢?
在計算機世界裏,1個字節=8個比特,所以1B=8b
這麼一換算,發現300Mb=37.5MB

也就是說你的下載網速理想峯值是37.5MB/s,這是在絕對理想的條件下進行的,所有的傳輸過程中沒有損耗,但是現實生活中是這樣的嗎?當然不是,經過一些博主多次驗證,一般300M的網下載速度一般能達到30MB就很不錯了。

如果你多臺電腦使用,並且還有一些無線設備連接,那麼**這些所有的設備共享這個帶寬。**所以網速自然比你想的要慢。

但是請不要忽略路由器的作用!!!
你的路由器是不是隻有百兆端口?
你的網線是不是隻能傳輸百兆?

如果是的話,那剩下的200M就被浪費掉了。

說完這個,我們等下接着解決路由器的核心工作原理問題。

你在PING啥?

不少學過計算機的朋友都應該知道這麼個命令,在命令行“ping qq.com”來檢測自己的是不是有網,有時候是內網,ping一下集羣的其他機器,看這些機器通不通,“ping 192.168.X.X”,但是問題是PING的這個命令是怎麼實現的?
在這裏插入圖片描述
它的原理其實是網際控制報文協議ICMP。PING使用了ICMP回送請求與回送回答報文。PING是應用層直接使用網絡層ICMP的一個例子。它沒有通過運輸層的TCP或UDP。

那麼我們來大致介紹下ICMP的原理:

我們之前也說了,IP數據報的傳輸在網絡層是不可靠的,所以在把ICMP報文裝在IP數據報中,發送出去。相當於數據報中有個監視器。
它的格式是下面這樣的:
在這裏插入圖片描述
而ICMP的主要功能包括:確認IP包是否成功送達目標地址,通知在發送過程當中IP包被廢棄的具體原因,改善網絡設置等。有了這些功能以後,就可以獲得網絡是否正常、設置是否有誤以及設備有何異常等信息,從而便於進行網絡上的問題診斷
在這裏插入圖片描述
於是ICMP報文就分爲2類:

  1. 通知出錯原因的錯誤消息(ICMP差錯報告報文)
  2. 用於診斷的查詢消息(ICMP詢問報文)
    在這裏插入圖片描述
    所以ICMP協議的目的:更加有效的轉發IP數據報和提高成功交付的機會

關於ICMP協議大家瞭解到這麼多就可以了,再具體一點的知識有興趣的可以自行百度。

但是ICMP現在很多時候爲了安全考慮,有時會禁用。下圖就是黑客一種常用的手段。
在這裏插入圖片描述

路由器的祕密——路由選擇協議

路由器的構成

其實吧,路由器也是個計算機,只不過它是一種具有多個輸入端口和多個輸出端口的專用計算機,其任務是轉發分組。

我們在計算機網絡開始的時候就提到:互聯網=網絡的網絡,而網絡與網絡之間是通過路由器連接的

我們在上一篇文章中提到過轉發分組,這次換句話說:網絡層的數據單元——IP數據包要能夠正確到達目的主機,經過路由器時,路由器根據數據包中的目的主機的IP地址與路由控制表的比較得出下一個應該接收的路由器,這就是上一篇文章中提到的轉發分組。

現在的問題就是:路由表已經有了,用哪種算法來獲得路由表中的需要的那個項目?

這個路由表有多大呢?一般的路由表都有10萬條左右的路由項,告訴路由器更多,所以要想快速轉發分組,我們希望通過這個算法儘可能最優,減少路由這邊的時延。

於是路由算法分爲了2大類:

  1. 靜態路由選擇策略=純手工,管理員自行設定
  2. 動態路由選擇策略=自動更新,適應網絡狀態的變化,開銷大

結果顯而易見,目前我們大多使用的都是動態路由選擇策略,那麼動態路由選擇策略是個什麼情況呢?就是說:路由器會給相鄰的路由器發送自己已知的網絡連接信息,那麼到最後整個網絡的路由控制表就製作完成了。

隨着IP網絡的發展,想要對所有的網絡統一管理是不可能的事,所以爲了更好的管理,就把互聯網劃分爲許多較小的自治系統,記爲AS。比如以企業爲單位,內部使用內網,有些網址只能在公司網訪問。所以就有了下面2種路由協議:

  1. 內部網關協議IGP,使用多的如:RIP協議、OSPF協議
  2. 外部網關協議EGP,使用多的是:BGP-4

那麼下面大致介紹下這幾種協議:

內部網關協議RIP

RIP屬於距離向量型的路由協議,它指的是根據距離和方向決定目標網絡或目標主機位置的一種方法。
RIP將路由控制信息定期(30秒一次)向全網廣播,如果沒有收到路由控制信息,最多重試5次,如果都沒收到,那麼連接就會被斷開。
在這裏插入圖片描述
還記得上面PING的那個案例麼?
在這裏插入圖片描述
看到最後的TTL=52了麼,相當於我的主機經過52個路由器就到了qq的這個服務器。

RIP基於距離向量算法決定路徑。距離(Metrics)的單位爲“跳數”。跳數是指所經過的路由器的個數。 RIP希望儘可能少通過路由器將數據包轉發到目標IP地址,根據距離向量生成距離向量表,再 抽出較小的路由生成最終的路由控制表。
在這裏插入圖片描述
這樣的話,每一個路由器到每一個目的網絡的路由都是最短的。

內部網關協議OSPF

它主要是分佈式的鏈路狀態協議,而不是像RIP一樣是距離向量協議。

  1. 向本自治系統中所有路由器發送消息,稱爲洪泛法
  2. 發送的信息就是與本路由器相鄰的所有路由器的鏈路狀態,相當於“到所有網絡的距離和下一跳路由器”
  3. 只有當鏈路狀態發生變化,路由器纔會發送此消息。而不是和RIP一樣,30秒一次!
    在這裏插入圖片描述
    最後所有的路由器會建立一個完整的鏈路狀態數據庫,相當於全網的拓撲結構圖,而且這個圖在全網範圍內是唯一的。
    在這裏插入圖片描述
    但是互聯網實在是太大了,如果把所有的路由器都匯成一張拓撲圖,那路由表早就不知道爆了多少次了。
    於是就對一個自治系統劃分爲若干個更小的範圍,叫做區域,每個區域的路由器不超過200個。
    在這裏插入圖片描述

外部網關協議BGP

上面的兩種,只是在管理自治系統內部的路由控制,但是BGP則需要兼顧整個互聯網進行路由控制。
在這裏插入圖片描述
上面講完了路由器的知識,我們再來聊聊目前特別火的IPv6

IPv6

我們在之前的文章中提到過,IPv4的IP地址在2011年4月就宣佈耗盡了,而隨着互聯網的發展,之前設計IPv6也逐漸開始使用。

IPv6與IPv4最大的區別就是有了更大的地址空間,由之前的32位擴展到128位,可想而知,IP地址理論上最多有2的128次方。

那IPv6會不會有一天被用完呢?這麼來說吧,在IPv6中,每個地址佔128位,地址空間大於3.4×10的38次方。如果整個地球表面(包括陸地和水面)都覆蓋着計算機,那麼IPv6允許每平方米擁有7×10的23方個地址。如果地址分配速率是每微秒分配100萬個地址,則需要10的19次方 年的時間才能將所有可能的地址分配完畢。可見在想象到的將來,IPv6的地址空間是不可能用完的。

那麼我們來看一下IPv6的格式:

  1. 用二進制表示:
    在這裏插入圖片描述
    16*8=128位
  2. 16進製表示:
    FEDC:BA98:7654:3210:FEDC:BA98:7654:3210

那大家明顯發現,這麼寫肯定很不爽,而且不符合我們平時的書寫習慣,於是就有了零壓縮,也就是如果有多個連續的0可以用一對冒號所取代。但一般的還是很複雜。比如我電腦的截圖如下:
在這裏插入圖片描述
好了,這個書寫方式就不討論了,
只要記住,冒號代表的是分隔的每個值是16位,點代表的是8位,如下:
在這裏插入圖片描述
在這裏插入圖片描述

IPv4向IPv6的過渡

大家也應該注意到了,目前不少大廠的app進入頁面都提示已經支持IPv6了,那IPv4過渡IPv6階段,又沒有一個具體的期限說必須哪天之前都過渡完,也不現實,那麼過渡階段這個分組怎麼轉發呢?這中間也肯定需要兩種協議之間的轉換。

  1. 雙協議棧
  2. 隧道技術

雙協議棧

要求雙協議的主機或路由去既能夠和IPv6的系統通信,也能夠和IPv4的系統通信,那麼這個主機怎麼知道目的主機採用哪種協議呢?它肯定不知道啊,所以它根據域名系統DNS來查詢。DNS返回的是IPv6就用IPv6地址。以此類推。

下面這種情況是特別常見的情況,就是中間有一段網絡是IPv4怎麼辦?
B 把IPv6數據報首部轉換位IPv4數據報首部再發給C,傳遞到E後,E再恢復位IPv6。但是IPv6中的有些字段是無法恢復的,這種損失是首部轉換方法不可避免的。
在這裏插入圖片描述

隧道技術

這個技術簡單說就是把IPv6在包裝一層爲IPv4,這樣的話也能正常傳輸,到雙協議棧的時候,再把外面這一層去掉,傳輸IPv6。必須把IPv4首部的協議字段的值設置爲41,表示數據報的數據部分是IPv6數據報。
在這裏插入圖片描述

ICMPv6

IPv6也不保證數據報的可靠交付,所以它也使用ICMP來反饋一些差錯信息。那爲啥名字不一樣呢?那是因爲升級了,哈哈,關鍵是比ICMPv4複雜一些。
在這裏插入圖片描述

IP多播

其實我們到目前爲止,說的比較多的都是點對點的通信,但是還有廣播通信這種也是使用非常廣泛的,比如各大視頻網站,是不是更新資源後,大家都能看到了。

假如說,某視頻服務器要給90臺主機傳送同樣的視頻節目,這樣的話,如果使用單播方式,需要同一個分組發送90個次,等於90個副本,但如果使用多播方式,只需要發送一次,爽不爽!
在這裏插入圖片描述
這樣看起來是爽,具體要實現的話需要路由去能夠識別多播數據報,這種路由去稱爲多播路由器,當然它也可以轉發普通的單播數據報。

多播這種方式等於說是:在一個特定的組裏,只要組長髮消息,你們就能收到。但是怎麼能加入這個組。
多播組的標識符就是IP地址中的D類地址,大家還記得麼?
在這裏插入圖片描述
D類IP地址的前4位是1110,所以它的地址範圍:224.0.0.0到239.255.255.255。所以我們就用每一個D類地址標識一個多播組。也就是說在同一時間可以允許超過2.6億的多播組在互聯網運行。
這個值在IPv6協議的時候更大。

那麼這種多播地址只能用於目的地址,不能用於源地址

虛擬專用網VPN

這個解釋,其實百度百科說的是比較明白的,我這裏直接引用一下:
在這裏插入圖片描述
平時我們如果需要訪問外網,不也是需要梯子麼,那自己搭的梯子其實也是這種原理,首先要有一個境外的服務器,然後利用硬件或者軟件,把自己的手機和境外的服務器連起來,就可以科學上網了,但是大家注意安全!!!

網絡地址轉換NAT

用過虛擬機的小夥伴肯定知道這種方式,一般時候,我們自己電腦的虛擬機都使用NAT的方式,這樣的話你的虛擬機要上網等於共享你主機的帶寬,而使用了NAT的虛擬機,在點對點的傳輸中,需要使用網絡地址與端口號的轉換,因爲對外界看起來,IP地址是自己本身主機的,不是虛擬機。

關於標題中提到的問題,我在文章開頭就進行了解答與分析,並在其中提到了路由器的路由選擇協議。

互聯網的正常運轉離不開每一個路由器的努力,哈哈,所以,請選一個好一點的路由器也是有道理的。到目前爲止,網絡層的知識算是講完了!

關於計算機網絡的知識還是非常多的,我學到的也只是其中一點皮毛而已,還是那句話,”在技術領域,我們都要有一顆謙卑的心。“

掃碼關注”後來X大數據“,回覆【電子書】,領取【超多本pdf java及大數據 電子書】

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章