Domain Name System...pdf introduced by dr. isaac netwon

minazakaria577 0 views 27 slides Oct 25, 2025
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

Domain Name System...pdf


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

String clientSentence;
Create String capitalizedSentence;

welcoming socket
at port 6789

Wait, on welcoming while(true) {
socket for contact Socket connectionSocket = welcomeSocket.accept();

by client.

ServerSocket welcomeSocket = new ServerSocket(6789);

F BufferedReader inFromClient =
Create input new BufferedReader(new
stream, attached InputStreamReader(connectionSocket.getInputStream()));
to socket.

2: Application Layer 18

Example: Java server (TCP), cont

Create output
stream, en DataOutputStream outToClient =
to socket} new DataOutputStream(connectionSocket.getOutputStream());
Read in line

from socket L. clientSentence = inFromClient.readLine();

capitalizedSentence = clientSentence.toUpperCase() + \n';

Write. out hd outToClient.writeBytes(capitalizedSentence);
to socket }
}
} End of while loop,
loop back and wait for
another client connection

2: Application Layer 19

Socket programming with UDP

UDP: no "connection" between
client and server

D no handshaking

D sender explicitly attaches
IP address and port of
destination

0 server must extract IP
address, port of sender
from received datagram

application viewpoint

UDP provides unreliable transfer
of groups of bytes ("datagrams")
between client and server

UDP: transmitted data may be
received out of order, or
lost

2: Application Layer 20

Client/server socket interaction: UDP

Server (running on hostid) Client
create socket, create socket,
port=x, for : clientSocket =
incoming request:
ed DatagramSocket()
DatagramSocket() |

Create, address (hostid, port=x,

| send datagram request
read request from using clientSocket

serverSocket

write reply to

serverSocket A read reply from
fine ell
eee clientSocket

port umber close |

clientSocket

2: Application Layer 21

Example: Java client (UDP)

import java.io.*;
import java.net.*;

class UDPClient {
public static void main(String args[]) throws Exception
Create !
input a BufferedReader inFromUser =
= new BufferedReader(new InputStreamReader(System.in));
client socket DatagramSocket clientSocket = new DatagramSocket();
Tronsinte InetAdd IPAddi InetAddi ByN: "h DE
hostname to IP netAddress ress = InetAddress.getByName("hostname");

address using DNS byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();

sendData = sentence.getBytes();
2: Application Layer

22

Example: Java client (UDP), cont.

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());

System.out.printin("FROM SERVER:" + modifiedSentence);
clientSocket.close();

}

2: Application Layer 23

Example: Java server (UDP)

import java.io.”;
import java.net.*;

class UDPServer {
public static void main(String args[]) throws Exception
Create {
datagram socket

at port 9876 DatagramSocket serverSocket = new DatagramSocket(9876);

byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];

while(true)
{
Create space for Da Packet —
R — DatagramPacket receivePacket =
received datagram new DatagramPacket(receiveData, receiveData.length);

Receive serverSocket.receive(receivePacket);
datagram

2: Application Layer 24

Example: Java server (UDP), cont

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

2: Application Layer 27
Tags