lecture6x - SFU computer science

Download Report

Transcript lecture6x - SFU computer science

CMPT 371
Data Communications and Networking
FTTP
© Janice Regan, CMPT 128, 2007-2012
0
FTP
 File Transfer Protocol
 An application layer communication protocol used to
transfer files from one host to another
 Often used for downloading files on the Internet
 We can use FTP without connecting through the
WWW (uses port 21)
 For detailed information about HTTP see RFC
959
Janice Regan © Sept. 2007-2016
1
File transfer protocol
 When we want to copy a file from a remote site
we can use FTP
 When an FTP request is made first a TCP
connection is made just to exchange control
information. This is called the control connection
 A second TCP connection will later be made to
do the actual transfer of the requested file. This
is called the data connection
Janice Regan © Sept. 2007-2016
2
Control information
 permissions and passwords indicating that the
user attempting the download is permitted to
access the file requested for download.
 Negotiation of the properties (like port) of the
data connection
 Keep track of the state of the user, for example
where in the remote directory tree he is, so the
file to transfer can be identified
Janice Regan © Sept. 2007-2016
3
Common Channel Signaling
 Signals travel independently from data, over a
separate common channel
 The separate channel handles control
messages for a number of connections
simultaneously.

For FTP each file transfers on a separate channel,
all transfers are managed using a single channel
 This makes the signaling protocol and the
network architecture more complicated
Janice Regan © Sept. 2007-2016
4
Steps: using FTP (1)
 Client contacts server (port 21)
 Client logs in (to control channel), provides
password to verify that he /she has access to the
available files
 Client browses files and chooses desired file or
files (using LIST, CWD, LS, CD)
 Client requests first desired file (using RETR in
Windows or GET in linux/unix)
Janice Regan © Sept. 2007-2016
5
Steps: using FTP (2)
 Server receives transfer command, opens a 2nd
TCP connection and transfers the file though the
2nd TCP connection (port 20)
 When the file has completed transfer the 2nd TCP
connection is closed.
 Server opens another connection to transfer next
requested file.
Janice Regan © Sept. 2007-2016
6
Examples of FTP Commands
 sample commands used in the control channel
 USER username
 PASS password
 LIST return list of file in current directory
 RETR filename retrieves (gets) file
 STOR filename stores (puts) file onto remote host
Janice Regan © Sept. 2007-2016
7
Examples of FTP replies
 331 Username OK, password required
 425 Can’t open data connection
 452 Error writing file
 125 data connection already open; transfer
starting
Janice Regan © Sept. 2007-2016
8
CMPT 371
Data Communications and Networking
SMTP
© Janice Regan, CMPT 128, 2007-2012
9
SMTP
 Simple Mail Transfer Protocol
 An application supporting email communication
across the Internet
 We can use SMTP without connecting through the
WWW
 Primarily a push protocol (sends to server)
 In contrast HTTP is a pull protocol (requests from
server)
Janice Regan © Sept. 2007-2016
10
SMTP
 Part of the Internet email system which includes
 User agents (your mail browser)
 Email servers
 SMTP is a protocol to communicate between user
agents and Email servers, and between different
Email servers
 For SMTP see RFC 1982 and RFC 2821
Janice Regan © Sept. 2007-2016
11
Mail user agents
 A user agent will provide the tools to
 Compose mail
 Read mail
 Send mail (to a recipient through their mail server)
 Receive mail (download mail from the server)
 Archive received mail
 Forward mail
 Examples of agents
 Thunderbird
 Eudora
 Outlook
Janice Regan © Sept. 2007-2016
12
Infrastructure of the Email system
 Every Email server includes both a SMTP client
and an SMTP server

Users sending Email are SMTP clients
 Email servers sending mail are SMTP clients
 Email servers receiving mail are SMTP servers
 Every Email server communicates directly (TCP) with
other Email servers it wishes to send Email to.

Emails are sent directly from the senders Email server to
the receivers Email server. No other Email servers take
part in the transfer of the email.
Janice Regan © Sept. 2007-2016
13
Sending Email:
User 1’s Email server
User 1’s Email agent
User 1
User 2’s Email server
Janice Regan © Sept. 2007-2016
User 2
14
Mail servers: normal operation
 When user 1 sends an Email to user 2. The
