Python TCP协议栈实现
有没有一个Python库可以实现独立的TCP协议栈?
我不能使用普通的Python socket库,因为我通过一个socket接收一串数据包(这些数据包是通过这个socket传输给我的)。当我收到一个发往特定端口的TCP SYN包时,我想接受这个连接(发送一个syn-ack),然后获取对方发送的数据(并适当地确认)。
我希望能找到一个已经写好的TCP协议栈可以使用。有什么建议吗?我之前在一个C项目中用过lwip,如果在Python中有类似的东西就太好了。
5 个回答
0
如果你已经在使用一个软件,它通过网络连接把TCP数据包转发给你,那么TCPWatch可能会帮你找到SYN数据包。SCAPY确实很棒,可以发送你想要的特定数据包,但我不太确定它能否作为代理使用。
http://hathawaymix.org/Software/TCPWatch
不过,如果你对发送端的内容没有特别的要求,可以考虑使用Twisted Conch或Paramiko来进行SSH转发。即使你不需要加密,这些工具也可以使用blowfish加密算法,它对你的电脑性能影响很小。这并不意味着你在另一端也必须使用Conch,因为SSH是一个标准协议,任何SSH软件都应该可以使用。在SSH的世界里,这通常被称为“端口转发”,人们会使用SSH终端客户端登录到SSH服务器,并设置端口转发通道。Conch和Paramiko允许你把这个功能集成到Python应用中,这样就不需要使用SSH终端客户端了。
2
看了一下 Scapy,感觉它可能可以处理这些底层的情况。我自己没有用过,所以不能确认它是否能做到你所说的那些;我只是简单浏览了一下文档。