Network Applications: DNS, UDP Socket - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

Network Applications: DNS, UDP Socket

Description:

Title: Application I Author: Yang Richard Yang Last modified by: Richard Yang Created Date: 10/8/1999 7:08:27 PM Document presentation format: On-screen Show (4:3) – PowerPoint PPT presentation

Number of Views:140
Avg rating:3.0/5.0
Slides: 46
Provided by: YangR3
Learn more at: https://zoo.cs.yale.edu
Category:

less

Transcript and Presenter's Notes

Title: Network Applications: DNS, UDP Socket


1
Network ApplicationsDNS, UDP Socket
1/24/2012
2
Outline
  • Recap
  • DNS
  • Network application programming UDP

3
Recap The Big Picture of the Internet
  • Hosts and routers
  • gt850 mil. hosts (2011)
  • organized roughly hierarchical
  • backbone links 1040Gbps
  • Software
  • datagram switching with virtualcircuit support
    at backbone
  • layered network architecture
  • use end-to-end arguments to determine the
    servicesprovided by each layer
  • the hourglass architecture of the Internet

SSL
TCP
UDP
IP
Ethernet
Cable/DSL
Wireless
4
Protocol Formats
5
Recap Client-Server Paradigm
  • The basic paradigmof network applications is
    the client-server(C-S) paradigm
  • a client/server is a process at a port number
    of a host
  • Key design questionsof a C-S application
  • protocol extensibility
  • scalability
  • robustness
  • security

6
Recap Email App
  • Some nice protocol extensibility design features
  • separate protocols for different functions
  • simple/basic (smtp) requests to implement basic
    control fine-grain control through ASCII header
    and message body
  • status code in response makes message easy to
    parse

7
Scalability/Robustness
  • High scalability and robustness fundamentally
    require multiple email servers to serve the same
    email address

need a email server IP address
8
Mapping Functions Design Alternatives
  • Map from an email address server name to IP
    address of email server

9
Mapping Functions Design Alternatives
load balancer
switch
10
DNS Domain Name System
  • Function
  • map between (domain name, service) to value,
    e.g.,
  • (www.cs.yale.edu, Addr) -gt 128.36.229.30
  • (cs.yale.edu, Email) -gt netra.cs.yale.edu
  • Many benefits of introducing the mapping

clients
DNS
routers
servers
11
Dummy Design
  • DNS itself can be considered as a client-server
    system as well
  • How about a dummy design introducing one super
    Internet DNS server?

THE DNS server of the Internet
IP address
resolve ltnamegt
OK/used already
12
DNS Distributed Management of the Domain Name
Space
  • A distributed database managed by authoritative
    name servers
  • divided into zones, where each zone is a sub-tree
    of the global tree
  • each zone has its own authoritative name servers
  • an authoritative name server of a zone may
    delegate a subset (i.e. a sub-tree) of its zone
    to another name server

13
Email Architecture DNS
DNS
14
Root Zone and Root Servers
  • The root zone is managed by the root name servers
  • 13 root name servers worldwide

See http//root-servers.org/ for more details
15
Linking the Name Servers
  • Each name server knows the addresses of the root
    servers
  • Each name server knows the addresses of its
    immediate children (i.e., those it delegates)

Top level domain(TLD)
Q how to query a hierarchy?
16
DNS Message Flow Two Types of Queries
  • Recursive query
  • Puts burden of name resolution on contacted name
    server
  • the contacted name server resolves the name
    completely
  • Iterated query
  • Contacted server replies with name of server to
    contact
  • I dont know this name, but ask this server

17
Two Extreme DNS Message Flows
root name server
root name server
TLD name server
client
TLD name server
client
authoritative name server
authoritative name server
Issues of the two approaches?
cicada.cs.yale.edu
cicada.cs.yale.edu
18
Typical DNS Message Flow The Hybrid Case
root name server
  • Host knows only local name server
  • Local name server is learned from DHCP, or
    configured, e.g. /etc/resolv.conf
  • Local DNS server helps clients resolve DNS names

