Отличие tcp udp. Разница между протоколами TCP и UDP. Модель службы TCP

Подписаться
Вступай в сообщество «sinkovskoe.ru»!
ВКонтакте:

Без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных. Протокол был разработан Дэвидом П. Ридом в 1980 году и официально определён в RFC 768 .

UDP использует простую модель передачи, без неявных «рукопожатий» для обеспечения надёжности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадёжный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. UDP подразумевает, что проверка ошибок и исправление либо не нужны, либо должны исполняться в приложении. Чувствительные ко времени приложения часто используют UDP, так как предпочтительнее сбросить пакеты, чем ждать задержавшиеся пакеты, что может оказаться невозможным в системах реального времени . При необходимости исправления ошибок на сетевом уровне интерфейса приложение может задействовать TCP или SCTP , разработанные для этой цели.

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

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

Природа UDP как протокола без сохранения состояния также полезна для серверов, отвечающих на небольшие запросы от огромного числа клиентов, например DNS и потоковые мультимедийные приложения вроде IPTV , Voice over IP , протоколы туннелирования IP и многие онлайн-игры .

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

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

Служебные порты

Структура пакета

UDP - минимальный ориентированный на обработку сообщений протокол транспортного уровня , задокументированный в RFC 768 .

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

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

Любые реакции, которые сервер должен отправлять клиенту, отправляются с номером исходного порта сервера и целевым портом, выбранным клиентом. Если вам нужна дополнительная помощь, обратитесь в наш отдел поддержки. Требуется новый сетевой протокол. Выбор протокола с транспортного уровня, на котором основан новый протокол, является одной из первых вещей в разработке.

UDP не предоставляет никаких гарантий доставки сообщения для вышестоящего протокола и не сохраняет состояния отправленных сообщений. По этой причине UDP иногда называют Unreliable Datagram Protocol (англ. - Ненадёжный протокол датаграмм).

Контрольная сумма

Поле контрольной суммы используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями. Поле не является обязательным для IPv4.

Конечно, это не означает шифрование, а только то, что отправленные вами данные также в любом случае поступают по мере их отправки. То есть: полный, в правильном порядке, а не в два раза. Однако, чтобы обеспечить связь без потерь, необходимо также установить соединение. Когда клиент пытается подключиться к серверу с указанным портом, операционная система сервера перенаправляет соединение с серверным программным обеспечением после успешного установления соединения. Полная настройка соединения обычно прозрачна для программиста прикладного программного обеспечения и обрабатывается операционной системой.

Расчёт контрольной суммы

Метод для вычисления контрольной суммы определён в RFC 1071 .

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

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

В конце концов, кто хочет отправить 4 пакета, если будет достаточно одного пакета в одном направлении? Но когда вы что-то используете? Обычно можно настроить количество попыток и тайм-аут. Потеря пакета, который включает в себя изменение направления игрока, хотя, конечно, не очень приятный, но его можно терпеть, потому что через несколько десятых секунды происходит следующее изменение направления, включая данные позиции игрока. Здесь вы можете вкратце увидеть, как игрок «прыгает» в виртуальном мире, или он, по-видимому, делает очень неестественное движение, чтобы быть помещенным в правильное положение.

Для расчёта контрольной суммы псевдозаголовок и UDP-сообщение разбивается на двухбайтные слова. Затем рассчитывается сумма всех слов в арифметике обратного кода (то есть кода, в котором отрицательное число получается из положительного инверсией всех разрядов числа и существует два нуля: 0х0000 (обозначается +0) и 0xffff (обозначается −0)). Результат записывается в соответствующее поле в UDP-заголовке.

Но что происходит с сообщениями чата? Это может быть очень неприятно, когда приходит только 80% всех сообщений или в неправильном порядке. Для этого вам теперь придется писать свой собственный слой, который все еще приносит свое собственное обнаружение потери пакетов, неправильных заказов и т.д. здесь имеет смысл различать «важные» и «не важные», так что по-прежнему можно отправлять по протоколу быстрые и небезопасные сообщения, которые вполне могут быть потеряны.

Протокол управления передачей

