Руководство: связь с установлением соединения (TCP / IP)

Связь с установлением соединения (TCP / IP)

Связь с установлением соединения — это режим передачи данных, в котором вы должны сначала установить соединение с удаленным хостом или сервером, прежде чем будут отправлены какие-либо данные. Это похоже на аналоговую телефонную сеть, где вам нужно было установить соединение, прежде чем вы сможете общаться с получателем. Установление соединения включает такие операции, как набор номера, получение тонального сигнала, ожидание сигнала вызова и т. Д.

Установление и завершение сеанса TCP

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

Процесс установления соединения

  1. Хост A, которому необходимо инициализировать соединение, отправляет пакет SYN (Synchronize) с предложенным начальным порядковым номером на хост B назначения.
  2. Когда хост B получает сообщение SYN, он возвращает пакет с символами SYN и ACK, установленными в заголовке TCP (SYN-ACK).
  3. Когда хост A получает SYN-ACK, он отправляет обратно ACK (подтверждение).
  4. Хост B получает ACK, и на этом этапе соединение УСТАНАВЛИВАЕТСЯ.

Службы протокола, ориентированные на установление соединения, часто отправляют подтверждения (ACK) после успешной доставки. После передачи пакета с данными отправитель ожидает подтверждения от получателя. Если время истекло и отправитель не получил ACK, пакет передается повторно.

Завершение соединения

Когда передача данных завершена и хост хочет разорвать соединение, инициируется процесс разрыва. В отличие от установления TCP-соединения, в котором используется трехстороннее рукопожатие, для завершения соединения используются четырехсторонние сообщения. Соединение прекращается, когда обе стороны завершили процедуру выключения, отправив FIN и получив ACK.

  1. Хост A, которому необходимо разорвать соединение, отправляет специальное сообщение с флагом FIN (окончание), указывающее, что он завершил отправку данных.
  2. Хост B, который получает сегмент FIN, не прерывает соединение, но входит в состояние «пассивного закрытия» (CLOSE_WAIT) и отправляет ACK для FIN обратно на хост A. Теперь хост B переходит в состояние LAST_ACK. В этот момент хост B больше не будет принимать данные от хоста A, но может продолжать передавать данные на хост A. Если хост B не имеет данных для передачи на хост A, он также прервет соединение, отправив сегмент FIN.
  3. Когда хост A получает последний ACK от хоста B, он переходит в состояние (TIME_WAIT) и отправляет ACK обратно на хост B.
  4. Хост B получает ACK от хоста A и закрывает соединение.

Передача сегментов (оконная обработка)

Теперь, когда мы знаем, как устанавливается TCP-соединение, нам нужно понять, как осуществляется передача и управление передачей данных. В сетях TCP / IP передача между хостами осуществляется по протоколу TCP.

Давайте подумаем о том, что происходит, когда дейтаграммы отправляются быстрее, чем может обработать принимающее устройство. Приемник хранит их в памяти, называемой буфером. Но поскольку буферное пространство не является неограниченным, при превышении его емкости приемник начинает отбрасывать кадры. Все пропущенные кадры должны быть переданы повторно, что является причиной низкой производительности передачи.

Для решения этой проблемы TCP использует протокол управления потоком. Механизм окна используется для управления потоком данных. Когда соединение установлено, получатель указывает поле окна (см. Формат заголовка TCP, рисунок 1.6.) В каждом кадре TCP. Размер окна представляет количество принятых данных, которые получатель готов сохранить в буфере. Размер окна (в байтах) отправляется вместе с подтверждениями отправителю. Таким образом, размер окна контролирует, сколько информации может быть передано с одного хоста на другой без получения подтверждения. Отправитель отправит только количество укусов, указанное в размере окна, а затем будет ожидать подтверждения с обновленным размером окна.

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

