реклама
ОНЛАЙН АПТЕКА НИЗКИХ ЦЕН
цены ниже розничных точек. доставка по украине

   Любые виды проектных, дизайнерских и строительных работ в Украине и Киеве    
АПТЕКА

proxy  статьи  библиотека  softice  free_юр.консультация  hard  iptv
рекламодателям  фирмы/add  расшифровка штрих-кодов  links/add

http://kiev-security.org.ua

3 Спецификация для функций протокола

3.2 Терминология

 Прежде чем мы сможем обсудить многие детали действия TCP протоко-
ла, нам необходимо ввести подробную терминологию. Для поддержания TCP
соединения необходиом иметь несколько переменных. Мы решили, что эти
переменные будут помещены в соответствующую запись - блок управления
передачей (Transmission Control Block - TCB). Среди переменных блока
TCB имеются номера местного и чужого сокетов, флаги безопасности и
приоритета для данного соединения, указатели буферов посылки и полу-
чения, указатели текущего сегмента и очереди повторной посылки. Кроме
всего этого в TCB имеются несколько переменных, имеющих отношение к
номерам очередей отправителя и получателя.

Отправление
SND.UNA - посылка неподтверждена
SND.NXT - послать следующий сегмент
SND.WND - отправить окно
SND.UP  - отправить срочный указатель
SND.WL1 - номер очереди сегмента, использованный для обновления
          последнего окна
SND.WL2 - номер подтверждения в сегменте, используемый для обновления
          последнего окна
ISS     - первоначальный номер очереди отправления

Получение
RCV.NXT - получить следующий сегмент
RCV.WND - получить окно
RCV.UP  - получить срочный указатель
IRS     - первоначальный номер очереди получения

   Нижеприведенные диаграммы могут помочь связать некоторые из этих
переменных с местом в очереди

Очередь отправления
         1          2          3          4
    ----------|----------|----------|----------
           SND.UNA    SND.NXT    SND.UNA
                                +SND.WND
1. - старые номера очереди, которые получили подтверждение
2. - номера очереди для данных, не получивших подтверждения
3. - номера очереди, допущенные к новой передаче
4. - следующие номера очереди, чья передача еще не разрешена
                      Рис. 4 Очередь отправления
Окно отправления - это участок очереди, отмеченный меткой 3 на
рисунке 4.

Очередь получения
         1          2          3
    ----------|----------|----------
           RCV.NXT    RCV.NXT
                     +RCV.WND
1. - старые номера очереди, которые получили подтверждение
2. - номера очереди, допущенные к очередному этапу получения
3. - следующие номера очереди, еще не получившие разрешения
                       Рис. 5 Очередь получения
Окно получения - это участок очереди, отмеченный меткой 2 на рисунке
5.
   В обсуждении также часто используются некоторые переменные,
берущие свое значение из полей очередного сегмента.
Переменные для очередного сегмента
SEG.SEQ - номер очереди для сегмента
SEG.ACK - номер подтвержения для сегмента
SEG.LEN - длина сегмента
SEG.WND - окно для сегмента
SEG.UP  - срочный указатель для сегмента
SEG.PRC - приоритет для сегмента
Соединение во время функционирования проходит через серии промежу-
точных состояний. Это состояния LISTEN, SYN-SENT, SYN-RECEIVED,
ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK,
TIME-WAIT, а также фиктивное состояние CLOSED. Состояние CLOSED явля-
ется фиктивным, поскольку оно представляет состояние, когда не су-
ществует блока TCP, а потому и нет соединения. Краткое описание сос-
тояний:
LISTEN       - Ожидание запроса на соединение со стороны чужих портов
               и программ TCP
SYN-SENT     - Ожидание парного запроса на установление соединения. С
               нашей стороны запрос уже сделан.
SYN-RECEIVED - Ожидание подтверждения после того, как запрос
               соединения уже принят и отправлен.
ESTABLISHED  - Состояние открытого соединения, принимаемые данные
               можно представить пользователю. Это нормальное
               состояние соединения в фазе передачи данных.
FIN-WAIT-1   - Ожидание запроса от чужой программы TCP, или
               подтверждения ранее отправленного запроса на закрытие
               соединения.
FIN-WAIT-2   - Ожидание запроса на закрытие соединения со стороны
               чужой программы TCP.
