Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lowered maximum packet size #594

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Lowered maximum packet size #594

wants to merge 1 commit into from

Conversation

ksuprynowicz
Copy link
Member

A workaround for this:
#204

@ksuprynowicz ksuprynowicz added bug Something isn't working work in progress Do not merge yet labels Aug 24, 2023
@daleglass
Copy link
Contributor

Can't this break some existing voxels?

@ksuprynowicz
Copy link
Member Author

Can't this break some existing voxels?

Sadly it probably can, so it needs to be used with caution and is more of an experiment. A proper solution would involve extending entity mixer so that it can send a property spanning multiple messages. This would also allow for far bigger and higher resolution voxels. Another requirement would be transmitting MTU to server so that it can also respect the MTU value for the given client.

@daleglass
Copy link
Contributor

Also, on a technical level, where does a MTU of 1444 come from?

The Ethernet MTU is 1500 bytes. The previous 1492 MTU came from PPPoE, which takes 8 bytes per packet. This is used by many internet providers.

This new limit suggests something here is taking either 56 bytes on its own, or 48 bytes on top of PPPoE. What is it?

@ksuprynowicz
Copy link
Member Author

There's no technical reason for this value, just that particular setup for which this experiment was for has this limitation.

@ksuprynowicz
Copy link
Member Author

Proper solution to this would involve MTU detection when connecting to the server. For fast detection a series of packets could be sent with increasing sizes and MTU would be chosen depending on which ones arrive.

@daleglass
Copy link
Contributor

I think there has to be a technical reason. ISPs don't set limits just because admins are bored. There has to be some sort of underlying reason why it's 1444 and not something else. It could be ISP-side, or it could be client-side.

Here's a few possibilities:

  • VLANs. Some ISPs (like mine!) use VLANs for different "channels". I have an ISP-side VLAN for IPTV, another for internet, another for phone VoIP service. VLANs take 4 bytes.
  • VLAN inside VLAN - Q-in-Q. Double the above.
  • DS-Lite, IPv4 inside IPv6. This apparently shrinks down the MTU to 1452.

So I think it's probably 1452 - 8 = 1444. This would mean probably PPPoE + DS-Lite. A person using a connection that's natively IPv6 and tunneling IPv4 inside IPv6 packets.

In this case I think we'd be better off implementing IPv6. Which we should anyway!

@ksuprynowicz
Copy link
Member Author

Sadly my ISP is not allowing IPv6 so I'm unable to work on it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working work in progress Do not merge yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants