Domain Name System...pdf introduced by dr. isaac netwon
minazakaria577
0 views
27 slides
Oct 25, 2025
Slide 1 of 27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
About This Presentation
Domain Name System...pdf
Size: 2.72 MB
Language: en
Added: Oct 25, 2025
Slides: 27 pages
Slide Content
DNS: Domain Name System
People: many identifiers:
0 SSN, name, Passport #
Internet hosts, routers:
0 IP address (32 bit) -
used for addressing
datagrams
0 "name", e.g.,
gaia.cs.umass.edu - used
by humans
Q: map between IP
addresses and name ?
Domain Name System:
D distributed database
implemented in hierarchy of
many name servers
0 application-layer protocol
host, routers, name servers to
communicate to resolve names
(address/name translation)
I note: core Internet
function implemented as
application-layer protocol
0 complexity at network's
"edge"
2: Application Layer
1
DNS name servers
Why not centralize DNS? D no server has all name-
D single point of failure to-IP address mappings
D traffic volume local name servers:
0 each ISP, company has
0 distant centralized local (default) name server
database 0 host DNS query first goes
[ maintenance to local name server
authoritative name server:
doesn't scale! 0 for a host: stores that
host's IP address, name
0 can perform name/address
translation for that host's
name
2: Application Layer 2
DNS: Root name servers
0 contacted by local ne
name server that can DNS Root Servers
Designation, Responsibility, and Locations
not resolve name en INORDU Stockholm
[ root name server:
D contacts
authoritative name
server if name
mapping not known
0 gets mapping
0 returns mapping to D-UMD College Pk MO
local name server BOISAUSC Marina delRey CA USArmyaburdeen MD
L-DISA-USC Marina delRey CA J-NSF-NSI Herndon VA
0 + dozen root name
servers worldwide
FASC Woodside CA
M-WIDE Keio
K-LINXIRIPE London
A-NSF-NSI Herndon VA
C-PSI Herndon VA
2: Application Layer 3
Simple DNS example root name server
host surf.eurecom. fr g
wants IP address of 2
gaia.cs.umass.edu 5 2
1. Contacts its local DNS
server, dns.eurecom.fr
2. dns .eurecom. fr contacts local vi authorititive name server
A ocal name server
root name server, if das) euracom ae dns .umass .edu
necessary
3. root name server contacts 1116
authoritative name server,
dns.umass.edu, if
necessar .
id requesting host gaia.cs.umass.edu
surf .eurecom. fr
2: Application Layer 4
DNS example root name server
Root name server: $ E 6
D may not know 7 3
authoratiative name a y
server
D may know t
intermediate name local name server intermediate name server
server: who to dns. eurecan. fr dns .umass .edu
contact to find | 4 Is
authoritative name 1118
server .
authoritative name server
dns .cs.umass.edu
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
2: Application Layer 5
DNS: iterated queries root name server
recursive query:
D puts burden of name
resolution on
contacted name
server
D heavy load?
iterated query:
I contacted server
replies with name of
server to contact
D “I don't know this
name, but ask this
server"
5 iterated query
3
- #4
7
tI It
local name server _ intermediate name server
dns.umass.edu
dns .eure: .fr |
IT 5 Le
1 8
requesting host
surf.eurecom.fr
authoritative name server
dns .cs.umass.edu
gaia.cs.umass.edu
2: Application Layer 6
DNS: caching and updating records
0 once (any) name server learns mapping, it caches
mapping
0 cache entries timeout (disappear) after some
time
D update/notify mechanisms under design by IETF
u RFC 2136
0 http://www.ietf.org/html.charters/dnsind-charter.html
2: Application Layer 7
DNS records
DNS: distributed db storing resource records (RR)
| RR format: (name, value, type, ttl)
D Type=A D Type=CNAME
D name is hostname 0 name is an alias name
1 value is IP address for some "cannonical"
(the real) name
I Type=NS 0 value is cannonical
U name is domain (e.g. name
foo.com)
0 value is IP address of o Type=MX
authoritative name 0 value is hostname of
server for this domain mailserver associated with
name
2: Application Layer 8
DNS protocol, messages
Name, type fields
for a query
RRs in reponse
to query
records for
authoritative servers
additional “helpful”
info that may be used
2: Application Layer 10
DNS protocol, messages
Name, type fields
for a query
RRs in reponse
to query
records for
authoritative servers
additional “helpful”
info that may be used
2: Application Layer 10
Socket programming
Goal: learn how to build client/server application that
communicate using sockets
Socket API
D introduced in BSD4.1 UNIX,
1981
socket
a host-local, application-
à, created/owned,
D explicitly created, used, OS-controlled interface
released by apps (a “door") into which
D client/server paradigm application process can
D two types of transport _ both send and
service via socket APT: receive messages to/from
0 unreliable datagram another (remote or
. local) application process
0 reliable, byte stream-
oriented
2: Application Layer I1
Socket-programming using TCP
Socket: a door between application process and end-
end-transport protocol (UCP or TCP)
TCP service: reliable transfer of bytes from one
process to another
ara
controlled by, HAMMEL controlled by
icati application
rocess
el HE
controlled by controlled by
operating operating
system system
host or host or
server server
2: Application Layer 12
Socket programming with TCP
Example client-server app: Input stream: sequence of
0 client reads line from bytes into process
standard input (inFromUser Output stream: sequence of
stream) , sends to server via bytes out of process
socket (outToServer
stream) 4 ki]
0 server reads line from socket a E
Ü server converts line to E à
uppercase, sends back to | a 9
client 5 5 u
a E
D client reads, prints modified
line from socket
(inFromServer stream) client socket
2: Application Layer
Socket programming with TCP
Example client-server app: Input stream: sequence of
0 client reads line from bytes into process
standard input (inFromUser Output stream: sequence of
stream) , sends to server via bytes out of process
socket (outToServer
stream) 4 ki]
0 server reads line from socket a E
Ü server converts line to E à
uppercase, sends back to | a 9
client 5 5 u
a E
D client reads, prints modified
line from socket
(inFromServer stream) client socket
2: Application Layer
Client/server socket interaction: TCP
invol 3-
Server (running on hostid) ehe
handshake
create socket, server client
port=x, for
incoming request: LT
welcomeSocket = ™ open
ServerSocket() rá open we
TCP = A
wait forincoming <= = = = == = =} create socket, .
connection request connection setup connect to hostid, port=x
connectionSocket = A
welcomeSocket.accept() ocket()
| send request using
read request from mel clientSocket
connectionSocket |
write reply to
mans D read reply from
| clientSocket
close
connectionSocket close |
clientSocket
2: Application Layer 15
Example: Java client (TCP)
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv{]) throws Exception
{
String sentence;
String modifiedSentence;
Create .
BufferedReader inFromUser =
input stream
mp se new BufferedReader(new InputStreamReader(System.in));
Create
client socket, Socket clientSocket = new Socket("hostname", 6789);
connect to server
Create DataOutputStream outToServer =
output stream new DataOutputStream(clientSocket.getOutputStream());
attached to socket
2: Application Layer 16
Example: Java client (TCP), cont.
input stream new BufferedReader(new
Create | BufferedReader inFromServer =
attached to socket InputStreamReader(clientSocket.getInputStream()));
sentence = inFromUser.readLine();
Send line .
to server outToServer.writeBytes(sentence + ‘\n');
Read line modifiedSentence = inFromServer.readLine();
from server
System.out.printin("FROM SERVER: " + modifiedSentence);
clientSocket.close();
2: Application Layer 17
Example: Java server (TCP)
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception
Create datagram
with data-to-send,| DatagramPacket sendPacket =
length, IP addr, port new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
Send datagram clientSocket.send(sendPacket);
to server|
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
Read datagrai
from s = it. clientSocket.receive(receivePacket);
String modifiedSentence =
new String(receivePacket.getData());
String sentence = new String(receivePacket.getData());
Get IP addr
port #, of
sender|_,
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
Create datagram
to send to client DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
| port);
Write out
datagram serverSocket.send(sendPacket);
to socket} }
}
} End of while loop,
loop back and wait for
another datagram
2: Application Layer
25
Chapter 2: Summary
Most importantly: learned about protocols
D typical request/reply
message exchange:
0 client requests info or
service
D server responds with
data, status code
D message formats:
0 headers: fields giving
info about data
D data: info being
communicated
control vs. data msgs
0 in-based, out-of-band
centralized vs. decentralized
stateless vs. stateful
reliable vs. unreliable msg
transfer
“complexity at network
edge"
security: authentication
2: Application Layer 27
Chapter 2: Summary
Most importantly: learned about protocols
D typical request/reply
message exchange:
0 client requests info or
service
D server responds with
data, status code
D message formats:
0 headers: fields giving
info about data
D data: info being
communicated
control vs. data msgs
0 in-based, out-of-band
centralized vs. decentralized
stateless vs. stateful
reliable vs. unreliable msg
transfer
“complexity at network
edge"
security: authentication