`

【转载】理解TCP为什么需要进行三次握手(白话)

阅读更多
理解TCP为什么需要进行三次握手(白话)
 
首先简单介绍一下TCP三次握手
  www.2cto.com  
    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
 
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
 
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;
 
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。
 
通过这样的三次握手,客户端与服务端建立起可靠的双工的连接,开始传送数据。
 
三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传机制来保证的。
 
    但是为什么一定要进行三次握手来保证连接是双工的呢,一次不行么?两次不行么?我们举一个现实生活中两个人进行语言沟通的例子来模拟三次握手。
 
第一次对话:
 
   老婆让甲出去打酱油,半路碰到一个朋友乙,甲问了一句:哥们你吃饭了么?
 
结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也没个音,不跟你说了,沟通失败。说明乙接受不到甲传过来的信息的情况下沟通肯定是失败的。
 
如果乙听到了甲说的话,那么第一次对话成功,接下来进行第二次对话。
 
第二次对话:
 
   乙听到了甲说的话,但是他是老外,中文不好,不知道甲说的啥意思也不知道怎样回答,于是随便回答了一句学过的中文 :我去厕所了。甲一听立刻笑喷了,“去厕所吃饭”?道不同不相为谋,离你远点吧,沟通失败。说明乙无法做出正确应答的情况下沟通失败。
 
如果乙听到了甲的话,做出了正确的应答,并且还进行了反问:我吃饭了,你呢?那么第二次握手成功。
 
通过前两次对话证明了乙能够听懂甲说的话,并且能做出正确的应答。接下来进行第三次对话。
 
第三次对话:
 
甲刚和乙打了个招呼,突然老婆喊他,“你个死鬼,打个酱油咋这么半天,看我回家咋收拾你”,甲是个妻管严,听完吓得二话不说就跑回家了,把乙自己晾那了。乙心想:这什么人啊,得,我也回家吧,沟通失败。说明甲无法做出应答的情况下沟通失败。
 
如果甲也做出了正确的应答:我也吃了。那么第三次对话成功,两人已经建立起了顺畅的沟通渠道,接下来开始持续的聊天。
 
通过第二次和第三次的对话证明了甲能够听懂乙说的话,并且能做出正确的应答。
 
可见,两个人进行有效的语言沟通,这三次对话的过程是必须的。
 
同理对于TCP为什么需要进行三次握手我们可以一样的理解:
 
为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。
 
分享到:
评论

相关推荐

    TCP三次握手PPT课件.ppt

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

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

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

    Wireshark入门 tcp三次握手

    为了更好地理解TCP三次握手的过程,我们可以通过Wireshark来进行实际的观察与分析。 ##### 4.1 准备工作 - **安装Wireshark**:首先确保您的计算机上已经安装了最新版本的Wireshark。 - **选择捕获接口**:启动...

    TCP协议三次握手过程分析

    3. **第三次握手**:客户端接收到服务器的SYN+ACK报文段之后,需要再次确认服务器的连接请求,因此发送一个包含ACK标志位置为1的TCP报文段,该报文段的确认号设置为服务器序列号加1(ack=y+1)。这个报文段的发送...

    TCP报文分析--三次握手 四次挥手

    TCP 报文分析--三次握手四次挥手 TCP 报文分析是计算机网络中的重要内容, TCP(Transmission Control Protocol)是一种面向连接的传输控制协议,它提供了可靠的数据传输服务。在这个过程中,三次握手和四次挥手是 ...

    TCP三次握手.docx

    什么是 TCP 三次握手机制? TCP 三次握手机制是指在 TCP 连接建立过程中,客户端和服务器之间进行三次握手机制的过程。这三个阶段分别是:第一次握手、第二次握手和第三次握手。在这三个阶段中,客户端和服务器之间...

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

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

    TCP三次握手

    TCP三次握手,TCP三次握手是TCP连接建立过程的可靠性保证

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

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

    Wireshark抓包分析TCP“三次握手,四次挥手”.doc

    (2)为什么我们抓包抓到的不是“四次挥手”,而是“三次挥手”呢?这里涉及到 LInux 的 TCP 时延机制,当被挥手端(这里是 12672 端口)第一次收到挥手端(这里是 443 端口)的“FIN”请求时,并不会立即发送 ACK,...

    TCP/IP协议三次握手

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

    tcp协议三次握手过程

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

    模拟TCP三次握手

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

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

    在深入理解Wireshark抓包分析TCP三次握手及四次挥手之前,我们首先需要了解OSI七层模型与TCP/IP四层/五层模型的基础概念,这有助于我们更好地理解数据在网络中的传输过程。 1. **物理层**:负责通过物理介质传输...

    TCP/IP的三次握手建立连接(带图释)

    在TCP/IP的连接建立过程中,三次握手是至关重要的步骤。这一过程确保了双方都能正确接收和理解彼此的连接请求,从而建立起可靠的通信链路。下面详细解析三次握手的过程: 1. **第一次握手**:客户端(如图中的...

    TCP三次握手和四次挥手面试题详解.pdf

    TCP三次握手和四次挥手是互联网中最重要的基础知识点之一,尤其在面试中,它们是检验应聘者是否具备扎实网络基础知识的常用问题。面试官通常会考察应聘者对这些过程的理解程度,以及能否准确描述其细节。以下是关于...

    TCP协议三次握手示意图

    3. 第三次握手(ACK):客户端收到服务器的SYN+ACK报文后,需要对服务器的SYN进行确认,因此发送一个ACK报文,确认号ack设置为服务器的序列号seq+1。此时,客户端进入ESTABLISHED状态,表示已经可以开始数据传输。当...

    tcp三次握手

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

    tcp三次握手协议

    TCP(Transmission Control...TCP的连接建立和关闭都是通过请求-响应模式进行的,三次握手确保了连接的可靠性,而挥手四次则保证了连接的优雅关闭。理解这些基本概念对于网络分析、故障排查以及优化TCP性能都至关重要。

Global site tag (gtag.js) - Google Analytics