Курс лекций "Сетевым технологиям"

Автор: Пользователь скрыл имя, 27 Мая 2012 в 04:03, курс лекций

Краткое описание

Работа содержит курс лекций по дисциплине "Сетевые технологии"

Файлы: 21 файл

1-1Беспроводная среда передачи.doc

— 575.50 Кб (Открыть, Скачать)

1-2new09Локальные беспроводные сети.doc

— 410.50 Кб (Открыть, Скачать)

1-3Персональные сети(Bluetooth).doc

— 580.00 Кб (Открыть, Скачать)

1-4WI-Max.doc

— 300.50 Кб (Открыть, Скачать)

2 Введение в глобальные сети.doc

— 161.50 Кб (Открыть, Скачать)

2- Эталонная модель OSI.doc

— 858.50 Кб (Открыть, Скачать)

4-1 Основы сетей передачи данных.doc

— 178.00 Кб (Открыть, Скачать)

4-1маршрутизация.doc

— 109.00 Кб (Открыть, Скачать)

4-2маршрутизация.doc

— 258.50 Кб (Открыть, Скачать)

5-1protocol IP.doc

— 116.91 Кб (Открыть, Скачать)

5-2Протокол IPX.doc

— 155.50 Кб (Открыть, Скачать)

6-1Три типа адресов TCP.doc

— 97.00 Кб (Открыть, Скачать)

6-ПпротоколTCP.doc

— 387.50 Кб (Скачать)


Протоколы транспортного уровня 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 содержат служебную информацию о типе данного сегмента. Положительное значение сигнализируется установкой этих битов в единицу:

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

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

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

o        RST — приказ принимающей системе сбросить TCP-соединение и игнорировать все сегменты, принятые к этому моменту;

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

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

      Окно (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

                                                                                                                              SYN/ACK

АСК

                                                       

   

Рис. 3. Для установки TCP-соединения используется трехшаговое рукопожатие

В сообщении с номером ISN для каждой системы установлен флаг синхронизации (SYN). В начале типичной TCP-транзакции сообще­ние SYN с номером ISN в поле Sequence Number посылает клиент­ская система. Получив это сообщение, сервер генерирует ответ, ко­торый выполняет сразу две функции. Во-первых, за счет установки флага АСК ответное сообщение подтверждает получение первого клиентского сообщения SYN. Во-вторых, в отклике сервера также ус­тановлен флаг SYN, а в поле Sequence Number указан его номер ISN. Получив это сообщение, клиентская система генерирует свой соб­ственный отклик с установленным флагом АСК. Как только сервер получил от клиента это подтверждение, соединение считается уста­новленным и системы готовы обмениваться сообщениями с данны­ми приложений. Таким образом, соединение TCP на самом деле пред­ставляет собой два отдельных соединения, работающих в противополож­ных направлениях. TCP является полнодуплексным протоколом: оба со­единения устанавливаются и разрываются независимо друг от друга.

В ходе трехшагового рукопожатия с помощью сообщений SYN компьютеры также информируют друг друга о максимальном размере сегмента (maximum segment size, MSS). По значению MSS для другой системы передающий компьютер определяет количество данных, ко­торое можно включать в последующие сообщения. Значение MSS за­висит от того, какой протокол канального уровня используется в сети, где находится соответствующая система. Величина MSS передается в виде 4 байтов, записанных в полях Options заголовков TCP двух паке­тов SYN.

Передача данных

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

• Номер порта. Клиенту уже известен номер порта сервера, который относится к хорошо известным портам и необходим для инициа­лизации соединения. В поле Source Port сообщений клиента, ад­ресованных серверу, передается временный номер порта, который будет подставляться в ответы сервера.

• Номер в последовательности. В поле Acknowledgment Number сво­их сообщений каждая система подставляет номера в последова­тельности, предоставленные другой системой.

• Максимальный размер сегмента (MSS). По значению дополнительного параметра MSS системы зна­ют, насколько большими могут быть сегменты каждой последова­тельности.

7-1Глобальные сети с коммутацией пакетов.doc

— 71.00 Кб (Открыть, Скачать)

7-2Глобальные сети с коммутацией пакетов.doc

— 2.88 Мб (Открыть, Скачать)

7-3Технология ATМ.doc

— 857.00 Кб (Открыть, Скачать)

8-1Организация доступа нов.doc

— 753.00 Кб (Открыть, Скачать)

8-2 Сеть Eternet.doc

— 248.00 Кб (Открыть, Скачать)

8-2Модемы.doc

— 841.00 Кб (Открыть, Скачать)

8-3 Cкоростные версии Eternet.doc

— 343.00 Кб (Открыть, Скачать)

9Брандмауэры.doc

— 87.00 Кб (Открыть, Скачать)

Информация о работе Курс лекций "Сетевым технологиям"