介绍TCP三次握手、传输数据、四次挥手标志为确认号变化规律

TCP协议的三次握手是一个关键过程,用于在客户端和服务器之间建立可靠的连接。以下是三次握手的详细过程,包括标志位、序列号以及ACK的变化规律:

第一次握手

  • 客户端
    • 标志位:SYN=1(表示请求建立连接)
    • 序列号:随机生成一个初始序列号seq=x
    • 发送数据包给服务器,并进入SYN_SENT状态,等待服务器确认

第二次握手

  • 服务器
    • 收到客户端的数据包后,从标志位SYN=1知道客户端请求建立连接
    • 标志位:SYN=1(表示同意建立连接),ACK=1(表示确认客户端的序列号)
    • 确认号:ack=x+1(表示期望收到的下一个字节的序列号)
    • 随机生成一个自己的初始序列号seq=y
    • 发送数据包给客户端,并进入SYN_RCVD状态

第三次握手

  • 客户端
    • 收到服务器的数据包后,检查ACK是否为1以及ack是否为x+1,以确保服务器已确认自己的序列号
    • 标志位:ACK=1(表示确认服务器的序列号)
    • 确认号:ack=y+1(表示期望收到的下一个字节的序列号)
    • 发送数据包给服务器
  • 服务器
    • 收到客户端的数据包后,检查ACK是否为1以及ack是否为y+1,以确保连接建立成功
    • 客户端和服务器均进入ESTABLISHED状态,完成三次握手

随后,客户端和服务器之间可以开始传输数据。在整个过程中,序列号和确认号的变化规律确保了数据的顺序性和可靠性。每次发送数据包时,发送方都会将当前序列号加1,并在接收方确认后,接收方会发送一个带有下一个期望序列号的确认包。这种机制确保了数据的正确传输和接收。

二、传输3包数据

假设客户端向服务器发送3个数据包,序列号分别为seq=x+2, seq=x+3, seq=x+4。

服务器接收到每个数据包后,会回复一个ACK包进行确认。

三、四次挥手

当数据传输完成后,任何一方都可以发起四次挥手来关闭连接。

第一次挥手(假设由客户端发起):

  • 客户端
    • 发送一个FIN包,标志位FIN=1,序列号seq=x+n(n为之前发送的数据包数量+1)

第二次挥手

  • 服务器
    • 收到FIN包后,发送ACK包确认,标志位ACK=1,确认号ack=x+n+1

第三次挥手(服务器关闭连接):

  • 服务器
    • 发送一个FIN包,标志位FIN=1,序列号seq=y+m(m为服务器之前发送的数据包数量+1)

第四次挥手

  • 客户端
    • 收到FIN包后,发送ACK包确认,标志位ACK=1,确认号ack=y+m+1

至此,四次挥手完成,TCP连接关闭。

在整个过程中,序列号和确认号的变化始终保持着连续性,确保了数据的正确顺序和可靠性。每个数据包都有一个唯一的序列号,接收方在发送确认包时,会指定下一个期望接收的序列号。这种机制保证了数据的完整性和顺序性,使得TCP成为一个可靠的传输协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/566731.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是定点数?

在实际的工程应用中,往往会进行大量的数学运算。运算时除了会用到整数,很多时候也会用到小数。而我们知道在数字电路底层,只有「高电平1」和「低电平0」的存在,那么仅凭 0和1 该如何表示小数呢? 数字电路中&#xff0…

共享股东模式:实体门店的创新商业模式

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是共享股东模式? 在传统的商业模式中,实体门店通常由单一的老板或少数股东掌控,并且经营模式相对封闭。然而&…

grafana报错This panel requires Angular (deprecated)

1.原因 报错解释: Grafana在更新到7.0版本后,弃用了AngularJS(一种用于构建大型Web应用的JavaScript框架)。在早期的Grafana版本中,某些面板可能依赖于AngularJS,但这种依赖已经逐步被新的React或Vue面板所…

基于SSM+Vue的护工预约服务小程序和后台管理系统

1、系统演示视频(演示视频) 2、需要请联系

每日一题 — 二分查找

704. 二分查找 - 力扣(LeetCode) 朴素二分查找模板: while(.......){//防止溢出int mid left(right - left)/2;if(........){right mid-1;}else if(......){left mid1;}else{return mid;}} 代码: public int search(int[] num…

【Python进阶实战】Flask接口并发实战

【Python进阶实战】Flask接口并发实现 前言Flask阻塞接口接口实现接口阻塞 Flask并发接口接口实现接口并发 服务部署Windows部署Linux部署gunicorn安装gunicorn运行 结语 前言 Python版本:3.12.3 IDE:Pycharm 2024.1 对于Flask接口阻塞问题&#xff0…

沙漠里的气膜场馆,你见过吗?

在茫茫的沙漠之中,一座独特的建筑傲然而立,宛若一朵盛开的奇葩。这并非是传统的砖瓦建筑,也不是典型的钢筋混凝土构造,而是一座气膜场馆,以其轻盈的身姿和独特的设计,在沙漠中展现出了无与伦比的魅力。 这座…

java锁常识

AQS框架 AQS(AbstractQueuedSynchronizer)是 Java 中用于构建锁和同步器的基础框架。它提供了一种实现同步器的方式,使得开发者可以基于 AQS 构建各种类型的同步工具,如独占锁、共享锁、信号量等。 AQS 主要基于 FIFO 队列&…

Qt 集成OSG

Qt 你好 | 专注于Qt的技术分享平台 一&#xff0c;新建一个 QOsgWidget 类&#xff0c;继承自osgQOpenGLWidget #ifndef QOSGWIDGET_H #define QOSGWIDGET_H#include <QObject> #include <osgViewer/Viewer> #include <osgQOpenGL/osgQOpenGLWidget> class…

一种基于PET和ICT的双功能荧光探针,用于同时识别活细胞中的Cys和H2S

文章解读 文章设计了一种易于合成的双功能荧光探针NJB&#xff0c;通过明显的颜色和荧光变化用于对Cys和H2S的双位点响应&#xff0c;。在检测过程中&#xff0c;发生了光诱导电子转移 (photoinduced electron transfer, PET)和分子内电荷转移 (ICT)过程&#xff0c;NJB的颜色和…

ffmpeg支持MP3编码的方法

目录 现象 解决办法 如果有编译包没有链接上的情况 现象 解决办法 在ffmpeg安装包目录下 &#xff0c;通过./configure --list-encoders 和 ./configure --list-decoders 命令可以看到&#xff0c;ffmpeg只支持mp3解码&#xff0c;但是不支持mp3编码。 上网查寻后发现&…

SpringBoot之@Conditional衍生条件装配详解

文章目录 ☃️前言☃️简介☃️示例❄️❄️ConditionalOnProperty❄️❄️ConditionalOnClass❄️❄️ConditionalOnBean❄️❄️自定义条件 ☃️SpringBoot源码中使用☃️总结 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客…

【圆桌论坛】个人作为嘉宾参与问答环节的总结,Create 2024百度AI开发者大会之AI智能体开发与应用论坛

目录 ⭐前言⭐讨论话题✨本质和价值✨端侧部署✨应用商业模式✨商业模式 ⭐主题总结⭐有趣分享 ⭐前言 首先&#xff0c;非常荣幸和开心作为开发者和创业者代表参加百度Create AI大会分论坛圆桌论坛的问答环节。 在分论坛活动开始前&#xff0c;参加了文心智能体平台&#xff…

JS 删除数组元素( 5种方法 )

No.内容链接1Openlayers 【入门教程】 - 【源代码示例300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3Cesium 【入门教程】 - 【源代码图文示例200】 4MapboxGL【入门教程】 - 【源代码图文示例150】 5前端就业宝典 【面试题详细答案 1000】 文章目录 一、五种…

vue3中web前端JS动画案例(四)侧边栏横幅效果-右下角广告-淘宝案例

myJsAnimation.js, 这里使用了上次封装的动画方法&#xff0c;并进行了改造 /*** 动画的函数* dom 当前对象* JSON 传入元素对象的属性 {"width": 300, "opacity": 50}* * -------------------- 多物体运动&#xff0c;同时运动 ---传入JSON-------------*…

爬虫零基础学习,第一天,安装环境,requests库常用命令的讲解

Python爬虫 爬虫学习思路 URL内容获取,requests的基本常用语法 import requests # 先向目标网站发送请求 url = "http://www.baidu.com" r

【TensorFlow深度学习】人工智能绪论与深度学习前瞻

人工智能绪论与深度学习前瞻 【引言】人工智能的起源与发展机器学习与深度学习的关系深度学习的兴衰与复兴深度学习的特点与前瞻 【引言】 在信息技术蓬勃发展的今天&#xff0c;人工智能已成为推动科技革新和社会进步的关键驱动力。从最初的计算机辅助人类处理信息&#xff0…

UDP文件传输工具之UDP传输的优点和缺点

在当今快节奏的网络通信时代&#xff0c;UDP以其独特的优势&#xff0c;在众多应用场景中扮演着关键角色。本文将深入探讨UDP的优缺点及其应用场景&#xff0c;并重点介绍镭速软件如何通过技术创新&#xff0c;显著提升UDP传输的效率和可靠性。 UDP传输的优点 UDP的显著优势在…

从奇门WMS-A到金蝶云星空通过接口配置打通数据

从奇门WMS-A到金蝶云星空通过接口配置打通数据 接入系统&#xff1a;奇门WMS-A 用于菜鸟的仓库&#xff08;使用其他支持奇门的仓库同理&#xff09;&#xff0c;故而希望能和仓库的wms系统打通&#xff0c;这样我们采购收货&#xff0c;采购入库&#xff0c;销售出库&#xff…

HTML随机点名程序

案例要求 1.点击点名按钮&#xff0c;名字界面随机显示&#xff0c;按钮文字由点名变为停止 2.再次点击点名按钮&#xff0c;显示当前被点名学生姓名&#xff0c;按钮文字由停止变为点名 案例源码 <!DOCTYPE html> <html lang"en"> <head> <m…