this post was submitted on 28 Jun 2023
203 points (99.5% liked)

Explain Like I'm Five

14314 readers
605 users here now

Simplifying Complexity, One Answer at a Time!

Rules

  1. Be respectful and inclusive.
  2. No harassment, hate speech, or trolling.
  3. Engage in constructive discussions.
  4. Share relevant content.
  5. Follow guidelines and moderators' instructions.
  6. Use appropriate language and tone.
  7. Report violations.
  8. Foster a continuous learning environment.

founded 1 year ago
MODERATORS
 

I often see that network settings have a field for logical port. What is this field.referring to?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 66 points 1 year ago (1 children)

If an ip address is a house number, then a port is an apartment number.

[–] [email protected] 20 points 1 year ago

That's the only true ELI5 answer

[–] a_fancy_kiwi 51 points 1 year ago* (last edited 1 year ago) (3 children)

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 up 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.

[–] sebinspace 16 points 1 year ago (1 children)

And the best port of all, 25565

[–] 2dollarsim 4 points 1 year ago (1 children)

Haha knew that one sounded familiar but it's been a while

[–] Dran_Arcana 3 points 1 year ago (4 children)
[–] Ignisnex 8 points 1 year ago

It's the port for a Minecraft Java server.

[–] RGB3x3 6 points 1 year ago

It's for Minecraft, haha

[–] [email protected] 2 points 1 year ago

This is such a great analogy

load more comments (1 replies)
[–] hydra 31 points 1 year ago (1 children)

Imagine you have a bunch of island countries. Each country needs to communicate with other countries for several affairs and to trade. A network connection is a route where boats transit back and forth between two said countries with people and things. The location of each island is encoded with a unique address, called an IP (Internet Protocol) address. The thing is, each country also has a huge, massive amount of different sea ports. A big amount of them. To be precise, 65536 different ones.

Each port number is associated with a service or a city that benefits from said sea traffic and expects boats. So to send a boat from one country to another, you need to send that boat from a specific port to a specific port in country (IP address). For example, port 80 is Website City in Google Land. You need to google something / send and receive boats with cargo (your search query). You have to send a boat from your own port 80 (Firefox Town) to Google Land (IP address of a Google server)'s own port 80 which is located in Website City.

Each network connection is a series of sea trips between cities.

[–] silvanocerza 2 points 1 year ago (1 children)

Awesome explanation, I'm reusing this for sure.

load more comments (1 replies)
[–] TheBananaKing 28 points 1 year ago (2 children)

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.

[–] [email protected] 4 points 1 year ago (2 children)

Ok I have a follow up question if you'll indulge me - why those numbers in particular?

[–] [email protected] 5 points 1 year ago (1 children)

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.

load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 2 points 1 year ago (1 children)

For convulsion’s sake, one network interface can have more than one ip.

load more comments (1 replies)
[–] HardlightCereal 27 points 1 year ago* (last edited 1 year ago)

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.

[–] [email protected] 26 points 1 year ago (1 children)

Imagine a computer is like a building that can provide goods and services such as coffee shop, travel agency, bookshop, movie rental, etc. and has a street address, that would be the network address. That address would take you to the building door, but you still need to know on what floor is the service you're looking for. That would be the port number.

[–] [email protected] 15 points 1 year ago

Expanding on the building analogy. It's more like a package gets dropped off at the building with a room number (port number) attached. The building mail room (operating system) Then hands this package off to the room number listed. With the room being some process ruining on the computer

[–] BiteForce5584 23 points 1 year ago (2 children)

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.

[–] SonnyIC 6 points 1 year ago (1 children)
[–] hufterkruk 9 points 1 year ago (1 children)

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.

[–] SonnyIC 3 points 1 year ago

Thanks for the answer!

load more comments (1 replies)
[–] takeda 17 points 1 year ago* (last edited 1 year ago)

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.

[–] [email protected] 16 points 1 year ago

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.

