TCP协议中的Ack和Seq号
TCP协议中的Ack和Seq号
一、基本概念
seq:表示本次发送数据的偏移量,也就是从哪里开始发送数据。
len:表示本次tcp携带的数据长度。
ack:首先意味着已经收到对方多少字节数据,其次告诉对方接下来的包的seq
要从ack
确定的数值继续接力。
二、Wireshark抓包
本地请求61.135.185.32
这个ip
,这个过程的抓包如下。
三次握手
(客户端)1
号包:我能和你建立连接吗?
seq=0
,表示这是一个新的开始- 没有
ack
,因为还没有建立连接,也就不存在我收到了对方多少的数据的说法 Len=0
,表示我没有传输数据,就是一个想要建立连接的tcp
包而已。
(服务端)2
号包:我收到了,我们能进行连接,快来玩吧。
seq=0
ack=1
暗示了两点,第一表示我收到了你刚才的那个seq=0
的连接请求,另外告诉对方接下来请从seq=1
开始给我传输数据Len=0
,表示同样没有传输数据。
(客户端)3
号包:好的,那我们就连接吧。
seq=1
,响应上面的包,我真的从seq=1
开始传输哦ack=1
,表示我收到了你的seq=0
同意连接,下面你也请从seq=1
给我传输数据吧Len=0
好了,三次握手愉快的结束,建立起来了连接。
总结一下三次握手的过程:
- 起始包的
seq
都等于0
- 三次握手中的
ack=对方上一个的seq+1
seq
等于对方上次的ack
号
数据传输过程
(客户端)4
号包:我要你的首页信息
客户端发送http
请求,http
请求需要tcp
进行控制,然后交给ip
层,然后由网卡发出...
注意4
号帧tcp
包的内容
seq=1
,因为上次没有传输数据,seq
号不变,也就是3
号包的seq=1,len=0
ack=1
,告诉服务端你要是发送数据,得从seq=1
开始哈len=77
,表示我这次传输的数据字节数
(服务端)5
号包:好的,我收到你的请求了。
seq=1
,如4
号包的ack
所要求的ack=78
,ack=4
号包的seq+4号包的len = 1+77=78
表示客户端啊,你要是再发就从seq=78
开始发送哈len=0
(服务端)`6
`号包:诺,给你的数据
5、6
号均为服务端发送的包,在这期间没有接收到包,理所应当的,5、6
号包的seq、ack
是一样的。
seq=1
ack=78
len=1440
,数据的长度
(客户端)7
号包:收到啦
seq=78
,你让我从78
发,我就从78
发ack=1441
,1441=6
号包的seq+6
号包的len=1+1440=1441
,表示我收到啦len=0
总结
发送方的包,包括seq
和len
,接收方如何告知对方数据已经收到呢?
答案就在于接收方的ack=发送方的seq+发送方的len
。
整体来讲,就是这样。
特殊情况在于三次握手时,客户端、服务端握手时,len=0
,此时对方就不是ack=seq+0
,而是ack=seq+1
。
TCP协议中的Ack和Seq号相关推荐
- TCP协议中SYN/ACK/FIN/PSH各有什么作用
GoodMai 在进行抓包测试的时候,发现了很多类型的数据包,除了常见的三次握手外,还有一些PSH,FIN类型的类型.借此机会,常见数据包的类型给大家科普一下. *SYN:同步标志 同步序列编号(Sy ...
- 计算机网络sequence number,TCP协议中SequenceNumber和Ack Numbe
Sequence Number lzyws7393074532892018-04-25 Number Sequence qq_391789932452017-09-21 理解TCP序列号(Sequen ...
- TCP协议中的核心知识点,SYN Flood?ISN?滑动窗口?数据重传?拆包粘包?单tcp连接多请求?拥塞管理?(个人收藏学习笔记)
TCP协议中的核心知识点,滑动窗口?数据重传?拆包粘包?单tcp连接多请求? 1.前言 2.TCP/IP四层结构 3. TCP 3.1 TCP 协议头 3.2 TCP通信过程 3.2.1 建立连接的三 ...
- TCP协议中报文详解
TCP协议中报文SYN.ACK.FIN.RST.PSH.URG详解 1. SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接: 2. ACK:请求/应答状态.0为请求,1为 ...
- TCP连接中的ACK与ack
在TCP协议三报文握手建立连接的过程中,TCP请求报文段中存在ACK和ack两个数值.要搞清楚这两个数值的含义,得了解TCP报文段的首部格式: 1.TCP报文段的首部格式: TCP报文段分为首部与数据 ...
- Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解
今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...
- tcp 协议中发送窗口的大小应该是_TCP 协议中的三次握手与四次挥手
今天来聊聊面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手.涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详解 4.什么是 TIME_ ...
- 从TCP三次握手说起——浅析TCP协议中的疑难杂症(转载)
[转载] 原博文来自:https://blog.csdn.net/qiansg123/article/details/80126677 作者:黄日成,手Q游戏中心后台开发,腾讯高级工程师. 因为写得太 ...
- 从TCP三次握手说起——浅析TCP协议中的疑难杂症
PeterWang_bupt 贡献值:2 等級:L1 0 发布 0 评论 1 顶 发布链接发布图文 全部主题 我关注的主题 GEEKNEWS Rust Swift 全栈工程师 /home Pres ...
最新文章
- Redhat7 systemctl命令
- OS_CORE.C(5)
- 《杀死比尔1 Kill Bill Volume One》电影原声Cool!
- 怀旧服开新服务器消息,怀旧服B测已经开启 全新内容爆料汇总
- 用代码转换整数规划 max{ } 与 min{ } 形式至代码形式
- Java中Lambda表达式的使用(转)
- SAP License:财务帐与后勤不一致情况
- 微网站|h5弹窗|手机网站 html5 弹窗、弹层、提示框、加载条
- 常用 Git 命令清单(阮一峰)
- linux调度器(三)——周期性调度器与CFS
- C#——WebApi 接口参数传参详解
- 支持视频语音通话的免费远程管理软件-Rd远控
- 应用克隆漏洞原理分析
- 身份验证中的allow users=\?\ /中的?和*各是什么意思?
- python输出玫瑰花
- JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- 9款免费的Windows远程协助软件
- 怎么通过示波器测永磁电机的极对数(PMSM+BLDC)
- GitHub开源成语接龙查询器,已收录16765个成语
- 烟气分析仪行业调研报告 - 市场现状分析与发展前景预测
热门文章
- C# 调用微软自带的语音识别
- C++续行符(反斜杠符号)
- 产品经理必读:敏捷开发中的需求管理过程全解
- 推荐算法工程师学习路线及工作指南
- 比 Elasticsearch 更快!RediSearch + RedisJSON = 王炸
- 给服务器安装debian系统,安装Debian 10 Buster的方法
- 【ybt金牌导航2-3-3】【luogu P3975】K小子串 / 弦论
- 计算几何(证明三角形内心公式: aOA+bOB+cOC = 0)
- 中国电子学会2022年06月份青少年软件编程Python等级考试试卷二级真题(含答案)
- 给定三角形三边,如何判断该三角形的形状