2021-10-07 互聯(lián)網是如何運作的

原文:互聯(lián)網是如何運作的
以下是我的總結

介紹

互聯(lián)網所有的傳輸都通過TCP/IP協(xié)議族來傳輸,TCP/IP是面向連接可靠字節(jié)流服務協(xié)議

TCP/IP協(xié)議棧

您的計算機已連接到 Internet 并具有唯一的地址。它如何與連接到 Internet 的其他計算機“交談”?

這里應該有一個例子:假設您的 IP 地址是 1.2.3.4,并且您想向計算機 5.6.7.8 發(fā)送一條消息。您要發(fā)送的消息是“Hello computer 5.6.7.8!”。顯然,消息必須通過將您的計算機連接到 Internet 的任何類型的線路傳輸。假設您已從家里撥入您的 ISP,并且消息必須通過電話線傳輸。必須將消息從字母文本翻譯成電子信號,通過互聯(lián)網傳輸,然后再翻譯回字母文本。 這是如何實現(xiàn)的?
通過使用協(xié)議棧。每臺計算機都需要一臺在 Internet 上進行通信,它通常內置于計算機的操作系統(tǒng)(即 Windows、Unix 等)中。由于使用了兩種主要的通信協(xié)議,Internet 上使用的協(xié)議棧被稱為 TCP/IP 協(xié)議棧。TCP/IP 堆棧如下所示:

  • 應用層:提供特定于應用程序的協(xié)議 HTTP FTP IMAP(郵件)
  • 網絡控制層(TCP):發(fā)送數(shù)據包到計算機上使用特定的端口號的應用程序
  • 網絡層(IP):使用IP地址將數(shù)據包發(fā)送到特定的計算
  • 鏈路層:將二進制數(shù)據包與網絡信號相互之間轉換(例如以太網網卡、電話線調制解調器等)

HTTP

HTTP 是 Web 瀏覽器和 Web 服務器用于通過 Internet 相互通信的協(xié)議。它是一種應用程序級協(xié)議,因為它位于協(xié)議棧中 TCP 層的頂部,并被特定應用程序用于相互通信。在這種情況下,應用程序是 Web 瀏覽器和 Web 服務器。

HTTP是一種基于無連接文本的協(xié)議??蛻舳耍╓eb 瀏覽器)向 Web 服務器發(fā)送對 Web 元素(例如網頁和圖像)的請求。請求被服務器服務后,客戶端和服務器之間通過 Internet 的連接斷開。必須為每個請求建立一個新連接。大多數(shù)協(xié)議都是面向連接的。這意味著相互通信的兩臺計算機通過 Internet 保持連接打開。然而,HTTP 沒有。在客戶端發(fā)出 HTTP 請求之前,必須建立到服務器的新連接。

當您在 Web 瀏覽器中鍵入 URL 時,會發(fā)生以下情況:

  1. 如果 URL 包含域名,則瀏覽器首先連接到域名服務器并為 Web 服務器檢索相應的 IP 地址。
  2. Web 瀏覽器連接到 Web 服務器并為所需的網頁發(fā)送 HTTP 請求(通過協(xié)議棧)。
  3. Web 服務器接收請求并檢查所需頁面。如果頁面存在,則 Web 服務器發(fā)送它。如果服務器找不到請求的頁面,它將發(fā)送 HTTP 404 錯誤消息。(404 的意思是“找不到頁面”,任何瀏覽過網絡的人都可能知道。)
  4. Web 瀏覽器接收回頁面并關閉連接。
  5. 然后瀏覽器解析頁面并查找完成網頁所需的其他頁面元素。這些通常包括圖像、小程序等。
  6. 對于每個需要的元素,瀏覽器會為每個元素向服務器發(fā)出額外的連接和 HTTP 請求。
  7. 當瀏覽器加載完所有圖像、小程序等后,頁面將完全加載到瀏覽器窗口中。

TCP(傳輸控制協(xié)議)

