您可能听说过TCP,并且可能知道它与通过 Internet 发送和接收信息有关。毫无疑问,几乎每次出现在您的 Web 浏览器中时,您都会在 URL 的前面看到HTTP 。
但是,当要了解这两种协议如何交互以及它们在整个数据传输难题中所扮演的角色时,事情就会变得混乱。让我们分解一下 TCP 和 HTTP 的真正含义、它们的区别以及它们如何协同工作。
从源到目的地的数据流被分成称为“数据包”的块,以便更易于管理的传输。每当您发送或接收数据包时,都会有大量关于该数据的信息。这包括由传输控制协议或 TCP 添加的信息。
TCP 的工作是确保流中发送的所有数据以正确的顺序从 A 点移动到 B 点,并且完好无损。TCP 等协议告诉目标计算机哪个应用程序应该接收所述数据。TCP 尤其牺牲了原始速度以确保传输数据的可靠性。请注意,某些形式的数据传输,例如视频流,完美的准确性远低于速度,最好使用不同的协议来优化速度而不是准确性。
数据包传输,如果留给自己的设备,将不会完全可靠。这就是为什么 TCP 使用一种称为重传肯定确认的技术,要求传输的接收端对已接收到的数据做出响应。多亏了这一点,发送者知道接下来要发送什么数据包,或者可能重新发送,以保持完美的数据流。因此,发送的字节可以与接收的字节完全匹配。在此过程中没有数据被更改或丢失。
如果您想了解有关此检查过程如何工作的更多信息,请单击此处。
虽然 TCP 包含有关已收到或尚未收到哪些数据的信息,但 HTTP 包含有关如何在数据到达后读取和处理此数据的具体说明。在数据从 Internet 上的一个节点发送到另一个节点之前,它会被包装在详细说明正在发送的请求的性质或对所述请求的响应的信息中。这是使用 HTTP 或超文本传输协议完成的。
当您在 Web 浏览器中键入 URL 时,您正在向 Web 服务器发送 HTTP 请求。然后该服务器将再次使用 HTTP 格式进行响应。(如果你想知道 HTTPS,你可能已经在最近最流行的网站前面注意到了,“S”代表“安全”——这意味着这些数据包是加密的。)
HTTP 请求的两个最常见示例是: 1.“POST”,表示其中包含要推送到服务器的数据 2.“GET”,要求从服务器获取资源
所以:TCP 管理数据流,HTTP 描述了这个流中的数据包含什么。
食人魔就像洋葱;数据包也是如此。
HTTP 位于开放系统互连模型(OSI 模型)的第 7 层,也就是最令人眼花缭乱的洋葱块。TCP位于L4。您也可以将其视为数据包中包含的数据本身的抽象层。L1,物理层,是有形的电信号(或者可能是无线电信号或其他物理介质),数据被转换成用于传输。因此,L1 是离内部数据最远的层。
为什么有这些不同的层?例如,假设数据从网络服务器传入我们的计算机以加载网站。我们的计算机捕获物理电流,这在某种意义上是“包装”无形数据包以进行传输。随着我们进入 L4,如果没有 TCP,计算机将不知道将数据包指向哪个应用程序。在这里,TCP 可以告诉计算机将数据包定向到我们的 Web 浏览器。
一旦进入 Firefox 或 Chrome 等应用程序,就会读取 HTTP 指令。浏览器了解传入数据的性质,最终可以正确加载网页内容。
因此,拆解层就像一条装配线,按顺序将数据包中的原材料带到可用状态。