2 SUNA data transmission method
There are two data transmission methods in packet switching networks: datagram mode and virtual circuit mode. The TCP/IP protocol uses datagrams to transmit data. In the datagram mode, there is no need to establish a fixed connection from the source host to the destination host between nodes. Each packet sent by the source host independently selects a transmission path. Each packet can reach the destination host from the source host through different transmission paths in the communication subnet. Since the transmission path is not fixed, the datagram transmission method cannot guarantee that the packets between the source host and the destination host arrive in order.
Unlike the TCP/IP protocol, SUNA uses an end-to-end virtual circuit to transmit data. A virtual circuit refers to a channel established by software based on network addresses from a source node to a destination node. The end-to-end virtual circuit means that for data with the same source and destination node addresses but different service types, different virtual circuits will be constructed to transmit them. Before using the virtual circuit method to send packets, a logical path needs to be established between the sender and the receiver. Each packet contains, in addition to data, a virtual circuit identifier. Each node on the pre-built path knows where to direct these packets, and routing decisions are no longer needed. Since the transmission path is fixed, the virtual circuit method can ensure that data packets between the source host and the destination host arrive in order.
3SUNA’s reliable data transmission mechanism 3.1 Problems with the traditional sliding window protocol
The TCP/IP protocol uses sliding windows to ensure reliable transmission of data. If SUNA’s data transmission directly uses the traditional TCP/IP sliding window mechanism, there will be a problem of low network utilization. This is because during SUNA’s data transmission process, as long as the data packets are not lost, there will be no misordering of data packets. Therefore, as long as the receiver receives misordered packets, it can determine that a data packet has been lost. If the traditional TCP/IP sliding window mechanism is used directly, even if the receiver knows that the data is lost, it cannot notify the sender to retransmit, but must wait until the sender’s retransmission timer expires before retransmitting the lost frame.
The existing problems are explained in detail below. Figure 4 is a receiving window of a 3-bit sliding window.
The lower bound of the receiving window is 2 and the upper bound is 5. At this time, the receiver expected to receive package 2#, but received package 3#, and then received package 4# and package 5#. Because the three received packages were all within the receiving window, they were received by the receiver. . The receiver has received packages 6# and 7# one after another. Since package 2# has not been received, the receiving window cannot slide forward, and the 6# and 7# packages just received are not within the receiving window, so they are They are discarded.When the sender’s timeout timer expires, the sender retransmits
2# package, after receiving 2# package, the receiving window scrolls forward, and you can continue to receive 6# package, 7# package,…
As can be seen from the above example, if the traditional TCP/IP sliding window mechanism is directly used, even if the receiver knows that 2# has been lost, it cannot notify the sender to retransmit, but must wait until the sender’s retransmission timer overflows. As a result, the receiving window cannot scroll forward, so the 6# packet and 7# packet outside the window have to be discarded. This not only reduces network throughput, but also increases the transmission delay of data packets.
As can be seen from the above example, if the traditional TCP/IP sliding window mechanism is directly used, even if the receiver knows that 2# has been lost, it cannot notify the sender to retransmit, but must wait until the sender’s retransmission timer overflows. As a result, the receiving window cannot scroll forward, so the 6# packet and 7# packet outside the window have to be discarded. This not only reduces network throughput, but also increases the transmission delay of data packets. 3.2 Improved sliding window protocol
Because SUNA is a hierarchical network architecture and does not have a data link layer, reliable data transmission can be achieved simply by using the end-to-end sliding window mechanism. The sending window and receiving window are set at both ends of the virtual circuit and are used to control the rhythm of the sender sending packets and the receiver receiving packets respectively.
The main difference between the improved sliding window protocol and the traditional sliding window protocol is that the receiver can determine whether there is a packet loss. Once a packet is lost, it will immediately notify the sender to retransmit without waiting for the sender’s retransmission timer to overflow. Just reposted. The receiver determines whether the data packet is out of order based on the data packet sequence number. In order to avoid the interference of retransmitted data packets, the following improvements need to be made: mark the retransmitted data packet on the sender; set a variable CURRENT on the receiver, using To represent the packet number of the most recently received non-retransmitted packet.
First look at the implementation mechanism of the receiver. Assume that the size of the sliding window is 8. At a certain moment in the transmission process, the receiver receives a data packet with packet number r. When the data packet is a non-retransmitted data packet and the packet number r is within the receiving window, the receiver The operation is different from the traditional sliding window protocol. For the package number r, perform the following operations: