Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 包含Linux数据包处理堆栈_Python_Linux_Networking - Fatal编程技术网

Python 包含Linux数据包处理堆栈

Python 包含Linux数据包处理堆栈,python,linux,networking,Python,Linux,Networking,我们有时不得不调试那些不能正确处理TCP选择性确认(SACK)选项的故障严重的Cisco路由器。当通过IPTABLES端口重定向规则路由时,这会导致TCP会话死亡 为了帮助诊断,我一直在构造一个基于python的实用程序来构造一系列数据包,这些数据包可以随意复制这个错误,实现使用原始套接字来执行这个技巧。我有一个ICMP ping工作得很好,但是我在UDP实现上遇到了一个障碍,我可以毫无问题地构造、发送和接收数据包,我看到的问题是Linux不喜欢从远程系统发送回UDP数据包,并且总是发送一个IC

我们有时不得不调试那些不能正确处理TCP选择性确认(SACK)选项的故障严重的Cisco路由器。当通过IPTABLES端口重定向规则路由时,这会导致TCP会话死亡

为了帮助诊断,我一直在构造一个基于python的实用程序来构造一系列数据包,这些数据包可以随意复制这个错误,实现使用原始套接字来执行这个技巧。我有一个ICMP ping工作得很好,但是我在UDP实现上遇到了一个障碍,我可以毫无问题地构造、发送和接收数据包,我看到的问题是Linux不喜欢从远程系统发送回UDP数据包,并且总是发送一个ICMP目的地无法访问的数据包,尽管我的python脚本能够接收和处理数据包,但没有任何明显的问题

我的问题:在使用原始套接字时,是否可以包含Linux UDP堆栈以绕过这些ICMP错误消息


谢谢

您是否正在接收和处理数据包,并且只需要抑制无法访问的ICMP端口?如果是这样的话,也许只需在iptables输出链中添加一个条目就可以删除它?

有趣的建议,它肯定会起作用,我想,如果可能的话,我更喜欢一个不那么激烈的解决方案。看起来iptables可能是唯一的选择,原始套接字只用于发送,AF_数据包套接字可用于捕获返回数据包,但不能阻止Linux网络堆栈处理它们。