大家好我很了解在网络上使用的协议,需要一些帮助来理解websockets,TCP / IP和HTTP的基础知识。
我对TCP / IP和HTTP之间关系的理解是,连接所有网络都需要IP。 TCP是一种允许我们安全传输数据的机制,利用TCP传输数据的HTTP是Web服务器和客户端使用的特定协议。
这是否意味着您无法在没有TCP的情况下发送HTTP请求?
Websockets使用TCP层进行通信,客户端和服务器之间的连接通过HTTP建立,这称为握手过程。
websockets是否有自己的协议?当您需要TCP执行HTTP请求时,如何发送http请求(握手过程)来建立TCP / IP。我知道我在这里遗漏了一些非常重要的东西,并且很高兴让我对这些协议的理解更加清晰!
答案 0 :(得分:1)
首先,IP不一定需要连接所有网络。然而,它是今天使用最广泛的(现在也是如此)。诸如Appletalk,IPX和DECNet之类的旧网络协议都是传统网络协议,不再使用它们,但它们仍然存在一定程度。不要忘记在某些地方也可以使用IPv6,如果配置正确,可以通过IPv4网络。
当你说TCP是"安全"时,我会再说一遍,那就是聪明的。 TCP是一种传输协议,是直接位于IPv4标头之后的标头。 TCP主要用于流量控制,并且在传输/接收传输/接收时,一部分数据包或数据包已经存在,因此在错误恢复方面变得非常有效。虽然这对某些事务很有用,但错误控制需要在数据包中增加额外的开销。一些应用程序,例如VoIP,对延迟,抖动(延迟变化)和拥塞非常敏感。这就是它使用UDP的原因。
与TCP类似,UDP是传输协议,但没有流量控制。可以这样想:当通过TCP发送数据包时,就像问另一端是否收到了你的消息一样。如果他们这样做,他们会承认。如果没有,您现在必须确定如何重新发送此信息。 UDP没有这个。你把你的信息发送到另一方,并希望它到达那里。
现在,如果你想谈论" safe"协议,这通常在网络层(IPSec)或应用层(SSL)完成。安全通常意味着安全。
通常的TCP三次握手如下所示:
发送SYN的是客户端。收到初始SYN的是服务器。
客户端发送SYN - >服务器
现在,如果服务器正在侦听,并且/或者没有防火墙阻止该服务(在这种情况下,您将从具有RST的服务器接收TCP帧,ACK位设置最多很可能),服务器将以SYN-ACK响应:
服务器发送SYN / ACK - >客户端
如果客户收到此信息包,他会确认收到了该信息。这样就完成了三次握手,这两者可以开始交换信息。
客户端发送ACK - >服务器
这里有一些信息的好网站: