三次握手、四次挥手过程;TCP保证可靠传输

2023-11-12

一、TCP 3次握手的过程?

  • 建立连接前server端需要监听端口,所以初始状态是LISTEN
  • client端建立连接,发送一个SYN同步包,发送之后状态变成SYN_SENT
  • server端收到SYN之后,同意建立连接,返回一个ACK响应,同时也会给client发送一个SYN包,发送完成之后状态变为SYN_RCVD
  • client端收到server的ACK之后,状态变为ESTABLISHED,返回ACK给server端。server收到之后状态也变为ESTABLISHED,连接建立完成

ACK:确认报文段;
SYN:同步报文段;
FIN:结束报文段。

在这里插入图片描述

1.1 为什么要3次?2次,4次不行吗?

因为TCP是双工传输模式,不区分客户端和服务端,连接的建立是双向的过程。
如果只有两次,无法做到双向连接的建立,从建立连接server回复的SYN和ACK合并成一次可以看出来,他也不需要4次。
挥手为什么要四次?因为挥手的ACK和FIN不能同时发送,因为数据发送的截止时间不同。

二、四次挥手的过程?

  • client端向server发送FIN包,进入FIN_WAIT_1状态,这代表client端已经没有数据要发送了
  • server端收到之后,返回一个ACK,进入CLOSE_WAIT等待关闭的状态,因为server端可能还有没有发送完成的数据
  • 等到server端数据都发送完毕之后,server端就向client发送FIN,进入LAST_ACK状态
  • client收到ACK之后,进入TIME_WAIT的状态,同时回复ACK,server收到之后直接进入CLOSED状态,连接关闭。但是client要等待2MSL(报文最大生存时间)的时间,才会进入CLOSED状态
    在这里插入图片描述

2.1 为什么要等待2MSL的时间才关闭?

  1. 为了保证连接的可靠关闭。如果server没有收到最后一个ACK,那么就会重发FIN。
  2. 为了避免端口重用带来的数据混淆。如果client直接进入CLOSED状态,又用相同端口号向server建立一个连接,上一次连接的部分数据在网络中延迟到达server,数据就可能发生混淆了。

