TCP 三次握手和四次挥手

TCP 全称
  • Transmission Control Protocol:传输控制协议

三次握手流程
  • 为了准确无误地把数据送达目标处,TCP 协议采用三次握手策略

  • 三次握手示意图
    请添加图片描述

  • 客户端:发送带有 SYN 标志的数据包,一次握手,服务端
  • 服务端:发送带有 SYN/ACK 标志的数据包,二次握手,客户端
  • 客户端:发送带有带有 ACK 标志的数据包,三次握手,服务端

  • 为什么要三次握手 ?
    • 三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的
      • 第一次握手
        • client 什么都不能确认,
        • server 确认对方发送正常,自己接收正常
      • 第二次握手
        • client 确认:自己发送、接收正常,对方发送、接收正常
        • server 确认:对方发送正常,自己接收正常
      • 第三次握手
        • client 确认:自己发送、接收正常,对方发送、接收正常
        • server 确认:自己发送、接收正常,对方发送、接收正常
    • 所以三次握手就能确认双发收发功能都正常,缺一不可

  • 为什么要传回 SYN ?
    • 服务端传回客户端所发送的 SYN 是为了告诉发送端,接收到的信息确实就是客户端所发送的信号了
    • SYN 是 TCP/IP 建立连接时使用的握手信号
    • 在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答表示接收到了这个消息,最后客户机再以 ACK(Acknowledgement [ 确认字符 ])消息响应
    • 这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递

  • 传了 SYN,为啥还要传 ACK ?
    • 双方通信无误必须是两者互相发送信息都无误
    • 传了 SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要 ACK 信号来进行验证

四次挥手流程
  • 断开一个 TCP 连接则需要 四次挥手
    请添加图片描述

    • 客户端:发送一个 FIN,用来关闭客户端到服务器的数据传送,服务器收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加 1
    • 和 SYN 一样,一个 FIN 将占用一个序号服务器,关闭与客户端的连接,发送一个 FIN 给客户端,客户端发回 ACK 报文确认,并将确认序号设置为收到序号加 1

  • 为什么要四次挥手 ?
    • 任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态
    • 当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了 TCP 连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tytler

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

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

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

打赏作者

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

抵扣说明:

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

余额充值