三次握手四次挥手

什么是三次握手?

    1.进行三次握手,首先向服务器发送一个syn报文,其中syn=1,seq number=1022(随机);
    2.服务器接收到syn报文,根据syn=1判断客户端请求建立连接,并返回一个syn报文,为第一次握手,
其中ack number=1023(客户端seq number+1),seq number=2032(随机),syn=1,ack=1;
    3.客户端根据服务器的syn报文,确认其ack number是否与上一次发送的seq number+1相等,且ack=1,确认正确,则回应一个ack报文,为第二次握手,
即ack number=2033(服务器seq number+1),ack=1;
    4.服务器根据接收到的ack报文,确认ack number是否与上一次发送的seq number+1相等,并且ack=1,确认正确,则建立连接,
进入Established状态,为第三次握手。

四次挥手

什么是四次挥手

由于TCP连接是全双工的,断开一个TCP连接,需要客户端与服务器发送四个包来确认连接的断开

简述四次挥手的过程:

    因为TCP是全双工的,因此,每个方向都要单独关闭
    当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着
    一方向不会再收到数据了,但是这个TCP连接上仍然能够发送数据,直到这一方也发送了FIN.
    首先进行关闭的一方执行主动关闭,另一方执行被动关闭.第一个关闭的最后等待2MSL

第一次挥手

Client将FIN置为1,序号seq=M,发送给Server,进入FIN_WAIT_1状态

第二次挥手

Server收到后,将ACK置为1,ack=M+1,响应给Client,进入CLOSE_WAIT状态,Client收到响应后,进入FIN_WAIT_2状态

第三次挥手

Server在结束所有数据传输后,将Fin置为1,seq=N+1,发送给Client,进入LAST_ACK状态

第四次挥手

Client收到后,将ACK置为1,ack=N+1,响应给Server,进入TIME_WAIT状态,等待2MSL后,进入CLOSED状态,Server收到后,进入CLOSED状态

Original: https://www.cnblogs.com/chaos2022/p/16206750.html
Author: cxc超小超
Title: 三次握手四次挥手

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/711104/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java注解与原理分析

    一、注解基础 二、注解原理 三、常用注解 1、JDK注解 2、Lombok注解 四、自定义注解 1、同步控制 2、类型引擎 五、参考源码 使用的太多,被忽略的理所当然; 一、注解基…

    技术杂谈 2023年7月24日
    084
  • 使用Gulp和Browserify创建多个绑定文件

    Browserify是一个Javascript的绑定工具,帮助我们理顺module之间的依赖关系。Gulp用来优化workflow。两者的共同点都是使用流,但在使用流方面也有不同之…

    技术杂谈 2023年5月31日
    094
  • Django 如何获取 Model 字段列表?

    在平时的开发过程中,避免不了需要获取 Model 中的字段列表。 那需要把所有字段都再复制一份吗?这样的话就太麻烦了,而且后期也不好维护。 其实,Django 内置了一个方法,可以…

    技术杂谈 2023年6月21日
    0127
  • security学习笔记

    spring security 入门案例 创建springboot工程 引入依赖 org.springframework.boot spring-boot-starter-secu…

    技术杂谈 2023年7月25日
    088
  • JavaSE-分页工具方法

    借用mybatisPlus的分页对象,可以自己创建一个此方法针对集合设置分页,与SQL无关。 /** * * @param pageNo 第&#x51…

    技术杂谈 2023年6月21日
    0106
  • 编程模式-表驱动编程

    刚开始编程时,往往会碰到一些根据不同条件执行不同功能的情况,通常都是采用if-else或者switch-case的方式,如果有很多的情况需要区分,则会有很多的 else if 或者…

    技术杂谈 2023年7月25日
    093
  • PyTorch 介绍 | 构建神经网络

    神经网络由对数据进行操作的layers/modules组成。torch.nn 命名空间提供了所有你需要的构建块,用于构建你自己的神经网络。PyTorch的每一个module都继承自…

    技术杂谈 2023年7月25日
    086
  • HttpWebResponse 获取网页乱码

    string html = “”; string url = “http://www.stats.gov.cn/tjsj/tjbz/tjyqhd…

    技术杂谈 2023年5月30日
    0120
  • 小i机器人

    php;gutter:true; //机器人回复 function xiaoirobot($openid, $content) { //定义app $app_key = &quot…

    技术杂谈 2023年5月31日
    086
  • Linux 学习笔记(一)

    Linux学习笔记(一) 1.1Linux的文件权限 Linux一般将文件的可读写身份分为三个类别:拥有者(owner)、所属群组(group)、其他人(others),并且三种身…

    技术杂谈 2023年6月21日
    0124
  • 【编程教室】Python绘制冬奥吉祥物“冰墩墩”

    大家好,欢迎来到 Crossin的编程教室 ! 这两天,随着北京冬奥会的开幕,吉祥物”冰墩墩”可是火出了圈,多少人排长队都买不到。据说甚至有人把价格炒到了几…

    技术杂谈 2023年7月24日
    0101
  • 手把手教你:基于深度学习的滚动轴承故障诊断

    系列文章 手把手教你:玩转图像分类和目标检测系统 手把手教你:图像识别的垃圾分类系统 手把手教你:基于粒子群优化算法(PSO)优化卷积神经网络(CNN)的文本分类 一、项目简介 本…

    技术杂谈 2023年7月25日
    091
  • 再谈Mysql undo log, redo log与binlog

    一、undo log 1、undo log有两个作用 提供回滚和多个行版本控制(MVCC)。 在数据修改的时候,不仅记录了redo log,还记录了对应的undo,如果因为某些原因…

    技术杂谈 2023年7月11日
    081
  • Vue学习笔记(五):计算属性

    1 模板与方法的不足 ¶ 有两个输入款,一个输入姓(firstname),一个输入名(secondname),fullname由转换为大写字母的姓、横线、转换为大写字母的名拼接组成…

    技术杂谈 2023年7月24日
    095
  • 10个开源WEB后台管理系统

    vue-Element-Admin vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i1…

    技术杂谈 2023年5月30日
    0100
  • 李呈祥:bilibili在湖仓一体查询加速上的实践与探索

    导读: 本文主要介绍哔哩哔哩在数据湖与数据仓库一体架构下,探索查询加速以及索引增强的一些实践。主要内容包括: 什么是湖仓一体架构 哔哩哔哩目前的湖仓一体架构 湖仓一体架构下,数据的…

    技术杂谈 2023年7月25日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球