The document provides an introduction to distributed systems, focusing on naming, addressing, and name resolution. It discusses various naming systems, including flat, structured, and attribute-based naming, as well as methods for locating entities and resolving names in a distributed environment. Additionally, it covers the implementation of name spaces and the processes of iterative and recursive name resolution.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
5 views
DS chapter4 (3)
The document provides an introduction to distributed systems, focusing on naming, addressing, and name resolution. It discusses various naming systems, including flat, structured, and attribute-based naming, as well as methods for locating entities and resolving names in a distributed environment. Additionally, it covers the implementation of name spaces and the processes of iterative and recursive name resolution.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40
Bahir Dar Institute of Technology
Faculty of Computing Network and Internet Chair
Introduction of Distributed System
Content Names, Identifiers, and Addresses Flat Naming Structured Naming Attribute-Based Naming Name, Address and Name Resolution Name Used to denote entities in a Distributed System. Examples of entities hosts, printers, disks, files, processes, users, mailboxes, web pages, graphical windows, messages, network connections, etc To operate on an entity, we need to access it at an access point Access Point
The name of an access point is called an address (such as IP
address and port number as used by the transport layer) Also referred to as the address of the entity An entity can have more than one access point (similar to accessing an individual through different telephone numbers) An entity may change its access point(e.g., A Mobile Computer getting a new IP address as it moves) An address is a special kind of name It refers to at most one entity Each entity is referred by at most one address Even when replicated such as in Web pages An entity may change an access point, or an access point may be reassigned to a different entity (like telephone numbers in offices) Identifier also other types of names that uniquely identify an entity. Identifier is a name with the following properties • It refers to at most one entity • Each entity is referred by at most one identifier • It always refers to the same entity (never reused) Types of Naming Systems Flat naming: identifier is simply a random bit string. It does not contain any information what so ever on how to locate an access point of its associated entity. Structured naming: composed of simple human-readable names. Examples are file system naming and host naming on the Internet. Attribute-based naming: allows an entity to be described by (attribute, value) pairs. Flat Naming Unstructured name such as identifier does not contain an information on how to locate an access point of its associated entity Flat Naming Systems Broadcasting and multicasting Forwarding pointers Home-based approaches Distributed hash tables Hierarchical approaches Broadcasting and multicasting
Simple but applicable to LAN
Locating an Entity -> Broadcast a message containing the identifier of the entity. Principle is used in different protocol Ex. ARP Forwarding pointers
When an entity moves from A to B, it leaves behind in A a
reference to its new location at B. Main advantage of this approach is its simplicity: As an entity has been located using a traditional naming service, a client can look up the current address by following the chain of forwarding pointers. Home-Based Approach A popular approach to supporting mobile entities in large-scale networks is to introduce a home location, which keeps track of the current location of an entity. Is often chosen to be the place where an entity was created. Used -> As a fall-back mechanism for location services based on forwarding pointers. -> Another example Is followed is in Mobile IP The principle of Mobile IP Structured naming Name Spaces: a logical system that assigns unique names or identifiers to resources in a distributed system. A name space is generally organized as a labeled, directed graph with two types of nodes leaf node: represents the named entity and stores information such as its address or the state of that entity directory node: a special entity that has a number of outgoing edges, each labeled with a name a general naming graph with a single root node Path name: sequence of labels • Absolute (first node in the path is the root) n0:<home, steen, mbox> • Relative (otherwise) Each path in a naming graph can be referred to by the sequence of labels corresponding to the edges of the path and the first node in the path, such as N:<label1, label2, ..., labeln>, where N refers to the first node in the path Name Resolution Name Resolution: Name resolution refers to the process of mapping or translating human-readable names (such as URLs, domain names) into corresponding network addresses (such as IP addresses). Linking and Mounting Linking: giving another name for the same entity (an alias) Ex. environment variables in UNIX such as HOME that refer to the home directory of a user Two types of links (or two ways to implement an alias): Example of Hard link Hard link: to allow multiple absolute path names to refer to the same node in a naming graph Ex:- In graph, there are two different path names for node n5: /keys and /home/steen/keys Symbolic link: allow a leaf node to contain an absolute path name
the concept of a symbolic link explained in a naming graph
when first resolving an absolute path name stored in a node Ex. /home/steen/keys in node n6), Name resolution will return the path name stored in the node (/keys), at which point it can continue with resolving that new path name. Name resolution can also be used to merge different name spaces in a transparent way Merging Naming Space Solution 1: Introduce a naming scheme by which pathnames of different namespaces are simply concatenated (URLs) ftp://ftp.cs.vu.nl/pub/steen Merging Naming Space cont.. Solution 2: Mounting A directory node called a mount point stores the id of (or all the necessary information for identifying and accessing) a directory node from a foreign name space called mounting point NFS: distributed file system that describes exactly how a client can access a file stored on a (remote) NFS file server through NFS URL. Ex. the subdirectory /remote includes mount points for foreign name spaces on the client machine a directory node named /remote/vu is used to store nfs://flits.cs.vu.nl/home/steen consider /remote/vu/mbox This name is resolved by starting at the root directory on the client’s machine until node /remote/vu, which returns the URL nfs://flits.cs.vu.nl/home/steen This leads the client machine to contact flits.cs.vu.nl using the NFS protocol Then the file mbox is read in the directory /home/steen mounting remote name spaces through a specific process protocol distributed systems that allow mounting a remote file system also allow to execute some commands example commands to access the file system cd /remote/vu by doing so the user is not supposed to worry about the details of the actual access; the name space on the local machine and that on the remote machine look to form a single name space Merging Naming Space cont.. Solution 3: Add a new root node and makes the existing root nodes its children (Global Name Service (GNS)) Ex. the absolute path name /home/steen has now changed to a relative path name and corresponds to the absolute path name /vu/home/steen hence the system must expand no:/home/steen to /vu/home/steen without the awareness of users this requires storing a mapping table (with entries such as n0vu) when a new root node is added Merging thousands of name spaces may lead to performance problems m0 oxford n0 vu
organization of the DEC Global Name
Service Name Space Implementation
A name space is implemented by a naming service that allows
users to add, remove and look up names. It is implemented by name server(s) For a distributed system limited to a LAN, it may be feasible to implement the name service with a single name server large-scale distributed system spread across a large geographical area, it is necessary to distribute the implementation over many name servers Global layer Formed by highest level nodes (root node and nodes close to it or its children) Nodes on this layer are characterized by their stability They may represent organizations, groups of organizations, where names are stored in the name space Administrational layer Groups of entities that belong to the same organization or administrational unit, e.g., departments relatively stable Managerial layer Nodes that may change regularly, e.g., nodes representing hosts of a LAN, shared files such as libraries or binaries Nodes are managed not only by system administrators, but also by end users an example partitioning of the DNS name space, including Internet-accessible files, into three layers Name space is divided into non overlapping parts, called zones in DNS a zone is a part of the name space that is implemented by a separate name server Some requirements of servers at different layers performance (responsiveness to lookups), availability (failure rate), etc. High availability is critical for the global layer, since name resolution cannot proceed beyond the failing server. It is also important at the administrational layer for clients in the same organization Name Space Implementation con… Performance is very important in the lowest layer, since results of lookups can be cached and used due to the relative stability of the higher layers They may be enhanced by client side caching (global and administrational layers since names do not change often) and replication; they create implementation problems since they may introduce inconsistency problems Implementation of Name Resolution Recall that name resolution consists of finding the address when the name is given Assume that name servers are not replicated and that no client- side caches are allowed Each client has access to a local name resolver, responsible for ensuring that the name resolution process is carried out Two ways of implementing name resolution iterative name resolution recursive name resolution Iterative a name resolver hands over the complete name to the root name server the root server will resolve the name as far as it can and return the result to the client; at the minimum it can resolve the first level and sends the name of the first level name server to the client the client calls the first level name server, then the second, ..., until it finds the address of the entity Ex. assume the path name root:<nl, vu, cs, ftp, pub, globe, index.txt>is to be resolved or using a URL notation, this path name would correspond to ftp://ftp.cs.vu.nl/pub/globe/index.txt the principle of iterative name resolution Recursive a name resolver hands over the whole name to the root name server the root server will try to resolve the name and if it can’t, it requests the first level name server to resolve it and to return the address the first level will do the same thing recursively
the principle of recursive
name resolution Group Assignment Distributed hash tables() Hierarchical approaches() Attribute-Based Naming() Thank You!!!