TCP连接3次握手的理解

来源:互联网 发布:快图浏览 知乎 编辑:程序博客网 时间:2024/04/27 21:15

在TCP的连接中有有这样一个功能:

1:客户端向服务器发送一个syn

2:服务器回一个ack并发一个syn

3:客户端回一个ack

刚开始一直很疑问,仅仅要1.2不就行了,再网上找了找发现好多人有同样的疑问,现在把我的理解写出来,和大家交流。

首先我们要知道为什么要进行连接,这是为了发送数据做准备。

 

首先客户端对服务器说:可以开始数据传递?

服务器说:可以。并问一句:可以开始数据传递?

客户端:可以。

然后双方就可以进行数据传递了。

如果是两次握手的话,服务器就应该说:可以。

这样就结束了,但从数据传递的角度来说这是有缺陷的,因为数据传递包括了发和收两个基本动作,当服务器收到客户端传递数据的请求时,这表明客户端发送功能正常,服务器接受功能正常,如果客户端接受了服务器的回应但并没有再回应服务器时,那么客户端是知道双方发送和接受都是正常的,但服务器不知道自己的发送功能是否正常,因此最后的一个握手就是告诉服务器我们都是正常的,可以开始数据传递了。

下面这个例子可以生动的理解3次握手。

一个中国人和一个美国人要进行交流

美国人说:could you speak english(你能说英语吗?)

中国人说:可以,但我认为汉语更好。

美国人说:好吧,咱用汉语交流。

原创粉丝点击