
- •Глава 14 – Транспортный уровень.
- •14.0 Введение.
- •14.0.1 Почему я должен выполнить этот модуль?
- •14.0.2 Что я буду изучать в этом модуле?
- •14.1 Передача данных
- •14.1.1 Роль транспортного уровня
- •14.1.2 Функции транспортного уровня
- •14.1.3 Протоколы транспортного уровня
- •14.1.4 Протокол управления передачей (tcp)
- •14.1.5 Протокол пользовательских датаграмм (udp)
- •14.1.6 Соответствующий протокол транспортного уровня для соответствующего приложенияНачало формы
- •14.1.7 Проверьте ваше понимание темы - Передача данныхНачало формы
- •14.2 Обзор протокола tcp
- •14.2.1 Функции протокола tcp
- •14.2.2 Заголовок протокола tcp
- •14.2.3 Поля заголовка tcp
- •14.2.4 Приложения, использующие протокол tcp
- •14.2.5 Проверьте свое понимание темы - Обзор tcp
- •14.3 Обзор протокола udp
- •14.3.1 Функции протокола udp
- •14.3.2 Заголовок протокола udp
- •14.3.3 Поля заголовка udp
- •14.3.4 Приложения, использующие протокол udp
- •14.3.5 Проверьте свое понимание темы - Обзор udp
- •14.4 Номера портов
- •14.4.1 Несколько отдельных сеансов передачи данных
- •14.4.2 Пары сокетов
- •14.4.3 Группы номеров портов
- •14.4.4 Команда netstat
- •14.4.5 Проверить ваше понимание темы - Номера портов
- •14.5 Обмен данными по протоколу tcp
- •14.5.1 Процессы tcp-сервера
- •14.5.2 Установление tcp-соединения
- •14.5.3 Прекращение tcp-соединения
- •14.5.4 Анализ трехстороннего квитирования tcp
- •14.5.5 Видеоролик. Трехэтапное квитирование tcp
- •14.5.6 Проверьте ваше понимание темы - Процесс связи tcp
- •14.6 Надежность и управление потоком передачи данных
- •14.6.1 Надежность tcp - гарантированная и упорядоченная доставка
- •14.6.2 Видеоролик. Надежность tcp: порядковые номера и подтверждения
- •14.6.3 Надежность tcp: потеря данных и повторная передача
- •14.6.4 Видеоролик. Надежность tcp: потеря данных и повторная передача
- •14.6.5 Управление потоком tcp. Размер окна и подтверждения
- •14.6.6 Управление потоком tcp - максимальный размер сегмента (mss)
- •14.6.7 Управление потоком tcp. Предотвращение перегрузок
- •14.6.8 Проверьте свое понимание темы — надежность и управление потоком
- •14.7 Обмен данными по протоколу udp
- •14.7.1 Udp: низкие накладные расходы или надежность?
- •14.7.2 Сборка датаграмм udp
- •14.7.3 Процессы и запросы udp-сервера
- •14.7.4 Процессы udp-клиента
- •14.7.5 Проверьте ваше понимание темы - Процесс связи udp
- •14.8 Практика и контрольная работа модуля
- •14.8.1 Packet Tracer. Обмен данными с использованием tcp и udp
- •14.8.2 Что я изучил в этом модуле?
- •14.8.3 Контрольная по модулю - Транспортный уровень
14.7.5 Проверьте ваше понимание темы - Процесс связи udp
Почему UDP желателен для протоколов, которые делают простые транзакции запроса и ответа?
Управление потоком передачи данных
Легковесный
Надежность
Доставка в том же порядке
Какой оператор повторной сборки датаграммы UDP является истинным?
UDP не собирает данные повторно.
Протокол UDP просто собирает данные в том порядке, в котором они были получены.
UDP повторно собирает данные с помощью битов управления.
UDP повторно собирает данные, используя порядковые номера.
Какое из следующих действий будет допустимым исходным и конечным портами для узла, подключаемого к DNS серверу?
Источник: 53, назначение: 49152
Источник: 1812, назначение: 49152
Источник: 49152, назначение: 53
Источник: 49152, назначение: 1812
14.8 Практика и контрольная работа модуля
14.8.1 Packet Tracer. Обмен данными с использованием tcp и udp
В этом упражнении вы можете изучить функциональные особенности протоколов TCP и UDP, а также возможности мультиплексирования и функцию номеров портов при определении локального приложения, запросившего данные или отправляющего их.
14.8.2 Что я изучил в этом модуле?
Transportation of Data
Транспортный уровень — это канал между уровнем приложений и нижними уровнями, которые отвечают за передачу данных по сети. Транспортный уровень отвечает за логические связи между приложениями, работающими на разных узлах. На транспортном уровне действуют два протокола — TCP и UDP. Протоколы транспортного уровня определяют способ передачи сообщений между узлами и отвечают за управление требованиями надежности связи. Транспортный уровень отвечает за отслеживание разговоров (сеансов), сегментирование данных и повторную сборку сегментов, добавление информации заголовка, идентификацию приложений и мультиплексирование разговоров. TCP надежен, подтверждает получение данных, повторно отправляет потерянные данные, обеспечивает доставку данных в порядке их отправки. Используйте TCP для электронной почты и Интернета. UDP характеризует высокая скорость, малый объем дополнительного трафика, не требуется подтверждение, нет повторной отправки потерянных данных, данные обрабатываются в порядке их поступления. Используйте UDP для VoIP и DNS.
Обзор протокола TCP
TCP устанавливает сеансы, обеспечивает надежность, обеспечивает доставку одной и той же доставки и поддерживает управление потоком. Сегмент TCP добавляет 20 байт (то есть 160 бит) накладных расходов при инкапсуляции данных уровня приложения. Поля заголовка TCP включают порты источника и назначения, порядковый номер, номер подтверждения, длину заголовка, управляющие биты и размер окна. Приложения, использующие протокол TCP: HTTP, FTP, SMTP и Telnet.
UPD Overview
UDP восстанавливает данные в том порядке, в котором они были получены, потерянные сегменты повторно не отправляются, не создаются сеансы, UPD не сообщает отправителю о доступности ресурсов. Заголовок UDP имеет только четыре поля: порт источника, порт назначения, длина и контрольная сумма. Приложения, использующие UDP, включают DHCP, DNS, SNMP, TFTP, VoIP и видеоконференции.
Номера портов
Протоколы транспортного уровня TCP и UDP используют номера портов для управления несколькими одновременными соединениями. Поэтому поля заголовков TCP и UDP определяют номер порта приложения источника и назначения. Номера порта источника и порта назначения записываются в сегмент. Затем эти сегменты инкапсулируются в пакете IP. В пакете IP записывается IP-адрес источника и назначения. Сочетание IP-адреса источника и номера порта источника или IP-адреса назначения и номера порта назначения называется сокетом. Сокет используется для определения сервера и служб, запрашиваемых клиентом. Существует диапазон номеров портов от 0 до 65535. Этот диапазон разделен на группы: известные порты, зарегистрированные порты, частные и/или динамические порты. Существует несколько хорошо известных номеров портов, зарезервированных для обычных приложений, таких как FTP, SSH, DNS, HTTP и другие. В некоторых случаях требуется определить, какие TCP-соединения открыты и действуют на сетевом узле. Проверить состояние этих соединений помогает важное программное средство – netstat.
Обмен данными по протоколу UDP
Каждый процесс приложения, работающий на сервере, использует номер порта. Номер порта автоматически назначается или настраивается системным администратором вручную. Процессы TCP-сервера являются следующими: клиенты, отправляющие TCP-запросы, запрашивающие порты назначения, запрашивающие порты источника, реагируя на запросы порта назначения и порта источника. Чтобы завершить один сеанс связи, поддерживаемый протоколом TCP, необходимы четыре операции обмена данными, которые завершат оба сеанса. Прекращение может инициировать клиент или сервер. Трехстороннее рукопожатие устанавливает, что конечное устройство присутствует в сети, проверяет, что конечное устройство имеет активную службу и принимает запросы на номер порта назначения, который инициирующий клиент намеревается использовать, и уведомляет устройство назначения о том, что исходный клиент намерен установить сеанс связи по этому номеру порта. Флаги шести битов управления: URG, ACK, PSH, RST, SYN и FIN.
Надежность и управление потоком передачи данных
Для того чтобы получатель смог расшифровать изначальное сообщение, данные в этих сегментах повторно собираются в исходном порядке. В заголовке каждого пакета указываются порядковые номера. Независимо от того, насколько хорошо разработана сеть, иногда происходит потеря данных. TCP предоставляет способы управления потерями сегмента. Среди них — механизм повторной передачи сегментов с данными, получение которых не было подтверждено. В настоящее время серверные операционные системы обычно используют опциональную функцию TCP, называемую выборочным подтверждением (SACK), согласованную во время трехстороннего рукопожатия. Если оба узла поддерживают SACK, приемник может явно определить, какие сегменты (байты) были получены, включая любые сегменты прерывания. Поэтому отправляющему хосту нужно будет только повторно передать недостающие данные. Управление потоком позволяет поддерживать надежность передачи по протоколу TCP, регулируя скорость потока данных между узлами источника и назначения в течение определенного сеанса. Для этого в заголовке TCP имеется 16-битное поле, которое называется размером окна. Процесс отправки подтверждений узлом назначения по мере обработки полученных байтов и непрерывная регулировка окна отправки источника называются скользящими окнами. Источник передает 1460 байт данных в каждом сегменте. Это типичный MSS, который может получить устройство назначения. Во избежание таких ситуаций и для предотвращения перегрузок сети в протоколе TCP предусмотрен ряд соответствующих механизмов, таймеров и алгоритмов. Следует отметить, что узел источника сокращает именно количество неподтвержденных байтов, которые он отправляет, а не размер окна, определенный узлом назначения.
Обмен данными по протоколу UDP
UDP — это простой протокол, обеспечивающий работу основных функций транспортного уровня. Как и в случае с сегментами TCP, когда на узел назначения отправляются датаграммы UDP, они могут использовать разные пути и прибыть в неправильном порядке. Протокол UDP не отслеживает порядковые номера, как это делает протокол TCP. Протокол UDP не может повторно скомпоновать датаграммы в том порядке, который использовался при их передаче. Таким образом, протокол UDP просто повторно собирает данные в том порядке, в котором они были приняты, и пересылает их приложению. Если последовательность данных важна для работы приложения, оно должно определить правильную последовательность и выбрать оптимальный способ обработки данных. Серверным приложениям на базе UDP назначаются широко известные или зарегистрированные номера портов. Если UDP получает датаграмму, адресованную одному из этих портов, он пересылает данные приложения соответствующему приложению, исходя из его номера порта. Процесс UDP-клиента динамически выбирает номер порта из диапазона номеров портов и использует его в качестве порта источника для сеанса связи. Как правило, порт назначения — это общеизвестный или зарегистрированный номер порта, присвоенный процессу сервера. После того как клиент выбрал порты источника и назначения, эта же пара портов будет указана в заголовке всех датаграмм, которые используются в процессе пересылки. Для того чтобы сервер мог вернуть данные клиенту, номера портов источника и назначения в заголовке датаграммы указываются в обратном порядке.