Comments (9)
I think things like reordering packets are out of toxiproxy's scope. The end result would be that TCP reorders / resends them and you just get added latency at the client level, we're trying to test apps not TCP.
UDP support would be nice, but I'm not sure how useful it would be. Any critical data that's sent between apps would be sent over TCP, so there's less of a use case from a resiliency standpoint.
What I like about doing things above the TCP layer is we can make protocol aware toxics that do things like force a read/write to fail (i.e. the server is responding but still down).
from toxiproxy.
Fair point :)
from toxiproxy.
UDP support would be nice, but I'm not sure how useful it would be. Any critical data that's sent between apps would be sent over TCP, so there's less of a use case from a resiliency standpoint.
FWIW i'm trying to use toxiproxy in between my apps' clustered instances, which use https://github.com/hashicorp/memberlist which uses UDP. So I think UDP would be very useful :)
from toxiproxy.
Creating a layer 3 proxy would be a real pain cause we'd probably have to mess around with TUN TAP interfaces. Turning Toxiproxy into a layer 3 proxy sounds like a huge rewrite and wouldn't easy.
from toxiproxy.
FWIW driven by my use case above i've been researching some toxiproxy alternatives, specifically for tools that target the network layer instead of the application layer and https://github.com/gaia-adm/pumba seems to be the most promising one
from toxiproxy.
A quick glance at pumba makes me that it's not cross platform because it relies on tc
. (A linux specific tool.) Thanks for sharing that with us!
from toxiproxy.
UDP support would be incredibly useful for testing computer-game networking code. For a detailed insight into "why UDP over TCP" for games, https://gafferongames.com/post/udp_vs_tcp/ does an excellent job.
from toxiproxy.
Perhaps we could implement this without impacting the TCP layer? Instead have an IP-layer that works differently, with different toxics?
from toxiproxy.
It would be totally possible to add UDP support. A lot of the system may assume TCP and therefore be a lot of work to refactor.
from toxiproxy.
Related Issues (20)
- Fails to connect after peer-reset HOT 6
- ToxiproxyContainer.ContainerProxy deprecated HOT 3
- How to proxy MTLS connections using Toxiproxy HOT 1
- Create a toxic, connection loss, for Server --> Client ( donwstream)? HOT 13
- Migrate the GH default branch to main HOT 1
- Reopen all the PRs that were closed unintentionally because of master -> main rename HOT 2
- RemoveToxic: HTTP 503: Unexpected response code, expected 204 HOT 5
- Possible to add toxics in config? HOT 1
- non-local API server connection refused when using '-config' HOT 1
- Dynamic / Conditional Toxics? HOT 2
- Tag and release v2.6.0? HOT 2
- panic: runtime error: slice bounds out of range [808:773]
- Difficulty Implementing Proxy for OpenAI API with App Calling and curl Insufficiency
- Proxy does not foward custom HTTP headers
- Unable to update toxic using prebuilt windows server
- Documentation for distribution of latency with different jitter values
- Is Redis Cluster/ PostGresDB Connection(based on master/slave architecture) supported for ToxiProxy ?
- Toxiproxy control port hangs on removing a toxic HOT 2
- Release toxiproxy changes
- Support or simulate packet lose in Toxiproxy?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from toxiproxy.