月度归档:2018年12月

重温TCP三次握手协议

今天去一家公司面试,考到了TCP的四次握手协议,感觉基础也都忘记干净了,重新的回顾一下TCP的握手协议情况。

为什么TCP需要握手,才进行数据传输?

当客户端跟服务端进行通信时无法保证客户端到服务端的通信是正常的,需要通过三次握手来保证客户端跟服务端之间的通信正常。

为什么TCP是需要三次握手,而不是两次或者四次?

如果是两次握手,只能是客户端告诉服务端,但是服务端无法知道客户端是否能收到服务端的信息。

如果是四次握手,就造成了资源的一些浪费。

大家看一下下面的这样一个打电话的例子:

  • 第一次握手: A给B打电话说,你可以听到我说话吗?
  • 第二次握手: B收到了A的信息,然后对A说: 我可以听得到你说话啊,你能听得到我说话吗?  
  • 第三次握手: A收到了B的信息,然后说可以的,我要给你发信息啦!

以上就可以确定AB两个人之间的信息是互通的。多一次是资源浪费,少一次无法确认双方是互通的。

 

 

这样就上线客户端跟服务端之间的通信建立,客户端就可以跟服务端进行数据传输。

本文已经被查看636次