{"title":"Network Algorithms","authors":"C. Scheideler","doi":"10.1017/9781108868815.007","DOIUrl":"https://doi.org/10.1017/9781108868815.007","url":null,"abstract":"The goal of this course is to give an introduction to the state of the art in the theory of network algorithms. By ”network algorithms” we mean algorithms for the design and management of logical networks (and their applications) as opposed to applications for physical networks like the Internet, though most of the applications we give in this course are actually for the Internet. Why are algorithms for the design and maintenance of logical networks (which we will also call over ay networks ) important? Certainly, every distributed system must be based on some kind of logical interconnection structure allowing its sites to exchange information. Thus, in order to design efficient and scalable distributed systems, we first have to understand how to design efficient and scalable logical interconnection networks. Once a distributed system exceeds a certain size, one has to take into account that sites continuously enter and leave the system. This is because, for example, new sites may have to be added to maintain a certain service level or old sites may fail. Also, once a distributed system becomes very large, attacks on it by insiders and outsiders become more and more likely. Thus, besides addressing the problem of how to maintain an overlay network under a changing set of sites, one also has to address the problem of how to protect an overlay network against adversarial sites. We will investigate these issues in this course and present solutions that are based on state-of-the-art knowledge in this area. The first half of the course will focus on fundamental results in the area of networking, scheduling and data management, and the second half of the course will use these results to design efficient, scalable and robust overlay networks for particular applications including a shared file system and systems for anycasting, multicasting, and searching and sorting. Before we start talking about algorithms and networks, we need a proper computational model, very much like mathematics needs axioms. It is a widely accepted fact that algorithmic advances in the area of computer science are only useful to society if they are based on models that truthfully reflect the restrictions and requirements of the corresponding applications. But what is a useful model for network algorithms, or distributed algorithms in general? We will start in this section with the discussion of properties such a paradigm should have, which is followed by the specification of a paradigm that we will use throughout the course. To understand the effects of this paradigm, a simulation environment will be provided so that algorithms can be implemented and tested within that paradigm. The only prerequisite to run this simulation environment is a PC that can compile C++ programs. For an introduction to C++ and C++ compilers see the web page of the course. For the rest of this section, we first give some motivation and background information for the paradigm used in this course (Sections","PeriodicalId":364408,"journal":{"name":"The Quantum Internet","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2021-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127795871","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Protocols for the Quantum Internet","authors":"","doi":"10.1017/9781108868815.015","DOIUrl":"https://doi.org/10.1017/9781108868815.015","url":null,"abstract":"","PeriodicalId":364408,"journal":{"name":"The Quantum Internet","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2021-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124208074","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"What is Security?","authors":"M. Kharrazi","doi":"10.1002/9781119104728.ch01","DOIUrl":"https://doi.org/10.1002/9781119104728.ch01","url":null,"abstract":"Security is a very broad property, but generally the goal of computer security is to ensure that a particular computer system is behaves correctly even in the face of an adversary (or attacker) whose goal is to foil the system. We will use the terms “adversary” and “attacker” interchangeably throughout this course. To achieve this goal, we will need some kind of systematic plan. That is, we will have to carefully define what it means for our system to behave correctly and we will have to specify the class of adversaries against which we want to defend. For the purposes of this course, we will typically structure our plan in terms of three components: a model of the system and the adversary, a security goal, an implementation.","PeriodicalId":364408,"journal":{"name":"The Quantum Internet","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2021-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128260643","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Time Sharing","authors":"F. J. Corbató","doi":"10.1002/0471743984.vse7068","DOIUrl":"https://doi.org/10.1002/0471743984.vse7068","url":null,"abstract":"Time sharing is a technique of organizing a computer so that several users can interact with it simultaneously. The term also refers to multi-user systems in which arbitrary general-purpose computation is performed and users operate independently of one another, often at locations remote from the computer itself. Although time sharing was initially perceived by many as a programming convenience for debugging (q.v.), the perception was soon extended to include the provision of a wide variety of online services and the availability of a large central memory shared among the user community.","PeriodicalId":364408,"journal":{"name":"The Quantum Internet","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2021-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129638926","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}