Пловдивски



Pdf просмотр
страница111/130
Дата02.07.2022
Размер7.37 Mb.
#114742
1   ...   107   108   109   110   111   112   113   114   ...   130
Компютърни мрежо и комуникации
фигура 157 Трикратно ръкостискане
- Хост А изпраща SYN сегмент с включен начален пореден номер
SEQ=5 (Sequence Number);
- Хост В потвърждава с ACK (5+1=6), включен бит SYN и началния си пореден номер SEQ=55;
- Хост А потвърждава ACK/SYN сегмента с ACK (55+1=56);
- Извършва се трансфер на данни след установяване на връзката. TCP използва пореден номер за всеки байт прехвърлени данни, които трябва да бъдат потвърдени от приемащия хост. Полето SEQ идентифицира първият байт от сегмента, а полето ACK съдържа очаквания следващ пореден номер, като потвърждава всички данни до него. Например, ако Хост А предаде 3 сегмента с по 15 байта данни и началният пореден номер е 30, то следващия очакван пореден номер, заложен в ACK пакета, ще бъде
30+3.15=75;
2. Контрол на последователността на данните в сегмента (Sequencing);


210 3. Контрол на потока от данни (Flow control) – гарантира, че входящият трафик няма да запълни буферите на приемащия хост и той ще може да обработи потока от данни, както и да отговори на запитвания от страна на предаващия хост. Механизмът, който се използва е познатият плъзгащ се прозорец (sliding window). Всеки хост поддържа такъв прозорец и контролира размера му спрямо моментните си възможности.
Чрез него приемащият хост указва количеството данни, което може да буферира. Максималната стойност е 65535 байта и се определя от размера на полето, което е 16-битово (Window). Размерът на прозореца, потвържденията и поредните номера са байтово базирани, а не сегментно;
4. Поддържане на връзката при липса на данни за предаване – използва се служебно съобщение (keepalive) за поддържане на връзката. То не съдържа данни от по-горен слой, което означава, че полето за дължина е
0 и следващият ACK номер не се увеличава. Ако такива връзки не се затворят се увеличава натоварването на мрежата, особено в случаите, когато са много на брой;
5. Потвърждение на правилно приетите данни (Acknowledgement)–
потвърждението е механизъм, позволяващ на хостовете да определят кога има загуба на данни. Приемащият хост не изпраща ACK потвърждение за изгубен пакет. При неполучаване на потвърждение за определен период от време (използва се таймер), изпращащият хост повтаря предаването на непотвърдените данни, които се съхраняват в т.нар. TCB буфер (блок за контрол на предаването) (фигура 158);
фигура 158 Препредаване на липсваща поредица


211 6. Разпадане на логическото съединение (Session teardown) – процесът е подобен на този за установяване на сесия. Използва се трикратно ръкостискане, където SYN сегментът е заменен с FIN. Затварящият хост изпраща FIN сегмент към другата страна за затваряне на сесията.
Приемащият хост потвърждава с ACK/FIN отговор, които включва и собствен FIN, очакващ потвърждението му от хоста-инициатор. След тази процедура сесията се затваря. Състоянията, през които преминават двете страни, използващи TCP съединението са:

за клиента – CLOSED, SYN-SENT, ESTABLISHED, FIN-WAIT-1,
CLOSE-WAIT, FIN-WAIT-2, CLOSING, LAST-ACK, CLOSED;

за сървъра – CLOSED, LISTEN, SYN-RESEIVED, ESTABLISHED,
FIN-WAIT-1, CLOSE-WAIT, FIN-WAIT-2, CLOSING, TIME-WAIT,
CLOSED.


Сподели с приятели:
1   ...   107   108   109   110   111   112   113   114   ...   130




©obuch.info 2024
отнасят до администрацията

    Начална страница