Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700169.doc
Скачиваний:
5
Добавлен:
01.05.2022
Размер:
994.3 Кб
Скачать

5.1.5. Протокол udp

UDP (User Datagram Protocol, протокол пользовательских дейтаграмм) является ненадежным протоколом без установления соединения. Фактически он не выполняет каких-либо особых функций, дополнительно к функциям протокола IP. Протокол UDP используется либо при пересылке коротких сообщений, когда накладные расходы на установление связи и проверку успешной доставки данных оказываются выше расходов на повторную (в случае неудачи) пересылку сообщения, либо в том случае, когда сама организация процесса-приложения обеспечивает установление соединения и проверку доставки пакетов (например, NFS).

Протокол UDP используют следующие прикладные процессы:

  • NFS (Network File System - сетевая файловая система),

  • TFTP (Trivial File Transfer Protocol - простой протокол передачи файлов),

  • SNMP (Simple Network Management Protocol - простой протокол управления сетью),

  • DNS (Domain Name Service - доменная служба имен).

5.1.6. Протокол tcp

TCP (Transmission Control Protocol - протокол контроля передачи) - надежный байт-ориентированный (byte-stream) протокол с установлением соединения.

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

Механизм обеспечения надежности в протоколе TCP действует по принципу PAR (Positive Acknowledgment with Retransmission), который состоит в том, что данные передаются заново, если не получено подтверждение об их успешном приеме. Время ожидания подтверждения определяется таймером повторной передачи; при сбросе таймера неподтвержденные данные передаются заново. Контроль целостности данных осуществляется с помощью контрольной суммы. Байты в TCP-сегментах нумеруются (сквозная нумерация по всему потоку) с целью восстановления их исходного порядка в пункте назначения и определения пропущенных сегментов (так как протокол IP работает без установления соединения, нет никакой гарантии, что все IP-дейтаграммы, посланные от одного хоста к другому, будут следовать одним и тем же маршрутом и прибывать к месту назначения в порядке отправки, а точнее - что они вообще будут прибывать к месту назначения).

Ниже мы рассмотрим некоторые подробности работы протокола TCP.

TCP. Установка логического соединения между хостами (handshake)

Предположим, хост А желает установить соединение с хостом В (рис. 5.2). Первый отправляемый из А в В TCP-сегмент не содержит полезных данных, а служит для установления соединения. В его заголовке (в поле Flags) установлен бит SYN, означающий запрос связи, и содержится ISN (Initial Sequence Number - начальный номер последовательности) - число, начиная с которого хост А будет нумеровать отправляемые байты (обычно 0). В ответ на получение такого сегмента хост В откликается посылкой TCP-сегмента, в заголовке которого установлен бит ACK, подтверждающий установление соединения для получения данных от хоста А. Т.к. протокол TCP обеспечивает полнодуплексную передачу данных, то хост В в этом же сегменте устанавливает бит SYN, означающий запрос связи для передачи данных от В к А, и передает свой ISN (обычно 0). Полезных данных этот сегмент также не содержит. Третий TCP-сегмент в сеансе посылается из А в В в ответ на сегмент, полученный из В. Так как соединение АВ можно считать установленным (получено подтверждение от В), от хост А включает в свой сегмент полезные данные, нумерация которых начинается с номера ISN(A)+1 (обычно 1). Данные нумеруются по количеству отправленных байт. В заголовке этого же сегмента хост А устанавливает бит ACK, подтверждающий установление связи BA, что позволяет хосту В включить в свой следующий сегмент полезные данные для А.

Рис. 5.2. Установка TCP-соединения

Сеанс обмена данными заканчивается процедурой разрыва соединения, которая аналогична процедуре установки, с той разницей, что вместо SYN для разрыва используется служебный бит FIN («данных для отправки больше не имею»), который устанавливается в заголовке последнего сегмента с данными, отправляемого хостом.

TCP. Использование скользящих окон

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

Протокол TCP формирует подтверждения не для каждого конкретного успешно полученного пакета, а для всех данных, от начала посылки до некоторого порядкового номера ACK SN (Acknowledge Sequence Number). В качестве подтверждения успешного приема, например, первых 2000 байт, высылается ACK SN = 2000: это означает, что все данные в байтовом потоке под номерами от ISN+1=1 до данного SN (2000) успешно получены (рис. 5.3). Вместе с посылкой отправителю ACK SN получатель объявляет также «размер окна», например - 6000. Это значит, что отправитель может посылать данные с порядковыми номерами от текущего ACK SN+1 = 2001 до (ACK SN + размер окна) = 8000, не дожидаясь подтверждения со стороны получателя. Допустим, в данный момент отправитель посылает тысячебайтовый сегмент с порядковым номером данных SN=4001. Если не будет получено новое подтверждение (новый ACK SN), отправитель будет посылать данные, пока он остается в пределах объявленного окна, т.е. до номера 8001. После этого посылка данных будет прекращена до получения очередного подтверждения и (возможно) нового размера окна. Однако, размер окна выбирается таким образом, чтобы подтверждения успевали приходить вовремя и остановки передачи не происходило ‑ для этого и предназначен метод скользящего окна. Размер окна может динамически изменяться получателем. Например, для временной остановки посылки данных достаточно объявить нулевое окно.

Рис 5.3. Метод скользящего окна.

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

5.2. IP-адреса

IP-адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет. Часто говорят, что IP-адрес присваивается хосту; это верно в случае, если хост имеет один сетевой IP-интерфейс (например, не является маршрутизатором). IP-адреса принято записывать разбивкой всего адреса по октетам, каждый октет записывается в виде десятичного числа, числа разделяются точками. Например, адрес

10100000010100010000010110000011

записывается как

10100000.01010001.00000101.10000011 = 160.81.5.131.

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