返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >WiresharkTSFTP传输失败问题解决
  • 215
分享到

WiresharkTSFTP传输失败问题解决

WiresharkTSFTP传输WiresharkTS 2023-03-06 08:03:31 215人浏览 薄情痞子
摘要

目录问题背景问题信息问题分析问题总结问题背景 用户反馈说当与外部客户端进行 FTP 传输时,可以成功登录,但无法传输任何数据。总之 FTP 传输失败,需要来弄清楚到底发生了什么。

问题背景

用户反馈说当与外部客户端进行 FTP 传输时,可以成功登录,但无法传输任何数据。总之 FTP 传输失败,需要来弄清楚到底发生了什么。

案例取自 SharkFest 2010《Packet Trace Whispering》

问题信息

跟踪文件基本信息如下:

λ capinfos FTPFinal.pcap
File name:           FTPFinal.pcap
File type:           Wireshark/tcpdump/... - pcap
File encapsulation:  Ethernet
File timestamp precision:  microseconds (6)
Packet size limit:   file hdr: 65535 bytes
Packet size limit:   inferred: 69 bytes
Number of packets:   44
File size:           3710 bytes
Data size:           3555 bytes
Capture duration:    34.493422 seconds
First packet time:   2007-03-22 04:37:11.513913
Last packet time:    2007-03-22 04:37:46.007335
Data byte rate:      103 bytes/s
Data bit rate:       824 bits/s
Average packet size: 80.80 bytes
Average packet rate: 1 packets/s
SHA256:              36512b444dacb061e0d8a661923f1323D0c778131bedaa7bbd5b2ab810e9a09f
RIPEMD160:           3e14f2dd481632867eba14503a24e92b316b5caf
SHA1:                771e45893504af381de89ba6b047b5cd3fa554fd
Strict time order:   True
Number of interfaces in file: 1
Interface #0 info:
                     Encapsulation = Ethernet (1 - ether)
                     Capture length = 65535
                     Time precision = microseconds (6)
                     Time ticks per second = 1000000
                     Number of stat entries = 0
                     Number of packets = 44
λ

跟踪文件在 linux 上通过 tcpdump 所捕获,数据包数量并不多,只有 44 个,长度截断为 69 字节,文件数据大小 3555 字节,捕获时长 34.49 秒,平均速率 824 bps。

专家信息如下,可以看到 Warning 信息包括很多数据分段未被捕获,同时也有很多的(疑似)重传、(疑似)快速重传以及(疑似)虚假重传等问题,需要进一步实际分析。

问题分析

众所周知,FTP 有主动和被动两种工作模式,而在有防火墙的网络环境中,经常会因为安全策略出现访问失败问题。如果排除了 FTP 主动和被动、防火墙安全策略等常见的可能性问题之外,那么剩下的就要专项分析了,就像这个特殊的案例。

数据包初步信息如下,为一条 FTP 控制连接,在 No.15 之后出现了大量的告警信息。既然与 TCP Seq Num 相关,那么转到专用视图上。

首先是 TCP 三次握手,此处有个明显问题的是SYN 数据包的 ACK 有数值,非 0,Wireshark 也会有明显提示 [The acknowledgment number field is nonzero while the ACK flag is not set] 。虽然有些小问题,但此处未影响 TCP 三次握手的建立。

No.4 - No.15 正常的控制交互,Request - Response

主要分析如下:

  • No.15 客户端 Request 数据包,Seq Num 为 70,Next Seq Num 为 94,同时 ACK Num 213 期望收到服务器 Seq 213 的数据包;
  • No.16 服务器 Response 数据包,Seq Num 为 213,但 Ack Num 为 97,不同于 No.15 的 94意思是服务器可能收到了客户端发送的 Seq 70,Next Seq 94 和 Seq 94,Next Seq 97 的两个 TCP 分段,因此 No.16 ACK Num 为 97;此处只是疑似捕获时丢失了客户端发送的后一个 3 字节的分段(Seq 94,Next Seq 97 ),所以提示 TCP ACKed unseen segment
  • No.17 客户端发出的 ACK 数据包 Seq Num 为 94,此处和 No.16 的期望 97 无法对应上,同时客户端 No.15 ACK 期望收到 Seq 213,No.16 Seq Num 也为 213,但是客户端并不认可 No.16 数据包,因此 No.17 ACK Num 仍为 213;

