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

Explain Like I'm Five

14022 readers
34 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?

you are viewing a single comment's thread
view the rest of the comments
[–] TheBananaKing 28 points 1 year ago (6 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 (3 children)

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

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

Mostly history. Numbers were chosen rather than other identifiers because they were simpler to use over the wire back in the day when the protocol was written when every bit cost, and nobody at the time could imagine a single physical machine managing more than 65535 programs at the same time, since that was how you conventionally hooked things up. The IANA (International Assigned Numbers Authority, https://iana.org/) is responsible for maintaining a list of "registered" numbers, but those are largely by convention, not by requirement. Web browsers associate https traffic with port 443 by default, but as a developer, we can set up a webserver on port 50443 and send our browser to if we specify that number explicitly. It just wouldn't know about it by default.

Nowadays, with virtual machines, NAT subnetworks, and the absurdity that is involved in port-per-transaction networking (We're looking at you nginx proxy frontends), it's gotten a bit congested. Fortunately, IPv6 has relieved quite a bit of that, and we now have a much larger pool of 2x(IP/Port) quads to draw from, but it was a real issue there for a while.

load more comments (2 replies)
load more comments (4 replies)