Хост A начинает передачу с размером окна 1000, передается один 1000-байтовый кадр. Приемник (хост B) возвращает ACK с увеличением размера окна до 2000. Хост A получает ACK и передает два кадра (по 1000 байт каждый). После этого получатель объявляет начальный размер окна до 2500. Теперь отправитель передает три кадра (два, содержащих 1000 байтов, и один, содержащий 500 байтов) и ожидает подтверждения. Первые три сегмента заполняют буфер получателя быстрее, чем принимающее приложение может обработать данные, поэтому объявленный размер окна достигает нуля, что указывает на необходимость подождать, прежде чем станет возможной дальнейшая передача.

Размер окна и скорость увеличения или уменьшения размера окна доступны в различных алгоритмах предотвращения перегрузки TCP, таких как Reno, Vegas, Tahoe и т. Д.

Сеть Ethernet

CSMA / CD

Система Ethernet состоит из трех основных элементов:

  • физическая среда, используемая для передачи сигналов Ethernet между сетевыми устройствами,
  • система контроля доступа к среде, встроенная в каждый интерфейс Ethernet, которая позволяет нескольким компьютерам справедливо контролировать доступ к общему каналу Ethernet,
  • Фрейм Ethernet, который состоит из стандартизированного набора битов, используемых для передачи данных по системе.

В сети Ethernet для передачи данных используется протокол множественного доступа с контролем несущей с обнаружением столкновений (CSMA / CD). Это помогает контролировать и управлять доступом к общей пропускной способности, когда два или более устройств хотят передавать данные одновременно. CSMA / CD является модификацией множественного доступа с контролем несущей. Множественный доступ с обнаружением несущей и обнаружением столкновений используется для повышения производительности CSMA путем прекращения передачи, как только обнаруживается конфликт, что снижает вероятность повторного столкновения при повторной попытке.

Прежде чем мы немного поговорим о CSMA / CD, мы должны понять, что такое коллизия, домен коллизий и сегмент сети. Конфликт является результатом того, что два устройства в одной сети Ethernet пытаются одновременно передавать данные. Сеть обнаруживает «коллизию» двух переданных пакетов и отбрасывает оба из них.

Если у нас есть одно большое сетевое решение, это разбить его на более мелкие сети — часто это называется сегментация сети . Это делается с помощью таких устройств, как маршрутизаторы и коммутаторы — каждый из портов коммутатора создает отдельный сегмент сети, что приводит к отдельному домену коллизий. Домен коллизий — это физический сегмент сети, в котором пакеты данных могут «сталкиваться» друг с другом при отправке на совместно используемом носителе. Поэтому в концентраторе только один компьютер может получать данные одновременно, иначе может произойти коллизия, и данные будут потеряны.

Концентратор (называемый также повторителем ) указан на физическом уровне модели OSI, поскольку он регенерирует только электрический сигнал и отправляет входной сигнал на каждый из портов. Сегодня концентраторы не доминируют в сетях LAN и заменены коммутаторами.

Carrier Sense — означает, что передатчик прослушивает несущую (кодированный информационный сигнал) от другой станции перед попыткой передачи.

Множественный доступ — означает, что несколько станций отправляют и получают на одном носителе.

Обнаружение столкновения — включает в себя алгоритмы проверки на столкновение и объявляет о столкновении с ответом на столкновение — «Сигнал заклинивания».

Когда отправитель готов к отправке данных, он постоянно проверяет, занят ли носитель. Если среда становится бездействующей, отправитель передает кадр.

Посмотрите на рисунок 2.4 ниже, где объясняется простой пример CSMA / CD.

  1. Любой узел в сегменте, который хочет отправить данные, «прослушивает» то, что происходит на физическом носителе (проводном), и проверяет, не отправляет ли кто-то еще данные.
  2. Узел A и узел C в сегменте общей сети видят, что никто больше не отправляет, и пытаются отправить кадры.
  3. Узел A и узел C прослушивают одновременно, поэтому они оба будут передавать одновременно, и произойдет коллизия. Столкновение приводит к тому, что мы называем «шумом» — изменением напряжения сигналов в линии (проводе).
  4. Хост A и Х B обнаруживают это столкновение и посылают сигнал «jam», чтобы сообщить другим хостам не отправлять данные в это время. И хост A, и хост C должны повторно передать эти данные, но мы не хотим, чтобы они снова отправляли кадры одновременно. Чтобы избежать этого, хост A и хост B запустят случайный таймер (мс), прежде чем снова попытаться запустить процесс CSMA / CD, прослушивая провод.

