草庐IT

wireshark

全部标签

c# - Begin-EndReceive 看不到到达的数据

我的TCP客户端在接收数据时卡住了。已建立连接客户端发送21个字节。(见#5)客户端上的下一个BeginReceive调用永远不会调用回调。当我强制它调用EndReceive时,它​​永远挂起。IsCompleted=false。一些数据在#5之后到达,但问题是它永远不会到达我的应用程序。TcpClient.Available返回135。客户端可以发送数据,但不从服务器接收任何数据。客户端在Unity3D和Mono2.6中运行。我只能在UnityEditor中首次启动时重现它。第二次它开始正常但随机卡住(也是外部编辑器)。那么,为什么会这样呢?Wiresharklog(设置过滤器tcp

windows - 如何提高高延迟网络上的 RPC 数据吞吐量

我正在开发使用MicrosoftRPC(通过TCP)作为通信方法的客户端-服务器软件。我们有时会将文件从客户端传输到服务器。这在本地网络中运行良好。不幸的是,当我们有高延迟时,即使是非常宽的带宽也无法提供像样的传输速度。基于WireShark日志,RPC层发送一堆片段,然后在发送更多片段之前等待来自服务器的ACK,这会导致延迟主导传输时间。我正在寻找一种方法来告诉RPC在暂停之前发送更多数据包。这个问题似乎与TCP窗口太小本质上是一样的,但这里可能有一个特定于RPC的片段窗口在起作用,因为Wireshark不会显示TCP级窗口已满。使用小窗口的iPerf连接测试确实会给出这些警告,并且

networking - ARP报文中的源MAC地址和封装时指定的源MAC地址有什么区别?

我想了解ARP的工作原理和ARP数据包的格式。看下图中圈出的字段:在这个例子中,他们在两个字段中给出了不同的MAC地址。我看不出这怎么可能?这两者在什么情况下会有所不同?如果不是,为什么我们要在封装时添加冗余信息?虽然我认为因为它们有不同的长度(一个固定6字节而另一个是可变的..为什么??)它们必须用于不同的地址。 最佳答案 这可能是一个合法的错字。ARP报文中的地址长度是可变的,因为不同的二层协议(protocol)具有不同的地址长度。不要错误地只考虑以太网。你应该学习RFC826为了理解ARP:Thisprotocolwasor

network-programming - Intranet 与 Internet 应用程序中的校验和验证

在查看Wireshark中的消息时,我注意到校验和验证始终处于禁用状态。它是过时的要求,还是仅适用于公司网络防火墙之外的互联网流量?此外,有人可以建议它是如何设置的吗(例如,是否来自应用程序或网卡设置等)PS:这个问题可能没有实际意义。我问这个是为了填补我糟糕的网络编程技能中的巨大空白。我听说校验和验证是tcp通信的主要瓶颈,但令我惊讶的是我看到的所有消息都禁用了它 最佳答案 这个问题在WiresharkFAQ中得到了回答。.结果是校验和通常由网卡计算,而Wireshark通常会在数据包到达执行实际计算的硬件之前拦截数据包。为这些数

tcp - 如何用tshark提取所有的http请求tcp序列号?

出于某些研究原因,我需要获取http包的tcp序列号。我已经有了pcap文件,那么我应该如何使用tshark来做呢?非常感谢您回答我的问题!!! 最佳答案 应该这样做:tshark-ryour_file-Rhttp-Tfields-etcp.seq序列号是相对的或绝对的,由.wireshark/preferences控制。默认情况下它是相对的(所以你会看到小数字)。如果你想要绝对序列号,编辑preferences:tcp.relative_sequence_numbers:FALSE 关

tcp - 是否可以在 wireshark 中查看两个远程主机之间的 TCP 流量?

我正在尝试调试两个嵌入式设备之间的TCP通信,其中只有一个在我的控制之下。我想看看Wireshark中发生了什么,但我什么也没看到。甚至可以在Wireshark中查看远程主机之间的流量(但在同一台交换机上)吗? 最佳答案 这取决于你的开关。某些交换机具有称为“portmirroring”的功能'这允许您将特定物理端口上的所有流量镜像到另一个端口。最便宜的方法是选择基本网络hub.默认情况下,这将在所有其他端口上复制单个端口上的所有传入和传出流量。 关于tcp-是否可以在wireshark

encryption - 为什么我无法使用 WireShark 查看其他设备上的流量

我在最新版本的Ubuntu上运行WireShark,我似乎无法捕获来自除我自己设备之外的其他设备的流量。我看到了大量的SSDP数据包,但没有看到其他任何东西。另外,我注意到很多数据包似乎都被加密了,因为它们中的大部分字符都没有任何意义。我确定我已打开混杂模式。有人能帮忙吗?我只想在其他设备(尤其是我的Nexus平板电脑)上看到解密的流量。编辑:我可以看到其他设备的IP地址,但是我看不到它们的任何TCP数据包。仅SSDP 最佳答案 如果这是在有线网络上,itmightbeswitched.如果这是在无线网络上,youmighthave

.net - 不一致的 TCP 保活频率

我在.NET应用程序中配置了一个TCP套接字,每15分钟发送一次Keep-Alive数据包。请注意,在.NET世界中,只能使用低级Socket.IOControlAPI来操作此参数(而不是简单地启用Keep-Alives)以传递以表示native结构的字节为单位。观察下面传出Keep-Alives的Wireshark捕获:一切都在12:35到14:05之间按计划进行(每15分钟发送一次Keep-Alives),但之后,发送这些数据包的频率开始发生巨大变化(24分钟、15分钟、29分钟)分钟,1小时4分钟)。在此期间,除了这种不一致之外,应用程序的行为完全符合预期。这段时间过后不久,Ke

linux - DHCP 选项 77 - 格式错误的选项

我正在开发一个基于开源DHCP客户端的工业应用程序。我正在设置自定义DHCP客户端类ID(DHCP选项77)ipconfig/setclassid"本地连接""SOME_CUSTOM_CLASS_ID"在Wireshark中,我正在捕获DHCP握手。自定义类ID存在于DHCP请求中,但wireshark的选项77信息高亮显示错误“格式错误的选项”。引用RFC3004标准,我发现用户类数据的每个实例都应该有一个长度为1个八位字节的前缀,可以解决问题并消除DHCP所有wireshark错误。已知的问题是某些版本的wireshark检测到此错误,如1.10.6版,而其他版本无法检测到,如1.

http - 关于 Wireshark 和 http/tcp 流

谁能告诉我为什么在发送请求之前收到HTTP200响应?太奇怪了。 最佳答案 实际上GET请求是在数据包#747中发送的。您可以从以下事实中看出这一点:数据包的大小(628字节)-足以发送GET已从服务器收到响应。此请求没有正文,但它有Content-Typeheader。我猜是因为那个header,Wireshark认为它将成为一个主体,并试图等到数据包#776。我检查了类似的情况,但没有Content-Typeheader,Wireshark会在正确的位置显示请求。RFC说“请求中存在消息体是通过在请求的消息头中包含Content