Application Layer: functionality and Protocols

Download Report

Transcript Application Layer: functionality and Protocols

Application Layer: functionality and
Protocols
Laurent Babout, PhD, DSc
Based on Cisco material
1
Objectives of lecture
• Define the application layer as the source
and destination of data for communication
across networks.
• Explain the role of protocols in supporting
communication between server and client
processes.
• Presentation of the features, operation, and
use of well-known TCP/IP application layer
services (HTTP, DNS, SMTP).
2
Applications – The Interface Between
Human and Data Networks #1
• Applications provide the means for generating and
receiving data that can be transported on the
network
3
Applications – The Interface Between
Human and Data Networks #2
• Layer 7: application layer
– Interface application / network
– Application layer protocols used to exchange data
between programs running on the source and
destination hosts.
4
Applications – The Interface Between
Human and Data Networks #3
• Layer 6: presentation layer
– Coding and conversion of Application layer data.
– Compression/decompression of the data.
– Encryption/decryption of the data.
• Layer 5: session layer
– create and maintain dialogs between source and
.destination applications.
• Most applications, like web browsers or e-mail
clients, incorporate functionality of the OSI
layers 5, 6 and 7.
5
Applications – The Interface Between
Human and Data Networks #4
• TCP/IP application protocols:
– Specify format
– Control information necessary for many of the common
Internet communication functions
• Common protocols: DNS, HTTP, SMTP, FTP, telnet
6
The Role of Protocols in Supporting
Communication #1
• Protocols at layer 7 used for:
– Defining processes at either end of the
communication
– Defining the types of messages
– Defining the syntax of messages
– Defining the meaning of any informational fields
– Defining how message are sent and the expected
response
– Defining interaction with the next lower layer
7
The Role of Protocols in Supporting
Communication #2
• The client-server model
8
The Role of Protocols in Supporting
Communication #3
• Server processes may support multiple client:
– The Application layer processes and services rely
on support from lower layer functions to
successfully manage the multiple conversations.
9
The Role of Protocols in Supporting
Communication #4
• The peer-to-peer (P2P) model
– P2P network
– P2P application
• P2P network
– two or more computers are connected via a network
and can share resources (such as printers and files)
without having a dedicated server
– Every connected end device (known as a peer) can
function as either a server or a client.
– Resource decentralization
10
The Role of Protocols in Supporting
Communication #5
• P2P application:
– Each end device is a client and a server
– Application should provide user interface and background
service
– Hybrid system possible
• Index server to get location of resource stored on another peer
• Once P2P connection, no communication with index server
11
Features, Operation, and Use of TCP/IP
Application Layer Services
• Most common layer 7 applications protocols
–
–
–
–
–
–
–
DNS
HTTP
SMTP/POP
FTP
DSCP
Telnet
…
• Most TCP/IP protocols defined in RFCs
(Request For Comments) of the IETF (Internet
Engineering Task Force)
12
DNS #1
• Domain Name Service (DNS) and protocol
– Match domain name with IP address
– Stored on distributed set of DNS servers
• Protocol (defined in RFC1035):
– Use a single format called a message
– Message format used for client queries, server response,
message error and transfer of resource record info between
servers
13
DNS #2
• Use nslookup to identify IP of DNS
14
DNS #3
• DNS servers store different types of resource
record:
– A: and end device (IP) address
– NS: an authoritative name server
– CNAME: the canonical name (or fully qualified name)
for an alias
– MX - mail exchange record; maps a domain name to
a list of mail exchange servers for that domain
• Use ipconfig/displaydns to display some
resource records stored in Microsoft memory
cache (DNS client service)
15
DNS #4
• Ipconfig/displaydns
5≡ alias (type CNAME)
1≡ end device address (type A)
16
DNS #5
• Over 350 millions urls nowadays, 4.5 million/month
• Hierarchical organization
– Root server
– Top-level domain servers (TLD)
– Secondary level domain servers
5 unrestricted TLDs
291 country codes
17
HTTP #1
• HTTP: HyperText Transfer Protocol (defined in RFC2616)
• Web browser application:
–
–
–
–
Check 3 parts of address (i.e. http://www.kis.p.lodz.pl/index.html)
Check server name to convert kis.p.lodz.pl into numeric address
Send GET request to the server and asks for the file index.html
Deciphers the HTML code sent by the server and formats the page
http://www.kis.p.lodz.pl
18
HTTP #2
• You can use web-sniffer.net to view http
request/response and html source code
19
HTTP #3
• HTTP Specifies message types for request/response
• Three common message types:
– GET: request pages from web server
– POST: includes data in the message sent to server
– PUT: upload resources and content to the web server
• HTTP not secure. Instead HTTPS which use
encryption and authentification. HTPPS specifies
additional rules for passing data between the
Application Layer to the Transport Layer.
20
• Vocabulary:
SMTP/POP #1
–
–
–
–
POP: Post Office Protocol
SMTP: Simple Mail Transfer Protocol
MUA: Mail User Agent (You when you send/rec an Email)
MTA: Mail Transfer Agent (server receiving or forwarding
emails)
– MDA: Mail Delivery Agent
(server delivering
Email to client)
21
SMTP/POP #2
• POP: typically client/server protocol
• SMTP: client/server, server/server protocol
• Some commands specified in SMTP protocol (defined
in RFC2821):
– HELO - identifies the SMTP client process to the SMTP
server process
– EHLO - Is a newer version of HELO, which includes services
extensions
– MAIL FROM - Identifies the sender
– RCPT TO - Identifies the recipient
– DATA - Identifies the body of the message
22
FTP
• File Transfer Protocol (defined in RFC959)
• A 2-connection step for file transfer between
client and server
– 1st connection (port 21): control traffic (client
command and server replies)
– 2nd connection (port 20): data traffic (created every
time a file is transferred)
• Download/upload
• Secure FTP: FTPS / SFTP (SSH)
23
DHCP #1
• DHCP: Dynamic Host Configuration Protocol
• Service
• Allow device on network to obtain IP address and
other information from a server
• Automatic assignment from “pool” of addresses:
–
–
–
–
IP address,
Subnet
Gateway
…
• Address leased for a given period of time
• If client system down, address sent back to the “pool”
• Home network, DHCP server located at the ISP
(Internet Service Provider)
24
DHCP #2
• DSCP protocol
– Discover: client broadcast packet to identify any available
DSCP server
– Reply from DSCP server with DSCP offer (lease offer of IP,
subnet, gateway, DNS server, duration of the lease)
– Request: broadcast packet to identify the explicit server
– Server sends ACK to acknowledge the lease finalization
• See DSCP offer using ipconfig /all
25
Telnet #1
• Remote access to server via virtual terminal
(VTY)
• One of the oldest Application layer protocols
and services in the TCP/IP suite
26
Telnet #2
• Telnet protocol specifies how a VTY session is
established and terminated+control commands
• Defined in the RFC854 in 1983 (IETF)
• Telnet command made of at least 2 bytes
– 1st byte: IAC - Interpret As Command (decimal value: 255)
– 2nd byte can be:
• AYT – Are You There (246)
• EL – Erase Line (248)
• IP – Interrupt Process (244)
• Telnet clients: PuTTy, TeraTerm…
• Secured version: SSH (authentification, encryption)
27