Naming & Binding Paul Krzyzanowski [email_address] [email_address] Distributed Systems Except as otherwise noted, the cont...
<ul><li>My 15” MacBook Pro </li></ul><ul><li>The rightmost computer on my desk </li></ul><ul><li>Paul’s aluminum laptop, b...
Naming things <ul><li>User names </li></ul><ul><ul><li>Login, email </li></ul></ul><ul><li>Machine names </li></ul><ul><ul...
Naming Service <ul><li>Allows you to look up names </li></ul><ul><ul><li>Often returns an address as a response </li></...
What’s a name? <ul><li>Name : identifies what you want </li></ul><ul><li>Address : identifies where it is </li></ul><ul><l...
Names <ul><li>Need names for: </li></ul><ul><ul><li>Services : e.g., time of day </li></ul></ul><ul><ul><li>Nodes : comput...
Uniqueness of names <ul><li>Easy on a small scale </li></ul><ul><li>Problematic on a large scale </li></ul><ul><li>Hierarc...
Terms: Naming convention <ul><li>Naming system determines syntax for a name </li></ul><ul><ul><li>Unix file names: </li><...
Terms: Context <ul><ul><li>A particular set of name  object bindings </li></ul></ul><ul><ul><li>Each context has an ...
Terms: Naming System <ul><li>Connected set of contexts of the same type (same naming convention) along with a common set ...
Terms: Name space <ul><li>Set of names in the naming system </li></ul><ul><li>For example, </li></ul><ul><ul><li>Names of...
Terms: Resolution <ul><li>Name lookup </li></ul><ul><ul><li>Return the underlying representation of the name </li></ul></...
Directory Service <ul><li>Extension of naming service: </li></ul><ul><ul><li>Associates names with objects </li></ul></ul>...
Name resolution <ul><li>To send data to a service: </li></ul><ul><ul><li>1. Find a node on which the service resides (serv...
Name resolution <ul><li>E.g., access “paul’s service”: </li></ul><ul><li>File lookup : “paul’s service”  cs.rutgers.edu:1...
Binding <ul><li>The association of a resolution </li></ul><ul><li>Static binding </li></ul><ul><ul><li>Hard-coded </li></u...
IP Domain Names <ul><li>Human readable names e.g. remus.rutgers.edu </li></ul><ul><li>Hierarchical naming scheme </li></u...
Example: DNS <ul><li>Internet Domain Name Service </li></ul><ul><ul><li>Maps machine names ( www.rutgers.edu ) to IP addre...
Internet Domain Name Space <ul><li>Tree structure </li></ul><ul><ul><li>Each node has resource information associated with...
Domain Name Server <ul><li>Essential task </li></ul><ul><ul><li>Answer queries about data in its zone (group of machines ...
Sample Query <ul><li>Rutgers registers rutgers.edu with domain registry </li></ul><ul><ul><li>educause.net for .edu doma...
Sample Query <ul><li>Submit query to a local DNS resolver: </li></ul><ul><li>query(cs.rutgers.edu)  root name server r...
DNS <ul><li>BIND </li></ul><ul><ul><li>Implementation of DNS provided by the Internet Software Consortium (www.isc.org) </...
Naming: files <ul><li>File system maps file pathname </li></ul>/home/paul/src/map.c major=3, minor=6, inode=6160 namei in...
The end.
of 25

Naming And Binding (Distributed computing)

Published on: Mar 3, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - Naming And Binding (Distributed computing)

  • 1. Naming & Binding Paul Krzyzanowski [email_address] [email_address] Distributed Systems Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
  • 2. <ul><li>My 15” MacBook Pro </li></ul><ul><li>The rightmost computer on my desk </li></ul><ul><li>Paul’s aluminum laptop, but not the big or the small one. </li></ul><ul><li>hedwig </li></ul><ul><li>hedwig.pk.org </li></ul><ul><li>192.168.60.148 </li></ul><ul><li>00:14:51:ec:f2:5b </li></ul>
  • 3. Naming things <ul><li>User names </li></ul><ul><ul><li>Login, email </li></ul></ul><ul><li>Machine names </li></ul><ul><ul><li>rlogin, email, web </li></ul></ul><ul><li>Files </li></ul><ul><li>Devices </li></ul><ul><li>Variables in programs </li></ul><ul><li>Network services </li></ul>
  • 4. Naming Service <ul><li>Allows you to look up names </li></ul><ul><ul><li>Often returns an address as a response </li></ul></ul><ul><li>Might be implemented as </li></ul><ul><ul><li>Search through file </li></ul></ul><ul><ul><li>Client-server program </li></ul></ul><ul><ul><li>Database query </li></ul></ul><ul><ul><li>… </li></ul></ul>
  • 5. What’s a name? <ul><li>Name : identifies what you want </li></ul><ul><li>Address : identifies where it is </li></ul><ul><li>Route : identifies how to get there </li></ul><ul><li>Binding : associates a name with an address </li></ul><ul><ul><li>“ choose a lower-level-implementation for a higher-level semantic construct” </li></ul></ul>RFC 1498: Inter-network Naming, addresses, routing
  • 6. Names <ul><li>Need names for: </li></ul><ul><ul><li>Services : e.g., time of day </li></ul></ul><ul><ul><li>Nodes : computer that can run services </li></ul></ul><ul><ul><li>Paths : route </li></ul></ul><ul><ul><li>Objects within service : e.g. files on a file server </li></ul></ul><ul><li>Naming convention can take any format </li></ul><ul><ul><li>Ideally one that will suit application and user </li></ul></ul><ul><ul><li>E.g., human readable names for humans, binary identifiers for machines </li></ul></ul>
  • 7. Uniqueness of names <ul><li>Easy on a small scale </li></ul><ul><li>Problematic on a large scale </li></ul><ul><li>Hierarchy allows uniqueness to be maintained </li></ul><ul><ul><li>compound name : set of atomic names connected with a name separator </li></ul></ul>
  • 8. Terms: Naming convention <ul><li>Naming system determines syntax for a name </li></ul><ul><ul><li>Unix file names: </li></ul></ul><ul><ul><ul><li>Parse components from left to right separated by / /home/paul/src/gps/gui.c </li></ul></ul></ul><ul><ul><li>Internet domain names: </li></ul></ul><ul><ul><ul><li>Ordered right to left and delimited by . www.cs.rutgers.edu </li></ul></ul></ul><ul><ul><li>LDAP names </li></ul></ul><ul><ul><ul><li>Attribute/value pairs ordered right to left, delimited by , cn=Paul Krzyzanowski, o=Rutgers, c=US </li></ul></ul></ul>
  • 9. Terms: Context <ul><ul><li>A particular set of name  object bindings </li></ul></ul><ul><ul><li>Each context has an associated naming convention </li></ul></ul><ul><ul><li>A name is always interpreted relative to some context </li></ul></ul><ul><ul><ul><li>E.g., directory /usr in the UNIX file system </li></ul></ul></ul>
  • 10. Terms: Naming System <ul><li>Connected set of contexts of the same type (same naming convention) along with a common set of operations </li></ul><ul><li>For example: </li></ul><ul><ul><li>System that implements DNS </li></ul></ul><ul><ul><li>System that implements LDAP </li></ul></ul>
  • 11. Terms: Name space <ul><li>Set of names in the naming system </li></ul><ul><li>For example, </li></ul><ul><ul><li>Names of all files and directories in a UNIX file system </li></ul></ul>
  • 12. Terms: Resolution <ul><li>Name lookup </li></ul><ul><ul><li>Return the underlying representation of the name </li></ul></ul><ul><li>For example, </li></ul><ul><ul><li>www.rutgers.edu  128.6.4.5 </li></ul></ul>
  • 13. Directory Service <ul><li>Extension of naming service: </li></ul><ul><ul><li>Associates names with objects </li></ul></ul><ul><ul><li>Allows objects to have attributes </li></ul></ul><ul><ul><li>Can search based on attributes </li></ul></ul><ul><li>For example, </li></ul><ul><ul><li>Netscape directory: general-purpose directory service based on LDAP </li></ul></ul><ul><ul><li>Directory can be object store: </li></ul></ul><ul><ul><ul><li>Look up printer object and send data stream to it </li></ul></ul></ul>
  • 14. Name resolution <ul><li>To send data to a service: </li></ul><ul><ul><li>1. Find a node on which the service resides (service name resolution) </li></ul></ul><ul><ul><li>2. Find an address (or network attachment point) for that node (node name location) </li></ul></ul><ul><ul><li>3. Find a path from this location to the service (routing service) </li></ul></ul>
  • 15. Name resolution <ul><li>E.g., access “paul’s service”: </li></ul><ul><li>File lookup : “paul’s service”  cs.rutgers.edu:1234 </li></ul><ul><li>DNS lookup : cs.rutgers.edu  128.6.4.2 </li></ul><ul><li>ARP resolution : 128.6.4.2  08:00:20:90:9c:23 </li></ul><ul><li>IP routing : route: remus  lcsr-gw  aramis </li></ul>
  • 16. Binding <ul><li>The association of a resolution </li></ul><ul><li>Static binding </li></ul><ul><ul><li>Hard-coded </li></ul></ul><ul><li>Early binding </li></ul><ul><ul><li>Look up binding before use </li></ul></ul><ul><ul><li>Cache previously used binding </li></ul></ul><ul><li>Late binding </li></ul><ul><ul><li>Look up just before use </li></ul></ul>
  • 17. IP Domain Names <ul><li>Human readable names e.g. remus.rutgers.edu </li></ul><ul><li>Hierarchical naming scheme </li></ul><ul><ul><li>No relation to IP address or network class </li></ul></ul>
  • 18. Example: DNS <ul><li>Internet Domain Name Service </li></ul><ul><ul><li>Maps machine names ( www.rutgers.edu ) to IP addresses ( 128.6.4.5 ) </li></ul></ul><ul><li>In the past: </li></ul><ul><ul><li>Search /etc/hosts for machine name </li></ul></ul><ul><ul><li>File periodically downloaded from Network Information Center (NIC) at the Stanford Research Institute (SRI) </li></ul></ul>
  • 19. Internet Domain Name Space <ul><li>Tree structure </li></ul><ul><ul><li>Each node has resource information associated with it </li></ul></ul><ul><ul><li>owner : domain name whose resource record is found </li></ul></ul><ul><ul><li>type of resource : </li></ul></ul><ul><ul><ul><li>Host address (A) </li></ul></ul></ul><ul><ul><ul><li>Alias name (C) </li></ul></ul></ul><ul><ul><ul><li>Name server for domain (NS) </li></ul></ul></ul><ul><ul><ul><li>Mail server (MX) </li></ul></ul></ul><ul><ul><li>TTL (time to live)  for caching </li></ul></ul><ul><ul><li>Relevant data (e.g., address) </li></ul></ul>
  • 20. Domain Name Server <ul><li>Essential task </li></ul><ul><ul><li>Answer queries about data in its zone (group of machines under a root – e.g. rutgers) </li></ul></ul>org edu com mil gov pk nyu rutgers cs www remus top-level domains: www
  • 21. Sample Query <ul><li>Rutgers registers rutgers.edu with domain registry </li></ul><ul><ul><li>educause.net for .edu domain </li></ul></ul><ul><ul><li>See internic.net for ICANN-accredited list of registrars for top-level domains </li></ul></ul><ul><li>Top-level domain names and their associated name server info loaded to root name servers </li></ul><ul><ul><li>13 computers: replicated information </li></ul></ul><ul><ul><li>Contain addresses for all registries of top-level domains (.com, .edu, .org, …) </li></ul></ul>
  • 22. Sample Query <ul><li>Submit query to a local DNS resolver: </li></ul><ul><li>query(cs.rutgers.edu)  root name server root name servers identify authoritative servers for top-level domains send query to A.ROOT_SERVERS.NET: 198.41.0.4 </li></ul><ul><li>referral to edu name server returns list of DNS servers for .edu: L3.NSTLD.COM: 192.41.162.32 </li></ul><ul><li>query(cs.rutgers.edu)  edu name server send query to 192.41.162.32 </li></ul><ul><li>referral to rutgers.edu name servers: - DNS1.rutgers.edu 165.230.144.131 - DNS2.rutgers.edu 128.6.21.9 - DNS3.rutgers.edu 198.151.130.254 </li></ul><ul><li>query(cs.rutgers.edu)  rutgers name server send query to 165.230.144.131 </li></ul><ul><li>rutgers name server returns A: 128.6.4.2 address MX: dragon.rutgers.edu domain name for email </li></ul>
  • 23. DNS <ul><li>BIND </li></ul><ul><ul><li>Implementation of DNS provided by the Internet Software Consortium (www.isc.org) </li></ul></ul><ul><li>Programs to perform queries: </li></ul><ul><ul><li>dnsquery, nslookup, dig, host </li></ul></ul>
  • 24. Naming: files <ul><li>File system maps file pathname </li></ul>/home/paul/src/map.c major=3, minor=6, inode=6160 namei in kernel
  • 25. The end.

Related Documents