{"id":7499,"date":"2025-12-19T11:11:32","date_gmt":"2025-12-19T11:11:32","guid":{"rendered":"https:\/\/www.revesoft.com\/blog\/?p=7499"},"modified":"2026-02-24T08:57:30","modified_gmt":"2026-02-24T08:57:30","slug":"difference-between-ip-address-and-port-number","status":"publish","type":"post","link":"https:\/\/www.revesoft.com\/blog\/telecom\/difference-between-ip-address-and-port-number\/","title":{"rendered":"Difference Between IP Address and Port Number"},"content":{"rendered":"\n<p>When you type a URL into your browser, two invisible mechanisms work together to deliver the right webpage to the right tab on your screen. Most people have heard of IP addresses, but far fewer understand port numbers and almost nobody understands how both work in tandem. Confusing or ignoring one of these concepts leads to frustrating debugging sessions, misconfigured servers, and gaping security holes.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>The Street Address Analogy<\/strong><br><br>Think of the internet like a city. An IP address is your building&#8217;s street address, it tells the postal service which building to go to. The port number is the apartment number inside that building,\u00a0it tells the delivery person exactly which unit (or service) should receive the package. Without both, the delivery fails.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>In this guide, we will break down both concepts from the ground up covering what they are, how they work, where they operate in the networking stack, how they combine into sockets, their security implications, and the most common questions beginners ask.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Is an IP Address?<\/strong><\/h2>\n\n\n\n<p>An IP address (Internet Protocol address) is a unique numerical label assigned to every device connected to a network that uses the Internet Protocol (IP) for communication. It serves two core purposes: host identification (which device?) and location addressing (where is it on the network?).<\/p>\n\n\n\n<p>IP addresses operate at Layer 3 (the Network Layer) of the OSI model. Routers use IP addresses to forward packets from one network to another until the data reaches its destination device.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">IPv4 vs. IPv6<\/h3>\n\n\n\n<p>There are two versions of IP addresses in active use today:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Feature<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>IPv4<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>IPv6<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Bit Size<\/td><td class=\"has-text-align-center\" data-align=\"center\">32 bits<\/td><td class=\"has-text-align-center\" data-align=\"center\">128 bits<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Format<\/td><td class=\"has-text-align-center\" data-align=\"center\">Decimal (e.g., 192.168.1.1)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Hexadecimal (e.g., 2001:0db8::1)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Total Addresses<\/td><td class=\"has-text-align-center\" data-align=\"center\">~4.3 billion<\/td><td class=\"has-text-align-center\" data-align=\"center\">~340 undecillion<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Example<\/td><td class=\"has-text-align-center\" data-align=\"center\">172.16.0.1<\/td><td class=\"has-text-align-center\" data-align=\"center\">fe80::1%lo0<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Status<\/td><td class=\"has-text-align-center\" data-align=\"center\">Widely used, being exhausted<\/td><td class=\"has-text-align-center\" data-align=\"center\">Growing adoption<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Did You Know?<\/strong> As of late 2025, approximately 44\u201349% of global traffic to Google services occurs over IPv6 native connectivity. Adoption fluctuates slightly week-to-week, trending toward half of total traffic.<br><em>Source: <\/em><a href=\"https:\/\/en.wikipedia.org\/wiki\/IPv6_deployment\"><em>Wikipedia IPv6 deployment<\/em><\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Types of IP Addresses<\/h3>\n\n\n\n<p><strong>Public vs. Private IP Addresses<\/strong><\/p>\n\n\n\n<p>A public IP address is globally unique and routable across the internet. It is assigned by your Internet Service Provider (ISP). A private IP address is used only within a local network (home, office) and is not directly accessible from the internet. Network Address Translation (NAT) is the mechanism that translates private IPs to a public IP when communicating externally.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Range<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Type<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Example<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">10.0.0.0 \u2013 10.255.255.255<\/td><td class=\"has-text-align-center\" data-align=\"center\">Private (Class A)<\/td><td class=\"has-text-align-center\" data-align=\"center\">10.0.0.5<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">172.16.0.0 \u2013 172.31.255.255<\/td><td class=\"has-text-align-center\" data-align=\"center\">Private (Class B)<\/td><td class=\"has-text-align-center\" data-align=\"center\">172.16.1.10<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">192.168.0.0 \u2013 192.168.255.255<\/td><td class=\"has-text-align-center\" data-align=\"center\">Private (Class C)<\/td><td class=\"has-text-align-center\" data-align=\"center\">192.168.1.100<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">0.0.0.0<\/td><td class=\"has-text-align-center\" data-align=\"center\">Wildcard \/ Listen on all interfaces<\/td><td class=\"has-text-align-center\" data-align=\"center\">Used by servers<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">127.0.0.1<\/td><td class=\"has-text-align-center\" data-align=\"center\">Loopback (localhost)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Your own machine<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">169.254.x.x<\/td><td class=\"has-text-align-center\" data-align=\"center\">APIPA (link-local, no DHCP found)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Self-assigned fallback<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Static vs. Dynamic IP Addresses<\/strong><\/p>\n\n\n\n<p><strong>Static IP: <\/strong>Manually configured; does not change. Used for servers, printers, and network equipment that needs a fixed, predictable address.<\/p>\n\n\n\n<p><strong>Dynamic IP: <\/strong>Assigned automatically by a DHCP (Dynamic Host Configuration Protocol) server. Most home devices use dynamic IPs. They can change each time you reconnect.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to Find Your IP Address<\/strong><\/h2>\n\n\n\n<p><strong>Windows: <\/strong>Run ipconfig in Command Prompt.<\/p>\n\n\n\n<p><strong>Linux\/Mac: <\/strong>Run ifconfig or ip a in the terminal.<\/p>\n\n\n\n<p><strong>Public IP: <\/strong>Visit https:\/\/whatismyipaddress.com in your browser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Is a Port Number?<\/strong><\/h2>\n\n\n\n<p>A <a href=\"https:\/\/www.revesoft.com\/blog\/telecom\/port-number\/\">port number<\/a> is a 16-bit unsigned integer (0\u201365535) that identifies a specific process or service on a device. While the IP address gets data to the correct machine, the port number ensures the data is handed off to the right application running on that machine.<\/p>\n\n\n\n<p>Port numbers operate at Layer 4 (the Transport Layer) of the OSI model, used by TCP and UDP protocols. A single device can run hundreds of services simultaneously \u2014 web server, email server, database, SSH \u2014 and port numbers are what keep their traffic sorted and separated.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Types of Port Numbers<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Range<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Category<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Description<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Example<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">0 \u2013 1023<\/td><td class=\"has-text-align-center\" data-align=\"center\">Well-Known \/ System Ports<\/td><td class=\"has-text-align-center\" data-align=\"center\">Reserved by IANA for standard protocols<\/td><td class=\"has-text-align-center\" data-align=\"center\">80 (HTTP), 443 (HTTPS), 22 (SSH)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1024 \u2013 49151<\/td><td class=\"has-text-align-center\" data-align=\"center\">Registered Ports<\/td><td class=\"has-text-align-center\" data-align=\"center\">Registered by software vendors<\/td><td class=\"has-text-align-center\" data-align=\"center\">3306 (MySQL), 5432 (Postgres), 8080<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">49152 \u2013 65535<\/td><td class=\"has-text-align-center\" data-align=\"center\">Dynamic \/ Ephemeral Ports<\/td><td class=\"has-text-align-center\" data-align=\"center\">Assigned temporarily by the OS<\/td><td class=\"has-text-align-center\" data-align=\"center\">Short-lived client connections<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Most Important Port Numbers to Know<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Port<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Protocol<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Service<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Category<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">20, 21<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">FTP (File Transfer)<\/td><td class=\"has-text-align-center\" data-align=\"center\">File Transfer<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">22<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">SSH (Secure Shell)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Remote Access<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">23<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Telnet (unsecured)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Remote Access<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">25<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">SMTP (Email Sending)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Email<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">53<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP\/UDP<\/td><td class=\"has-text-align-center\" data-align=\"center\">DNS (Domain Name System)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Name Resolution<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">67, 68<\/td><td class=\"has-text-align-center\" data-align=\"center\">UDP<\/td><td class=\"has-text-align-center\" data-align=\"center\">DHCP (IP Assignment)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Network Config<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">80<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTP (Web Traffic)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Web<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">110<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">POP3 (Email Retrieval)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Email<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">143<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">IMAP (Email Sync)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Email<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">443<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTPS (Secure Web)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Web<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3306<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">MySQL Database<\/td><td class=\"has-text-align-center\" data-align=\"center\">Database<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">5432<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">PostgreSQL Database<\/td><td class=\"has-text-align-center\" data-align=\"center\">Database<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">6379<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Redis Cache<\/td><td class=\"has-text-align-center\" data-align=\"center\">Database<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">8080<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Alternative HTTP \/ Dev servers<\/td><td class=\"has-text-align-center\" data-align=\"center\">Web<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">27017<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">MongoDB<\/td><td class=\"has-text-align-center\" data-align=\"center\">Database<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Who Assigns Port Numbers?<\/h3>\n\n\n\n<p>Well-known port numbers (0\u20131023) are managed by the Internet Assigned Numbers Authority (IANA). Registered ports are requested by software vendors. Dynamic\/ephemeral ports are assigned on-the-fly by the operating system kernel whenever your device initiates an outgoing connection.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to Check Open Ports on Your System<\/h3>\n\n\n\n<p><strong>Windows: <\/strong>netstat -an<\/p>\n\n\n\n<p><strong>Linux\/Mac: <\/strong>ss -tuln or netstat -tuln<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Difference Between IP Address and Port Number<\/strong><\/h2>\n\n\n\n<p>Here is the comprehensive side-by-side comparison:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Feature<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>IP Address<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Port Number<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Primary Purpose<\/td><td class=\"has-text-align-center\" data-align=\"center\">Identifies a device on a network<\/td><td class=\"has-text-align-center\" data-align=\"center\">Identifies a service or process on a device<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">OSI Layer<\/td><td class=\"has-text-align-center\" data-align=\"center\">Layer 3 \u2014 Network Layer<\/td><td class=\"has-text-align-center\" data-align=\"center\">Layer 4 \u2014 Transport Layer<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Bit Size<\/td><td class=\"has-text-align-center\" data-align=\"center\">32-bit (IPv4) \/ 128-bit (IPv6)<\/td><td class=\"has-text-align-center\" data-align=\"center\">16-bit<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Value Range<\/td><td class=\"has-text-align-center\" data-align=\"center\">0.0.0.0 \u2013 255.255.255.255 (IPv4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">0 \u2013 65535<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Total Possible Values<\/td><td class=\"has-text-align-center\" data-align=\"center\">~4.3 billion (IPv4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">65,536<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Assigned By<\/td><td class=\"has-text-align-center\" data-align=\"center\">DHCP or network admin (IANA for public)<\/td><td class=\"has-text-align-center\" data-align=\"center\">IANA (well-known) or OS kernel (dynamic)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Format<\/td><td class=\"has-text-align-center\" data-align=\"center\">Decimal octets: 192.168.1.1<\/td><td class=\"has-text-align-center\" data-align=\"center\">Integer: 80, 443, 3306<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Notation Together<\/td><td class=\"has-text-align-center\" data-align=\"center\">192.168.1.1:80<\/td><td class=\"has-text-align-center\" data-align=\"center\">192.168.1.1:80<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Scope<\/td><td class=\"has-text-align-center\" data-align=\"center\">Public (internet) or Private (LAN)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Well-known, registered, or dynamic<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Can Be Public\/Private?<\/td><td class=\"has-text-align-center\" data-align=\"center\">Yes \u2014 public and private IPs exist<\/td><td class=\"has-text-align-center\" data-align=\"center\">No \u2014 ports are local to the device<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Transport Protocol<\/td><td class=\"has-text-align-center\" data-align=\"center\">Not applicable (IP is layer 3)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Specific to TCP or UDP or both<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Protocol Example<\/td><td class=\"has-text-align-center\" data-align=\"center\">IPv4, IPv6<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP, UDP<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Find With (Command)<\/td><td class=\"has-text-align-center\" data-align=\"center\">ipconfig \/ ifconfig \/ ip a<\/td><td class=\"has-text-align-center\" data-align=\"center\">netstat -an \/ ss -tuln<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Analogy<\/td><td class=\"has-text-align-center\" data-align=\"center\">Street address of a building<\/td><td class=\"has-text-align-center\" data-align=\"center\">Apartment number inside the building<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Security Concern<\/td><td class=\"has-text-align-center\" data-align=\"center\">IP spoofing, IP blocking<\/td><td class=\"has-text-align-center\" data-align=\"center\">Port scanning, open port exploitation<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How IP Address and Port Work Together: The Socket<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Key Concept: The Socket<\/strong><br><br>A socket is the combination of an IP address + a port number + a transport protocol (TCP or UDP). It is the actual communication endpoint. Every active network connection is defined by a pair of sockets: one on the client side, one on the server side.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The notation for a socket looks like this:<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;192.168.1.10:54231&nbsp; \u2192&nbsp; 142.250.190.46:443<\/p>\n\n\n\n<p>In this example, 192.168.1.10 is your device&#8217;s private IP, 54231 is the ephemeral source port your OS assigned, 142.250.190.46 is Google&#8217;s server IP, and 443 is HTTPS,&nbsp; the destination port. This 4-tuple (source IP, source port, destination IP, destination port) uniquely identifies every single connection. This is why you can have 50 browser tabs all connected to the same server IP and port simultaneously,&nbsp; each tab using a different source port.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>TCP vs. UDP: How Protocol Choice Affects Port Behavior<\/strong><\/h2>\n\n\n\n<p>Port numbers alone don&#8217;t tell the full story. The same port number can behave completely differently depending on whether it uses TCP or UDP. This is a critical concept that most introductory articles skip entirely.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Feature<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>TCP (Transmission Control Protocol)<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>UDP (User Datagram Protocol)<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Connection Type<\/td><td class=\"has-text-align-center\" data-align=\"center\">Connection-oriented (3-way handshake)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Connectionless (fire and forget)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Reliability<\/td><td class=\"has-text-align-center\" data-align=\"center\">Guaranteed delivery, ordering, error checking<\/td><td class=\"has-text-align-center\" data-align=\"center\">No guarantee \u2014 packets may drop or arrive out of order<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Speed<\/td><td class=\"has-text-align-center\" data-align=\"center\">Slower due to overhead<\/td><td class=\"has-text-align-center\" data-align=\"center\">Faster \u2014 less overhead<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Use Cases<\/td><td class=\"has-text-align-center\" data-align=\"center\">Web (HTTP\/HTTPS), Email, SSH, FTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">DNS, Video Streaming, VoIP, Gaming<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Port 53 (DNS)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Used for large DNS responses (zone transfers)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Used for standard DNS queries<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Firewall Rule<\/td><td class=\"has-text-align-center\" data-align=\"center\">Must specify TCP port 443<\/td><td class=\"has-text-align-center\" data-align=\"center\">Must specify UDP port 53 separately<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Why This Matters<\/strong><br><br>When configuring a firewall, opening port 80 for TCP does NOT automatically open port 80 for UDP. Protocol and port number must always be specified together for precise, secure firewall rules.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Real-World Scenarios: Step-by-Step Walkthroughs<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario 1: Visiting https:\/\/google.com<\/h3>\n\n\n\n<p>Here is exactly what happens, step by step, the moment you hit Enter:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Your browser asks a DNS server: &#8220;What is the IP address for google.com?&#8221;<\/li>\n\n\n\n<li>DNS responds: 142.250.190.46<\/li>\n\n\n\n<li>Your OS picks an ephemeral source port (e.g., 54231) for this connection.<\/li>\n\n\n\n<li>Your browser initiates a TCP connection to 142.250.190.46:443 (HTTPS port).<\/li>\n\n\n\n<li>Google&#8217;s server responds from port 443 back to your IP:54231.<\/li>\n\n\n\n<li>Your OS sees the reply arriving at port 54231, identifies it belongs to Chrome, and hands it to the right browser tab.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Scenario 2: Running a Local Web App + Database Simultaneously<\/h3>\n\n\n\n<p>You have a Node.js web app and a PostgreSQL database running on the same machine (IP: 192.168.1.5):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web app listens on 192.168.1.5:3000<\/li>\n\n\n\n<li>PostgreSQL listens on 192.168.1.5:5432<\/li>\n\n\n\n<li>Redis cache listens on 192.168.1.5:6379<\/li>\n<\/ul>\n\n\n\n<p>All three services share the same IP address but are completely independent because they use different port numbers. This demonstrates precisely why ports are indispensable \u2014 a single IP can host dozens of services simultaneously.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Security Implications of IP Addresses and Port Numbers<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">IP Address Security Threats<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>IP Spoofing: <\/strong>IP Spoofing: An attacker forges the source IP in packets to impersonate another device or bypass IP-based authentication.<\/li>\n\n\n\n<li><strong>DDoS Attacks: <\/strong>DDoS Attacks: Attackers flood a target IP with traffic from thousands of sources to overwhelm the server.<\/li>\n\n\n\n<li><strong>IP-Based Blacklisting: <\/strong>IP-Based Blacklisting: Firewalls can block traffic from known malicious IP ranges but attackers can change IPs easily.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Port Number Security Threats<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Port Scanning: <\/strong>Port Scanning: Tools like Nmap probe a device&#8217;s ports to discover which services are running. Attackers use this as reconnaissance before an attack.<\/li>\n\n\n\n<li><strong>Open Port Exploitation: <\/strong>Open Port Exploitation: Every open port is a potential entry point. Unpatched services running on open ports are primary targets.<\/li>\n\n\n\n<li><strong>Port 0: <\/strong>Port 0: Reserved and should never be in use. Traffic on port 0 is almost always malicious or the result of a misconfiguration.<\/li>\n\n\n\n<li><strong>Default Port Attacks: <\/strong>Default Port Attacks: Attackers know default ports (e.g., 3306 for MySQL). Exposing databases on default ports publicly is extremely dangerous.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security Best Practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Close unused ports: <\/strong>Close all unused ports using a firewall. Follow the principle of least privilege: if a service doesn&#8217;t need to be publicly accessible, block its port.<\/li>\n\n\n\n<li><strong>Change default ports: <\/strong>Change default ports for sensitive services like SSH (from 22 to a non-standard port) to reduce automated attack attempts.<\/li>\n\n\n\n<li><strong>Use IP allowlisting: <\/strong>Use IP allowlisting (whitelist) to restrict which IP addresses can reach sensitive ports like database ports.<\/li>\n\n\n\n<li><strong>Layered rules: <\/strong>Combine IP filtering + port filtering in firewall rules for defense in depth.<\/li>\n\n\n\n<li><strong>Regular audits: <\/strong>Regularly audit open ports using netstat or ss and close anything unexpected.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Critical Warning<\/strong><br><br>Never expose your database port (3306, 5432, 27017, etc.) directly to the internet. Bind it to 127.0.0.1 (localhost only) unless you have an explicit, secured reason to expose it externally.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Quick Reference Cheat Sheet<\/strong><\/h2>\n\n\n\n<p>The 20 most important port numbers every developer, student, and network engineer should know:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Port(s)<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Protocol<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Service<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Use Case<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">20, 21<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">FTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">File transfer (21=control, 20=data)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">22<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">SSH<\/td><td class=\"has-text-align-center\" data-align=\"center\">Secure remote login &amp; file transfer (SCP\/SFTP)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">23<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Telnet<\/td><td class=\"has-text-align-center\" data-align=\"center\">Unencrypted remote access (avoid \u2014 legacy)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">25<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">SMTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Sending emails between servers<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">53<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP\/UDP<\/td><td class=\"has-text-align-center\" data-align=\"center\">DNS<\/td><td class=\"has-text-align-center\" data-align=\"center\">Domain name to IP resolution<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">67\/68<\/td><td class=\"has-text-align-center\" data-align=\"center\">UDP<\/td><td class=\"has-text-align-center\" data-align=\"center\">DHCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Automatic IP address assignment<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">80<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Standard unencrypted web traffic<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">110<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">POP3<\/td><td class=\"has-text-align-center\" data-align=\"center\">Download emails to local client<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">143<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">IMAP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Sync emails across devices<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">443<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTPS<\/td><td class=\"has-text-align-center\" data-align=\"center\">Encrypted web traffic (TLS\/SSL)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">465\/587<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">SMTPS<\/td><td class=\"has-text-align-center\" data-align=\"center\">Encrypted email submission<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3306<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">MySQL<\/td><td class=\"has-text-align-center\" data-align=\"center\">MySQL database connections<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">5432<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">PostgreSQL<\/td><td class=\"has-text-align-center\" data-align=\"center\">PostgreSQL database connections<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">6379<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Redis<\/td><td class=\"has-text-align-center\" data-align=\"center\">In-memory cache\/data store<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">8080<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTP Alt<\/td><td class=\"has-text-align-center\" data-align=\"center\">Dev servers, proxies, testing<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">8443<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTPS Alt<\/td><td class=\"has-text-align-center\" data-align=\"center\">Alternative HTTPS, often for admin UIs<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">27017<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">MongoDB<\/td><td class=\"has-text-align-center\" data-align=\"center\">NoSQL document database<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">9200<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Elasticsearch<\/td><td class=\"has-text-align-center\" data-align=\"center\">Search &amp; analytics engine<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3000<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Node.js \/ React<\/td><td class=\"has-text-align-center\" data-align=\"center\">Common default for local dev servers<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">5000<\/td><td class=\"has-text-align-center\" data-align=\"center\">TCP<\/td><td class=\"has-text-align-center\" data-align=\"center\">Flask \/ various<\/td><td class=\"has-text-align-center\" data-align=\"center\">Python dev servers, Docker registry<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Summary &amp; Key Takeaways<\/strong><\/h2>\n\n\n\n<p>After this deep dive, here is what you should take away:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Question<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>IP Address<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Port Number<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">What does it identify?<\/td><td class=\"has-text-align-center\" data-align=\"center\">A device (host) on a network<\/td><td class=\"has-text-align-center\" data-align=\"center\">A service or process on that device<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">What OSI layer?<\/td><td class=\"has-text-align-center\" data-align=\"center\">Layer 3 \u2014 Network<\/td><td class=\"has-text-align-center\" data-align=\"center\">Layer 4 \u2014 Transport<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">What analogy?<\/td><td class=\"has-text-align-center\" data-align=\"center\">Street address of a building<\/td><td class=\"has-text-align-center\" data-align=\"center\">Apartment number inside the building<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Who assigns it?<\/td><td class=\"has-text-align-center\" data-align=\"center\">DHCP server or network admin<\/td><td class=\"has-text-align-center\" data-align=\"center\">OS kernel or IANA<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Combined, they form&#8230;<\/td><td class=\"has-text-align-center\" data-align=\"center\">A Socket: IP:Port:Protocol<\/td><td class=\"has-text-align-center\" data-align=\"center\">A Socket: IP:Port:Protocol<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The most important insight from this entire article is that neither an IP address alone nor a port number alone is sufficient for network communication. It is always the combination of both, forming a socket that creates a real, functional communication endpoint. Understanding this is the foundation of all network programming, server configuration, and security engineering.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you type a URL into your browser, two invisible mechanisms work together to deliver the right webpage to the right tab on your screen. Most people have heard of IP addresses, but far fewer understand port numbers and almost nobody understands how both work in tandem. Confusing or ignoring one of these concepts leads [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":7500,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[106],"tags":[],"class_list":["post-7499","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-telecom"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/posts\/7499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/comments?post=7499"}],"version-history":[{"count":2,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/posts\/7499\/revisions"}],"predecessor-version":[{"id":7503,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/posts\/7499\/revisions\/7503"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/media\/7500"}],"wp:attachment":[{"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/media?parent=7499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/categories?post=7499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.revesoft.com\/blog\/wp-json\/wp\/v2\/tags?post=7499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}