Каждый компьютер в сети Ethernet работает независимо от всех других станций в сети.

Полудуплексный и полнодуплексный Ethernet

Стандарты Ethernet, такие как Ethernet II и Ethernet 802.3, проходят официальный процесс стандартизации IEEE (Институт инженеров по электротехнике и электронике). Разница заключается в том, что заголовок Ethernet II включает поле типа протокола, тогда как в Ethernet 802.3 это поле было изменено на поле длины. Ethernet является стандартным методом доступа CSMA / CD. Ethernet поддерживает разные скорости передачи данных. Ethernet (10BaseT) — 10 Мбит / с, Fast Ethernet (100Base-TX) — 100 Мбит / с Gigabit Ethernet (1000Base-T) — 1000 Мбит / с через различные типы физических сред (витые пары (медные), коаксиальный кабель, оптоволокно). Сегодня кабели Ethernet состоят из четырех витых пар (8 проводов). Например, 10Base-T использует только одну из этих проводных пар для работы в обоих направлениях в полудуплексном режиме.

Полудуплексная передача данных означает, что данные могут передаваться в обоих направлениях между двумя узлами, но только в одном направлении одновременно. Также в Gigabit Ethernet определены (полудуплексные) спецификации, но на практике он не используется.

Полнодуплексная передача данных означает, что данные могут передаваться в обоих направлениях с использованием разных витых пар для каждого из направлений в одно и то же время. В полнодуплексном Ethernet коллизии невозможны, поскольку данные передаются и принимаются по разным проводам, и каждый сегмент подключается напрямую к коммутатору. Полнодуплексный Ethernet обеспечивает производительность в обоих направлениях, например, если ваш компьютер поддерживает Gigabit Ethernet (полнодуплексный режим) и ваш шлюз (маршрутизатор) также поддерживает его, тогда между вашим компьютером и шлюзом доступна агрегированная пропускная способность 2 Гбит / с.

Простой пример сетевого общения

Работа протокола ARP

Протокол разрешения адресов (ARP) — это протокол для сопоставления IP-адреса хоста в локальной сети с аппаратным адресом (MAC-адресом). Физический / аппаратный адрес также известен как Media Access Control или MAC-адрес. Каждое сетевое устройство поддерживает таблицы ARP (кэш), которые содержат список MAC-адресов и его соответствующие IP-адреса. MAC-адреса однозначно идентифицируют каждый сетевой интерфейс в сети. IP-адреса используются для выбора пути к месту назначения (в процессе маршрутизации), но процесс пересылки кадров с одного интерфейса на другой происходит с использованием MAC-адресов.

Когда хост в локальной сети хочет отправить IP-пакет другому хосту в этой сети, он должен найти Ethernet MAC-адрес хоста назначения в своем кэше ARP. Если MAC-адрес хоста назначения отсутствует в таблице ARP, то отправляется запрос ARP для поиска устройства с соответствующим IP-адресом. ARP отправляет сообщение с запросом широковещания всем устройствам в локальной сети, запрашивая устройства с указанным IP-адресом ответить своим MAC-адресом. Устройство, которое распознает IP-адрес как свой собственный, возвращает ответ ARP со своим собственным MAC-адресом. На рисунке 2.5 показано, как ARP ищет MAC-адрес в локальной сети.

Команды, которые отображают текущие записи ARP на ПК (linux, DOS) и маршрутизаторе MikroTik (команды могут делать то же самое, но их синтаксис может отличаться):

Для машин, подобных Windows и Unix: arp — a отображает список IP-адресов с соответствующими MAC-адресами

ip arp print — та же команда, что и arp — a, но отображать таблицу ARP на маршрутизаторе MikroTik.

Author: admin