Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What are the network architectures?

2025-01-17 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

This article mainly explains "what are the network architectures?". Interested friends may wish to take a look. The method introduced in this paper is simple, fast and practical. Let's let the editor take you to learn what is in the network architecture.

01 what is architecture?

Architecture is a process, a result and a discipline.

As a process, it involves combining components with design elements to form a purposeful entity.

As a result, it describes a series of entities defined by its form. The well-known architectural form of "Gothic cathedral" is characterized by a series of recognized design elements and methods, which may be aimed at building a place of worship, but "Gothic cathedral" actually means more.

Finally, as a discipline, architecture is the skill that architects need to be trained to master. The field of computer science borrows the term from disciplines that design physical objects, such as buildings and cities, which include widely recognized training and certification processes.

All three aspects of architecture apply to "real architecture" and computer science.

1. As a process

There are two important aspects of my definition: to integrate components together and apply them to a certain purpose.

Putting components together: this is what computer scientists do when considering modules, interfaces, dependencies, layering, abstraction, and component reuse. These are design patterns that computer scientists have been trained to consider when considering design challenges.

Used for a purpose: the design process must be shaped according to the intended purpose of the workpiece, for example, a hospital rather than a prison, a low-power processor rather than a supercomputer, a network in a car that hangs brake pedals on the brakes, not the Internet. As part of the architecture, the designer must address what the system cannot do (or does well) and what it will do.

In computer science, there is a danger in system design, which is well known as the second system syndrome, that is, to first build a system that may do something well, and then come up with an alternative that tries to do everything well.

two。 As a result

In the practice of architectural design, design usually produces a result. There are some exceptions, such as townhouses, where one design is built many times, but most buildings have only one. When describing results, the term architecture usually refers to a class of design represented by its most striking features (such as flying arches). This term applies to this abstract class, although the architect must describe the building to a very fine level before the building team takes over.

When computer scientists reused the term architecture, they redefined it a little bit. With regard to the Internet, many different networks are based on the same design: public global networks, which we call "the Internet", private networks belonging to enterprises, the military, etc., and special-purpose networks such as financial networks.

In this environment, the term architecture describes only part of what is built, and most of the design process for a given example takes place later in the process, which may be described by different groups.

3. As a discipline

"real" architects-those who design buildings-go to school to learn about the industry. As a layman, it is also instructive for us to understand their training methods. Architecture (as opposed to structural engineering) is not a design discipline based on basic science and engineering principles. Architects usually don't care about problems such as structural engineering and leave them to others.

Of course, technical considerations may need to enter the design process as early as possible, as architects deal with issues such as energy efficiency or earthquake resistance, but architects are mainly trained in the design process. They didn't study engineering, they studied architecture. They learn through case studies and need to look at a large number of buildings to see how suitable (or unsuitable) they are, whether they meet the needs of users, whether they are visually attractive, how to deal with design tradeoffs, and so on.

In computer science, we tend to want design to be based on a strong engineering foundation, restrictive theories, priority design options, etc., but (at least in the past) most of the business of system architecture is more similar to the business of architects (for example, learn from previous designs, ask what works well and what doesn't work, and ask if the design is in line with the goal).

We train computer scientists in theory and practice, but often do not approve of studying previous designs, which we think are "unscientific" or "not based on basic principles".

I am personally excited about trying to make the architecture more rigorous, but the phrase "intuitive" design should not be used against what we are doing today. Our discipline is a design discipline, just like architectural architecture, we should try to surpass it, not abandon it.

So, if the architecture of the Internet is not a complete specification, but only part of that specification, what is included in the architecture? We can talk about what is not included. Look at examples of all different networks based on Internet technology, or different regions of the global Internet, and try to discover their differences. We see differences in performance, resilience, tolerance for mobility, security concerns, and so on.

This level of design decisions are built on top of the core architecture, but are not specified by the core architecture. So what should we see in this core architecture?

02 elements of the network architecture

I have identified several criteria that can determine whether a particular issue rises to the architectural level: whether agreement is needed for the proper functioning of the system; whether it is convenient to agree on the issue; whether the issue defines the basic modularity or functional dependency of the system; or whether it is important that the problem is stable over time.

1. Issues that we must agree on for the normal operation of the system

For example, the Internet architecture is based on the use of packets, and it is assumed that packet headers always have the same format (different designs may allow different formats to be used in different areas, in which case, the architecture may choose to describe what architectural support is provided for the required transformation).

Another example is that when we first designed the Internet, we thought that design depended on a single global address space. It is now clear that this assumption is unnecessary and that there is no need to reach a global agreement on the unified meaning of the address. A network address translation device, or "NAT box", allows areas at the edge of the Internet to use private address space and translates these addresses into global routing addresses only when packets are transmitted out to the public Internet.

Interestingly, once Internet designers realize that they can use areas with different address spaces to build networks, there is no need to rush to extend the architecture to provide any support or guidance on how disjoint address spaces are interconnected.

two。 An issue that facilitates agreement.

We do not require applications to use the Domain name system (DNS), but because almost all application designers use it, it has been forced to be part of the Internet, although DNS was not part of the original design. Similarly, although it is not necessary for communication applications to use TCP, many applications rely on it so much that it becomes a mandatory part of the Internet.

3. Basic modularity of the system

Computer science uses the word module to describe the subcomponents of a system: a module has a specific interface through which it can be connected to other parts of the system, while the internal structure of the module under the interface is hidden and cannot be accessed from outside the module.

The designer of the module usually leaves the interface specification unchanged, because other modules may depend on the interface, but they are free to change the internal structure of the module because these are the private structures of the module. The Internet Protocol (IP) specification defines three module interfaces. It defines two layers of interfaces: the service interface (on which higher-level services are built) and the technical interface under the IP layer. It also (implicitly and partially) defines the AS interface: the interface between different AS in the Internet.

The service interface is the best-effort packet delivery model of the Internet: if the end node sends a packet and uses a valid destination IP address in the packet, in terms of current network capabilities, the Internet router will forward the packet to the destination interface defined by the IP address. The service interface hides all the details of how to use specific technologies to provide communication paths within the Internet.

Therefore, this service interface defines an abstract interface between the network and the end node. The technical details of this interface depend on the specific network technology used to connect to the end node and vary according to the specific circumstances of the technology, so these details are not part of the architectural specification.

4. Functional dependence

One aspect of the architecture is to define the functional dependencies of the design. I will use the Internet to illustrate what this means.

The basic operation of the Internet is very simple. Routers calculate the routing table in the background so that they know the route to all parts of the Internet. When they receive a packet, they find the best route and send the packet to that route. Although there are a lot of things running on the Internet, on the kernel, that's what it does. The normal operation of the Internet must depend on the normal operation of the router.

But what else does the Internet need to provide services? In fact, early designers of the Internet tried to limit the number of services used or components to run to ensure packet flow. The early design goals were as follows: "if two computers are connected to the network and each computer knows the address of the other computer, then they should be able to communicate." nothing else should be needed.

This design preference can be expressed as the goal of "least functional dependence". Some Internet designs suggest more functional dependence-they rely on more services to start and run, making basic communications successful. When something goes wrong, they are trading (perhaps) less flexibility for functionality.

5. Aspects of the system that are considered to be permanent

In systems like the Internet, we know that a lot of things are going to change. In fact, the ability to change, upgrade, and replace certain aspects of the system is the key to successful longevity.

But to some extent, some aspects seem to be permanent, and specifying them as part of the design can provide stable points around which the rest of the system can evolve.

At this point, I believe you have a deeper understanding of "what is in the network architecture?" you might as well do it in practice. Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report