What is a network called where each device can act as both a server and a client?

Network Fundamentals

Naomi J. Alpern, Robert J. Shimonski, in Eleventh Hour Network+, 2010

Peer-to-Peer

In a peer-to-peer network, computers on the network are equal, with each workstation providing access to resources and data. This is a simple type of network where computers are able to communicate with one another and share what is on or attached to their computer with other users. It is also one of the easiest types of architectures to create. Here are some of the characteristics of a peer-to-peer network:

Individual users have responsibility over who can access data and resources on their computers.

Operating systems such as Windows XP and Windows Vista allow accounts to be set up that will be used when other users connect to an individual user's computer.

Accounts, passwords, and permissions are saved in a local database and are used to determine what someone can do when connecting to your computer.

DID YOU KNOW?

One important issue with peer-to-peer networks is security. Each computer on this type of network may allow or deny access to other computers, as access to data and resources is controlled on each machine. For example, a user could share a folder containing payroll information on his or her computer, allowing other users to access the files in that folder. Because users can control access to files and resources on their computers, network administration isn't controlled by one person. As such, peer-to-peer networks are generally used in small deployments and in situations where security isn't a major concern, as in the case of home networks or small businesses.

EXAM WARNING

A peer-to-peer network is decentralized, because resources and administration are handled locally on each participating machine, while a client/server network can be either centralized or decentralized. Remember the differences and relationships between different network types for the exam, as they may be covered either directly or incorporated in the scenarios used to cover other material.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9781597494281000035

Data Dissemination in Public Safety Networks

Panayiotis Kolios, ... Katerina Papdaki, in Wireless Public Safety Networks 2, 2016

7.5.1 HelpNet mesh

HelpNet assumes that a peer-to-peer network is in place for two-way data communication. However, instead of employing customary routing protocols that presume known source-destination pairs (as done by most of the systems identified above), HelpNet uses a centrality-based metric (from complex network theory) to disseminate data in the network [KOL 14]. Similarly to PageRank, individual nodes in the network elicit their importance as conduits of data in the network which is used to guide data dissemination. In doing so, the source-destination pair does not need to be explicitly stated and data can be forwarded in such a way that increases the chances of being received by interested parties.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9781785480522500074

Applications

Larry L. Peterson, Bruce S. Davie, in Computer Networks (Fifth Edition), 2012

Gnutella

Gnutella is an early peer-to-peer network that attempted to distinguish between exchanging music (which likely violates somebody's copyright) and the general sharing of files (which must be good since we've been taught to share since the age of two). What's interesting about Gnutella is that it was one of the first such systems to not depend on a centralized registry of objects. Instead, Gnutella participants arrange themselves into an overlay network similar to the one shown in Figure 9.24. That is, each node that runs the Gnutella software (i.e., implements the Gnutella protocol) knows about some set of other machines that also run the Gnutella software. The relationship “A and B know each other” corresponds to the edges in this graph. (We'll talk about how this graph is formed in a moment.)

What is a network called where each device can act as both a server and a client?

Figure 9.24. Example topology of a Gnutella peer-to-peer network.

Whenever the user on a given node wants to find an object, Gnutella sends a QUERY message for the object—for example, specifying the file's name—to its neighbors in the graph. If one of the neighbors has the object, it responds to the node that sent it the query with a QUERY RESPONSE message, specifying where the object can be downloaded (e.g., an IP address and TCP port number). That node can subsequently use GET or PUT messages to access the object. If the node cannot resolve the query, it forwards the QUERY message to each of its neighbors (except the one that sent it the query), and the process repeats. In other words, Gnutella floods the overlay to locate the desired object. Gnutella sets a TTL on each query so this flood does not continue indefinitely.

In addition to the TTL and query string, each QUERY message contains a unique query identifier (QID), but it does not contain the identity of the original message source. Instead, each node maintains a record of the QUERY messages it has seen recently: both the QID and the neighbor that sent it the QUERY. It uses this history in two ways. First, if it ever receives a QUERY with a QID that matches one it has seen recently, the node does not forward the QUERY message. This serves to cut off forwarding loops more quickly than the TTL might have done. Second, whenever the node receives a QUERY RESPONSE from a downstream neighbor, it knows to forward the response to the upstream neighbor that originally sent it the QUERY message. In this way, the response works its way back to the original node without any of the intermediate nodes knowing who wanted to locate this particular object in the first place.

