Data coming to a port near you!!
Continuing on with the inspiration from my last article, I want to write today about 'ports'. Not the kind where ships dock in order to load and unload, but rather Internet ports.
Another questions, that stumped me, in my recent job interview went something like this:
What is the most common port for Internet traffic in a browser? Specifically, what is the number of the port?
I had heard the term 'port' in connection with the Internet. I was aware that the port on which my development projects display in the browser as I am working on them has the number 8000, but that was the extent of my knowledge.
So last night I had a little 'conversation' with ChatGPT to learn more about Internet ports. I should have realized, of course, that the name is already a clue: port.
Analogous to physical ports in the physical world, Internet ports are communication endpoints used for data transfer between devices over a network. When data is sent over the Internet, it is divided into smaller units called packets and each packet includes information about its source, destination, and the type of data it carries. The numbering system of the ports helps to direct incoming data to specific applications or services on a device, it is part of the addressing system of the data packages.
Here's how it works:
Outgoing Data: When a device initiates communication, the sending application or service uses a specific port on the sender's side. For example, a web browser might use port 49152.
Routing: The data packet, along with the source and destination port information, is sent over the Internet. Routers and switches use this information to route the packet to the correct destination.
Incoming Data: When the data reaches the destination device, the port number helps identify the specific application or service that should receive the data. For instance, if the destination port is 80, it is directed to a web server.
Delivery to Application: The operating system on the receiving device uses the port number to deliver the data to the correct application or service that is configured to listen on that specific port.
Ports are numbered from 0 to 65535. Ports up to 1023 are well-known ports associated with specific services and applications, while ports from 1024 to 49151 are registered ports, and ports from 49152 to 65535 are dynamic or private ports.
So back to the interview questions then. What is the 'address', i.e. port number, most commonly used in your browser? The answer my interviewer was looking for was
which is the port that specifies data displayed in a secure browser using HTTP (Hypertext Transfer Protocol). It is represented by the 'https' acronym that you notice at the beginning of most websites you access on your browser, where the 's' stands for 'secure'.
I asked ChatGPT to give me a list of typical Internet port numbers in general use and I received the following list as a response:
- HTTP (Hypertext Transfer Protocol): Port 80
- HTTPS (HTTP Secure): Port 443
- FTP (File Transfer Protocol): Port 21
- SSH (Secure Shell): Port 22
- SMTP (Simple Mail Transfer Protocol): Port 25
- POP3 (Post Office Protocol 3): Port 110
- IMAP (Internet Message Access Protocol): Port 143
- DNS (Domain Name System): Port 53
- TELNET (Remote login service): Port 23
- SNMP (Simple Network Management Protocol): Port 161
- SFTP (Secure File Transfer Protocol): Port 22 or 115
- RDP (Remote Desktop Protocol): Port 3389
This then led me to the next obvious question: What are protocols and what do they have to do with the ports?
After a little more 'communication' with ChatGPT and research on Wikipedia I came away with the following understanding. Port numbers are always associated with a type of transport protocol used for the data communication. These protocols are standardized rules that specify how data should be packetized, addressed, transmitted, routed and received and with that they enable communication between devices on a network.
I'll spare you the list describing the different internet protocols, it is a long list and you can search online to find more information.
Internet ports, like their non-virtual counterparts, are places where 'stuff' is received, in the case of the Internet it is data that is delivered to and received at a port. Each port has an identifying number that is also associated with a transfer protocol laying out the rules for how these specific data are to be transferred.
So, again, if I am ever asked this question again, now I know the answer and so do you!
Thanks for reading!!
PS.: It strikes me, in reflecting on these interview questions, that they would be really good questions for a geeky pub quiz night!
Todays article is brought to you with the help of ChatGPT.