自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

網絡雜談,你學會了什么?

網絡 網絡管理
一個簡單的網絡會由多個節(jié)點(AKA 計算機)和連接他們的鏈路組成。就好像你家里有 3 臺電腦,然后它們都相互連接,這樣你家里的 3 臺電腦就組成了一個簡單的網絡。

互聯網是什么相信不用在這里贅述,大家平時“網上沖浪”都離不開它。本篇文章中我們就來翻譯翻譯,什么 ** 的叫 ** 的網絡。

網絡的概念

對于網絡,我們可能聽過非常多的名詞,比如因特網、萬維網、互聯網。三者的關系其實為:

互聯網 > 因特網 > 萬維網

那么一個簡單的網絡看起來會是這樣:

圖片

一個簡單的網絡會由多個節(jié)點(AKA 計算機)和連接他們的鏈路組成。就好像你家里有 3 臺電腦,然后它們都相互連接,這樣你家里的 3 臺電腦就組成了一個簡單的網絡。而所謂的互聯網,就是網絡的網絡,如下所示:

圖片

而不同的網絡之間可以通過路由器來相互連接,就形成了覆蓋范圍更大的互聯網。所以總的來說,網絡連接了許多的計算機,而因特網將許多網絡連接到了一起。因此,因特網也是目前全球最大的計算機網絡。

因特網的發(fā)展

第一階段

互聯網的起源帶有一點戰(zhàn)爭的背景。它起源于 1960s,當時正值冷戰(zhàn),美國國防部開發(fā)了一個分布式的、預期能夠抵御核攻擊的通訊網絡,而這就是世界上第一個互聯網的原型 — ARPANET。

在 1983 年,TCP/IP 協(xié)議成為了 ARPANET 上的標準協(xié)議,只要是使用了 TCP/IP 協(xié)議,計算機之間都能夠相互通信。

第二階段

1985 年,美國國家科學基金會圍繞了 6 個大型計算機中心建設計算機網絡,這一階段的特點是形成了三級結構的因特網,分別是:主干網、地區(qū)網、校園網(企業(yè)網)。這個三級結構的網絡覆蓋了當時全美主要的大學和研究所。后續(xù),越來越多的企業(yè)接入了因特網,導致了網絡上通信量激增,由于當時的因特網是由政府維護的,其容量已經滿足不了當時的需求了,所以美國政府決定將主干網轉交給私人企業(yè)經營,并開始收費。

第三階段

隨著主干網開始由私人企業(yè)經營,該階段形成了多層次 ISP 結構的因特網。什么叫 ISP?其實也就是互聯網(因特網)服務的提供商。給你舉個例子你就知道了,比如咱們國內的三巨頭:中國聯通、電信、移動,他們就是典型的 ISP。

ISP 其實也是一層代理,因為他們也是從因特網管理機構去申請的一堆 IP 地址,然后我們去 ISP 那辦理寬帶,支付費用,然后我們就能夠在使用期間,用這個 IP 地址上網“沖浪”。

因特網中的協(xié)議

經過了這么多年的發(fā)展,互聯網已經演變成了一個橫跨全球、極其復雜的網絡。這就好像我們每個城市的內部是通過各種道路相互連接的,而城市與城市之間也是相互連接的,而所有這些城市相互連接就組成了這個大型的“國家互聯網”。連接到互聯網的機器可以相互通信,而在“國家互聯網”中的城市也可以相互“通信”。

你說包裹有可能在運輸途中丟失嗎?當然有可能,這樣的例子還不少。同理,我們發(fā)送出去的數據包也有可能丟失。

所以為了保證數據包的準確送達,互聯網使用了很多種協(xié)議。例如我們非常熟悉的 TCP/IP。TCP 全稱是 Transmission Control Protocol,IP 全稱是 Internet Protocol。

它們分工明確,IP 負責數據包的路由,讓它從一個“中轉站”跳到下一個“中轉站”,而 TCP 則是確保包裹可靠、準確、有序的到達“中轉站”。

