草庐IT

Networking

全部标签

linux - 如何拦截和修改某个进程发送和接收的tcp数据包?

假设有一个进程在我的控制下(我可以运行它并向它发送命令)发送和接收tcp数据包(可能是一些其他类型的协议(protocol))我怎样才能拦截它的传出数据包并改变它们的有效载荷?在另一个问题(Intercepting/ReroutingTCPSYNpacketstoC++programinlinux)中建议将Netfilter作为解决方案对于传入的数据包,我只需要读取它们,这样问题就可以用wireshark或类似的东西解决。根据我的特定用例(特定的已知和受控过程),我试图了解是否有更好的方法。最终目标是在进程发送数据包后立即有效地更改其有效负载,并监控其余数据包。谢谢

networking - TCP 写错误但不是真的

我一直在测试一个程序,它可以通过1Gbps线路在两台机器之间进行简单的通信。当通过线路运行TCP通信时,当网络完全被淹没时(运行在或接近100%使用率),我偶尔会在客户端收到写入错误(由于超时)。当我运行同一个程序的多个实例到不同的端口时,通常会发生这种情况。我的问题是,是否有可能出现写入错误但仍然在服务器端收到消息。看来这就是正在发生的事情,我不太确定为什么。会不会是返回给客户端的ACK超时了? 最佳答案 是的,这是可能的。TCP不保证你发送成功的数据一定能收到,发送失败的数据一定不会收到。这个问题无解。它被称为将军问题。总有一种

python - 使用scapy时如何从数据包中读取整个ip层和tcp层?

我正在使用scapy接收ICMPDestinationunreachable(FragmentationneededICMPTYPE=3CODE=4)消息时进行TCP重传行为测试。测试流程是这样的:1.与服务器建立TCP连接2.TCP建立后向服务器发送HTTPGET请求3.当HTTPResponse返回时4.向设置了小MTU的服务器发送ICMP类型3代码4消息问题是ICMPTYPE=3CODE=4消息包含该HTTP响应数据包的IPheader和部分TCPheader(srt、dst和seq编号)。目前,我只是从HTTP响应数据包中读取每个参数(如IP标识、片段标记、ttl等)。问题是:

linux - 围绕疯狂的设备接口(interface)进行路由

我继承了一大段与内部开发的设备对话的代码。所述设备具有一个网络接口(interface),该接口(interface)非常慷慨,而且是临时的:它始终将其IP地址设置为172.16.0.50,并假定它直接连接到172.16.0.250(通过物理电缆)它向.250:2000发送UDP心跳,无论.250是否已绑定(bind)到该端口它可以通过.250:9016将UDP流量发送到.250:9001它在.50:7734处通过TCP公开基于文本的管理界面它作为UDP绑定(bind)到.50:7734并接受该端口上的任何传入流量作为时间戳以同步自身遗憾的是,修改设备的代码是绝对不可能的。源是可用的,

c++ - 多个 tcp 套接字,一个停止

我正试图找到一个起点,了解从哪里开始了解可能导致套接字停顿的原因,并感谢你们中的任何人提供的任何见解。因此,服务器是运行windows2012的现代双路至强处理器(2x6核@3.5ghz)。在单个进程中,有6个具有默认选项的阻塞tcp套接字,每个都在自己的线程上运行(未指定numa/core)。其中5个连接到同一个远程服务器并接收非常重的负载(每秒数十万个~75字节的小消息)。最后一个套接字连接到另一个服务器,发送/接收负载非常轻,用于管理消息传递。我遇到的问题是管理消息套接字中的5秒停顿。对套接字的多次发送调用成功返回,但是没有从远程服务器收到任何东西(应该在几毫秒内收到协议(pro

C# Http服务器使用StreamSocketListener,选项 "InputStreamOptions.Partial"返回数据不完整

首先,我正在处理一个Windows通用应用程序项目。我使用StreamSocketListener创建了一个简单的tcp监听器。数据来自连接到本地网络的设备。本设备随机发送Http、Http/Xml包。我已经创建了套接字监听器,如下所示:StreamSocketListenerlistener=newStreamSocketListener();publicasyncvoidHttpServer(){listener.ConnectionReceived+=(s,e)=>ProcessRequestAsync(e.Socket);HostNamehostName=newHostName

networking - MAC OUI 文件缺少许多制造商

我有一个包含许多MAC地址的数据库,我编写了一个C代码,从standards-oui.ieee.org下载oui文件,解析它以生成一个更有用的文件来满足我的需要,并与制造商一起更新数据库每个MAC。当我在oui文件中找不到匹配项时,我将制造商设置为“未知”,现在我看到数据库中有很多“未知”!这怎么可能?ieee应该有所有制造商的OUI,并且不太可能所有带有“未知”(数百个)的MAC都被欺骗。我找到了wiresharkoui文件,但它也没有这些制造商。是否有更完整/更新的oui源代码?我错过了什么吗? 最佳答案 amImissings

c++ - Android 到 Windows 的 tcp 通信延迟

我开发了一个android客户端应用程序和一个windowsc++服务器应用程序,它们在本地网络中与tcp/ip通信。数据交换在我的笔记本电脑上运行良好(win8,通过wifi连接到网络)。在我的第二台电脑(win7)上,传入的消息被收集并以大约20条消息的形式转发到我的应用程序。因此,我每秒只能更新大约两次当前传感器数据(在笔记本电脑上大约每秒30次)。两台电脑和安卓手机都在同一个本地网络中。网络中没有其他设备,也没有连接到互联网。我已经为第二台电脑尝试了wifi连接和lan连接,没有明显差异。我假设任何Windows7设置都对这种行为负责。 最佳答案

c++ - TCP校验和计算出错

我正在尝试获取正确的TCP校验和,但失败了。我正在使用C++,我使用winpcap获取本地网络的数据包,并且我尝试计算它们的tcp校验和(我放置了正确的过滤器以仅获取tcp数据包)。但是,当我将计算出的校验和与wiresharktcp校验和进行比较时,它们并不相同。这是我用C++做的代码,它使用位图来检测进位。u_char*tcp_checksum(constu_char*data,intsize){u_char*checksum=newu_char[2]();uint16_tsumando=0;bitsettotal;//addipsrcandipdstfor(inti=26;i>8

networking - RPC 和 TCP 行为

有人可以从网络的角度描述什么是RPC(SUN和/或DCE)以及为什么它偏离标准的TCP行为吗?我理解的方式是客户端连接到具有唯一源端口的服务器,然后在TCP三向握手完成后切换源端口。我使用ASA防火墙,因此当未启用DCERPC的检查时,这种行为变得非常明显,因为防火墙将阻止它,因为它将它视为威胁。我已经阅读了一些MSTechNet文章和其他网站定义,包括观看了大约五个Youtube视频,这些视频似乎都从程序员的角度解释了它,但我还没有完全理解这个概念,因为我不是程序员。 最佳答案 请注意,关于RPC协议(protocol),没有任何