问题貌似出现在服务器发送的 No.16 数据包上,需要继续展开部分字段辅助判断,譬如 IP ID。

可以看到客户端 No.15、No.17、No.19 ...... IP ID 是逐步递增的,意味着客户端并没有发送过 Seq 94,Next Seq 97 的 TCP 分段,因此对于服务器,上述分析 2 中的结论并不正确(可能收到了客户端发送的 Seq 70,Next Seq 94 和 Seq 94,Next Seq 97 的两个 TCP 分段)。

那么具体问题是什么呢?让我们做一个假设,客户端数据包在传输过程中发生了变化,额外多出来了 3 个字节,是否符合问题现象。

  • 服务器侧,收到了 No.15 Seq Num 70,Next Seq Num 97,ACK Num 213的数据包,所以回复了 No.16 Seq Num 213,ACK Num 97的数据包;
  • 客户端侧,收到了 No.16 Seq Num 213,ACK Num 97,由于 ACK Num 的异常(不同于 94),客户端实际忽略了该数据包,产生一个 No.17 ACK 数据包,ACK Num 仍然为 213;
  • 服务器侧,收到了 No.17 Seq Num 94,Next Seq Num 97,ACK Num 213的数据包,之后由于 No.16 发生超时重传,重新发送了 No.18 Seq Num 213,ACK Num 97的数据包;
  • 客户端侧,由于 No.15 超时,产生了重传,所以重新发送了 No.19 Seq Num 70,Next Seq Num 94,ACK Num 213的数据包;
  • 服务器侧,收到了 No.19 Seq Num 70,Next Seq Num 97,ACK Num 213的数据包,回复了 No.20 Seq Num 243,ACK Num 97的数据包;
  • 之后由于客户端 -> 服务器传输方向上,持续的 94 -> 97 多出 3 个字节,问题持续。

总之,问题可能出现在中间传输路径上的设备,可能是 NAT 或是防火墙等设备,增加了客户端从未发送的 3 个额外字节,所以服务器回复的 ACK 也增加了 3 个字节,造成一系列连续问题。

问题总结

很少见的问题,但一切皆有可能。

以上就是Wireshark TS FTP 传输失败问题解决的详细内容,更多关于Wireshark TS FTP 传输的资料请关注编程网其它相关文章!

--结束END--

本文标题: WiresharkTSFTP传输失败问题解决

