1. Tcp is an example of OSI Transport layer Connection-Oriented and reliable-delivery Communication protocol
2. TCP features:
• Sequencing & acknowledgment of Data. (Seq-Ack=numbering packets)
• Defined State Machine protocol (step1: open connection, step2: data flow step3: retransmit, step4: close connection)
• Congestion Detection and Avoidance mechanisms (means flow Control).
During Transmitting host (Tx) and Receiving host (Rx) TCP communication they feel/sense (TCP uses counters and timers based on the arrival of Seq-Ack packets) traffic slowness due to high network latency or low bandwidth or trouble with either one of Tx/Rx hosts…etc. Then, they will try “flow Control” trick. Communication will slow down when network is busy and it will change to fast when network is not-busy. In case some TCP packets got dropped during comm.. because the network is busy, hosts will Re-transmit dropped/missed packets. Remember, that in TCP each packet has a unique number. For example, Packet1 number is xxx811, packet2 is xxx812 packet3 is xxx813. Under TCP, Transmitting host will not send packet2 xxx812 until he hears (receive Ack packet) from his remote host that packet1 xxx811 was received successfully. And in the same time if remote host received packet3 xxx813 after packet1 xxx811 (packet2 xxx812 dropped because heavy network traffic). Remote host will send Re-transmit packet requesting packet2 xxx812 (He knows packet numbers are not in order)
So, the story you just heard above is called in the TCP/IP world “traffic flow control”
Wa jazaka allahu khairan,