草庐IT

windows - 为什么 ZeroMQ PGM 多播接收卡在中间并且没有进一步接收数据包

ZeroMQ(版本-zeromq-4.1.6)PGM多播数据包接收卡在两者之间,即使发件人仍在毫无问题地发送数据包。如果我们重新启动Receiver,应用程序现在会收到数据包,但这不是解决方案。我在发送方和接收方都尝试了各种ZMQ_RATE。问题:发送方使用以下套接字选项发送了将近300,000个数据包,但接收方卡在中间并且没有接收到所有数据包。如果我们添加Sleep(2)-在每次发送时等待2毫秒,有时我们会收到所有数据包,但它会花费更多时间。环境设置:(发送方和接收方使用D-Link交换机在单个子网内连接。媒体速度为1Gbps)Sender:JZMQ(ZMQClibrary,open

windows - Windows 中的数据包过滤(XP、7 等)

如何在Windows中过滤(允许、拒绝等)传出数据包?我想搜索TCP或UDP数据包类型以在数据段中找到例如这个“387602304fd236e048125453b1fa10c980e9dad4fa7f3f5dd2497c2e8b2b”并丢弃/阻止/拒绝数据包,如果它与搜索十六进制字符串匹配。我已经尝试过WIPFW和PKTFILTER,但它们仅提供IP源、目标、端口等过滤服务。他们不检查数据包的数据。我认为BerkeleyPacketFilter确实可以胜任这项工作,但它适用于unix... 最佳答案 下面是一些在windows中过滤

c# - 如果 UDP 数据包在线上,我能保证在应用层得到它们吗?

首先我明白UDP不是一个可靠的协议(protocol),我不能保证通过网络接收数据包。但是,如果数据包确实到达了我的机器,我能保证在应用程序级别接收到它,还是网络堆栈可以将其丢弃而不受惩罚?我问的原因是我似乎偶尔会丢失数据包,即使我知道它们在线路上(简单的EtherCAT总线,所以数据包总是环回)。 最佳答案 不,即使数据包到达您的机器,也不能保证它们一定会到达您的应用程序。内核的UDP接收队列是有限的,如果数据包到达的速度快于您的应用程序可以处理的速度,队列将填满并且一些数据包将被丢弃。您可以增加接收缓冲区的大小(请参阅thisq

c++ - 使用 WinSock 监听任意 ICMP 超时 (TTL = 0) 数据包

所以我的目标是使用WinSock和原始套接字来监听所有ICMP超时数据包(当IP数据包的TTL达到0时由网关生成)。我的第一种方法涉及2个套接字,一个是TTL设置为2的UDP(几乎可以保证TTL达到0;wireshark证实了这一点),另一个是带有IPPROTO_ICMP的SOCK_RAW。这种方法不起作用——我假设ICMP套接字只会返回与发送的数据包匹配的数据包(即回显请求->回显回复)。进一步插入此方法,我打开了SIO_RCVALL(混杂模式-套接字接收一切)。几乎是真的,我开始在那个套接字上接收所有入站和出站数据包,除了ICMPTimeExceeded(可能还有其他)。这通过让一

windows - 如何在 Windows 应用程序中对加扰数据包进行逆向工程?

我有一个Windowsexe应用程序,用于将数据包以明文形式发送到服务器。这个应用程序(我们称它为客户端应用程序)绝对是封闭源代码的,但一些聪明的黑客对二进制文件进行了十六进制编辑,并使其发送经过加扰的数据包。现在,显然,这些数据包以一种可破译的方式加扰(否则服务器将无法理解),但我想做的是编写一个模拟此二进制应用程序的模拟器,发送相同的将数据包发送到服务器,并能够对响应进行解密(如果已加扰)。hex-ed客户端需要一个额外的dll才能运行,而旧客户端则不需要。我假设十六进制客户端以某种方式设法加载了该dll(我们称之为client.dll)并且该dll的功能是通过Hook到一些重新路

windows - 有没有办法在 Windows 中监视哪个进程发送 UDP 数据包(源/目标 IP 和端口)?

我几乎是偶然发现我的机器正在向波兰的一台机器发送和接收UDP数据包。并不是说我对波兰有任何问题,我只是不知道为什么我的笔记本电脑需要与那里的服务器通信。反向DNS仅显示ISP向某些最终用户提供地址。使用Wireshark,我可以监控消息,这些消息可能已加密,因此无法辨认。从我的机器发送的所有数据包都有相同的源端口,所以很明显发送它们的应用程序打开了这个UDP套接字来使用它。我正在寻找方法:1)枚举系统中所有当前打开的套接字,包括创建它的进程,以及对于TCP和UDP,它们当前绑定(bind)到的端口和地址。2)因为应用程序可以打开这些套接字、使用它们并立即关闭它们,所以我很想找到(或者甚

windows - 是否有用于捕获和播放修改后的 UDP 数据包的 Windows 工具?

我正在寻找一种适用于Windows的工具(或一组工具)来执行以下操作:捕获从特定网络接口(interface)到文件的UDP数据包。通过网络接口(interface)播放文件中的数据包流。除了2:将原始数据包重播到与原始主机不同的主机。我已经有了1和2,但我找不到做3的工具。对于捕获,我可以使用Wireshark,用于播放ColasoftPacketPlayer,但我找不到更改数据包发送到的主机的方法。该工具应该可以在WindowsXPSP2/3上运行。 最佳答案 BitTwist(http://bittwist.sourcefor

c# - Windows 将数据包转发到 C# 应用程序

有什么方法可以将tcp数据包转发到我在Windows(10)上的c#应用程序并让TcpListener/HttpListener处理请求?在Linux中,我可以通过设置iptables来做到这一点(iptables-tnat-APREROUTING-ptcp--destination-port80-jREDIRECT--to-port7000)。例如,在我的C#应用程序中,我可以监听特定端口上的传入连接(使用TcpListener或套接字监听器),比方说7000。我可以以某种方式配置Windows以将所有tcp流量转发到127.0.0.1:7000吗?请记住,数据包的目标IP地址将与我

windows - 确保 UDP 中的数据包顺序

我正在使用2台带有应用程序的计算机来发送和接收udp数据报。没有流量控制,ICMP被禁用。当我通过应用程序将文件作为UDP数据报发送时,我经常会收到两个数据包更改它们的顺序,因此-数据包丢失。我已经禁用了某种防火墙,计算机之间没有连接硬件交换机(它们是直接连线的)。有没有办法确保Winsock和send()将按照到达那里的方式发送数据包?或者操作系统正在这样做?或者需要网络设备配置? 最佳答案 UDP是一种轻量级协议(protocol),其设计不会处理诸如数据包排序之类的事情。如果您想要可靠的数据包传送和排序,TCP是更好的选择。U

c++ - 发送 UDP 数据包的长时间延迟

我有一个接收、处理和传输UDP数据包的应用程序。如果接收和传输的端口号不同,一切正常。如果端口号相同而IP地址不同,则通常可以正常工作,除非IP地址与运行应用程序的计算机位于同一子网中。在后一种情况下,send_to函数需要几秒钟才能完成,而不是通常的几毫秒。RxPortTxIPTxPortResult5001Same5002OKDelay~0.001secssubnet5001Different5001OKDelay~0.001secssubnet5001Same5001FailsDelay>2secssubnet这是一个演示问题的简短程序。#include#include#incl