`

HTTP协议之TCP之三次握手

阅读更多
TCP 创建连接中三次握手都做了那些事?

第一次:
客户端:在吗?
服务端:在。

第二次:
客户端:可用吗?
服务端:可用。你确定要用吗?

第三次:
客户端:是。我们开始吧。
服务端:好。


链接创建成功。开始通信。


——————————————————————————————————————


但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?
我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手。

第一次对话:

老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么?

结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也没个音,不跟你说了,沟通失败。说明乙接受不到甲传过来的信息的情况下沟通肯定是失败的。

如果乙听到了甲说的话,那么第一次对话成功,接下来进行第二次对话。

第二次对话:

乙听到了甲说的话,但是他是老外,中文不好,不知道甲说的啥意思也不知道怎样回答,于是随便回答了一句学过的中文 :我去厕所了。甲一听立刻笑喷了,“去厕所吃饭”?道不同不相为谋,离你远点吧,沟通失败。说明乙无法做出正确应答的情况下沟通失败。

如果乙听到了甲的话,做出了正确的应答,并且还进行了反问:我吃饭了,你呢?那么第二次握手成功。

通过前两次对话证明了乙能够听懂甲说的话,并且能做出正确的应答。接下来进行第三次对话。

第三次对话:

甲刚和乙打了个招呼,突然老婆喊他,“你个死鬼,打个酱油咋这么半天,看我回家咋收拾你”,甲是个妻管严,听完吓得二话不说就跑回家了,把乙自己晾那了。乙心想:这什么人啊,得,我也回家吧,沟通失败。说明甲无法做出应答的情况下沟通失败。

如果甲也做出了正确的应答:我也吃了。那么第三次对话成功,两人已经建立起了顺畅的沟通渠道,接下来开始持续的聊天。


————————————————————————————————————————

实际上就是为了两边的请求都能被识别,所以逻辑上最少三次。


————————————————————————————————————————

不过个人感觉为什么是三次而不是二次,不是因为为了证明甲能听懂乙并回应(第二次乙能正确的响应甲,说明俩人之间沟通已无障碍了),而是怕出现以下情况而浪费感情。

这个情景是这样的:
甲在路上跟乙打招呼,由于刮风,这句活被吹跑了(延迟)。
甲又跟乙打了个招呼,这次乙听到了并作出了回应。此时不管是三次握手还是两次握手两个人都能愉快的沟通。0.1秒后俩人四次挥手告别了。此时被风刮跑的那句话又传到了乙的耳朵里,乙认为甲又要跟他沟通,所以做出了响应的回应。问题出现了:假如采用2次握手乙就认定甲要跟他沟通,于是就不停的等,浪费感情。可如果是采用3次握手,乙等了一会后发现甲没有回应,他就认为甲走了,然后自己也就走了!




————————————————————————————————————————


所以三次握手是保证了:双工和容错。












引用:
http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html




-



分享到:
评论

相关推荐

    TCP协议三次握手过程分析

    ### TCP协议三次握手过程分析 #### 一、TCP协议简介 传输控制协议(Transmission Control Protocol,简称TCP)是互联网中最核心的协议之一,它属于传输层协议,主要负责在网络环境中提供可靠的、面向连接的数据...

    tcp协议三次握手过程

    TCP 协议三次握手过程详解 TCP(Transmission Control Protocol)传输控制协议是指建立一个可靠的连接服务,采用三次握手确认建立一个连接。三次握手过程是 TCP 协议的核心部分,保证了数据传输的可靠性和正确性。 ...

    TCP三次握手PPT课件.ppt

    标题中的“TCP三次握手PPT”指的是TCP协议在建立连接时执行的三次握手过程,这一过程是TCP可靠传输的基础。TCP是一种面向连接的传输层协议,确保数据在传输前双方已建立可靠的通信链路。 描述中提到的“TCP三次握手...

    TCP/IP协议三次握手

    三次握手,TCP/IP协议三次握手,TCP/IP协议三次握手

    Wireshark入门 tcp三次握手

    - **设置过滤器**:为了专注于TCP三次握手的过程,可以在Wireshark的捕获过滤器中设置`tcp`或`tcp[13] & 2`,这样可以只捕获TCP协议的数据包。 ##### 4.2 观察TCP三次握手 - **第一次握手**:客户端向服务器发送一...

    TCP协议三次握手示意图

    在提供的文件中,`TCP协议三次握手示意图.gif`和`TCP协议三次握手.vsd`应该是展示这个过程的图形化表示。`.gif`文件可能是一个动态图像,直观地展示了三次握手的过程,而`.vsd`文件则可能是Visio绘制的详细流程图,...

    tcp三次握手协议

    TCP的三次握手是建立可靠连接的重要过程,它确保了两个通信端点都能正确理解对方的意图,避免了数据丢失或重复发送的问题。 首次握手:在TCP连接建立之初,客户端会发送一个带有SYN(同步序列编号)标志的数据包给...

    wireshark抓包分析tcp三次握手四次挥手

    在TCP/IP通信中,TCP连接的建立和关闭过程分别称为三次握手和四次挥手,这两个过程对于理解TCP连接的工作原理至关重要。 首先,我们来详细讲解TCP的三次握手过程: 1. **第一次握手**:客户端(Client)发送一个...

    TCP协议书籍(三次握手原理)

    **三次握手** 是TCP连接建立过程中不可或缺的步骤,它确保了两个主机之间可以正确建立连接。具体过程如下: 1. **SYN(同步序列编号)**:客户端首先发送一个带有SYN标志的数据段,其中包含一个随机生成的序列号A。...

    TCP三次握手.docx

    TCP 三次握手机制是TCP/IP协议中的一种面向连接的可靠传输机制,它是传输层中的核心机制。在网络通信中,TCP 三次握手机制保证了数据的可靠传输和面向连接的通信。 什么是 TCP 三次握手机制? TCP 三次握手机制是...

    TCP三次握手与四次挥手.pdf

    首先,来详细介绍TCP三次握手的过程: 1. 第一次握手:客户端发送一个带有SYN(同步序列编号)标志的数据包给服务器端,进入SYN_SEND状态,表示客户端希望与服务器建立连接。这个包中同时也会包含客户端的初始...

    模拟TCP三次握手

    ### 模拟TCP三次握手 在计算机网络领域中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为应用层提供了一个...理解TCP三次握手的过程对于深入学习网络编程和协议设计具有重要意义。

    TCP协议三次握手.doc

    在TCP/IP通信中,为了确保两个通信端点能够建立一个可靠的连接,TCP协议采用了“三次握手”机制。 第一次握手:当客户端想要与服务器建立连接时,它会生成一个随机的序列号(syn=j),封装在一个SYN(Synchronize ...

    网络协议,TCP三次握手,四次挥手

    这个过程被称为“三次握手”。第一次握手,客户端发送一个SYN同步包给服务器;第二次握手,服务器回应一个SYN+ACK包,同时自己也发送一个SYN包;第三次握手,客户端再发送一个ACK包,确认服务器的SYN。这样就建立了...

    tcp三次握手与四次握手及SOCKE函数对应

    首先,我们来看“TCP三次握手”。当两个设备想要建立一个TCP连接时,它们必须经过以下三个步骤: 1. 第一次握手:客户端发送一个带有SYN(同步序列号)标志的数据段,请求建立连接。这个数据段中包含了客户端选择的...

    tcp三次握手

    ### TCP三次握手详解 #### 一、TCP协议概述 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,确保了两端之间的通信能够准确无误地进行。 #...

    wireshark抓包分析tcp三次握手四次挥手详解及网络命令

    通过对Wireshark抓包分析TCP三次握手四次挥手的详细了解,我们可以更深入地理解TCP/IP协议的工作原理,这对于网络故障排查、性能优化等方面都有着重要的意义。此外,掌握Wireshark这样的工具也是提高网络技能不可或...

    flash作品:tcp三次握手动画演示

    flash作品:tcp三次握手动画演示 计算机网络、多媒体通信课堂大作业、课程设计等。

Global site tag (gtag.js) - Google Analytics