Email will
be sent to user 1’s mail server
 be queued on user 1’s mail server

 User 1’s mail server will then use TCP to
connect to User 2’s Email server
 User 1’s mail server will then use SMTP to

send the Email to the user 2’s mail server
 When an Email arrives at user 2’s mail server it
is placed in user 2’s mail box
 User 2 can later retrieve the message
Janice Regan © Sept. 2007-2016
15
Mail servers: problems?
 When user 1’s mail server uses SMTP to try to
send an Email to user 2’s mail server

User 1’s server will try to create a TCP connection to
the user 2’s server
 Why might it be impossible to reach user 2’s
server?

The requested server is down (not operating)
 The requested server does not exist
 The requested server is too busy and can not accept
the senders TCP connection
Janice Regan © Sept. 2007-2016
16
If user 2’s Email server is not
reached
 What happens if user 2’s mail server is not
available
User 1’s Email server will leave the message in the
queue and try to resend it again later
 After some number of retries user1 will received a
mail from his mail server indicating that the mail he
sent could not be delivered
 The email user1 sent will be dropped from user 1’s
mail server's queue by the mail server

Janice Regan © Sept. 2007-2016
17
SMTP: legacy protocol
 SMTP is an relatively old protocol


It requires all messages be sent in ASCII (text) format
If the message is not in text format then it must be somehow
translated into text format (even if you are sending images)
 Unlike SMTP the newer protocol HTTP does not require
this translation
User
(sender)
agent
Sender’s
Mail
Server
Janice Regan © Sept. 2007-2016
SMTP
messages
Through direct
TCP
connection
Recipient’
s
Mail
Server
User
(recipient)
agent
18
MIME extensions
 For inclusion of non text information in mails
 Provides methods for translation of non text information
into text for transmission using SMTP
 Information on encodings used will be placed in the
header by the sending agent so that the receiving agent
can decode the information and reconstruct the non
textual information
 Other information like the RECEIVED line that indicates
when the message arrived and from where are added by
the receiving mail server before being forwarded to the
receiving agent
 For details see RFC 2045
Janice Regan © Sept. 2007-2016
19
You own SMTP server?
 Where should the SMTP server be?
 If we place the server on our PC or MAC
 Machines (receiver and sender) must always be on
 Machines must always be connected to internet
 Machines must run server software itself
 Usually better to have email servers on a
network server that is maintained, always on,
and always accessible
Janice Regan © Sept. 2007-2016
20
Sending Email: user1 to user2
User 2
User 1’s Email server
SMTP
SMPT
push
push
User 1
POP3
IMAP
pull
User 2’s Email server
Janice Regan © Sept. 2007-2016
21
Agents communicate with servers
 Mail access protocols are used by agents
communicating with mail servers to request
download of mail (pull operation not push so we
don’t use SMTP)
 Such protocols include

POP3 (post office protocol v3)
 IMAP (internet mail access protocol)
 HTTP (hotmail and webmail)
Janice Regan © Sept. 2007-2016
22
POP3 (post office protocol)
 Details in RFC 1939
 A simple mail server access protocol (for
downloading received mail)
 The user agent connects to the mail server
through a TCP connection
 Once the connection is made POP3 will check
the authorization (username, password etc.) of
the user
 The user agent then performs transactions
needed to download the user’s Email
Janice Regan © Sept. 2007-2016
23
POP 3: login session
S: +OK POP3 server ready
C: user janice
S: +OK
C: pass tigermoth
S: +OK user successfully logged on
Janice Regan © Sept. 2007-2016
24
POP 3: download session
C: list
User selects “download only” or “download and
S: 1 765
delete”. Red commands only used when “download
S: 2 225
and delete” mode is selected
S: .
C: retr 1
S: <what is in the body and header of message 1>
S: .
C: dele 1
……
C: retr 2
S: <what is in the body and header of message 2>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
Janice Regan © Sept. 2007-2016
25
POP3
 The user agent then performs transactions
 retrieves the users messages from the mail server
across the TCP connection (may delete messages
as they are retrieved or not. Two modes available)
 records agent requested deletions etc. and replies to
such requests
 The agent breaks the connection and then the
server completes outstanding
deletion/modification requests from the agent
 Once mail is downloaded the user agent allows
classification into folders locally. (Not on the
mail server)
Janice Regan © Sept. 2007-2016
26
Pop 3 from multiple clients
 If a user accesses her email from two different
