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)是一个网络封包分析软件.功能十分强大,是一个可以在多个操作系统平台上的开源 ...
随机推荐
- 袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX
作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...
- 3.Airflow使用
1. airflow简介2. 相关概念2.1 服务进程2.1.1. web server2.1.2. scheduler2.1.3. worker2.1.4. celery flower2.2 相关概 ...
- python socket详解
Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...
- 2018-2019-20172321 《Java软件结构与数据结构》第五周学习总结
2018-2019-20172321 <Java软件结构与数据结构>第五周学习总结 教材学习内容总结 第9章 排序与查找 9.1查找 查找是这样一个过程,即在某个项目组中寻找某一指定目标元 ...
- oracle selinux 问题
Error: cannot restore segment prot after reloc: Permission Denied http://www.oracledistilled.com/ora ...
- HDU 5269 ZYB loves Xor I Trie树
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5269 bc:http://bestcoder.hdu.edu.cn/contests/con ...
- HTML5+规范:Webview的使用详解
一.知识点 Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作.通过plus.webview可获取应用界面管理对象. 1.方法 1.1.all: 获取所有Webview窗口 Array[ ...
- 第八次java笔记
- jetty之maven配置
<!-- jetty 插件配置 --><plugin> <groupId>org.mortbay.jetty</groupId> <artifac ...
- 【php】提交的特殊字符会被自动转义
在处理mysql和GET.POST的数据时,常常要对数据的引号进行转义操作. PHP中有三个设置可以实现自动对’(单引号),”(双引号),\\(反斜线)和 NULL 字符转移. PHP称之为魔术引号, ...