Sunday, October 5, 2014

Network basics for software testers


Computer networking has become an integral part of our daily life. We can find them in our own homes, Schools, universities, enterprises, etc. 

In today's world, people learn to relay on those networks and know how to use them to get their full potential. Few examples:
  • Social networks (Facebook, Google, Twitter...).
  • Home networks (2-10 computers) that share data.
  • Academic Networks (sharing data and academic information).
  • The biggest network from all, called the “Internet”.
  • Company networks, which allow remote access, centralized administration and much more.

The growth of such networks can easily be explained, just think about the average user, not like 20-30 years ago, the average user can use networks without any real education or fear from the unknown, think about the following criteria that makes the network so easy and relevant for us:

Networks are Easy to use
Networking is easy, anyone can use social networks or insert credentials for authentication against the enterprise servers, as a software testers, we need to be familiar with the procedures and how it’s really work.
Networks are Reliable
I cannot say that all networks are safe to use (The attackers will always be part of a fast growth technology) but, when examine the big networks, we can say in highly % that those networks are reliable for the average user and really safe for use.

Networks are efficient
The efficiency of networks is well known, just think about the internet and how he affects us, the access to information, the ability to share our data and what we think… no more words should be added.

Computer networks - What is it?
The definition of a Computer network, is a set of standalone objects (computer/Devices) that communicate together over a shared network.
The basic criteria that build a computer network:

  • At least two objects that communicate together (Servers/Clients).
  • Communication medium – devices can communicate with different types of communication mediums (Lab cables, Wireless…).
  • Network interface card (NIC) that can send/receive data.
  • Supported Operating system (MacOS, WinOS...).

Computer networks – Objects definitions

The server is the computer that manages that data or any other shared resources/Services in the local network.
The client is the other word to describe a client computer that used by the user to interact in the network.

To build a network, we need the two objects above (Servers/Clients), a link between the two is the one that creates the network. In other words, the network is basically the communication between the objects that resides and configured as part of the local network. 

Types of networks (The main three)

LAN (Local Area Network)
A collection of standalone computers that transfer and share information with each other over a communication medium. Local Area Networks (LAN) are usually used when the network objects reside in a similar geographic location (in close proximity), examples:

  • Same office.
  • Same building.
  • Home network.
  • Same university
  • Etc.

LAN networks, can be defined with different scales:

LAN Size
Number of objects that existed (Computers, printers, servers…)
Average of 10-100 objects
Average of 100-500 objects
Average of 500+ objects

In addition, LANs networks are usually less expensive than WANs networks, the reason is the close proximity of the network objects.

To allow communication the IT team can use a basic Hardware such has modems, wireless Modems, Hubs and regular communication cables.

WAN (Wide Area Network)
Think about LANs and multiply it… Wide area networks is a combination of multiple LANs that located in a different geographical location (in other words, we have few LANs that located under a different physical location).

The connection between the LANs accomplished with a specific set of Hardware devices that cost much more that they once used to build the LAN network. Among those devices we can find Satellite links, communication lines (Phone lines, dedicated ISP lines and more) that allow the communication between different LANs.

The real power of WAN networks can be explained in a very simple way, you all know that we have a small thing called “Internet”, the internet is a complex system that built from massive amount of linked networks that exists worldwide and allow us the users to communicate with other people (Remote login, Mail systems, Facebook, websites and more).

VPN (Virtual Private Network)
VPN network is the basic way to connect to your local network (LAN) from anywhere you desire, a VPN uses a basic technique called “Tunneling” that used to send and receive any data across the public and private networks.

A VPN connection is usually established by creating a Virtual “Point-to-Point” using a dedicated connection (Tunneling, Encryption…).

Using VPN you can access to your company resources with the same security as you work on your company personal computer. In addition, you can access the company services (Mail, dedicated application Etc.).

Wireless Local Area Networks (WLANs)
Such networks, use the radio frequency (RF) technology to communicate and exchange data over the air (No need to use physical cables between the LANs).

WLAN have a great advantage over LANs because they allow the users to access the data without the need to connect a physical cable to the local LAN, which can save time and allow users to use different devices such as phones, tablets and any other object that can work with RF technology.

Now, do you really think that this freedom comes without a price? Of course not, to access such devices the user should authenticate against the LAN with a specific authentication protocol, the two main protocols that support such networks are WEP and WPA.

