6-ПпротоколTCP (Лекции по Сетевым технологиям)

2018-01-12СтудИзба

Описание файла

Файл "6-ПпротоколTCP" внутри архива находится в папке "Лекции по Сетевым технологиям". Документ из архива "Лекции по Сетевым технологиям", который расположен в категории "". Всё это находится в предмете "сетевые технологии" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "сетевые технологии" в общих файлах.

Онлайн просмотр документа "6-ПпротоколTCP"

Текст из документа "6-ПпротоколTCP"

Протоколы транспортного уровня TCP и UDP

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

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

В то время как задачей уровня межсетевого взаимодействия, к которому отно­сится протокол IP, является передача данных между любой парой сетевых интерфейсов в составной сети, задача транспортного уровня, которую решают протоколы TCP и UDP, заключается в передаче данных между любой парой прикладных процессов, выполняющихся в сети.

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

Два протокола транспортного уровня из набора TCP/IP обеспечи­вают приложениям разный уровень обслуживания. Как TCP, так и UDP генерирует единицы данных PDU (protocol data unit), передава­емые внутри дейтаграмм IP. TCP выполняет функции, которых нет у IP, поэтому два этих протокола дополняют, но не дублируют друг друга. Комбинация UDP и IP обеспечивает минимальный транспорт­ный сервис с низким уровнем накладных расходов.

Протокол TCP

Набор протоколов TCP/IP назван по комбинации протоколов TCP и IP, которые в паре отвечают за большую часть трафика в сети TCP/ IP. Все Интернет-приложения, например, браузеры, FTP-клиенты, программы для работы с электронной почтой, используют протокол TCP для чтения больших объемов данных с серверов. TCP описан в документе RFC 793, опубликованном рабочей группой IETF в 1981 г.

Заголовок TCP

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

Функции полей сообщения TCP таковы.

  • Порт источника (source port) занимает 2 байта и идентифицирует процесс-отправитель.

  • Порт приемника (destination port) занимает 2 байта и идентифицирует процесс-получатель.

  • Последовательный номер (sequence number) занимает 4 байта и представляет собой номер байта, который определяет смещение сегмента относительно потока отправляемых данных (другими словами, номер первого байта данных в сегменте).

  • Подтвержденный номер (acknowledgement number) занимает 4 байта и содержит максимальный номер байта в полученном сегменте, увеличенный на единицу. Именно это значение используется в качестве квитанции. Если установлен контрольный бит АСК, то это поле содержит следующий номер оче­реди, который отправитель данного сегмента желает получить в обратном направлении.

Рис. 1. Формат сообщения TCP

  • Длина заголовка(Data Offset) занимает 4 бита и представляет собой длину заголов­ка TCP-сегмента, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле параметров.

  • Резерв (reserved) занимает 6 бит,

  • Кодовые биты (code bits) числом 6 содержат служебную информацию о типе данного сегмента. Положительное значение сигнализируется установкой этих битов в единицу:

    • URG — срочное сообщение;

    • АСК — квитанция на принятый сегмент;

    • PSH — запрос на отправку сообщения без ожидания заполнения буфера (протокол TCP может выжидать заполнения буфера перед отправкой сегмента, но если требуется срочная передача, то приложение сообщает об этом протоколу TCP с помощью данного бита);

    • RST — запрос на восстановление соединения;

    • SYN — сообщение, используемое для синхронизации счетчиков переданных данных при установлении соединения;

    • FIN — признак достижения передающей стороной последнего байта в потоке передаваемых данных.

  • Окно (window) занимает 2 байта и задает количество байтов данных, ожидаемых отправителем данного сегмента, начиная с байта, номер которого указан в поле подтвержденного номера.

  • Контрольная сумма (checksum) занимает 2 байта. Код CRC, вычисленный передающей системой. Целевая система использует его для обнаружения ошибок в заголовке TCP , данных и частях заголовка IP.

  • Указатель срочности (urgent pointer) занимает 2 байта и указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера. Указатель срочности используется совместно с кодовым битом URG. То есть если какие-то данные необходимо переслать приложению-получателю вне очереди, то приложение-отправитель должно сообщить об этом протоколу TCP путем установки в единицу бита URG.

  • Параметры (options) имеют переменную длину и могут вообще отсутствовать. Максимальная величина поля составляет 3 байта; оно используется для решения вспомогательных задач, например для выбора максимального размера сегмента. Поле параметров может располагаться в конце заголовка TCP, а его длина кратна 8 бит.

  • Заполнитель (padding) может иметь переменную длину. Это фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов.

Порты и сокеты

