
- •Протоколы
- •Транспортные протоколы TCP/IP
- •Методы сетевого взаимодействия
- •Протокол пользовательских дейтаграмм UDP
- •Протокол UDP
- •Мультиплексирование UDP
- •Мультиплексирование UDP
- •Заголовок дейтаграммы UDP
- •Вычисление контрольной суммы
- •Протокол управления передачей TCP
- •Протокол TCP. Связь с другими протоколами
- •Заголовок ТСР
- •Функции протокола TCP
- •Метод скользящего окна
- •Метод скользящего окна
- •Управление окном
- •Управление соединениями
- •Установка TCP-соединения
- •Разрыв TCP-соединения
- •Промежуточные состояния соединения
- •Промежуточные состояния соединения
- •Промежуточные состояния
- •Одновременное открытие
- •Одновременное закрытие
- •Управление потоком
- •Таймеры

Промежуточные состояния соединения
LAST-ACK - отправил свой FIN, но ранее уже получил чужой FIN и отправил на него ACK; ожидает чужой ACK на свой FIN для окончательного закрытия соединения.
CLOSING - ранее отправил свой FIN и еще не получил подтверждения, но получил чужой FIN (и отправил на него ACK); ждет ACK на свой FIN.
TIME-WAIT - ранее отправил свой FIN и получил подтверждение, получил чужой FIN и только что отправил на него ACK; теперь ждет для гарантии того, что та сторона получит его ACK на свой FIN, после чего соединение будет окончательно закрыто.
CLOSED - соединение отсутствует.

Промежуточные состояния
Клиент
(активное открытие) SYN_SENT
ESTABLISHED
(активное закрытие) FIN_WAIT_1
FIN_WAIT_2
TIME_WAIT
|
|
|
S |
|
|
|
|
|
|
YN J |
|
|
|
|
|
|
1 |
|
|
|
ck |
J+ |
|
|
|
, a |
|
|
|
|
N |
K |
|
|
|
Y |
|
|
|
|
|
S |
|
|
|
|
|
|
|
a |
|
|
|
|
|
|
ck |
|
|
|
|
|
|
K |
|
|
|
|
|
|
+1 |
|
FIN M |
|
||
|
+1 |
|
||
k |
M |
|
|
|
ac |
|
|
|
|
FIN N |
|
|
||
|
a |
|
|
|
|
c |
|
|
|
|
|
k |
|
|
|
|
|
N |
|
|
|
|
|
+1 |
Сервер
(пассивное открытие) LISTEN
SYN_RCVD
ESTABLISHED
(пассивное закрытие) CLOSE_WAIT
LAST_ASK
CLOSED

Одновременное открытие
(активное открытие) SYN_SENT
SYN J
N |
K |
SY |
|
(активное открытие) SYN_SENT
SYN_RCVD |
S |
|
|
|
YN J, a |
|
c |
|
k |
|
K |
|
+1 |
ESTABLISHED |
|
SYN_RCVD
|
|
|
|
|
|
1 |
|
|
|
|
|
+ |
|
|
|
|
|
k |
J |
|
|
|
|
c |
|
|
|
|
|
, |
a |
|
|
|
|
NK |
|
|
|
|
|
Y |
|
|
|
|
|
|
S |
|
|
|
|
|
|
ESTABLISHED

Одновременное закрытие
(активное закрытие) FIN_WAIT_1
CLOSING
TIME_WAIT
FIN J
ack K+1
|
NK |
I |
|
F |
|
|
|
|
1 |
|
|
+ |
|
|
k |
J |
|
c |
|
|
|
a |
|
|
|
(активное закрытие) FIN_WAIT_1
CLOSING
TIME_WAIT

Управление потоком
1.Проблема узкого (глупого) окна
2.Алгоритм медленного старта
3.Алгоритм предотвращения пополнения
4.Быстрая повторная передача и алгоритм быстрого восстановления

Таймеры
1.Таймер повторных передач (RTO)
2.Таймер запросов (persist timer)
3.Таймер контроля работоспособности (keepalive)
4.2MSL-таймер