Computer networks – Available models
The Peer-to-peer model (P2P)
The P2P model in its simplest form is created when you have two computer or more that connected in a basic network that allow them to share resources between each other (one computer can share any info without a third computer in the middle).

In a simple word, in this model every computer can be used both as the Server or the client (not like the Server-Client model in which the client send the request to the server and wait until the server fulfil the request) with equivalent responsibility for processing data.
This model is very friendly to end users, when a new user wants to add is computer to a P2P network, he need to follow few basic steps: 
  1. Connect the computer to the physical network (P2P computers run the same communication protocols).
  2. Download the P2P supported software.
  3. Execute the software.
  4. After the software becomes active, the user can see the other computers belonging to the network by their IP address.
  5. A server that server a program will run forever until a failure occurs (the server doesn’t know when the clients will send a request, therefore he need to be open all the time).
  6. When the connection established with one of the other computers, the share of data can be created (Share Files, Access to resources, Shared printers, playing computer games Etc.).
  7. The basic network protocols that used to communicate between the network objects are User Datagram Protocol (UDP) and Transmission Control Protocol (TCP).
  8. Most of the application processing is done on the client side, the application services are provided by the remote server.

The Client server model
In this model, there is a structured relationship between the server and the clients, the client computer is the one that requests the relevant services from the centralized server (connection established using LAN or WAN (internet is a great example...)) that receive the request and reply with the needed results.

The basic flow:
  1. The client wants to access a specific service on a remote server.
  2. A communication established between the client-Server using the IP address and Port of the remote server.
  3. The request is responded or Declined by the server.
  4. Based on phase 3, the client closes the communication to the remote server.

Few basic facts about this model:
  • The server is the one that provides the services, the client sends the request it.
  • In this model the local computers can communicate against other clients or different devices (printers are the most common).
  • The architecture of this model embraced the separation between the servers and the clients.
  • The servers can serve both servers and clients.
  • If the centralized server is shut down or out of service, the clients cannot access the resources that this server holds.

The benefits of Client Server model
Central management
The central administration is probably the primary advantage over P2P networks, in this module we can centralize the entire environment using a one or more server that control the entire clients connected to him. Using the central administration, we can control the entire network in a several fields, examples: 
  • Single server that manages the network “Updates” from the internet (WSUS) server, and allow the IT to choose the relevant updates.
  • Controlling the entire network objects (Servers, Computers, Clients and any other device that connected to the LAN).
  • Enforce security over the network.
  • Share resources from a secured location using policies that ensure that only the authorized clients can access and use this data.
  • Reduce the need for multiple devices (think about 50 computers that can use a single shared printer).

Business Growth
Only this module will allow a major growth of your business, not like the P2P module that relevant for a few clients (2-15), the Client-Server module is built to support a thousand of users that can be managed few servers.

Servers can be configured with highly advances modules that can manage the control and access of resources, this module allows us to ensure that only the authorized clients will have access to the network services and resources.

Cost saving
Few examples that explains how this module can save a major amount of resources and money:

  • Only few support staff is required to maintain the network security policies.
  • Only few support staff is required to maintain the network Servers.
  • Only few support staff is required to maintain the network clients
  • Only few support staff is required to maintain the network backup plans.
  • Only few support staff is required to maintain the network services.
  • Servers support virtualization that saves a major amount of money (Electricity, physical location, shared resources etc.).
  • Reduce the number of licenses in a given network.

You need to remember that server hardware will cost you more than a basic computer, therefore you need to consider this factor when you design such module.

Remote Access
The servers allow remote access to the local network, which enables external users (Employees, Customers...) to access the data located on the internal network.

The servers both Hardware and Software are designed to answer requests from clients with the fastest and redundant way as possible. The data stored in few different architectures that allow the IT team to recover any lost data quickly and efficiently.

Using dedicated servers applications, the company IT stuff can back up the server data and the clients computers with a specific backup plans, File servers for examples, will contain the company data on one central location, this allow us to backup this data on a single server and recover it on any case of lost data. 


  1. I admire the valuable information you offer in your articles. I will bookmark your blog and have my friends check up here often. I am quite sure they will learn lots of new stuff here than anybody else! Regards, vmware openings in hyderabad


My Presentations