Ports. Everybody needs a port. Sometimes. Today we are going to talk about ports. As used by TCP and UDP. Except, I am not going to mention TCP and UDP from now. In fact I’m not to talk about the technical details of ports – or what a port is, either. Today I look into port ranges and a bit into standards.
You probably know that there are 65535 TCP Ports and another 65535 UDP ports, and that this range is further divided into three separate ranges. These ranges are the well-known ports, the registered ports, and the dynamic or private ports.
The well-known ports
The well known ports are those in the 0 – 1023 range. Examples includes:
- 21: File Transfer Protocol (FTP)
- 22: Secure Shell (SSH)
- 23: Telnet remote login service
- 25: Simple Mail Transfer Protocol (SMTP)
- 53: Domain Name System (DNS) service
- 80: Hypertext Transfer Protocol (HTTP) used in the World Wide Web
- 110: Post Office Protocol (POP3)
- 123: Network Time Protocol (NTP)
- 143: Internet Message Access Protocol (IMAP)
- 161: Simple Network Management Protocol (SNMP)
- 443: HTTP Secure (HTTPS)
And so on. They are used by system processes that provide widely used types of network services. Port 80 and 443 is widely regarded as defacto for web servers. That’s great to know so we don’t have to go portknocking to communicate with well known services.
The registered ports
The registered ports are those in the 1024 – 49151 range. There’s a list of well-known and registered ranges maintained by IANA for certain protocols or applications. On most systems, registered ports can be used by ordinary users. This means, you and me and probably your cat.
The dynamic or private ports
The last range spans from 49152 – 65535. It is used for dynamic or private ports that cannot be registered with IANA – such as private or customized services, or for temporary purposes and for ephemeral ports. In short, any port or usage that isn’t specifically mentioned for the other ranges.
There’s a bunchload of various standards in the world of IT that dictates how to use various things. There’s also a bunch of people violating these standards, too. I tend to bump into these people, either when I have my developer hat on or just any other hat I got.
When it comes to ports there are certain standards – like the intended ranges to use. But, there’s nothing holding you back running your web server on port 8080 – which is common, or on any other port for that matter. I know there are professionals out there going completely bonkers when they encounter services running on “wrong” ports. Like webservers on ports 6000, or database on 3330.
My stance on this is I simply don’t care. Whatever floats the boat. What’s more important is what is listening on that port and that those who is going to use that service, knows where to find it. Unless you are running industrial specific services.
- A huge list of reserved ports
- List of TCP and UDP ports
- A great tool to lookup what uses a specific port