This is a continuation of a series of articles in which I briefly cover the main points of a specific topic in system architecture design. The first article can be read here and the full guide you can find on my github.
Any complex system is a mosaic of numerous components, each with its specific function. These components don't operate in isolation; they constantly interact over a network, exchanging data and commands. Understanding the basics of these interactions is crucial.
One must understand how components communicate over the network to comprehend the system's overall performance and resilience truly.
Networks can be divided into four types based on size, architecture, range, and function:
Building and maintaining networks would be impossible without specialized hardware devices:
Network topology is a structural layout that dictates how different network devices and components are connected and how data is transmitted. The choice of topology significantly impacts the network's performance, scalability, and fault tolerance. It is categorized into two main types:
The following types of topologies are distinguished:
A direct connection between two nodes or endpoints. This is the simplest form of network topology.
Advantages:
The direct and dedicated link ensures high-speed data transfer.
Simple configuration and setup.
Reliable communication since there are only two nodes involved.
Disadvantages:
All devices share a single communication line. Data sent by a device is available to all other devices, but only the intended recipient accepts and processes that data.
Advantages:
Easy to implement for small networks.
Cost-effective due to minimal cabling.
Disadvantages:
Each device is connected to two other devices, forming a ring. Data travels in one or sometimes two directions.
Advantages:
It can handle larger data loads than bus topology.
Disadvantages:
All devices are connected to a central device (e.g., a switch or hub).
Advantages:
Disadvantages:
Hybrid topology that combines characteristics of star and bus topologies. Groups of star-configured networks are connected to a linear bus backbone.
Advantages:
Hierarchical and scalable.
Grouping of devices makes it easy to manage.
Disadvantages:
Devices are interconnected. Every device is connected to every other device.
Advantages:
Provides high redundancy and reliability.
Data can be transmitted from multiple devices simultaneously.
Disadvantages:
Combination of two or more topologies.
Advantages:
Flexible and reliable as it inherits the advantages of its component topologies.
Scalable.
Disadvantages:
Network protocols are rules or standards that define how data is transmitted and received over a network. These protocols ensure that devices on a network (or across multiple networks) can communicate with each other in a standardized way.
The OSI and TCP/IP are two primary models that serve as guiding frameworks that describe the processes involved in data communication over a network.
|
OSI Model |
Protocol |
Data Format |
TCP/IP Model |
---|---|---|---|---|
7 |
Application |
HTTP, DNS, SMTP, FTP |
Data |
Application |
6 |
Presentation |
TLS, SSL |
Data |
Application |
5 |
Session |
Sockets |
Data |
Application |
4 |
Transport |
TCP, UDP |
Segment, Packet |
Transport |
3 |
Network |
IP, ICMP, IPsec |
IP Datagram |
Internet |
2 |
Data Link |
PPP, Ethernet |
Frame |
Network Interface |
1 |
Physical |
Fiber, Wireless |
Bit |
Network Interface |
The OSI (Open Systems Interconnection) model is a conceptual framework for understanding network interactions in seven layers. Each layer serves a specific function:
Physical: Deals with the physical connection between devices. It defines the hardware elements, such as cables, switches, and NICs.
Data Link: Responsible for creating a reliable link between two directly connected nodes, handling errors, and regulating data flow.
Network: Determines the best path to transfer data from the source to the destination across the network.
Transport: Ensures end-to-end communication, data flow control, and error correction.
Session: Establishes, maintains, and terminates application connections at both ends.
Presentation: Translates data between the application and transport layers, ensuring data is readable.
Application: Directly interacts with end-user applications, ensuring effective communication between software and lower layers of the OSI model.
The TCP/IP is a more concise model used predominantly in the modern internet, which simplifies the OSI layers into four categories:
Network Interface: Combines the functions of OSI's Physical and Data Link layers, focusing on how data is sent/received on a network medium.
Internet: Corresponds to the Network layer in OSI, handling data routing, IP addressing, and packet forwarding.
Transport: Similar to OSI's Transport layer, ensuring data reaches the correct application and is transmitted reliably (TCP) or quickly (UDP).
Application: Merges the functions of OSI's Session, Presentation, and Application layers, dealing with end-user application processes.
In system design, ensuring robust network security is paramount to protect sensitive data and maintain the trust of users and stakeholders, ensure business continuity, and meet regulatory requirements.
DDoS Attacks: Malicious attempts to disrupt the normal traffic of a targeted server, service, or network by overwhelming it with a flood of internet traffic.
Malware: Software designed to disrupt, damage, or gain unauthorized access to a computer system. This includes viruses, worms, spyware, and ransomware.
Man-in-the-Middle Attacks: Attackers secretly intercept and relay communication between two parties. They can eavesdrop or impersonate one of the parties, deceiving the other.
Insider Threats: Threats originating from within the organization, such as employees, former employees, or partners with inside information concerning security practices.
Software Flaws: Bugs or weaknesses in software can be exploited to gain unauthorized access or disrupt services. Examples include buffer overflows and unhandled exceptions.
Hardware Weaknesses: Physical components can have vulnerabilities, like firmware that can be tampered with or backdoors installed by manufacturers.
Misconfigured Network Devices: Devices like routers, switches, or firewalls that are not correctly configured can expose the network to various threats.
Weak Authentication and Authorization: Insufficient password policies, lack of multi-factor authentication, or lax access controls can allow unauthorized access.
Unencrypted Data: Data that isn't encrypted can be easily intercepted and read as it travels across a network.
Outdated Systems: Systems that are no longer supported or haven't been updated can have known vulnerabilities that are easy to exploit.
Physical Vulnerabilities: This refers to physical access points where an attacker could plug into the network or access servers directly.
Firewalls: Deploy hardware and software firewalls to monitor and control incoming and outgoing network traffic based on security policies.
Encryption: Use encryption protocols, especially for sensitive data, both in transit (like SSL/TLS for web traffic) and at rest (like database encryption).
Regular Updates: Keep all systems, software, and applications updated to patch vulnerabilities.
Multi-Factor Authentication (MFA): Implement MFA to add a layer of security, ensuring that users provide two or more verification factors to gain access.
Network Monitoring: Use network monitoring tools to monitor the network for unusual activities or unauthorized access continuously.
Security Awareness Training: Educate employees and users about the importance of security and how to recognize potential threats.
Network Segmentation: Limits the spread of threats within the network and provides better control over data access.
Backup and Disaster Recovery: Ensures data availability and business continuity in case of breaches or failures.
Physical Security: Physical access to network devices can lead to breaches.
Grasping the fundamentals of networking, from the intricacies of topologies to the nuances of basic protocols, is not merely an academic exercise—it's crucial for creating robust and efficient systems.
A solid grounding in network principles ensures systems communicate seamlessly, adapt resiliently, and scale efficiently.