На каком уровне работает протокол ip: Что такое TCP/IP и как работает этот протокол – База знаний Timeweb Community
Содержание
Что такое TCP/IP и как работает этот протокол – База знаний Timeweb Community
Протокол TCP/IP – это целая сетевая модель, описывающая способ передачи данных в цифровом виде. На правилах, включенных в нее, базируется работа интернета и локальных сетей независимо от их назначения и структуры.
Что такое TCP/IP
Произошло наименование протокола от сокращения двух английских понятий – Transmission Control Protocol и Internet Protocol. Набор правил, входящий в него, позволяет обрабатывать как сквозную передачу данных, так и другие детали этого механизма. Сюда входит формирование пакетов, способ их отправки, получения, маршрутизации, распаковки для передачи программному обеспечению.
Стек протоколов TCP/IP был создан в 1972 году на базе NCP (Network Control Protocol), в январе 1983 года он стал официальным стандартом для всего интернета. Техническая спецификация уровней взаимодействия описана в документе RFC 1122.
В составе стека есть и другие известные протоколы передачи данных – UDP, FTP, ICMP, IGMP, SMTP. Они представляют собой частные случаи применения технологии: например, у SMTP единственное предназначение заключается в отправке электронных писем.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Уровни модели TCP/IP
Протокол TCP/IP основан на OSI и так же, как предшественник, имеет несколько уровней, которые и составляют его архитектуру. Всего выделяют 4 уровня – канальный (интерфейсный), межсетевой, транспортный и прикладной.
Канальный (сетевой интерфейс)
Аппаратный уровень обеспечивает взаимодействие сетевого оборудования Ethernet и Wi-Fi. Он соответствует физическому из предыдущего стандарта OSI. Здесь задача состоит в кодировании информации, ее делению на пакеты и отправке по нужному каналу. Также измеряются параметры сигнала вроде задержки ответа и расстояния между хостами.
Межсетевой (Internet Layer)
Интернет состоит из множества локальных сетей, объединенных между собой как раз за счет протокола связи TCP/IP. Межсетевой уровень регламентирует взаимодействие между отдельными подсетями. Маршрутизация осуществляется путем обращения к определенному IP-адресу с использованием маски.
Если хосты находятся в одной подсети, маркируемой одной маской, данные передаются напрямую. В противном случае информация «путешествует» по целой цепочке промежуточных звеньев, пока не достигнет нужной точки. Назначение IP-адреса проводится по стандарту IPv4 или IPv6 (они не совместимы между собой).
Транспортный уровень (Transport Layer)
Следующий уровень отвечает за контроль доставки, чтобы не возникало дублей пакетов данных. В случае обнаружения потерь или ошибок информация запрашивается повторно. Такой подход дает возможность полностью автоматизировать процессы независимо от скорости и качества связи между отдельными участками интернета или внутри конкретной подсети.
Протокол TCP отличается большей достоверностью передачи данных по сравнению с тем же UDP, который подходит только для передачи потокового видео и игровой графики. Там некритичны потери части пакетов, чего нельзя сказать о копировании программных файлов и документов. На этом уровне данные не интерпретируются.
Прикладной уровень (Application Layer)
Здесь объединены 3 уровня модели OSI – сеансовый, представления и прикладной. На него ложатся задачи по поддержанию сеанса связи, преобразованию данных, взаимодействию с пользователем и сетью. На этом уровне применяются стандарты интерфейса API, позволяющего передавать команды на выполнение определенных задач.
Возможно и использование «производных» протоколов. Например, для открытия сайтов используется HTTPS, при отправке электронной почты – SMTP, для назначения IP-адресов – DHCP. Такой подход упрощает программирование, снижает нагрузку на сеть, увеличивает скорость обработки команд и передачи данных.
Порты и сокеты – что это и зачем они нужны
Процессы, работающие на прикладном уровне, «общаются» с транспортным, но они видны ему как «черные ящики» с зашифрованной информацией. Зато он понимает, на какой IP-адрес адресованы данные и через какой порт надо их принимать. Этого достаточно для точного распределения пакетов по сети независимо от месторасположения хостов. Порты с 0 до 1023 зарезервированы операционными системами, остальные, в диапазоне от 1024 до 49151, условно свободны и могут использоваться сторонними приложениями.
Комбинация IP-адреса и порта называется сокетом и используется при идентификации компьютера. Если первый критерий уникален для каждого хоста, второй обычно фиксирован для определенного типа приложений. Так, получение электронной почты проходит через 110 порт, передача данных по протоколу FTP – по 21, открытие сайтов – по 80.
Преобразование IP-адресов в символьные адреса
Технология активно используется для назначения буквенно-цифровых названий веб-ресурсов. При вводе домена в адресной строке браузера сначала происходит обращение к специальному серверу DNS. Он всегда прослушивает порт 53 у всех компьютеров, которые подключены к интернету, и по запросу преобразует введенное название в стандартный IP-адрес.
После определения точного местонахождения файлов сайта включается обычная схема работы – от прикладного уровня с кодированием данных до обращения к физическому оборудованию на уровне сетевых интерфейсов. Процесс называется инкапсуляцией информации. На принимающей стороне происходит обратная процедура – декапсуляция.
Что такое TCP/IP – как работает, как настроить на Windows, MacOS
TCP/IP (Transmission Control Protocol/Internet Protocol) – это модель передачи цифровых данных. Протокол передачи TCP/IP описывает правила передачи данных, стандарты связи между компьютерами, а также содержит соглашения о маршрутизации и межсетевом взаимодействии.
Что такое протокол и для чего он нужен? Протокол – это набор правил, благодаря которым устройства обмениваются данными через интернет. Эти правила сообщают устройствам о том:
- Как начинать общение и приветствовать другую сторону.
- Как договориться с другим устройством о параметрах передачи данных.
- Что делать при ошибках.
- Как узнать, что передача данных закончена.
Сетевые протоколы TCP/IP обеспечивает связь между устройствами, работающими через интернет. Обычно эти устройства называют хостами. Хотя существуют и другие протоколы передачи данных, TCP/IP выделяется тем, что при его работе обеспечивается аппаратная независимость.
Это значит, что работа протокола не зависит от особенностей аппаратного обеспечения, он позволяет организовать обмен данными между любыми устройствами с различной технологией передачи данных. Кроме этого, сетевая модель TCP/IP определяет стандарты для множества различных служб связи конечных пользователей.
Благодаря TCP/IP возможны такие действия:
- Передача данных в другую систему.
- Вход в удаленную систему.
- Управление сетью.
- Отправка сообщений удаленным пользователям.
- Выполнение удаленных команд.
- Печать файлов из удаленной системы.
Как работает TCP/IP
TCP и IP два отдельных протокола, работающие вместе. Они образуют стек протоколов надежной передачи данных. Стек протоколов TCP/IP различают два типа сокетов TCP (потоковые) и UDP (датаграммные). Подробнее о сокетах расскажем далее.
UDP – простой протокол с минимальной дополнительной нагрузкой, он подходит для отправки небольших сообщений, когда не важна надежность при передаче данных. Протокол TCP – выполняет проверку доставки всех файлов адресату и проверяет не было ли ошибки при передаче информации. TCP может повторно запросить данные, если они были потеряны и регулировать загрузку сети.
Стек протоколов TCP/IP позволяет обеспечивать доставку информации в необходимое место назначения. IP определяет адрес доставки, а TCP отвечает за процесс передачи и доставки данных. Для более наглядного примера предположим, что IP – это адрес электронной почты, а TCP — это почтовый клиент, с помощью которого происходит отправка сообщений.
Протоколы используются вместе, чтобы информация имела место назначения, а сам процесс происходил безопасно.
Для работы протоколов необходима установка TCP/IP – специального программного обеспечение. Обычно, оно устанавливается с операционной системой и не требует скачивания дополнительных программ.
Как настроить TCP/IP
Настройка TCP/IP происходит в разделе основных настроек компьютера.
Windows
- В меню Пуск выберите Сеть и интернет.
- Далее перейдите в раздел Ethernet.
- В открывшемся окне найдите пункт Настройка параметров адаптера.
- Затем снова выберите пункт Ethernet, нажав на него правой кнопкой мыши, и выберите раздел свойства.
- В открывшемся окне двойным щелчком по левой кнопке мыши выберите пункт IP версии 4 (TCP/IPv4).
- В новом окне отметьте точками: Получить IP-адрес автоматически и Получить адрес DNS-сервера автоматически.
- На вкладке Альтернативная конфигурация отметьте точку Автоматический частный IP-адрес.
- Нажмите ОК, чтобы сохранить настройки.
MacOS
- Выберите меню Apple и перейдите в Системные настройки.
- Зайдите в раздел Сеть.
- Слева выберите сетевую службу, которую используете.
- Далее нажмите Подробнее.
- Выберите раздел TCP/IP.
- Для адреса IPv4, кликните всплывающее меню «Конфигурация IPv4».
- Выберите здесь один из вариантов, потом введите адрес IPv4, маску подсети и адрес маршрутизатора.
- Для адреса IPv6, кликните всплывающее меню «Конфигурация IPv6»
- Выберите один из вариантов, потом введите адрес маршрутизатора, адрес IPv6 и длину префикса.
- Если у вас есть ID клиента DHCP, укажите его.
- Нажмите ОК.
Что такое сокеты
Сокет — это программный механизм, который обеспечивает сетевое взаимодействие, помогает осуществлять передачу информации от одного компьютера к другому. Он представляет собой конструкцию, состоящую из IP-адреса и номера порта.
Сокет был придуман для того, чтобы облегчить программистам процесс написания кодов. При работе с сокетами программистам не надо разбираться с IP и портами, при программировании он указывает, что хочет создать сокет и обозначает для него IP-адрес. Программа, в которой работает специалист, создает сокет. Далее информация отправляется и принимается в сокете, а программа отвечает за ее передачу.
Основное назначение сокетов – передача данных через сеть и обеспечение связи между различными приложениями.
При настроенных сокетах в двух разных приложениях можно осуществлять передачу данных без дополнительных программ. Например, чтобы получить информацию из мобильного приложения, сервер запускает сокет для связи с этим приложением. Само приложение также открывает сокет, чтобы связаться с сервером. После этого происходит обмен данными между сервером и приложением.
Чтобы к серверу можно было одновременно подключиться нескольким приложениям, сервер делает копии сокетов.
Для чего нужны порты
Сетевые порты представляют собой 16-ти битное число от 1 до 65535, которое определяет назначение пакетов данных в пределах одного хоста. Они необходимы, чтобы осуществлять передачу информации определенного вида. Все хосты передают данные при помощи IP-адресов, когда происходит подключение к сети, порты определяют к какой программе относятся передаваемые файлы. Основные программы это:
- Web-сервер, для трансляции с веб-сайтов.
- Почтовый сервер, для обмена электронными письмами.
- FTP-сервер, для передачи информации.
Например, пользователь на своем ноутбуке открывает браузер и вбивает поисковый запрос, веб-сервер при этом автоматически отправляет данные по протоколу TCP/IP в порт 80.
При работе с почтовым клиентом Outlook используется два стандартизированных порта: порт 110 – для получения электронных сообщений и порт 25 – для отправки писем к адресату.
Важно знать, что порты обеспечивают доступ в интернет не только полезным программам, но и вирусам, которые могут открывать порты без согласия пользователя и считывать данные на его компьютере.
Что можно делать с портом
- Открыть. Чтобы знать куда направлять данные, которые пришли по адресу порта.
- Закрыть. Чтобы прекратить передачу данных.
- Пробросить. Если запрос пришел на порт 1020, отправить его на порт 2020.
- Просканировать. То есть проверить числа от 0 до 65535 на предмет ответа от кого-то из них. Если ответ найден, то это будет означать, что на этом порту работает какая-то программа. Это поможет найти уязвимости и вредоносные программы.
- Заблокировать. Например, для того, чтобы не допустить посторонних к открытому порту.
- Задать. Если для работы программы требуется порт, который у вас заблокирован, ей можно создать другой порт и проводить обмен данными через него.
Уровни протоколов TCP/IP
Одной из основных и первых моделей передачи данных была OSI (The Open Systems Interconnection model). В соответствии с ней происходит работа сетевых протоколов, так как она устанавливает основные требования и правила. Модель OSI состоит из семи уровней, каждый из них определяет нормы сотрудничества систем между собой:
- Прикладной уровень
- Сеансовый уровень
- Уровень представления
- Транспортный уровень
- Сетевой уровень
- Канальный уровень
- Физический уровень
Несколько протоколов, работающих по определенным уровням, называют стеком протоколов. Современный интернет работает на стеке протоколов TCP/IP. Различают следующие уровни стека TCP/IP:
- Прикладной уровень TCP/IP
Регулирует работу сетевых приложений, например, браузеры, программы для загрузки файлов по ftp, почтовые клиенты, SSH. Эти программы могут использовать свои протоколы обмена данными.
На прикладном уровне передача информации осуществляется путем передачи пакета с данными от одного сетевого узла к другому. Пересылка данных от хоста-отправителя к хосту-получателю осуществляется при помощи протокола IP, который сообщает адрес получателя и указывает номер порта. Благодаря IP сеть определяет откуда пришел пакет данных и куда его следуют отправить.
Комбинация IP-адреса и номера порта передачи данных называется сокетом. Определенные порты используют для упрощения стандартов, каждый порт соответствует функциональному назначению приложения (Например, почтовый SMTP-сервер использует 25 порт).
- Транспортный уровень TCP/IP
Работу этого уровня определяют протоколы TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол TCP анализирует переданные пакеты информации и, в случае ошибки, повторно запрашивает пакеты. Также он следит за верной последовательностью переданных пакетов. UDP – протокол без установки соединения, он выполняет небольшую проверку и считается ненадежным. Отправка информации с помощью UDP выполняется быстрее по сравнению с TCP.
Передача данных начинается с установки соединения: хост-клиент отправляет фрагмент данных с номером последовательности и флагом SYN (служит для обозначения начала установки соединения). Сервер выделяет память для обработки задачи и назад отправляет фрагмент с номером последовательности и флагами SYN и ACK (служит для обозначения получения подтверждения).
Получив флаг SYN, хост-клиент отправляет сегмент с флагом ACK, в том случае, когда этот флаг узел уже получил, включается режим ESTABLISHED ( или активное соединение). Если, повторив свой запрос, хост не получает ответа, то через некоторое время включается режим CLOSED (или завершение сеанса связи):
- Хост-получатель шлет хосту-отправителю флаг FIN (конец передачи данных).
- Узел возвращает флаги ответа ACK, FIN о завершении связи.
- Хост-клиент устанавливает соединение, и шлет хосту сигнал о завершении сессии в виде флага ACK (получение подтверждения).
- Межсетевой или сетевой уровень TCP/IP
Так как глобальная сеть объединяет в себе множество локальных сетей, то сетевой уровень нужен для регламентирования передачи данных и взаимодействия локальных сетей.
Основные функции межсетевого уровня: доставка пакетов с информацией между сетями, выбор оптимального пути перемещения данных, согласование разных технологий передачи информации, фильтрация трафика, предотвращение перегрузок при передаче.
IP (Internet Protocol) – основной протокол межсетевого уровня. Он отвечает за перемещение пакетов между подсетями — от одного пограничного маршрутизатора до другого, пока данные не достигнут сети назначения.
- Канальный уровень TCP/IP
При передаче информации от одного хоста к другому все данные делятся на пакеты, которые передаются по нужным каналам связи. Канальный уровень определяет физические свойства обмена информацией: максимальное расстояние передачи пакетов, частота сигнала, возможное время задержки ответа от хоста.
Чаще всего на этом уровне используют протокол Ethernet, он определяет проводные соединения и электросигналы на физическом уровне. Когда хост собирается передать пакет информации, он проверяет свободен ли канал в этот момент (по наличию несущей частоты в кабеле). Если частота не найдена, то начинается передача данных. Передача информации ограничивается по времени, она не может превышать, а также быть меньше заданной величины. Это необходимо для предотвращения единоличного использования сети одним компьютером и доступом к сети другим пользователям.
Зачем нужны уровни сетевой модели TCP/IP? Передача файлов между двумя хостами напрямую невозможна. Сначала пакеты данных попадают на сетевой уровень, чтобы получить IP-адрес. На транспортном уровне, с помощью протокола TCP, отдельные части данных передаются хосту. На каждом уровне к передаваемым файлов добавляется служебная информация: например, указание порта, чтобы распознать приложение. Кроме того, информацию могут добавлять протоколы Ethernet, IP, TCP и другие.
Такое наслоение правил и дополнительной информации называется стеком. Таким образом, стек – набор сетевых протоколов с иерархической структурой. Главная задача стека – достаточный набор правил, который обеспечивает взаимодействие устройств в интернете.
Чтобы все протоколы могли работать одновременно и не конфликтовали между собой, были выделены уровни стека протоколов TCP/IP. Каждый уровень решает свою определенную задачу, что снижает возникновение сбоев и незавершенных операций.
Заключение
Протокол интернета TCP/IP популярен своей возможностью реализовать широкий набор функций: совместное использование файлов, принтеров, удаленный доступ к системам и серверам. Стек TCP/IP – надежный набор протоколов, благодаря которым легко налаживаться работа приложений, а управление маршрутизацией удобно настраивается.
Стек интернет-протокола
Стек интернет-протокола
ХенрикФристык, июль 1994 г.
Как упоминалось в разделе Интернет,
Интернет — это абстракция от базовых сетевых технологий.
и разрешение физических адресов. В этом разделе представлены основные
компонентов стека интернет-протокола и связывает стек с
Модель стека эталонных протоколов ISO OSI. Модель Интернета
стек протоколов показан на рисунке ниже.
В этом документе описываются различные части, представленные на этой диаграмме.
Описаны протоколы верхнего уровня, например, FTP, Telnet, TFTP и т. д.
в протоколе уровня представления
раздел. Это оставляет следующие темы в качестве разделов в этом
документ:
- Интернет-протокол (IP)
- Протокол пользовательских дейтаграмм (UDP)
- Протокол управления передачей (TCP)
- Протокол управления передачей транзакций (T/TCP)
- TCP/IP и OSI/RM
Интернет-протокол (IP)
Как видно на рисунке выше, стек Интернет-протокола обеспечивает
надежная ветвь с установлением соединения (TCP) и без установления соединения
обе ненадежные ветви (UDP) строятся поверх интернет-протокола.
Интернет-протокол
уровень в стеке протоколов TCP/IP — это первый уровень, который вводит
абстракция виртуальной сети, которая является основным принципом
Интернет-модель. Все детали физической реализации (в идеале даже
хотя это не совсем так) скрыты ниже уровня IP. IP
уровень обеспечивает ненадежную систему доставки без установления соединения.
почему это ненадежный вытекает из того, что протокол
не предоставляет каких-либо функций для восстановления после ошибок для дейтаграмм
которые дублируются, теряются или поступают на удаленный хост в
другой заказ, чем они отправляют. Если таких ошибок не возникает в
физическом уровне протокол IP гарантирует, что передача
завершено успешно.
Основной единицей обмена данными на уровне IP является Интернет.
Дейтаграмма. Формат дейтаграммы IP и краткое описание
наиболее важные поля включены ниже:
- ДЛИН.
- Количество 32-битных сегментов в заголовке IP. Без всяких
ВАРИАНТЫ, это значение равно 5 - ВИД УСЛУГИ
- Каждой дейтаграмме IP может быть присвоено значение приоритета в диапазоне от 0 до 7.
показывая важность дейтаграммы. Это чтобы позволить
внеполосные данные для маршрутизации быстрее, чем обычные данные. Этот
очень важно, так как сообщение управления Интернетом
Сообщения протокола (ICMP) передаются как часть данных IP-адреса.
дейтаграмма. Несмотря на то, что сообщение ICMP инкапсулировано в IP
дейтаграмма, протокол ICMP обычно рассматривается как неотъемлемая часть
уровня IP, а не уровня UDP или TCP. Кроме того, ТИП
Поле SERVICE позволяет классифицировать дейтаграмму, чтобы
укажите, требуется ли желаемая услуга короткое время задержки, высокая
надежность или высокая производительность. Однако для того, чтобы это имело какой-либо
В результате шлюзы должны знать более одного маршрута к удаленному хосту.
и, как описано во введении,
это не вариант. - ИДЕНТ., ФЛАГИ И СМЕЩЕНИЕ ФРАГМЕНТА
- Эти поля используются для описания фрагментации дейтаграммы.
Фактическая длина дейтаграммы IP в принципе не зависит от
длина физических кадров, передаваемых по сети,
называется максимальной единицей передачи (MTU) сети . Если
дейтаграмма длиннее, чем MTU, тогда она делится на набор
фрагменты, имеющие почти такой же заголовок, как исходная дейтаграмма, но
только тот объем данных, который помещается в физический фрейм. ИДЕНТ.
флаг используется для идентификации сегментов, принадлежащих одной и той же дейтаграмме, и
СМЕЩЕНИЕ ФРАГМЕНТА — это относительное положение фрагмента внутри
исходная дейтаграмма. Как только дейтаграмма фрагментирована, она остается как
что до тех пор, пока он не получит конечный пункт назначения. Если один или несколько сегментов
потеряны или ошибочны, вся дейтаграмма отбрасывается.Однако базовая сетевая технология не полностью скрыта
ниже уровня IP, несмотря на функциональность фрагментации.
причина в том, что MTU может варьироваться от 128 и менее до нескольких тысяч
байтов в зависимости от физической сети (Ethernet имеет MTU 1500
байт). Следовательно, это вопрос эффективности при выборе правильного
размер дейтаграммы, чтобы свести фрагментацию к минимуму. Рекомендуется
что шлюзы способны обрабатывать дейтаграммы размером не менее 576 байт.
без использования фрагментации. - ВРЕМЯ
- Это оставшееся время жизни (TTL) для дейтаграммы
когда он путешествует по Интернету. Протокол маршрутной информации
(RIP) указывает, что разрешено не более 15 переходов. - IP-АДРЕС ИСТОЧНИКА и IP-АДРЕС НАЗНАЧЕНИЯ
- Адрес источника и получателя указан в
заголовок дейтаграммы, чтобы получатель мог отправить ответ обратно в
передающий хост. Однако обратите внимание, что только адрес хоста
указано — не номер порта. Это связано с тем, что IP-протокол является
Протокол IMP-to-IMP — это , а не сквозной протокол. А
уровень требуется больше, чтобы фактически указать, какие два процесса на
передающий хост и конечный пункт назначения, который должен получить
дейтаграммы.
Обратите внимание, что IP-датаграмма оставляет место только для исходного источника.
IP-адрес и исходный IP-адрес назначения. Как упоминалось в
раздел Шлюзы и маршрутизация
адрес следующего перехода определяется инкапсуляцией.
Интернет-уровень передает IP-адреса следующий переход
адрес на сетевом уровне . Этот IP-адрес привязан к
физический адрес, и с этим адресом формируется новый кадр. Остальные
исходного кадра затем инкапсулируется в новый кадр, прежде чем он
отправить по каналу связи.
Протокол пользовательских дейтаграмм (UDP)
Протокол пользовательских дейтаграмм
(UDP) — это очень тонкий протокол, построенный поверх Интернет-протокола. Базовой единицей данных является пользователя.
дейтаграмма и протокол UDP обеспечивают такие же ненадежные,
служба без установления соединения, передающая пользовательские дейтаграммы как IP-протокол
передает свои дейтаграммы. Основное отличие состоит в том, что UDP
протокол сквозной протокол . То есть содержит
достаточно информации для передачи пользовательской дейтаграммы из одного процесса в
передающий хост другому процессу на принимающем хосте. Формат
пользовательской дейтаграммы показано ниже:
Поле LENGTH представляет собой длину пользовательской дейтаграммы, включая
заголовок, то есть минимальное значение LENGTH равно 8 байтам. Источник
PORT и DESTINATION PORT — это соединение между IP-адресом и
процесс, работающий на хосте. Сетевой порт обычно идентифицируется
целое число. Однако дейтаграмма пользователя не содержит никакого IP-адреса.
Так как же протокол UDP узнает, когда конечный пункт назначения
достиг?
При вычислении заголовка CHECKSUM протокол UDP добавляет
12-байтовый псевдозаголовок, состоящий из IP-АДРЕСА ИСТОЧНИКА,
IP-АДРЕС НАЗНАЧЕНИЯ и некоторые дополнительные поля. Когда хозяин
получает дейтаграмму UDP, он берет заголовок UDP и создает новую
псевдозаголовок, использующий собственный IP-адрес в качестве IP-АДРЕСА НАЗНАЧЕНИЯ
и IP-АДРЕС ИСТОЧНИКА, извлеченный из дейтаграммы IP. Затем это
вычисляет контрольную сумму, и если она равна контрольной сумме UDP, то
дейтаграмма получила конечный пункт назначения.
Как указано в стеке интернет-протокола
Рисунок: протокол UDP часто используется в качестве основного протокола в
протоколы приложений клиент-сервер, такие как TFTP, DNS и т. д., где
накладные расходы на создание надежной, ориентированной на соединение передачи
значительный. Эта проблема будет рассмотрена далее в следующих двух
разделы.
Протокол управления передачей (TCP)
Управление передачей
Протокол обеспечивает полнодуплексный, надежный, ориентированный на соединение
услугу прикладному уровню, как показано на рисунке стека интернет-протокола. Эта секция
описал основной принцип протокола TCP и то, как он обеспечивает
надежное обслуживание протоколов прикладного уровня.
Протокол TCP является потоково-ориентированным протоколом. Он предназначен для
предоставлять программному обеспечению прикладного уровня сервис для передачи
большой объем данных надежным способом. Он устанавливает полный дуплекс
виртуальный канал между двумя передающими хостами, чтобы оба хоста
одновременно может выкладывать данные в Интернет без указания
узел назначения после установления соединения. В протоколе управления передачей транзакций (T/TCP)
разделе клиент-серверное расширение протокола TCP.
представлен как альтернатива потоковой архитектуре.
Формат сегмента TCP
Сегмент — это основная единица данных в протоколе TCP. Как большая часть
следующие разделы основаны на этом блоке данных, формат
представлены здесь:
- ПОРТ ИСТОЧНИКА, ПОРТ НАЗНАЧЕНИЯ
- Протокол TCP использует тот же трюк с использованием псевдозаголовка
вместо передачи исходного IP-адреса и получателя
IP-адрес уже включен в IP-датаграмму. Поэтому только
номера портов необходимы для однозначного определения взаимодействующего
хосты. - КОД
- Это поле используется для указания содержимого сегмента и, если
должно быть предпринято определенное действие, например, если отправитель достиг
EOF в потоке. - ОПЦИИ
- Протокол TCP использует поле OPTIONS для обмена информацией
например, максимальный размер сегмента, принятый между уровнями TCP на
два хоста. Текущие флаги определены- URG Поле срочного указателя допустимо
- ACK Поле подтверждения действительно
- PSH Этот сегмент запрашивает отправку
- RST Сбросить соединение
- SYN Синхронизировать порядковые номера
- FIN Отправитель достиг конца своего потока байтов
- СМЕЩЕНИЕ
- Это целое число указывает смещение пользовательских данных в
сегмент. Это поле требуется только потому, что число битов, используемых в
Поле OPTIONS может варьироваться - СРОЧНЫЙ УКАЗАТЕЛЬ
- Это поле можно инициализировать, чтобы оно указывало на место в пользовательском
данные, где размещается срочная информация, такая как коды выхода и т. д.
Тогда хост-получатель может обработать эту часть сразу же, как только она
получает сегмент.
Надежная передача
На уровне IP-протокола пакеты могут отбрасываться из-за сетевых
перегруженность, сбой шумового шлюза и т. д. Для обеспечения надежного
службы, TCP должен восстанавливать данные, которые повреждены, потеряны,
продублированы или доставлены не по порядку по интернет-связи
система. Это достигается назначением НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ каждому байту.
передано и требует положительного подтверждения (ACK)
от принимающего хоста. Если ACK не получен в течение тайм-аута
интервал, данные передаются повторно. В приемнике последовательность
числа используются для правильного упорядочивания сегментов, которые могут быть получены
порядка и устранения дубликатов. Повреждения обрабатываются путем добавления
контрольную сумму для каждого переданного сегмента, проверяя ее в приемнике, и
удаление поврежденных сегментов. Принцип проиллюстрирован на
рисунок ниже:
Хост A передает пакет данных на хост B , но
пакет теряется до того, как достигает пункта назначения. Однако,
Host A установил таймер, когда ожидать ACK от Host
B , поэтому, когда этот таймер истечет, пакет будет передан повторно.
сложная часть метода заключается в том, чтобы найти значение периода ожидания
поскольку сегмент TCP может перемещаться по сетям с разной скоростью с
разные нагрузки. Это означает, что Время приема-передачи (RTT)
может варьироваться от сегмента к сегменту. Простой способ расчета RTT
заключается в использовании рекурсивного среднего значения с экспоненциальным окном для
уменьшить важность старых ценностей.
Как упоминалось во введении к ТКП
раздел, протокол является потоково-ориентированным протоколом. Оно использует
неструктурированные потоки без метода индексации пользовательских данных, например. как
записи и т. д. Кроме того, длина TCP-сегмента может варьироваться в зависимости от
случай для IP-датаграммы и пользовательской дейтаграммы UDP. Следовательно
подтверждение не может быть основано на номере сегмента, но должно
на основе успешно переданных байтов.
Однако принцип PAR очень неэффективен, так как отправляющий узел
должен дождаться подтверждения, прежде чем он сможет отправить следующий сегмент.
Это означает, что минимальное время между двумя сегментами равно 1 RTT.
плюс время, необходимое для обслуживания сегментов на обоих концах. ПТС
Протокол решает эту проблему, используя скользящие окна на обоих концах.
Этот метод позволяет передающему хосту отправить столько байтов, сколько может
храниться в окне отправки, а затем ждать подтверждения как
удаленный хост получает сегменты и отправляет данные в другой
направление. Подтверждение, отправленное обратно, является кумулятивным, так что оно
все время показывает следующий байт , который ожидает принимающий хост
чтобы увидеть. Пример с большим размером окна и выборочным
ретрансляция показана на рисунке:
Байт номер 1 потерян, поэтому Host B никогда не отправляет положительный ответ.
подтверждение. Когда Host A истекает по тайм-ауту на байте 1, он повторно передает
это. Однако, поскольку остальные байты со 2-го по 5-й передаются
успешно следующее подтверждение может немедленно перейти к 6, что
является следующим ожидаемым байтом. Байт 2 также повторно передается как Хост
точно не знает, сколько байтов ошибочно. Хост
B просто отбрасывает байт 2, так как он уже загружен.
Технику окна также можно использовать для обеспечения контроля перегрузки.
механизм. Как указано в сегменте TCP
Формат Рисунок Каждый сегмент имеет поле WINDOW, которое указывает, как
много данных, которые хост готов получить. Если хост сильно загружен,
это может уменьшить параметр WINDOW и, следовательно, скорость передачи
капли.
Однако, поскольку протокол TCP является сквозным протоколом, он не может видеть
если проблема перегрузки возникла в промежуточном Интерфейс
Процессор сообщений (IMP) (часто называемый процессором с коммутацией пакетов ).
узел ) и, следовательно, он не имеет возможности контролировать его, регулируя
размер окна. TCP решает эту проблему с помощью контрольного сообщения Интернета.
Сообщения о подавлении источника протокола (ICMP).
Установление соединения
Когда необходимо открыть TCP-соединение, используется трехстороннее рукопожатие (3WHS).
чтобы установить виртуальный канал, который существует до тех пор, пока
соединение закрывается в конце передачи данных. 3WHS это
описан ниже, так как это важная часть TCP
протокола, но также показывает некоторую неэффективность протокола.
принцип 3WHS показан на рисунке ниже:
Блоки в середине символизируют соответствующую часть TCP.
сегмент, то есть НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ, НОМЕР ПОДТВЕРЖДЕНИЯ и
код. Активный хост A отправляет сегмент, указывающий, что он
начинает свой ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР с x. Хост B отвечает ACK
и указывает, что он начинается с НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ y. На третьем
сегменте, оба хоста соглашаются с порядковыми номерами и тем, что они
готов к передаче данных.
На рисунке только Host A выполняет активное открытие. На самом деле два
хосты могут открывать одновременно, и в этом случае оба хоста выполняют
SYN-RECEIVED, а затем синхронизируйтесь соответствующим образом. Основная причина
для 3WHS состоит в том, чтобы предотвратить инициирование старых дублирующих соединений от
вызывая путаницу.
Обратите внимание, что НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ сегментов 3 и 4 одинаков, потому что
ACK не занимает место для порядкового номера (если это так, то протокол
закончит ACKing ACK!).
Однако установление TCP-соединения несколько обременительно.
во многих приложениях, особенно в клиент-серверных приложениях
например Всемирная паутина. В следующем разделе альтернатива
представлено более легкое установление соединения.
Протокол управления передачей транзакций (T/TCP)
Протокол TCP является протоколом с высокой степенью симметрии, поскольку оба хоста могут
передавать и получать данные одновременно. Тем не менее, не все
приложения симметричны по своей природе. Типичным примером является
протокол клиент-сервер, такой как домен
Служба имен. Транзакционная передача
Протокол управления (T/TCP), который является очень новым протоколом (июль 1994 г.)
предлагает альтернативу TCP, когда требуется высокая производительность в
клиент-серверные приложения. Некоторые требования высокого
протоколы, ориентированные на транзакцию производительности, перечислены ниже:
- Взаимодействие между клиентом и сервером основано на
запрос, за которым следует ответ, то есть подход без сохранения состояния. - Протокол должен гарантировать выполнение транзакции
не более одного раза, и любые повторяющиеся пакеты, полученные сервером, должны
быть отброшены. - Нет явной процедуры открытия или закрытия соединения. Это
напротив TCP и 3WHS, как описано выше. - Минимальная задержка транзакции для клиента должна быть Раунд
Время поездки (RTT) + Время обработки сервером (SPT) . То есть
в основном то же требование, что и отсутствие явной процедуры открытия или закрытия. - Протокол должен поддерживать надежный минимум
транзакция ровно 1 сегмента в обоих направлениях.
В этом разделе описывается, как протокол TTCP обрабатывает эти
требований, а также которые могут повлиять на мировой
Веб-модель относительно производительности.
Неявное установление соединения
Протокол T/TCP, как указано в названии, основан на протоколе TCP.
протокола, а T/TCP обратно совместим с TCP. Однако один из
особенности протокола T/TCP в том, что он может обходить 3WHS
описано в предыдущем разделе, но в случае
сбой может разрешить процедуру 3WHS.
3HWS был введен для предотвращения старых дубликатов.
инициации соединения от создания путаницы. Однако T/TCP обеспечивает
альтернатива этому путем введения трех новых параметров в
Поле OPTION в сегменте TCP:
- СЧЕТЧИК СОЕДИНЕНИЙ (СС)
- Это 32-битный номер воплощения, в котором уникальное значение
назначается всем сегментам, отправляет с Host A на Host B и
другое отличное число в другую сторону. Ядро на обоих хостах сохраняет
кэш всех номеров CC, используемых в настоящее время подключениями к удаленным
хосты. При каждом новом соединении номер CC клиента монотонно
увеличивается на 1, чтобы сегмент, принадлежащий новому соединению, мог
быть отделены от старых дубликатов от предыдущих подключений. - СЧЕТЧИК СОЕДИНЕНИЙ НОВЫЙ (CC.NEW)
- В некоторых ситуациях принцип монотонно возрастающей
значение CC может быть нарушено либо из-за сбоя хоста, либо из-за того, что
достигается максимальное число, то есть 4G, и счетчик возвращается к 0.
На практике это возможно, потому что один и тот же номер CC является глобальным для
все соединения. В этой ситуации отправляется сообщение CC.NEW, и удаленный
хост сбрасывает свой кеш и возвращается к обычному TCP-соединению 3WHS
учреждение. Этот сигнал всегда будет посылаться из
клиент и до сервер. - СОЕДИНЕНИЕ СЧЕТЧИКА ЭХО (CC.ECHO)
- В ответе сервера поле CC.ECHO содержит значение CC
отправить клиентом, чтобы клиент мог проверить ответ как
принадлежность к конкретной сделке.
Байпас 3WHS показан на следующем рисунке:
В примере два сегмента отправляются в обоих направлениях. Соединение
устанавливается, когда первый сегмент достигает сервера. Клиент остается в
Состояние TIME-WAIT, которое объясняется в следующем разделе.
Прерывание соединения
Каждое соединение TCP или UDP между двумя хостами однозначно идентифицируется
следующей 5-кортежностью:
- Протокол (UDP, TCP)
- IP-адрес хоста А
- Номер порта хоста A
- IP-адрес хоста B
- Номер порта хоста B
Всякий раз, когда соединение TCP было закрыто, описанная ассоциация
кортеж из 5 переходит в состояние ожидания, чтобы гарантировать, что оба хоста
получено окончательное подтверждение процедуры закрытия.
время ожидания называется TIME-WAIT и по умолчанию равно 2*MSL.
(120 секунд), где MSL — максимальное время жизни сегмента. То есть,
два хоста не могут выполнить новую транзакцию, используя один и тот же 5-кортеж
по крайней мере до 120 секунд после того, как предыдущее соединение было
прекращено. Один из способов обойти эту проблему — выбрать другой
5-кортеж, но как упоминалось в расширении TCP для
Транзакции — Концепции, которые не масштабируются из-за чрезмерного
объем пространства ядра, занимаемый зависшими завершенными TCP-соединениями
вокруг.
Однако номера T/RCP CC обеспечивают уникальную идентификацию каждого
транзакцию, поэтому протокол T/TCP может усекать
WAIT-STATE путем сравнения номеров CC. Этот принцип можно посмотреть
в качестве расширения конечного автомата одной транзакции, чтобы также включить
информация о предыдущих и будущих транзакциях с использованием одного и того же 5-кортежа.
TTCP и Всемирная паутина
Как будет показано в описании World-Wide Web этой диссертации, принцип
Всемирной паутины — это транзакционно-ориентированный обмен данными
объект. Вот почему протокол T/TCP очень интересен.
в этой перспективе.
TCP/IP и OSI/RM
Международная организация по стандартизации (ISO) разработала второй
преобладающая схема многоуровневого протокола, называемая открытой системой ISO .
Эталонная модель взаимосвязи (OSI/RM) . В этом разделе представлены
эталонной модели OSI и сравнивает ее со стеком протоколов TCP/IP.
как показано на рисунке.
- Физический уровень
- Задает физическое соединение между хост-компьютерами и
IMP и как биты передаются по каналу связи. - Канальный уровень
- Этот уровень определяет, как данные перемещаются между IMP с использованием
кадров . Его основная задача — изменить сервис с
физического уровня в пакетно-ориентированную безошибочную передачу. - Сетевой уровень
- Кадры уровня канала передачи данных организованы в
пакетов и направленных через сеть. Связи
все еще между IMPs. - Транспортный уровень
- Первый уровень, обеспечивающий сквозную транспортную услугу. Это
гарантирует, что переданные данные правильно поступят на другой конец. - Сеансовый уровень
- Этот уровень определяет, как два хоста могут устанавливать сеансы, когда
данные могут передаваться в обоих направлениях по виртуальному соединению
между двумя хозяевами. - Уровень представления
- Уровень представления вводит набор синтаксиса и семантики
информация, передаваемая через нижние уровни протокола. - Прикладной уровень
- Этот уровень определяет независимую от платформы виртуальную сеть
терминал, чтобы прикладные программы могли обмениваться данными независимо от
используемое внутреннее представление данных.
Несмотря на то, что OSI/RM и TCP/IP можно сравнивать таким образом,
существует несколько существенных различий между OSI/RM и TCP/IP.
стек протоколов, но самым фундаментальным является то, что OSI/RM является
стандартизированная модель для того, как функциональность протокола
стек можно организовать. В нем не указаны точные услуги и
протоколы, которые будут использоваться на каждом уровне, тогда как TCP/IP является результатом
экспериментальное исследование. Несмотря на это, модель OSI/RM была
на основе нескольких реализаций стека протоколов, таких как X.25, обсуждаемых
в Критике X. 25
Еще одно отличие заключается в том, где находится интеллект.
расслоение. OSR/RM представляет надежный сервис на канальном уровне.
тогда как TCP/IP обладает интеллектом только на транспортном уровне. Оба
решения имеют преимущества и недостатки. Когда достоверные данные
услуга передачи размещается в нижних слоях клиентов, использующих
сеть для связи может быть очень простой, поскольку они не имеют
для обработки сложных ошибочных ситуаций. Недостаток в том, что
производительность снижается из-за чрезмерного количества управляющей информации
передаются и обрабатываются на каждом хосте.
Хенрик
Фристик, [email protected], июль 1994 г.
Что такое Интернет-протокол и как работает Интернет?
Интернет-протокол, или IP, является основой Интернета. Это то, что позволяет нам молниеносно отправлять и получать информацию со всех уголков мира. Но что это такое и как это работает?
По своей сути IP — это просто набор правил и процедур, регулирующих передачу данных через Интернет. Когда вы отправляете электронное письмо, просматриваете веб-сайт или транслируете видео, ваше устройство взаимодействует с серверами и устройствами по всему миру, используя этот протокол.
Как работает IP?
Думайте об этом как о почтовой системе. Когда вы отправляете письмо, вы адресуете его, указывая имя и адрес получателя, а затем опускаете его в почтовый ящик. Оттуда он попадает в сортировочный центр, где сортируется по месту назначения, а затем отправляется в путь. ИП работает аналогичным образом.
Когда вы отправляете данные через Интернет, они разбиваются на более мелкие части, называемые пакетами. Каждый пакет содержит информацию о том, откуда он поступает и куда направляется, известную как IP-адреса источника и получателя, а также сами данные. Эти пакеты затем отправляются в Интернет, где они путешествуют по нескольким сетям и устройствам, чтобы достичь места назначения.
IP-адресация.
IP версии 4 (IPv4), до сих пор наиболее распространенная схема адресации, используемая сегодня, делит IP-адрес на подсеть и конечное устройство, точно так же, как адрес в письме, которое вы получаете, включает ваше название улицы и конкретный адрес. номер вашего дома. Например, IP-адрес назначения 192.168.1.52 относится к подсети 192.168.1.x и, в частности, к 52-му устройству в этой сети.
Коммутаторы и маршрутизаторы.
Попутно устройства, называемые коммутаторами и маршрутизаторами, используют адресную информацию в пакете, чтобы определить, куда он должен идти дальше. Они могут отправить его непосредственно к месту назначения, если оно находится в той же подсети (это называется коммутацией), или они могут отправить его на другое устройство, которое находится ближе к этой подсети (это называется маршрутизацией). Разделение Интернета и часто вашей локальной сети на более мелкие подсети делает их управляемыми и поддерживает их работу с максимальной эффективностью. Этот процесс коммутации и маршрутизации продолжается до тех пор, пока все пакеты не прибудут к месту назначения и не будут повторно собраны в исходные данные, чтобы вы могли прочитать электронную почту, просмотреть веб-сайт или посмотреть видео.
Как IP управляет данными?
IP-пары с двумя другими ключевыми протоколами для отправки данных:
- TCP (протокол управления передачей)
- UDP (протокол пользовательских дейтаграмм).
TCP используется для отправки гарантированной информации, например электронных писем и документов. Любой пакет, составляющий часть TCP-передачи, отправляет подтверждение о доставке, и если пакет не приходит, отправляется замена, поэтому получатель может быть уверен, что все электронное письмо или документ будет прочитан.
UDP используется для передачи информации в реальном времени, такой как цифровые телефонные звонки или потоковое видео. Это отправляется с максимальной эффективностью, поэтому пакеты подтверждения и/или замены не отправляются, поскольку нет смысла получать более ранний кадр из фильма после того, как действие переместилось.
Таким образом, правила IP-адресации и протоколов обеспечивают совместную работу огромного и сложного Интернета с миллионами устройств и подключений. Без стандартизированного протокола, такого как IP, был бы хаос. Устройства будут отправлять данные волей-неволей, не имея возможности гарантировать, что они достигнут места назначения.