本文链接: https://lsjlt.com/news/198546.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WiresharkTSFTP传输失败问题解决
    目录问题背景问题信息问题分析问题总结问题背景 用户反馈说当与外部客户端进行 FTP 传输时,可以成功登录,但无法传输任何数据。总之 FTP 传输失败,需要来弄清楚到底发生了什么。 ...
    99+
    2023-03-06
    Wireshark TS FTP 传输 Wireshark TS
  • Wireshark TS FTP传输失败问题如何解决
    这篇文章主要介绍了Wireshark TS FTP传输失败问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Wireshark TS FTP传输失败问题如何解决文...
    99+
    2023-07-05
  • filezilla传输失败如何解决
    要解决FileZilla传输失败的问题,可以尝试以下几个方法:1. 检查网络连接:确保您的网络连接正常,可以尝试重启路由器或尝试使用...
    99+
    2023-10-07
    filezilla
  • 怎么解决php上传写入失败问题
    这篇文章主要介绍了怎么解决php上传写入失败问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。解决php上传写入失败的方法:首先找到并打开“php.ini”文件;然后修改内容...
    99+
    2023-06-14
  • 微信多图上传解决android多图上传失败问题
    微信提供了文件上传的方法wx.uploadFile来上传我们的图片 wx.chooseImage({ success: function(res) { var tempF...
    99+
    2022-06-06
    Android
  • mongoDB启动失败问题解决
    system :centOS 5.5  View Log:...
    99+
    2024-04-02
  • el-input无法输入的问题和表单验证失败问题解决
    目录1.el-input无法输入的问题原因1、el-input组件没有绑定双向响应式数据(v-model)原因2、组件嵌套太深还是该组件是一个坑(具体原因不清楚,只知道解决方法)解决...
    99+
    2023-02-23
    elinput无法输入 el-input 表单验证失败 vue el-input 无法输入
  • 解决SpringCloud Feign传对象参数调用失败的问题
    SpringCloud Feign传对象参数调用失败 不支持GET请求方式 使用Apache HttpClient替换Feign原生httpclient @...
    99+
    2024-04-02
  • Discuz上传图片失败问题排查及解决方法
    标题:Discuz上传图片失败问题排查及解决方法 在使用Discuz论坛系统中,用户常常会遇到上传图片失败的情况,这给用户和管理员带来了不便。本文将针对Discuz上传图片失败的问题进...
    99+
    2024-03-10
    图片上传 排查解决 discuz
  • 解决@FeignClient注入service失败问题
    目录@FeignClient注入service失败Feign注入失败之坑错误信息加上之后,问题解决@FeignClient注入service失败 在入口类上方加入注解 @Enable...
    99+
    2024-04-02
  • 怎么解决thinkphp save失败问题
    这篇文章主要讲解了“怎么解决thinkphp save失败问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决thinkphp save失败问题”吧!thinkphp save失败的解...
    99+
    2023-06-22
  • python install install cx_Oracle失败问题解决
    问题背景:在本地机安装失败,但在服务器上安装成功; 环境对比:两个机器的python版本不一致; 报错如下: PS C:\Users\Administrator\Downloads\***\****> pip install cx_Orac...
    99+
    2023-09-10
    python 开发语言
  • SAP PGI失败问题怎么解决
    本文小编为大家详细介绍“SAP PGI失败问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“SAP PGI失败问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。笔者所在的项目上,某日收到业务部门...
    99+
    2023-06-05
  • 解决phpstudy面包安装composer 2.3.3失败失败问题呢
    一、问题 phpstudy版本是8.1.1.3,如下图,点击安装compose2.3.3时报错无法正常安装。  二、解决方法 首先安装好composer 1.8.5版本的。   然后在官网下载2.0的包(当然2.3.3就不要下了): 下载...
    99+
    2023-09-06
    php composer
  • linux上mysql启动失败问题解决
    服务器升级迁移导致的mysql重启遇到的问题: 问题一: linux启动mysql报错误如下: "/lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/li...
    99+
    2023-08-31
    mysql 数据库 linux
  • 如何解决php查询失败问题
    本篇内容介绍了“如何解决php查询失败问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php查询失败的解决办法:1、使用函数“mysql_...
    99+
    2023-06-25
  • 分析和解决golang template失败问题
    Go语言自带的模板引擎template,是一款灵活、高效、易用的模板引擎,它可以快速、简单地生成HTML、XML等格式的文本。但是,有时候我们在使用template过程中,会遇到一些困难和问题,比如template的失败。那么,该如何解决t...
    99+
    2023-05-14
  • SpringCloud启动失败问题如何解决
    本篇内容主要讲解“SpringCloud启动失败问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringCloud启动失败问题如何解决”吧!SpringCloud启动失败问题Nac...
    99+
    2023-07-05
  • Android Beam 文件传输失败分析与解决方法
    最近在修改Android7.0原生平台的一些bug,其中有关Android Beam传输文件的一些问题还是蛮多的。所以特地找时间总结下曾经踏过的坑。1.传输的文件名包含中文时,导致传输失败可能是由于Google未考虑到本地化差异,导致在传输...
    99+
    2023-05-30
    android beam 文件传输
  • 如何解决owncloud php 语言失败问题
    本文操作环境:Windows7系统、PHP7.1、Dell G3。owncloud常见问题解决方案PHP 似乎没有设置好查询的系统环境变量。 用 getenv(\"PATH\") 测试只返回一个空值。解决方案:在 php...
    99+
    2014-11-08
    owncloud php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作