Протокол управления передачей является надежным протоколом байтового потока, ориентированным на соединение. Со временем эти определения были освобождены от ошибок и несоответствий и дополнены некоторыми требованиями. Кроме того, вышеупомянутые свойства протокола управления передачей - надежный, ориентированный на соединение байтовый поток - теперь будут рассмотрены более подробно.

Значение контрольной суммы, равное 0х0000 (+0 в обратном коде), зарезервировано и означает, что для посылки контрольная сумма не вычислялась. В случае, если контрольная сумма вычислялась и получилась равной 0х0000, то в поле контрольной суммы заносят значение 0xffff (-0 в обратном коде).

Модель службы TCP

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

При получении сообщения получатель считает контрольную сумму заново (уже учитывая поле контрольной суммы), и, если в результате получится −0 (то есть 0xffff), то контрольная сумма считается сошедшейся. Если сумма не сходится (данные были повреждены при передаче, либо контрольная сумма неверно посчитана на передающей стороне), то решение о дальнейших действиях принимает принимающая сторона. Как правило, в большинстве современных устройств, работающих с UDP/IP-пакетами имеются настройки, позволяющие либо игнорировать такие пакеты, либо пропускать их на дальнейшую обработку, невзирая на неправильность контрольной суммы.

Простейший протокол передачи файлов

В противном случае программа передачи данных отклоняется, и никакое подтверждение не отправляется. Если подтверждение подтверждения не поступило отправителю через определенный промежуток времени, отправитель снова отправит соответствующий сегмент. Соединения устанавливаются с помощью трехстороннего рукопожатия. Трехстороннее рукопожатие используется для обмена управляющей информацией, которая устанавливает логическое сквозное соединение. Серийный номер сегмента, отправленного хостом 1, также указывает на хост 2, какой номер хоста 1 использует для передачи данных.

Пример расчёта контрольной суммы

Для примера рассчитаем контрольную сумму нескольких 16-битных слов: 0x398a, 0xf802, 0x14b2, 0xc281 .

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

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

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

0x398a + 0xf802 = 0x1318c → 0x318d (перенос в старший разряд) 0x318d + 0x14b2 = 0x0463f → 0x463f (число положительное) 0x463f + 0xc281 = 0x108c0 → 0x08c1

В конце выполняется инверсия всех битов получившегося числа

0x08c1 = 0000 1000 1100 0001 → 1111 0111 0011 1110 = 0xf73e или, иначе - 0xffff − 0x08c1 = 0xf73e . Это и есть искомая контрольная сумма.

При вычислении контрольной суммы опять используется псевдозаголовок, имитирующий реальный IPv6-заголовок:

Номера сокетов источника и получателя идентифицируют соединение. Связь определяется однозначно, указав эту пару. Известные порты используются для стандартных услуг, таких как Обе службы позволяют вам входить на удаленный хост по сети. Управление портами теперь принято авторитетом Интернет-назначенных номеров. Номера портов были разделены на три области: известные порты, зарегистрированные порты и динамические порты.

Сегмент - это не что иное, как данные, которые должны быть переданы, с «управляющей информацией». Каждый сегмент начинается с 20-байтового заголовка, за которым могут следовать опции заголовка. Наконец, за параметрами следуют данные, которые необходимо передать.

Биты 0 - 7 8 - 15 16 - 23 24 - 31
0 Адрес источника
32
64
96
128 Адрес получателя
160
192
224
256 Длина UDP
288 Нули Следующий заголовок
320 Порт источника Порт получателя
352 Длина Контрольная сумма
384+
Данные

Адрес источника такой же, как и в IPv6-заголовке. Адрес получателя - финальный получатель; если в IPv6-пакете не содержится заголовка маршрутизации (Routing), то это будет адрес получателя из IPv6-заголовка, в противном случае, на начальном узле, это будет адрес последнего элемента заголовка маршрутизации, а на узле-получателе - адрес получателя из IPv6-заголовка. Значение «Следующий заголовок» равно значению протокола - 17 для UDP. Длина UDP - длина UDP-заголовка и данных.

