logo search
Технологии корпоративных сетей

Таймер повторной передачи

Протокол TCP не формирует явных негативных подтверждений (АСК), то есть подтверждений, явно указывающих на произошедшие нарушения. Вместо этого протокол полагается исключительно на положительные подтверждения и на повторную передачу, которая должна происходить, если подтверждение не по­ступает в определенный интервал времени. Два события приводят к повторной передаче сегмента:

И в том, и в другом случае отправитель не сразу узнает о том, что посылка сегмента была не успешной.

Если сегмент на принимающей стороне принимается с ошибками либо не принимается вовсе, то при этом не формируется и не отсылается АСК. В таком случае потребуется повторная передача этого сегмента. Для принятия решения о том, когда следует осуществлять повторную передачу, вводится таймер, ра­ботающий с каждым посланным сегментом. Если время таймера истекает до момента получения АСК для этого сегмента, отправитель должен выполнить повторную передачу. Важной особенностью протокола TCP является то, что время этого таймера можно регулировать. Это очень полезно, так как если время будет слишком малым, то часто будут осуществляться ненужные повторные пе­редачи, снижающие эффективность использования полосы пропускания сети. Если время будет очень большим, протокол не сможет быстро адекватно реаги­ровать на потерю сегмента. Время таймера следует выбрать чуть больше време­ни обращения RTT (Round Trip Time). Естественно, само время RTT (задержка в сети) зависит от множества факторов, вносящих свой вклад даже при посто­янной загрузке сети.

Существуют два способа задания времени таймера повторной передачи.

Следует отметить, что эта проблема не имеет удовлетворительного единст­венно правильного решения. Всегда будет существовать некоторая неуверен­ность в оптимальности установки таймера повторной передачи. Механизм вычисления таймера описан в документе RFC 793.