Sunteți pe pagina 1din 25

Data Communications

&
Computer Networks
Recap. & follow up from L3

ICMP
Network Layer
ICMP: Internet Control Message Protocol
used by hosts & routers to
communicate network-level
information
error reporting: unreachable
host, network, port, protocol
echo request/reply (used by
ping)
network-layer above IP:
ICMP msgs carried in IP
datagrams
ICMP message: type, code plus
first 8 bytes of IP datagram
causing error
Type Code description
0 0 echo reply (ping)
3 0 dest. network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header

Network Layer
Traceroute and ICMP
Source sends series of UDP
segments to dest
First has TTL =1
Second has TTL=2, etc.
Unlikely port number
When nth datagram arrives to
nth router:
Router discards datagram
And sends to source an ICMP
message (type 11, code 0)
Message includes name of
router& IP address
When ICMP message arrives,
source calculates RTT
Traceroute does this 3 times
Stopping criterion
UDP segment eventually
arrives at destination host
Destination returns ICMP host
unreachable packet (type 3,
code 3)
When source gets this ICMP,
stops.
Lecture 9 : Application Layer
Overview
Principles of network applications
Web and HTTP
FTP
Electronic Mail
SMTP, POP3, IMAP
DNS
P2P applications
Goals ..
conceptual, implementation aspects of network application
protocols
transport-layer service models
client-server paradigm
peer-to-peer paradigm
learn about protocols by examining popular application-level
protocols
HTTP
FTP
SMTP / POP3 / IMAP
DNS

Some network apps
e-mail
web
instant messaging
remote login
P2P file sharing
multi-user network games
streaming stored video
clips


voice over IP
real-time video
conferencing
grid computing
Creating a network app
write programs that
run on (different) end
systems
communicate over network
e.g., web server software
communicates with browser
software
No need to write software for
network-core devices
Network-core devices do not
run user applications
applications on end systems
allows for rapid app
development, propagation
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
Application architectures
Client-server
Peer-to-peer (P2P)
Hybrid of client-server and P2P
Client-server architecture
server:
always-on host
permanent IP address
server farms for scaling
clients:
communicate with server
may be intermittently
connected
may have dynamic IP
addresses
do not communicate directly
with each other
client/server
Pure P2P architecture
no always-on server
arbitrary end systems
directly communicate
peers are intermittently
connected and change IP
addresses


Highly scalable but difficult
to manage

peer-peer
Hybrid of client-server and P2P
Skype
voice-over-IP P2P application
centralized server: finding address of remote party:
client-client connection: direct (not through server)
Instant messaging
chatting between two users is P2P
centralized service: client presence detection/location
user registers its IP address with central server
when it comes online
user contacts central server to find IP
addresses of buddies

Processes communicating
Process: program running
within a host.
within same host, two
processes communicate
using inter-process
communication (defined
by OS).
processes in different
hosts communicate by
exchanging messages
Client process: process
that initiates
communication
Server process: process
that waits to be
contacted



Note: applications with P2P
architectures have client
processes & server processes
Sockets
process sends/receives
messages to/from its
socket
socket analogous to door
sending process shoves
message out door
sending process relies on
transport infrastructure on
other side of door which
brings message to socket at
receiving process
process
TCP with
buffers,
variables
socket
host or
server
process
TCP with
buffers,
variables
socket
host or
server
Internet
controlled
by OS

controlled by
app developer
API: (1) choice of transport protocol; (2) ability to fix a few parameters (lots
more on this later)

Addressing processes
to receive messages,
process must have
identifier
host device has unique
32-bit IP address
Q: does IP address of
host on which process
runs suffice for
identifying the process?
A: No, many
processes can be
running on same host
identifier includes both IP
address and port numbers
associated with process on
host.
Example port numbers:
HTTP server: 80
Mail server: 25
to send HTTP message to
gaia.cs.umass.edu web
server:
IP address: 128.119.245.12
Port number: 80
more shortly
App-layer protocol defines
Types of messages
exchanged,
e.g., request, response
Message syntax:
what fields in messages &
how fields are delineated
Message semantics
meaning of information in
fields
Rules for when and how
processes send & respond
to messages
Public-domain protocols:
defined in RFCs
allows for
interoperability
e.g., HTTP, SMTP
Proprietary protocols:
e.g., Skype
What transport service does an app need?
Data loss
some apps (e.g., audio) can
tolerate some loss
other apps (e.g., file
transfer, telnet) require
100% reliable data transfer
Timing
some apps (e.g.,
Internet telephony,
interactive games)
require low delay to be
effective
Throughput
some apps (e.g., multimedia) require
minimum amount of throughput to be
effective
other apps (elastic apps) make use
of whatever throughput they get
Security
Encryption, data integrity,
Transport service requirements of common apps
Application

file transfer
e-mail
Web documents
real-time audio/video

stored audio/video
interactive games
instant messaging
Data loss

no loss
no loss
no loss
loss-tolerant

loss-tolerant
loss-tolerant
no loss
Throughput

elastic
elastic
elastic
audio: 5kbps-1Mbps
video:10kbps-5Mbps
same as above
few kbps up
elastic
Time Sensitive

no
no
no
yes, 100s msec

yes, few secs
yes, 100s msec
yes and no
Internet transport protocols services
TCP service:
connection-oriented: setup
required between client and
server processes
reliable transport between
sending and receiving process
flow control: sender wont
overwhelm receiver
congestion control: throttle
sender when network overloaded
does not provide: timing,
minimum throughput guarantees,
security
UDP service:
unreliable data transfer
between sending and
receiving process
does not provide:
connection setup, reliability,
flow control, congestion
control, timing, throughput
guarantee, or security

Q: Why bother? Why is there
a UDP?
Internet apps: application, transport protocols
Application

e-mail
remote terminal access
Web
file transfer
streaming multimedia

Internet telephony

Application
layer protocol

SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (eg Youtube),
RTP [RFC 1889]
SIP, RTP, proprietary
(e.g., Skype)
Underlying
transport protocol

TCP
TCP
TCP
TCP
TCP or UDP


typically UDP
Course Work 2
Class must be divided into groups of four.
Each group shall present a 10 minutes demonstration + 5 minutes
questions for the following protocols:
HTTP, FTP, SMTP, IMAP, POP3, DNS, IPv6, P2P (BitTorrent),
One person will be assigned from his group as team leader to
communicate with me.
The leader will email me his group members name, then I will reply
back with giving them a group number and the protocol that will be
subject to the presentation
Presentations will be held 2 weeks from now.
Evaluation Criteria
Quality of presentation contents
Quality of demonstration (choose best talkers among the group)
TIME !! Exceeding 10 minutes will mark you down!!
Answering questions
Team cooperation
Please provide proper reference otherwise prepare a 2 pages sheet


Assessment
In order to be marked, you have to fill and submit a peer
assessment form that will be sent to the group.
Each group member shall evaluate the rest of his group members
quality contribution.
Marks will be provided according to contribution to the group
The form should be sent directly to my email, It is confidential and
shouldnt be disclosed to your colleagues

Thats all ..
Any further info, contact me on my email
See you in two weeks time

S-ar putea să vă placă și