概念1、三次握手是建立tcp连接时,客户端向服务器发送三个包

图片解析

第一次握手,客户机发送SYN标记的包,指明客户打算连接的服务器端口,以及初始序号。

第二次握手,服务器发回确认包(ACK)应答,同时还要发送一个SYN包回去。ACK=x+1表示确认收到客户机发来的值,发送完成后服务端进入

第三次握手,客户机再次发送确认包(ACK),客户机发送完成后进入状态,服务端接收到这个包,进入状态,tcp握手结束。

引申:为什么不四次握手或者两次,原因一两次服务端在发出消息后根本就不能确认客户端是否接收到消息,这样就只有客户端可以发送数据。

原因二四次握手三次已经建立连接再发一次消息浪费了性能,多此一举。

第一次挥手:客户端发送一个FIN标记的包,告诉服务器需要关闭连接,表示自己不用发送数据了,但是还可以接收数据。

第二次挥手:服务端发送ACK确认的包,告诉客户端接收到关闭的请求,但是还没有准备好,发送完成后,服务端进入CLOSE_WAIT状态,客户端收到这个包后,等待服务器关闭连接。

第三次挥手:服务端准备关闭连接时发送FIN标记的包,告诉客户端准备关闭了,发送完成后,服务端等待客户端确认。

第四次挥手:客户端接收到服务端的关闭请求,在发送ACK标记的确认包,等待服务端可能请求重传的ACK包。服务端接收到请求后关闭连接,客户端在等待固定时间后没有接收到服务的ACK包认为服务端已关闭连接,自己也关闭连接。

引申:为什么是四次挥手,服务器接收到客户端发送关闭的请求后把SYN和ACK包一起发过去,这样造成服务端还有数据没有发送完,造成数据丢失,所以这一段时间等待服务端把数据发送完是很有必要的。

第一篇:详细介绍三次握手和四次挥手相关推荐

  1. 三次握手与四次挥手的爱恨情仇

    三次握手与四次挥手的爱恨情仇---你与他(她)的爱情故事 前言 一.三次握手 二.四次挥手 为什么建立连接是三次握手,关闭连接确是四次挥手呢? 如果已经建立了连接,但是客户端突然出现故障了怎么办? 总 ...

  2. ewsa握手包怎么获得_三次握手和四次挥手以及TCP标志位的详细介绍

    一.TCP标志位 在讲TCP三次握手和四次挥手之前,先说一下TCP标志位,方便后续的理解. 简单来说,TCP标志位的值代表了当前请求的目的. 标志位一共有6种,分别是: SYN(synchronous ...

  3. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  4. 握手失败_拜托了,看完这篇别再问我什么是TCP三次握手和四次挥手

    TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一.很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答. 三次握手如何建立连接? 三次握手建立链接 从图中可以清楚的看到, ...

  5. 有关三次握手,四次挥手的超详细总结!!!

    有关三次握手,四次挥手的超详细总结!!! 我们先来看一下三次握手和四次挥手的示意图: 图示为三次握手. 图示为四次挥手. 一.三次握手和四次挥手的过程: 三次握手: TCP建立连接的过程我们称之为3次 ...

  6. 关于三次握手与四次挥手的超详细解释

    关于三次握手与四次挥手的超详细解释 看了很多博客的文章,再结合自己想要知道的知识,发现还是需要东看一下西看一下,才能明白大概的过程.所以这里博主决定来小小的结合一下自己记录的内容.来写一个容易看明白并 ...

  7. 三次握手和四次挥手知识总结(超详细)

    前言: 最近学习了计算机网络的知识,看了很多的视频,并参考了很多资料,写下了这将近4500字的与"三次握手和四次挥手"相关的知识,希望能帮助到各位小伙伴儿以及加深自己印象,方便以后 ...

  8. 网络基础之传输层协议介绍(“三次握手”和“四次挥手”)

    文章目录 一.TCP/IP协议簇的传输层协议: 1.TCP和UDP 2.TCP报文段 二.TCP的"三次握手"和"四次挥手" 1."三次握手" ...

  9. 网络协议:TCP三次握手与四次挥手

    本篇内容包括:TCP/IP 传输协议(TCP/IP 传输协议简介,IP 协议,UDP 协议,TCP 协议介绍),TCP 的三次握手.TCP 的四次挥手 以及 TCP 协议是怎么保证有效传输等内容. 一 ...

最新文章

  1. 【Qt】Qt再学习(十):鼠标拖拽(dragdrop)QGraphicsItem示例
  2. vs code vue模板创建
  3. iview 表单 验证_iview必备技能一、表单验证规则
  4. 深度学习工程师从业者必备的21张速查表(神经网络、线性代数、可视化等)
  5. Protocol Buffer技术详解(C++实例)
  6. springbatch导出mysql数据到外部文件
  7. Jmeter新手频犯错误之一(登录)
  8. TDD LTE 中的HARQ过程
  9. Qt 中实现在控件中点击鼠标,就在鼠标点击处加载图片的方法
  10. 一个demo学会js
  11. Paypal Rest Api自定义物流地址(跳过填写物流地址)
  12. linux 跳板机得搭建
  13. oracle行列互换sql,Oracle实现行列转换的方法分析
  14. 部分beamforming知识汇总
  15. 图像的一些基本概念整理
  16. win10 suse linux,Windows 10现已支持安装SUSE Linux子系统 附安装教程|蓝点网
  17. 出租车计价器的设计一
  18. STM32学习笔记(二)——常用接口
  19. 分享本年度最佳的15个 Photoshop 实例教程
  20. 2021中行校招面试

热门文章

  1. TCP/IP五层模型之数据链路层
  2. Centos服务器上使用移动硬盘(NTFS分区)
  3. kibana Unable to connect to Elasticsearch at http://elasticsearch:9200.
  4. win10下自带输入法变为繁体字的原因及解决方法
  5. android 微信授权获取用户个人信息
  6. 微信小程序wx.getLocation接口审核不通过
  7. JavaScript获取DOM对象常用方法
  8. 如何同步公众号内容到头条自媒体?
  9. 期货交易应该如何界定交易中的时间周期?
  10. 正则表达式 取最后一个 . 然后进行匹配