Размер для двух полей - 16 бит. Номер последовательности, номер подтверждения: порядковый номер и номер подтверждения - это 32-разрядные номера. Цифры указывают положение данных сегмента в потоке данных, обмениваемом в соединении. Номер последовательности применяется в направлении отправки, номер подтверждения для подтверждения приема. Однако это, вероятно, достаточно обеспечено большим числом диапазонов 2 32. Эти номера обмениваются, когда соединение установлено и взаимно подтверждено. Во время передачи данных порядковый номер увеличивается отправителем по количеству уже отправленных байтов.

Надёжность и решения проблемы перегрузок

Из-за недостатка надёжности приложения UDP должны быть готовы к некоторым потерям, ошибкам и дублированиям. Некоторые из них (например, TFTP) могут при необходимости добавить элементарные механизмы обеспечения надёжности на прикладном уровне.

Но чаще такие механизмы не используются UDP-приложениями и даже мешают им. Потоковые медиа , многопользовательские игры в реальном времени и VoIP - примеры приложений, часто использующих протокол UDP. В этих конкретных приложениях потеря пакетов обычно не является большой проблемой. Если приложению необходим высокий уровень надёжности, то можно использовать другой протокол (TCP) или воспользоваться методами помехоустойчивого кодирования (Erasure code en).

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

Это может иметь место либо при передаче недопустимого сегмента, либо сбое хоста, либо попытка настройки соединения отклоняется. Если бит установлен, это означает, что передатчик не имеет дальнейших данных для передачи. Окно: поле размера окна содержит количество байтов, которое получатель может получать из уже подтвержденного байта. Каждая страница соединения может отправлять количество байтов, указанных в поле размера окна, не дожидаясь получения с стороны приемника. В то же время квитанции на данные, полученные с другой стороны, могут поступать во время передачи.

Более серьёзной потенциальной проблемой является то, что в отличие от TCP, основанные на UDP приложения не обязательно имеют хорошие механизмы контроля и избегания перегрузок. Чувствительные к перегрузкам UDP-приложения, которые потребляют значительную часть доступной пропускной способности, могут поставить под угрозу стабильность в Интернете.

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

Контрольная сумма: контрольная сумма проверяет заголовок журнала, данные и псевдо-заголовок. Фиктивный заголовок в контрольной сумме. Алгоритм формирования контрольной суммы прост: все 16-битные слова добавляются в дополнение к 1 и определяется сумма. Во время вычисления поле Контрольная сумма устанавливается на ноль, а поле данных заполняется нечетным числом на один нуль-байт. Если получатель сегмента выполняет расчет по всему сегменту - включая поле для контрольной суммы - результат должен быть равен 0.

Сетевые механизмы были предназначены для того, чтобы свести к минимуму возможные эффекты от перегрузок при неконтролируемых, высокоскоростных нагрузках. Такие сетевые элементы, как маршрутизаторы, использующие пакетные очереди и техники сброса, часто являются единственным доступным инструментом для замедления избыточного UDP-трафика. DCCP (англ. Datagram Congestion Control Protocol - протокол контроля за перегрузками датаграмм) разработан как частичное решение этой потенциальной проблемы с помощью добавления конечному хосту механизмов для отслеживания перегрузок для высокоскоростных UDP-потоков вроде потоковых медиа.

Приложения

Многочисленные ключевые Интернет-приложения используют UDP, в их числе - DNS (где запросы должны быть быстрыми и состоять только из одного запроса, за которым следует один пакет ответа), Простой Протокол Управления Сетями (SNMP), Протокол Маршрутной Информации (RIP), Протокол Динамической Конфигурации Узла (DHCP).

Голосовой и видеотрафик обычно передается с помощью UDP. Протоколы потокового видео в реальном времени и аудио разработаны для обработки случайных потерь пакетов так, что качество лишь незначительно уменьшается вместо больших задержек при повторной передаче потерянных пакетов. Поскольку и TCP, и UDP работают с одной и той же сетью, многие компании замечают, что недавнее увеличение UDP-трафика из-за этих приложений реального времени мешает производительности TCP-приложений вроде систем баз данных или бухгалтерского учёта . Так как и бизнес-приложения, и приложения в реальном времени важны для компаний, развитие качества решений проблемы некоторыми рассматривается в качестве важнейшего приоритета.

