implementace Python TCP stack

hlasů
7

Existuje python knihovna, která implementuje samostatný TCP stack?

Nemohu použít obvyklý knihovnu python socket protože jsem přijímání tok paketů přes zásuvku (oni jsou tunelového mi přes tento zásuvky). Když dostanu TCP SYN paket adresován na konkrétní port, bych chtěl přijmout spojení (poslat syn-ACK) a pak se data zasílaná na druhém konci (ack'ing přiměřeně).

Doufal jsem, že tam byl nějaký TCP stacku již písemné, které bych mohl využít. Nějaké nápady? Použil jsem lwip v minulosti na projekt C - něco v tomto směru v Pythonu by bylo ideální.

Položena 17/10/2009 v 01:50
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
1

Vím, že to není přímo souvisí s Python, ale pokud hledáte dělat těžkou zpracování sítě, měli byste uvažovat o Erlang namísto Python. Jen návrh opravdu ... vždy můžete vzít střílí po dělá to s Twisted ... pokud budete mít chuť (a mají spoustu času na vaší straně) ;-)

Odpovězeno 17/10/2009 v 01:53
zdroj uživatelem

hlasů
0

Byste měli být schopni používat ctypes modul pro import lwip a použít jej znovu.

Odpovězeno 17/10/2009 v 01:58
zdroj uživatelem

hlasů
2

Ohlédl se přes Scapy , vypadá to, že by měli být schopni zvládnout tyto situace low-level. Osobně jsem nepoužil to sám, takže nemohu potvrdit, že dělá to, co jste vysvětloval; Já jsem jen ohlédl dokumentaci.

Odpovězeno 17/10/2009 v 02:01
zdroj uživatelem

hlasů
7

Nemusíte říkat, jaké platformě, na kterém pracujete, ale pokud pracujete na Linuxu, tak bych otevřít TUN / TAP rozhraní a získat IP pakety zpět do jádra jako skutečné síťové rozhraní, takže jádro může dělat všechno, ošidné TCP věci.

To je, jak (například) OpenVPN pracuje - obdrží raw IP pakety přes UDP nebo TCP a tunely je zpět do jádra přes tun / tap rozhraní.

Myslím, že je tun / tap rozhraní pro okna i nyní, který byl vyvinut pro port OpenVPN k oknům.

Odpovězeno 17/10/2009 v 11:19
zdroj uživatelem

hlasů
0

Pokud jste se již zavázala k softwaru na druhém konci objímky, který předává pakety TCP na vás, pak možná TCPWatch vám ukáže, jak se dostat na pakety SYN. Scapy je určitě skvělé pro zasílání přesně ty pakety, které chcete, ale nejsem si jistý, že to bude fungovat jako proxy.

http://hathawaymix.org/Software/TCPWatch

Nicméně, pokud nejste zavazuje k tomu, co je na vysílacím konci, pak zvažte použití Twisted ulita nebo Paramiko dělat předávání SSH. Dokonce i když nepotřebujete šifrování, můžete i nadále používat tyto s Blowfish, který má malý dopad na váš procesor. To neznamená, že musíte ulita na druhém konci, protože SSH je standardizován, takže jakýkoliv SSH software by měl fungovat. V SSH světě to je obvykle označována jako „port forwarding“ a lidé používat terminál SSH klienta pro přihlášení SSH server a nastavit port forwarding tunel. Ulity a Paramiko vám umožní vytvořit to do aplikace Python, takže není potřeba terminálu SSH klienta.

Odpovězeno 17/10/2009 v 17:47
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more