抓包整理————tcp 三次握手[九]
前言
简单抓包一下3次握手。
正文
握手的目标:
- 同步sequence 序列化
初始化序列化ISN(Initial Sequence Number)
- 交换tcp 通信参数
如MSS、窗口比例因子、选择性确认、指定校验和算法。这个后面讲。
简单的在linux 抓取一下:
这里面就是确认机制哈:
这上面标识说一下哈:s 就是syn的意思,然后这个.就是ack的意思。
然后这里有一个s.标识发送 syn 加 ack,所以不要认为一个包就是一个意思哈,可能包含几种意思,一般来说是两种。
为什么两边的seq 不一样呢?且他们为什么不从0开始呢?
这是因为网络中报文会延迟会重发也可能丢失造成的影响。(后面补系列会这个问题)
SYN:同步序列编号(Synchronize Sequence Numbers)。
握手的第一个报文:
握手的第二个报文:
第三次握手:
演示一下哈,给大家抓个包助助兴。
看这个我们的发起端口是61110,然后对方的目的端口是80。
发起这个握手请求。
然后看下被连接方在干啥。
然后连接方又发了一个ack过去:
这里看到一般发syn的时候一般有一个叫做options的,这个后面跟滑动窗口有关。
状态变迁:
这里说一下状态哈,大概连接的时候有下面几个状态:
- closed
- listen
- syn-sent
- syn-received
- established
比如a 是客户端,b是服务端。
a 一开始是closed 状态,然后b是listen状态。
然后a主动发送sync,然后就变成了syn-send,b收到就变成了syn-received.
当a 收到sync+ack 就变成了established状态,b发送ack后也变成了established 状态。
这里讲一下syn洪流攻击的原理哈。
上面看到这个图,就是一直发送syn,然后对方就要发送给我syn+ack,但是我不回。
这样对方就要重新发,一直保持这个状态,或者超时。就是操作系统回这个syn+ack 是在一个队列里面,如果排队很长,自然就慢了。
这里想解释一下为什么3次握手的时候,为什么ack要加一,或者说为什么要消费掉一个序列号。
很多人解释是是因为发送方包含了SYN标志位或FIN标志位,认为标志位也是一种数据,但我感觉还是没有解释为什么要这么做。
假设a发送了一个sync包0为b,但是没有响应,然后又发了一个,b回了一个ack 为0 加他的sync假设是1000吧,这意味着下次a发送的还应该是0.
然后a 发送ack为1000给b,这个时候。这个时候第一个没有响应的包到了,那么这个时候b就不确认a的包,到底是想重新连接呢?还是说这是网络延迟包可以丢弃呢。
总之呢,就是为什么有序列号这个东西,就是为了让双方沟通起来是顺序的。
结
大概是整理了一下3次握手,下一节如何优化3次握手过程。
抓包整理————tcp 三次握手[九]的更多相关文章
- 使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移
目录 文章目录 目录 前文列表 TCP 协议 图示三次握手与四次挥手 抓包结果 抓包分析 TCP 三次握手 数据传输 四次挥手 TCP 端口状态转移 状态转移 前文列表 <常用 tcpdump ...
- Java网络编程学习A轮_02_抓包分析TCP三次握手过程
参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...
- 用wireshark抓包分析TCP三次握手、四次挥手以及TCP实现可靠传输的机制
关于TCP三次握手和四次挥手大家都在<计算机网络>课程里学过,还记得当时高超老师耐心地讲解.大学里我遇到的最好的老师大概就是这位了,虽然他只给我讲过<java程序设计>和< ...
- Wireshark抓包分析TCP“三次握手,四次挥手”
1.目的 客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程. 2 ...
- wireshark抓包图解 TCP三次握手/四次挥手详解[转]
原文链接:http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6% ...
- wireshark抓包图解 TCP三次握手/四次挥手详解
http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1 ...
- Wireshark抓包分析TCP 3次握手、4次挥手过程
Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是 ...
- 抓包工具-Wireshark(详细介绍与TCP三次握手数据分析)
功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP ...
- Wireshark抓包TCP三次握手数据
抓包工具 - Wireshark(详细介绍与TCP三次握手数据分析) 功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封 ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
随机推荐
- 记录: OpenAI中转代理API接口服务的使用
由于OpenAI提供服务的地区列表里没有 China,因此想要方便使用OpenAI API的话就需要用到中转服务. 本文介绍的iDataRiver平台便提供这样的API,且比官方OpenAI还要便宜, ...
- 选择单词后 按 ctrl + space 单词发音
需求: 在ide或其他地方,经常有单词发音不是很确定,但并不要很详细 就听个单词发音. 确定快捷键: 左手单手操作,我键盘上貌似就 左边的ctrl和空格键 还没有设定 翻译软件: 使用 pc端的 欧路 ...
- Oracle注入—报错注入
Oracle注入-报错注入 1.Oracle报错注入知识扫盲 一.Oracle报错注入知识扫盲 报错注入 报错注入就是,输入的一些能让数据库出错的语句,数据库会把这个错误回显给我们 OK,,什么语句能 ...
- vim的使用进步
vim的使用进步 1.如果遇到命令行中无法退出的 狂按esc按键 或者也可以使用v模式下切换一下,之后按esc 保存退出 保存退出--:wq 保存:w 不保存退出:q! i--插入模式 v- 可视化模 ...
- 虚幻引擎UE4如何实现打包后播放片头?其实超简单!
虚幻引擎作为一款全球性的3D实时开发工具,不仅在游戏行业,其在建筑.影视.医疗等行业也被广泛使用.作为开发人员,有时开发的UE虚幻引擎项目比较大,开始运行项目时需要等待较长的时间,还有些公司要求添加片 ...
- 07.Java类加载问题
目录介绍 7.0.0.1 Java内存模型里包含什么?程序计数器的作用是什么?常量池的作用是什么? 7.0.0.2 什么是类加载器?类加载器工作机制是什么?类加载器种类?什么是双亲委派机制? 7.0. ...
- 风场可视化学习笔记:openlayers
最近在弄地图控件方面的东西,这里分享一个我找到的一个添加风场的教程和demo,需要对大家有所帮助(以下为转载内容)载于https://blog.csdn.net/u010065726/article/ ...
- [Java]静态代理、动态代理(基于JDK1.8)
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18002823 出自[进步*于辰的博客] 参考笔记一,P ...
- go两种遍历chan
go中对通道chan遍历有两种方式一种是用range另一种为for select. package main import ( "fmt" "strings" ...
- html+css实现指针时钟
周末时间,突然想用html+css实现一个简单的指针时钟的功能,以下是具体代码实现,文末附有线上链接地址. 效果图: 1.代码 1.1.clock.html <!DOCTYPE html> ...