博客
关于我
三次握手-四次挥手
阅读量:349 次
发布时间:2019-03-04

本文共 988 字,大约阅读时间需要 3 分钟。

TCP协议在数据传输前需要进行三次握手来建立连接,传输完成后则需要四次挥手来断开连接。了解这些过程对于理解TCP的工作机制至关重要。

三次握手是TCP连接的建立过程,涉及三个步骤:SYN、ACK和FIN。以下是具体细节:

(1) 序号(seq)

序号是32位,用于标识从TCP源端向目的端发送的字节流。发起方在发送数据时标记该序号,确保数据包能够正确重新组合。

(2) 确认序号(ack)

确认序号是32位,只有ACK标志位为1时才有效,ack=seq+1。确认序号用于标识接收方期望接收的下一个序号,确保数据传输的可靠性。

(3) 标志位

标志位共有6个位,分别表示不同的控制功能:

  • URG:紧急指针有效,用于标识紧急数据。
  • ACK:确认序号有效。
  • PSH:接收方应立即将该报文交给应用层。
  • RST:重置连接。
  • SYN:发起新连接。
  • FIN:释放连接。

需要注意的是:

  • 确认序号ack与标志位中的ACK不能混淆。
  • 确认方的ack应为发起方req+1,两端需配对确认。

在第一次握手中,A随机选取初始序号x发送SYN给B。B收到SYN后,随机选取初始序号y发送ACK给A,ack=x+1,序号设置为y。第三次握手,A发送ACK,并设置自己的序号为x+1,ack=y+1,表示已收到B的确认并准备建立连接。

四次挥手是TCP连接断开的过程。由于TCP是全双工连接,每个方向都需要单独关闭。关闭时,发送方发送FIN,接收方返回ACK后关闭对应方向。以下是四次挥手的具体步骤:

  • 发送方发送FIN

    发送方(如A)发送FIN给B,标记为序号i。

  • 接收方返回ACK

    B收到FIN后,返回ACK,序号为i+1,并关闭B的读取通道。

  • 接收方发送FIN

    B发送FIN给A,标记为序号j。

  • 发送方返回ACK

    A收到FIN后,返回ACK,序号为j+1,并关闭A的写入通道。

  • 发送方发送ACK

    A发送ACK确认B的关闭请求,并关闭A的读取通道。

  • 接收方发送ACK

    B收到ACK后,关闭B的写入通道。

  • 通过四次挥手,双方的数据传输完全结束。

    TCP连接的关闭需要遵循“先关读后关写”的原则,确保数据传输顺序。客户端或服务器均可发起挥手动作,close操作会触发挥手过程。

    SYN flood攻击利用TCP三次握手机制,伪造 SYN 请求,导致被攻击端资源耗尽。防御措施包括使用syn cookie技术。

    转载地址:http://zzte.baihongyu.com/

    你可能感兴趣的文章
    NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
    查看>>
    NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控功能实际操作_Summary查看系统和处理器运行情况_viewDataProvenance查看_---大数据之Nifi工作笔记0026
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_使用NIFI表达式语言_来获取自定义属性中的数据_NIFI表达式使用体验---大数据之Nifi工作笔记0024
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群2_实际操作搭建NIFI内嵌模式集群---大数据之Nifi工作笔记0016
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033
    查看>>
    NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_02---大数据之Nifi工作笔记0034
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>