Как и у протоколов сетевого и канального уровней, одна из важней­ших функций протокола транспортного уровня заключается в иден­тификации протокола или процесса, сгенерировавшего переносимые им данные. В TCP и UDP идентификация осуществляется по номеру порта (port), который назначен данному процессу организацией IANA (Internet Assigned Numbers Authority). Когда пакет TCP/IP достигает цели, протокол транспортно­го уровня, принявший дейтаграмму, считывает номер порта из поля Destination Port и передает информацию из поля данных программе или протоколу, ассоциированному с этим портом.

Всем основным приложениям Интернета присвоены номера пор­тов, которые называются хорошо известными портами (well-known ports). Например, порт Web-сервера— 80, а порт сервера DNS — 53. TCP и UDP поддерживают отдельные списки номеров хорошо известных портов. Например, протокол FTP использует порты TCP 20 и 21. Так как на транспортном уровне протокол FTP пользуется только протоколом TCP, другие протоколы прикладного уровня могут использовать порты 20 и 21 с протоколом UDP. В некоторых случаях протокол прикладного уровня может пользоваться обоими протоколами транспортного уровня. DNS, на­пример, связан как с портом TCP 53, так и с портом UDP 53.

Адресуя трафик другой системе, TCP/IP-система использует комбинацию IP-адреса и номера порта, которая называется сокетом (socket). Чтобы задать сокет в URL (Uniform Resource Locator), Вы сначала вводите IP-адрес, потом двоеточие и номер порта. Напри­мер, сокет 192.168.2.10:21 указывает на порт 21 в системе с адресом 192.168.2.10. Поскольку 21 — это номер порта FTP, фактически, со­кет указывает на FTP-сервер, работающий на этом компьютере.

Обычно указывать номер порта при наборе URL не нужно, так как используемая Вами программа предполагает, что Вы подсоединяетесь к хорошо известному порту. Браузер, например, по умолчанию на­правляет все введенные URL на порт 80, принадлежащий протоколу HTTP (Hypertext Transfer Protocol) Web-сервера.

Хорошо известные порты относят­ся, главным образом, к серверам. Поскольку связь с данным серве­ром инициирует обычно клиент (а не наоборот), клиентам постоян­ные номера портов не нужны. На время связи с конкретным серве­ром клиентская программа обычно случайным образом выбирает вре­менный номер порта (ephemeral port number). IANA контролирует толь­ко номера портов в пределах от 1 до 1023, поэтому временные номера портов принимают значения от 1024 и выше. Сервер, получивший пакет от клиента, использует значение из поля Source Port заголовка TCP, чтобы адресовать ответ правильному временному порту клиент­ской системы.

Логическое TCP-соединение однозначно идентифицируется парой сокетов.

Каждый сокет одновременно может участвовать в нескольких соединениях. Так, если (IP1, nl), (IP2, n2), (IP3, nЗ) — сокеты трех разных приложений, где IP1, IP2, IP3 — их IP-адреса, a nl, n2, n3 — номера их TCP-портов, то возможно обра­зование следующих соединений:

- соединение 1 - {(IP2, n2), (IP1, nl)};

- соединение 2 - {(IP1, nl), (IP3, nЗ)};

- соединение 3 - {(IP2, n2), (IP3, nЗ)}.

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

Рис. 2. Мультиплексирование и демультиплексирование на транспортном уровне

Установка соединения

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

В большинстве случаев соединение TCP устанавливается на вре­мя передачи единственного файла. Например, подключаясь к серве­ру в Интернете, браузер сначала устанавливает соединение с ним, за­тем передает HTTP-запрос с URL и наконец получает файл, указан­ный в URL. Как только файл передан, системы разрывают соедине­ние. Обрабатывая полученный файл, браузер может найти в нем ссыл­ки на изображения, звукозаписи и другие файлы, необходимые для отображения Web-страницы. Для каждого из них браузер устанавли­вает новое соединение с сервером, копирует файл и отображает его в составе страницы. Таким образом, обработка одной Web-страниц может обернуться десятком самостоятельных TCP-соединений.

Процесс установления TCP-соединения называется трехшаговым рукопожатием (three-way handshake) и состоит из обмена тремя сообщениями (рис. 3), ни одно из которых не содержит данных приклад­ного уровня. Помимо проверки существования другого компьютере и его готовности к приему данных, цель этих сообщений состоит в согласовании нумерации передаваемых сообщений. В начале соеди­нения каждый компьютер выбирает для первого сообщения TCP на­чальный номер последовательности (initial sequence number, ISN). За­тем с каждым последующим сообщением системы увеличивают этот номер на 1. Для выбора ISN компьютеры используют специальный алгоритм, который минимизирует вероятность того, что для соедине­ния между одной и той же парой сокетов в одно и то же время будут использованы одинаковые номера последовательности.

SYN

ACK/SYN

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5119
Авторов
на СтудИзбе
445
Средний доход
с одного платного файла
Обучение Подробнее