当前位置: 首页 > news >正文

TCP三次握手四次挥手手动实践

其实作为一个刚开始接触运维或者互联网行业的学生来说,在面试过程中难免会遇到一个很常见的问题:你知道TCP的三次握手四次挥手原理吗,怎么去解释它或者怎么去论证它是否是对或者错
image
这个图是不是很乱,左右两列,左边客户端,右边服务端,解释了tcp三次握手四次挥手的全过程,所涉及到的状态如下:

LISTEN:服务器在没收到客户端发来的讯息时一直处于这个状态
SYN-SENT:在客户端发完连接请求后,等待服务器回包时候的状态
SYN-RCVD:在回完syn+ack的包后服务器等待客户端确认的状态
ESTABLISHED:在客户端给服务端发送完确认包后双方都进入的状态
FIN-WAIT-1:客户端发送完断开连接的包后等待服务器确认的状态
CLOSE-WAIT:服务器收到了客户端的断开请求后发送完ack包后的状态
FIN-WAIT-2:在收到了服务器的确认包后客户端进入的状态
LAST-ACK:向客户端发送了一个断开连接的讯号(你确定?我真的要断开了)
TIME-WAIT:客户端发送完ack(我真的确认断开)后进入的状态
CLOSED:收到了客户端的确认讯息后果断关闭服务资源,服务器的状态

我们用wireshark来做一个三次握手的实验,Windows下的,比较直观

打开wireshark, 打开浏览器输入 http://www.cnblogs.com/

在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",

这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图

image
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

第一次握手数据包

客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
image
第三次握手的数据包

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
image

相关文章:

  • 初识 Spring(05)---(Annotation注解)
  • win7系统已经够用为什么还要开发win10系统
  • python3 简单爬虫
  • HAP将新的页面加入到菜单
  • 常用的CSS各类属性
  • 从计算机知识到落地能力,你欠缺了什么?
  • 阿里云王牌架构师杨曦:N多环境N多应用个性配置管理如何从混乱到简单?
  • 小程序开发中的那些坑
  • Intellij idea 快捷键持续更新
  • 常用加密算法概述
  • CSS基础2-盒子模型、定位、浮动
  • 集群架构(1)
  • python全栈开发 * background 定位 z-index * 180813
  • Prism中命令可用性无法自动刷新
  • shell入门基础常见命令及用法
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Gradle 5.0 正式版发布
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript 一些 DOM 的知识点
  • mac修复ab及siege安装
  • Redis中的lru算法实现
  • Terraform入门 - 3. 变更基础设施
  • 闭包--闭包之tab栏切换(四)
  • 创建一种深思熟虑的文化
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用common-codec进行md5加密
  • 树莓派 - 使用须知
  • 微服务入门【系列视频课程】
  • 微信小程序开发问题汇总
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 阿里云移动端播放器高级功能介绍
  • ​flutter 代码混淆
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​什么是bug?bug的源头在哪里?
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (c语言)strcpy函数用法
  • (javascript)再说document.body.scrollTop的使用问题
  • (k8s中)docker netty OOM问题记录
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .htaccess配置常用技巧
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net wcf memory gates checking failed
  • .net程序集学习心得
  • .NET程序员迈向卓越的必由之路
  • .NET框架
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .ui文件相关
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [BZOJ1008][HNOI2008]越狱