爬蟲|網絡類型和分層協議

日拱一卒|數據挖掘002

一、網絡類型

網絡就像一市集,有各種各樣的攤位,有擺攤的計算機大叔,練攤的手機小哥等等。網絡就是將計算機和計算機互相連起來,互相連通之後,就可以實現信息共享,這就是我們說的“網絡”。

網絡可以分爲局域網LAN和廣域網WAN比如家裏的電腦用網線或者WiFi連在一個路由器上就是局域網的應用。將這些局域網連起來就是廣域網。

因特網就是個大大大大大廣域網,覆蓋全球,可以做到國際互聯,有時候也被稱爲互聯網Internet。

有了互聯網Internet之後,我們可以刷劇,逛淘寶,聊天等等,但是帶給我們如此享受的不是互聯網,而是基於互聯網提供的一種信息服務——萬維網World Wide Web。

萬維網有以下四個特點:

  1. 構建在互聯網之上;
  2. 不管是文檔,還是視頻、音頻,所有的資源用URI來標示;
  3. 提供一種超文本標記語言HTML來編寫網頁;
  4. 計算機間數據傳輸採用HTTP超文本協議;

二、分層協議

計算機之間的網絡對話是分層實施的,每一層都會對應不同的網絡協議。國際標準化組織ISO爲了把這些不同的網絡協議統一起來,提出了一個七層的開放系統互聯參考模型OSI。這個體系很複雜,因此並沒有誰去遵循它。

真實的網絡分層協議是四層,分別是鏈路層、網絡層、運輸層和應用層,如果把網線一類的硬件歸進來,就再加上一層物理層。

1.物理層

網絡傳輸的一切硬件

物理層是指硬件層,泛指網絡傳輸的一切硬件,比如網線、路由等等。物理層傳輸的是電信號,簡單理解爲0和1即可;

2.鏈路層

MAC地址

單純的0和1是沒有意義的。因此需要把0和1變成有意義的數據包傳給對方。

**從鏈路層開始,我們可以以寄信的方式來比喻計算機在網絡中間的通訊, 發送數據的每一層都會提供一個信封(按照某種協議) 把數據包起來,而相應的接收數據的每一層都會正確地把這個信封打開。 **

在鏈路層中以太網協議就是一種典型且佔據主導的協議。寄信最重要的就是要填郵寄人和寄信人的地址,而在鏈路層對應每個計算機或者更準確地說是每個網卡都有一個世界上獨一無二的 MAC 地址。

傳統的寄信我們是通過郵遞員,以太網用了一種最簡單也是最原始的方法,就是廣播。比如 1 號計算機向 2 號計算機發送數據,它會向這個網絡裏面的所有計算機發送一封信(Frame,幀),這封信由信封(head)和信(data)組成,信封上包括了寄信人(2 號計算機 MAC 地址) 和寄信人(1 號計算機 MAC 地址) 的地址等信息。

在該網絡裏的所有計算機都會收到這封信,並與自己的 MAC 地址相比較,如果一致則接收這封信,如果不一致則拒絕。

3.網絡層

解決了計算機之間相連

在以太網裏我們通過MAC地址來唯一表示一個計算機,這個MAC地址總共由12個十六進制位數來表示,比如01-00-5C-08-A8-30,前六位代表的是廠商,後六位是廠商爲自己網卡設定的唯一表示。

如果在局域網裏,以太網的這種廣播方式是可行的,但是如果
在多個網絡裏, 比如北京的一臺機器要給紐約的一臺機器發數據, 採用這種廣播方式,將會是一種災難。 MAC 地址是隻
與廠商有關係的,通過 MAC 地址並不能知道紐約的那一臺機器在哪個網絡裏。

因此我們需要重新定義一種地址,通過該地址能夠迅速定位到機器屬於哪一個子網絡,然後再結合 MAC 地址,知道**計算機所在的位置。 ** 這一套地址系統,我們就稱之爲網址,也就是大家所熟知的 IP 地址了。

即在網絡層,我們把這封信又嵌套了一下加上了 IP 協議的相關信息。

4.傳輸層

實現了應用程序之間的相連

IP 地址已經可以讓兩臺主機相互連接, 但是一個機器上是會有很多程序需要用到網絡的,比如上網的時候,可以用迅雷下載,還可以登錄QQ聊天,登錄瀏覽器發郵件等等。此時就是傳輸層提供的是兩臺主機上應用程序提供的端到端的通信。

IP 地址配合 MAC 地址已經使得在互聯網上的任意兩臺機器能夠建立聯繫,但是應用程序之間的聯繫,還需要加上一個端口port地址。

所謂端口,即網卡給微信客戶端、迅雷下載等各種應用程序提供了一個編號,有些端口非常隨機的,某些應用需要用到網絡的時候,就隨機分配一個。而有些端口是非常固定的分配,比如 80 端口就是默認瀏覽網頁的端口號。

最直接的想法就是在 IP 數據包裏面再加上相應的端口信息,這種協議我們稱之爲 UDP 協議。但是這種協議存在一種潛在的風險,即有可能這個數據包最後在網絡中“走丟了”無法到達指定的主機。

更穩定但需要付出“成本”的是 TCP 協議。它的原理簡單理解就是數據要是到了指定的主機,就必須給個回執,如果收不到回執,默認認爲沒收到該數據, 從而重發該數據,直到收到對方的回執爲止。

5.應用層

到了應用層,則主要是規定不同應用程序的數據格式,比如網頁要求用 HTML 的方式來書寫和傳輸,傳輸該網頁的則正是 HTTP 協議,還有如 FTP 協議等,這些了構成了應用層。

推薦阮一峯老師的文章:
互聯網協議入門(一)

互聯網協議入門(二)

參考資料:
爬蟲基礎知識之你未必清楚的網絡和分層協議模型


感謝geodatamining這篇科普文,梳理了一遍收穫多多。作者有個知識星球“互聯網地理數據挖掘”,推薦呢~

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