不是小白你別看——什麼是網絡協議1

網絡

不瞭解網絡協議的通信工程師不是好程序員 《wireshark網絡分析的藝術》
因爲在工作中遇到好多問題都是因爲網絡協議不懂導致的,網絡協議至關重要,所以今天開始重新學習整理。

首先說網絡,沒有網絡我們不能和別人交流,網絡不僅是互聯網,計算機網絡,也是遠古的社交網絡,人羣,圈子,許多個體組成的羣體。網絡中可以相互聯繫,溝通,交流。

那麼怎麼溝通交流,就需要一個協議,不然別人怎麼理解你,比如計算機網絡的通信格式,再比動物的吼叫,人們的語言,他們都是網絡中交流的協議。
我們用的協議一般就是值得是我們程序員和計算機交流的語言方式,怎麼說話計算機才能聽得懂,這就需要一個語言協議。我們學習英語,需要學習語法,結構等等,和我們與計算機交流是一樣的,我們也要學習這個規則,這就是協議。

然而在一個龐大的計算機網絡中,我們不同的設備都需要溝通,所以我們需要學習網絡協議。

通信請求

我們發起一個網絡請求到服務器的接口,它會根據我們發送請求的格式內容參數來進行響應,比如請求headers body等等,這就是需要一定的格式,按照一定的協議,沒有協議,服務器不會返回正確的數據。

	1舉例你在本地瀏覽器輸入  www.baidu.com

我訪問一下baidu.com
請求狀態
2
我瀏覽器輸入 baidu.com 發起請求,瀏覽器會在dns服務器查找這個ip地址,183.232.231.172這個地址纔是網頁在網絡中的街道地址。請求將會攜帶者參數交給傳輸層來處理。

如何去找IP地址(dns)

首先先是本地的緩存,一般是以Hosts文件的形式存在,維持着一個帶域名的服務器地址對IP的對應關係,路由器緩存,如果沒有結果,則會向上層DNS服務器詢問,上層DNS服務器的本地緩存中如果沒有該記錄,則再向上層詢問,一直到DNS根服務器。在根域名服務器中雖然沒有每個域名的具體信息,但儲存了負責每個域(如COM、NET、ORG等)的解析的域名服務器的地址信息。根域名服務器會將其管轄範圍內頂級域名(如.com)服務器IP告訴本地DNS服務器,這樣你的域名查詢請求會進入到相應的頂級域名服務器。頂級域名服務器收到請求後查看區域文件記錄,若找到則將其管轄範圍內主域名(不帶任何前綴的域名,如 baidu.com)服務器的IP地址告訴本地DNS服務器。如果還是沒有找到,則進入到下一級域名服務器進行查找。如此重複,直到找到正確的 結果爲止,返回 IP地址結果給本地DNS服務器。
本地DNS服務器緩存結果,設置(Time-To-Live)即一條域名解析記錄在DNS服務器上緩存時間,關於TTL如果IP經常改變,那麼TTL設的短一點長一點都沒有太大的 影響,而如果IP經常不變,可以把TTL時間拉長,這樣有利於提高命中率。
傳輸層就是udp和tcp協議,將要通過socket根據街道地址來找到百度的家,與百度服務器連接,一邊是瀏覽器的端口,一個是百度服務器的端口,怎麼進行連接呢?
接下來就是網絡層來處理,你的操作系統從瀏覽器拿到接到地址發現這個ip街道地址不是本地的ip,所以他要通過網絡層協議去遠方尋找這個街道。去遠方先去本地交通站。你的ip地址是192.168.1.110,你的網關是192.168.1.1那麼你先需要找到網關,找網關需要通過arp協議廣播一聲,網關就會迴應你並告訴你他的mac地址,物理地址。你就可以找到他了。
接下來尋找百度網頁之旅就交到MAC層了。在這一層ip請求包帶着本地交通站的mac地址。網卡把這個帶着地址的數據包在轉發出去,網關往往是一個路由器關卡,可以通向另一個地址,沒有找到這個IP地址,就會根據路由器協議路由表,他告訴你往這個IP段怎麼走,走到下一個關卡,然後你帶着新的mac地址數據包到下下一個關卡,發現這個路由關卡正好可以通向這個ip地址。你在這大喊誰是這個街道地址,百度看到這個街道地址是他家,就返回給你他的mac地址了,你就可以找到他了。百度服務器根據給你的mac地址正確,把你的數據包轉發到網絡層,根據ip協議也就是街道地址把你的數據在進行tcp連接(傳輸層),收到你的數據,給你一個響應。“收到了你的請求,將給你返回一個百度頁面,你可以回家告訴你爸媽了” (具體過程下一篇介紹)

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