Host To Host Congestion Control For TCP
Host To Host Congestion Control For TCP
Host To Host Congestion Control For TCP
ABSTRACT
The
Transmission Control Protocol (TCP) carries most Internet traffic, so performance of the Internet depends on how well TCP works.
The
proposed solutions focus on a variety of problems, starting with the basic problem of eliminating the phenomenon of congestion collapse.
LITERATURE SURVEY
Internet
is an interconnection of networks.
There
are 2 types of loss that can occur in the network. Wireless loss: Wireless loss of packets is because the connection between computer is wireless. Congestive loss: Congestive loss is because of lot of packets in the network.
LITERATURE SURVEY
Performance
of the Internet depends on how well TCP works. is congestion? Higher rate of inputs to a router than outputs are effects of congestion? Delays Loss
What
What
LITERATURE SURVEY
When
too many packets are contending for the same link The queue overflows Packets get dropped Network is congested! should provide a congestion control mechanism to deal with such a situation.
Network
SYSTEM ANALYSIS
EXISTING SYTEM
System Drawback
Congestion collapse Slow start rate(bandwidth not utilized) Retransmission took lot of time Detects and retransmits only one packet Could not detect the type of loss No packet reordering
TCP Reno
TCP New Reno SACK TCP ACK TCP
If one of the packet is lost, all the packets are resent. Congestion increases. Repeat: Only one packet which was lost was resent. all the above sliding window only flow control mechanism was present. was no slow start and congestion avoidance.
Selective
In
There
PROPOSED SYSTEM
In
the sliding window algorithm, both the hosts maintain a data structure called a window. receiver will initially give the maximum number of packets that it can receive. sender starts with a small sized window and gradually increases the size of the window. size of the window is increased when ACKs are received.
The
The
The
Receiver will give the window size to sender. Sender begins to send the packet (slow start). If receiver gets the packet, send ACK.
If sender receive ACK, then it doubles the size of window and sends data again. Else sender retransmits the packet.
SYSTEM DEVELOPMENT
HARDWARE
REQUIREMENT:
System : Pentium IV 2.4 GHz. Hard Disk : 40 GB. Monitor : 15 VGA Colour. Ram : 256 Mb.
SOFTWARE
REQUIREMENT:
Operating system : Windows XP Professional. Coding Language: Java. Tool Used : Eclipse.
SYSTEM DESIGN
SYSTEM ARCHITECTURE
RECIEVER NODE 1
ACK OR NACKS
Router NODE 1
ACK OR NACKS
RECIEVER NODE N
CONTROL TREE
SENDER NODE
RECIEVER NODE 1
ACK OR NACKS
Router NODE N
ACK OR NACKS
RECIEVER NODE N
DATA CHANNEL
CLASS DIAGRAM
SERVER SIDE server Main Window Thread
main()
AckStatus
CLIENT SIDE
InitializeComponents() EventHandlerReceive()
ROUTER Thread Router FE Router String filename String ReceiveInfo String pktFlowInfo String AckInfo run() SendData() ReceiveMsg() getIP() SendAck() ReceiveAck()
IntializeComponents() EventHandlerReceiver()
Router 1
Router 2
Router N
RECEIVER 1 RECEIVER N
RECEIVER 1
RECEIVER N
RECEIVER 1
RECEIVER N
DATA PROCESS
CONGESTION CONTROL
DATA TRANSMISSSION
RECEVIER NODE
DATA QUEUE
PACKET TYPES
CONFIRM DELIVERY
connect
data data
Cwnd size gets doubled
ack
data
data ack
ack
IMPLEMENTATION
TCP SEGMENT
TCP Segment is a class which acts like TCP Packet. It has following information:
Sequence no. of packet Length of the packet Acknowledgement Information about error in the packet.
MODULE 1: SERVER
Class TCPSender { int lastByteSent=-1; int lastByteAcked=-1; int congWindow= [value]; int send_mode= SLOW_START; int timer=3; int ssThresh=65535; processAcks(TCPSegement[ ] acks){}
processAckCongestionAvoidance(){}
onExpired TimeOutTimer(){}
.}
DESCRIPTION
It is a class which is used for sending information. It consists of information about the last byte sent. In this module we are setting slow start rate.
MODULE 2- CLIENT
Code snippet:
Class TCPReceiver { TCPSegment buffer[memory] lastByteReceived nextByteReceived receiverWindow lastBufferedIndex getRcvWindow(){.} receive(){.} outOfSequence(){} }
//variables used
in this class
DESCRIPTION
It is a class which is used for receiving the information. It consists of following
Array of TCPSegment which acts as a buffer to store the data. Information about the last byte received. Next byte needed. Receiver window size.
MODULE 3- ROUTER
Class Router1
getMessage(String msg[]){.} giveMessage() {} callMe() {} .}
Class sendData extends Thread { //send the data that is received } Class processAck extends thread { //get ack and update display //give this ack to sender }
DESCRIPTION
It is a class which is used for sending as well as receiving the information. It contains 2 classes:
sendData: To send the data that is received. ProcessAck: to get ack from client and give ack to server.
SCREEN SHOTS
CONCLUSION
Design of the system based on controlling the packet loss due to the traffic and congestion. Sliding window algorithm is used for congestion control.
Improved performance.
Enforces flow control and congestion control between sender and receiver.
FUTURE ENHANCEMENT
The
proposed system has been implemented for text files only. can be enhanced for other types of filesimages, audios and videos.
It
REFERENCES
Alexander Afanasyev, Neil Tilley, Peter Reiher, and Leonard Kleinrock, Host-to-Host Congestion Control for TCP, 2010 IEEE paper. http://lasr.cs.ucla.edu/afanasyev/data/files/Afanasye v/Host-tohost%20congestion%20control%20for%20TCP.pdf K.-C. Leung, V. Li, and D. Yang, An overview of packet reordering in transmission control protocol (TCP): problems, solutions, and challenges, IEEE Trans. Parallel Distrib. Syst., vol. 18, no. 4, pp. 522535, April 2007.
REFERENCES CONTD.
K.-C. Leung, V. Li, and D. Yang, An overview of packet reordering in transmission control protocol (TCP): problems, solutions, and challenges, IEEE Trans. Parallel Distrib. Syst., vol. 18, no. 4, pp. 522535, April 2007.
J. Postel, RFC793transmission control protocol, RFC, 1981.
THANK YOU