locations, her office and her home then POP
has some limitations
 If POP uses download and delete mode any
messages accessed at home have been deleted
and cannot be accessed from the office
 If POP3 uses download only, then the user
needs to remember to manually delete mail that
she has downloaded in both places
Janice Regan © Sept. 2007-2016
27
IMAP
 Details in RFC 2060
 A more complex and feature rich mail server access
protocol
 Allows organization of mail into folders on the mail
server, so that those folders can be accessed from
anywhere, (not just the machine they were downloaded
to in the case of POP3)
Janice Regan © Sept. 2007-2016
28
IMAP
 This requires more commands in the communication
protocol to allow the user to instruct the server to move
files and save them in particular folders, to create and
move those folders.
 More flexibility.
 Accessing from low bandwidth location you can
request only message headers be downloaded, than
only download the desired messages that are
immediately needed.
Janice Regan © Sept. 2007-2016
29
CMPT 371
Data Communications and Networking
DNS
© Janice Regan, CMPT 128, 2007-2012
30
Host names
 In addition to identifying a host by the IP address of a
connected interface we also identify the interface by an
hostname
 Hostnames are easier for a human to use and
remember that the IP address
 In the early Internet names were recorded at a central
registry at the Network Information Center (NIC) .
 New hosts/names were submitted to the central
registry and added to the hosts file
 The hosts file was available for distribution to all
other sites.
 This was a flat naming structure
Janice Regan © Sept. 2007-2016
31
Hierarchical name space
 The central naming system worked well until the
Internet grew larger than it could handle (soon
after TCP/IP was adopted)

The central servers could no longer deal with the
volume of traffic
 The manual updating of names was slow, and
maintaining network wide consistency was difficult
 Enforcing the use of unique names became more
difficult (then impossible)
Janice Regan © Sept. 2007-2016
32
DNS
 The primary use of DNS is to answer queries requesting
the IP address that corresponds to a given host name.
 Reverse queries, finding the name of a host with a
particular IP address are also possible
 DNS can also support multiple, different names for the
same host (computer, mail server, …).


The primary name of a host is the canonical hostname
A host can be called by names other than it’s canonical
hostname, these alternate names are called aliases
 DNS can also support multiple IPs for the same
canonical hostname (used to distribute load)
Janice Regan © Sept. 2007-2016
33
Addresses an names
 IP address is a hierarchical system.
 An IP address consists of four integers between 0 and
256 separated by .’s (example 192.168.3.1) .
 As we scan each group starting at the left and
proceeding towards the right we obtain more and
more specific information
Janice Regan © Sept. 2007-2016
34
Addresses an names
 DNS also uses a hierarchical classification
system for domain names.

Domain names may represent a network a sub
network or even a host
 Consists of . separated names. As we read from left
to right each name represents a smaller and more
localized network or even a single host
Janice Regan © Sept. 2007-2016
35
Hierarchical name space
 The hierarchical DNS name system was
designed to replace this original flat
namespace in which each machine had a
unique name
 Administration was decentralized using a
distributed database
 Local administrators were given responsibility
for building and maintaining a database
relating IP address and name for their
designated groups of local networks
Janice Regan © Sept. 2007-2016
36
DNS Name Tree
.
Labels may
have up to 63
characters
In-addr
edu
com
arpa
hp
sun
nasa
jpl
Janice Regan © Sept. 2007-2016
Labels (names) may refer to
domains (hosts +nets)
hosts or networks
gov
us
ca
fraser
uk
ny
ca
sfu
fr
bc
fraser cs
37
DNS Name Tree
.
Children of different
parents can have the
same name
In-addr
hp1
edu
com
arpa
sun
hp
NO!
hp1
nasa
jpl
Janice Regan © Sept. 2007-2016
All children of a
given parent must
have unique names
gov
us
ca
fraser fred
uk
ny
ca
sfu
fr
bc
fraser cs
38
Constructing names: name tree
Start at the leaves of the tree
The domain for the chosen leaf will be the first part of
the name.
3. Add a period to the first part of the name
4. Check the domain name of the root of the current
position in the tree.
 If it is not the root of the tree
1.
2.
1.
The domain name of the root of the current position in the tree is
added after the period
 If it is the root of the tree the name is complete
