TCP 创建连接中三次握手都做了那些事?
第一次:
客户端:在吗?
服务端:在。
第二次:
客户端:可用吗?
服务端:可用。你确定要用吗?
第三次:
客户端:是。我们开始吧。
服务端:好。
链接创建成功。开始通信。
——————————————————————————————————————
但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?
我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手。
第一次对话:
老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么?
结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也没个音,不跟你说了,沟通失败。说明乙接受不到甲传过来的信息的情况下沟通肯定是失败的。
如果乙听到了甲说的话,那么第一次对话成功,接下来进行第二次对话。
第二次对话:
乙听到了甲说的话,但是他是老外,中文不好,不知道甲说的啥意思也不知道怎样回答,于是随便回答了一句学过的中文 :我去厕所了。甲一听立刻笑喷了,“去厕所吃饭”?道不同不相为谋,离你远点吧,沟通失败。说明乙无法做出正确应答的情况下沟通失败。
如果乙听到了甲的话,做出了正确的应答,并且还进行了反问:我吃饭了,你呢?那么第二次握手成功。
通过前两次对话证明了乙能够听懂甲说的话,并且能做出正确的应答。接下来进行第三次对话。
第三次对话:
甲刚和乙打了个招呼,突然老婆喊他,“你个死鬼,打个酱油咋这么半天,看我回家咋收拾你”,甲是个妻管严,听完吓得二话不说就跑回家了,把乙自己晾那了。乙心想:这什么人啊,得,我也回家吧,沟通失败。说明甲无法做出应答的情况下沟通失败。
如果甲也做出了正确的应答:我也吃了。那么第三次对话成功,两人已经建立起了顺畅的沟通渠道,接下来开始持续的聊天。
————————————————————————————————————————
实际上就是为了两边的请求都能被识别,所以逻辑上最少三次。
————————————————————————————————————————
不过个人感觉为什么是三次而不是二次,不是因为为了证明甲能听懂乙并回应(第二次乙能正确的响应甲,说明俩人之间沟通已无障碍了),而是怕出现以下情况而浪费感情。
这个情景是这样的:
甲在路上跟乙打招呼,由于刮风,这句活被吹跑了(延迟)。
甲又跟乙打了个招呼,这次乙听到了并作出了回应。此时不管是三次握手还是两次握手两个人都能愉快的沟通。0.1秒后俩人四次挥手告别了。此时被风刮跑的那句话又传到了乙的耳朵里,乙认为甲又要跟他沟通,所以做出了响应的回应。问题出现了:假如采用2次握手乙就认定甲要跟他沟通,于是就不停的等,浪费感情。可如果是采用3次握手,乙等了一会后发现甲没有回应,他就认为甲走了,然后自己也就走了!
————————————————————————————————————————
所以三次握手是保证了:双工和容错。
引用:
http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html
-
分享到:
相关推荐
### TCP协议三次握手过程分析 #### 一、TCP协议简介 传输控制协议(Transmission Control Protocol,简称TCP)是互联网中最核心的协议之一,它属于传输层协议,主要负责在网络环境中提供可靠的、面向连接的数据...
TCP 协议三次握手过程详解 TCP(Transmission Control Protocol)传输控制协议是指建立一个可靠的连接服务,采用三次握手确认建立一个连接。三次握手过程是 TCP 协议的核心部分,保证了数据传输的可靠性和正确性。 ...
标题中的“TCP三次握手PPT”指的是TCP协议在建立连接时执行的三次握手过程,这一过程是TCP可靠传输的基础。TCP是一种面向连接的传输层协议,确保数据在传输前双方已建立可靠的通信链路。 描述中提到的“TCP三次握手...
三次握手,TCP/IP协议三次握手,TCP/IP协议三次握手
- **设置过滤器**:为了专注于TCP三次握手的过程,可以在Wireshark的捕获过滤器中设置`tcp`或`tcp[13] & 2`,这样可以只捕获TCP协议的数据包。 ##### 4.2 观察TCP三次握手 - **第一次握手**:客户端向服务器发送一...
在提供的文件中,`TCP协议三次握手示意图.gif`和`TCP协议三次握手.vsd`应该是展示这个过程的图形化表示。`.gif`文件可能是一个动态图像,直观地展示了三次握手的过程,而`.vsd`文件则可能是Visio绘制的详细流程图,...
TCP的三次握手是建立可靠连接的重要过程,它确保了两个通信端点都能正确理解对方的意图,避免了数据丢失或重复发送的问题。 首次握手:在TCP连接建立之初,客户端会发送一个带有SYN(同步序列编号)标志的数据包给...
在TCP/IP通信中,TCP连接的建立和关闭过程分别称为三次握手和四次挥手,这两个过程对于理解TCP连接的工作原理至关重要。 首先,我们来详细讲解TCP的三次握手过程: 1. **第一次握手**:客户端(Client)发送一个...
**三次握手** 是TCP连接建立过程中不可或缺的步骤,它确保了两个主机之间可以正确建立连接。具体过程如下: 1. **SYN(同步序列编号)**:客户端首先发送一个带有SYN标志的数据段,其中包含一个随机生成的序列号A。...
TCP 三次握手机制是TCP/IP协议中的一种面向连接的可靠传输机制,它是传输层中的核心机制。在网络通信中,TCP 三次握手机制保证了数据的可靠传输和面向连接的通信。 什么是 TCP 三次握手机制? TCP 三次握手机制是...
首先,来详细介绍TCP三次握手的过程: 1. 第一次握手:客户端发送一个带有SYN(同步序列编号)标志的数据包给服务器端,进入SYN_SEND状态,表示客户端希望与服务器建立连接。这个包中同时也会包含客户端的初始...
### 模拟TCP三次握手 在计算机网络领域中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为应用层提供了一个...理解TCP三次握手的过程对于深入学习网络编程和协议设计具有重要意义。
在TCP/IP通信中,为了确保两个通信端点能够建立一个可靠的连接,TCP协议采用了“三次握手”机制。 第一次握手:当客户端想要与服务器建立连接时,它会生成一个随机的序列号(syn=j),封装在一个SYN(Synchronize ...
这个过程被称为“三次握手”。第一次握手,客户端发送一个SYN同步包给服务器;第二次握手,服务器回应一个SYN+ACK包,同时自己也发送一个SYN包;第三次握手,客户端再发送一个ACK包,确认服务器的SYN。这样就建立了...
首先,我们来看“TCP三次握手”。当两个设备想要建立一个TCP连接时,它们必须经过以下三个步骤: 1. 第一次握手:客户端发送一个带有SYN(同步序列号)标志的数据段,请求建立连接。这个数据段中包含了客户端选择的...
### TCP三次握手详解 #### 一、TCP协议概述 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它通过三次握手建立连接,确保了两端之间的通信能够准确无误地进行。 #...
通过对Wireshark抓包分析TCP三次握手四次挥手的详细了解,我们可以更深入地理解TCP/IP协议的工作原理,这对于网络故障排查、性能优化等方面都有着重要的意义。此外,掌握Wireshark这样的工具也是提高网络技能不可或...
flash作品:tcp三次握手动画演示 计算机网络、多媒体通信课堂大作业、课程设计等。