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).