Skip to ContentGo to accessibility pageKeyboard shortcuts menu
OpenStax Logo
Introduction to Computer Science

A | Appendix A: Network Design Application of Algorithms

Introduction to Computer ScienceA | Appendix A: Network Design Application of Algorithms

Introduction to Data Communications and Networks

In computer science, a network is a system of computers and other technology that are interconnected to store and share information. Networks enable data communications, allowing users to interact on computers and other technology, such as cell phones. This gives users the ability to chat and exchange information on applications such as social media, emails, and video chats. For additional information on any of these topics, we suggest visiting Computer Networks: A Systems Approach by Larry Peterson and Bruce Davie, using the links included here.

Network Components

Networks are comprised of various components. Applications are computer programs and software that enable us to use a network (https://book.systemsapproach.org/foundation/applications.html). Examples of applications include the World Wide Web, instant messaging, streaming services for movies and music, file-sharing, social media, and emails.

To build a robust network, computer scientists must consider the network’s requirements (https://book.systemsapproach.org/foundation/requirements.html). The requirements include the stakeholders who develop the network, as well as those who manage and operate the network. Scalable connectivity is a critical requirement to understand the needs that the network must currently meet, as well as the needs that must be met by the network as the organization grows and changes. Other requirements include the cost-effectiveness of the network, the support that the network provides for common services, such as an organization’s email application, and the network’s ability to be managed.

Like blueprints to construct buildings, computer networks need architecture to ensure the component parts are arranged and structured appropriately to ensure the network functions as needed (https://book.systemsapproach.org/foundation/architecture.html).

Computer networks cannot function without software, which refers to the programs that instruct computers on the tasks to perform. The different types of software include system, utility, and application. Examples of software include word processing and spreadsheet programs like Microsoft Word and Excel (https://book.systemsapproach.org/foundation/software.html).

Communication Links

Communication links are vital to connect the various nodes and users in a network. This requires tools like copper wire, optical fiber, and the air for wireless links (https://book.systemsapproach.org/direct/perspective.html). Then processes like encoding (https://book.systemsapproach.org/direct/encoding.html), framing (https://book.systemsapproach.org/direct/framing.html), and error detection (https://book.systemsapproach.org/direct/error.html) are necessary to develop a reliable transmission (https://book.systemsapproach.org/direct/reliable.html). Also, it’s important to recognize that different types of communication links are needed for different types of networks, such as multi-access (https://book.systemsapproach.org/direct/ethernet.html), wireless (https://book.systemsapproach.org/direct/wireless.html), and access (https://book.systemsapproach.org/direct/access.html).

The Internet

To understand the concept of a computer network, consider the Internet, which is a global network that connects millions of people, enabling them to communicate and share information (https://book.systemsapproach.org/scaling/global.html).

The Internet is a good example of a network of networks, since it actually is comprised of many smaller networks that are interconnected (https://book.systemsapproach.org/internetworking/basic-ip.html).

To ensure that the Internet and other computer networks can function, they must have protocols, which are standardized rules to guide how data is formatted and processed. Protocols enable networks to transmit information (https://book.systemsapproach.org/e2e/problem.html). Common protocols include simple demultiplexor (https://book.systemsapproach.org/e2e/udp.html), reliable byte stream (https://book.systemsapproach.org/e2e/tcp.html), remote procedure call (https://book.systemsapproach.org/e2e/rpc.html), and transport for real-time (https://book.systemsapproach.org/e2e/rtp.html). Web services also have protocols, including standards issued by the World Wide Web Consortium (https://book.systemsapproach.org/applications/traditional.html#web-services).

Network Edge and Core

To use a network, such as the Internet, users rely on end systems, such as personal computers, tablets, and cell phones. End systems also include components like servers for email and even game consoles that are connected to the Internet. End system devices operate at the edge of the Internet, which is the point where such devices are connected to the network (https://book.systemsapproach.org/direct/trend.html).

Hosts as Clients and Servers

To enable communication, networks rely on the client, which sends a request to gain access to a network’s file, and the server, which makes a file available by providing access (https://book.systemsapproach.org/foundation/requirements.html#support-for-common-services).

Access networks are an example of the client-server relationship in networks (https://book.systemsapproach.org/direct/access.html). Internet service providers and cable service are examples of access networks, which enable users to connect to a network via personal devices like computers, cell phones, and TVs.

While networks often rely on wired links to function, many networks are wireless. Popular wireless technologies include Bluetooth, Wi-Fi, and 4G cellular (https://book.systemsapproach.org/direct/wireless.html).

Network Core

To function, networks must have scalable connectivity, which means the computers in the network are connected and the network has the ability to grow to a larger scale (https://book.systemsapproach.org/foundation/requirements.html#scalable-connectivity). This is achieved through switched networks, which have hardware components that connect the devices using a network that enables them to share data packets.

The different types of switched networks include packet switched and circuit switched. Packet switched networks are commonly used for computer networks and process data into packets that are sent through the network to nodes. With packet switching, data may be broken into smaller packets that travel independently on different routes in the network. With circuit switched, networks which are commonly used by the telephone system, messages travel over a dedicated route to reach the destination.

Network Core Functions

In addition to switching, a vital function of networks is routing, which refers to the process that networks use to determine the optimal path for data packets to travel as they move through the network (https://book.systemsapproach.org/internetworking/routing.html and https://book.systemsapproach.org/internetworking/switching.html#source-routing). Routers ensure that data actually reaches its destination.

Network Performance

Performance is an important part of networks that determines how efficiently the network functions. Performance has two important aspects, including bandwidth, which refers to the number of bits that a network can transmit in a given time, and latency, which is the amount of time it takes to transfer data (https://book.systemsapproach.org/foundation/performance.html).

Network Security

As networks share information, it is vital that they are secure to protect the privacy and sensitive information of users. The concepts important in network security include security trust and threats, ciphers, authenticators, public and secret keys, authentication protocols, and firewalls (https://book.systemsapproach.org/security.html).

Network Layers and Service Models

An important part of network functionality is abstraction, which is a fundamental tool that enables network designers to manage a system’s complexity by simplifying computer code. With abstraction, code is organized into functions and the underlying complexity is hidden. This makes it easier for programmers to understand the code, and they can work with it more efficiently, writing code more quickly with fewer errors.

Abstractions are the foundation of layering, which is the process of breaking a network into layers that make it easier to transmit information across the network (https://book.systemsapproach.org/foundation/architecture.html#layering-and-protocols). Each layer serves a different purpose, such as providing host-to-host connectivity and supporting application programs.

One of the first layering protocols was the OSI Model, which uses seven layers in its architecture (https://book.systemsapproach.org/foundation/architecture.html#osi-model).

Encapsulation is an important part of this process. With encapsulation, data is protected and access to computer code is controlled, enabling users to interact with the network without the risk of comprising data integrity (https://book.systemsapproach.org/foundation/architecture.html#encapsulation).

Internet Network Protocols

The Internet network’s architecture includes the main protocols of Transmission Control Protocol (TCP) and Internet Protocol (IP), as well as User Datagram Protocol (UDP) (https://book.systemsapproach.org/foundation/architecture.html#internet-architecture). Other protocols important for the Internet to function include protocols for application layer (https://book.systemsapproach.org/applications/traditional.html), web application, file transfer (https://book.systemsapproach.org/foundation/requirements.html#identify-common-communication-patterns), email (https://book.systemsapproach.org/applications/traditional.html#electronic-mail-smtp-mime-imap), video streaming, and transport layer (https://book.systemsapproach.org/security/systems.html#secure-shell-ssh). In addition, framing protocols are important, including byte-oriented protocols (https://book.systemsapproach.org/direct/framing.html#byte-oriented-protocols-ppp), bit-oriented protocols (https://book.systemsapproach.org/direct/framing.html#bit-oriented-protocols-hdlc), and clock-based framing (https://book.systemsapproach.org/direct/framing.html#clock-based-framing-sonet). For host-to-host delivery services, the simple demultiplexor (UDP) is useful (https://book.systemsapproach.org/e2e/udp.html).

Routers Forwarding Functionality

Routers also have protocols, and it’s important to understand router architectures, including switching and input port functions. Routing uses graph-theory and algorithms to ensure that packets take the appropriate route and make it to their intended destination (https://book.systemsapproach.org/internetworking/routing.html). Protocols such as Routing Information Protocol (RIP) (https://book.systemsapproach.org/internetworking/routing.html#routing-information-protocol-rip) and link-state routing (https://book.systemsapproach.org/internetworking/routing.html#link-state-ospf) help ensure routing functionality.

Routing is unable to function without switching (https://book.systemsapproach.org/internetworking/switching.html), and this includes datagrams (https://book.systemsapproach.org/internetworking/switching.html#datagrams), virtual circuit switching (https://book.systemsapproach.org/internetworking/switching.html#virtual-circuit-switching), and source routing (https://book.systemsapproach.org/internetworking/switching.html#source-routing).

Internet Control Message Protocol

Errors are an inevitable part of any network, and this can impact network functionality. To deal with this issue, the Internet relies on a companion protocol for IP called Internet Control Message Protocol (ICMP) (https://book.systemsapproach.org/internetworking/basic-ip.html#error-reporting-icmp). ICMP defines a collection of error messages and returns them to the source host if a router or host cannot process the IP datagram and deliver the messages. Network management also has protocols, including Simple Network Management Protocol (SNMP) and OpenConfig (https://book.systemsapproach.org/applications/infrastructure.html#network-management-snmp-openconfig). For address translation, the Address Resolution Protocol (ARP) is important (https://book.systemsapproach.org/internetworking/basic-ip.html#address-translation-arp).

Encoding

Network functionality depends on encoding, which is the process of converting a character sequence into the appropriate format to store or transmit the data (https://book.systemsapproach.org/direct/encoding.html). Encoding can be approached using compression, which seeks to encode bits of data in the smallest set possible. Compression techniques include run length encoding, differential pulse code modulation, and dictionary-based methods (https://book.systemsapproach.org/data/multimedia.html#lossless-compression-techniques). Encoding is also an important process to prepare files like JPEG (https://book.systemsapproach.org/data/multimedia.html#encoding-phase), MPEG (https://book.systemsapproach.org/data/multimedia.html#transmitting-mpeg-over-a-network), and videos (https://book.systemsapproach.org/data/multimedia.html#video-encoding-standards).

Wireless and Mobile Networks

Wireless networks function similarly to wired networks, except all wireless links use the same medium. To ensure this medium is shared efficiently, it is divided using the dimension of frequency and space. Government agencies, such as the U.S. Federal Communications Commission make many of the determinations regarding which networks can use the medium, and this includes allocating certain frequency ranges for specific uses, such as television and cell phones (https://book.systemsapproach.org/direct/wireless.html#basic-issues). The physical properties of wireless networks include bandwidths (https://book.systemsapproach.org/direct/wireless.html#physical-properties). Collision avoidance is a focus of wireless protocols (https://book.systemsapproach.org/direct/wireless.html#collision-avoidance), and wireless distribution networks use the link layer for operations (https://book.systemsapproach.org/direct/wireless.html#distribution-system). As with all networks, security is a chief concern for wireless systems (https://book.systemsapproach.org/direct/wireless.html#security-of-wireless-links). Bluetooth is a popular wireless network (https://book.systemsapproach.org/direct/wireless.html#bluetooth-802-15-1).

Routing can be challenging for wireless, mobile devices. For example, IP addresses and mobile hosts must be handled differently in wireless networks, making it necessary to use different protocols when developing wireless networks (https://book.systemsapproach.org/scaling/mobile-ip.html#routing-among-mobile-devices).

Distributed and Decentralized Systems

Some networks use virtual circuit switching as an alternative technique for packet switching (https://book.systemsapproach.org/internetworking/switching.html#virtual-circuit-switching). Asynchronous Transfer Mode (ATM) is a well-known example of networking technology that relies on virtual circuit switching (https://book.systemsapproach.org/internetworking/switching.html#asynchronous-transfer-mode-atm). Another option is multiprotocol label switching, which leverages the robustness and flexibility found in datagrams with virtual circuit switching properties (https://book.systemsapproach.org/scaling/mpls.html).

Peer-to-peer networks are also useful in networks that allow a community of users to share their resources—including bandwidth, storage, and content—to give them greater network access than they would have individually. Examples of peer-to-peer networks include Gnutella and BitTorrent (https://book.systemsapproach.org/applications/overlays.html#peer-to-peer-networks).

History of the Internet and Inner-Workings

Historically, the Internet has relied on specialized devices built with application-specific integrated circuits (ASICs), and this has made it time consuming to develop networks. Hardware switches have helped improve this situation (https://book.systemsapproach.org/internetworking/impl.html#hardware-switch). With this change, software-defined networks have become more common (https://book.systemsapproach.org/internetworking/impl.html#software-defined-networks).

Metrics, or link costs, are an important consideration in routing and selecting the correct algorithm to handle the process. The ARPANET provided the testing ground to develop approaches for link-cost calculations (https://book.systemsapproach.org/internetworking/routing.html#metrics).

The Ethernet was developed in the mid-1970s and eventually dominated technology for local area networking. The basis for Ethernet was in Aloha, a packet radio network developed at the University of Hawaii as a support network to enable computer communications throughout the Hawaiian Islands (https://book.systemsapproach.org/direct/ethernet.html).

Citation/Attribution

This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.

Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.

Attribution information
  • If you are redistributing all or part of this book in a print format, then you must include on every physical page the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
  • If you are redistributing all or part of this book in a digital format, then you must include on every digital page view the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
Citation information

© Oct 29, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.