networking theory (part 1). introduction overview of the basic concepts of networking also discusses...

54
Networking Theory (Part 1)

Post on 22-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Networking Theory (Part 1)

Page 2: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Introduction

Overview of the basic concepts of networking

Also discusses essential topics of networking theory

Page 3: 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.

Page 4: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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

Page 5: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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 networkHubs - allow multiple computers to access a

networkGateways - connect one network to another.

E.g. a LAN to the Internet.

Page 6: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

How do Networks Communicate?

Networks consist of connections between computers and devices.

Connections:Wires and cables - use electricity for

transmitting dataWireless - use infrared / radioFiber-optic cables - use light

Page 7: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 8: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 9: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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 addressEthernet addressMedia Access Control (MAC) addressNIC address

Page 10: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 11: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 12: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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

corruptedOther info needed for transmission across network

Page 13: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 14: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 15: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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)

Page 16: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Communication Across Layers The OSI model groups network operations into

seven layers.

Page 17: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 18: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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 error-free data transmission

Page 19: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 20: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 21: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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).

Page 22: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 23: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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 compressionData encryption

Page 24: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 25: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Advantages of Layering

Helps simplify networking protocols. Protocols can be designed for

interoperabilitySoftware 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.

Page 26: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Networking Theory (part 2)

Page 27: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 28: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 29: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Design of the Internet

Major design goals:Resource sharing between networksHardware and software independenceReliability and robustness

Fault tolerant protocols - data could be rerouted depending on the state of the network

"Good" protocols that are efficient and simple.

Page 30: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

TCP/IP Protocol Suite

Major protocols: Internet Protocol (IP) Internet Control Message Protocol (ICMP)Transmission Control Protocol (TCP)User Datagram Protocol (UDP)

Page 31: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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

Page 32: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 33: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 34: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

IPV4 datagram format

Page 35: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 36: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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

Page 37: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 38: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 39: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Internet Control Message Protocol (ICMP) Five error messages are defined:

Destination Unreachable If a gateway is unable to pass a datagram on to its

destination, this message is sent back to the original host.

Parameter Problem This message is sent to the sending host if a

gateway is unable to process the header parameters of an IP datagram.

Page 40: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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 Quench This message may be sent in an attempt to reduce

the number of incoming datagrams when a router, gateway or host becomes overloaded.

Time Exceeded Whenever the TTL value of a datagram reaches

zero is discarded. This message may be sent if this event occurs.

Page 41: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 42: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 43: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 44: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 45: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

Internet Application Protocols

Network programmers are more interested in the protocols at the application layer.

Examples:Protocols for accessing and sending emailProtocols for transferring filesProtocols for reading Web pages

Page 46: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

TelnetA service that allows users to open a remote-

terminal session to a specific machine.Uses TCP port 23.

File Transfer Protocol (FTP)Allows file transfersUses 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.

Page 47: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 48: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 49: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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.

Page 50: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

TCP/IP Protocol Suite Layers

Internet Protocol

TCP UDP ICMP

HTTP SMTP FTP POP3

TCP/IP Stack

Page 51: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

TCP/IP Protocol Suite LayersPOP3 command: RETR1

TCP segment:

IP datagram:

Modem frame:

Carrier wave:

Application layer

Transport layer

Network layer

Data link layer

Physical layer

TCP header RETR1

IP header TCP header RETR1

IP header TCP header RETR1Modem header

Page 52: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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

Page 53: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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

Page 54: Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory

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