Networking Theory (Part 1)
Download
Report
Transcript Networking Theory (Part 1)
Networking Theory
(Part 1)
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 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.
How do Networks Communicate?
Networks consist of connections between
computers and devices.
Connections:
Wires
and cables - use electricity for
transmitting data
Wireless - use infrared / radio
Fiber-optic cables - use light
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.
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 code.
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.
Networking Theory
(part 2)
Internet Architecture
The Internet is a worldwide collection of
smaller networks that share a common
suite of communication protocols
(TCP/IP).
It is an open system, built on common
network, transport and application layer
protocols, while granting the flexibility to
connect a variety of computers, devices
and operating systems to it.
Design of the Internet
The Internet is the result of many decades
of innovation and experimentation.
The TCP/IP protocols have been carefully
designed, tested and improved over the
years.
Design of the Internet
Major design goals:
Resource
sharing between networks
Hardware and software independence
Reliability and robustness
Fault tolerant protocols - data could be rerouted
depending on the state of the network
"Good"
protocols that are efficient and simple.
TCP/IP Protocol Suite
Major protocols:
Internet
Protocol (IP)
Internet Control Message Protocol (ICMP)
Transmission Control Protocol (TCP)
User Datagram Protocol (UDP)
Internet Protocol (IP)
IP is a Layer 3 protocol (network layer)
It is used to transmit data packets over the
Internet
It is the most widely used networking
protocol in the world.
IP acts as a bridge between networks of
different types
Internet Protocol (IP)
IP is a packet-switching network protocol.
Information is exchanged between two
hosts in the form of IP packets (IP
datagrams).
Each datagram is treated as a discrete
unit - there are no "connections" between
machines at the network layer.
Connection services are provided by the
higher-level protocols at the transport
layer.
Internet Protocol (IP)
The IP datagram consists of a header and
the actual data being sent.
The header contains essential information
for controlling how it will be delivered.
IPV4 datagram format
Internet Protocol (IP)
Although each machine has its own physical
address, each host machine under the Internet
Protocol must be assigned a unique IP address.
The IP address is a four-byte (32-bit) address.
Example: 192.168.1.5
The IP address is not bound to a particular
physical machine.
Network programming in Java does not require
the use of the physical address; only the IP
address is used.
Internet Protocol (IP)
Humans do not find IP addresses easy to
remember.
An addressing scheme is also used which
allows the use of textual names
(hostnames) instead of numerical values.
Example: java.sun.com
Internet Control Message Protocol
(ICMP)
The Internet Protocol provides absolutely
no guarantee of datagram delivery.
The Internet Control Message Protocol
(ICMP) is a mechanism for error-control. It
is used in conjunction with the Internet
Protocol to report errors when and if they
occur.
Internet Control Message Protocol
(ICMP)
The relationship between IP and ICMP is a
strong one.
E.g:
IP uses ICMP if it needs to notify another
host of an error. ICMP requires IP to send the
error message.
Note that a host cannot rely solely on
ICMP to guarantee delivery as there is no
guarantee that ICMP messages will be
sent or that they will reach their intended
destination.
Internet Control Message Protocol
(ICMP)
Five error messages are defined:
Destination
If a gateway is unable to pass a datagram on to its
destination, this message is sent back to the
original host.
Parameter
Unreachable
Problem
This message is sent to the sending host if a
gateway is unable to process the header
parameters of an IP datagram.
Internet Control Message Protocol
(ICMP)
Redirect
If a shorter path, or alternate route, is available, a
gateway may send this message to the router that
passed on a datagram
Source
This message may be sent in an attempt to reduce
the number of incoming datagrams when a router,
gateway or host becomes overloaded.
Time
Quench
Exceeded
Whenever the TTL value of a datagram reaches
zero is discarded. This message may be sent if
this event occurs.
Internet Control Message Protocol
(ICMP)
ICMP supports several informational
messages such as:
Echo
Request/Echo Reply
Used to determine whether a host is alive and can
be reached.
Address
Mask Request/Address Mask Reply
Provides the functionality to determine the address
mask which controls which bits of an IP address
correspond to a host, and which bits determine the
network/subnet portion.
Transmission Control Protocol
(TCP)
TCP is a Layer 4 protocol (transport layer)
that provides guaranteed delivery and
ordering of bytes.
TCP uses IP to send TCP segments,
which contain additional information that
allows it to order packets and resend them
if they go astray.
Transmission Control Protocol
(TCP)
TCP uses communication ports to
distinguish one application or service from
another.
A host machine can have many
applications connected to one or more
ports.
Although TCP provides a simpler
programming interface, it may reduce
network performance.
User Datagram Protocol (UDP)
UDP is a Layer 4 protocol (transport layer)
that applications can use to send packets
of data across the Internet (as opposed to
TCP, which sends a sequence of bytes).
UDP also supports communication ports.
UDP does not guarantee delivery packets.
It also does not guarantee that they will
arrive in the right order.
Although unreliable, UDP offers faster
communication.
Internet Application Protocols
Network programmers are more interested
in the protocols at the application layer.
Examples:
Protocols
for accessing and sending email
Protocols for transferring files
Protocols for reading Web pages
Telnet
A service
that allows users to open a remoteterminal session to a specific machine.
Uses TCP port 23.
File Transfer Protocol (FTP)
Allows
file transfers
Uses TCP port 21 (to control sessions) and
TCP port 20 (for the actual transfer).
Post Office Protocol version 3 (POP3)
Used
to access e-mail
Allows users to read mail offline.
Uses TCP port 110.
Internet Message Access Protocol (IMAP)
Less
popular than POP3 as it requires
continual connection to the mail server.
Message are stored on a server and not on
the user's system.
Uses port 143.
Simple Mail Transfer Protocol (SMTP)
Allows
messages to be delivered over the
Internet.
Uses port 25.
HyperText Transfer Protocol (HTTP)
One
of the most popular protocols in use on
the Internet; it made the World Wide Web
possible.
Java provides good HTTP support.
Uses TCP port 80.
TCP/IP Protocol Suite Layers
Although there are seven OSI network
layers, not all are used in Internet
programming.
The layers beneath the network layer are
encapsulated from the network
programmer.
TCP/IP Protocol Suite Layers
HTTP SMTP FTP
TCP
UDP
Internet Protocol
TCP/IP Stack
POP3
ICMP
TCP/IP Protocol Suite Layers
POP3 command:
TCP segment:
Application layer
RETR1
TCP header
RETR1
IP datagram: IP header TCP header
Transport layer
RETR1
Network layer
Modem frame:
Modem header IP header TCP header
Carrier wave:
Data link layer
RETR1
Physical layer
Security Issues: Firewalls and
Proxy Servers
Firewall: while being an excellent tool for n/w
admin often is a developer’s worst enemy
It blocks direct UDP and TCP access, making
application that uses these protocols practically
unusable
Need to adapt software to proxy requests using
protocol such as HTTP
Direct UDP/TCP communication is simpler and
offers better performance
Using proxy server and HTTP can add delays
Proxy Server
It is a machine that acts as a proxy for
application protocols
The server accepts incoming connections from
machines within a local n/w and makes requests
on their behalf to machines connected to the
Internet
Advantages:
Direct
access to internal machines is never
established
Proxy Server
Only popular protocols such as HTTP is
permitted access while newer application
such as games or RealAudio is not
permitted
Most proxy servers also log networking
events to allow n/w admin to track unusual
communications and their origin