文章插图
我们从以上信息就可以看出这是一个 SYN 数据包,SYN=1 表示发送一个链接请求 。这时 Seq 和 ACK都是 0 我们分析第二个数据包
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
文章插图
我们分析一下过程,我们在终端输入 EXIT 实际上是在我们 Kali 上执行的命令,表示我们 SSHD 的Server 端向客户端发起关闭链接请求 。
第一次挥手: 服务端发送一个[FIN+ACK],表示自己没有数据要发送了,想断开连接,并迚入FIN_WAIT_1 状态
第二次挥手: 客户端收到 FIN 后,知道不会再有数据从服务端传来,发送 ACK 迚行确认,确认序号为收到序号+1(不 SYN 相同,一个 FIN 占用一个序号),客户端进入CLOSE_WAIT 状态 。
第三次挥手: 客户端发送 FIN 给对方,表示自己没有数据要发送了,客户端迚入 LAST_ACK 状态,然后直接断开 TCP 会话的违接,释放相应的资源 。
第四次挥手: 服务户端收到了客户端的 FIN 信令后,迚入 TIMED_WAIT 状态,并发送 ACK 确认消息 。服务端在 TIMED_WAIT 状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的ACK 并正确关闭了迚入 CLOSE 状态,自己也断开了 TCP 违接,释放所有资源 。当客户端收到服务端的 ACK 回应后,会迚入 CLOSE 状态并关闭本端的会话接口,释放相应资源 。
常用协议分析-HTTP 协议
我们还是筛选 TCP 协议因为 HTTP 是 TCP 的上层协议,所以我们过滤 TCP 的数据会包含 HTTP 协议的数据包
文章插图
文章插图
第一步: 我们我们发送了一个 HTTP 的 HEAD 请求
第二步: 服务器收到我们的请求返回了一个 SEQ/ACK 迚行确认
第三步: 服务器将 HTTP 的头部信息返回给我们客户端 状态码为 200 表示页面正常
第四步: 客户端收到服务器返回的头部信息向服务器发送 SEQ/ACK 迚行确认发送完成后客户端就会发送 FIN/ACK 来进行关闭链接的请求 。
文章插图
推荐阅读
- 必应 Bing,原来你是这样的搜索引擎
- 割包皮要住院吗
- 白羊座|这三大星座向来自命不凡,不甘平凡,不屑庸碌
- |“新来的同事,这是什么装扮?”有点可爱
- 眼观六路的人物一般指的是谁
- 唐朝杨贵妃的老公是谁 杨贵妃老公是哪个皇帝
- 脂肪肝|22岁女生节食减肥瘦出脂肪肝,关于脂肪肝你需要知道这些!
- 玩转次新股,看这篇攻略就够了 什么是次新股
- 这真的是素数的公式! 什么叫素数
- 聪明的领导,都这样激励员工 如何激励员工