Returning to the question of how the graph evolves, a node certainly has to know about at least one other node when it joins a Gnutella overlay. The new node is attached to the overlay by at least this one link. After that, a given node learns about other nodes as the result of QUERY RESPONSE messages, both for objects it requested and for responses that just happen to pass through it. A node is free to decide which of the nodes it discovers in this way that it wants to keep as a neighbor. The Gnutella protocol provides PING and PONG messages by which a node probes whether or not a given neighbor still exists and that neighbor's response, respectively.

It should be clear that Gnutella as described here is not a particularly clever protocol, and subsequent systems have tried to improve upon it. One dimension along which improvements are possible is in how queries are propagated. Flooding has the nice property that it is guaranteed to find the desired object in the fewest possible hops, but it does not scale well. It is possible to forward queries randomly, or according to the probability of success based on past results. A second dimension is to proactively replicate the objects, since the more copies of a given object there are, the easier it should be to find a copy. Alternatively, one could develop a completely different strategy, which is the topic we consider next.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9780123850591000090

Introduction to electronic resources in the performing arts

Ana Dubnjakovic, Patrick Tomlin, in A Practical Guide to Electronic Resources in the Humanities, 2010

Choral Public Domain Library (CPDL)

URL: http://www.cpdl.org/wiki/index.php/Main_Page

Content provider: ChoralWiki

Description: This is a peer-to-peer network choral music sharing website. All music is in the public domain and covered by the GNU GPL license, which allows the users to freely copy and print the available music and allows for modification of music, provided the modified version is then posted on the site. While the site administrators loosely control the postings, the majority of work is done by users. In addition to hosted scores, users can request scores to be added to the site which are then posted in the ‘completed’ section. Other useful features include text translations, composer catalogs and composers’ anniversaries.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9781843345978500025

Blockchain Technology: Platforms, Tools and Use Cases

Kazuki Ikeda, Md-Nafiz Hamid, in Advances in Computers, 2018

1 Introduction

A Blockchain is a decentralized system that uses peer-to-peer network to enforce transactional integrity as well as security, and gets rid of a third party such as banks for mediation. It offers a wide variety of uses, and the number of applications which use it to automate integrity of transactions for both monetary and nonmonetary purposes has increased over the past decade. As such it has attracted enormous international interest. Some countries are considering introducing the Blockchain technology to public services. Estonia has issued e-Residency, a digital ID that offers people all over the world to start a location-independent business. Their citizens can also use it for voting in elections, tax payment, bank transfer, and so forth. The potential of Blockchain for nonmonetary transactions and consequently shaking up every major sector is indeed immense.

We also propose a novel logistics system, Mariana, which is a decentralized global barter system. Barter is the starting point of all economics. In a barter system, transaction of goods happens directly for other goods rather than a medium of exchange such as money. Until the last century, it had been commonly and widely believed from ancient times that money was invented to solve inconvenience of barter. However, many economists and cultural anthropologists today are skeptical of this history between money and barter. What we aim at in this chapter is not to add another viewpoint toward this debate, but to give a solution to construct a real and global economic system which is truly based on barter. This can facilitate the exposure of a global nonmonetized economy that can thrive side by side of the traditional monetized economy.

Our system will be a peer-to-peer global barter system, which will make a part of the international economy get back to the basics, and maybe the first officially recorded economy which is comprised of a global barter trade. The core technology supporting Mariana is based on a Blockchain, a sequential distributed database in which transaction records are stored without going through a particular third party. In a sense, money is an authorized third party intermediating between goods or services, and a Blockchain removes such a third party from the existing system. This system will allow direct trades of products without going through a broker and without using money. In this system, importance of money will not be completely lost, and implementation of such a system will allow our society to have it both ways: monetized economy and nonmonetized economy.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/S0065245818300214

Information Technology Systems Infrastructure∗

Thomas Norman CPP, in Effective Physical Security (Fifth Edition), 2017

Network Configurations

A network is composed of a series of TCP/IP devices connected together. There are different ways to do this, and each has its own advantages and limitations.

