三次握手的必要性

时间:2016-01-08 00:55:24

标签: http tcp

在浏览器请求网页之前,需要建立TCP连接。 3路握手与服务器计算机交互的必要性是什么?为什么我们不能简单地发送Web请求并等待响应?

为此目的,IP地址的解析不应该足够吗?

基本上,我需要知道建立TCP连接的原因。

提前致谢

3 个答案:

答案 0 :(得分:1)

您正在使用名为A的设备,而服务器名为B

主机A向主机B发送TCP SYNchronize数据包

主机B收到A的SYN

主机B发送SYNchronize-acknowledge

主机A接收B的SYN-ACK

主机A发送确认

主机B收到ACK。 TCP套接字连接是ESTABLISHED。

答案 1 :(得分:1)

因为您需要TCP连接来发送HTTP,并且TCP具有3次握手。

  

基本上,我需要知道建立TCP连接的原因。

因为HTTP在TCP上运行。它不存在于真空中。

答案 2 :(得分:0)

TCP提供排序,自动重传和拥塞控制。我说这些是设计采用TCP的明显原因。

相反,例如UDP很快。没有握手。但UDP数据包没有排序,数据包也可能丢失(没有自动重传),也没有拥塞控制。

您可以尝试在UDP中使用HTML等实现数据传输。这并不容易,您仍然需要重新发明订购和重传,以实现可靠的无损交付。

如果您不关心有损或有点无序转移,那么您可能不需要TCP。 (例如实时视频)

-

另一方面,避免TCP获得更好的性能并不一定是个坏主意。阅读QUIC。 (它还具有丢失恢复和拥塞控制等功能,您不应期望它非常轻便。)