用一个小的例子来说明为什么TCP采用三次握手才能保证连接成功
Posted water-moon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用一个小的例子来说明为什么TCP采用三次握手才能保证连接成功相关的知识,希望对你有一定的参考价值。
关于TCP的三次握手,有很多朋友还在疑惑为什么是三次,而不是两次,LZ想了一下用一个例子来说明最好。
客户(打电话给前台): 喂,你好! (一次握手)
然后传送文件过去。
(如果前台没有人,你文件传送过去也没人处理啊。。。)
客户(打电话给前台):喂,你好!(第一次握手)
前台: 你好!请问什么事情?(第二次握手)
然后客户直接传送文件过去。
几秒钟后,前台:你好!请问你哪位,什么事情?(服务器超时重发SYN+ACK)
又几秒钟后,前台:你好!请问你哪位,什么事情?(服务器超时重发SYN+ACK)
。。。
半分钟后,前台:那个瓜娃子,骚扰嗦!(挂掉电话)(服务器重发次数达到,不再重发)
(OK,客户传送过去的文件还是没有人处理。。。)
我们再来看三次握手:
客户(打电话给前台):喂,你好!(第一次握手)
前台: 你好!请问什么事情?(第二次握手)
客户:我是XXX,你接收传真处理一下。(第三次握手)
然后客户传送文件过去。
前台安排业务员去拿好传真,处理完并与客户直接沟通。(fork一个独立进程与客户端交互)
业务员接手与该客户的联系,并处理客户的各种请求。
前台继续等待其他客户打来电话。(服务器程序继续阻塞等待其他连接请求)
(OK,公司一片和谐,各司其职,客户的需求马上得到处理)
通过LZ以上的描述,大家应该知道为什么是三次握手,而不是两次握手了吧,不仅仅客户端要确认服务器端能连接,服务器也要确保与客户端能连接,这样才能是有效的连接。
以上是关于用一个小的例子来说明为什么TCP采用三次握手才能保证连接成功的主要内容,如果未能解决你的问题,请参考以下文章