我知道在 Internet 协议栈中实际上有三层。它们是应用程序、互联网和传输。假设应用层中的 HTTP 将在传输层中转换为 TCP,而 TCP 将在 Internet 层中转换为 IP。
但实际上,当我试图从 Internet 捕获网络流量时,我只能理解 HTTP 层,而无法理解 TCP 和 IP 中的内容。
我正在使用wireshark 来捕获网络流量。
请解释该过程或为此提供一个简单的示例。
我知道在 Internet 协议栈中实际上有三层。它们是应用程序、互联网和传输。假设应用层中的 HTTP 将在传输层中转换为 TCP,而 TCP 将在 Internet 层中转换为 IP。
但实际上,当我试图从 Internet 捕获网络流量时,我只能理解 HTTP 层,而无法理解 TCP 和 IP 中的内容。
我正在使用wireshark 来捕获网络流量。
请解释该过程或为此提供一个简单的示例。
没有转换,你拥有的是封装
例如:您在本地 PC 上使用 wireshark 来捕获您的 HTTP 会话。基本上,你最终的结果是这样的:
[以太网帧 [IP 数据包 [TCP 段 [HTTP 请求]]]]
我认为您的困惑始于考虑“转换”。不会发生这样的事情...
IP 数据包是基本的传输单元。他们有诸如源地址和目标地址之类的东西,以及其他一些簿记的东西,但除此之外别无他物。当然还有数据包有效载荷。
UDP 或 TCP 是下一层。它位于 IP 有效载荷中。UDP 和 TCP 都包含源端口和目标端口。TCP 还包含序列号、确认等。再次是有效载荷。
我们以 HTTP 为例。HTTP 作为 TCP 的有效负载传输。客户端向服务器发送请求,服务器响应等。
所以:任何地方都没有转换。只是 HTTP 作为 TCP 的有效载荷,作为 IP 的有效载荷。
没有“转换”。它是一个协议栈;或者更好的词是“封装”。从一个IP包开始,它的payload是一个TCP包,payload是一个HTTP事务,通常是多个包。