Сравнение UDP и TCP

TCP - ориентированный на соединение протокол, что означает необходимость «рукопожатия» для установки соединения между двумя хостами. Как только соединение установлено, пользователи могут отправлять данные в обоих направлениях.

  • Надёжность - TCP управляет подтверждением, повторной передачей и тайм-аутом сообщений. Производятся многочисленные попытки доставить сообщение. Если оно потеряется на пути, сервер вновь запросит потерянную часть. В TCP нет ни пропавших данных, ни (в случае многочисленных тайм-аутов) разорванных соединений.
  • Упорядоченность - если два сообщения последовательно отправлены, первое сообщение достигнет приложения-получателя первым. Если участки данных прибывают в неверном порядке, TCP отправляет неупорядоченные данные в буфер до тех пор, пока все данные не могут быть упорядочены и переданы приложению.
  • Тяжеловесность - TCP необходимо три пакета для установки сокет-соединения перед тем, как отправить данные. TCP следит за надёжностью и перегрузками.
  • Потоковость - данные читаются как поток байтов , не передается никаких особых обозначений для границ сообщения или сегментов.

UDP - более простой, основанный на сообщениях протокол без установления соединения. Протоколы такого типа не устанавливают выделенного соединения между двумя хостами. Связь достигается путём передачи информации в одном направлении от источника к получателю без проверки готовности или состояния получателя. В приложениях для голосовой связи через интернет-протокол (Voice over IP, TCP/IP) UDP имеет преимущество над TCP, в котором любое «рукопожатие» помешало бы хорошей голосовой связи. В VoIP считается, что конечные пользователи в реальном времени предоставят любое необходимое подтверждение о получении сообщения.

  • Ненадёжный - когда сообщение посылается, неизвестно, достигнет ли оно своего назначения - оно может потеряться по пути. Нет таких понятий, как подтверждение, повторная передача, тайм-аут.
  • Неупорядоченность - если два сообщения отправлены одному получателю, то порядок их достижения цели не может быть предугадан.
  • Легковесность - никакого упорядочивания сообщений, никакого отслеживания соединений и т. д. Это небольшой транспортный уровень, разработанный на IP.
  • Датаграммы - пакеты посылаются по отдельности и проверяются на целостность только если они прибыли. Пакеты имеют определенные границы, которые соблюдаются после получения, то есть операция чтения на сокете-получателе выдаст сообщение таким, каким оно было изначально послано.
  • Нет контроля перегрузок - UDP сам по себе не избегает перегрузок. Для приложений с большой пропускной способностью возможно вызвать коллапс перегрузок, если только они не реализуют меры контроля на прикладном уровне.

Основные понятия, стандарты и организации, действующие в области ИС.

Взаимодействие открытых систем(Open Systems Interconnection (OSI ))

Взаимодействие открытых систем - правила сопряжения систем с открытой архитектурой от различных производителей.

Архитектура безопасности(Security architecture)

Архитектура безопасности - официальное дополнение ISO к модели OSI, определяющее меры безопасности в информационной сети.

Архитектура безопасности предполагает:

Предотвращение чтения сообщений любыми лицами;

Защиту трафика от его анализа посторонними;

Обнаружение изменений потоков сообщений;

Определение искажений блоков данных.

В зависимости от используемых методов различают:

Сети со слабой защитой, в которых усилия нарушителя пропорциональны затратам отправителя;

Сети с сильной защитой, требующие резкого увеличения затрат нарушителя.

Базовая эталонная модель взаимодействия открытых систем (Модель OSI)

(Стандарт ISO 7498 (Open systems interconnection basic reference model))

Базовая эталонная модель взаимодействия открытых систем - стандарт ISO, определяющий процесс информационного взаимодействия двух или более систем, в виде совокупность информационных взаимодействий уровневых подсистем.

Система обработки сообщений (Message Handling System (MHS ))

Система обработки сообщений - в модели OSI - система агентов сообщений пользователя, агентов передачи сообщений, хранения сообщений и устройств доступа, обеспечивающая работу электронной почты.

