3 ms·
It's kinda crazy how in CS, any random implementation-specific behavior is codified and relied upon. As in, the design goal of NAT - sharing small number of ex
by theamk 3y ago
It's kinda crazy how in CS, any random implementation-specific behavior is codified and relied upon.
As in, the design goal of NAT - sharing small number of external IPs by larger number of machines -- is best realized with what STUN calls "symmetric NAT". I am pretty sure the only reason full cone/restricted NAT type exists is performance, routers trying to keep translation table smaller for memory or CPU reasons.
And yet, based on router's internal implementation detail, there is now a protocol and an RFC and tools, detectors, software support, tutorials and so on.
- zer8k 3y agoThis has less to do with CS and more to do with engineering constraints. Conflating the two is common but in this case it matters. Algorithms themselves are not system-specific. RFCs codify an idea and the people who write the code make the system specific modifications. In this case routers are bespoke enough still that standards are basically controlled by a few major players.
- pixl97 3y agoFor the longest time home routers were coming with tiny amounts of memories. It was pretty easy to crash some of them by running P2P file sharing with connections to too many IPs