TCP/IP协议三次握手与四次挥手

2023-11-09

一.标志位和序号

seq序号 :发送方随机生成的

ack确认序号:ack=seq+1 标志位ACK=1时确认序号有效

SYN标志位:发起一个新连接

ACK标志位:确认序号有效

FIN标志位:断开连接

 

二.三次握手

三次握手是客户端与服务端建立一个TCP连接时,需要客户端和服务端发送三个包建立连接的过程

(1)第一次握手

  客户端将SYN置为1,随机产生一个seq序号=J,将该数据包发送给服务端,客户端此时状态为SYN_SEND

(2)第二次握手

  服务端收到客户端发送的数据包由SYN=1知道客户端要建立连接,客户端将SYN和ACK都置为1,同时发送确认序号ack=J+1

  随机产生一个服务端序号seq=K,将此数据包发送给客户端。服务端此时的状态为SYN_REVD

(3)第三次握手

  客户端收到服务端的数据包,由ACK=1,ack=J+1无误,客户端将ACK置为1,ack=K+1发给服务端

  服务端收到ACK=1,ack=K+1连接建立成功。客户端和服务端此时的状态为ESTABLISHED

 

  

三.四次挥手

四次挥手是断开TCP连接的时候,需要客户端和服务端发送四次包确认连接的断开,断开连接可由服务端或客户端任意一方触发

(1)第一次挥手

  假设客户端主动关闭。客户端发送关闭连接标志位FIN=1,序号seq=m。客户端此时状态为FIN_WAIT_1

(2)第二次挥手

  服务端收到标志位FIN=1,知道客户端要关闭连接,客户端发送标志位ACK=1,确认序号ack=m+1,seq=n。

    服务端并没有发送FIN标志位,因为服务端可能还有数据要发送 。此时服务端处于CLOSE_WAIT状态,客户端处于FIN_WAIT_2状态

(3)第三次挥手

  服务端发送标志位FIN=1,seq=u 。此时服务端处于LAST_ACK状态

(4)第四次挥手

  客户端收到FIN,发送ACK=1,确认序号ack=u+1给服务端。客户端进入TIME_WAIT状态。释放连接完成

 

转载于:https://www.cnblogs.com/suni/p/8674872.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP/IP协议三次握手与四次挥手 的相关文章