Уровень (Layer)

Уровень - в модели OSI - набор структур и программ, обеспечивающих обработку определенного класса событий.

Уровень выступает единицей декомпозиции совокупности функций, обеспечивающих информационное взаимодействие прикладных процессов.

В модели OSI выделяют семь уровней информационного взаимодействия:

7- прикладной уровень: передача информации между программами;

6- уровень представления: шифрование, кодирование и сжатие данных;

5- сеансовый уровень: установка, поддержка и разрыв соединения;

4- транспортный уровень: точность доставки, уровень качества услуг;

3- сетевой уровень: маршруты передачи, обработка и передача сообщений;

2- канальный уровень: управление каналом связи, доступ к среде передачи и адресация;

1- физический уровень: cвязь на уровне аппаратуры.

Уровни не зависят друг от друга и состоят из активных объектов, которые:

Взаимодействуют с другими объектами того же уровня;

Предоставляют сервис смежному с ним верхнему уровню;

Получают сервис от смежного с ним нижнего уровня;

Обмениваются блоками данных с целью выполнения возложенных на них задач.


Семиуровневая модель ВОС.

Модель Взаимодействия Открытых Систем (OSI).

Эталонная модель OSI, иногда называемая стеком OSI представляет собой 7-уровневую сетевую иерархию, разработанную Международной организацией по стандартам (International Standardization Organization - ISO). Эта модель содержит в себе по сути 2 различных модели:

Горизонтальную модель на базе протоколов, обеспечивающую механизм взаимодействия программ и процессов на различных машинах

Вертикальную модель на основе услуг, обеспечиваемых соседними уровнями друг другу на одной машине

В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной - соседние уровни обмениваются данными с использованием интерфейсов API.

Уровень 7, прикладной

Прикладной уровень отвечает за доступ приложений в сеть. Задачами этого уровня является перенос файлов, обмен почтовыми сообщениями и управление сетью. (FTP, Telnet,…)

Уровень 6, представления

Этот уровень обеспечивает преобразование данных (кодирование, компрессия и т.п.). Обеспечивает независимость прикладных процессов от различных форм представления данных.

Уровень 5, сеансовый

Обеспечивает механизм организации и формирования структуры взаимодействия между прикладными процессами.

Уровень 4, транспортный

Транспортный уровень делит потоки информации на достаточно малые фрагменты (пакеты) для передачи их на сетевой уровень. В стеке TCP/IP происзодит контроль целостности передачи данных. (TCP).

Уровень 3, сетевой

На этом уровне происходит маршрутизация пакетов на основе преобразования MAC-адресов в сетевые адреса. Сетевой уровень обеспечивает также прозрачную передачу пакетов на транспортный уровень. (IP).

Уровень 2, канальный

Канальный уровень обеспечивает создание, передачу и прием кадров данных. Этот уровень обслуживает запросы сетевого уровня и использует сервис физического уровня для приема и передачи пакетов. Спецификации IEEE 802.x делят канальный уровень на два подуровня: управление логическим каналом (LLC) и управление доступом к среде (MAC). LLC обеспечивает обслуживание сетевого уровня, а подуровень MAC регулирует доступ к разделяемой физической среде. (Ethernet).

Уровень 1, физический

Физический уровень получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. Механические и электрические/оптические свойства среды передачи определяются на физическом уровне и включают:

· Тип кабелей и разъемов

· Разводку контактов в разъемах

· Схему кодирования сигналов для значений 0 и 1

На сетевом уровне формируется IP-пакет: DATA|IP-заголовок

На канальном уровне формируется кадр: DATA|IP-заголовок|Ethernet-заголовок:

· 1 IP-паке в один кадр

· 1 IP-пакет разбивается на несколько кадров

· Несколько IP-пакетов помещаются в 1 кадр

3. TCP/IP, распределение протоколов по уровням ВОС.

Transmission Control Protocol/Internet Protocol (TCP/IP) - это промышленный стандарт стека протоколов, разработанный для глобальных сетей.

