Перейти к основному содержанию

Боковая панель

Merion Academy

0

Уведомления

Уведомлений нет

Смотреть все

0

Личный кабинет

О пользователе

Оценки

Сообщения

Настройки

Выход

OCT-1

Участники

Значки

Компетенции

Добро пожаловать!

Введение в сетевые технологии

TCP и UDP

Принципы построения коммутируемых сетей

Про VLAN (Virtual Local Area Network)

Про DHCP (Dynamic Host Configuration Protocol)

Работа с маршрутизатором

Протокол динамической маршрутизации EIGRIP (Enhanced Interior Gateway Routing Protocol)

Протокол динамической маршрутизации OSPF (Open Shortest Path First)

Протокол динамической маршрутизации BGP (Border Gateway Protocol)

Говорим про Route Redistribution

Листы контроля доступа (ACL)

Протокол Spanning Tree (STP)

Агрегация по технологии EtherChannel

Настройка VPN (Site-To-Site IPSec, DMVPN)

WLAN (беспроводные сети)

Частный траблшутинг и устранение неисправностей

Финальный тест

Личный кабинет

Домашняя страница

Календарь

Личные файлы

Мои курсы

Сетевой инженер: основы сетевых технологий

Личный кабинет

Мои курсы

OCT-1

TCP и UDP

Установление и прекращение TCP соединения

Установление TCP-соединения происходит до того, как любая из других
функций TCP сможет начать свою работу. Установление соединения относится
к процессу инициализации полей "Sequence" и "Acknowledgment" и согласования используемых номеров портов. На рисунке ниже показан пример процесса установления соединения.

Этот трехсторонний процесс установления соединения (также называемый
трехсторонним рукопожатием) должен завершиться до начала передачи
данных. Соединение существует между двумя сокетами, хотя в заголовке TCP
нет единственного поля сокета. Из трех частей сокета подразумеваются
IP-адреса на основе IP-адресов источника и назначения в IP-заголовке.
TCP подразумевается, потому что используется заголовок TCP, как указано
значением поля протокола в заголовке IP. Следовательно, единственные
части сокета, которые необходимо закодировать в заголовке TCP, - это
номера портов.

TCP сообщает об установлении соединения, используя 2 бита в полях
флагов заголовка TCP. Эти биты, называемые флагами SYN и ACK, имеют
особенно интересное значение. SYN означает "синхронизировать порядковые
номера", что является одним из необходимых компонентов при инициализации
TCP.

На рисунке ниже показано завершение TCP-соединения. Эта четырехсторонняя
последовательность завершения проста и использует дополнительный флаг,
называемый битом FIN. (FIN - это сокращение от "finished",
как вы могли догадаться.) Одно интересное замечание: перед тем, как
устройство справа отправит третий сегмент TCP в последовательности, оно
уведомляет приложение о том, что соединение прерывается. Затем он
ожидает подтверждения от приложения перед отправкой третьего сегмента на
рисунке. На случай, если приложению потребуется некоторое время, чтобы
ответить, ПК справа отправляет второй поток на рисунке, подтверждая, что
другой ПК хочет разорвать соединение. В противном случае ПК слева может
повторно отправить первый сегмент.

TCP устанавливает и завершает соединения между конечными точками, а
UDP - нет. Многие протоколы работают в рамках одних и тех же концепций,
поэтому термины "ориентированный на соединение" и "без установления
соединения" используются для обозначения общей идеи каждого из них.
Более формально эти термины можно определить следующим образом:

Протокол, ориентированный на соединение: протокол, который требует
обмена сообщениями до начала передачи данных или который имеет требуемую
предварительно установленную корреляцию между двумя конечными точками.

Протокол без установления соединения: протокол, который не требует
обмена сообщениями и не требует предварительно установленной корреляции
между двумя конечными точками.

Восстановление после ошибок и надежность

TCP обеспечивает надежную передачу данных, что также называется reliability or error recovery. Для обеспечения надежности TCP нумерует байты данных, используя поля "Sequence" и "Acknowledgment"
в заголовке TCP. TCP обеспечивает надежность в обоих направлениях,
используя поле Sequence Number одного направления в сочетании с полем
Acknowledgment в противоположном направлении.