随机推荐

  • Python+Selenium-自动化框架登录之验证码识别

    前言 本篇主要记录在项目登录过程中验证码的问题 基于pytesseract和PIL组件实现简单的验证码图片识别 需要自行配置pytesseract PIL环境 目标 获取验证码 自动输入实现登录 一 截取验证码图片信息并保存 访问目标界面
  • Flutter判断当前月份是第几季度、Android判断当前月份是第几季度 、根据月份判断季度方法

    一年有12个月 分为四个季度 怎样判断当前月份是第几个季度呢 方法一 if else 判断 1 flutter 当前月份 int currentMonth DateTime now month 季度 int quarter if curre
  • SpringBoot + MyBatisPlus + MySQL8 实现树形结构查询

    场景 今天在实现权限功能模块时 需要将查询的权限数据 以树形结构的方式返回给前端 功能实现 第一步 权限表结构定义及其功能演示数据 DROP TABLE IF EXISTS baoan privilege CREATE TABLE baoa
  • 3_Docker 常用命令

    进程命令 启动docker服务 systemctl start docker 停止docker服务 systemctl stop docker 重启docker服务 systemctl restart docker 查看docker服务状态
  • 手把手教你 在linux上安装kafka

    目录 1 准备服务器 2 选一台服务器配置kafka安装包 2 1 下载安装包 2 2 解压安装包 2 3 修改配置文件 3 分发安装包到其他机器 4 修改每台机器的broker id 5 配置环境变量 6 启停kafka服务 6 1 启动
  • Linux之RedHat 7 图形界面版安装(转载)

    linuxLinux之RedHat 7 图形界面版安装的详细教程 点击跳转 转载 https blog csdn net star in shy article details 82590241
  • 进程控制块和状态——随堂笔记

    1 PCB 描述进程的数据结构 当一个进程创建以后交给操作系统管理 管理的时候要对进程的属性进行描述 1 进程的描述信息 进程的基本信息pid给每个进程的编号 名字 2 处理器状态信息 在进程执行过程中使用的处理器的各种寄存器的信息 原因
  • Linux下的时间(ZZ)

    1 Linux下的时间 1 1 Linux下的时间系统 1 2 Linux下与时间有关的数据结构 2 获得当前时间 3 延时 4 定时器 4 1 alarm 4 2 setitimer 1 Linux下的时间1 1 Linux下的时间系统
  • Linux CentOS 巡检脚本

    系统巡检脚本 有常用的检查模块 如硬盘 内存 进程等 安全性检查等 1 巡查脚本 代码如下 示例 xunjian sh bin bash 系统状态 host while do clear echo e 当前在查看 e 1 31m 主机状态信
  • 永洪科技入选“2023大数据优秀服务商”

    8月23日 2023大数据优秀服务商 发布 永洪科技入选 此次评选由DBC CIS CIW eNet研究院牵头组织 旨在遴选大数据产业各细分赛道具有代表性与创新力的企业 组织 并展现其独特价值 重点考量技术实力 业内口碑 成长性 品牌力以及
  • LeetCode 5910. 检查两个字符串是否几乎相等

    如果两个字符串 word1 和 word2 中从 a 到 z 每一个字母出现频率之差都 不超过 3 那么我们称这两个字符串 word1 和 word2 几乎相等 给你两个长度都为 n 的字符串 word1 和 word2 如果 word1
  • Vue项目封装div拖动组件,实现div拖拽

    场景 在pc端项目中会碰到弹框后多个页面重叠的场景 类似于电脑打开多个文件夹 这时想要同时完整的展示两个页面的内容 就可以拖动页面 改变位置 很多教程都是使用自定义方法在单个组件中使用 本文带大家在Vue项目中封装一个拖拽div的方法 注册
  • JavaScript 弹窗

    JavaScript弹窗是Web开发中常见的交互方式之一 弹窗可以为用户提供提示 警告或者输入框等交互方式 让用户在使用网站或应用时更加便捷 在本文中 我们将讨论JavaScript弹窗的作用 类型和用途 JavaScript弹窗的作用 J
  • JVM的核心内容

    1 JVM对于java程序员的重要性可以用一下两句话来概述 1 1 关于任何java的技术问题都可以追溯到java虚拟机里面去 1 2 一个Java程序员水平的高低就看你对Java虚拟机这个东西有多了解 2 了解JVM需要先理解jdk与jr
  • 华为某高管工资曝光:每月高达27万,众网友表示长了见识

    如果说一个人工资每个月好几万 估计很多网友都会认为很高了 能拿到这么高薪资的人肯定是非常优秀和有能力的人 近日 一名在某企业从事招聘工作的网友在网上曝光了一条内容 其称在招聘简历中 无意发现了一份华为高管的简历 其级别是21级 月工资高达2
  • 利用Fiddler 解SSL加密 数据包

    在开发互联网应用的过程中 常常会设立或利用网络接口 为了调试对网络接口的使用 往往需要查看流入和流出网络接口的网络流量或数据包 抓包工具 就是一类用于记录通过网络接口的数据的工具 我们知道 网络协议是分层设计的 OSI模型将网络协议分为了7
  • 字符串之KMP详解

    昨晚梳理了一下KMP的过程 感觉印象深刻了不少 在此写下博客加深印象 同时也希望能和大家交流 KMP这个名字来源于其三个创始人名字首字母 主要用于解决字符串的匹配问题 字符串的匹配问题 假设有两个字符串S和T 问串T是否出现在串S中 串T在
  • Linux 链路聚合之bond和team

    交换机可以配置链路聚合 提供线路的冗余的同时提高带宽吞吐 服务器也可以通过bond team技术做网口硬件层面的冗余 防止单个网口应用的单点故障以及提高带吞吐量 bond模式最多可以添加两块网卡 team模式最多可以添加八块网卡 一 bon
  • vmware详细安装教程

    1 打开下载好的VMware安装文件 点击下一步 2 勾选 我接受许可协议中的条款 点击下一步 3 勾选 自动安装Windows Hypervisor Platform WHP 点击下一步 4 以下两个选项都勾选 5 选择安装路径 更改默认
  • TCP/IP协议三次握手与四次挥手

    一 标志位和序号 seq序号 发送方随机生成的 ack确认序号 ack seq 1 标志位ACK 1时确认序号有效 SYN标志位 发起一个新连接 ACK标志位 确认序号有效 FIN标志位 断开连接 二 三次握手 三次握手是客户端与服务端建立