Network+ : TCP/IP Ports and Applications

  1. Network+ Certification (N10-007): Syllabus
  2. Network+ : Introductions and Resources
  3. Network+ : Network Models
  4. Network+: Cabling
  5. Network+ : Topologies
  6. Network+ : Ethernet Basics
  7. Network+ : Contemporary Ethernet
  8. Network+ : Installing a Physical Network
  9. Network+ : Booting and Getting On the Network
  10. Network+ : TCP/IP Basics
  11. Network+ : Subnetting
  12. Network+: Routing Protocols
  13. Network+ : Routing and Firewalls
  14. Network+ : TCP/IP Ports and Applications
  15. Network+ : Network Naming and Sharing Resources
  16. Network+ : Secure Networking
  17. Network+ : Advanced Networking Devices
  18. Network+ : IPv6
  19. Network+ : Remote Connectivity
  20. Network+ : WiFi
  21. Network+ : Virtualization
  22. Network+ : Mobile Networking
  23. Network+ : Building a Real-World Network
  24. Network+ : Managing Risk
  25. Network+ : Protecting Your Network
  26. Network+ : Network Monitoring
  27. Network+ : Network Troubleshooting
  28. Network+: Network Monitoring

Unit 14

Chapter 8

Ports: A Purely Mythical Concept

Ports are necessary because a single physical server may be running several (software) services. For instance, a single physical server may be running web services (httpd), secure shell access (sshd), and file transfer services (ftpd).

How is it supposed to know to which service it should direct a request? Port numbers are the answer. Consider web services, which (usually) run on port 80. But you can direct a request to a particular port:

http://localhost:901

This means a request to:

http://my.domain.com

is actually a request to:

http://my.domain.com:80

But it doesn’t have to be. You can configure your httpd server to run on a different port, and when your (physical) server receives a request, it will send that request to the specified port. Why would you do this? You might want to run your web server on a non-standard port to confuse attackers and crackers. But more likely you’ll be forced into a port other than 80 because you have more than one web server running on your computer.

 

Multiple web servers

If, for instance, you’re doing both ASP and Java web development on a Windows PC, you may have the standard Internet Information Services running on port 80 to serve your ASP pages.

But you’ll need a Java application server to run Java code, so you might choose to run Apache with the Jakarta Java application server running under it. Typically, this will force traffic intended for the Java server to port 8080.

This is the most common multi-port web serving scenario, but there are plenty of others.

 

So what is a port?

You know darn well there’s only one (maybe two) ethernet ports on the back of your server box. These aren’t the ports we’re talking about.

The ports we’re talking about are virtual ports. There’s no corresponding physical hardware.

Think of making a telephone call to a friend’s house: you call 222-3333, and someone unfamiliar answers:

“Hello?”

“Hi, can I talk to Jake?”

This is almost exactly the dialog taking place when you request a service on a certain port.

One further detail to notice is that a port is specifically assigned to either TCP or UDP transport protocol (with all that the difference between these protocols brings).

 

Other uses of ports

Ports are extremely valuable for firewall operations. You can open or close any or all of your ports, and block all traffic on them.

One related concept that you may encounter is that of a socket: simply stated, a port plus an IP address equals a socket. In other words, a host (at a certain IP address) offers a service (over a certain port) allowing you to make a connection (a socket).

 

Port Assignments: a partial list

Service

Port/Protocol

Description

chargen

19/tcp Character Generator

chargen

19/udp Character Generator

ftp-data

20/tcp File Transfer [Default Data]

ftp-data

20/udp File Transfer [Default Data]

ftp

21/tcp File Transfer [Control]

ftp

21/udp File Transfer [Control]

ssh

22/tcp SSH Remote Login Protocol

ssh

22/udp SSH Remote Login Protocol

telnet

23/tcp Telnet

telnet

23/udp Telnet

domain

53/tcp Domain Name Server

domain

53/udp Domain Name Server

bootps

67/tcp Bootstrap Protocol Server

bootps

67/udp Bootstrap Protocol Server

bootpc

68/tcp Bootstrap Protocol Client

bootpc

68/udp Bootstrap Protocol Client

tftp

69/tcp Trivial File Transfer

tftp

69/udp Trivial File Transfer

gopher

70/tcp Gopher

gopher

70/udp Gopher

finger

79/tcp Finger

finger

79/udp Finger

http

80/tcp World Wide Web HTTP

http

80/udp World Wide Web HTTP

kerberos

88/tcp Kerberos

kerberos

88/udp Kerberos

rtelnet

107/tcp Remote Telnet Service

rtelnet

107/udp Remote Telnet Service

pop3

110/tcp Post Office Protocol – Version 3

pop3

110/udp Post Office Protocol – Version 3

sunrpc

111/tcp SUN Remote Procedure Call

sunrpc

111/udp SUN Remote Procedure Call

ident

113/tcp Identification Service

auth

113/tcp Authentication Service

auth

113/udp Authentication Service

nntp

119/tcp Network News Transfer Protocol

nntp

119/udp Network News Transfer Protocol

imap

143/tcp Internet Message Access Protocol

imap

143/udp Internet Message Access Protocol

snmp

161/tcp SNMP

snmp

161/udp SNMP

snmptrap

162/tcp SNMPTRAP

snmptrap

162/udp SNMPTRAP