CLOSE-WAIT   - Ожидание запроса на закрытие соединения со стороны
               своего клиента.
CLOSING      - Ожидание подтверждения со стороны чужой программы TCP
               запроса о закрытии соединения.
LAST-ACK     - Ожидание запроса на закрытие соединения, ранее
               отправленного чужой программе TCP (запрос включал
               также подтверждение получения чужого запроса на
               закрытие соединения).
TIME-WAIT    - Ожидание когда истечет достаточное количество времени
               и можно быть уверенным, что чужая программа TCP
               получила подтверждение своего запроса на закрытие
               соединения.
CLOSED       - Состояние полного отсутствия соединения.
Соединение TCP переходит с одного состояния на другое в ответ на со-
бытия. Событие - это запросы клиента (открытие, посылка, получение,
закрытие, отказ, получение состояния соединения), приход сегментов, и
особенно тех, которые содержат флаги SYN, ACK, RST и FIN, а также ис-
течение выделенного времени.
Диаграмма состояний на рисунке 6 иллюстрирует лишь смену состояний, а
также вызвавшие это события, производимые действия, но не адреса, ус-
ловия ошибок, не действия, не связанные прямо с изменением состояния.
Более подробные сведения о действиях программы протокола TCP в ответ
на события приведены в последней главе.
Замечание. Данная диаграмма является лишь сводной, но не должна
восприниматься как полная спецификация.

                                           Активное открытие
                                        -------------------------
                                        создание TCB, посылка SYN
                              +--------+ -----------------
                              | CLOSED |                  \
                              +--------+\---------------   \
                                |    ^                   \  \
             Пассивное открытие |    |     CLOSE          \  \
             ------------------ |    | --------------      \  \
               создание TCB     |    | ликвидация TCB       \  \
                                V    |                       \  \
                              +--------+          CLOSE       \  \
                              | LISTEN |      --------------  |  |
                              +--------+      ликвидация TCB  |  |
               получение SYN    |    |      SEND              |  |
             ----------------   |    |   -----------          |  V
+--------+   посылка SYN, ACK  /      \  посылка SYN    +----------+
|        |\-------------------          --------------->|          |
|  SYN   |                  получение SYN               |          |
|  RCVD  |\---------------------------------------------| SYN SENT |
|        |                   посылка ACK                |          |
|        |---------------------        -----------------|          |
+--------+                     \      /                 +----------+
  |    получение ACK для SYN    |    |  получение SYN, ACK
  |    ---------------------    |    |  ------------------
  |             x               V    V      посылка ACK
  |                           +--------+
  |    CLOSE                  | ESTAB  |
  | -----------               +--------+
  | послать FIN   CLOSE         |    |   получить FIN
  V            -----------      |    |   ------------
+--------+     послать FIN     /      \   послать ACK     +--------+
|  FIN   |\-------------------          ----------------->|  CLOSE |
| WAIT-1 |---------------------                           |  WAIT  |
+--------+                     \  получить FIN            +--------+
  | получить ACK для FIN        | -------------       CLOSE     |
  | --------------------        | отправить ACK    -----------  |
  V          x                  V                  послать FIN  V
+--------+                    +--------+                  +--------+
|  FIN   |                    | CLOSING|                  |LAST-ACK|
| WAIT-2 |                    +--------+                  +--------+
+--------+   Получить ACK для FIN |        Получить ACK для FIN |
  |          -------------------- |        -------------------- |
  |  получить FIN      x          V                  x          |
  |  ------------             +--------+                        V
   \ послать ACK              |  TIME  |                  +--------+
     ------------------------>|  WAIT  |----------------->| CLOSED |
                              +--------+   Timeout=2MSL   +--------+
                                          --------------
                                          ликвидация TCB

Назад | Вперед

Содержание

HOME


Если у вас есть сайт или домашняя страничка - поддержите пожайлуста наш ресурс, поставьте себе кнопочку, скопировав этот код:

<a href="http://kiev-security.org.ua" title="Самый большой объем в сети онлайн инф-ции по безопасности на rus" target="_blank"><img src="http://kiev-security.org.ua/88x31.gif" width="88" height="31" border="0" alt="security,безопасность,библиотека"></a>

Идея проекта(C)Anton Morozov, Kiev, Ukraine, 1999-2020, security2001@mail.ru