На рисунке ниже показан пример того, как поля TCP Sequence и
Acknowledgment позволяют ПК отправлять 3000 байтов данных на сервер, при
этом сервер подтверждает получение данных. Сегменты TCP на рисунке
расположены по порядку, сверху вниз. Для простоты все сообщения содержат
1000 байтов данных в части данных сегмента TCP. Первый порядковый номер
- красивое круглое число (1000), опять же для простоты. В верхней части
рисунка показаны три сегмента, каждый из которых на 1000 больше
предыдущего, что указывает на первый из 1000 байтов сообщения. (То есть в
этом примере первый сегмент содержит байты 10001999; второй - байты
20002999, а третий - байты 30003999.)

Четвертый сегмент TCP на рисунке - единственный, который возвращается
от сервера к веб-браузеру - подтверждает получение всех трех сегментов.
Как? Значение подтверждения 4000 означает: "Я получил все данные с порядковыми номерами на единицу меньше 4000, поэтому я готов принять ваш байт 4000 следующим".
(Обратите внимание, что это соглашение о подтверждении путем
перечисления следующего ожидаемого байта, а не номера последнего
полученного байта, называется прямым подтверждением.)

Однако этот пример не исправляет никаких ошибок; он просто показывает
основы того, как хост-отправитель использует поле порядкового номера
для идентификации данных, а хост-получатель использует прямые
подтверждения для подтверждения данных. Более интересное обсуждение
вращается вокруг того, как использовать эти же инструменты для
восстановления ошибок. TCP использует поля "Sequence" и "Acknowledgment",
чтобы принимающий хост мог заметить потерю данных, попросить
отправляющий хост повторно отправить, а затем подтвердить, что повторно
отправленные данные прибыли.

Существует множество вариантов того, как TCP выполняет исправление
ошибок. На рисунке ниже показан только один такой пример, детализация
которого аналогична предыдущему. Веб-браузер снова отправляет три
сегмента TCP, снова по 1000 байт каждый, снова с легко запоминающимися
порядковыми номерами. Однако в этом примере второй сегмент TCP не может
пройти через сеть.

Рисунок указывает на три набора идей, лежащих в основе того, как
думают два хозяина. Во-первых, справа сервер понимает, что он не получил
все данные. Два полученных сегмента TCP содержат байты с номерами
10001999 и 30003999. Очевидно, сервер не получил байты, пронумерованные
между ними. Затем сервер решает подтвердить все данные вплоть до
потерянных, то есть отправить обратно сегмент с полем подтверждения,
равным 2000.

Получение подтверждения, которое не подтверждает все данные,
отправленные на данный момент, заставляет хост-отправитель повторно
отправить данные. ПК слева может подождать несколько секунд, чтобы
убедиться, что другие подтверждения не поступят (используя таймер,
называемый таймером повторной передачи), но вскоре решит, что сервер
сообщает: "Мне действительно нужно 2000 - отправьте его повторно". ПК
слева делает это, как показано на пятом из шести сегментов TCP на
рисунке.

Наконец, обратите внимание, что сервер может подтверждать не только
повторно отправленные данные, но и любые предыдущие данные, которые были
получены правильно. В этом случае сервер получил повторно отправленный
второй сегмент TCP (данные с порядковыми номерами 20002999), и сервер
уже получил третий сегмент TCP (данные с номерами 30003999). Следующее
поле подтверждения сервера подтверждает данные в обоих этих сегментах с
полем подтверждения, равным 4000.

Управление потоком с использованием окон

TCP реализует управление потоком, используя концепцию окна, которая
применяется к количеству данных, которые могут быть ожидающими
подтверждения в любой момент времени. Концепция окна позволяет
принимающему хосту сообщать отправителю, сколько данных он может
получить прямо сейчас, давая принимающему хосту способ замедлить или
ускорить отправляющий хост. Получатель может перемещать размер окна
вверх и вниз (это называется скользящим окном или динамическим окном),
чтобы изменить объем данных, который может отправить хост-отправитель.

Механизм раздвижного окна имеет больше смысла на примере. В примере,
показанном на рисунке снизу, используются те же основные правила, что и в
примерах на нескольких предыдущих рисунках. В этом случае ни один из
сегментов TCP не содержит ошибок, и обсуждение начинается на один
сегмент TCP раньше, чем на предыдущих двух рисунках.

