TheHingineer

  • Computer Networks


  • CN Part-1

  • CN Part-2

  • CN Part-3

  • CN Part-4

  • CN Part-5

  •  Flow Control and Error Control in Transport Layer

     Transport Layer par Flow aur Error Control kyu zaroori hai?

    • Network Layer sirf “Best-effort” delivery provide karti hai. Packets raste mein corrupt ho sakte hain, drop ho sakte hain, ya out-of-order pahunch sakte hain.

    • Saath hi, sender computer bohot powerful aur high-speed fiber connection par ho sakta hai (e.g. 1 Gbps), jabki receiving device ek slow mobile phone ho sakta hai (e.g. 10 Mbps). Agar sender bina ruke full speed par data bhejta rahe, toh receiver ka buffer turant overflow ho jayega aur packets drop hone lagenge.

    • Is problem ko solve karne ke liye Transport Layer (specifically TCP) End-to-End Flow Control aur Error Control provide karti hai.

     1. Flow Control in Transport Layer (Sliding Window Protocol)

    • Flow control ka simple rule hai: “Receiver ki speed ke hisab se Sender ko control karna” taaki receiver buffer overflow na ho.

    • TCP Byte-Oriented Sliding Window Protocol use karta hai.

    • Receiver har Acknowledgment (ACK) packet ke header mein ek 16-bit field bhejta hai jise Window Size (Advertised Window – rwnd) kehte hain.

    • rwnd batata hai ki receiver ke buffer mein is waqt kitne bytes receive karne ki free space bachi hai.

    • Sender kabhi bhi rwnd se zyada unacknowledged data transmit nahi kar sakta.

    Sliding Window ka Working Flow:

    Sender                                                      Receiver (Buffer = 4000 Bytes)
      |                                                                    |
      |========= Segment 1: Bytes 1 - 1000 ===============================>| (Buffer: 1000 used, 3000 free)
      |                                                                    |
      |<======== ACK = 1001, Window Size = 3000 ===========================| (Advertises rwnd = 3000)
      |                                                                    |
      |========= Segment 2: Bytes 1001 - 3000 (2000 Bytes) ===============>| (Buffer: 3000 used, 1000 free)
      |                                                                    |
      |<======== ACK = 3001, Window Size = 1000 ===========================| (Advertises rwnd = 1000)
      |                                                                    |
      |========= Segment 3: Bytes 3001 - 4000 (1000 Bytes) ===============>| (Buffer FULL! 0 free)
      |                                                                    |
      |<======== ACK = 4001, Window Size = 0 (Zero Window!) ===============| (Sender STOPS transmission!)
      |                                                                    |

    Silly Window Syndrome aur Zero Window Probe:

    -> Zero Window: Jab receiver ka buffer 100% full ho jaata hai, wo Window Size = 0 advertise karta hai. Sender turant transmission rok deta hai.
    -> Persistence Timer & Probe: Jab window 0 hoti hai, sender ek Persistence Timer start karta hai. Timer expire hone par sender ek 1-byte Probe Segment bhejta hai taaki check kar sake ki kya receiver ke buffer mein space khali hui hai.
    -> Silly Window Syndrome: Agar receiver application 1-1 byte read karti hai aur 1-byte window advertise karti hai, toh 1 byte data ke upar 40 byte ka header waste hota hai. Ise rokne ke liye Nagle's Algorithm (sender side) aur Clark's Solution (receiver side) use hote hain.

     2. Error Control in Transport Layer

    TCP error control ke liye teen core mechanisms use karta hai:

    A. Checksum

    Har segment ke TCP header mein 16-bit checksum calculate hota hai. Agar receiver par checksum mismatch hota hai, toh segment corrupt maana jaata hai aur receiver use silently drop kar deta hai.

    B. Acknowledgments (ACK)

    TCP Cumulative Acknowledgment use karta hai. Agar receiver ACK = N bhejta hai, toh iska matlab hai ki byte N-1 tak saara data safely receive ho chuka hai, aur ab byte N ka wait hai.

    C. Retransmission Mechanisms

    Agar koi packet drop ho jaye, toh TCP do tariko se use retransmit karta hai:

    1. RTO (Retransmission Timeout):
      Sender har segment bhejne par ek timer start karta hai (jo Round Trip Time - RTT par dynamically calculate hota hai). Agar RTO expire hone se pehle ACK nahi milta, toh sender packet ko lost maankar retransmit karta hai.

    2. Fast Retransmit (Triple Duplicate ACK):
      Agar beech ka koi packet (e.g. Packet 2) drop ho gaya, lekin aage ke packets (3, 4, 5) pahunch gaye, toh receiver har naye packet ke aane par ACK = 2 (Packet 2 ka acknowledgment) dubara bhejta rehta hai. Jab sender ko 3 Duplicate ACKs (Total 4 identical ACKs) milte hain, toh sender timer expire hone ka wait kiye bina turant Packet 2 retransmit kar deta hai!

     Summary Table

    Mechanism Working Principle
    Flow Control Sliding Window Protocol with Receiver Advertised Window (rwnd).
    Zero Window Probing Buffer full hone par sender transmission pause karke probe segments bhejta hai.
    Fast Retransmit 3 Duplicate ACKs milne par bina timeout ka wait kiye turant packet retransmit karna.
    Scroll to Top