Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site timeinc.UUCP Path: utzoo!decvax!decwrl!greipa!pesnta!phri!timeinc!dwight From: dwight@timeinc.UUCP (Dwight Ernest) Newsgroups: net.ham-radio.packet Subject: Networking Notes from N5EG (TEXNET) (2 of 4) Message-ID: <370@timeinc.UUCP> Date: Wed, 31-Jul-85 15:57:02 EDT Article-I.D.: timeinc.370 Posted: Wed Jul 31 15:57:02 1985 Date-Received: Sat, 3-Aug-85 02:40:58 EDT Reply-To: dwight@timeinc.UUCP (Dwight Ernest) Distribution: na Organization: Time, Inc. - New York Lines: 135 [ Note: This series of articles was found on Compuserve and downloaded from HAMNET there on 21 July 1985 by Dwight Ernest KA2CNN 70210,523. ] An Introduction to Networks part 2 by T.C. McDermott, N5EG networks SIG, TPRS In the last article the distinction between a LAN and long- haul network was made. Also the performance problems associated with unreliable radio circuits and the End-to-end ACK was discussed. This article will present some other methods of information transfer possible. Another method of information transfer possible is "HOP-TO- HOP" acknowledge. In this method, each packet, or small group of packets, is acknowledged by every receiving station along the path from the sender to the receiver. For example, using the same terminology as the last article, S=sender, R=receiver, D1,D2, ... Dn = digipeaters. S : send packet D1 : ACK to S, repeat frame D2 : ACK to D1, repeat frame R : ACK to D2. Why does this method improve the throughput of the system ? Because now that the sender, S does not have to wait for the ACK to return from R, S may send another packet after the ACK from D1. That is, it may OVERLAP traffic. S : send packet 1 D1 : ACK S-1, repeat 1 D2 : ACK D1-1, repeat 1 S : send packet 2 R : ACK D2-1 D1 : ACK S-2, repeat 2 D2 : ACK D1-2, repeat 2 R : ACK D2-2 In other words, once that S has received it's acknowledge, it may transmit the next packet almost immediately (if D1 is on the same channel, it should wait for the D2 --> D1 ack first, if the D2 --> D1 link is on a different frequency [as in a network] then S could transmit the next packet immediately upon receiving the D1 ACK). What happens to the flow of information in the presence of errors in the transmission ? Lets look at an example: S : send packet D1 : ACK S, repeat packet D2 : gets garbled packet from D1 D1 : waiting for ACK from D2 D1 : retransmits packet to D2 after time-out D2 : ACK D1, repeat packet R : ACK D2 In article one, with this same exact scenaro, it took 25 packet times to accomplish the transfer of one packet from S to R through 2 digipeaters. In this example it took 6 packet times, a 417 % performance improvement in the transmission time. This performance improvement actually increases with more digipeaters, or worse RF paths. In fact with 8 digipeaters, and a 70 % probability of a sucessful packet-hop, this approach offers about a 10,000 % performance advantage ! Additional to the transit time advantage (time delay per packet in seconds-from-S-to-R), there is the advantage in throughput (bytes/sec.). The throughput in the HOP-TO-HOP ack method is NOT dependent upon the number of digipeaters. This is because as soon as the first digipeater has acknowledged the reception of the senders' packet, the sender is free to send the next packet, regardless of the number of hops in the path. Contrast this to the end-to-end hop method, where the throughput is very dramatically dependent upon the number of hops in the path. What is required of the digipeaters in the network to handle this type of repeating function, i.e. HOP-TO-HOP digipeating? Each repeating station is required to contain a fair amount of memory, enough to buffer every packet that it digipeats until that packet is acknowledged by the next repeater. Since the repeater may receive packets from several different stations at nearly the same time, and perhaps some of them are occaisonally garbled in transmission to the next repeater, then they must be stored in repeater memory until they are sucessfully passed to the next repeater. The repeaters must also implement some sort of flow control. If packets arrive faster than they can be sent, then the buffer memory could overflow. Thus the repeater must be able to tell the previous repeater, or sender, that the packet is rejected, and to stop sending. When the repeater clears the messages, and thus frees up some memory, then it re-initiates packet transfer from the previous station. This finite memory size limitation actually causes the end-to-end performance of the network to become more heavily dependent upon the quality of the RF links. Thus performance of the HOP-TO-HOP system is dependent upon the probability of RF path-hop success, but is not heavily dependent upon the number of repeaters in the path, unlike the END-TO-END scheme. This was taken into account when I stated that the performance of the HOP-TO-HOP ack with 8 digipeaters, and 70% path-hop probability of success was about 10000% better than the END-TO-END method. There is one intetersting dis-advantage to the HOP-TO-HOP scheme, although it is not a strong disadvantage, and that is the issue of data integrity. In the END-TO-END ack ( EEA ) scheme when the receiver acquired the data, the ACK was sent. Thus when the sender receives the ACK, there is certainty that the data was in fact received. In the HOP-TO-HOP ack ( HHA ) all that is known when the sender receives the ack, is that the first digipeater received the ack. A failure in the network could still block the receiver from receiving the data - thus the sender was ACK'ed even though the receiver had not received the data. This is not as serious a problem as it sounds at first, however, since there is still a method to determine whether the data is received at the final destination correctly. This is handled by layer 4 of the OSI model - the transport layer. It is responsible for data integrity in the real world of unreliable networks. One protocol for doing this is familiar to those of us with AX.25 units, and this is the Virtual Circuit protocol. Each of us is intimately familiar with virtual circuits. Any time that you connect to another station, you have generated a virtual circuit. You and the receiver communicate on a common channel with everybody else. But your traffic only goes to your desired destination, not all destinations on the channel. Thus there is a circuit between you and the connected receiver on a channel with a (theoretically) unlimited number of circuits. This is called a virtual circuit. The only reason there is a circuit is because you and the connected receiver previously agreed to a connection. The circuit is dissolved when you and the receiver agree to this (disconnect). The next article in this series will deal with the virtual circuit protocol on the network, as opposed to the virtual circuit between the sender and the network, or between the receiver and the network, which is something different. -- ----------------------------------------------------------------------------- --Dwight Ernest KA2CNN \ Usenet:...vax135!timeinc!dwight Time Inc. Edit./Prod. Tech. Grp., New York City Voice: (212) 554-5061 \ Compuserve: 70210,523 Telemail: DERNEST/TIMECOMDIV/TIMEINC \ MCI: DERNEST "The opinions expressed above are those of the writer and do not necessarily reflect the opinions of Time Incorporated." -----------------------------------------------------------------------------