You are on page 1of 29

Networking Theory (Part 1)

Copyright@Sufian Idris & Norleyza Jailani 2013

Introduction
Overview of the basic concepts of networking Also discusses essential topics of networking theory

What is a Network?
A network is a collection of devices that share a common communication protocol and a common communication medium. Devices - computers, printers, telephones, televisions, coke machines, etc.

What is a Network?
Computing-centric model - services and devices bound to individual machines Network-centric model - services and devices are distributed across a network Network and software standards (e.g. Jini) exist to allow devices and hardware to talk to each other over networks and to allow instant plug-and-play functionality

What is a Network?

Besides devices providing services, there are also devices that keep the network going, for example,
Network

cards - to allow a computer to talk to a network. E.g. ethernet card. Routers - machines that direct data to the next "hop" in the network Hubs - allow multiple computers to access a network Gateways - connect one network to another. E.g. a LAN to the Internet.

Wired and Wireless Network

How do Networks Communicate?


Networks consist of connections between computers and devices. Connections:

Wires

and cables - use electricity for transmitting data Wireless - use infrared / radiowaves Fiber-optic cables - use light

Communication Media Eg:

Light-Fiber optic/infrared
Microwave

How do Networks Communicate?


Connections carry data (bits - 0's and 1's) between one point (node) in the network and another. For data to be successfully delivered to individual nodes, these nodes must be clearly identifiable.

Addressing
Each node in a network is typically represented by an address. The manufacturer of the network interface card (NIC) is responsible for ensuring that no two card addresses are alike, and chooses a suitable addressing scheme. Each card will have this address stored permanently, so that it remains fixed.

Addressing
There are many addressing schemes available. E.g. Ethernet network cards are assigned a unique 48-bit number. This physical address is referred to by many names, such as:

Hardware

address Ethernet address Media Access Control (MAC) address NIC address

Addressing
Often, machines are known by more than one type of address. E.g. a network server may have a physical Ethernet address as well as an Internet Protocol (IP) address, or it may have more than one network card. For inter-network communications, the IP address is used.

The ipconfig/all utility:

Data Transmission Using Packets

Sending individual bits of data from node to node is not very cost effective.
Overhead

involved - e.g address of destination node.

Most networks group data into packets.

Data Transmission Using Packets

A packet consists of a header and data segment.


Header fields Data 1101000111010100001

The header contains:


Addressing

information (e.g sender & recipient) Checksums to ensure packet has not been corrupted Other info needed for transmission across network

Data Transmission Using Packets


To transmit data, a direct connection is usually not available. So packets are sent to their destination nodes via intermediary nodes in the network. Due to network conditions (such as congestion or network failures), packets may take arbitrary routes, and sometimes may be lost or arrive out of sequence.

Data Transmission Using Packets


Packet transmission and transmission of raw bits are low-level processes. Most network programming deals with high-level transmission of data.

Communication Across Layers


The concept of layers was introduced to acknowledge and address the complexity of networking theory. The most popular approach to network layering is the Open Systems Interconnection (OSI) model created by the International Standards Organization (ISO)

Communication Across Layers

The OSI model groups network operations into seven layers.

Communication Across Layers


Each layer is responsible for some form of communication task, but each task is narrowly defined and usually relies on the services of one or more layers beneath it. Generally, programmers work with one layer at a time; details of the layers below are hidden from view.

Layer 1 - Physical Layer


This layer is network communication at its most basic level. At this level, networking hardware transmit sequence of bits between two nodes. Java programmers do not work at this layer - it is the domain of hardware driver developers and electrical engineers. No real attempt is made to ensure errorfree data transmission

Layer 2 - Data Link Layer


This layer is responsible for providing a more reliable transfer of data, and for grouping data together into frames. Frames are similar to data packets but are blocks of data specific to a single type of hardware architecture. Frames have checksums to detect errors in transmission. Corrupted frames are discarded so that they will not be passed to higher layers.

Layer 3 - Network Layer


The network layer deals with data packets which are sent across the network. Communication at this level is still very low-level; network programmers are rarely required to write software services for this layer.

Layer 4 - Transport Layer


This layer is concerned with controlling how data is transmitted. It deals with issues such as automatic error detection and correction, and flow control (limiting the amount of data sent to prevent overload).

Layer 5 - Session Layer


The purpose of this layer is to facilitate application-to-application data exchange, and the establishment and termination of communication sessions. Connection-oriented communication can increase network delays and bandwidth consumption. Some applications choose to use a connectionless form of communication.

Layer 6 - Presentation Layer

This layer deals with data representation and data conversion.


Different

machines use different types of data representation (e.g. 8-bit integers on one system and 16-bit integers on another). Data compression Data encryption

Layer 7 - Application Layer


This layer is where the vast majority of programmers write codes. Protocols for this layer dictate the semantics of how requests for services are made (e.g requesting a file). In Java, almost all network software written will be for this layer.

Advantages of Layering
Helps simplify networking protocols. Protocols can be designed for interoperability

Software

that uses Layer n can talk to software running on another machine that supports Layer n, regardless details of the lower layers.
Example: a network layer protocol can work with an Ethernet network and a token ring network.

You might also like