在協(xié)議棧的應用層之下是TCP層。當應用程序打開與 Internet 上另一臺計算機的連接時,它們發(fā)送的消息(使用特定的應用程序層協(xié)議)會沿堆棧向下傳遞到 TCP 層。TCP 負責將應用程序協(xié)議路由到目標計算機上的正確應用程序。 為此,使用端口號。端口可以被認為是每臺計算機上的獨立通道。例如,您可以在閱讀電子郵件時上網。這是因為這兩個應用程序(Web 瀏覽器和郵件客戶端)使用了不同的端口號。當數(shù)據包到達計算機并沿協(xié)議棧向上時,TCP 層根據端口號決定哪個應用程序接收數(shù)據包。
TCP 是這樣工作的:

  • 當 TCP 層從上面接收到應用層協(xié)議數(shù)據時,它會將其分段為可管理的“塊”,然后將帶有特定 TCP 信息的 TCP 標頭添加到每個“塊”。TCP 頭中包含的信息包括數(shù)據需要發(fā)送到的應用程序的端口號。
  • 當 TCP 層接收到來自其下方 IP 層的數(shù)據包時,TCP 層會從數(shù)據包中剝離 TCP 頭數(shù)據,必要時進行一些數(shù)據重構,然后使用從 TCP 獲取的端口號將數(shù)據發(fā)送到正確的應用程序標題。

這就是 TCP 將通過協(xié)議棧移動的數(shù)據路由到正確應用程序的方式。

TCP 不是文本協(xié)議。TCP 是面向連接的、可靠的字節(jié)流服務。面向連接意味著兩個使用 TCP 的應用程序在交換數(shù)據之前必須先建立連接。TCP 是可靠的,因為對于收到的每個數(shù)據包,都會向發(fā)送方發(fā)送確認以確認交付。TCP 還在其標頭中包含一個校驗和,用于對接收到的數(shù)據進行錯誤檢查。
tcp在建立連接會進行三次握手,每個收到的數(shù)據包都會向發(fā)送方發(fā)送ack確認,已確保發(fā)送成功

IP(互聯(lián)網協(xié)議)

與 TCP 不同,IP 是一種不可靠的無連接協(xié)議。IP 不關心數(shù)據包是否到達目的地。IP 也不知道連接和端口號。 IP 的工作也是將數(shù)據包發(fā)送和路由到其他計算機。IP 數(shù)據包是獨立的實體,可能無序到達或根本沒有到達。TCP 的工作是確保數(shù)據包到達并以正確的順序。IP 與 TCP 的唯一共同點是它接收數(shù)據并將其自己的 IP 標頭信息添加到 TCP 數(shù)據。

IP是不可靠的無連接協(xié)議,它并不關心數(shù)據包是否到達目的地,也不關系連接和端口號,目的是連接到目標IP

Ip是一種協(xié)議 有兩種標準 IPv4 2^32次方和IPv6 2^128

TCP傳輸?shù)馁|量和順序

當數(shù)據包過大,在網絡層會進行分包,分包后傳輸?shù)逆溌凡灰粯?,到達的時間不一樣,TCP會根據數(shù)據包上攜帶序列號來進行排序重組,如果發(fā)送方在一個特定時間內(也就是重試時間)沒有接受到接收方的ack確認,會再次重新發(fā)送

網絡傳輸

  1. 個人電腦
  2. 貓(調制解調器)
  3. local ISP 互聯(lián)網服務提供商
  4. regional ISP 經過多個主干網絡
  5. NSP 網絡服務提供商 大型網絡 賣帶寬給ISP
  6. NAP 每個NSP連接到至少三個網絡訪問點
  7. ISP NSP 所有網絡提供都攜帶路由器,每個路由有當前子網絡ip的路由表,當?shù)讓酉蛏蠈影l(fā)送數(shù)據時候,找不到會依次向上找,可能由一個主干網絡跳到另外一個主干網絡。

DNS服務

存在意義是IP別名,不讓公司丟客戶,也容易記,DNS是一個分布式數(shù)據庫,存儲了域名和IP的對應關系

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容