Основные протоколы стека tcp/ip
Содержание:
Что такое TCP/IP
TCP/IP — это набор протоколов, специальных правил, которые упорядочивают и обеспечивают надежный обмен информацией среди устройств, объединенных в сеть. Это может быть локальная сетка из двух компьютеров, так и глобальная паутина.
Полностью пишется, как, Transmission Control Protocol/Internet Protocol, что в переводе означает — Протокол управления передачи/Интернета.
Позволяет взаимодействовать между собой устройствам, находящимся в разных сетях и с различными операционными системами, например, между Windows, Mac OS, Linux и т.д.
Название данного стека — набора правил сложилось из основных двух:
- Протокол IP — берет на себя задачу по адресации, определяет, где в передаваемых данных: адрес, содержимое.
- Протокол TCP — обеспечивает и контролирует надежную передачу информации и ее целостность.
Также включает в себя и другие, но так, как эти являются базовыми, закрепилось именно такое называние. Как видите, все оказалось довольно просто.
Как работает TCP/IP — принцип работы
У каждого компьютера и ноутбука в сети есть свой уникальный ip адрес. Программы, которые используются на компьютере применяют свой уникальный порт для их идентификации. Порт необходим, чтобы программы различали друг друга, т.к. только по айпи будет не понятно, какой софт запрашивает информацию и куда ее следует отправлять.
Так обмениваются между собой программы по сети:
Программа 1 — отправитель:
IP адрес: 192.168.0.32
Порт: 2054
Программа 2 — получатель:
IP адрес: 192.168.0.34
Порт: 2071
Пересылаемые данные пакета:
— — —
IP — это уникальный адрес компьютера. Порт — это идентификатор приложение установленного на нем. Связка, IP + порт называется — сокет.
Стек протоколов TCP/IP
Стек разделяется на четыре уровня, в каждом из которых свои протоколы. Все они функционируют одновременно, поэтому у каждого есть свои правила, чтобы они работали без перебоев и конфликтов.
1. Прикладной / Для приложений. Это: HTTP, SMTP, DNS, FTP и т.д. Т.е. Веб, почта, передача файлов и прочее.2. Транспортный. Это: TCP, UPD и т.д. Отвечает за связь между компьютерами и за доставку данных.3. Сетевой (межсетевой). IP, IGMP и т.д. Отвечает за адресацию.4. Канальный / Сетевые интерфейсы. Это: Ethernet, Wi-Fi, DSL.
На этом стеке и реализовано все взаимодействие пользователей в IP сетях. Также, существуют и другие стеки: OSI, IPX/SPX, IPX/SPX.
В заключение
Вот вы и узнали, что это такое, постарался объяснить все просто, для «чайников». Следующие материалы также будут посвящены технологии передачи данных в интернете.
Мультиплексирование
Способ объединения двух или более потоков данных в один сеанс называется мультиплексированием. Когда клиент TCP инициализирует соединение с сервером, он всегда ссылается на четко определенный номер порта, который указывает на процесс приложения. Сам клиент использует случайный номер порта из частных пулов номеров портов.
Используя TCP Multiplexing, клиент может взаимодействовать с несколькими различными процессами приложения за один сеанс. Например, клиент запрашивает веб-страницу, которая, в свою очередь, содержит различные типы данных (HTTP, SMTP, FTP и т. Д.), Тайм-аут сеанса TCP увеличивается, и сеанс остается открытым на более длительное время, так что накладные расходы на трехстороннюю рукопожатие могут избегать.
Это позволяет клиентской системе получать несколько соединений по одному виртуальному соединению. Эти виртуальные соединения не подходят для серверов, если тайм-аут слишком длинный.
Связующий слой
Протоколы канального уровня работают в рамках локального сетевого подключения, к которому подключен хост. Этот режим называется каналом на языке TCP / IP и является самым низким уровнем компонентов пакета. Ссылка включает в себя все хосты, доступные без прохождения через маршрутизатор. Таким образом, размер канала определяется конструкцией сетевого оборудования. В принципе, TCP / IP разработан как независимый от оборудования и может быть реализован поверх практически любой технологии канального уровня. Это включает не только аппаратные реализации, но и уровни виртуальных каналов, такие как виртуальные частные сети и сетевые туннели .
Канальный уровень используется для перемещения пакетов между интерфейсами Интернет-уровня двух разных хостов по одному и тому же каналу. Процессами передачи и приема пакетов по каналу можно управлять в драйвере устройства для сетевой карты , а также в прошивке или с помощью специализированных наборов микросхем . Они выполняют такие функции, как кадрирование, для подготовки пакетов Интернет-уровня к передаче и, наконец, передают кадры на физический уровень и по среде передачи . Модель TCP / IP включает спецификации для преобразования методов сетевой адресации, используемых в Интернет-протоколе, в адреса канального уровня, такие как адреса управления доступом к среде (MAC). Однако все другие аспекты ниже этого уровня неявно предполагаются существующими и не определены явно в модели TCP / IP.
Канальный уровень в модели TCP / IP имеет соответствующие функции на уровне 2 модели OSI.
Уровень сетевого доступа
Уровень сетевого доступа состоит из всех функций, необходимых для физического подключения и передачи данных по сети. В эталонной модели OSI (Open Systems Interconnection) этот набор функций разбит на два уровня: физический и канальный. Эталонная модель TCP/IP создавалась после протоколов, присутствующих в ее названии, и в ней эти два уровня были слиты воедино, поскольку различные протоколы IP останавливаются на межсетевом уровне. Протокол IP предполагает, что все низкоуровневые функции предоставляются либо локальной сетью, либо подключением через последовательный интерфейс.
Преимущества TCP/IP
Протокол TCP/IP обеспечивает возможность межплатформенных сетевых взаимодействий ( то есть связи в разнородных сетях). Например, сеть под управлением Windows NT/2000 может содержать рабочие станции Unix и Macintosh, и даже другие сети более низкого порядка. TCP/IP обладает следующими характеристиками:
o Хорошие средства восстановления после сбоев.
o Возможность добавления новых сетей без прерывания текущей работы.
o Устойчивость к ошибкам.
o Независимость от платформы реализации.
o Низкие непроизводительные затраты на пересылку служебных данных.
Устранение неполадок
Проблемы с сетью TCP/IP часто возникают из-за неправильной настройки трех основных записей в свойствах TCP/IP компьютера. Понимание того, как ошибки в конфигурации TCP/IP влияют на сетевые операции, можно решить многие распространенные проблемы с TCP/IP.
Неправильная маска подсети: Если в сети используется маска подсети, отличная от маски по умолчанию для своего класса Address, а клиент по-прежнему настроен с маской подсети по умолчанию для класса Address, связь не будет работать с некоторыми ближайшими сетями, но не удаленными. Например, если вы создаете четыре подсети (например, в примере подсетей), но используете неверную маску подсети 255.255.255.0 в конфигурации TCP/IP, то узлы не смогут определить, что некоторые компьютеры находятся в разных подсетях. В этом случае пакеты, предназначенные для узлов в различных физических сетях, которые являются частью одного и того же адреса класса C, не будут отправлены в шлюз по умолчанию для доставки. Распространенный симптом заключается в том, что компьютер может взаимодействовать с узлами, находящимися в локальной сети, и может общаться со всеми удаленными сетями, кроме находящихся поблизости и имеющих один и тот же адрес класса A, B или C. Чтобы устранить эту проблему, просто введите правильную маску подсети в настройках TCP/IP для этого узла.
Неверный IP-адрес: при помещении компьютеров с IP-адресами, которые должны находиться в разных подсетях локальной сети друг с другом, они не смогут связываться друг с другом. Они пытаются отправить пакеты друг другу через маршрутизатор, который не сможет правильно пересылать их. Симптомом этой проблемы является компьютер, который может взаимодействовать с узлами в удаленных сетях, но не может взаимодействовать с некоторыми или всеми компьютерами в локальной сети. Чтобы устранить эту проблему, убедитесь, что все компьютеры в одной физической сети имеют IP-адреса в одной и той же IP-подсети. Если вы исключились из IP-адресов в отдельном сегменте сети, то существуют решения, которые выходят за рамки этой статьи.
Неверный шлюз по умолчанию: компьютер, настроенный с помощью неправильного шлюза по умолчанию, сможет общаться с узлами в собственном сегменте сети, но не сможет установить соединение с узлами в некоторых или всех удаленных сетях. Если одна физическая сеть имеет несколько маршрутизаторов и в качестве шлюза по умолчанию настроен неверный маршрутизатор, то узел сможет общаться с некоторыми удаленными сетями, но не с другими. Эта проблема обычно возникает, если в Организации есть маршрутизатор для внутренней сети TCP/IP и другой маршрутизатор, подключенный к Интернету.
Обзор сетевой модели TCP/IP
Модель TCP/IP определяет и опирается на большой набор протоколов, которые позволяют компьютерам обмениваться данными. Чтобы определить протокол, TCP/IP использует документы, называемые RFC (Requests For Comments) (вы можете найти эти RFC в Интернете с помощью любой поисковой системы). Модель TCP/IP также позволяет избежать повторения работы, уже проделанной другим органом по стандартизации или консорциумом производителей, просто ссылаясь на стандарты или протоколы, созданные этими группами. Например, Институт инженеров по электротехнике и электронике (IEEE) определяет локальные сети Ethernet; модель TCP/IP не определяет Ethernet в RFC, но в качестве дополнения ссылается на IEEE Ethernet.
Модель TCP/IP создает набор правил, который позволяет всем нам вынуть компьютер (или мобильное устройство) из коробки, подключить все нужные кабели, включить его, подключиться к сети и использовать ее. Вы можете использовать веб-браузер для подключения к любимому веб-сайту, использовать практически любое приложение, и всё это работает. Как? Что ж, операционная система на компьютере реализует части модели TCP/IP. Сетевая карта Ethernet или карта беспроводной локальной сети, встроенная в компьютер, реализует стандарты локальной сети, на которые ссылается модель TCP/IP. Проще говоря, производители, создавшие аппаратное и программное обеспечение, реализовали TCP/IP.
Чтобы помочь людям понять сетевую модель, каждая модель разбивает функции на небольшое количество категорий, называемых уровнями. Каждый уровень включает в себя протоколы и стандарты, относящиеся к своей категории функций. Данное разбиение показано на рисунке 2.
Рисунок 2 – Уровни сетевой модели TCP/IP
Модель TCP/IP показывает общие термины и уровни, используемые сегодня, когда люди говорят о TCP/IP.
Нижний (физический) уровень фокусируется на том, как передавать биты по каждому отдельному каналу.
Канальный уровень ориентирован на отправку данных по одному типу физического канала: например, сети используют отличающиеся протоколы канала передачи данных для локальных сетей Ethernet по сравнению с беспроводными локальными сетями.
Сетевой (межсетевой) уровень фокусируется на доставке данных по всему пути от исходного компьютера-отправителя до конечного компьютера-получателя.
И два верхних уровня больше ориентированы на приложения, которым необходимо отправлять и получать данные.
ПРИМЕЧАНИЕ. В RFC 1122 используется несколько отличная четырехуровневая оригинальная версия модели TCP/IP (в которой физический и канальный уровни были объединены в уровень сетевого доступа), но и для реальных сетей, и для сегодняшней сертификации CCNA (2020 год, информация из «CCNA 200-301 Official Cert Guide» Уенделла Одома), используйте пятиуровневую модель, показанную здесь на рисунке 2.
Многие из вас уже слышали о нескольких протоколах TCP/IP (примеры, которых перечислены в таблице 1). Большинство протоколов и стандартов в этой таблице будут объяснены позже более подробно.
Уровень модели TCP/IP | Примеры протоколов | |
---|---|---|
Прикладной уровень (уровень приложений) | Система имен | DNS |
Конфигурация узла | BOOTP, DHCP | |
Электронная почта | SMTP, POP, IMAP | |
Передача файлов | FTP, TFTP | |
Веб | HTTP | |
Транспортный уровень | TCP, UDP | |
Сетевой (межсетевой) уровень | IP, NAT | |
Поддержка IP | ICMP | |
Протоколы маршрутизации | OSPF, EIGRP | |
Уровень сетевого доступа (канальный уровень и физический уровень) | ARP, PPP, Ethernet, 802.11 (Wi-Fi) |
Далее в этой главе мы более подробно рассмотрим уровни модели TCP/IP.
Механизмы протокола HTTP
При более внимательном рассмотрении этот пример показывает, как приложения на каждом конечном компьютере (приложение веб-браузера и приложение веб-сервера) используют протокол прикладного уровня TCP/IP. Чтобы сделать запрос веб-страницы и вернуть содержимое веб-страницы, приложения используют протокол передачи гипертекста (HTTP).
HTTP не существовал до тех пор, пока Тим Бернерс-Ли не создал первый веб-браузер и веб-сервер в начале 1990-х годов. Бернерс-Ли предоставил HTTP функцию для запроса содержимого веб-страниц, а именно, предоставив веб-браузеру возможность запрашивать файлы с сервера и дав серверу возможность возвращать содержимое этих файлов. Общая логика соответствует тому, что показано на рисунке 1; на рисунке 2 показана та же идея, но с подробностями, относящимися к HTTP.
ПРИМЕЧАНИЕ. Полная версия большинства веб-адресов, также называемых унифицированными указателями ресурсов (URL, Uniform Resource Locators) или универсальными идентификаторами ресурсов (URI, Universal Resource Identifiers), начинается с букв http, что означает, что для передачи веб-страниц используется HTTP.
Рисунок 2 – HTTP запрос GET, HTTP ответ и одно сообщение только с данными
Чтобы получить веб-страницу от Гарри, Роб на этапе 1 отправляет сообщение с заголовком HTTP. Обычно протоколы используют заголовки как место для размещения информации, используемой этим протоколом. Этот HTTP заголовок включает запрос на «получение» файла. Запрос обычно содержит имя файла (в данном случае home.htm), или, если имя файла не упоминается, веб-сервер предполагает, что Бобу нужна веб-страница по умолчанию.
Шаг 2 на рисунке 2 показывает ответ веб-сервера Гарри. Сообщение начинается с HTTP заголовка с кодом состояния (200), который означает нечто простое, например, «ОК», возвращаемое в заголовке. HTTP также определяет другие коды состояния, чтобы сервер мог сообщить браузеру, сработал ли запрос (например: если вы когда-нибудь искали веб-страницу, которая не была найдена, и получили ошибку HTTP 404 «не найдена», вы получили HTTP код состояния 404). Второе сообщение также включает начальную часть запрошенного файла.
Шаг 3 на рисунке 2 показывает еще одно сообщение от веб-сервера Гарри веб-браузеру Роба, но на этот раз без HTTP заголовка. HTTP передает данные, отправляя несколько сообщений, каждое из которых является частью файла. Вместо того, чтобы тратить место на отправку повторяющихся HTTP заголовков, содержащих повторяющуюся информацию, эти дополнительные сообщения просто пропускают заголовок.
Библиография
- Дуглас Э. Комер . Межсетевое взаимодействие с TCP / IP — принципы, протоколы и архитектура . ISBN 86-7991-142-9
- Джозеф Г. Дэвис и Томас Ф. Ли. Протоколы и службы TCP / IP Microsoft Windows Server 2003 . ISBN 0-7356-1291-9
- Форузан, Бехруз А. (2003). Пакет протоколов TCP / IP (2-е изд.). Макгроу-Хилл. ISBN 978-0-07-246060-5.
- Крейг Хант Администрирование сети TCP / IP . О’Рейли (1998) ISBN 1-56592-322-7
- Мафер, Томас А. (1999). Основы интеллектуальной собственности . Прентис Холл. ISBN 978-0-13-975483-8.
- Иэн Маклин. Windows (R) 2000 TCP / IP Черная книга . ISBN 1-57610-687-X
- Ajit Mungale Pro .NET 1.1 Сетевое программирование . ISBN 1-59059-345-6
- В. Ричард Стивенс . Иллюстрированный TCP / IP, Том 1: Протоколы . ISBN 0-201-63346-9
- У. Ричард Стивенс и Гэри Р. Райт. Иллюстрированный TCP / IP, Том 2: Реализация . ISBN 0-201-63354-X
- В. Ричард Стивенс . Иллюстрированный TCP / IP, Том 3: TCP для транзакций , HTTP , NNTP и протоколы домена UNIX . ISBN 0-201-63495-3
- Эндрю С. Таненбаум . Компьютерные сети . ISBN 0-13-066102-3
Сравнение с моделью OSI
Три верхних уровня в модели OSI, то есть уровень приложения, уровень представления и уровень сеанса, отдельно не различаются в модели TCP/IP, которая имеет только прикладной уровень над транспортным уровнем. Хотя некоторые чистые приложения протокола OSI, такие как X.400, также объединяют их, нет требования, чтобы стек протокола TCP/IP должен накладывать монолитную архитектуру над транспортным уровнем. Например, протокол NFS-приложений работает через протокол представления данных External Data Representation (XDR), который, в свою очередь, работает по протоколу Remote Procedure Call (RPC). RPC обеспечивает надежную передачу данных, поэтому он может безопасно использовать транспорт UDP с максимальным усилием.
Различные авторы интерпретировали модель TCP/IP по-разному и не согласны с тем, что уровень связи или вся модель TCP/IP охватывает проблемы первого уровня модели OSI (физический уровень) или предполагается, что аппаратный уровень ниже уровня канала.
Несколько авторов попытались включить слои 1 и 2 модели OSI в модель TCP/IP, поскольку они обычно упоминаются в современных стандартах (например, IEEE и ITU). Это часто приводит к модели с пятью слоями, где уровень связи или уровень доступа к сети разделяются на слои 1 и 2 модели OSI.
Например, считается, что уровни сеанса и представления пакета OSI включены в прикладной уровень пакета TCP/IP. Функциональность уровня сеанса можно найти в протоколах, таких как HTTP и SMTP, и более очевидна в таких протоколах, как Telnet и протокол инициации сеанса (SIP). Функциональность уровня сеанса также реализована с нумерацией портов протоколов TCP и UDP, которые охватывают транспортный уровень в наборе TCP/IP. Функции уровня представления реализуются в приложениях TCP/IP со стандартом MIME при обмене данными.
Конфликты очевидны также в оригинальной модели OSI, ISO 7498, когда не рассматриваются приложения к этой модели, например, ISO 7498/4 Management Framework или ISO 8648 Internal Organization of the Network layer (IONL). Когда рассматриваются документы IONL и Management Framework, ICMP и IGMP определяются как протоколы управления уровнем для сетевого уровня. Аналогичным образом IONL предоставляет структуру для «зависимых от подсетей объектов конвергенции», таких как ARP и RARP.
Протоколы IETF могут быть инкапсулированы рекурсивно, о чем свидетельствуют протоколы туннелирования, такие как Инкапсуляция общей маршрутизации (GRE). GRE использует тот же механизм, который OSI использует для туннелирования на сетевом уровне.
Существуют разногласия в том, как вписать модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.
К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.
Вот как традиционно протоколы TCP/IP вписываются в модель OSI:
TCP/IP | OSI | ||
7 | Прикладной | Прикладной | напр., HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP |
6 | Представления | напр., XDR, AFP, TLS, SSL | |
5 | Сеансовый | напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP | |
4 | Транспортный | Транспортный | напр., TCP, UDP, SCTP, SPX, ATP, DCCP, GRE |
3 | Сетевой | Сетевой | напр., IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP |
2 | Канальный | Канальный | напр., Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS, ARP |
1 | Физический | напр., электрические провода, радиосвязь, волоконно-оптические провода, инфракрасное излучение |
Обычно в стеке TCP/IP верхние 3 уровня модели OSI (прикладной, представления и сеансовый) объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.
Описание модели TCP/IP в технической литературе
В модели TCP/IP, в отличие от модели OSI, физический уровень никак не описывается. Тем не менее, в некоторых учебниках, для лучшего понимания, описывается «гибридная модель TCP/IP — OSI» из 5 уровней, содержащая дополнительный — физический уровень.
Следующая таблица показывает различные вариации в описании модели TCP/IP. Количество уровней варьируется от трёх до семи.
Kurose, Forouzan | Comer, Kozierok | Stallings | Tanenbaum | Cisco Academy | OSI model | ||
---|---|---|---|---|---|---|---|
Пять уровней | Четыре + 1 уровень | Пять уровней | Пять уровней | Четыре уровня | Четыре уровня | Три уровня | Семь уровней |
«Five-layer Internet model» or «TCP/IP protocol suite» | «TCP/IP 5-layer reference model» | «TCP/IP model» | «TCP/IP 5-layer reference model» | «Internet model» | «Internet model» | «Arpanet reference model» | OSI model |
Application | Application | Application | Application | Application (Прикладной) | Application | Application/Process | Application |
Presentation | |||||||
Session | |||||||
Transport | Transport | Host-to-host or transport | Transport | Transport (Транспортный) | Transport | Host-to-host | Transport |
Network | Internet | Internet | Internet | Internet (Сетевой) | Internetwork | Network | |
Data link | Data link (Network interface) | Network access | Data link | Link (Канальный) | Network interface | Network interface | Data link |
Physical | (Hardware) | Physical | Physical | Physical |
Транспортный уровень
Транспортный уровень устанавливает основные каналы данных, которые приложения используют для обмена данными для конкретных задач. Уровень устанавливает соединение между хостами в форме услуг сквозной передачи сообщений, которые не зависят от базовой сети и от структуры пользовательских данных и логистики обмена информацией. Возможности подключения на транспортном уровне можно разделить на две категории: ориентированные на установление соединения , реализованные в TCP, или не связанные с установлением соединения , реализованные в UDP. Протоколы в этом слое могут обеспечить контроль ошибок , сегментацию , управление потоком , управление перегрузкой и применение адресации ( номера портов ).
С целью предоставления специфичных для процесса каналов передачи для приложений, уровень устанавливает понятие сетевого порта . Это пронумерованная логическая конструкция, выделенная специально для каждого из каналов связи, необходимых приложению. Для многих типов служб эти номера портов были стандартизированы, чтобы клиентские компьютеры могли обращаться к конкретным службам серверного компьютера без участия службы обнаружения или служб каталогов .
Поскольку IP обеспечивает доставку только с максимальной эффективностью , некоторые протоколы транспортного уровня обеспечивают надежность.
TCP — это протокол, ориентированный на соединение, который решает многочисленные проблемы надежности при обеспечении надежного потока байтов :
- данные поступают по порядку
- данные имеют минимальную ошибку (т.е. правильность)
- повторяющиеся данные отбрасываются
- потерянные или отброшенные пакеты повторно отправляются
- включает контроль заторов на дорогах
Новый протокол передачи управления потоком (SCTP) также является надежным транспортным механизмом с установлением соединения. Он ориентирован на поток сообщений, а не на поток байтов, как TCP, и обеспечивает несколько потоков, мультиплексированных по одному соединению. Она также обеспечивает Многодомность поддержку, в котором соединительный конец может быть представлен несколькими IP — адресами (представляющих несколько физических интерфейсов), так что , если один выходит из строя, соединение не прерывается. Первоначально он был разработан для приложений телефонии (для передачи SS7 по IP).
Надежность также может быть достигнута за счет использования IP по надежному протоколу передачи данных, например High-Level Data Link Control (HDLC).
User Datagram Protocol (UDP) является установление соединения дейтаграммы протокола. Как и IP, это ненадежный протокол, требующий максимальных усилий. Надежность достигается путем обнаружения ошибок с использованием алгоритма контрольной суммы. UDP обычно используется для таких приложений, как потоковая передача мультимедиа (аудио, видео, передача голоса по IP и т
Д.), Где своевременное поступление более важно, чем надежность, или для простых приложений запросов / ответов, таких как поиск DNS , где накладные расходы на настройку надежное соединение непропорционально велико. Транспортный протокол реального времени (RTP) — это протокол дейтаграмм, который используется поверх UDP и предназначен для данных в реальном времени, таких как потоковая передача мультимедиа .
Приложения на любом заданном сетевом адресе различаются по их TCP- или UDP-порту. По соглашению, некоторые хорошо известные порты связаны с конкретными приложениями.
Транспортный уровень модели TCP / IP или уровень хост-хост примерно соответствует четвертому уровню в модели OSI, также называемому транспортным уровнем.