• TCP三次握手


    最近在看《图解HTTP》这本书,对于其中的一点我很疑惑,TCP为什么要握三次手,两次不行吗?两次不就可以建立连接了吗?

    介绍:

    TCP三次握手的流程就如上图所示:

    首先,我们明确下主动发送请求的就叫客户端,像浏览器、APP等,而响应请求的就叫服务端。

    客户端首先发送一个带有SYN(synchronize建立联机)标志的数据包给服务端。服务端接受到了后,返回一个带有SYN/ACK(acknowledgement确认)标志的数据包以示确认传达信息。最后,客户端再传回一个带有ACK标志的数据包,代表‘握手’结束。

    原因:

    接下来我们分析下为什么要‘握’三次手:

    第一次握手:

    可得:客户端的发送能力正常、服务端的接收能力正常。服务端此时可以得出自己的接收能力正常,客户端的发送能力正常,但是客户端并不知道,所以需要服务端给它一个爱的肯定,发送一个带有SYN/ACK标志的数据包给客服端。

    第二次握手:

    可得:客户端收到了服务端带有SYN/ACK标志的数据包,客户端可以得知自己的发送和接收数据包的能力正常,还有服务端的接收和发送都是正常的。但是,服务端并不清楚它的发送能力是正常的,服务端需要客户端给它来个爱的反馈。那还说什么呢,客户端赶紧得发送ACK数据包来帮助服务端确认自己的发送能力。

    第三次握手:

    服务端得到了客户端带有ACK标志的数据包,说明它的的发送和接收功能都是正常的。

    那么:你正常,我正常,TCP连接就正常,我们开始数据传输吧~

    问题少年来了:如果发送过程中断了呢?

    答:TCP协议会再次以相同的顺序发送相同的数据包。

  • 相关阅读:
    替换TStrings
    WordPress数据备份方案
    图像反色
    通过网络复制文件
    SQL Server的patindex和charindex的用法
    C冒泡排序 @100到200素数
    正则。IP验证
    C以二进制读、写、文本
    HTML下拉框、文本框、复选框!
    HTM页面获得本机时间
  • 原文地址:https://www.cnblogs.com/caoshufang/p/12884828.html
Copyright © 2020-2023  润新知