Whether you want to become a software engineer, a cloud architect, or a network administrator, a solid understanding of computer network architecture is an essential foundation to build on as you learn.
Today, we’ll explore the pieces behind networks both domestic and commercial, and put you one step closer to achieving that dream job!
Learn about computer networking for developers
Learn network infrastructure, access networks, and an extensive breakdown of each OSI network layer.
Regardless of your system’s purpose, it will need a connection protocol to link all devices. This link can be via Ethernet (Local Area Network), WLAN (Wi-Fi), or WAN (Wide Area Network). Each has risks and benefits to consider when deciding which connection type you will use. Let’s compare and discuss.
Another newer computer network type is cloud networking, which allows developers to connect many devices across a huge geographical area using cloud-based wireless networking systems hosted by third-party service providers. This type is quickly gaining popularity among tech firms due to its cheap execution and versatility.
Companies will often use Wi-Fi networks to link devices in their internal systems. What’s more, many products, either computer or mobile, must be designed to work on home Wi-Fi networks. If asked to design a system reliant on Wi-Fi connections, it’s useful to understand the different Wi-Fi standards.
Wi-Fi connections are all in the 802.11 family of standards but have several subtypes: A, B, G, N, or AC. Each one of these types has a different channel frequency, range limit, and network bandwidth.
AC is the most modern type, with the greatest range, network bandwidth, and least interference than the rest. From here, the network speed, range, and reliability reduce down the list (N is the second best, then G, and so on).
However, due to a combination of costs and use of legacy equipment incompatible with newer connections, companies may run their system on an older standard.
Asking which Wi-Fi standards a company currently uses during your interview or onboarding will demonstrate attention to detail and may set you apart from those who simply assume access to the newest resources.
Prepare for Connection Error#
As network devices grow increasingly mobile and smartphones become the standard, momentary connection loss is a common problem for your applications.
Take this into account when designing your system; how will it react if one or more devices lose connection?
Master the fundamentals fo computer networking with hands-on practice. Learn from the group up with concepts like network infrastructure, access networks, and an extensive breakdown of each OSI network layer.
Another decision to make when constructing a system is between data transmission protocols, either TCP/IP (Transmission Control Protocol) or UDP (User Datagram Protocol).
These protocols function like data delivery rules, affecting the speed of delivery, sequencing, and error recovery. The most commonly used across the globe is TCP/IP due to its reliability of data delivery and built-in loss-recovery mechanisms. That being said, both protocols have applications that should be considered when designing a system.
Pros:
Cons:
Common Uses:
Pros:
Cons:
Common Uses:
Other important protocols are the IP (Internet Protocol) which allows devices to be identified and sought through unique IP addresses, and HTTP (HyperText Transfer Protocol) which allows devices to request and transfer data between devices.
OSI (Open Systems Interconnection model)#
Protocols like those above work thanks to the OSI model, a conceptual model which ensures systems are standardized to communicate in the same manner and are all organized into partitions of seven layers: Physical, Data Link, Network, Transport, Session, Presentation, and Application.
Both hubs and switches act as a connection point between devices in a network. Both will usually use a wired connection but are increasingly featuring wireless connectivity. Where they differ is how they disperse data through the network after it is received from a device.
Hubs are best used when all devices would benefit from receiving all the data. In contrast, switches should be used when many different types of devices are on the network or the data is sensitive and should not be forwarded indiscriminately.
If we think of LANs as towns and hubs/switches as our town halls, then routers would be the roads that connect them. Located at gateways, the intersect point between two or more networks, these devices sort and forward data packets to the correct destination between two or more separate networks.
This knowledge is essential as most systems will require not one large network but rather smooth interworking between multiple separate networks. The advantage of dividing systems this way is twofold: it minimizes the device load on any individual network and also keeps all data immediately accessible to devices where it is most pertinent.
When planning a network or later in a systems design interview, it’s essential to define:
Latency Cost of Routers#
Connections across router bridges between networks will have higher latency than in-network connections; to improve efficiency, put devices the work together frequently or require swift transfers on the same network rather than passing the data across router bridges.
Now that you have an understanding of the tools which go into building a network, you can move to think about how you’d secure it. This is the central challenge facing network designers, by starting to consider it you take one step closer to becoming a network specialist!
While blocking all connections to external systems is a simple and effective way to ensure, there are many times when a connection to external systems will be essential for a system to function effectively. In those cases, some types of firewalls and encryption are essential to minimize internal risk.
One of the main tools for network security, firewalls act like a checkpoint where data passed to or from private networks is reviewed before being accepted or rejected. There are several types of security functions used by firewall programs. Most use two or more functions to provide variable security protections.
The most common function, these applications are configured to block common types of attacks, such as Distributed Denial of Service (DDoS). These applications are simple and cheap but susceptible to novel forms of attack unfamiliar to the program.
This function reviews each data packet that passes through it, accepting or rejecting based on user-defined rules. These are effective but can be difficult to configure to block all possible threats.
This function activates security sweeps when a new TCP/IP or UDP connection links up to the system. Once the check has been completed and the source is deemed secure, data can pass freely through without further checks.
This function masks the network address of connected devices, directing all requests made through an alternative cover device. This provides an added level of anonymity and filtering, as the proxy device acts as a buffer, sending back only specified types of data to the source.
Unfortunately, this function will slow network performance by adding an additional data node to travel through.
Regardless of how effective your initial firewalls are, there may be a time when they fail and data is stolen. To anticipate this, it’s helpful to have a second layer of security built into the system, usually in the form of data encryption.
Encryption is the process of converting data (either in-flight and at-rest) into a form only readable by another authenticated system or device. If data is intercepted in transit by a device without the proper decryption keys, it remains unreadable and secure.
When designing your system, consider the places where encryption will be needed. If a certain area in the system contains sensitive data, such as banking information, it may be wise to include multiple levels of encryption for added protection.
While knowing what specific type of encryption protocol to use is unnecessary (as most companies have in-house policies), you can demonstrate thorough care for security by indicating which network connections will need to be encrypted based on the type of data they pass.
Congrats! You are now familiar with the basics of computer networking and are ready to move onto more advanced concepts and applications. To learn more about the foundations computer networking, check out Educative’s Grokking Computer Networking for Software Engineers. It walks you thorough these foundations and more with real-world examples and code.
Because computer networking is such a vast field, there are different, exciting avenues you can choose to pursue as you learn. Your next step depends on what jobs interest you in the future:
If you’re interested in network security, you’ll want to look into modern cybersecurity threats currently facing developers in the field.
If you’re interested in cloud architecture, consider AWS, the most popular cloud service.
Either way, congratulations on taking your first steps toward a great new career!
Free Resources