Port 0 Port 1 Port 2 Port 3 Port 4 Port
2.6 Routing and Switching
2.6.3.1 Message transmission between neighboring processors
Message transmission between two directly connected processors is implemented as a series of steps. These steps are also calledprotocol. In the following, we sketch a
simple example protocol [94]. To send a message, the sending processor performs the following steps:
1. The message is copied into a system buffer.
2. A checksum is computed and aheaderis added to the message, containing the checksum as well as additional information related to the message transmission. 3. A timer is started and the message is sent out over the network interface. To receive a message, the receiving processor performs the following steps:
1. The message is copied from the network interface into a system buffer. 2. The checksum is computed over the data contained. This checksum is compared
with the checksum stored in the header. If both checksums are identical, an acknowledgment message is sent to the sender. In case of a mismatch of the checksums, the message is discarded. The message will be re-sent again after the sender timer has elapsed.
3. If the checksum are identical, the message is copied from the system buffer into the user buffer, provided by the application program. The application program gets a notification and can continue execution.
After having sent out the message, the sending processor performs the following steps:
1. If an acknowledgment message arrives for the message sent out, the system buffer containing a copy of the message can be released.
2. If the timer has elapsed, the message will be re-sent again. The timer is started again, possibly with a longer time.
In this protocol, it has been assumed that the message is kept in the system buffer of the sender to be re-send if necessary. If message loss is tolerated, no re-send is necessary and the system buffer of the sender can be re-used as soon as the packet has been sent out. Message transmission protocols used in practice are typically much more complicated and may take additional aspects like network contention or possible overflows of the system buffer of the receiver into consideration. A detailed overview can be found in [125, 157].
The time for a message transmission consists of the actual transmission time over the physical link and the time needed for the software overhead of the protocol, both at the sender and the receiver side. Before considering the transmission time in more detail, we first review some performance measures that are often used in this context, see [94, 41] for more details.
• Thebandwidthof a network link is defined as the maximum frequency at which data can be sent over the link. The bandwidth is measured in bits per second or bytes per second.
• Thebyte transfer timeis the time which is required to transmit a single byte over a network link. If the bandwidth is measured in bytes per second, the byte transfer time is the reciprocal of the bandwidth.
2.6 Routing and Switching 65
• Thetime of flight, also referred to aschannel propagation delay, is the time which the first bit of a message needs to arrive at the receiver. This time mainly depends on the physical distance between the sender and the receiver.
• Thetransmission timeis the time needed to transmit the message over a network link. The transmission time is the message size in bytes divided by the bandwidth of the network link, measured in bytes per second. The transmission time does not take conflicts with other messages into consideration.
• Thetransport latencyis the total time that is needed to transfer a message over a network link. This is the sum of the transmission time and the time of flight, capturing the entire time interval from putting the first bit of the message onto the network link at the sender and receiving the last bit at the receiver.
• Thesender overhead, also referred to asstartup time, is the time that the sender needs for the preparation of message transmission. This includes the time for com- puting the checksum, appending the header, and executing the routing algorithm.
• Thereceiver overheadis the time that the receiver needs to process an incoming message, including checksum comparison and generation of an acknowledgment if required by the specific protocol.
• Thethroughputof a network link is the effective bandwidth experienced by an application program.
Using these performance measures, the total latencyT(m)of a message of sizem
can be expressed as
T(m)=Osend+Tdelay+m/B+Or ecv (2.1)
where OsendandOr ecvare the sender and receiver overhead, respectively,Tdelayis
the time of flight, and Bis the bandwidth of the network link. This expression does not take into consideration that a message may need to be transmitted multiple times because of checksum errors, network contention, or congestion.
The performance parameters introduced are illustrated in Fig.2.26. Equation (2.1) can be reformulated by combining constant terms, yielding
overhead time sender receiver network total time
sender overhead transmission time transmission time transport latency receiver total latency time of flight
Fig. 2.26 Illustration of performance measures for the point-to-point transfer between neighboring nodes, see [94].
T(m)=Tover head+m/B (2.2)
withTover head =Tsend+Tr ecv. Thus, the latency consists of an overhead which does
not depend on the message size and a term which linearly increases with the message size. Using the byte transfer timetB=1/B, Eq. (2.2) can also be expressed as
T(m)=Tover head+tB·m. (2.3)
This equation is often used to describe the message transmission time over a net- work link. When transmitting a message between two nodes that are not directly connected in the network, the message must be transmitted along a path between the two nodes. For the transmission along the path, several switching techniques can be used, including circuit switching, packet switching with store-and-forward routing, virtual cut-through routing, and wormhole routing. We give a short overview in the following.