Comments (3)
The main thing we want to do here is No route to host and TTL expired. These need special handling, since they are generated by hosts which act as hops usually. Icmp defines that (part of) the original packet is included in the icmp body, but since that packet is encrypted, the intermediate can't send the actual data. Instead it could send the encrypted data, and then the receiver needs to decrypt the data and reassemble the packet.
A basic test shows that TTL based tools such as traceroute/tracepath can work partially by not setting a body and injecting the packet in the regular L3 stream. The problem is that intermediate hops are not properly shown. For this, we will probably need to implement the solution described above.
from mycelium.
Currently traceroute works out of the box, though the implementation needs to be cleaned up a lot (right now it's hacked in there as a POC). The main problem is we can't truncate packets which are too large, so in this case we'll have to return just the ICMP with no data. this is not according to spec, but the best we can do as we can't access the raw intermediate data.
from mycelium.
Current state: mechanism to support this is done, Time exceeded is implemented. No route to host is still left to do
from mycelium.
Related Issues (20)
- v0.5.1 does not work, but v0.4.0 does on my local machine HOT 1
- If a selected route is lost after an update it is not reflected in the routing table
- Improve performance of sending protocol packets
- Public node unavailable HOT 3
- Subnet comparison is broken
- Cut 0.5.2 release HOT 1
- mobile: start stop functionalities HOT 1
- Improve contention on source table when sending updates
- Send seqno requests in more cases
- Update Quinn dependency to v0.11
- Try to disconnect quic peers on gracefull application shutdown
- Couldn't start mycelium on my machine HOT 1
- Clippy CI action doesn't run when just pushing
- Remove derive(Clone) on principal structs in the stack
- Split mycelium binary into public network and private network HOT 3
- mobile: quic crashes on start-stop-start cycle HOT 5
- Stop sending periodic updates HOT 2
- Mycelium binary crashes HOT 1
- Feedback from community members HOT 4
- Feature Request parameter to get peers added automatically
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 mycelium.