|
Data transmission is, very generally speaking, the conveyance of any kind of information from one space to another. Historically this could be done by courier, a chain of bonfires or semaphores, and later by Morse code over copper wires.
In recent computer terms, it means sending a stream of bits or bytes from one location to another using any number of technologies to do so. Among them are copper wire, optical fibre, radio-link, laser, radio or infra-red light.
A related concept to data transmission is the data transmission protocol used to make the data transfer legible. Current protocols favour packet based communication.
Effectiveness
For a protocol to be effective it needs to be specified in such a way, that engineers, designers, and in some cases software developers can implement and/or use it. In human-machine systems, its design needs to facilitate routine usage by humans. Protocol layering accomplishes these objectives by dividing the protocol design into a number of smaller parts, each of which performs closely related sub-tasks, and interacts with other layers of the protocol only in a small number of well-defined ways.
Protocol layering allows the parts of a protocol to be designed and tested without a combinatorial explosion of cases, keeping each design relatively simple. The implementation of a sub-task on one layer can make assumptions about the behavior and services offered by the layers beneath it. Thus, layering enables a "mix-and-match" of protocols that permit familiar protocols to be adapted to unusual circumstances. In the realm of computing, an email protocol like Simple Mail Transfer Protocol (SMTP) can be adapted to send messages to aircraft. Just change the underlying V.42 modem protocol to the INMARS LAPD data protocol used by the international marine radio satellites.
This paragraph informally provides some examples of layers, some required functionalities, and some protocols that implement them, all from the realm of computing protocols. A layer in charge of presentation might describe how to encode text (ie: ASCII or Unicode). A protocol like SMTP, may (among other things) describe how to inquire about electronic mail messages. A sub-task of error detection and either message correction or retransmission may be performed by the Transmission control protocol (TCP), while the related sub-task of addressing implemented by the Internet Protocol(IP) will pair up these two protocols giving rise to the familiar acronym TCP/IP. These examples may assume some point-to-point connectivity offered by point-to-point protocol (PPP) implemented in the lower-level Data link layer. At the lowest level is the sub-task involving the electrical encoding/decoding of bits into/from voltages performed in the Physical layer. These examples motivate the need to specify some software architecture or reference model that systematically places each subtask into its proper context.
The reference model usually used for protocol layering is the OSI seven layer model, which can be applied to any protocol, not just the OSI protocols initially sanctioned by the International Organization for Standardization (ISO). In particular, the Internet Protocol can be analysed using the OSI model.
Reliability
Assuring reliability of data transmission involves error detection and correction, or some means of requesting retransmission. It is a truism that communication media are always faulty. The conventional measure of quality is the number of failed bits per bits transmitted. This has the wonderful feature of being a dimensionless figure of merit that can be compared across any speed or type of communication media.
In telephony, links with bit error rates of 10-4 or more are regarded as faulty (they interfere with telephone conversations), while links with a BER of 10-5 or more should be dealt with by routine maintenance (they can be heard).
Communication systems correct errors by selectively resending bad parts of a message. For example, in TCP (the internet's Transmission Control Protocol), messages are divided into packets, each of which has a checksum. When a checksum is bad, the packet is discarded. When a packet is lost, the receiver acknowledges all of the packets up to, but not including the failed packet. Eventually, the sender sees that too much time has elapsed without an acknowledgement, so it resends all of the packets that have not been acknowledged. At the same time, the sender backs off its rate of sending, in case the packet loss was caused by saturation of the path between sender and receiver. (Note: this is an over-simplification: see TCP and congestion collapse for more detail)
In general, the performance of TCP is severely degraded in conditions of high packet loss (more than 0.1%), due to the need to resend packets repeatedly. For this reason, TCP/IP connections are typically either run on highly reliable fiber networks, or over a lower-level protocol with added error-detection and correction features (such as modem links with ARQ). These connections typically have uncorrected bit error rates of 10-9 to 10-12, ensuring high TCP/IP performance.
|