Първоначалната спецификация на TCP

Интересно четиво, което ми попадна напоследък е първоначалната предложена спецификация на TCP протокола. Спецификацията е презентация на Винт Сърф и Робърт Кан от 1974г. когато по време на IEEE Transaction of Communications те предлагат дизайн на нов протокол за пакетна комутация. Документът се казва A protocol for packet network intercommunication и е интересен от гледна точка на първоначалните планове за протокола за пакетна комутация. В първоначален вид предложението включва само един протокол TCP, а по-късно следва разделянето на фунционалността между два протокола TCP и IP. Интересни са някои предвидени проблеми, както и доста разлики от сегашния му вид, вкл. размера на адресното пространство.

TCP congestion control и queueing

TCP механизми за регулация на трафика и congestion-control

В стандартните TCP имплементации има няколко механизма за предотвратяване на congestion:

  • TCP Slow-start – това е стандартният метод за увеличаване на количеството данни, което се изпраща – в началото експоненциално започвайки от един сегмент, а след определен момент – линейно(congestion-avoidance поведение), и регулация на това количество при наличие на задръстване (congestion) някъде по мрежата след източника на трафик;
  • TCP congestion-avoidance – работи заедно с TCP Slow-start и дефинира начин за регулация на нарастването на обема данни за изпращане при TCP – де факто представлява flow control при източника;
  • TCP Fast retransmit -дефинира ускорено препредаване на част от данни, при получаване на минимум 3 дубликатни квитанции (duplicate acknowledgements), без да се изчаква изтичането на TCP retransmission timeout-а.
  • TCP Fast recovery – след изпращането на липсващият сегмент от fast retransmit механизма, TCP продължава с линейно нарастване на количеството изпращана информация (congestion avoidance), вместо със започване на slow-start от самото начало;

TCP Slow-start

При установяване на TCP сесия една от променливите, които се инициализират в крайните възли е cwnd – congestion window. (more…)