Tớnh thời gian khứ hồi một cỏch thụng minh là cỏch khắc phục nguyờn nhõn thứ hai dẫn tới việc vi phạm nguyờn lý “Bảo toàn cỏc gúi số liệu”, đú là việc đưa vào mạng một gúi tin mới trước khi cú một gúi tin cũ ra khỏi mạng. Nhưđó được trỡnh bày tại tiểu mục 1.3.2.2, cú hai sai lầm dẫn đến nguyờn nhõn thứ hai này, cỏch giải quyết chỳng được trỡnh bày dưới đõy.
Cỏch giải quyết sai lầm thứ nhất: tớnh ước lượng thời gian khứ hồi bằng một bộ
lọc dải thụng thấp để trỏnh cho đại lượng này khỏi thăng giỏng quỏ mạnh nhằm duy trỡ sự cõn bằng. Đặc tả cho giao thức TCP, RFC-793 gợi ý tớnh ước lượng thời gian khứ hồi như sau:
RTT ←α.RTT+(1-α).M (1)
Trong đú RTT là ước lượng thời gian khứ hồi trung bỡnh, M là số đo thời gian khứ hồi nhận được từ gúi số liệu đó được biờn nhận gần nhất và α là hệ số làm trơn của bộ lọc, giỏ trị mà người ta gợi ý nờn sử dụng là α=0.9.
Sau khi ước lượng về RTT đó được cập nhật, thỡ thời gian hết giờđể phỏt lại gúi số liệu tiếp theo, RTO (retransmit timeout) được tớnh như sau:
RTO = β.RTT (2)
Cần phải chọn β sao cho việc phỏt lại do hết giờ khụng bị sai lầm do thăng giỏng của thời gian khứ hồi; nghĩa là làm cho xỏc suất thời gian khứ hồi của một gúi tin lớn hơn RTO là rất nhỏ. Chớnh vỡ vậy, β cần được chọn khụng quỏ nhỏ, cú thể sẽ dẫn đến việc phỏt lại vội vàng, khi gúi tin vẫn đang ở trong mạng; β cũng khụng được chọn quỏ lớn, cú thể sẽ dẫn đến việc phỏt lại quỏ chậm trễ, gúi tin bị mất từ lõu, mà bờn gửi vẫn chờ cho hết giờ rồi mới phỏt lại.
Trong cỏc phiờn bản TCP được cài đặt đầu tiờn, người ta thường chọn β là một số cố định bằng 2. Tuy nhiờn, cỏc nghiờn cứu thực nghiệm sau này cho thấy rằng, RTT thăng giỏng trong một miền tương đối rộng, vỡ vậy khụng nờn chọn β theo cỏch đơn giản như trờn. Cụng trỡnh đầu tiờn đề xuất việc cải tiến thuật toỏn tớnh RTO của Jacobson được cụng bố năm 1988. ễng đó đề xuất cỏch làm cho β xấp xỉ tỉ lệ với độ lệch chuẩn của hàm mật độ xỏc suất thời gian đến của biờn nhận. Cụ thể là, sử dụng độ lệch trung bỡnh như một ước lượng rẻ (cheap estimator) của độ lệch chuẩn. Thuật toỏn này đũi hỏi phải tớnh một biến nữa là độ lệch được làm trơn D, như sau:
D = α.D + (1-α).|RTT-M| (3)
Trong đú, cỏc tham số RTT và M hoàn toàn tương tự như trong biểu thức (1), cũn α ởđõy khụng nhất thiết phải cú cựng giỏ trị như tham sốα trong biểu thức đú. Jacobson đó chỉ ra rằng, mặc dự D khụng hoàn toàn giống độ lệch chuẩn, nhưng nú cũng là một xấp xỉ đủ tốt. Cỏch tớnh D như trờn nhằm đạt được tốc độ cao nhất, chỉ sử dụng cỏc phộp tớnh cộng, trừ và dịch trờn cỏc số nguyờn. Ngày nay, cỏc phiờn bản TCP đều sử dụng thuật toỏn này và tớnh thời gian hết giờđể phỏt lại như sau:
Sử dụng hệ số 4 cú hai ưu điểm, thứ nhất là việc nhõn với 4 sẽ được thực hiện bởi phộp dịch, cú tốc độ thực hiện cao; thứ hai là, xỏc suất một gúi tin được biờn nhận chậm hơn RTO là rất nhỏ, cú thể bỏ qua.
Cỏch giải quyết sai lầm thứ hai: rỳt lui theo hàm mũ. Đõy là cỏch giải quyết duy nhất đỳng đắn, bởi vỡ theo cơ chế khởi động chậm, cửa sổ gửi tăng lờn theo hàm mũ, cho nờn cũng cần phải rỳt lui theo cỏch này cho đủ nhanh khi đó cú dấu hiệu của tắc nghẽn. TCP sẽđặt đồng hồ phỏt lại bằng khoảng thời gian rỳt lui và khoảng đú sẽđược tăng gấp đụi cứ mỗi lần bị hết giờ liờn tiếp.