首页 > 其他分享 >计算机网络抓包实战

计算机网络抓包实战

时间:2024-02-06 14:33:21浏览次数:20  
标签:实战 发送 seq ACK 报文 计算机网络 服务端 FIN 抓包

介绍

计算机网络作为一门计算机专业课,平时都是各种抽象的协议和各种发送接收,很难具体的去感受其含义,因此也是借助wireshark对发送的包进行一个分析。

抓包分析

三次握手验证

在第一次访问到182.254.242.96这个ip时,首先是建立了TCP的三次握手。与书上写的一样:

  1. 客户端发起握手请求,初始化一个SYN报文,将seq初始化一个值然后发送包给服务端。
  2. 服务端收到SYN报文后,也会建立一个SYN-ACK报文,同时初始化一个seq,并将ack置为发送来的SYN报文的seq+1。
  3. 客户端收到服务端发送的报文,会回一个ACK报文,其中ack为SYN-ACK报文的seq+1。

注意:在抓包软件中,初始的seq显示为0,但书上说是随机初始化的一个值。后来经过查询资料,原来是抓包软件做了优化,显示的是相对的seq,而不是实际的。

HTTP请求交互

四次挥手

  1. 首先客户端发起关闭请求,发送一个FIN报文给服务端,请求断开TCP连接。然后客户端进入FIN_WAIT_1状态
  2. 服务端收到FIN报文后,先回一个ACK报文,然后进入CLOSE_WAIT状态,准备将没有发送的数据最后进行发送,发送完毕后会回一个FIN报文,然后进入LAST_ACK状态。
  3. 客户端收到ACK报文后进入FIN_WAIT_2状态,等待FIN报文的到来。收到后会回复一个ACK,然后进入TIME_WAIT状态,等待2MSL时间后完全关闭连接。
  4. 服务端收到ACK后就直接进入CLOSE状态,关闭了连接。

在抓包这里可以看到,第二和第三次握手是连着的,也就是说四次挥手一下成了三次挥手。这里其实是因为一个TCP的延迟等待机制,因为单个ACK如果不带其他数据进行发送,那么它将会造成一个浪费,比较TCP固定20字节的头部开销还是比较大,因此会希望尽量能带着数据一起发送,避免一个资源浪费。TCP的延迟等待机制就是为此而设计。在第二次挥手发送ACK时,如果有数据它会直接就发送走ACK,如果没有数据要发送,它会等一下,然后和FIN报文一起发送,降低了这样一个发送开销。但前提是开启了该机制。

PING命令抓包

ping命令底层实际是用的ICMP协议,在IP层。

ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议

网络包在复杂的网络传输环境里,常常会遇到各种问题。

当遇到问题的时候,不能死个不明不白,没头没脑的作风不是计算机网络的风格。所以需要传出消息,报告遇到了什么问题,这样才可以调整传输策略,以此来控制整个局面。

ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。

IP 通信中如果某个 IP 包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知

标签:实战,发送,seq,ACK,报文,计算机网络,服务端,FIN,抓包
From: https://www.cnblogs.com/moyu-yyyl/p/18009612

相关文章

  • 梅科尔工作室HOS-鸿蒙开发实战(深呼吸)
    页面整体展示效果源码importhttpfrom'@ohos.net.http'@Entry@Componentstructjieya{textTimerController:TextTimerController=newTextTimerController()@StateisTimerRunning:boolean=true//新增一个状态变量来表示计时器运行状......
  • Docker Arthas 实战指南
    Arthas是一款强大的Java诊断和调试工具,它能够在生产环境中实时诊断Java应用,提供强大的调试功能,帮助开发者和运维人员解决各种Java应用的性能问题和调试挑战。本指南将介绍如何在Docker环境中使用Arthas进行实战。官方文档GitHub地址gitee地址应用场景性能分析与优化:Art......
  • 【面试突击】数据库面试实战-SQL 优化(加更)
    欢迎关注公众号【11来了】,及时收到AI前沿项目工具及新技术的推送!在我后台回复「资料」可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!MySQL中的SQL优化这里主要说一下MySQL中如何对SQL进行优化,其实主要还是根据索引来进行优化的,如果好好了解下边的SQL......
  • 服务器-Kubernetes (K8S)单机部署实战 -- 001
       本篇博文是centos7系统安装kubernetes单机master节点操作。一:查看服务器配置信息   1.执行命令查看服务器cpu信息。安装kubernetes服务,cpu核心数必须大于2,内存大于2G。lscpu   2. 修改服务器设置信息,避免安装出现问题。    a.......
  • 实战:使用xmanager等远程工具管理Linux
    5.3.1Linux下常用远程连接工具介绍 5.3.2xmanager使用方法1.xshell使用方法例1:连接一台新的服务器  ......
  • 5-2-实战:恢复ext4文件系统下误删除的文件
    5-2-实战:恢复ext4文件系统下误删除的文件 ext4文件系统上删除文件,可以恢复:extundelete,ext3恢复使用:ext3grepwindows恢复误删除的文件:finaldatav2.0汉化版 和 easyrecovery扩展:Linux文件系统有三部分组成:文件名,inode,blockwindows也......
  • Python正则表达式实战:提取字符串中的数字
    在文本处理中,有时我们需要从字符串中提取数字,并去除其他非数字字符。Python中的re模块提供了强大的正则表达式功能,可以帮助我们实现这一目标。本文将介绍如何使用Python的re模块来提取字符串中的数字,以及如何应用正则表达式进行文本处理。第一步:导入所需库和模块在开始之前,我们首先......
  • 【转帖】如何从几百万个抓包中找到一个异常的包
    plantegg.github.io/2023/08/23/如何从几百万个抓包中找到一个异常的包/ 如何从几百万个抓包中找到一个异常的包这篇算是对抓包定位原因在哪里的落地篇,没什么高深的技术,都是很low但是你一定可以照着操作的,算是星球内必须学会和带走的内容场景问题一次业务请求包含160个......
  • Docker容器第三课:企业级应用部署-实战
    一、docker容器化部署企业级应用1.1使用容器化部署企业级应用必要性1.有利于快速实现企业级应用部署2.有利于实现企业级应用恢复1.2Docker参考资料官方网站 http://hub.docker.com/二、docker安装部署系统环境:CentOS72.1安装前准备工作查看内核版本是否大于3.10[jack@TEST~]#u......
  • 实战经验分享:开发直播带货商城APP的技术心得
    近期,小编有幸参与了一项直播带货商城APP的开发项目,积累了丰富的技术经验。在这篇文章中,我将分享一些在开发过程中学到的技术心得,希望对同行和对这一领域感兴趣的开发者有所启发。一、项目概述直播带货商城APP的开发并非易事,需要综合考虑直播功能、商品展示、支付系统、用户体验等多......