三次握手 四次挥手

什么是三次握手?

    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/608741/

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

(0)

大家都在看

  • springboot2.3.x whitelabel error page 404

    一般资料都提3个问题 controller 位置不对 未添加依赖 注释 我的问题是 properties 要用 thymeleaf-spring5.version Original…

    Java 2023年5月30日
    063
  • Netty源码分析之ByteBuf(一)—ByteBuf中API及类型概述

    ByteBuf是Netty中主要的数据容器与操作工具,也是Netty内存管理优化的具体实现,本章我们先从整体上对ByteBuf进行一个概述; AbstractByteBuf是整个B…

    Java 2023年6月9日
    072
  • 眼见不一定为实:调用链HBase倾斜修复

    hello,大家好,我是小楼。 今天给大家分享一个关于HBase数据倾斜的排查案例,不懂调用链?不懂HBase?没关系,看完包懂~ 背景 最近HBase负责人反馈HBase存储的调…

    Java 2023年6月6日
    072
  • java POI实现Excel单元格数据换行

    Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook(); Sheet sheet = wb.createSheet();…

    Java 2023年5月29日
    085
  • java死锁(Java-level deadlock)

    java-level deadlock 如下代码可以模拟java死锁。注意:当出现死锁时,应用程序是无响应的。错误信息: Found one Java-level deadlock…

    Java 2023年6月15日
    060
  • 20220809-Java的接口和实现interface&implements

    1.接口的语法 2.接口随版本的变化 3.接口注意事项 4.实现接口 VS 继承类 5.接口的多态特性: 6.接口代码示例 今天抽空学习了接口相关的基础知识,学习了一些新的名词:接…

    Java 2023年6月15日
    072
  • JSP中的九大内置对象

    JSP九大内置对象 pageContext 存东西 Request 存东西 Response Session 存东西 Application(servletContext) 存东西…

    Java 2023年6月13日
    063
  • 「Java分享客栈」Nacos配置中心称王称霸,我Apollo一生也不弱于人!

    前言 Apollo又称阿波罗配置中心,在前两年还是挺火的,但阿里SpringCloud套件席卷国内之后,nacos就成为了最被亲睐的分布式配置中心,nacos是配置中心和注册中心二…

    Java 2023年6月9日
    0128
  • element-ui 提示框 确认按钮在左 取消按钮在右

    添加 //取消按钮 样式 cancelButto…

    Java 2023年6月9日
    062
  • springboot实现读写分离

    转载:springboot实现读写分离(基于Mybatis,mysql) Original: https://www.cnblogs.com/zxf330301/p/1402860…

    Java 2023年5月30日
    088
  • redis命令操作list 和redis命令操作set&sortedset

    redis命令操作list 列表类型 list:可以添加一个元素列表的头部(左边)或者尾部(右边) 添加: lpush key value:将元素加入列表左边 rpush key …

    Java 2023年6月6日
    094
  • 狂神说java学习day01

    标题: 二级标题 Hello,World! Hello,World! Hello,World! Hello,World! 选择狂神说java,走向人生巅峰 分割线 超链接 A B …

    Java 2023年6月6日
    074
  • Springboot中整合knife4j接口文档

    在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发。 什么是knife4j 简单说knif…

    Java 2023年6月8日
    081
  • Nginx 负载均衡

    Nginx简单实现网站的负载均衡 地址:http://www.cnblogs.com/alvin_xp/p/4161162.html Original: https://www.c…

    Java 2023年5月30日
    057
  • java封装结果集

    java封装结果集 java封装结果集 存在问题 一个用户的操作,比如登录,就可能会有很多种情况,用户层面的:账号错误、密码错误;服务器层面的:数据库错误等等情况。但是我们正常的是…

    Java 2023年6月5日
    070
  • 0010自助旅游管理系统-java毕设

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月29日
    055
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球