|
ОНЛАЙН АПТЕКА НИЗКИХ ЦЕН
цены ниже розничных точек. доставка по украине |
Любые виды проектных, дизайнерских и строительных работ в Украине и Киеве
|
|
рекламодателям фирмы/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-2022,