Взаимодействие между прикладными программами и транспортным протоколом осуществляется через

Обновлено: 08.07.2024

Эта статья о протоколах, составляющих архитектуру Интернета. Только для сетевого протокола IP см. Протокол Интернета .

Набор протоколов Интернета - это концептуальная модель и набор протоколов связи, используемых в Интернете и подобных компьютерных сетях . Он широко известен как TCP / IP, потому что основными протоколами в наборе являются протокол управления передачей (TCP) и Интернет-протокол (IP). В ходе своего развития, версии его были известны как министерства обороны ( МО ) модель , так как развитие метода сетевого финансировались Министерством обороны США через DARPA. Его реализация представляет собой стек протоколов .

Набор интернет-протоколов обеспечивает сквозную передачу данных, определяющую, как данные должны быть пакетированы, адресованы, переданы, маршрутизированы и получены. Эта функциональность организована в четыре уровня абстракции , которые классифицируют все связанные протоколы в соответствии с областью задействованной сети. [1] [2] Уровни от самого низкого до самого высокого являются канальным уровнем , содержащим методы передачи данных, которые остаются в пределах одного сетевого сегмента (ссылки); уровень Интернета , обеспечивающий межсетевое взаимодействие между независимыми сетями; транспортный уровень , обработки хост-хост связи; иприкладной уровень , обеспечивающий межпроцессный обмен данными для приложений.

В технические стандарты , лежащие в основе набора протоколов Интернет и его составные протоколы поддерживается Engineering Task Force Internet (IETF). Набор Интернет-протоколов предшествовал модели OSI , более всеобъемлющей эталонной структуре для общих сетевых систем.