三、TCP怎么保证传输过程的可靠性?

  • 确认应答,序列号:TCP进行传输时数据都进行了编号,每次接收方返回ACK都有确认序列号。
  • 超时重传:如果发送方发送数据一段时间后没有收到ACK,那么就重发数据。
  • 连接管理:三次握手和四次挥手的过程。
  • 流量控制:TCP协议报头包含16位的窗口大小,接收方会在返回ACK时同时把自己的即时窗口填入,发送方就根据报文中窗口的大小控制发送速度。
  • 拥塞控制:刚开始发送数据的时候,拥塞窗口较小 (慢启动),以后每次收到ACK,拥塞窗口先指数规律后线性增大,然后将拥塞窗口和收到的窗口取较小值作为实际发送的窗口。如果发生超时重传,拥塞窗口重置为最小值。这样做的目的就是为了保证传输过程的高效性和可靠性。
  • 校验和:发送方在发送数据之前计算校验和,接收方收到数据后同样计算,如果不一致,那么传输有误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三次握手、四次挥手过程;TCP保证可靠传输 的相关文章

  • 从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

    前言 先来自我介绍 老家农村 家里好不容易把我送到大城市读书 大学非985 211 但在我们老家 能出一个本科大学生也是非常不容易的 因为农村信息的相对闭塞 我对大学专业一无所知 加上分数并非前茅 最后被调剂一个我并不喜欢的专业 这里就不透
  • 浅谈能耗系统在马来西亚连锁餐饮业的应用

    1 背景信息 Background 针对连锁餐饮业能耗高且能源管理不合理的问题 利用计算机网络技术 通讯技术 计量控制技术等信息化技术 实现能源资源分类分项计量和能源资源运行监管功能 清晰描述各分店总的用能现状 实时监测各供电回路的电压 电
  • 成为一个黑客,就按照这个路线来!

    前几天一个同学在聊天中提到毕业后想要从事网络安全方向的工作 虽然他本身也是学计算机的 但是又怕心有余而力不足 因为 从事网络安全方面的工作向来起点都比较高 大学里少有开设这类课程的 在学校能够学到的知识比较有限 网上的关于这方面课程的质量又
  • 2024年最热门的15个科技工作岗位

    1 系统安全管理员 系统安全管理员的任务是确保公司的网络 数据和系统免受网络安全威胁 方法是确保有适当的安全战略并保持最新的合规性和策略 要求 应聘者应具有网络安全职位的工作经验 并对合规性和安全协议的最佳实践有坚实的基础 这个职位通常需要
  • 内网穿透的应用-使用Net2FTP轻松部署本地Web网站并公网访问管理内网资源

    文章目录 1 前言 2 Net2FTP网站搭建 2 1 Net2FTP下载和安装 2 2 Net2FTP网页测试 3 cpolar内网穿透 3 1 Cpolar云端设置 3 2 Cpolar本地设置
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 用户数据中的幸存者偏差

    幸存者偏差 Survivorship bias 是一种常见的逻辑谬误 意思是没有考虑到筛选的过程 忽略了被筛选掉的关键信息 只看到经过筛选后而产生的结果 先讲个故事 二战时 无奈德国空防强大 盟军战机损毁严重 于是军方便找来科学家统计飞机受
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • HarmonyOS 基于eTS高效开发HarmonyOS课程类应用

    随着HarmonyOS 3 0 Beta版的发布 API Version 8新增了大批JS eTS API接口 相信很多开发者已经迫不及待想体验基于eTS的HamronyOS应用开发 本期Codelab 我们将基于API Version 8
  • 2024诸多大厂春招提前启动!Android的程序员还在等什么

    春招 提前批 已开 xdm别打瞌睡了 格力 顺丰 酷狗 沃尔玛中国 理想 科大讯飞等开启春招 开始收简历了 还有hc的企业提前抢人 春招时间短 节奏快 招满即止 就算挂了也绝不能不投 对企业来说 秋招和春招都是储备人才的黄金时期 春招中 除
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573
  • 如何应对Android面试官-> 玩转 ViewPager 懒加载

    前言 ViewPager 缓存页面与预加载机制 通常我们 ViewPager 在使用的是一般都是结合 Fragment 一起使用 我们先来搭一个简单的使用界面 最终搭建出来的效果如下 简单的 ViewPager Fragment 的实现 比
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • 我们为什么使用KafKa

    为什么我们需要使用KafKa https blog csdn net SJF0115 article details 78480433
  • Atlas VPN 曝零日漏洞,允许查看用户真实 IP 地址

    Atlas VPN 已确认存在一个零日漏洞 该漏洞允许网站所有者查看 Linux 用户的真实 IP 地址 不久前 发现该漏洞的人在Reddit上公开发布了有关该零日漏洞的详细信息以及漏洞利用代码 关于 Atlas VPN 零日漏洞 Atla
  • stm32固件升级之U盘(四)

    目录 序言 什么是IAP升级 STM32代码启动介绍 IAP设计思路 bootloader设计 stm32内部flash分区 移植U盘底层源码 总结 序言 对于嵌入式软件开发来说 U盘离线更新固件是一种常用的更新手段 本篇文章讲述了如何通过
  • MyBatis核心配置文件详解

    siwuxie095 MyBatis 核心配置文件详解 1 核心配置文件的名称和位置没有固定要求 1 位置 建议在 src 下 2 名称 建议为 mybatis config xml 2 核心配置文件的内容全部写在根标签
  • delete 与 deleteLater()

    deleteLater 是QT的产物 而C 标准是没有的 delete是C 与QT公用的 所以很多人 是不太相信deleteLater 的 简单地讲一下deleteLater 的作用吧 很多人应该用过 QPointer 吧 deleteLa
  • 小议关于前端HTML的DTD(文档类型定义)

    小议关于前端HTML的DTD 文档类型定义 什么是文档类型定义 Document Type Defination DTD DTD 是用来定义XML文档结构的 HTML可以看做是XML的一种应用 其中DTD作为标准被保留了下来 规定了XML文
  • 放肆一点又何妨(一)-银川与腾格里沙漠

    此时家里的9420智障大音响放着许巍的 生活不止眼前的苟且 由于我不觉得眼前的生活很苟且 于是乎 切成了许巍的 蓝莲花 显然 一首符合心境的歌曲更能提高我的码字速度 言归正传 沙漠回来之后一直想写游记 记录下这一路上遇到的小伙伴 发生以及听
  • ArcGIS Flex热图

    ArcGIS Flex热图 一直都认为HeatMap是一个伟大的widget 它可以清晰的表达当前的热点区域 无论是直观上还是动态性方面 都是一项了不起的二维地图革新 之前在农业项目中多是等值面的应用 等值面它是通过精确插值计算所得到的结果
  • 【线性代数的几何意义】什么是线性代数

    一 什么是线性代数 线性与非线性 非线性问题则可以在一定基础上转化为线性问题求解 线性空间 对所谓的要满足 加法 和 数乘 等八条公理的元素的集合 线性函数 几何意义 过原点的直线 平面 超平面 代数意义 可加性 比例性 可加性 线性的可加
  • elk笔记19--es python api

    elk笔记19 es python api 1 Elasticsearch 1 1 基础连接 写入 查询 1 2 通过 scroll api 拉取数据 2 Indices 2 1 indices 基础创建 删除 3 Ingest 4 Clu
  • H5 页面 不对 px 进行转 rem

    H5 页面使用 postcss px2rem 对 H5 页面进行适配后 px 样式都会转化为 rem 但有些地方的 px 不需 要转化为 rem 不需要进行转化的在样式后面加 no 或 PX 大写 vant 修改样式使用 no 后 px 还
  • Intellij IDEA--插件配置plugins

    公司网络设置代理 File gt settings gt plugins gt Browse repositories gt HTTP Proxy Settings 设置代理服务的ip 端口 查找插件安装 File gt settings
  • 测试框架jmockit入门(示例demo以及踩坑记录)

    一 什么是jmockit jmockit的优点 1 为了让程序更加可靠 健壮 以及保证在项目重构时前后的业务逻辑保持一致 通俗说就是 尽量避免bug 从而需要编写单元测试 2 一个好的单元测试是指 在能测试覆盖它所有的逻辑代码下 同时实现解
  • GPT时代,一定要收藏的结构化提问技巧

    有一种被称为 SMART 的结构化提问方法 可以帮助你更好的组织和明确提出的问题 SMART 是一个缩写 它代表了以下几个关键元素 S Specific 具体 确保问题具体明确 避免模糊或含糊不清的表达 明确你想要得到的具体信息或解决的问题
  • 在cmd命令行输入python出现Warning:This Python interpreter is in a conda environment, but the environment has

    1 当我们在cmd中输入python后出现warning 意思是python的解释器处于conda环境中 但是该环境没有被激活库可能无法加载 解决办法请看官方网站 https conda io activation 2 官方网站是全英文的
  • android linearlayout weight工作原理

    阿里线下一面中 面试官问我 view的渲染过程 回答不会 然后他就问了linearlayout中 weight的工作原理 weight实际上并不能理解为权重 要把其理解为权重 则要把对应的height width 0dp 设 linearl
  • linux系统安装时间的设置

    sudo cp usr share zoneinfo Asia Shanghai etc localtime 覆盖localtime 文件即可 date 命令即可显示正常命令
  • python爬取抖音用户评论_python实现模拟器爬取抖音评论数据的示例代码

    目标 由于之前和朋友聊到抖音评论的爬虫 demo做出来之后一直没整理 最近时间充裕后 在这里做个笔记 提示 大体思路 通过fiddle app模拟器进行抖音抓包 使用python进行数据整理 安装需要的工具 python3 下载 fiddl
  • 2022年最新全国各省五级行政区划代码及mysql数据库代码(省市区县乡镇村)

    2022年最新全国各省五级行政区划代码及mysql数据库代码 省 市 区县 乡镇 村 原创不易 如有遗漏请留言 1 全国统计用区划代码和城乡划分代码更新维护的标准时点为2021年10月31日 2 全国31省 多达 61W 行数据 3 mys
  • 三次握手、四次挥手过程;TCP保证可靠传输

    三次握手 四次挥手过程 一 TCP 3次握手的过程 1 1 为什么要3次 2次 4次不行吗 二 四次挥手的过程 2 1 为什么要等待2MSL的时间才关闭 三 TCP怎么保证传输过程的可靠性 一 TCP 3次握手的过程 建立连接前server