白话理解TCP为什么一定要进行三次握手

所属分类: 网络 / 网络协议 阅读数: 1625
收藏 0 赞 0 分享

首先简单介绍一下TCP三次握手

    在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为什么需要进行三次握手我们可以一样的理解:

为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。

更多精彩内容其他人还在看

域名劫持、域名欺骗、域名污染是什么意思?DNS是啥?

这篇文章主要介绍了域名劫持、域名欺骗、域名污染是什么意思?DNS是啥?,本文讲解了DNS 是啥?DNS 有啥用?域名的结构是咋样?“域名解析”是咋实现?域名服务器如何知道这些信息?等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

DDNS是什么意思?ddns有什么作用和功能?

每个路由器的设置里面都有一个DDNS的功能,很多网友们都清楚DNS是什么,但是对于从未涉及过的DDNS,很多网友们都提问:DDNS是什么?有什么用?针对此问题,本文就为大家进行解答
收藏 0 赞 0 分享

TCP的三次握手和四次挥手

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
收藏 0 赞 0 分享

HTTP 协议详解(超级经典)

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器
收藏 0 赞 0 分享

HTTP 协议详解(图文介绍)

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器
收藏 0 赞 0 分享

IPV6网络协议基础知识 IPV6地址和IPV6报文格式详细介绍

这篇是介绍IPV6入门知识文章,现在互联网很普及,所以IPV6地址协议应运而生,IPV6协议使用128位地址替代32位的IPV4地址,下面我们来看看IPV6地址和IPV6报文格式相关内容,需要的朋友可以参考下
收藏 0 赞 0 分享

图解TCP/IP协议 帮助大家轻松理解三次握手

这篇文章主要介绍了图解TCP/IP协议,帮助大家轻松学会TCP/IP协议,需要的朋友可以参考下
收藏 0 赞 0 分享

如何查看电脑MAC地址 查看电脑MAC地址的方法

这篇文章主要为大家详细介绍了查看电脑MAC地址的方法,教大家如何查看电脑的MAC地址,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

SIP协议错误代码code大全(中英文对照)

这篇文章主要介绍了SIP协议错误代码code大全(中英文对照),需要的朋友可以参考下
收藏 0 赞 0 分享

解决双ip网络打印机地址冲突的方法

单位台机电脑30台,电信10M光纤,一台网络打印机。由于安全原因,每台电脑IP地址手动设置,IP段192.168.1.1--192.168.1.200。由于没有网络管理员,用户会经常改动ip地址,导致与网络打印机冲突,从而使整个单位的打印工作无法打印
收藏 0 赞 0 分享
查看更多