【问题标题】:How websockets work in respect to TCP/IP and HTTP?websockets 在 TCP/IP 和 HTTP 方面是如何工作的?
【发布时间】:2016-02-11 20:38:16
【问题描述】:

大家好,我刚开始了解网络上使用的协议,需要一些帮助来了解 websocket、TCP/IP 和 HTTP 的基础知识。

我对 TCP/IP 和 HTTP 之间关系的理解是,连接所有网络都需要 IP。 TCP 是一种允许我们安全传输数据的机制,而利用 TCP 传输数据的 HTTP 是 Web 服务器和客户端使用的特定协议。

这是否意味着您不能在没有 TCP 的情况下发送 HTTP 请求?

Websockets 使用 TCP 层进行通信,客户端和服务器之间的连接是通过 HTTP 建立的,这称为握手过程。

websockets 有自己的协议吗?当您需要 TCP 执行 HTTP 请求时,如何发送 http 请求(握手过程)来建立 TCP/IP。我知道我在这里遗漏了一些非常重要的东西,如果能加深我对这些协议的理解,我会很高兴!

【问题讨论】:

    标签: sockets networking tcp


    【解决方案1】:

    首先,连接所有网络不一定需要 IP。但是,它是当今最广泛使用和采用的(目前是这样)。 Appletalk、IPX 和 DECNet 等旧网络协议都是不再使用的旧网络协议,但它们在一定程度上仍然存在。不要忘记 IPv6 在某些地方也存在,如果您的配置正确完成,它可以跨越 IPv4 网络。

    当你说 TCP 是“安全的”时,我会给它另一个词,那就是智能。 TCP 是一种传输协议,是紧接在 IPv4 标头之后的标头。 TCP 主要用于流量控制,并且在错误恢复方面变得非常有效,以防在传输/接收时数据包的一部分或数据包是最后一个。虽然这对某些事务非常有用,但错误控制需要数据包中的额外开销。某些应用程序,例如 VoIP,对延迟、抖动(延迟变化)和拥塞非常敏感。这就是它使用 UDP 的原因。

    与 TCP 一样,UDP 是一种传输协议,但没有流量控制。可以这样想:通过 TCP 发送数据包时,就像询问另一端是否收到您的消息。如果他们这样做了,他们会承认的。如果没有,您现在必须确定如何重新发送此信息。 UDP 没有这些。您将信息发送到另一方,并希望它到达那里。

    现在,如果您想谈论“安全”协议,通常是在网络层 (IPSec) 或应用层 (SSL) 完成。安全通常意味着安全。

    通常的 TCP 三向握手如下所示:

    发送 SYN 的人就是客户端。接收到初始 SYN 的人就是服务器。

    客户端发送 SYN --> 服务器

    现在,如果服务器正在侦听,并且/或者没有防火墙阻止该服务(在这种情况下,您很可能会从服务器收到一个设置了 RST、ACK 位的 TCP 帧),服务器将以 SYN-ACK 响应:

    服务器发送 SYN/ACK --> 客户端

    如果客户端收到这个数据包,他会确认他收到了它。这完成了三次握手,这两个可能开始交换信息。

    客户端发送 ACK --> 服务器

    这是一个获取一些信息的好网站:

    http://www.tcpipguide.com/free/index.htm

    【讨论】:

    • 感谢您的回答,那么TCP和HTTP之间的关系是什么?向服务器发送 HTTP 请求是否需要 TCP?
    • 将每个数据包都视为洋葱。他们有很多层次:)。总之,HTTP 信息不知道如何从一个点到达另一个点、如何处理错误、如何将自己与其他 HTTP 数据包区分开来,因为需要网络和数据链路地址来识别它来自哪里以及它想要到达哪里go 等没有上层信息。路由器和交换机从 A 点到 B 点获取它,但前提是它具有信息和传输方法。应用程序数据仅与客户端和服务器设备相关。
    猜你喜欢
    • 2018-03-29
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2012-10-15
    • 2016-03-20
    • 2023-04-07
    相关资源
    最近更新 更多