[–] Aceticon 12 points 1 year ago* (last edited 1 year ago)

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.

[–] zaggynl 10 points 1 year ago

If IP addresses are streets, ports are mailboxes.

[–] MKBandit 10 points 1 year ago

Think of it as doors. Each port is a door to the ip address. Let's you choose/monitor what goes where

[–] 0485919158191 9 points 1 year ago (1 children)

Let's consider an analogy to help illustrate the concept of ports in computer networking.

Imagine you are the owner of a large office building with multiple departments and employees. The building represents a computer or a network device, and each department within the building represents a different application or service running on that device.

Now, think of the employees in each department as the data packets or information that needs to be sent and received. In order to reach the correct department, each employee needs to specify the department number and the floor on which it is located. In this analogy, the department number is analogous to a port number, and the floor represents the device's IP address.

By having different department numbers (port numbers), the building can handle communication for various departments simultaneously. If someone wants to send a package to the Marketing department, they would address it to the Marketing department number, and the building's mailroom would direct it to the correct location.

Similarly, in computer networking, applications or services running on a device are assigned specific port numbers. When data is sent over a network, it includes both the IP address and the port number. Routers and network devices use this information to route the data to the correct application or service running on the destination device.

In this analogy, the building's address (IP address) helps identify the device, while the department numbers (port numbers) help identify the specific application or service within the device.

I hope this analogy helps clarify the concept of ports in computer networking!

[–] BackOnMyBS 2 points 1 year ago

Yes, this is the comment that made it click. Thank you very much 😀

[–] linearchaos 9 points 1 year ago

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.

[–] [email protected] 8 points 1 year ago

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!

[–] [email protected] 8 points 1 year ago (1 children)

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.

[–] [email protected] 2 points 1 year ago (1 children)

All true, except almost all web traffic nowadays is over port 443 (HTTPS) instead of 80.

[–] Stimmed 3 points 1 year ago (1 children)

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.

[–] Stimmed 4 points 1 year ago

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.

[–] Candelestine 7 points 1 year ago

So, your head has a whole bunch of ports on it too. Eyes, ears, nose, mouth and each pore probably counts too. If that helps any.

[–] [email protected] 7 points 1 year ago

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, ...

[–] sznio 5 points 1 year ago

The IP address identifies a device. The port number identifies a service (like a web server) on that device that you want to reach.

[–] tallwookie 4 points 1 year ago

it's like a gate - certain kinds of traffic (what type it is) goes though the gate, other types of traffic goes through a different gate. software is designed to look for data that passes through specific gates.

for example, unsecured http data is port 80, secured http is port 443.

[–] zeppo 4 points 1 year ago

I picture it like a room full of post office boxes. Each box has a number and behind each door is an application.

[–] blackbelt352 4 points 1 year ago

Let's say I have a computer that is running a minecraft server and has a collection of files set up for FTP (File Transfer Protocol, not important what it is just that its something different).

People will try to log into the Minecraft server and others will request the files. So those people are going to connect with an IP address, but how does your network know whether they want the Minecraft server or the FTP? We use a port to direct what that connection is specifically going to.

[–] [email protected] 4 points 1 year ago

Think of your network connection as a multi-laned road and each port is it's own lane. This way many cars can drive on the same road and not commute with each other.

[–] mayo 3 points 1 year ago

Ports are the points of ingress/egress for the data being sent or received by devices on the internet. Everything connected to the internet has an IP address, and everything on your computer that wants to send things over the internet will send it out both from and to a specific port.

[–] [email protected] 3 points 1 year ago

Let me know if I am off base here, but could you say that a computer in this respect is like a call center? You call the main number, and to get help with a particular service(process) you also would provide an extension(port number) ?

[–] [email protected] 2 points 3 months ago

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”.

[–] GustavoM 2 points 1 year ago

A door restricted to a service. Like if your mother could give you a room all for yourself, and write down your name on the door.

load more comments
view more: next ›