美文网首页
TCP三次握手,四次挥手原因

TCP三次握手,四次挥手原因

作者: 我有一条小黑狗 | 来源:发表于2022-03-18 11:12 被阅读0次

    以下内容仅作为自己的理解

    三次握手为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误;本质上就是双方要连接,要等待对端同意并返回确认,一端请求后收到确认包就意味着,网络可达并且对端同意建立连接。最后的模型则是

    A向B发送连接请求

    B确认接受A的连接请求

    B向A发送确认连接请求

    A确认B的请求

    中间两次可以一起返回,所以是三次;

    因为建立连接双方都需要确认对方收到了自己的序列号,如果是两次话的,A->B请求,然后B->A确认并且发送请求确认A是否收到请求;此时两次握手完毕,但是由于B向A发送请求后,A没有回复,所以B认为A接收能力是有问题的,无法建立安全的请求。因为三次握手就可以满足请求需求,可以提高连接的速度与效率,如果是多次握手,就会造成资源浪费

    同理,四次挥手为了确保数据能够完成传输。

    A向B发出释放连接请求

    B在收到A的连接释放请求后,随即向A发送确认报文

    当B已经没有要发送的数据时,B就会给A发送一个释放连接报文

    当A收到B的释放连接请求时,必须对此发出确认,B在收到A的确认之后,进入到CLOSED(关闭)状态

    补充:一次TCP连接支持多少次HTTP请求

    http 1.0:默认一次tcp连接进行一次http请求之后就会断开(由于资源浪费,有些服务器支持通过配置支持多次)

    http 1.1:请求头配置:Connection:keep-alive = true,只要tcp连接不断开(默认2小时),一直可以进行http请求,但是一个tcp连接同一时间只支持一个http请求;如果设置Connection:keep-alive = false,只能发一次http请求

    http 2.0:多路复用技术Multiplexing,一个tcp可以并发多个http请求(理论无上限,但是一般浏览器会有tcp并发数的限制)

    相关文章

      网友评论

          本文标题:TCP三次握手,四次挥手原因

          本文链接:https://www.haomeiwen.com/subject/xkmaoltx.html