СОДЕРЖАНИЕ

  • 1 История
    • 1.1 Ранние исследования
    • 1.2 Ранняя реализация
    • 1.3 Принятие
    • 1.4 Официальные спецификации и стандарты

    Пакет Интернет-протокола явился результатом исследований и разработок, проведенных Агентством перспективных исследовательских проектов Министерства обороны США ( DARPA ) в конце 1960-х годов. [3] После создания новаторской ARPANET в 1969 году DARPA начало работу над рядом других технологий передачи данных. В 1972 году Роберт Э. Кан присоединился к Отделу технологий обработки информации DARPA , где он работал как над спутниковыми пакетными сетями, так и над наземными пакетными сетями радиосвязи, и осознал ценность возможности связи между ними. Весной 1973 года Винтон Серф , который помогал разработать существующий протокол программы управления сетью ARPANET (NCP), присоединился к Кану для работы надмодели взаимодействия с открытой архитектурой с целью разработки следующего поколения протоколов для ARPANET. [ необходима цитата ] Они основывались на опыте исследовательского сообщества ARPANET и Международной сетевой рабочей группы , которую возглавлял Серф. [4]

    К лету 1973 года Кан и Серф разработали фундаментальную переформулировку, в которой различия между протоколами локальной сети были скрыты за счет использования общего межсетевого протокола , и вместо того, чтобы сеть отвечала за надежность, как в существующих протоколах ARPANET , эта функция была делегирована хостам. Серф благодарит Юбера Циммермана и Луи Пузена , дизайнера сети CYCLADES , которые оказали большое влияние на этот дизайн. [5] [6] Новый протокол был реализован как Программа управления передачей в 1974 году. [7]

    DARPA заключило контракт с BBN Technologies , Стэнфордским университетом и Университетским колледжем Лондона на разработку операционных версий протокола на нескольких аппаратных платформах. [13] В процессе разработки протокола номер версии уровня маршрутизации пакетов увеличился с версии 1 до версии 4, последняя из которых была установлена ​​в ARPANET в 1983 году. В качестве протокола он стал известен как Интернет-протокол версии 4 (IPv4). который до сих пор используется в Интернете вместе с его нынешним преемником, Internet Protocol версии 6 (IPv6).

    В 1975 году между Стэнфордом и Университетским колледжем Лондона был проведен тест связи TCP / IP с двумя сетями. В ноябре 1977 г. был проведен тест TCP / IP для трех сетей между узлами в США, Великобритании и Норвегии. Несколько других прототипов TCP / IP были разработаны в нескольких исследовательских центрах между 1978 и 1983 годами.

    Компьютер, называемый маршрутизатором, имеет интерфейс для каждой сети. Он пересылает сетевые пакеты туда и обратно между ними. [14] Первоначально маршрутизатор назывался шлюзом , но этот термин был изменен, чтобы избежать путаницы с другими типами шлюзов . [15]

    В марте 1982 года Министерство обороны США объявило TCP / IP стандартом для всех военных компьютерных сетей. [16] В том же году НОРСАР и исследовательская группа Питера Кирстайна в Университетском колледже Лондона приняли протокол. [13] [17] [18] Переход ARPANET на TCP / IP был официально завершен в день флага 1 января 1983 г., когда новые протоколы были окончательно активированы. [19]

    В 1985 году Консультативный совет Интернета (позже Совет по архитектуре Интернета ) провел трехдневный семинар по TCP / IP для компьютерной индустрии, на котором присутствовало 250 представителей поставщиков, которые продвигали протокол и привели к его расширению коммерческого использования. В 1985 году первая конференция Interop была посвящена сетевой совместимости за счет более широкого внедрения TCP / IP. Конференция была основана Дэном Линчем, одним из первых активистов Интернета. С самого начала на встрече присутствовали крупные корпорации, такие как IBM и DEC. [20]

    IBM, AT&T и DEC были первыми крупными корпорациями, принявшими TCP / IP, несмотря на наличие конкурирующих проприетарных протоколов . В IBM с 1984 года разработкой TCP / IP занималась группа Барри Аппельмана . Они сориентировались в корпоративной политике, чтобы получить поток продуктов TCP / IP для различных систем IBM, включая MVS , VM и OS / 2 . В то же время несколько небольших компаний, таких как FTP Software и Wollongong Group , начали предлагать стеки TCP / IP для DOS и Microsoft Windows . [21] Первый стек TCP / IP VM / CMS был разработан Университетом Висконсина. [22]

    Некоторые из ранних стеков TCP / IP были написаны в одиночку несколькими программистами. Джей Элински и Олег Вишнепольский [ ru ] из IBM Research написали стеки TCP / IP для VM / CMS и OS / 2 соответственно. [ необходима цитата ] В 1984 году Дональд Гиллис из Массачусетского технологического института написал протокол TCP с несколькими подключениями ntcp, который работал поверх уровня IP / PacketDriver, поддерживаемого Джоном Ромки из Массачусетского технологического института в 1983–1994 годах. Ромки использовал этот протокол TCP в 1986 году, когда была основана компания FTP Software. [23] [24] Начиная с 1985 года Фил Карн создал приложение TCP с несколькими подключениями для систем любительской радиосвязи (KA9Q TCP). [25]

    Распространение TCP / IP получило дальнейшее развитие в июне 1989 года, когда Калифорнийский университет в Беркли согласился передать код TCP / IP, разработанный для BSD UNIX, в общественное достояние. Различные корпоративные поставщики, включая IBM, включили этот код в коммерческие выпуски программного обеспечения TCP / IP. Microsoft выпустила / стек нативный TCP IP в Windows 95. Это событие доминирование помогло цементного TCP / IP над другими протоколами в сетях Microsoft на базе, в которую вошли компании IBM Systems Network Architecture (SNA), так и на других платформах , таких как Digital Equipment Corporation «с DECnet , взаимодействие открытых систем (OSI) и Xerox Network Systems (XNS).

    Тем не менее, в течение периода в конце 1980-х - начале 1990-х инженеры, организации и нации были поляризованы по вопросу о том, какой стандарт , модель OSI или набор протоколов Интернета приведут к созданию лучших и наиболее надежных компьютерных сетей. [26] [27] [28]

    В технические стандарты , лежащие в основе набора протоколов Internet и его составляющие протоколы были делегированы Engineering Task Force Интернет (IETF).

    Характерной архитектурой Internet Protocol Suite является его широкое разделение на рабочие области для протоколов, составляющих его основную функциональность. Определяющей спецификацией пакета является RFC 1122, который в общих чертах описывает четыре уровня абстракции . [1] Они выдержали испытание временем, поскольку IETF никогда не изменяла эту структуру. Как такая модель сети, Internet Protocol Suite предшествует модели OSI, более всеобъемлющей эталонной структуре для общих сетевых систем.

    Принцип конца до конца развивался с течением времени. Его первоначальное выражение ставило поддержание состояния и общего интеллекта на грани и предполагало, что Интернет, соединяющий грани, не сохраняет состояния и сосредоточен на скорости и простоте. Реальные потребности в брандмауэрах, трансляторах сетевых адресов, кэшах веб-контента и т. П. Вызвали изменения в этом принципе. [29]

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

    Протоколы канального уровня работают в рамках локального сетевого подключения, к которому подключен хост. Этот режим на языке TCP / IP называется каналом и представляет собой самый нижний компонентный уровень пакета. Ссылка включает все хосты, доступные без прохождения через маршрутизатор. Таким образом, размер канала определяется конструкцией сетевого оборудования. В принципе, TCP / IP разработан как независимый от оборудования и может быть реализован поверх практически любой технологии канального уровня. Это включает не только аппаратные реализации, но и уровни виртуальных каналов, такие как виртуальные частные сети и сетевые туннели .

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

    Канальный уровень в модели TCP / IP имеет соответствующие функции на уровне 2 модели OSI.

    Internetworking требует отправки данных из исходной сети в сеть назначения. Этот процесс называется маршрутизацией и поддерживается адресацией хоста и идентификацией с использованием иерархической системы IP-адресации . Интернет слой обеспечивает ненадежные датаграммы средство передачи между узлами , расположенных на потенциально различные IP - сетях посредством пересылки дейтаграммы соответствующего маршрутизатора следующего перехода для дальнейшей ретрансляции к месту назначения. Интернет-уровень отвечает за отправку пакетов по потенциально нескольким сетям. Благодаря этой функциональности уровень Интернета делает возможным межсетевое взаимодействие, взаимодействие различных IP-сетей и, по сути, устанавливает Интернет.

    Интернет-уровень не делает различий между различными протоколами транспортного уровня. IP передает данные для множества различных протоколов верхнего уровня . Каждый из этих протоколов идентифицируется уникальным номером протокола : например, Internet Control Message Protocol (ICMP) и Internet Group Management Protocol (IGMP) - это протоколы 1 и 2, соответственно.

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

    Поскольку IP обеспечивает доставку только с максимальной эффективностью , некоторые протоколы транспортного уровня обеспечивают надежность.

    TCP - это протокол с установлением соединения, который решает многочисленные проблемы надежности при обеспечении надежного потока байтов :

    • данные поступают по порядку
    • данные имеют минимальную ошибку (т.е. правильность)
    • повторяющиеся данные отбрасываются
    • потерянные или отброшенные пакеты повторно отправляются
    • включает контроль заторов на дорогах

    Надежность также может быть достигнута за счет использования IP по надежному протоколу передачи данных, например, высокоуровневому управлению каналом передачи данных (HDLC).

    Приложения на любом заданном сетевом адресе различаются по TCP или UDP-порту. По соглашению, некоторые хорошо известные порты связаны с конкретными приложениями.

    Транспортный уровень модели TCP / IP или уровень хост-хост примерно соответствует четвертому уровню в модели OSI, также называемому транспортным уровнем.

    Модель TCP / IP не учитывает специфику форматирования и представления данных и не определяет дополнительные уровни между прикладным и транспортным уровнями, как в модели OSI (уровни представления и сеанса). Согласно модели TCP / IP, такие функции являются областью библиотек и интерфейсов прикладного программирования .

    Протоколы прикладного уровня часто связаны с конкретными клиент-серверными приложениями, а общие службы имеют хорошо известные номера портов, зарезервированные Internet Assigned Numbers Authority (IANA). Например, протокол передачи гипертекста использует порт сервера 80, а Telnet использует порт сервера 23. Клиенты, подключающиеся к службе, обычно используют временные порты., т. е. номера портов, назначаемые только на время транзакции случайным образом или из определенного диапазона, настроенного в приложении. Хотя приложения обычно осведомлены о ключевых качествах соединения транспортного уровня, таких как IP-адреса конечных точек и номера портов, протоколы прикладного уровня обычно рассматривают протоколы транспортного уровня (и более низких уровней) как черные ящики, которые обеспечивают стабильное сетевое соединение, через которое общаться.

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

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

    Кроме того, модель TCP / IP различает пользовательские протоколы и протоколы поддержки . [35] Протоколы поддержки предоставляют услуги системе сетевой инфраструктуры. Пользовательские протоколы используются для реальных пользовательских приложений. Например, FTP - это протокол пользователя, а DNS - протокол поддержки.

    В следующей таблице показаны различные сетевые модели. Количество слоев варьируется от трех до семи.

    Некоторые сетевые модели взяты из учебников, которые являются вторичными источниками, которые могут противоречить цели RFC 1122 и других первичных источников IETF . [43]

    Три верхних уровня в модели OSI, т. Е. Прикладной уровень, уровень представления и уровень сеанса, не различаются отдельно в модели TCP / IP, которая имеет только прикладной уровень над транспортным уровнем. Хотя некоторые приложения с чистым протоколом OSI, такие как X.400 , также комбинируют их, нет требования, чтобы стек протоколов TCP / IP налагал монолитную архитектуру над транспортным уровнем. Например, протокол приложения NFS работает поверх протокола представления внешних данных (XDR), который, в свою очередь, работает через протокол, называемый удаленным вызовом процедур (RPC). RPC обеспечивает надежную передачу записей, поэтому может безопасно использовать максимально эффективный транспорт UDP.

    Различные авторы интерпретировали модель TCP / IP по-разному и расходятся во мнениях относительно того, покрывает ли канальный уровень или вся модель TCP / IP проблемы уровня 1 OSI ( физического уровня ), или же аппаратный уровень предполагается ниже канального уровня.

    Несколько авторов попытались включить уровни 1 и 2 модели OSI в модель TCP / IP, поскольку они обычно упоминаются в современных стандартах (например, IEEE и ITU ). Это часто приводит к модели с пятью уровнями, где уровень канала или уровень доступа к сети разделен на уровни 1 и 2 модели OSI.

    Протоколы IETF могут быть рекурсивно инкапсулированы, что демонстрируется протоколами туннелирования, такими как Generic Routing Encapsulation (GRE). GRE использует тот же механизм, который OSI использует для туннелирования на сетевом уровне.

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

    Уникальные реализации включают облегченный TCP / IP , стек с открытым исходным кодом , разработанный для встраиваемых систем , и KA9Q NOS , стек и связанные протоколы для любительских систем пакетной радиосвязи и персональных компьютеров, подключенных через последовательные линии.

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

    TCP/IP – Transmission Control Protocol / Internet Protocol ( Протокол Управления Передачей Данных / Межсетевой Протокол ). Стек TCP / IP – совокупность протоколов организации взаимодействия между структурами и программными компонентами сети; представляет собой программно реализованный набор протоколов межсетевого взаимодействия.


    I -й должен обеспечить интеграцию в составную сеть любой др. сети, независимо от технологии передачи данных этой сети.

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

    III -й решает задачу обеспечения надежной передачи данных между источником и адресатом.

    IV -й объединяет все сетевые службы и услуги, предоставляемые сетью польз-лю.

    Протоколы прикладного уровня.

    1) Telnet – протокол удаленного доступа (эмуляция терминала). Обеспечивает подключение пользователя за неинтеллектуальным терминалом (используется крайне редко)

    2) FTP – протокол передачи данных

    3) SMTP – протокол передачи электронной почты

    4) POP3 – почтовый протокол

    5) DNS – протокол доменных имен. Устанавливает соответствие символьный адрес – IP адрес.

    7) Kerberos – протокол защиты информации в сетях. Отвечает за пароли и ключи.

    Telnet – это прикладной протокол стека TCP/IP, обеспечивающий эмуляцию терминалов. Терминал – это устройство, состоящее из монитора и клавиатуры и используемое для взаимодействия с хост- компьютерами (обычно мэйнфреймами или мини-компьютерами), на которых выполняются программы. Программы запускаются на хосте, поскольку терминалы, как правило, не имеют собственного процессора.

    Протокол Telnet функционирует поверх TCP/IP и имеет две важные особенности, отсутствующие в других эмуляторах: он присутствует практически в каждой реализации стека TCP/IP, а также является открытым стандартом (т. е. каждый производитель или разработчик легко может, реализовать его). Для некоторых реализаций Telnet нужно, чтобы хост был сконфигурирован как Telnet-сервер. Протокол Telnet поддерживается многими рабочими станциями, работающими под управлением MS-DOS, UNIX и любых версий Windows.

    File Transfer Protocol (FTP), Trivial File Transfer Protocol (TFTP) и Network File System (NFS)

    Стек TCP/IP содержит три протокола для передачи файлов : File Transfer Protocol (FTP), Trivial File Transfer Protocol (TFTP) и Network File System (NFS). Самым распространенным протоколом является FTP, поскольку именно его чаще всего выбирают для передачи файлов пользователи Интернета. С помощью FTP можно, работая на компьютере в одном городе, подключиться к хост- компьютеру, расположенному в другом городе, и скачать один или несколько файлов. (При этом, конечно, нужно знать имя учетной записи и пароль для удаленного хоста.) Пользователи Интернета нередко с помощью FTP скачивают различные файлы (например, сетевые драйверы или обновления системы).

    FTP – это приложение, позволяющее с помощью протокола TCP передать данные от одного удаленного устройства к другому. Как и в протоколе Telnet, заголовок FTP и соответствующие данные инкапсулируются в поле полезной нагрузки пакета TCP. Преимущество FTP по сравнению с протоколами TFTP и NFS заключается в том, что FTP использует два TCP-порта: 20 и 21. Порт 21 – это управляющий порт для команд FTP, которые определяют способ передачи данных. Например, команда get служит для получения файла, а команда put используется для пересылки файла некоторому хосту. FTP поддерживает передачу двоичных или текстовых (ASCII) файлов, Для чего применяются команды binary и ascii. Порт 20 служит только для Передачи данных, задаваемых командами FTP.

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

    TFTP – это файловый протокол стека TCP/IP, предназначенный для таких задач, как передача с некоторого сервера файлов, обеспечивающих загрузку бездисковой рабочей станции. Протокол TFTP не устанавливает соединений и ориентирован на пересылку небольших файлов в тех случаях, когда появление коммуникационных ошибок не является критичным и нет особых требований к безопасности. Отсутствие соединений при работе TFTP объясняется тем, что он функционирует поверх протокола UDP (через UDP-порт 69), а не с использованием TCP. Это означает, что в процессе передачи данных отсутствуют подтверждения пакетов или не задействованы службы с установлением

    соединений, гарантирующие успешную доставку пакетов в пункт назначения.

    Simple Mail Transfer Protocol (SMTP)

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

    Dynamic Host Configuration Protocol (DHCP)

    Протокол Dynamic Host Configuration Protocol ( DHCP ) (Протокол динамически конфигурации хоста) позволяет автоматически назначать в сети 1Р-адреса с помощью DHCP-сервера. Когда новый компьютер, настроенный на работу с DHCP, подключается к сети, он обращается к DHCP-серверу, который выделяет (сдает в аренду) компьютеру IP-адрес, передавая его посредством протокола DHCP. Длительность аренды устанавливается на DHCP-сервере сетевым администратором.

    Address Resolution Protocol (ARP)

    В большинстве случаев для отправки пакета принимающему узлу отправитель должен знать как IP-адрес, так и МАС-адрес. Например, при групповых передачах используются оба адреса (IP и MAC). Эти адреса не моя совпадать и имеют разные форматы (десятичный с разделительными точками и шестнадцатеричный соответственно).

    Address Resolution Protocol (ARP) (Протокол разрешения адресов) позволяет передающему узлу получить МАС-адреса выбранного принимающего узла перед отправкой пакетов. Если исходному узлу нужен некоторый МАС-адрес, то он посылает широковещательный ARP-фрейм, содержащий свой собственный МАС-адрес и IP-адрес требуемого принимающего узла. Принимающий узел отправляет обратно пакет ARP-ответа, содержащий свой МАС-адрес. Вспомогательным протоколом является Reverse Address Resolution Protocol (RARP) (Протокол обратного разрешения имен), с помощью которого сетевой узел может определить свой собственный IP-адрес. Например, RARP используется бездисковыми рабочими станциями, которые не могут узнать свои адреса иначе как выполнив RARP-запрос к своему хост-серверу. Кроме того, RARP используется некоторыми приложениями для определения IP-адреса того компьютера, на котором он выполняются.

    Simple Network Management Protocol (SNMP)

    Simple Network Management Protocol (SNMP) (Простой протокол сетевого управления) позволяет администраторам сети непрерывно следить за активностью сети. Протокол SNMP был разработан в 1980-х годах для того, чтобы снабдить стек TCP/IP механизмом, альтернативным стандарту OSI на управление сетями – протоколу Common Management Interface Protocol (CMIP) (Протокол общей управляющей информации). Хотя протокол SNMP был создан для стека TCP/IP, он соответствует эталонной модели OSI. Большинство производителей предпочли использовать SNMP, а не CMIP, что объясняется большой популярностью протоколов TCP/IP, а также простотой SNMP. Протокол SNMP поддерживают многие сотни сетевых устройств, включая файловые серверы, карты сетевых адаптеров, маршрутизаторы, повторители, мосты, коммутаторы и концентраторы. В сравнении с этим, протокол CMIP применяется компанией IBM в некоторых сетях с маркерным кольцом, однако во многих других сетях он не встречается.

    Руководство по стеку протоколов TCP/IP для начинающих

    Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

    Основы TCP/IP

    Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.

    Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:


    Уровневая модель TCP/IP

    Три верхних уровня — прикладной, транспортный и сетевой — присутствуют как в RFC, так и у Таненбаума и других авторов. А вот стоит ли говорить только о канальном или о канальном и физическом уровнях — нет единого мнения. В RFC они объединены, поскольку выполняют одну функцию. В статье мы придерживаемся официального интернет-стандарта RFC и не выделяем физический уровень в отдельный. Далее мы рассмотрим четыре уровня модели.

    Канальный уровень (link layer)

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

    Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, но мы рассмотрим его на примере в конце статьи.

    Межсетевой уровень (internet layer)

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

    Межсетевое взаимодействие — это основной принцип построения интернета. Локальные сети по всему миру объединены в глобальную, а передачу данных между этими сетями осуществляют магистральные и пограничные маршрутизаторы.

    Маска подсети и IP-адреса


    Маска подсети помогает маршрутизатору понять, как и куда передавать пакет. Подсетью может являться любая сеть со своими протоколами. Маршрутизатор передает пакет напрямую, если получатель находится в той же подсети, что и отправитель. Если же подсети получателя и отправителя различаются, пакет передается на второй маршрутизатор, со второго на третий и далее по цепочке, пока не достигнет получателя.

    Протокол интернета — IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Он имеет два подвида, первым был принят IPv4 (IP version 4, версии 4) в 1983 году.

    IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2 32 ). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает его класс, классов всего 4: A, B, C, D.

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

    Так как IPv6 адреса длинные, их разрешается сокращать по следующим правилам: ведущие нули допускается опускать, например в адресе выше :00FF: позволяется записывать как :FF:, группы нулей, идущие подряд тоже допустимо сокращать и заменять на двойное двоеточие, например, 2DAB:FFFF::01AA:00FF:DD72:2C4A. Допускается делать не больше одного подобного сокращения в адресе IPv6.

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

    ICMP и IGMP


    ICMP никогда не вызывается сетевыми приложениями пользователя, кроме случаев диагностики сети, к примеру, пинг (ping) или traceroute (tracert). ICMP не передает данные, это отличает его от транспортных TCP и UDP, расположенных на L3, которые переносят любые данные. ICMP работает только с IP четвертой версии, с IPv6 взаимодействует ICMPv6.

    Сетевые устройства объединяются в группы при помощи IGMP, используемый хостами и роутерами в IPv4 сетях. IGMP организует multicast-передачу информации, что позволяет сетям направлять информацию только хостам, запросившим ее. Это удобно для онлайн-игр или потоковой передаче мультимедиа. IGMP используется только в IPv4 сетях, в сетях IPv6 используется MLD (Multicast Listener Discovery, протокол поиска групповых слушателей), инкапсулированный в ICMPv6.

    Транспортный уровень (transport layer)

    Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.

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

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

    UDP обычно не используется, если требуется надежная передача информации. Использовать UDP имеет смысл там, где потеря части информации не будет критичной для приложения, например, в видеоиграх или потоковой передаче видео. UDP необходим, когда делать повторный запрос сложно или неоправданно по каким-то причинам.

    Протоколы L3 не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.

    Прикладной уровень (application layer)

    В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.

    Зачем нужен порт и что означает термин сокет

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

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


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

    Стек протоколов, снова канальный уровень

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

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

    Point-to-Point протоколы


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

    У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

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

    Заключение

    Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием в здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.

    Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/IP получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.

    TCP/IP

    Протокол TCP/IP – это целая сетевая модель, описывающая способ передачи данных в цифровом виде. На правилах, включенных в нее, базируется работа интернета и локальных сетей независимо от их назначения и структуры.

    Что такое TCP/IP

    Произошло наименование протокола от сокращения двух английских понятий – Transmission Control Protocol и Internet Protocol. Набор правил, входящий в него, позволяет обрабатывать как сквозную передачу данных, так и другие детали этого механизма. Сюда входит формирование пакетов, способ их отправки, получения, маршрутизации, распаковки для передачи программному обеспечению.

    Что такое TCP/IP

    Стек протоколов TCP/IP был создан в 1972 году на базе NCP (Network Control Protocol), в январе 1983 года он стал официальным стандартом для всего интернета. Техническая спецификация уровней взаимодействия описана в документе RFC 1122.

    В составе стека есть и другие известные протоколы передачи данных – UDP, FTP, ICMP, IGMP, SMTP. Они представляют собой частные случаи применения технологии: например, у SMTP единственное предназначение заключается в отправке электронных писем.

    Уровни модели TCP/IP

    Протокол TCP/IP основан на OSI и так же, как предшественник, имеет несколько уровней, которые и составляют его архитектуру. Всего выделяют 4 уровня – канальный (интерфейсный), межсетевой, транспортный и прикладной.

    Уровни модели TCP/IP

    Канальный (сетевой интерфейс)

    Аппаратный уровень обеспечивает взаимодействие сетевого оборудования Ethernet и Wi-Fi. Он соответствует физическому из предыдущего стандарта OSI. Здесь задача состоит в кодировании информации, ее делению на пакеты и отправке по нужному каналу. Также измеряются параметры сигнала вроде задержки ответа и расстояния между хостами.

    Межсетевой (Internet Layer)

    Интернет состоит из множества локальных сетей, объединенных между собой как раз за счет протокола связи TCP/IP. Межсетевой уровень регламентирует взаимодействие между отдельными подсетями. Маршрутизация осуществляется путем обращения к определенному IP-адресу с использованием маски.

    Транспортный уровень (Transport Layer)

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

    Протокол TCP отличается большей достоверностью передачи данных по сравнению с тем же UDP, который подходит только для передачи потокового видео и игровой графики. Там некритичны потери части пакетов, чего нельзя сказать о копировании программных файлов и документов. На этом уровне данные не интерпретируются.

    Прикладной уровень (Application Layer)

    Здесь объединены 3 уровня модели OSI – сеансовый, представления и прикладной. На него ложатся задачи по поддержанию сеанса связи, преобразованию данных, взаимодействию с пользователем и сетью. На этом уровне применяются стандарты интерфейса API, позволяющего передавать команды на выполнение определенных задач.

    Порты и сокеты – что это и зачем они нужны

    Комбинация IP-адреса и порта называется сокетом и используется при идентификации компьютера. Если первый критерий уникален для каждого хоста, второй обычно фиксирован для определенного типа приложений. Так, получение электронной почты проходит через 110 порт, передача данных по протоколу FTP – по 21, открытие сайтов – по 80.

    Преобразование IP-адресов в символьные адреса

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

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

    Читайте также: