笔记:TCP握手为什么是3次而不是2次?

这篇具有很好参考价值的文章主要介绍了笔记:TCP握手为什么是3次而不是2次?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这个问题比较常见,这里简单总结一下。

一、两次握手建立连接:流程说明:

1)客户端发送SYN。
2)服务端收到SYN请求后,服务端回复SYN+ACK,然后进入已连接状态。
3)客户端收到SYN+ACK回复后,进入已连接状态。

二、两次握手建立连接:存在的问题

若客户端发送SYN后,没有收到服务端的SYN+ACK回复, 此时客户端处于未连接状态,有两种选择:

1)不再继续连接
此时的服务端可能已经收到了SYN请求且已经回复了SYN+ACK,处于已连接状态。只是由于网络原因导致SYN+ACK被丢弃,所以客户端才未收到SYN+ACK。
由于此时客户端处于未连接状态,自然不会发起断开连接的请求,所以会导致服务端挂着一个垃圾连接
2)客户端重新发送SYN进行连接
此时SYN中的ISN(初始请求序列号)可能发生变化,导致服务端认为是新的连接到来,故又建立了一个连接。
出现了客户端的一次连接请求导致服务端建立了多个连接,即:服务端出现了垃圾连接。即使重新发送SYN时的ISN没有发生变化,也无法解决1)提到的问题。

三、三次握手和两次握手建立连接的本质区别

三次握手建立连接是让客户端先处于已连接状态,然后服务端再进入已连接状态。
而两次握手建立连接则恰好相反,是让服务端先处于已连接状态,然后客户端再进入已连接状态。所以会出现前面提到的问题。文章来源地址https://www.toymoban.com/news/detail-411828.html

到了这里,关于笔记:TCP握手为什么是3次而不是2次?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP为什么需要3次握手?

    一、3次握手过程 客户端向服务端发送一个表示建立连接的SYN报文段,服务端从IP数据报中提取出TCP SYN报文段,为该TCP连接分配需要的缓存和变量,并向客户端发送表示允许连接的报文段ACK。客户端在收到ACK报文段之后,也要给该连接分配缓存和变量,客户端向服务器再发送

    2024年04月26日
    浏览(45)
  • tcp 为什么要三次握手,两次不行吗?为什么?

    TCP使用三次握手(Three-Way Handshake)的过程是为了确保双方建立起可靠的通信连接,并在连接的建立过程中协商必要的参数。两次握手是不够的,原因主要有以下几点: 防止已失效的连接请求被接受: 假设有A和B两台主机,A向B发送了一个连接请求,但由于某些原因导致连接建

    2024年02月20日
    浏览(64)
  • TCP为什么需要进行三次握手深入解析

    首先简单介绍一下TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己

    2024年02月05日
    浏览(47)
  • 白话理解TCP为什么一定要进行三次握手

    首先简单介绍一下TCP三次握手     在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同

    2024年02月08日
    浏览(51)
  • TCP实现原理和为什么需要三次握手?两次握手不可以?四次握手不可以?

    TCP实现原理和为什么需要三次握手?两次握手不可以?四次握手不可以? 1. 什么是TCP协议? TCP:Transmission Control Protocol翻译过来就是传输控制协议,TCP协议是一个面向连接的、可靠的、基于字节流的传输层协议 RFC 793对TCP连接的定义 Connections: The reliability and flow control mechanisms descri

    2024年02月16日
    浏览(49)
  • 说说TCP为什么需要三次握手和四次挥手?

    三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包 主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备 过程如下: 第一次握手:客户端给服务端发一个 SYN 报文,并指明

    2024年04月08日
    浏览(61)
  • 为什么DNS使用UDP而不是TCP详解!

    DNS(Domain Name System)使用UDP(User Datagram Protocol)而不是TCP(Transmission Control Protocol)的主要原因是出于性能和效率的考虑。下面详细解释为什么DNS选择使用UDP协议: 小型请求和快速响应:DNS查询通常是小型请求,仅需要几个字节的数据传输。UDP是无连接的协议,它不需要在通

    2024年02月02日
    浏览(48)
  • TCP四次握手为什么客户端等待的时间是2MSL

    MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。 第三次握手服务端发送FIN报文段,最长情况下经过MSL的时间可以到达客户端,客户端在收到来自服务端的FIN报文段之后发送ACK报文

    2024年02月15日
    浏览(53)
  • TCP为什么是三次握手和四次挥手以及可能出现的问题

    如果是4次,多了一次没啥意义还慢了,如果是两次握手逻辑可能存在下列问题: (这两个方面也可以理解为握手过程中可能出现的问题) 不可靠 TCP协议是可靠的 ,那么 建立的连接也需要确保是双向,可靠的 ; 根据连接过程分析,只有一方收到了另一方的ack确认报文,才能证

    2024年02月03日
    浏览(52)
  • TCP为什么需要三次握手进行连接,二次或四次不可以吗?

    为了确认双方具有接收和发送的能力。 1. 可以阻止重复历史连接的初始化(主要原因)。 2. 可以同步双方的初始序列号。 3. 可以避免资源的浪费。 1. 为了防止旧的重复连接初始化造成混乱。 当客户端发送了一个 SYN 报文后,突然宕机了,并且这个 SYN 报文还被网络阻塞了

    2024年02月16日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包