白話網絡連接之詳談IP和DNS工作原理

前言
  預計我會花一月時間用幾篇文章來和大家一起暢遊網絡知識,概要如下:
1.我們先會從瀏覽器的工作方式來進行了解,從瀏覽器中輸入URL,接着瀏覽器去對URL進行解析,然後按照不同的協議去封裝請求消息,發送請求,之後瀏覽器會收到響應消息。
2.我們還會去了解消息數據是如何搬運的,協議棧會將消息打包並交給網卡,然後網卡會將包轉爲電信號並通過網線發送出去。
3.對於發送到網絡的信號數據是如何進入互聯網的,這裏我們會了解集線器、交換機、路由器等設備,當路由器出發的數據進入互聯網後,我們就要了解下網絡運營商和互聯往中的骨幹網。
4.之後網絡包數據終於來到了Web服務器所在的局域網中,接着它會遇到防火牆,防火牆會對數據進行檢查,有些重複利用的數據包還會遇到緩存服務器,當然在一些大型網站中還會遇到分佈式服務器上的負載均衡器等。
5.最終,我們的網絡包數據來到了Web服務器,服務器是怎麼處理的呢?也是會和客戶端類似,也是由操作系統中的協議棧來完成數據解析,最終按照協議中的操作指示來把數據裝入響應消息中,發回給客戶端。當然回發的過程和前面是正好相反滴。

正片開始:
  本篇我們來聊IP地址和DNS

  • IP地址的表示方式
    IP地址是一串32比特的數字,按照8比特(1字節)爲一組分成4組,分別用十進制表示然後再用圓點隔開。下圖我們看下IP地址的表示方式:
    在這裏插入圖片描述
      這裏子網掩碼比表示網絡號與主機號之間的邊界,IP地址主機號全0表示整個子網,IP地址主機號全1表示向子網上所有設備發送包,即“廣播”。TCP/IP 網絡是通過IP來確定通信的,就像我們電話的時候必須要知道對方的電話號碼一樣。
      到這裏,可能你會問“既然如此,那麼在網址中不寫服務器的名字,直接寫IP地址不久好了嗎?” 其實用IP地址代替服務器名也是可以正常工作的,但是大家不覺得記住一串IP地址是非常難的麼?那麼現在的解決方案就是讓人來記住名稱,讓路由器來使用IP地址,而讓DNS來作爲一種查詢機制。
  • 談談DNS
      現在我們來說下DNS機制,瀏覽器向DNS服務器發出查詢,也就是向DNS服務器發送查詢消息,並接受服務器返回的響應消息的過程。這裏我們可以理解爲,在本機上有一個用來發送查詢消息的程序,而瀏覽器用這個程序通過DNS查詢IP地址的操作稱爲域名解析。其實這個程序包含在socket庫中。說白了就是瀏覽器應用程序通過操作系統標準socket庫,來發送查詢消息到DNS服務器,並接受響應的過程。
      接着我們再細說DNS是怎麼工作的,上面提到了,DNS的基本工作就是接受來自客戶端的查詢消息,然後根據消息的內容返回響應。這裏我們來看一張圖,
      在這裏插入圖片描述
  • 域名結構
    互聯網中存在着不計其數的服務器,我們是不可能將這些所有的服務器信息都保存再一臺DNS服務器中,因此就需要分佈保存在多臺DNS服務器中,這些DNS服務器相互接力配合,從而查找出要查詢的信息, DNS之間的查詢操作看下下圖:

在這裏插入圖片描述

  • 本篇結語
    通過這篇我們簡單瞭解了瀏覽器是怎麼通過TCP/IP和服務器交互的,從而我們認識了DNS。在下面的篇張中我我們將深入到協議棧中去一探究竟,敬請期待,晚安。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章