authoritative name server dns.cs.umass.edu
requesting host cyndra.cs.yale.edu
gaia.cs.umass.edu
19
Typical DNS Message Flow The Hybrid Case
root name server
  • Host knows only local name server
  • Local name server is learned from DHCP, or
    configured, e.g. /etc/resolv.conf
  • Local DNS server helps clients resolve DNS names
  • Benefits of local name servers
  • simplifies client
  • caches results

authoritative name server dns.cs.umass.edu
requesting host cyndra.cs.yale.edu
gaia.cs.umass.edu
20
DNS Records
  • DNS distributed db storing resource records (RR)
  • TypeCNAME
  • name is an alias name for some canonical (the
    real) name
  • value is canonical name
  • TypeA
  • name is hostname
  • value is IP address
  • TypeNS
  • name is domain (e.g. yale.edu)
  • value is the name of the authoritative name
    server for this domain
  • TypeMX
  • value is hostname of mail server associated with
    name
  • TypeSRV
  • general extension

21
DNS Protocol, Messages
  • DNS protocol typically over UDP (can use TCP)
    query and reply messages, both with the same
    message format
  • DNS Msg header
  • identification 16 bit for query, the reply to
    a query uses the same
  • flags
  • query or reply
  • recursion desired
  • recursion available
  • reply is authoritative

22
Observing DNS
  • Use the command dig
  • force iterated query to see the tracedig
    trace www.cnn.com
  • see the manual for more details
  • Capture the messages
  • DNS server is at port 53

23
Evaluation of DNS
Key questions to ask about a C-S application -
extensible? - scalable? - robust? - security?
24
What DNS did Right?
  • Hierarchical delegation avoids central control,
    improving manageability and scalability
  • Redundant servers improve robustness
  • see http//www.internetnews.com/dev-news/article.p
    hp/1486981 for DDoS attack on root servers in
    Oct. 2002 (9 of the 13 root servers were
    crippled, but only slowed the network)
  • Caching reduces workload and improve robustness

25
Problems of DNS
  • Domain names may not be the best way to name
    other resources, e.g. files
  • Relatively static resource types make it hard to
    introduce new services or handle mobility
  • Although theoretically you can update the values
    of the records, it is rarely enabled
  • Simple query model makes it hard to implement
    advanced query
  • Early binding (separation of DNS query from
    application query) does not work well in mobile,
    dynamic environments
  • e.g., load balancing, locate the nearest printer

26
Outline
  • Recap
  • Email
  • DNS
  • Network application programming

27
Socket Programming
  • Socket API
  • introduced in BSD4.1 UNIX, 1981
  • Two types of sockets
  • Connectionless (UDP)
  • connection-oriented (TCP)

28
Services Provided by Transport
  • Transmission control protocol (TCP)
  • multiplexing/demultiplexing
  • reliable data transfer
  • rate control flow control
  • and congestion control
  • User data protocol (UDP)
  • multiplexing/demultiplexing

Host B
Host A
Hello
I am ready
DATA
ACK
29
Big Picture Socket
buffers, states
buffers, states
30
UDP Java API
buffers, states
buffers, states
31
DatagramSocket(Java)
  • DatagramSocket()
  • constructs a datagram socket and binds it to any
    available port on the local host
  • DatagramSocket(int lport)
  • constructs a datagram socket and binds it to the
    specified port on the local host machine. 
  • DatagramSocket(int lport, InetAddress laddr)
  • creates a datagram socket and binds to the
    specified local port and laddress.
  • DatagramSocket(SocketAddress bindaddr)
  • creates a datagram socket and binds to the
    specified local socket address.
  • DatagramPacket(byte buf, int length)
  • constructs a DatagramPacket for receiving packets
    of length length.
  • DatagramPacket(byte buf, int length,
    InetAddress address, int port)
  • constructs a datagram packet for sending packets
    of length length to the specified port number on
    the specified host.
  • receive(DatagramPacket p)
  • receives a datagram packet from this socket. 
  • send(DatagramPacket p)
  • sends a datagram packet from this socket.

