Ref:
計算機網路概論 GBN、SR、TCP 比較

What is TCP?

The Transmission Control Protocol (TCP) is a transport-layer protocol of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP.

TCP provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network.

Transport-layer protocol 像是公司中的收發室,提供可靠的資料傳輸

Reliable data transfer(rdt) mechanisms

rdt uses these mechanisms to implement a reliable and high speed stream service.

Two pipelined error recovery methods:
Go-Back-N(GBN) and selective repeat(SR)

  • animation
  • GBN
    • 接收端無需暫存封包
    • 接收端收到正確順序的封包事件:回傳該封包序號的 ACK 給傳送端。
    • 接收端收到錯誤順序的封包事件:回傳最後一次收到正確序號的 ACK 給傳送端。
    • Timeout 時,傳送端若還未收到最早送出封包所回傳的確認,則重送所有未經確認的封包,此時傳送端需重送大量無需重送的封包(主要缺點)
  • SR
    • 傳送端只重送接收端未正確收到的封包,可能是遺失或毀損。
    • 接收端會將脫序的封包暫存。
    • 傳送端、接收端雙方的 window 位置 各自不同。
    • 窗格大小必須等於有限序號大小的一半。
  • TCP
    • TCP 為累積式確認cumulative ack, selective ack(SACK)為可選
    • 接收端同 SR 會將脫序的封包暫存。
    • 傳送端只需要維護「最小已送出未經確認的封包之序號」及「下一個要傳送的封包之序號」。
    • 接收端 非預期封包抵達事件:暫存封包,送出期望收到的封包之序號 ACK。 多次送出相同的ack時會改送
    • 傳送端收到重複三次 ACK( Duplicate Ack ):重送封包,又稱快速重送(fast retransmit)。因為接收端總是收到 非預期的封包,而連續回傳希望收到的封包之序號,此時傳送端就會立刻重送接收端所預期的封包 ,這將會在 timeout 前就送出

TCP Connection

Congestion Control

Leave a Reply

Close Menu