Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced UNIX programming Fall 2002 Instructor: Ashok Srinivasan Lecture 25 Acknowledgements: The syllabus and power point presentations are modified versions.

Similar presentations


Presentation on theme: "Advanced UNIX programming Fall 2002 Instructor: Ashok Srinivasan Lecture 25 Acknowledgements: The syllabus and power point presentations are modified versions."— Presentation transcript:

1 Advanced UNIX programming Fall 2002 Instructor: Ashok Srinivasan Lecture 25 Acknowledgements: The syllabus and power point presentations are modified versions of those by T. Baker and X. Yuan

2 Announcements Reading assignment –Chapter 9 Sections 9.1 to 9.9 –Midterm Monday –Clarifications on project and HW3 –Midterm review

3 Week 9 Topics Socket options –getsockopt, setsockopt –fcntl –ioctl Introduction to UDP –TCP vs UDP –UDP interface

4 Week 9 Topics... continued Name and address conversionsName and address conversions –Domain name system –gethostbyname –gethostbyaddr –uname –gethostname –getservbyname –getservbyport

5 Names are easier to use –Names add a layer of indirection Numeric addresses can be changed without modifying the name A program can be more portable by using a name –The mapping between hostnames and IP addresses is done by the domain name system (DNS) Name and address conversions

6 Mapping between names and addresses xi.cs.fsu.edu 128.186.121.41 References –See http://www.internic.net/faqs/authoritative- dns.html for information on http://www.internic.net/faqs/authoritative- dns.html DNS organization Why they should be the sole authority! Domain name system

7 Hierarchical naming scheme –Name space partitioned into subdomains –Top level of domains.com,.edu,.gov,.org,.us,.ca,.in, etc –Each domain can have subdomains Distributed delegation of naming authority –Each domain has the authority to allow names within that domain –Naming follows organization boundary not physical network boundary Domain name system... continued

8 Each server keeps resource records (RRs) –Information IP address, record type, name, etc Some relevant RR types –A : Maps a hostname to an IPv4 address –AAAA: Maps a hostname to an IPv6 address –PTR: Pointer records, map IP addresses to hostnames –MX: Mail exchanger for a host –CNAME: Canonical name Used to assign CNAME records for common services Resource records

9 Name server –When a name server receives a DNS request, if the server is the authority for the name, it finds the resource record and replies –Otherwise it recursively asks the next level Example: gethostbyname(“www.cs.yale.edu”) xi.cs.fsu.edu ---> cs.fsu.edu --> edu --> yale.edu -->cs.yale.edu -->yale.edu-->edu -->cs.fsu.edu-->xi.cs.fsu.edu –Optimizations Replication and caching Name servers

10 #include struct hostent *gethostbyname(const char *hostname) struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; }; This function queries A or AAAA records gethostbyname

11 #include struct hostent *gethostbyaddr(const char *addr, size_t len, int family) –addr is a pointer to an in_addr structure –len = 4 for IPv4 and 16 for IPv6 –This function queries PTR records See example1.c and example2.c –These two system calls incur significant communication overhead You can observe this in example1a.c gethostbyaddr

12 Information on name, os, and hardware #include int uname (struct utsname *name) struct utsname { char sysname[_UTS_NAMESIZE]; char nodename[_UTS_NODESIZE]; char release[_UTS_NAMESIZE]; char version[_UTS_NAMESIZE]; char machine[_UTS_NAMESIZE]; } –See example2.c –gethostbyname can be used to get host name uname and gethostbyname

13 Get service information –Not querying the DNS, but a system specific file, for example /etc/services #include struct servent *getservbyname(const char *servname, const char *protoname); struct servent *getservbyport(int port, const char*protoname); struct servent { char *s_name; char** s_aliases; int s_port; char *s_proto; } See example3.c and example4.c getservbyname and getservbyport


Download ppt "Advanced UNIX programming Fall 2002 Instructor: Ashok Srinivasan Lecture 25 Acknowledgements: The syllabus and power point presentations are modified versions."

Similar presentations


Ads by Google