Peer-to-Peer

The most basic network is a stand-alone peer-to-peer network. Peer-to-peer networks are created by connecting each device together through a hub or switch. Each computer, codec, or access control panel is equal in the eyes of the switch. This is adequate for very small networks (Fig. 18.11).

What is a network called where each device can act as both a server and a client?

Figure 18.11. Peer-to-peer network.

Client/Server Configuration

As network sizes expand, a client/server configuration is preferred. Major processing is performed in one or more servers, and the human interface is accommodated with client devices or workstations (Fig. 18.12). Cameras, intercoms, access control readers, locks, door position switches, request-to-exit devices, alarm-triggering devices, and so forth are all human interface devices, as are guard and lobby workstations, intercom master stations, and so forth.

What is a network called where each device can act as both a server and a client?

Figure 18.12. Client/server network.

Typically, the human interface devices are connected to processing devices that interface to the network via TCP/IP connection, usually Ethernet. These may include codecs and alarm/access control panels.

On larger networks, it is common to use multiple servers. Commonly, there will be multiple archive servers.

It is also common to use a second set of servers as a backup to the primary servers in case of a disaster that disables the primary servers. This allows for remote access to the data up to the second of the disaster to analyze the event and to provide a business continuity record of all network data.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B978012804462900018X

Understanding the Technology

Littlejohn Shinder, Michael Cross, in Scene of the Cybercrime (Second Edition), 2008

Peer-to-Peer Networks

Networks without an authentication server are called workgroups or peer-to-peer networks. This model is appropriate for small networks with only a few computers, in environments where high security is not required. They are common to small offices or home networks. In a workgroup, all computers can provide both client and server services.

Note

In this context, the term server services means only that the computers make their resources accessible to (share them with) other computers on the network. The computers in a workgroup do not have to run expensive server software, although a workgroup can have machines running such software as Windows Server 2008, operating as member servers instead of domain controllers. The key differentiating factor is that in a workgroup, there is no authentication server, although there can be other types of servers (file and print servers, remote access servers, fax servers, and the like).

Workgroups are less expensive to implement than server-based networks, for several reasons:

Server operating system software is costly, and must be purchased to implement a server-based network.

Server software generally requires more powerful hardware than do desktop operating systems, so you might need to purchase more expensive machinery to run it.

Server-based networks generally require a dedicated network administrator to perform the many tasks involved in network administration and maintenance, necessitating hiring additional personnel or extra work on the part of an existing employee.

Despite the cost advantage of workgroups, they are less secure, because the user of each computer must manage its resources. To access resources on any other computer in the workgroup, a user must have a local account created on that machine, or alternatively, each individual shared resource can be protected by a password. Either of these methods gets very cumbersome when there are more than a handful of users and/or more than a few shared resources.

With the first method, a user might need accounts on a dozen or more computers; with the second method, that user would have to keep track of dozens or even hundreds of different passwords to access different shared folders or printers. Contrast this scenario with the authentication server-based network, where each user has a single username and password for logging on to the entire network. The user can then access any resource on any machine in the network for which the appropriate permissions have been assigned. Although administrators do have to assign permissions to each shared resource, from the user's point of view this is a much simpler system. When workgroups grow beyond 20 or 25 computers, it is usually advantageous to convert to a centralized (server-based) model.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9781597492768000042

Fundamentals of big data in radio astronomy

Jiale Lei, Linghe Kong, in Big Data in Astronomy, 2020

5.1 Horizontal scaling platforms

Some of the popular horizontal scale-out platforms include peer-to-peer networks and Apache Hadoop. Nowadays, researchers have already started to develop the next generation of horizontal scale-out tools to overcome the weaknesses of existing platforms. These platforms will be examined in more detail in the following.

Peer-to-peer networks involve millions of machines connected in a network. This network architecture is designed to be decentralized and distributed. It may be one of the oldest existing distributed computing platforms. Each node in the system is called a peer, and peers communicate and exchange messages by using the message passing interface scheme called MPI. Each node can store a certain amount of data and the scale out is practically without limitations, which means millions of nodes or even more can be involved. However, the major bottleneck in peer-to-peer networks arises in the communication among different nodes. Broadcasting messages in such systems is low cost, but the aggregation of data or analytic results is much more expensive. Moreover, the messages are sent over the network in the form of a spanning tree with an arbitrary node as the root where the broadcasting is initiated.

