Network design is an exercise in decision making. The design process takes client requirements and constraints as input and produces a set of maps, plans, quantities, and policies. The process is influenced also by sets of business and environment contexts.
A common approach to designing networks is to follow a top-down methodology. The methodology focuses on understanding the services the network is supposed to provide to users and applications before moving into constructing the topology and deciding on components and protocols. The design process generally involves these general phases:
Gathering user requirements
Requirements are gathered from users and other stakeholders via meetings, surveys and other forms of communications (e.g. request for proposals). When upgrading an existing network, some requirements may be derived from current network specifications. Requirements can be generally classified into general categories of user, applications, hosts, and network. The designer should be aware of business and external factors such as client’s organization decision making process, bias towards a specific vendor or technology, funding sources, and project timelines. The design is often influenced by experience, market conditions, technology trends, and government.
Establishing performance specifications
Information gathered about software applications, user locations and mobility, usage patterns, and physical host locations and capabilities are used to estimate the direction and volume of data flows. Reliability, latency and security specifications are also derived from understanding the nature of applications and their importance the user. Specifications of any significant power, space, cabling, and other support infrastructure should be included as well. The result of this phase is a set of performance specifications within which the future network should operate. Another important outcome is a map of all major data flows in the network.
Problem Solving
This stage involves finding the major challenges in the design and solve them in a way that meets the specifications in an optimal manner. High level topology design should be derived from the major data flows. In networks where traffic flows characteristics change dynamically (e.g. in data centres and carrier networks), well-known topology patterns can be used. Large backbone networks and first-mile access networks topologies can be designed with the assistance of heuristics. Multiple solutions should be generated, analyzed, and compared until an optimal solution is found. Manageability and security strategies are developed and incorporated in the design. Other high-level decisions are made in this phase as well: selection of technologies, protocols, security zoning, and routing schemes, to name a few.
Finalizing Details
The final stage of the design process involves finalizing the details. Creating an IP addressing plan, VLAN assignments, optical wavelength and wireless channel allocations are some examples of tasks that need to be completed. Selection of equipment and creating bill-of-material is also part of this phase. All aspects of the details are important and omitting some of them may render the design useless. Simulations can be used to validate the design in complex networks. Prototypes and proof-of-concept (PoC) deployments may be used to verify and finalize some details and to prepare for larger scale deployment.
Read about otherĀ Network Design Principles.