Стандарты TCP/IP опубликованы в серии документов, названных Request for Comment (RFC). Документы RFC описывают внутреннюю работу сети Internet. Некоторые RFC описывают сетевые сервисы или протоколы и их реализацию, в то время как другие обобщают условия применения.

Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно условно.

Структура протоколов TCP/IP приведена на рисунке 2.1. Протоколы TCP/IP делятся на 4 уровня.

Рис. 2.1. Стек TCP/IP

(уровень IV ) соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: Ethernet, Token Ring, FDDI, Fast Ethernet, PPP и т.д..

(уровень III ) - уровень межсетевого взаимодействия, который занимается передачей пакетов с использованием различных транспортных технологий локальных сетей, территориальных сетей, линий специальной связи и т. п. В качестве основного протокола сетевого уровня (в терминах модели OSI) в стеке используется протокол IP . Протокол IP является дейтаграммным протоколом, то есть он не гарантирует доставку пакетов до узла назначения. Также протоколы RIP, OSPF, ICMP и др.

(уровень II ) называется основным. На этом уровне функционируют протокол управления передачейTCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами.

(уровень I ) называется прикладным. WWW, Telnet, SMTP и т.д..

Протоколы IP, ARP, RARP.

Основу транспортных средств стека протоколов TCP/IP составляет протокол межсетевого взаимодействия - Internet Protocol (IP). Документ – RFC 791. К основным функциям протокола IP относятся:

· перенос между сетями различных типов адресной информации в унифицированной форме,

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

Состав IP-кадра:

· Заголовок 20байт

· внутри заголовка 2 блока по 32бита для IP-адресов источника и назначения

· Поле данных

В большинстве типов локальных и глобальных сетей определяется такое понятие как максимальный размер поля данных кадра или пакета, в которые должен инкапсулировать свой пакет протокол IP. Эту величину обычно называют максимальной единицей транспортировки - Maximum Transfer Unit, MTU. Сети Ethernet имеют значение MTU, равное 1500 байт

ARP (Address Resolution Protocol) протокол служит для установления соответствия между IP и MAC адресом (ARP – когда изв. IP, RARP – когда изв. MAC). MAC-адрес – 48бит, прошит в каждой железке (байта – производитель, ещё 3 байта – уникальный номер железки).

В сетях используется IP-адресация, как более гибкая. IP-адрес не привязан к железу.

С помощью ARP заполняется специальная таблица – ARP-кэш, с динамическими записями.

2 узла – А и Б, А знает IP Б и хочет отправить ему данные:

1) А посылает широковещательный ARP запрос с IP адресом Б

2) Б видит свой IP и посылает широковещательный ответ со своим MACом

3) A получает MAC Б, помещает его в ARP-кэш и формиреут Ethernet-кадр (данные|IP-заголовок(IP-адреса)|Ethernet-заголовок(MAC адреса))

Для дальнейшей передачи ARP-запросы не нужны.

RARP – Reverse ARP. Одно из применений – старт бездисковых станций, не знающих в начальный момент своего IP-адреса.

Протоколы TCP , ICMP , UDP.

Transmission Control Protocol (TCP) (протокол управления передачей) - один из основных сетевых протоколов Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP.

Выполняет функции протокола транспортного уровня модели OSI.

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

Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, называемая сегментом.

Соединение в протоколе TCP идентифицируется парой полных адресов обоих взаимодействующих процессов (оконечных точек). Адрес каждой из оконечных точек включает IP-адрес (номер сети и номер компьютера) и номер порта (FTP – 21, HTTP – 80 и т.д.). Одна оконечная точка может участвовать в нескольких соединениях.

Установление соединения выполняется в следующей последовательности:

· При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open).

· После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение.

· Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса.

· Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне.

· Сторона-инициатор открывает порт для приема и возвращает квитанцию. Соединение считается установленным. Далее происходит обмен данными в рамках данного соединения.

Используется квитирование (подтверждение передачи данных)

ICMP (Internet Control Message Protocol - межсетевой протокол управляющих сообщений) - сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные функции.

← Вернуться

×
Вступай в сообщество «sinkovskoe.ru»!
ВКонтакте:
Я уже подписан на сообщество «sinkovskoe.ru»