MPI is the standard software communication paradigm that is used in this network. It has been in use for many years and is well established and thoroughly debugged. One of the main features of MPI is the state preserving process. This means processes can be kept alive as long as the system operates and there is no need to load the same data again and again as other frameworks do, such as MapReduce. All the parameters can be saved locally. Therefore, MPI is suitable for iterative processing. Another important feature of MPI is its hierarchical master/slave paradigm. Under such a paradigm, a slave node can become the master for other processes, which is extremely useful and flexible for dynamic resource allocation, especially when the slave node has large amounts of data to process.

Actually, MPI is available for many programming languages, including C ++ and Java. It provides methods to send and receive messages and data among processes. One of the most important methods in MPI is “broadcast,” which broadcasts the data or messages over all the nodes. Another method called “barrier” is also frequently used to put up a barrier so that all the processes can synchronize and reach a certain state before working further.

Although it seems that MPI is perfect enough for developing algorithms for big data analysis, some drawbacks also arise. For example, MPI does not have any mechanism to deal with faults. Because peer-to-peer networks are completely unreliable hardware, when MPI is used on top of such architectures, a single node failure can lead to the breakdown of the entire system. Therefore, users must implement some fault tolerance mechanism within the program to avoid such tragedies. Other frameworks such as Hadoop are robust to fault tolerance and are becoming increasingly popular, meaning that MPI is not as widely used as before.

Apache Hadoop is an open source framework for storing and processing massive datasets using clusters of commodity hardware. Hadoop is developed to scale up to hundreds and even thousands of nodes with high fault tolerance. The components of a Hadoop stack are illustrated in Fig. 2.4. As the figure shows, the lowest layer of Hadoop is the Hadoop distributed file system (HDFS), which is a distributed file system that is widely used to store data across clusters of commodity machines. The distributed file system supports high availability and excellent fault tolerance. Hadoop YARN is a layer responsible for resource management and job scheduling across the cluster. MapReduce is the programming model used in Hadoop. As mentioned above, MapReduce divides the entire task into two functions, that is, map and reduce. The map functions load the data from HDFS, process it, and then gain some intermediate results that are sent to the reduce function. Reduce functions aggregate the received intermediate results to generate the final output and write the output to HDFS. Typically, a Hadoop job involves operating several map functions and reduce functions across different nodes in the cluster.

What is a network called where each device can act as both a server and a client?

Fig. 2.4. Hadoop stack.

Other platforms based on MapReduce have also been developed, and these are called MapReduce wrappers. These MapReduce wrappers can support better control over the MapReduce program and support aid in the source code development. Two popular wrappers are Apache Pig and Hive. Both can make code development easier by avoid making programmers deal with the complexities of MapReduce coding. In addition, programming environments such as DryadLINQ have emerged that allow end users more flexibility over MapReduce because they can have more control over the coding. DryadLINQ is developed by Microsoft, using LINQ (a parallel programming language) and a cluster execution environment named Dryad. Programmers can just use Visual Studio as the tool for better debugging and development, and even interoperate with other languages such as standard. NET.

Spark is regarded as the representative of a next-generation paradigm for big data processing. It is designed to overcome the disk I/O limitations on Hadoop and to improve the performance of earlier systems. What makes Spark unique and efficient is that Spark can support in-memory computations. Compared to Hadoop, which requires loading data from a disk, Spark allows data to be cached in memory to perform in a more efficient way. At present, Spark has become a general framework for massive dataset processing. It also supports many mainstream programming languages, including Java, Python, and Scala. Spark can run up to 100 times faster than Hadoop MapReduce for some certain tasks when the data is suitable to be cached in memory. Even when data resides on the disk, Spark operates up to 10 times as rapidly as Hadoop does. Spark is also compatible with Hadoop frameworks as it can run on Hadoop Yarn manager and load data from HDFS, making it simple to run Spark on different systems.