當然,在互聯網這個巨大的概念里,TCP/IP 協(xié)議并不是全部,還有我們非常熟悉的 DNS(Domain Name System)和 HTTP(Hypertext Transfer Protocol)。

不太熟悉 DNS 及其底層原理的可以看看我之前寫的這篇文章你的域名是如何變成 IP 地址的?

還有像 SSL 和 TLS 這樣的網絡安全加密協(xié)議,讓我們的數據能夠安全的在互聯網上傳播。當然,現在 TLS 已經將 SSL 給替代了,因為 TLS 有著更高的安全性和更強的認證機制。

在互聯網的通信和數據交換流程中,協(xié)議扮演了一個非常關鍵的角色。這就好像人與人之間要進行溝通,語言是非常重要的一樣。語言不通,溝通起來是非常非常困難的。通信的前提也是雙方需要使用一樣的協(xié)議。

而協(xié)議其實就是一堆的規(guī)則,這些規(guī)則規(guī)定了信息交換的細節(jié)。就比如咱們的老朋友三次握手、四次揮手就屬于 TCP/IP 協(xié)議的一部分。而規(guī)定使用這些協(xié)議有什么好處?

答案當然是標準化,用標準化來屏蔽不通制造商或者不通系統(tǒng)之間的差異。舉個例子,假設不同的制造商的制造出來的手機使用了不同的協(xié)議,那么某個 APP 在制造商 A 上能用,在制造商 B 上又不能用,又或者不同的操作系統(tǒng)之間不能相互通信,這類問題以現在的眼光來看肯定是不能接受的。

再舉個標準化協(xié)議的例子,像我們用的 Type-C 這種接口的充電線就是一種標準,不管是哪個廠家生產的,只要遵循了這個標準,消費者就能夠正常使用。再舉一個協(xié)議不同的例子,不同的國家使用的充電器的標準不同,不同的標準之間要想充電則需要使用轉接頭,及其的不方便。

網絡分層模型

OSI 七層模型

相信大家曾經都被問過一個問題:“請簡單描述一下 OSI 七層模型”。這個網絡模型是啥意思?怎么來的?或者說,為什么需要網絡模型這個玩意兒?

這是因為 70 年代,網絡快速發(fā)展演進出了不同網絡體系結構,而由于全球的經濟發(fā)展,迫切的需要使在不同的網絡結構體系結構中的用戶相互通信,交換信息。為了達成這一目的,國際標準化組織在 1977 年成立了專門的機構來研究這個問題。

而他們的研究成果就是著名的 OSI 模型。在 OSI 模型中總共包含了 7 層(到這里是不是很多人就條件反射的開始全文背誦了),從下至上分別是:物理層、數據鏈路層、傳輸層、網絡層、會話層、表示層、應用層。

圖片

但,OSI 模型的設計,理想很豐滿,現實很骨感。OSI 僅僅取得了理論上的成果,這些專家在設計的時候,并沒有太考慮商業(yè)化,并且,OSI 協(xié)議設計過于復雜,復雜則導致其運行效率低下,并且 OSI 的層次中有重復的層次。

所以用一句話來總結 OSI 七層模型就是:既復雜又不實用。

TCP/IP  體系

相對于 OSI 的不實用,TCP/IP 是一個四層的體系結構,分別是:應用層、運輸層、網際層、網絡接口層,和 OSI 的對比如下圖所示:

圖片

消息如何發(fā)送

簡單的了解了一些背景之后,我們來看看網絡中的消息是如何發(fā)送的。那在一般的認知中,所謂的通信是啥樣的呢?可能看起來是這樣:

圖片

假設現在有 A、B 兩臺機器,其 IP 地址分別為 1.2.3.4 和 4.3.2.1,它們的 IP 地址都不相同,并且需要通過上圖中的“網絡”進行通信。那如果 A 要發(fā)送消息給 B,這個消息該如何“傳輸”到 B 呢?當然是通過連接到 B 機器上的網線(假設是有線),我們知道,線路中傳輸的是電信號,這套轉換的流程當然不需要我們手動的實現,這些功能都內置在了計算機中,而上面說的轉化,則是由協(xié)議棧來完成的,協(xié)議棧的大致工作流程如下:

