18-04-2014, 02:20 PM
Re-Ordering Of Packets Using Retransmission Timer
Re-Ordering Of Packets.doc (Size: 399 KB / Downloads: 11)
Abstract
Most standard implementations of TCP perform poorly when packets are reordered. In this paper, we propose a new version of TCP that maintains high throughput when reordering occurs and yet, when packet reordering does not occur, is friendly to other versions of TCP. The proposed TCP variant, or TCP-PR, does not rely on duplicate acknowledgments to detect a packet loss. Instead, timers are maintained to keep track of how long ago a packet was transmitted. In case the corresponding acknowledgment has not yet arrived and the elapsed time since the packet was sent is larger than a given threshold, the packet is assumed lost. Because TCP-PR does not rely on duplicate acknowledgments, packet reordering (including out-or-order acknowledgments) has no effect on TCP-PR’s performance.
Due to the scheduling algorithms used, different packet sizes and arrivals times may result in the reordering of packets entering on a single interface. While the exact cause of packet reordering lies in the details of the scheduling algorithm, a more general reason is that parallel paths are employed for economic reasons; it is cheaper to build multiple moderate speed paths than a single very high-speed path. The result of seeking this increase in cost efficiency is that packets may sometimes be reordered. TCP-PR is a transport protocol compatible with multipath routing, hence it will not limit the drive for efficiency at the lower layers.
EXISTING SYSTEM:
The design of TCP’s error and congestion control mechanisms was based on the premise that packet loss is an indication of network congestion. Therefore, upon detecting loss, the TCP sender backs off its transmission rate by decreasing its congestion window. TCP uses two strategies for detecting packet loss. The first one is based on the sender’s retransmission timeout (RTO) expiring and is sometimes referred to as coarse timeout. When the sender times out, congestion control responds by causing the sender to enter slow-start, drastically decreasing its congestion window to one segment. The other loss detection mechanism originates at the receiver and uses TCP’s sequence number. Essentially, the receiver observes the sequence numbers of packets it receives; a “hole” in the sequence is considered indicative of a packet loss. Specifically, the receiver generates a “duplicate acknowledgment” (or DUPACK) for every “out-of-order” segment it receives. Note that until the lost packet is received, all other packets with higher sequence number are considered “out-of-order” and will cause DUPACKs to be generated. Modern TCP implementations adopt the fast retransmit algorithm which infers that a packet has been lost after the sender receives a few DUPACKs.
PROPOSED SYSTEM:
The basic idea behind TCP-PR is to detect packet losses through the use of timers instead of duplicate acknowledgments. This is prompted by the observation that, under persistent packet reordering, duplicate acknowledgments are a poor indication of packet losses. Because TCP-PR relies solely on timers to detect packet loss, it is also robust to acknowledgment losses as the algorithm does not distinguish between data (on the forward path) or acknowledgment (on the reverse path) losses.
The proposed algorithms only require changes in the TCP sender and are therefore Backward-compatible with any TCP receiver. TCP-PR’s sender algorithm is still based on the concept of a congestion window, but the update of the congestion window follows slightly different rules than standard TCP.However, significant care was placed in making the algorithm fair with respect to other versions of TCP to ensure they can coexist Packets being processed by the sender are kept in one of two lists: the to-be-sent list contains all packets whose transmission is pending, waiting for an “opening” in the congestion window. The to-be-ack list contains those packets that were already sent but have not yet been acknowledged. Typically, when an application produces a packet it is first placed in the to-be-sent list; when the congestion window allows it, the packet is sent to the receiver and moved to the to-be-ack list; finally when an ACK for that packet arrives from the receiver, it is removed from the to-be-ack list (under cumulative ACKs, many packets will be simultaneously removed from to-be-ack). Alternatively, when it is detected that a packet was dropped, it is moved from the to-be-ack list back into the to-be-sent list.
Transmission without Reordering
If we transmit a message without packet reordering, then If part of a message is lost during the transmission then we need to retransmit the entire message or we need to retransmit from that particular part.
Therefore, upon detecting loss, the TCP sender backs off its transmission rate by decreasing its congestion window. TCP uses two strategies for detecting packet loss. The first one is based on the sender’s retransmission timeout (RTO) expiring and is sometimes referred to as coarse timeout. When the sender times out, congestion control responds by causing the sender to enter slow-start, drastically decreasing its congestion window to one segment. The other loss detection mechanism originates at the receiver and uses TCP’s sequence number. Essentially, the receiver observes the sequence numbers of packets it receives; a “hole” in the sequence is considered indicative of a packet loss. Specifically, the receiver generates a “duplicate acknowledgment” (or DUPACK) for every “out-of-order” segment it receives. Note that until the lost packet is received, all other packets with higher sequence number are considered “out-of-order” and will cause DUPACKs to be generated.
Segmentation
Segmentation is the process of dividing the source code into small number of packets and transmitting the packets through the routers. We define certain limits for the size of the packets. We send the packet as 48 bytes data + 5 byte header information. The header information include source machine name, destination machine name, position of the packet and the related information. The message as packets is sent to the router where it splits and gets the destination address name and forwards the message’s packet to the destination. The destination also splits the packet information and then extracts the original message from the packets and sort it using the hash algorithm based on the index or position.
Timer control:
Whenever each and individual packet starts sending a timer is started. The system current time is taken as a start time and added with delay and it acts as a threshold time and if the threshold time exceeds the maximum elapsed time of the packet then the packet is retransmitted. If the time doesn’t exceed then the packet may arrive safe. If so the next packet is transmitted else the current packet is transmitted until it arrives safely. Thread concept is used to implement the timer.
Comparison Chart:
Comparision chart compares the throughput of Tcp without Packet Reordering with New Tcp With packet Reordering.The performance is shown by comparing the Transmission rate of existing system with proposed system.
POLYMORPHISM:
Polymorphism (from the Greek, meaning “many forms”) is a feature that allows one interface to be used for a general class of actions. More generally, the concept of polymorphism is often expressed by the phrase “one interface, multiple methods”. This means that is possible to design a generic interface to a group or related activities. This helps reduce complexity by allowing the same interface to be used to specify a general class of action. It is the compiler’s job to select the specific action as it applies to each situation.
SWING:
Swing components facilitate efficient graphical user interface (GUI) development. These components are a collection of light weight visual components. Swing components contain a replacement for the heavyweight AWT components as well as complex user-interface components such as trees and tables. Swing is a set of classes that provides more powerful and flexible components than are possible with the AWT. In addition to that the familiar components such as buttons, check box and labels swings supplies several exciting additions including tabbed panes, scroll panes, trees and tables. Even familiar components such as buttons have more capabilities in swing.