Berkeley data analytics stack (BDAS): BDAS was developed by researchers at the University of California at Berkeley. The BDAS stack is shown in Fig. 2.5. As is seen, there is a layer called Tachyon that is on the upper level of HDFS. Actually, this component is based on HDFS, and it achieved higher performance than HDFS by utilizing memory in a more efficient way. Tachyon works by caching those files that are frequently read in memory so as to access the disk as little as possible. Thus, these cached files can be accessed at memory speed. Tachyon is also compatible with Hadoop MapReduce. In other words, MapReduce programs can run over Tachyon just as they directly run on HDFS. In addition, Tachyon also supports operations for raw tables. With Tachyon, users can load tables with hundreds of columns, and Tachyon can help identify the columns that are frequently used to cache them in memory for further use.

What is a network called where each device can act as both a server and a client?

Fig. 2.5. Berkeley data analytics stack.

Another crucial layer in BDAS is Apache Mesos, shown in Fig. 2.5 above Tachyon. Mesos is used for cluster management that provides effective resource isolation and sharing across distributed applications or frameworks. It allows Hadoop, Spark, and other applications to share a dynamically shared pool of resources. Supported by Mesos, it is possible for tens of thousands of nodes to work together. Mesos provides APIs in programming languages such as Java, Python, and C ++ to allow users to develop new parallel applications. In addition, Mesos includes the capability for multiresource scheduling, making it a powerful resource manager.

The layer above Mesos is Spark, which replaced Hadoop MapReduce in BDAS architectures. On the top of the stack are various Spark wrappers. For example, Spark Streaming is used for large-scale real-time stream processing. Blink DB can provide queries with bounded errors and bounded response times, even when the datasets are huge. GraphX is a distributed graph system based on Spark, and MLBase provides a distributed machine learning library based on Spark.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9780128190845000109

Wireless Sensor Network Security

Harsh Kupwade Patil, Thomas M. Chen, in Computer and Information Security Handbook (Second Edition), 2013

Sybil Attack

The Sybil attack was first introduced by John R. Douceur while studying security in peer-to-peer networks [3], and later Karlof and Wagner showed that this type of attack poses a serious threat to routing mechanisms in WSN [4]. Sybil is an impersonation attack in which a malicious node masquerades as a set of nodes by claiming false identities, or generating new identities in the worst case [5]. Such attacks can be easily executed in a WSN environment because the nodes are invariably deployed in an unstructured and distributed environment, and communicate via radio transmission. They are especially detrimental in applications such as data aggregation, voting systems, reputation evaluation, and geographic routing. By using a Sybil attack in location-aware routing, it is possible to be in multiple locations at the same time.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9780123943972000167

Wireless Sensor Network Security

Harsh Kupwade Patil, Thomas M. Chen, in Computer and Information Security Handbook (Third Edition), 2017

Sybil Attack

The Sybil attack was first introduced by Douceur [5] while studying security in peer-to-peer networks; later, Karlof and Wagner [6] showed that this type of attack poses a serious threat to routing mechanisms in WSNs. Sybil is an impersonation attack in which a malicious node masquerades as a set of nodes by claiming false identities, or generating new identities in the worst case [7]. Such attacks can be easily executed in a WSN environment because the nodes are invariably deployed in an unstructured and distributed environment, and communicate via radio transmission. They are especially detrimental in applications such as data aggregation, voting systems, reputation evaluation, and geographic routing. Using a Sybil attack in location-aware routing, it is possible to be in multiple locations at the same time.

Read full chapter

URL: https://www.sciencedirect.com/science/article/pii/B9780128038437000181

When every computer on a network acts as both a client and a server?

Peer-to-peer (P2P) is a decentralized communication architecture where every network node has an equal capacity and may act as both a client and a server. In peer-to-peer computing, nodes pool their resources and instantly communicate with one another.

What is server and client in network?

A server is simply a computer that provides the network resources and provides service to other computers when they request it. A client is the computer running a program that requests the service from a server.

What type of network is called server?

A computer network in which one centralized, powerful computer (called the server) is a hub to which many less powerful personal computers or workstations (called clients) are connected. The clients run programs and access data that are stored on the server.

What is peer

The primary difference between these two terms is that, in a peer-to-peer network, every node can ask for assistance and deliver services. While in a client-server network, the client nodes demand services and the server node answers with assistance.