I often see that network settings have a field for logical port. What is this field.referring to?
If an ip address is a house number, then a port is an apartment number.
That’s the only true ELI5 answer
One network interface has just one IP address, but it can have a bunch of different programs listening and talking.
A server might have both a webserver and a mail server running on the same machine - and they don’t want each other’s network traffic.
So you mark each packet with a destination port number, to let the server work out which program you’re talking to.
Your web browser will mark all its packets with port 80 or port 443, and when the server gets those, it knows it’s web traffic, and passes it to the webserver software.
Your email client will mark all its packets with port 25 or 993, and when the server gets those, it knows it’s email traffic, and passes it to the mailserver software.
Typically each separate kind of network service will have its own well-known port number assigned to it.
There’s also a source port field on packets, so that your computer can get return traffic back to the right program running on your machine.
Ok I have a follow up question if you’ll indulge me - why those numbers in particular?
No reason, they’re conventions. Check out this list and you’ll get a better idea. It’s simply a number that the developer assigns without a particular meaning. It’s kinda like telephone help lines, one thing that a developer might want to try is to find a pretty memorable number while trying to avoid conflicts with other programs running at the same time.
Imagine your network card is a house. That house has an address (IP address in this case) and to get into the house you need doors (ports). The house is pretty big so it has exactly 65,535 doors (ports). But because the owner of the house is not insane, most of the doors are locked (firewall).
When something communicates with you (or you with something), you use a port. For example when you open a webpage, your browser sends a request to the server on port 80 or 443 (80 for http, 443 for https). Those are standardized ports which have a well-defined meaning, but in general you only need the client (browser, app, whatever) and server to use the same port for the service.
Let me know if that clears it up!
So, you know when you want to send a letter to someone, you need to write their address on the envelope? That address tells the post office exactly where your letter needs to go. But imagine if the person receiving the letter lives in a big house with many apartments and many people. Just the house address might not be enough. You might also need to specify the apartment where the person you want to receive the letter is located.
In computer networking, the ‘address’ is like the IP address of a computer. It tells the network where to send the information. But computers are like a big house converted to apartments. They can do many things and run many applications at the same time. Each of these applications is like a person in a different apartment in the house.
The ‘port’ is like the apartment number in the house. When information arrives for a particular IP address (the house), the port number (the apartment number) makes sure the information gets delivered to the right application (the right person in the right apartment).
So, when you play an online game, or use a web browser, or send an email, each of these applications uses a different port number. This allows your computer to know which application should receive the information that’s coming from the internet.
In summary, in computer networking, a port helps your computer sort incoming and outgoing data so it goes to the right program.
what’s port forwarding
Exactly what it says on the tin. It forwards mail/packets received on one or more ports to specific ports on another machine on the network.
Thanks for the answer!
Ports are a way of sorting requests sent to the same physical device into different services. If a single device is providing three different services, you want to send your request to the right service on the device. For example, maybe your device has a website, a piece of accounting software, and an online video game running on it. If it weren’t for ports, you’d need three different devices to run those three different programs. But with ports, as long as I know what port the service I want is on, I can send my request to the right service on that device.
If you have limited money to buy devices but you want to make a lot of different apps, ports are important. Ports are also important if you’re a business like Google that provides lots of different services.
Imagine you need to go see your doctor. They work in a building with 65535 rooms. Some rooms are empty. Some rooms have people in them that provide different services. But you need your doctor so you look their location.
You learn the building address (IP address) and the room number (port)
In practice, you attach services to specific ports so that other computers can access those services. Typically, http traffic is on port 80 and https is on port 443. So if you visit a website, you are likely connected to a server on one of those two ports. But it’s not a requirement. You could create a website and put it on port 2097, or 532, or 47210; it doesn’t matter.
And the best port of all, 25565
Haha knew that one sounded familiar but it’s been a while
What’s the reference?
It’s the port for a Minecraft Java server.
It’s for Minecraft, haha
If you would compare a server to a building, with its own street address, then port would be an apartment number for every application (tenant) living there.
Ports are what allowing you to run multiple applications and all can communicate over the internet. Without ports you would need to have a dedicated computer for every application.
Additionally to all the correct answers, a ‘port’ can also mean something completely different ‘in networking’.
It can be a physical socket in a network equipment, like ‘Ethernet port’. Or it can be a virtual equivalent of such, e.g. when connecting virtual machines on a host - that could be called a ‘logical port’.
Those can sometimes be used interchangeably with ‘interface’ or ‘device’, but it depends on convention used in particular system or environment.
Your IP address is like the main office number for your computer. The ports are like internal extension numbers.
When you’re setting up a program and it’s asking you what logical port it should use, It’s asking you which extension it should be using. Just like if you were dealing with phone numbers and phone systems you have to give it a number that’s not already in use, and it probably makes sense to give it a number that is known for that type of service.
A port is like an apartment number. Except instead of apartments, it’s just mailboxes. Bob’s mailbox is number 25. If you want to get a message to Bob, uou write “box 25” on the address.
A port number is just an additional piece of info that the operating system associates with a particular program. If something comes in on port 22, the sshd is going to handle it because it’s “listening on port 22”, meaning that it has registered itself with the OS as the recipient of anything that comes in marked “port 22”.
There’s something important missing from most of the other answers. There’s a lot of different kinds of network and internet traffic. Web browsing, email, instant messaging, online video games…
By formal standard, certain port numbers are designated for certain functions. Web traffic happens on port 80. Incoming email is sent on port 143, outgoing email is sent on port 456 or 587. Something like Discord will have a specific port it uses for both sending and receiving messages. Word of Warcraft has certain ports its uses for telling the server when you cast a spell, and for the server to tell your client when you take damage.
So yes, ports are like PO boxes at a post office, but the analogy doesn’t quite capture it. Port 80 is always web traffic, and this is important, since your web browser requests pages on port 80, just as a web server returns web pages on port 80. The web server probably has other ports on it, like FTP (ports 20 and 21) or SFPT (port 22). If you connect to a web server on port 80, that means you’re asking for its webpages. If you connect on 20, 21, or 22, it means you’re trying to transfer files to it.
Word of Warcraft
Is Blizzard branching out into religious literature or word processing programs? 🙂
All true, except almost all web traffic nowadays is over port 443 (HTTPS) instead of 80.
Almost true. Port 80 is usually used for unencrypted web traffic. But anything can be ran on any port. Standards are standards, not requirements.
You can run https, ftp, virus communication, DNS, or anything else on port 80. People trying to connect to it might get confused though.
I should give useful context though.
When you connect to a server, you send traffic to an IP address. That is like a street address with a letter. But when you send a letter in the mail, more than one person could live at a house, so you also include a name (or port number when sending to one service such as web traffic to a server that does many things). Usually that name corresponds to a person living there, like if you send a letter to John even though Sarah also lives there.
That is usually how it works, but not always. John and Sarah may have agreed that all letters should be named backwards, so John opens all letters to the name Sarah, and Sarah opens all letters to the name John. This would confuse anyone trying to send a letter to John unless John told them to use the name Sarah when sending a letter. Both could also agree that if a letter shows up for Bob, Sarah should open those as well (only Sarah’s best friend would know to use the name Bob).
These exceptions are usually people either trying to obfuscate what is running on a port to pretend to be something different, it trying to make it hard to find the port associated with the server.
Imagine the computer as a shopping mall, which has a name and address (i.e the IP address).
A port is a specific store in that mall, from were you can get specific things.
The analogy even holds further in that for certain “stores”, the same store by name of certain chains (i.e. Burger King) will provide the same service in different malls if its present there (for example, port 80 is were the HTTP service is, by convention) and the same kind of service can be provided in other stores (nobody stops you from having an HTTP service on a different port).
Were the analogy breaks is that unlike with chain store names (which are protected by trademark) there really is no enforcement that a certain port has a certain service (i.e. you can put whatever service you want on port 80 of a computer you control) and certain services being in certain ports is merely a convention.
Think of it as doors. Each port is a door to the ip address. Let’s you choose/monitor what goes where
The simplest description, and the one that stuck with me, is telephone extensions. You have one general phone number (your computer’s IP), but to reach a certain program inside the computer you have to dial a certain extension (port number) as the program is only listening on that particular extension. Some of those extensions are predefined so you don’t need the know them, they are programmed into the sender software (web traffic over 443 (https) or 80 (http) for example, others you need to know the extension to be able to communicate (a friend setting up a Minecraft server for example). A firewall can block certain types of traffic by not allowing traffic to certain extensions (you can’t communicate with the torrent client if those extensions are blocked), port forwarding works by taking traffic for a certain extension and sending it out over another, …
The IP address identifies a device. The port number identifies a service (like a web server) on that device that you want to reach.