PS3 and NotNetworking
What? It doesn't support "IP fragments"? WTF does that mean? |
A friend of mine is having problems with his Playstation 3 (PS3) working over his wireless. He's using an older D-Link router. He told his PS3 to do an "Internet Connection Test". It took a long time for the PS3 to finish the "NAT Type" test. At the end, he had an error message scrolling along the bottom of the screen. It said:
The router in use may not support IP fragments, and the communication features of some games may be restricted. For details, contact the router manufacturer.
Playstation 3 error message
Okay. I'm going to dispense with the snark. If you're reading this, you're probably already frustrated. On to the technical discussion. The internet protocol (IP) allows for something called "IP fragmenting". The reason has to do with the size of a packet sent across the internet. When you downloaded this web page (and I appreciate the fact that you're visiting), any files more than a few hundred bytes had to be sent in multiple packets. IP puts data into datagrams. If there's more data than will fit into one datagram, it sends multiple datagrams. The size of the datagram will vary based on the underlying protocol carrying it. For most people who have network connectivity in their homes, the underlying link layer protocol is Ethernet. Ethernet only allows for a maximum of 1500 byte datagrams. The fact that your data might require multiple datagrams to get the file from point A (say, a server) to point B (your computer) is not IP fragmenting.
The problem arises after that datagram leaves your little, home network. Once it's on the big, bad, worldwide interwebz, it's possible that the link layer protocol might not be able to handle such large packets. When that happens, then the IP datagram will get fragmented. It gets fragmented at the router. A router might connect dissimilar networks, meaning networks which might have different link layers. My Actiontec router, for example, connects between my home network (running Ethernet, natch) and my Verizon FiOS box (which is connected to the router via MoCA). The rub is that a router will support fragmenting the IP datagrams, but it won't support defragmenting them. The defragmenting part is up to the end hosts. In this case, that should be the PS3.
So what the heck is going on? To find out, I took an older Linksys WRT54G2 and connected my PS3 through it to the interwebz. First, I connected it using a wired connection. I used automatic settings for everything, including the MTU. Using a wired connection, the PS3 worked fine for the "Automatic" MTU setting.
I next tried it using the PS3 through the wireless connection. I disconnected the Ethernet cable, then started at the "Internet Connection Settings". I chose "Easy", then "Wireless". I next selected "Scan", followed by selecting my wireless router and entering the appropriate password. For the wireless, it didn't give me the option to set anything, so everything (again) was left as automatic. This included the MTU. Using the wireless, everything worked fine. I received no "IP fragment" error with the PS3.
Except earlier, when I was just playing around, I had tried to connect my PS3 through the same wireless router, a Linksys WRT54G2. And it didn't work. At that time, my WRT54G2 was acting simply as a wireless access point. Normally, it acts as a gateway. But that first time I had it set to being a router. What's the difference? According to the information provided, the difference is whether the WRT54G2 is working as the connection to the internet ("Gateway"), or whether its part of a network ("Router"). I had it earlier set to "Router".
Unfortunately, when I set it to "Gateway", it began working without the error. When I set it back to "Router", it was still working without the error. In other words, I could no longer replicate the problem. Weird. And annoying. And frustrating.