TCP连接为什么三次握手四次挥手

前几天面试某电商被问住了,问的很细,我就说了说连接过程,必然凉凉。在csdn上找了一篇很详细的博客。https://blog.csdn.net/hyg0811/article/details/102366854

看之前先给解释一下ACK、SYN等缩写的含义。

SYN: 同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。是TCP连接的第一个包。

ACK: ACK (Acknowledge character)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。

ESTABLISHED:已连接的

MSS: 能被接收的最大报文段长度

为什么需要三次握手,两次不行吗?(经典第一问)
弄清这个问题,我们需要先弄明白三次握手的目的是什么,能不能只用两次握手来达到同样的目的。

第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
因此,需要三次握手才能确认双方的接收与发送能力是否正常。

原文地址:https://www.cnblogs.com/onlyzhangmeng/p/12053164.html

时间: 2024-10-09 09:13:05

TCP连接为什么三次握手四次挥手的相关文章

TCP传输的三次握手四次挥手策略

TCP传输的三次握手: 首先发送端(前端)发送一个带有SYN标志的数据包给对方. 1.  接收端(后端)收到后,回传一个带有SYN/ACK标志的数据包以表示传达确认信息. 2.  发送端(前端)在回传一个带ACK标志的数据包,代表"握手"结束 3.  若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的方式发送相同的数据包 断开一个TCP连接则需要"四次挥手": 第一次挥手:主动关闭方发送FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭

TCP/IP报文 三次握手 四次挥手

1.TCP报文格式  TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.  (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.  (3)标志位:共6个,即URG.ACK.PSH.RST.SYN.FIN等,具体含义如下:  (A)URG:紧急指针

tcp协议的三次握手四次挥手

第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号 第二次握手:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包和一个ack包,此时服务器进入SYN_RECV状态: 第三次握手:客户端收到服务器的SYN包和ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手. 完成三次握手,客户端与服务器开始传送数据 第一次挥手:客户端A发送一个"FIN

TCP 传输的三次握手四次挥手策略

为了准确无误地把数据送达目标处,tcp协议采用了三次握手策略.用tcp协议把数据包送出后,tcp不会对传送后的情况置之不理,它一定会向对方确认是否是成功送达.握手过程中使用了tcp的标志:syn和ACk. 发送端首先发送一个带SYN标志的数据包给对方.接收端收到后,会穿一个带有syn/ack标志的数据包以示传达确认信息. 最后,发送端再回传一个带ACK标志的数据包,代表"握手"结束. 若是在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包. 断开一个TCP链接则

详解TCP连接的“三次握手”与“四次挥手”(下)

上文链接: 详解TCP连接的"三次握手"与"四次挥手"(上) 四.TCP的四次挥手(Four-Way Wavehand) 0.前言 对于"三次握手"我们耳熟能详,因为其相对的简单.但是,我们却不常听见"四次挥手",就算听过也未必能详细地说明白它的具体过程.下面就为大家详尽,直观,完整地介绍"四次挥手"的过程. 1."四次挥手"的详解 所谓的四次挥手即TCP连接的释放(解除).连接的释放必

TCP三次握手/四次挥手详解

TCP三次握手/四次挥手详解 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge

TCP三次握手&amp;四次挥手(示意图)

经典的三次握手示意图:(#add,“握手”即图中左边到右边的连线) 经典的四次握手关闭图: TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number(确认号码

[svc]tcp三次握手四次挥手&amp;tcp的11种状态(半连接)&amp;tcp的time-wait

TCP的状态转化过程(11中状态)以及TIME_WAIT状态 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下.哎呀妈呀,几千个TIME_WAIT. 为什么TIME_WAIT这么多 TCP连接的"三次握手"与"四次挥手" TCP漏洞:半连接 TCP半连接与SYN攻击 TCP连接状态详解 原文地址:h

tcp三次握手四次挥手图解

建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复ACK报文,并为这次连接分配资源(即建立了客户端到服务端的单向连接).服务端接收到ACK报文后也向服务端发送ACK报文,并分配资源(即建立了服务端到客户端的单向连接),这样TCP双向连接就建立成功了. 二.如何通过四次挥手-------------断开连接 [强调]中断连接端可以是Client端,也可以