I propose to “dream”, and what “would be if” the inventors of digital communication systems knew about the role of this type of communication in the future and approached their work “more responsibly”, immediately trying to invent the most universal digital communication protocol.
I ask those who have their own thoughts, write them down and, after reading the article, reflect in the comments.
So, let's try to roll the dice again:
Attention
All ideas and algorithms described in this article are the result of my independent and completely independent intellectual activity. As an author, I give permission to freely use, change, supplement all ideas and algorithms to any person or organization in any type of project, with the obligatory indication of my authorship (Balyberdin Andrey Leonidovich).
Modern technologies are most likely not the most effective (of all theoretically possible), but when trying to find other options, most come to modifications of existing ones or cannot give an answer at all.
I think that this state of affairs is due to the structure of the brain and the way of human thinking. If you see something in the picture with random lines, then the next look at the picture will find this image almost immediately. Due to the inertia of thinking, with each next time it will be more and more difficult to consider a different image. Further, technical progress comes into play, and it is very similar to railway transport. Once folded, it is almost impossible to repeat the choice, it is easier to implement a "crutch" that solves the problem.
So let's start creating an easy-to-implement, flexible and versatile telecommunications paradigm. Below it must be compatible with all existing and theoretically possible digital data transmission channels. From above, the most complete satisfaction of the requests of all theoretically possible consumers, provided that these requests are supported "from below". In other words, the communication system itself should not be a bottleneck. I note right away that "perfection" is unattainable, but this does not negate the need to strive for it.
The ideal communication system is described quite simply:
- The ability to instantly establish a connection between any subscriber and any subscriber at any time.
- Instant and error-free message delivery from one subscriber to another.
- , .
If you design the system from the bottom up, then the first question will be:
What type of communication channel needs to be created.
Everything is simple here: strictly sequential data transfer with a constant and sufficient speed for the consumer. All other types of channels can be easily obtained from this type.
The next (second) question:
System interface to physical communication channels and system users
At the dawn of telecommunication systems, a bit interface was mainly used. At present, the "symbol" is selected as the information carrier; it, in contrast to the bit interface, carries more than one data bit and may have an additional property "type".
If we consider the types of transmitted information, then we will use the concept of a symbol as a carrier of information, then the transmitted characters can be divided into four types (groups):
- User data.
- Custom control characters.
- Service data.
- Service control characters.
This set of symbol options is quite versatile when building various information structures. Service symbols are intended for building calls to the communication system. Custom symbols for communication between users. The presence of separate service symbols is somewhat redundant, but it is justified by the need for a control interface in almost all communication systems.
The minimum amount of information encoded by a symbol is one bit (digital communication). There is no need to initially fix the information capacity of various types of symbols, even harmful. It is enough to fix the communication parameters using a minimum set of 4 types of symbols, and the rest of the receiver and transmitter "negotiate" when establishing a direct connection. From a physical (electronic or software) point of view, at the moment of switching on, the interface to the telecommunications system looks like:
- Symbol presence signal (1 bit)
- Character type (2 bits)
- Transmitted data (1 bit, and then in accordance with the information capacity)
- Synchronization signal (for synchronous electronics).
In modern communication systems, such unity is not provided, although for computer communication an IP packet and the rules for its formation can be considered an analog.
The third question will be:
Distribution of the physical channel between users
For real communication systems with a sufficiently large number of subscribers, it is unprofitable to build connections according to the scheme each with each one and it is necessary to implement a communication scheme using intermediaries. In the process of performing the relay function, intermediaries are forced to separate the channels connecting them between "their" and "foreign" data.
At the time of the birth of modern communication systems, the following ways of sharing a communication channel were the most common:
- Random access (radio communication, intercom).
- Packet switching (telegraph).
- Temporary allocation of fixed bandwidth (telephony).
None of these methods satisfies the requirements of an ideal communication system to a significant extent.
Bandwidth provisioning works best, but there are flexibility issues in terms of the speed of the provided channel, the time to create the channel, and the efficiency of using the resources of the physical channel.
Packet switching is efficient in resource utilization, but there are problems with speed consistency, channel consistency, and data loss. Arbitrary access is generally possible only for a small number of subscribers, when exceeding which (or the exchange rate), the efficiency drops to unsatisfactory values.
For maximum compliance with the ideal communication system, it was necessary to "re-invent" the technology based on the temporary allocation of a part of the bandwidth of the physical channel. It was necessary to solve the problem of flexibility in the speed of the created data transmission channel, its quick creation and deletion.
Multiplexing (splitting) a communication channel
To illustrate a new way of dividing a physical channel into components, we will divide a single channel into parts.
Stream R in 1/3, stream G in ¼ and stream B in 1/5 of the original physical channel bandwidth. The remaining bandwidth can be used for other needs.
The picture shows how the original streams are decomposed into a total stream. Orange - Stream R, Green Stream G, Blue Stream B, and Black free bandwidth. (The symbols for the total flow are taken sequentially from the left side).
(The algorithm is symmetrical, the same for the receiver and transmitter)
The general principle of separation is quite transparent:
- We sort the created channels in descending order of transmission speed.
- For each channel, create a counter (regulates the transmission rate) and a buffer of transmitted symbols.
- Each cycle of symbol synchronization in each counter add a constant proportional to the baud rate, constant = V (required) / V (physical stream).
- Each clock cycle we check the counters, in the order of decreasing speeds of the channels attached to them, for overflow (value greater than one), until we find the first counter containing a value greater than one.
- We subtract one from the found counter, and add one character from the buffer of transmitted characters to the total stream (created in conjunction with the counter).
The multiplexing algorithm will be described in more detail at the end of the article, it is recommended for reading by specialists in communication technologies.
We see that if the generated streams have the same speed, then the usual PDH algorithm (E1, etc.) is obtained from the telephone number. If the flow rate is equal to 100% of the channel bandwidth, packet switching will result.
After receiving, the data must be sent to another channel and this is done by the switch. Building a switch for a synchronous (uniform) flow is a trivial task. The capacity of such a switch will depend only on the volume of "transistors" (for modern microcircuits in the region of a million simultaneous connections). The switching frequency of transistors will depend only on the rate of arrival of symbols, and it depends on the information capacity of the symbol. The ability to change the information capacity of symbols makes it possible to adjust the value of the switch clock frequency, and the parallel processing of each of the physical channels makes it independent of the number of physical channels.
This type of multiplexing and switching can be called a synchronous symbolic hierarchy.
And the last question:
Management of the communication environment
For modern computer communication, the most common set of protocols is TCP / IP. This protocol is focused on packet switching; it is not optimal for a serial link. Considering the initial purpose of the new communication system (the communication basis of the dataflow processor - will be described in the following articles), the most optimal would be a flexible and universal language oriented towards serial communication channels or an extension of an existing programming language. When creating a network control language, one should be guided by a paradigm in which a computing system is the combination of various devices in a digital communication network.
Why do you need a new type of network?
The very first is the versatility and simplicity of the algorithms. The simplicity of the device of high-speed switches, there are no fundamental restrictions either on the number of channels or on their speed, will significantly improve the characteristics of multicore computing systems (communication between cores and modules).
Where is a significant increase in speed and number of channels required?
And here everything is simple - you need to solve the existing problem of tightening the computing system into one crystal, significantly increase the speed of inter-crystal interaction. At present, separate, independent computer systems (independent computers) interact in a computer network. The new type of network should significantly push (accelerate) the beginning process of "migration" of the concept of "computing system" from a physical entity (a box on a table) to a logical combination of many computing machines (cores) into a distributed computing system. When creating a language for network interaction, one should be guided by a paradigm in which a computing system is the combination of various devices in a digital communication network.
The selection process is currently underwaynew computing paradigm. The old one (von Neumann) has exhausted its potential and is stagnating, while the new one has not yet emerged from the large number of existing “ideas”. I propose to refine the described communication paradigm and use it as the basis for the future unified information environment.
And yet, it is necessary to come up with a name for the new network, otherwise "SkyNet" will stick and the AI's character will be harmful.
Algorithm for dividing (multiplexing) a physical channel of a channel into separate virtual channels:
- — . , , , . : , , . . ( ). ( ) . .
- , () . «» , ( ). .
- . , . «», . , ( ) «». «» , «». , 2.5 . 3 .
- «» , . , 0.01% , . ( ).
- ( ) «» . . . , .
- , ( ). ( ) () . , . .
- ( ), . , . , «». ( ..), .
- «» . «» . «», .
During transmission, the total flow must be disassembled in switches not only because of the re-arrangement of virtual channels between physical channels, but also because of the potential need to add or remove empty characters, which is possible only at the time of reading or writing the virtual channel buffer. You can add the ability to create a total flow of the "tunnel" that cannot be disassembled in intermediate switches. Such a stream will not be parsed into intermediate switches into components and processed as a user virtual circuit. Creation of a virtual "tunnel" is possible if you create a summary stream using alternative service symbols (the algorithm remains the same, each tunnel level requires its own set of service symbols).
On the receiving side, it will be necessary to carry out an additional procedure for disassembling such a channel into its components (the number of such “analyzes” can be considered the level of the “tunnel”).
It is beneficial to create "tunnels" due to the decrease in the number of virtual channels and, accordingly, the required buffers in intermediate switches or in places where very large information flows are switched (and the switching delay proportional to the virtual channel speed will be less).
Algorithm for creating a virtual channel
- At the initial moment of time, only the service stream exists between the transmitter and the receiver (the previously created virtual channels are not counted). The transmitter has a buffer in which the data necessary to create a new virtual channel are accumulated.
- ( ), ( ) . , ( ) , , ( ) () . «» .
- , . , .
- , « ». , « », . « » .
- (), , () (timeout) « ». « », .
- , , . , , .
- « » , «» - . ( ), «» ( ).
- : ( , , ) ( ). ( ) . , .
- , , ( ). , ( ), «» . , .
- , . , , . , . , . , 8 ( ), IP6 16 , . (-).
- , , . DNS , ( : IP ) . , . , () , ( , — ).
- , () - . , , . , . , . ( ), () , , . ( , ) . , . ( ), ( ).
A network based on synchronous symbolic switching can revolutionize the entire information environment.
Computing systems will finally turn from a personal "calculator", which they basically are now, into a single information dimension (space) of our world. The user's computer will simply become a device for accessing this world and possibly a device for storing and processing confidential information. The role of network equipment in computing architecture will change significantly. Nowadays, basically, a network is a way to connect separate computers (each of them has its own OS) and the applications running on them. In the future, the concept of a separate computing machine (as a physical object) will not exist, the computing system will become completely virtual, it will be "smeared" over various hardware resources of the network.The issue of administration (resource management by access parameters of a computing system) will completely move into the network management plane connecting individual executive modules.