pingtracer icon indicating copy to clipboard operation
pingtracer copied to clipboard

Question on buffer size for tracert

Open gigianni opened this issue 1 year ago • 3 comments

Hello, I previously used the program without issues on another network with version 1.18. Today on a more complex (and probably worse configured) network I couldn't use the tool (tried both version 1.18 and 1.19.1) because tracert was failing on all the first 5 hosts (timed out) whereas windows's own tracert.exe was working as usual.

I looked in the code and I cannot understand why the buffer size in Tracert.cs is set to 0 bytes. I set it to 32 ( based on this thread) and started getting responses.

edit

Same happens for the normal pings, I had to change all buffer sizes in the project to 32 bytes and now it works like a charm! I still think this might be related to my pc/network configuration, therefore I am waiting for feedback on the matter before sending a pull request.

gigianni avatar Dec 27 '24 17:12 gigianni

The "buffer" is just a payload to be sent along with all pings. PingTracer has always just used an empty payload buffer in order to save data per ping.

I have some questions:

  1. On your affected system, using a 0-byte payload buffer, is PingTracer not able to get any replies at all? Even if the Trace Route option is disabled?
  2. Does a smaller buffer size work? E.g. 1 byte, 2 bytes, 4 bytes, instead of 32 bytes?

I'd like maximum compatibility but not outright wastefulness by sending larger pings than are necessary.

bp2008 avatar Dec 27 '24 18:12 bp2008

I've coded in a setting for the buffer size, so no pull request will be necessary, but I'd like to understand the issue a little better before deciding what the default should be, and whether the setting in the options panel should be a checkbox, dropdown list, number input, or if it should just not be in the options panel at all.

bp2008 avatar Dec 27 '24 18:12 bp2008

The "buffer" is just a payload to be sent along with all pings. PingTracer has always just used an empty payload buffer in order to save data per ping.

I have some questions:

1. On your affected system, using a 0-byte payload buffer, is PingTracer not able to get any replies at all?  Even if the Trace Route option is disabled?

2. Does a smaller buffer size work?  E.g. 1 byte, 2 bytes, 4 bytes, instead of 32 bytes?

I'd like maximum compatibility but not outright wastefulness by sending larger pings than are necessary.

  1. I don't get any response at all even by disabling traceroute, to make it work I had to change all buffers in the project.

  2. I put a property to change the size quickly for all buffers and it seems that it has to be >= than 18 bytes.

I've coded in a setting for the buffer size, so no pull request will be necessary, but I'd like to understand the issue a little better before deciding what the default should be, and whether the setting in the options panel should be a checkbox, dropdown list, number input, or if it should just not be in the options panel at all.

That was fast! I think a good way could be when all the traceroute trials fail change the buffer size or prompt the user to try that, because right now it looks like this: image Obviously it is not pinging anyone.

gigianni avatar Dec 27 '24 18:12 gigianni