互联网是如何运作的

原文:互联网是如何运作的

以下是我的总结,更好的学习建议阅读原文。

介绍

互联网所有的传输都通过TCP/IP协议族来传输,TCP/IP是面向连接可靠字节流服务协议

TCP/IP协议栈

您的计算机已连接到 Internet 并具有唯一的地址。它如何与连接到 Internet 的其他计算机“交谈”?

这里应该有一个例子:假设您的 IP 地址是 1.2.3.4,并且您想向计算机 5.6.7.8 发送一条消息。您要发送的消息是“Hello computer 5.6.7.8!”。显然,消息必须通过将您的计算机连接到 Internet 的任何类型的线路传输。假设您已从家里拨入您的 ISP,并且消息必须通过电话线传输。必须将消息从字母文本翻译成电子信号,通过互联网传输,然后再翻译回字母文本。 这是如何实现的?
通过使用协议栈。每台计算机都需要一台在 Internet 上进行通信,它通常内置于计算机的操作系统(即 Windows、Unix 等)中。由于使用了两种主要的通信协议,Internet 上使用的协议栈被称为 TCP/IP 协议栈。TCP/IP 堆栈如下所示:

  • 应用层:提供特定于应用程序的协议 HTTP FTP IMAP(邮件)
  • 网络控制层(TCP):发送数据包到计算机上使用特定的端口号的应用程序
  • 网络层(IP):使用IP地址将数据包发送到特定的计算
  • 链路层:将二进制数据包与网络信号相互之间转换(例如以太网网卡、电话线调制解调器等)

HTTP

HTTP 是 Web 浏览器和 Web 服务器用于通过 Internet 相互通信的协议。它是一种应用程序级协议,因为它位于协议栈中 TCP 层的顶部,并被特定应用程序用于相互通信。在这种情况下,应用程序是 Web 浏览器和 Web 服务器。

HTTP是一种基于无连接文本的协议。客户端(Web 浏览器)向 Web 服务器发送对 Web 元素(例如网页和图像)的请求。请求被服务器服务后,客户端和服务器之间通过 Internet 的连接断开。必须为每个请求建立一个新连接。大多数协议都是面向连接的。这意味着相互通信的两台计算机通过 Internet 保持连接打开。然而,HTTP 没有。在客户端发出 HTTP 请求之前,必须建立到服务器的新连接。

当您在 Web 浏览器中键入 URL 时,会发生以下情况:

  1. 如果 URL 包含域名,则浏览器首先连接到域名服务器并为 Web 服务器检索相应的 IP 地址。
  2. Web 浏览器连接到 Web 服务器并为所需的网页发送 HTTP 请求(通过协议栈)。
  3. Web 服务器接收请求并检查所需页面。如果页面存在,则 Web 服务器发送它。如果服务器找不到请求的页面,它将发送 HTTP 404 错误消息。(404 的意思是“找不到页面”,任何浏览过网络的人都可能知道。)
  4. Web 浏览器接收回页面并关闭连接。
  5. 然后浏览器解析页面并查找完成网页所需的其他页面元素。这些通常包括图像、小程序等。
  6. 对于每个需要的元素,浏览器会为每个元素向服务器发出额外的连接和 HTTP 请求。
  7. 当浏览器加载完所有图像、小程序等后,页面将完全加载到浏览器窗口中。

TCP(传输控制协议)

在协议栈的应用层之下是TCP层。当应用程序打开与 Internet 上另一台计算机的连接时,它们发送的消息(使用特定的应用程序层协议)会沿堆栈向下传递到 TCP 层。TCP 负责将应用程序协议路由到目标计算机上的正确应用程序。 为此,使用端口号。端口可以​​被认为是每台计算机上的独立通道。例如,您可以在阅读电子邮件时上网。这是因为这两个应用程序(Web 浏览器和邮件客户端)使用了不同的端口号。当数据包到达计算机并沿协议栈向上时,TCP 层根据端口号决定哪个应用程序接收数据包。
TCP 是这样工作的:

  • 当 TCP 层从上面接收到应用层协议数据时,它会将其分段为可管理的“块”,然后将带有特定 TCP 信息的 TCP 标头添加到每个“块”。TCP 头中包含的信息包括数据需要发送到的应用程序的端口号。
  • 当 TCP 层接收到来自其下方 IP 层的数据包时,TCP 层会从数据包中剥离 TCP 头数据,必要时进行一些数据重构,然后使用从 TCP 获取的端口号将数据发送到正确的应用程序标题。

这就是 TCP 将通过协议栈移动的数据路由到正确应用程序的方式。

TCP 不是文本协议。TCP 是面向连接的、可靠的字节流服务。面向连接意味着两个使用 TCP 的应用程序在交换数据之前必须先建立连接。TCP 是可靠的,因为对于收到的每个数据包,都会向发送方发送确认以确认交付。TCP 还在其标头中包含一个校验和,用于对接收到的数据进行错误检查。
tcp在建立连接会进行三次握手,每个收到的数据包都会向发送方发送ack确认,已确保发送成功

IP(互联网协议)

与 TCP 不同,IP 是一种不可靠的无连接协议。IP 不关心数据包是否到达目的地。IP 也不知道连接和端口号。 IP 的工作也是将数据包发送和路由到其他计算机。IP 数据包是独立的实体,可能无序到达或根本没有到达。TCP 的工作是确保数据包到达并以正确的顺序。IP 与 TCP 的唯一共同点是它接收数据并将其自己的 IP 标头信息添加到 TCP 数据。

IP是不可靠的无连接协议,它并不关心数据包是否到达目的地,也不关系连接和端口号,目的是连接到目标IP

Ip是一种协议 有两种标准 IPv4 2^32次方和IPv6 2^128

TCP传输的质量和顺序

当数据包过大,在网络层会进行分包,分包后传输的链路不一样,到达的时间不一样,TCP会根据数据包上携带序列号来进行排序重组,如果发送方在一个特定时间内(也就是重试时间)没有接受到接收方的ack确认,会再次重新发送

#网络传输

  1. 个人电脑
  2. 猫(调制解调器)
  3. local ISP 互联网服务提供商
  4. regional ISP 经过多个主干网络
  5. NSP 网络服务提供商 大型网络 卖带宽给ISP
  6. NAP 每个NSP连接到至少三个网络访问点
  7. ISP NSP 所有网络提供都携带路由器,每个路由有当前子网络ip的路由表,当底层向上层发送数据时候,找不到会依次向上找,可能由一个主干网络跳到另外一个主干网络。

DNS服务

存在意义是IP别名,不让公司丢客户,也容易记,DNS是一个分布式数据库,存储了域名和IP的对应关系


互联网是如何运作的
https://zouhualu.github.io/20211007/互联网是如何运作的/
作者
花鹿
发布于
2021年10月7日
许可协议