Matt Bowcock // mbowcock.com

Networking for Non-Network Engineers – Part 1

without comments

This post is a work in progress and will be expanded on in the future.

I work with developers, DBAs, etc. all the time who have no practical knowledge of computer networking. I’m going to try to shed a little light on the magic that happens behind the scenes. Initially this will be really basic but will become more technical.

A computer network can be broken up into two distinct pieces – the edge and the core. The network edge is made of things we are all familiar with – client PCs, servers, network attached storage, etc. The network core is what connects the systems on the edge to each other. The core is made up of routers, switches, hubs, etc.

Network Edge

Systems on the edge are sometimes referred to as hosts and hosts can be further broken down into clients and servers. Clients are typically desktop PCs, thin clients, IP enabled phones and servers are typically more powerful systems such as web & database servers. In general software terms – a client is a program running on one edge system that requests a service from a program running on another edge system. So – essentially one computer requests a service from another computer- AKA Client/Server architecture.

These edge systems communicate with each other by sending messages over the network core. IP networks (more on that later) allow for two forms of end-to-end communication – connection-oriented and connectionless.

Connection-oriented services are provided by Transmission Control Protocol (TCP). TCP provides services reliable communication, and flow and congestion control. These assurances allow a client/server application to enjoy reliable data transfer. The TCP protocol ensure reliable data transmission by following an initial handshaking procedure and then sending control packets along with real data. These control packets allow the communicating systems to correctly order the data sent back and forth. Common application that use TCP are email, and web servers.

Connectionless services are provided by User Datagram Protocol (UDP). UDP makes no assurances that data sent from one system to another will be received or what order it will be received in. The benefit of UDP is speed – since there is no initial handshaking or error correction – data is sent once and forgotten. UDP is popular where some loss of data is acceptable like IP phone, and streaming video.

Network Core

The core of modern networks is based on packet switching. Edge systems communicate by sending messages back and forth. These messages can be email, HMTL, data from a database, etc. Large messages are broken down into packets which are a standard size based on the network service. These packets are then transmitted through the network core – over network cables, switches/routers.

Network Core Components

Router – A router is used to connect multiple computers and networks. For home usage a router would typically be used to connect a home network (LAN) to the Internet (WAN). For a large corporate network a router may be used to connect LANs from different geographic locations on different network segment.

Switch – A switch is used to connect edge devices (PCs, servers) to one another over a LAN. Devices on a switch communicate directly with each other – as far as the devices are concerned – they are connected with each other directly. Switches are not able to connect multiple networks together.

Hub – A hub is similar to switches in that they are used for connected devices to communicate with each other and that they can’t be used to connect networks together. However – hubs differ from switches in that when a packet is transmitted on a switch it is forwarded to all connected devices not just the destination system.

You’ll often hear people refer to a router as a switch or a hub as a router – they perform similar functions in that they facilitate network communication – but they are all distinctly different.

Written by matt

August 30th, 2008 at 12:08 am

Posted in notebook

Leave a Reply