TCP 连接三次握手、四次挥手

 我来答
机器1718
2022-06-15 · TA获得超过6843个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:162万
展开全部

TCP(传输控制协议)

IP(网际协议)

建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

进行三次握手的主要作用就是为了: 确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。

需要三次握手才能确认双方的接收与发送能力是否正常。

服务器第一次收到客户端的 SYN 之后,就会处于 SYN_RCVD 状态,此时双方还没有完全建立其连接,服务器会把此种状态下请求连接放在一个队列里,称之为 半连接队列

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

第一次、第二次握手不可以携带数据, 第三次可以

服务器端的资源分配是在二次握手时分配的,而客户端的资源是在完成三次握手时分配的

SYN攻击 :Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪。SYN 攻击是一种典型的 DoS/DDoS 攻击。

防御

断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

这是因为由TCP的半关闭(half-close)造成的: TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

因为TCP的半关闭,客户端节数发送后仍然可以接受数据,确保服务端的数据完全传输完成。

为了保证客户端发送的最后一个ACK报文段能够到达服务器。

SYN 相当于是询问,ACK 相当于是确认

TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手

不要再问我三次握手和四次挥手

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式