圖片

這樣講有點抽象,比如協(xié)議棧到底是啥,它是通過什么方式來處理的數據的,都不知道。關于協(xié)議棧相關的概念,以及數據包發(fā)送、接收的大致流程,在我之前寫的 數據包從發(fā)送到接收,都經歷了什么 這篇文章里都有詳細的介紹,在此不再贅述。

這里我們拿 TCP/IP 協(xié)議棧來舉個例子,它分為 4 層,大致長這樣:

  • 應用層,就比如你看這篇文章所使用到的 HTTP 協(xié)議
  • 傳輸層,TCP 協(xié)議
  • 網絡層,IP 協(xié)議
  • 硬件層,使用的是以太網協(xié)議,將二進制的數據轉換成電信號,以及相互轉換,就比如網卡

那結合上面這個圖,就會變成這樣:

圖片

這個流程跟上面舉過的網購、快遞包裹的例子非常類似,我們下單了東西,賣家會將東西層層的包裝,而這個“打包”的過程跟協(xié)議棧對數據包的處理非常像,從上至下,將數據「Hi, there」一步步的處理。而對于我們收快遞的人來說,我們會一點點從外至里的打開這個包裹,最終拿到我們購買的貨物。而對于 4.3.2.1 的協(xié)議棧來說,一步步的將電信號還原成「Hi, there」也是同樣的道理。

而我們將這個打包的細節(jié)添加到上圖的話,看起來就會是這樣,以 HTTP 協(xié)議來說:

圖片

可以看到,每一層的包都是由 XX 頭和 XX 數據包組成的,通過協(xié)議棧的“層層加碼”,通信所需要的關鍵的信息也會被打包進去:

  • 傳輸層,會將 HTTP 報文添加到 TCP 的數據包中,并在 TCP 頭中添加發(fā)送方、接收方的端口號
  • 網絡層,會將上一層的 TCP 包添加到 IP 數據包中,并且在 IP 頭中添加發(fā)送方、接收方的 IP 地址
  • 硬件層,會將 IP 包添加到以太網數據包中,并在以太網頭中添加發(fā)送方、接收方的 Mac 地址。

那么問題來了,我們現在只知道中間有個“網絡”,那從 1.2.3.4 機器 A 中出發(fā)的數據包,是如何找到 4.3.2.1 B 這臺機器的呢?A 從一開始就知道該走哪條線路

1.2.3.4 發(fā)送的數據,會經過協(xié)議棧從上至下的處理,變成一個一個的數據包,然后 4.3.2.1 收到數據包之后,也會經過協(xié)議棧從下至上的處理,解析出原始的消息。

圖片

參考

  • How Does the Internet Work?
  • 《計算機網絡》
責任編輯:武曉燕 來源: SH的全棧筆記
相關推薦

2023-07-26 13:14:13

業(yè)務項目技術

2023-06-28 11:01:08

2024-07-22 09:52:42

2024-07-12 09:21:38

負載均衡HTTP網絡

2022-11-30 09:54:57

網絡令牌身份驗證

2023-12-11 08:03:01

Java線程線程組

2022-09-22 12:03:14

網絡安全事件

2024-09-30 09:05:46

Linux網絡延遲

2023-01-30 08:04:28

程序隱藏debug

2022-11-18 12:03:01

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2024-01-19 08:25:38

死鎖Java通信

2024-01-02 12:05:26

Java并發(fā)編程

2023-08-01 12:51:18

WebGPT機器學習模型

2024-05-23 08:32:48

2023-04-26 07:46:21

2023-02-15 08:41:56

多層維表性能寬表

2024-05-06 00:00:00

InnoDBView隔離
點贊
收藏

51CTO技術棧公眾號