5.
Repeat steps 3 and 4 until the name is complete
Janice Regan © Sept. 2007-2016
39
jpl.nasa.gov.
.
In-addr
edu
com
arpa
hp
sun
nasa
jpl
Janice Regan © Sept. 2007-2016
gov
us
ca
fraser
uk
ny
ca
sfu
fr
bc
fraser cs
40
Fully Qualified Domain Name
 DNS uses fully qualified domain names
 FQDNs are complete domain names including all
parts of the domain name from the domain of
interest up to the root

Ends in a . to indicate root. For example fraser.sfu.ca.

The terminating . Indicates that the name is absolute
( relative to root, not to any other position in the DNS
tree)
Janice Regan © Sept. 2007-2016
41
Domain Names: not fully qualified
 Domain names that are not fully qualified (do not
end at root, like fraser.sfu) may be interpreted by
some software as relative to some particular
location (other than root) in the DNS tree.
 Your host must be configured to tell these
software applications how to complete a domain
name that is not fully qualified (how to convert it to
a fully qualified domain name). You must tell the
software what locations these names may be
relative to.
Janice Regan © Sept. 2007-2016
42
Authority for the DNS namespace
 The central internet authority was ICANN (Internet
corporation for assigned numbers and names) and is now
IANA (Internet assigned numbers authority).



Responsibility for the root level . domain rests with IANA
TLDs, top level directories for the internet namespace

include generic TLDs (gTLDs) like .com or .org for
classification of domain names by type of use

include country code TLDs (ccTLDs) like .ca or .us for
geographical classification of domain names
Responsibility for administering the TLDs has been delegated to
other contractors by IANA
Janice Regan © Sept. 2007-2016
43
DNS Name Tree: Domains
Root domain
“”
Generic Top level
domains gTLDS
arpa
edu
com
In-addr
hp
nasa
jpl
Janice Regan © Sept. 2007-2016
gov
Country code Top level
domains ccTLDS
us
ca
uk
ny
ca
sfu
fr
bc
fraser cs
44
Authority for the DNS namespace
 Any organization to which responsibility for a
DNS domain is delegated

must provide at least two independent DNS servers to
service that domain



These DNS servers must be geographically separated
These servers must be configured to provide continuous
service
may delegate authority for parts of the DNS domain
for which they are responsible to other organizations.
Janice Regan © Sept. 2007-2016
45
Authority for the DNS namespace
 Each DNS server must know the name/address of
the servers it has delegated responsibility to.

The delegator of authority need not inform all
organizations it delegates to of changes made by other
such organizations. This is an unreasonable load in a
rapidly growing/changing internet.
Janice Regan © Sept. 2007-2016
46
Authority for the DNS namespace
 Each DNS server must know the name/address of
the servers it has delegated responsibility to.

The delegated authority has a responsibility to inform
the delegator if address or name of the DNS name
server changes. This is necessary to guarantee that
address queries can be passed down the tree.
Janice Regan © Sept. 2007-2016
47
Examples of delegation
 TLD .ca delegates authority to sfu to manage
the domain sfu.ca
 TLD .ca delegates authority to BC to manage
top level domain .bc
 Domain .bc delegates authority to the BC
government to manage domain gov.bc.ca
Janice Regan © Sept. 2007-2016
48
DNS Name Tree: sub-trees
.
arpa
edu
com
mycomp domain
mycomp
mynet myhost
nasa
jpl
Janice Regan © Sept. 2007-2016
us domain
us
gov
ca
fraser
ny
ca
sfu
fr
bc
fraser cs
49
How many DNS servers?
 Extrapolating this model we discussed before
would have a DNS server for each domain
 What is the smallest domain?

1 host, host name = domain name


Clearly this makes too many servers
1 local network = 2 DNS servers

Still too many (lots of small networks)
 At some reasonable point we need to stop
delegating authority
Janice Regan © Sept. 2007-2016
50
Domain Name System
 A DNS domain is a sub tree
 The name of the domain is the domain name of the
node at the root of the sub tree
 The domain includes all domains and hosts below the
root of the sub tree
 .us domain, includes .ca domain and .ny domain
 .mycomp domain include .mynet domain and host
.myhost
 The administrative responsibility for the domain and its
subdomains may be arranged in different ways
Janice Regan © Sept. 2007-2016
51