Начнем с первого сегмента, отправленного сервером на ПК. Поле
Acknowledgment должно быть вам знакомо: оно сообщает ПК, что сервер
ожидает следующий сегмент с порядковым номером 1000. Новое поле, поле
окна, установлено на 3000. Поскольку сегмент передается на ПК, это
значение сообщает ПК, что ПК может послать не более 3000 байтов по этому
соединению до получения подтверждения. Итак, как показано слева, ПК
понимает, что может отправлять только 3000 байтов, и прекращает
отправку, ожидая подтверждения, после отправки трех 1000-байтовых
сегментов TCP.

Продолжая пример, сервер не только подтверждает получение данных (без
потерь), но и решает немного увеличить размер окна. Обратите внимание,
что второе сообщение, идущее справа налево на рисунке, на этот раз с
окном 4000. Как только ПК получает этот сегмент TCP, ПК понимает, что он
может отправить еще 4000 байтов (окно немного больше, чем предыдущее
значение).

Обратите внимание, что хотя на последних нескольких рисунках показаны
примеры с целью объяснения того, как работают механизмы, из этих
примеров может сложиться впечатление, что TCP заставляет хосты сидеть и
долго ждать подтверждения. TCP не хочет заставлять хост-отправитель
ждать отправки данных. Например, если подтверждение получено до того,
как окно будет исчерпано, начинается новое окно, и отправитель
продолжает отправлять данные до тех пор, пока текущее окно не будет
исчерпано. Часто в сети, где мало проблем, мало потерянных сегментов и
небольшая перегрузка, окна TCP остаются относительно большими, а узлы
редко ждут отправки.

Последнее изменение: Воскресенье, 24 Январь 2021, 16:28

◄ Популярные приложения TCP/IP

Перейти на...