32
Connectionless UDP Big Picture (Java version)
Client
Server (running on hostid)
create socket, portx, for incoming request
serverSocket DatagramSocket( x )
Create datagram using (servhost, x) as (dest
addr. port),send request using clientSocket
read request from serverSocket
generate reply, create datagram using client host
address, port number
write reply to serverSocket
read reply from clientSocket
close clientSocket
  • Create socket with port number
  • DatagramSocket sSock new DatagramSocket(9876)
  • If no port number is specified, the OS will pick
    one

33
Example UDPClient.java
  • A simple UDP client which reads input from
    keyboard, sends the input to server, and reads
    the reply back from the server.

34
Example Java client (UDP)
import java.io. import java.net. class
UDPClient public static void main(String
args) throws Exception
BufferedReader inFromUser new
BufferedReader(new InputStreamReader(System.in))
String sentence inFromUser.readLine()
byte sendData new byte1024
sendData sentence.getBytes()
DatagramSocket clientSocket new
DatagramSocket() InetAddress
sIPAddress InetAddress.getByName(servname")

Create input stream
Create client socket
Translate hostname to IP address using DNS
35
Example Java client (UDP), cont.
Create datagram with data-to-send, length, IP
addr, port
DatagramPacket sendPacket new
DatagramPacket(sendData, sendData.length,
sIPAddress, 9876) clientSocket.send(sen
dPacket) byte receiveData new
byte1024 DatagramPacket receivePacket
new DatagramPacket(receiveData,
receiveData.length) clientSocket.receiv
e(receivePacket) String
modifiedSentence new
String(receivePacket.getData())
System.out.println("FROM SERVER"
modifiedSentence) clientSocket.close()

Send datagram to server
Read datagram from server
36
Example UDPServer.java
  • A simple UDP server which changes any received
    sentence to upper case.

37
Example Java Server (UDP)
import java.io. import java.net. class
UDPServer public static void main(String
args) throws Exception
DatagramSocket serverSocket new
DatagramSocket(9876) byte
receiveData new byte1024 byte
sendData new byte1024 while(true)
DatagramPacket
receivePacket new
DatagramPacket(receiveData, receiveData.length)
serverSocket.receive(receivePacket)
String sentence new
String(receivePacket.getData())
sendData capitalizedSentence.getBytes()
Create datagram socket at port 9876
Create space for received datagram
Receive datagram
38
UDP Connectionless Demux
  • DatagramSocket serverSocket new
    DatagramSocket(9876)

Source Port (SP) provides return address
39
Example Java server (UDP), cont
InetAddress IPAddress
receivePacket.getAddress() int
port receivePacket.getPort()
DatagramPacket sendPacket
new DatagramPacket(sendData, sendData.length,
IPAddress,
port) serverSocket.send(sendPacket)

Get IP addr port , of sender
Create datagram to send to client
Write out datagram to socket
End of while loop, loop back and wait for another
datagram
40
Discussion
  • Are there any problems with the program?

41
Discussion
  • What are challenges in implementing DNS using UDP?

42
Discussion
  • Are there any problems with the program?

43
Backup Slides
44
UDP Provides Multiplexing/Demultiplexing
server
client
128.36.232.5128.36.230.2
198.69.10.10
UDP socket space
UDP socket space
address 198.69.10.101500 snd/recv buf
address 9876 snd/recv buf
local port
local address
address 128.36.232.553 snd/recv buf
address 198.69.10.104343 snd/recv buf
Packet demutiplexing is based on (dst address,
dst port) at dst netstat u n -a
45
UDP Port Provides Multiplexing/Demultiplexing
server
client
128.36.232.5128.36.230.2
198.69.10.10
UDP socket space
UDP socket space
address 1500 snd/recv buf
address 9876 snd/recv buf
local port
local address
address 128.36.232.553 snd/recv buf
address 198.69.10.104343 snd/recv buf
Packet demutiplexing is based on (dst address,
dst port) at dst netstat --udp n -a
Write a Comment
User Comments (0)
About PowerShow.com