TCP ------ 抓包分析(seq ack)



总结:
1、ACK包可以和其他包合在一起,比如ACK包可以携带数据
2、可以接收多个数据包后,一次性给一个应答,不用每个数据包一一对应给应答
3、在通信过程中,通过接收到的包的ack值可以判断是否是上一个本机发送包的应答包(ack值与上一个本机发送包的seq有关),seq值和ack值的确定规则如下:
三次握手:
第一次握手(发送):seq为x(x为任意值),无视ack(因为是第一个包,不需要给其他包应答)
第二次握手(发送):seq为y(y为任意值),ack等于接收包seq+1(即x+1)
第三次握手(发送):seq等于上一个本机发送包seq+1(即x+1),也就是1,ack等于接收包seq+1(即y+1)
数据传输:
某主机发送的seq和ack是根据上一个接收包的seq、ack和len得到,具体为:seq=ack,ack=seq+len
提醒:如果某一主机连续发了4个包,后三个包的seq和ack和第一个包的一样
提醒:seq会单调增大
特别:如果握手完第一个数据包是客户端发送,第一个数据包的seq和ack和第三次握手的一样
四次挥手:
如果是服务器发起的挥手,挥手前最后一个包是服务器发送:
如果是客户端发起的挥手,挥手前最后一个包是客户端发送:
第一次挥手(发送):seq为上一个本机发送包seq+len,ack为上一个本机发送包ack
第二个挥手(发送):seq为本次接收包ack,ack为本次接收包seq+1
第三次挥手(发送):和第二次挥手一样
第四次挥手(发送):seq为本次接收包ack,ack为本次接收包seq+1
如果是服务器发起的挥手,挥手前最后一个包是客户端发送:
如果是客户端发起的挥手,挥手前最后一个包是服务器发送:
第一次挥手(发送):seq为本次接收包ack,ack为本次接收包seq+len
第二个挥手(发送):seq为本次接收包ack,ack为本次接收包seq+1
第三次挥手(发送):和第二次挥手一样
第四次挥手(发送):seq为本次接收包ack,ack为本次接收包seq+1
TCP ------ 抓包分析(seq ack)的更多相关文章
- TCP三次握手与Tcpdump抓包分析过程
一.TCP连接建立(三次握手) 过程 客户端A,服务器B,初始序号seq,确认号ack 初始状态:B处于监听状态,A处于打开状态 A -> B : seq = x (A向B发送连接请求报文段,A ...
- wireshark抓包分析——TCP/IP协议
本文来自网易云社区 当我们需要跟踪网络有关的信息时,经常会说"抓包".这里抓包究竟是什么?抓到的包又能分析出什么?在本文中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通 ...
- 抓包分析TCP的三次握手和四次握手
问题描写叙述: 在上一篇<怎样对Android设备进行抓包>中提到了,server的开发者须要我bug重现然后提供抓包给他们分析.所以抓好包自己也试着分析了一下.发现里面全是一些TCP协议 ...
- 使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移
目录 文章目录 目录 前文列表 TCP 协议 图示三次握手与四次挥手 抓包结果 抓包分析 TCP 三次握手 数据传输 四次挥手 TCP 端口状态转移 状态转移 前文列表 <常用 tcpdump ...
- Wireshark抓包分析TCP“三次握手,四次挥手”
1.目的 客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程. 2 ...
- 网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...
- Wireshark抓包分析TCP 3次握手、4次挥手过程
Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是 ...
- Java网络编程学习A轮_02_抓包分析TCP三次握手过程
参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...
- WireShark抓包分析以及对TCP/IP三次握手与四次挥手的分析
WireShark抓包分析TCP/IP三次握手与四次挥手 Wireshark介绍: Wireshark(前称Ethereal)是一个网络封包分析软件.功能十分强大,是一个可以在多个操作系统平台上的开源 ...
随机推荐
- Python爬虫入门(1-2):综述、爬虫基础了解
大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验. Pyth ...
- js 插件 issue
1 iscroll 5 和 lazyload 同时使用 转自 yinjie //lazyload var $scrollEle = $("#wrapper") $("i ...
- “我爱淘”第二冲刺阶段Scrum站立会议7
完成任务: 完成学院分类的点击查看书籍功能,可以点击书的条目查看书的详细信息.将登陆界面以及注册发布界面完善了一下修复一些bug. 计划任务: 将书的详细信息进行完善,并且可以点击收藏以及已预订等功能 ...
- android入门 — Service
Service完全在后台运行,没有用户界面.使用的时候先创建Service子类,然后在AndroidManifest.xml中进行注册,同时可以通过<intent-filter.../>进 ...
- C#高级编程 (第六版) 学习 第七章:委托和事件
第七章 委托和事件 回调(callback)函数是Windows编程的一个重要方面,实际上是方法调用的指针,也称为函数指针. .Net以委托的形式实现了函数指针的概念,.Net的委托是类型安全的. 委 ...
- WPF/MVVM快速指引
简介 最近微软推出了UWA,又是一波新的C#+xaml学习热.好多小伙伴都对MVVM感觉很好奇,但是有些地方也有点难以理解.特意写了这边文章,希望对你有帮助. 这边文章会很长,所以我会用几个例子的形式 ...
- ADB抓取日志和日志过滤
建议抓取日志之前先清除缓存的log数据:adb logcat -c 网上有人介绍可以这样写:adb logcat -c && adb logcat 1.使用V.D.I.W.E.F.S优 ...
- EL语法 ${person.id} 这里面的id指的是实例对象的成员变量
EL语法 ${person.id} 这里面的id指的是实例对象的成员变量
- luogu 1360 阵容均衡(前缀和+差分+hash)
要求一段最大的区间里每个能力的增长值是一样的. 我们首先求一遍前缀和,发现,如果区间内[l,r]每个能力的增长值是一样的话,那么前缀和[r]和[l-1]的差分也应该是一样的. 那么我们把前缀和的差分h ...
- 【bzoj3774】最优选择 网络流最小割
题目描述 小N手上有一个N*M的方格图,控制某一个点要付出Aij的代价,然后某个点如果被控制了,或者他周围的所有点(上下左右)都被控制了,那么他就算是被选择了的.一个点如果被选择了,那么可以得到Bij ...