Перейти на...
Как проходить курс
ИТ термины
Как делать лабораторные работы (Cisco Packet Tracer)
10 нужных инструментов для сетевого администратора
Как проходить тесты
Объявления
1. Модель OSI – это просто!
2. Маршрутизатор. Коммутатор. Хаб. Что это и в чем разница?
3. Что такое LAN и чем отличается от WAN?
4. Что такое IP - адрес и можно ли по нему кого-то вычислить?
5. Что такое MAC - адрес и как его узнать?
6. TCP и UDP – в чем разница?
7. Ethernet на пальцах - что это?
8. Что такое инкапсуляция данных в сети?
9. DNS сервер - что это и как работает?
10. Разбиение сети на подсети: VLSM
11. Address Resolution Protocol - что это?
12. NAT на пальцах: что это?
13. Введение: IPv6 - это просто
14. Что такое VPN и как он обходит блокировки?
15. Режимы передачи данных в сетях
16. Сегментация сети – почему это важно?
17. Что такое витая пара и как ее обжать?
18. Иерархическая модель сети от Cisco
19. Консоль, Терминал, Telnet и SSH - что это и зачем нужно?
20. Про операционную систему Cisco IOS
21. Интерфейс командной строки Cisco IOS
22. Структура команд Cisco IOS
23. Troubleshooting в Cisco IOS
24. Типы сетевых атак
25. QoS в сетях
Рассмотрение моделей TCP/IP и OSI в действии
Тестирование по блоку "Введение в сетевые технологии"
Протоколы TCP/IP 4 уровня: TCP и UDP
Популярные приложения TCP/IP
Нужно знать: про TCP и UDP
Закрепим знания тестом по TCP и UDP
Принципы коммутации и маршрутизации
Тестирование по блоку "Принципы построения коммутируемых сетей"
VLAN (Virtual Local Area Network)
Настройка сетей VLAN
Настройка маршрутизации между сетями VLAN с использованием конфигурации ROS (Router-on-a-Stick)
Тестирование по блоку "VLAN (Virtual Local Area Network)"
Все, что вам нужно знать про DHCP
Настройка DHCP на оборудовании Cisco
Пример настройки DHCPv6
Настройка DHCP Snooping и Dynamic Arp Inspection на Cisco
Траблшутинг DHCP на оборудовании Cisco
Настройка протокола DHCP с помощью команд Cisco IOS
Тестирование по блоку "DHCP (Dynamic Host Configuration Protocol)"
Базовая конфигурация маршрутизатора
Настройка статических маршрутов
Настройка NAT на Cisco
Port Forwarding: теория и настройка Cisco
Тестирование по знаниям работы с маршрутизатором
EIGRIP (Enhanced Interior Gateway Routing Protocol)
Полное руководство по EIGRP в PDF
Базовая настройка протокола EIGRP для IPv4
Тестирование по Протоколу динамической маршрутизации EIGRIP
OSPF (Open Shortest Path First)
Настройка базового протокола OSPFv2 для одной области
Поиск и устранение неполадок в работе OSPFv2 для одной области
Настройка OSPFv2 для нескольких областей
Протокол динамической маршрутизации OSPF (Open Shortest Path First)
BGP (Border Gateway Protocol)
Полное руководство по BGP в PDF
Тестирование по знаниям BGP
Перераспределение маршрутов (Route redistribution)
Тестирование по знаниям Route Redistribution
Основы IPv4 Access Control Lists
Соответствие пакетов в IP ACL
Wildcard в ACL: бинарные обратные маски
Стандартные листы контроля доступа (ACL)
Расширенные листы контроля доступа (Extended ACL)
ACL check - анализ списков доступа сетевого оборудования Cisco
Настройка стандартных именованных ACL-списков
Настройка расширенных ACL-списков
Тестирование по блоку "Листы контроля доступа (ACL)"
Протокол Spanning Tree (STP)
Тестирование по блоку "Протокол Spanning Tree (STP)"
Настройка EtherChannel на Cisco
Настройка EtherChannel на Cisco с минимальным даунтаймом
Устранение неисправностей EtherChannel
Настройка EtherChannel
Поиск и устранение неполадок в работе EtherChannel
Тестирование по блоку "Агрегация по технологии EtherChannel"
Настройка Site-To-Site IPSec VPN на Cisco
Настройка DMVPN на оборудовании Cisco
Настройка сетей VPN (дополнительно)
Итоговый тест по теме "Настройка VPN (Site-To-Site IPSec, DMVPN)"
Сравнение проводных и беспроводных сетей
Топологии беспроводных сетей
Анатомия защищенного соединения в беспроводных сетях
TKIP, CCMP и GCMP. Про безопасность Wi-Fi
Тест по WLAN (беспроводные сети)
Траблшутинг NAT/PAT на Cisco
Устранение неисправностей DHCP на Cisco
FHRP траблшутинг на Cisco
Траблшутинг Network Management Protocols
Сброс пароля на коммутаторах и маршрутизаторах Cisco
Troubleshooting в Cisco IOS
Проверка и отладка настроек NAT
Тестирование по знаниям траблшутинга и устранения неисправностей
Финальный тест
Сертификат
Обратная связь

Нужно знать: про TCP и UDP ►

Собеседники

Выбранные сообщения:
1

×

Собеседники

0

Настройки

Собеседники

Запросы

0

Нет контактов

Нет запросов на добавление в контакты

Запрос на добавление в контакты отправлен

Личное пространство

Сохраните черновики сообщений, ссылок, заметок и т.п. К ним можно будет вернуться позже.

Delete for me and for everyone else

Блок

Разблокировать

Удалить

Добавить

Удалить

Удалить

Отправить запрос на добавление в контакты

Принять и добавить в контакты

Отказаться

OK
Отмена

Помеченные

()

Нет помеченных разговоров

Группа

()

Нет групповых разговоров

Личное

()

Нет личных разговоров

Собеседники

Собеседники отсутствуют

Загрузить больше

Сообщения

Загрузить больше

Нет результатов

Поиск пользователей и сообщений

Приватность

Вы можете ограничить круг лиц, которые могут отправлять вам сообщения

Принимать сообщения от:

Только мои контакты

Мои контакты и любой в моих курсах

Настройка уведомлений

Основные

Использовать Enter для отправки

Удалить выбранные сообщения

Отправить запрос на добавление в контакты

Вы заблокировали этого пользователя

Разблокировать пользователя

Вы не можете отправить сообщение этому пользователю

Смотреть все

Вы зашли под именем Выход)

OCT-1

Сводка хранения данных
Скачать мобильное приложение
Политики