zoukankan      html  css  js  c++  java
  • 用一个小的例子来说明为什么TCP采用三次握手才能保证连接成功

    关于TCP的三次握手,有很多朋友还在疑惑为什么是三次,而不是两次,LZ想了一下用一个例子来说明最好。

    场景:
    办公室有一名前台(服务器),若干业务员(fork出来的进程)
    客户(客户端)
     
    为什么我们说三次握手才是有保障的,才是稳定的,我们看一下,如果是一次握手

    客户(打电话给前台): 喂,你好!  (一次握手

    然后传送文件过去。

    (如果前台没有人,你文件传送过去也没人处理啊。。。)

     
    如果是两次握手
     

    客户(打电话给前台):喂,你好!(第一次握手

    前台: 你好!请问什么事情?(第二次握手

    然后客户直接传送文件过去。

    几秒钟后,前台:你好!请问你哪位,什么事情?(服务器超时重发SYN+ACK

    又几秒钟后,前台:你好!请问你哪位,什么事情?(服务器超时重发SYN+ACK

    。。。

    半分钟后,前台:那个瓜娃子,骚扰嗦!(挂掉电话)(服务器重发次数达到,不再重发

    (OK,客户传送过去的文件还是没有人处理。。。)


     
    我们再来看三次握手

    客户(打电话给前台):喂,你好!(第一次握手

    前台: 你好!请问什么事情?(第二次握手

    客户:我是XXX,你接收传真处理一下。(第三次握手

    然后客户传送文件过去。

    前台安排业务员去拿好传真,处理完并与客户直接沟通。(fork一个独立进程与客户端交互

    业务员接手与该客户的联系,并处理客户的各种请求。

    前台继续等待其他客户打来电话。(服务器程序继续阻塞等待其他连接请求

    (OK,公司一片和谐,各司其职,客户的需求马上得到处理)

    通过LZ以上的描述,大家应该知道为什么是三次握手,而不是两次握手了吧,不仅仅客户端要确认服务器端能连接,服务器也要确保与客户端能连接,这样才能是有效的连接。

  • 相关阅读:
    PHP变量的使用
    php基础知识一
    PHP之 xampp 安装环境
    自动化测试框架selenium+java+TestNG——配置篇
    代码规范体会篇
    寒假作业2(两篇随笔)
    寒假作业二之自学计划
    寒假作业第二篇随笔(A+B)
    寒假随笔(开启程序设计大佬模式)
    页面即时消息提醒的实现
  • 原文地址:https://www.cnblogs.com/water-moon/p/5544340.html
Copyright © 2011-2022 走看看