tcp三次握手(总结)


该文由本人查阅,收集网络中资料做出总结,有不足希望各位大佬指点。

一,为什么要有tcp三次握手。

TCP三次握手是指TCP协议中建立连接的过程,包括客户端发送同步信号(SYN),服务器回复同步和确认信号(SYN+ACK),客户端再回复确认信号(ACK)。这个过程是为了保证通信双方都准备好了开始传输数据。

二,TCP三次握手是建立TCP连接的重要步骤,主要包括以下三个阶段:

1,发送方向接收方发送一个带有SYN标志的数据包,表示请求建立连接。
2,接收方收到请求后向发送方发送一个带有SYN/ACK标志的数据包,表示同意建立连接。
3,发送方再次向接收方发送一个带有ACK标志的数据包,表示确认连接已经建立。
通过这三次握手,发送方和接收方可以互相确认对方的状态,确保连接的可靠性和稳定性。同时,这也是TCP协议的基本特性之一,保障了数据传输的安全和可靠性。
网络中图片

三,SYN,ACK,等六大标志位作用。

1,SYN(synchronous): 发送/同步标志,用来建立连接,和下面的第二个标志位ACK搭配使用。连接开始时,SYN=1,ACK=0,代表连接开始但是未获得响应。当连接被响应的时候,标志位会发生变化,其中ACK会置为1,代表确认收到连接请求,此时的标志位变成了 SYN=1,ACK=1。
2,ACK(acknowledgement):确认标志,表示确认收到请求。
3,PSH(push) :表示推送操作,就是指数据包到达接收端以后,不对其进行队列处理,而是尽可能的将数据交给应用程序处理;
4,FIN(finish):结束标志,用于结束一个TCP会话;
5,RST(reset):重置复位标志,用于复位对应的TCP连接。
6,URG(urgent):紧急标志,用于保证TCP连接不被中断,并且督促中间层设备

四,为什么不能变成两次握手。

TCP三次握手是为了确保通信双方都能够正常收发数据,建立可靠的连接。第一次握手是客户端向服务器发送一个SYN包,表示客户端想要建立连接。第二次握手是服务器向客户端发送一个ACK包,表示服务器收到了客户端的请求。第三次握手是客户端再次向服务器发送一个ACK包,表示客户端也收到了服务器的确认。这样才能保证双方都能够正常通信,避免数据丢失或者重复发送的问题。如果只进行两次握手,那么可能会发生数据重复发送的情况,从而影响通信的可靠性。和资源的浪费。

五,TCP四次挥手。

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
在这里插入图片描述

六,收集的面试题

问题一,为什么需要三次握手,两次不行吗?

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

三次握手的其中一个重要功能是客户端和服务端交换 ISN(Initial Sequence Number),以便让对方知道接下来接收数据的时候如何按序列号组装数据。如果 ISN 是固定的,攻击者很容易猜出后续的确认号,因此 ISN 是动态生成的。
问题三,挥手为什么要四次

因为当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致之to

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值