TCP/IP
TCP/IP —
Набор интернет-протоколов обеспечивает сквозную передачу данных, определяющую, как данные должны пакетироваться, обрабатываться, передаваться, маршрутизироваться и приниматься. Эта функциональность организована в четыре слоя абстракции, которые классифицируют все связанные протоколы в соответствии с объёмом задействованных сетей. От самого низкого до самого высокого уровня — это уровень связи, содержащий методы связи для данных, которые остаются в пределах одного сегмента сети; интернет-уровень, обеспечивающий межсетевое взаимодействие между независимыми сетями; транспортный уровень, обрабатывающий связь между хостами; и прикладной уровень, который обеспечивает обмен данными между процессами для приложений.
Развитием архитектуры Интернета и протоколов в модели TCP/IP занимается открытое международное сообщество проектировщиков
История
Стек протоколов TCP/IP был создан на основе NCP (Network Control Protocol) группой разработчиков под руководством Винтона Серфа в 1972 году. В июле 1976 года Винт Серф и Боб Кан впервые продемонстрировали передачу данных с использованием TCP по трём различным сетям. Пакет прошёл по следующему маршруту: Сан-Франциско — Лондон — Университет Южной Калифорнии. К концу своего путешествия пакет проделал 150 тысяч км, не потеряв ни одного бита. В 1978 году Серф, Джон Постел и Дэнни Кохэн решили выделить в TCP две отдельные функции: TCP и IP (англ. Internet Protocol, межсетевой протокол). TCP был ответственен за разбивку сообщения на датаграммы (англ. datagram) и соединение их в конечном пункте отправки. IP отвечал за передачу (с контролем получения) отдельных датаграмм. Вот так родился современный протокол Интернета. А с 1 января 1983 года ARPANET перешла на новый протокол. Этот день принято считать официальной датой рождения Интернета.
Формальная спецификация и стандарты
Технические стандарты, лежащие в основе набора TCP/IP протоколов, были переданы Инженерному совету Интернета (IETF).
Характеристикой архитектуры Internet Protocol Suite является широкое разделение на рабочие области для протоколов, составляющих его основную функциональность. Определяющей спецификацией пакета является RFC 1122, которая в общих чертах описывает четыре
Уровни стека TCP/IP
Стек протоколов TCP/IP включает в себя четыре уровня[6]:
- Прикладной уровень(Application Layer),
- Транспортный уровень (Transport Layer),
- Межсетевой уровень (Сетевой уровень[7]) (Internet Layer),
- Канальный уровень (Network Access Layer).
Протоколы этих уровней полностью реализуют функциональные возможности
Прикладной (Application Layer) |
напр., HTTP, RTSP, FTP, DNS |
Транспортный
(Transport Layer) |
напр., , являются частью сетевого уровня) |
Сетевой (Межсетевой)
(Network Layer) |
Для TCP/IP это IP (вспомогательные протоколы, вроде ICMP и IGMP, работают поверх IP, но тоже относятся к сетевому уровню; протокол ARP является самостоятельным вспомогательным протоколом, работающим поверх канального уровня) |
Уровень сетевого доступа (Канальный)
(Link Layer) |
E1
|
Прикладной уровень
На
Эти программы имеют свои собственные протоколы обмена информацией, например,
В массе своей эти протоколы работают поверх TCP или UDP и привязаны к определённому порту, например:
- HTTP на TCP-порт 80 или 8080,
- FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд),
- SSH на TCP-порт 22,
- запросы DNS на порт UDP (реже TCP) 53,
- обновление маршрутов по протоколу RIPна UDP-порт 520.
Эти порты определены Агентством по выделению имён и уникальных параметров протоколов (IANA).
К этому уровню относятся:
.Транспортный уровень
Протоколы транспортного уровня (Transport layer) могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные.
Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня; например OSPF (IP-идентификатор 89).
TCP (IP-идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.
UDP (IP-идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
И
.Сетевой (межсетевой) уровень
Межсетевой уровень (Network layer) изначально разработан для передачи данных из одной сети в другую. На этом уровне работают маршрутизаторы, которые перенаправляют пакеты в нужную сеть путём расчёта адреса сети по маске сети. Примерами такого протокола является X.25 и IPC в сети ARPANET.
С развитием концепции
ICMP и IGMP расположены над IP и должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, и поэтому их невозможно вписать в модель OSI.
Пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2.
К этому уровню относятся:
Канальный уровень
Канальный уровень (
Примеры протоколов канального уровня — Ethernet, IEEE 802.11 WLAN, SLIP, Token Ring, ATM и MPLS.
PPP не совсем вписывается в такое определение, поэтому обычно описывается в виде пары протоколов HDLC/SDLC.
MPLS занимает промежуточное положение между канальным и сетевым уровнем и, строго говоря, его нельзя отнести ни к одному из них.
Канальный уровень иногда разделяют на 2 подуровня — LLC и MAC.
Кроме того, канальный уровень описывает среду передачи данных (будь то коаксиальный кабель, витая пара, оптическое волокно или радиоканал), физические характеристики такой среды и принцип передачи данных (разделение каналов, модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние).
При проектировании стека протоколов на канальном уровне рассматривают
Сравнение с моделью OSI
В разделе не хватает ссылок на источники (см. рекомендации по поиску). |
Три верхних уровня в модели OSI, то есть уровень приложения, уровень представления и уровень сеанса, отдельно не различаются в модели TCP/IP
Различные авторы интерпретировали модель TCP/IP по-разному и не согласны с тем, что уровень связи или вся модель TCP/IP охватывает проблемы первого уровня модели OSI (физический уровень) или предполагается, что аппаратный уровень ниже уровня канала.
Несколько авторов попытались включить слои 1 и 2 модели OSI в модель TCP/IP, поскольку они обычно упоминаются в современных стандартах (например, IEEE и ITU). Это часто приводит к модели с пятью слоями, где уровень связи или уровень доступа к сети разделяются на слои 1 и 2 модели OSI.
Усилия по разработке протокола IETF не касаются строгого расслоения. Некоторые из его протоколов могут не соответствовать чисто модели OSI, хотя RFC иногда ссылаются на неё и часто используют старые номера уровня OSI. IETF неоднократно заявлял, что разработка интернет-протокола и архитектуры не должна соответствовать требованиям OSI. В RFC 3439, адресованном интернет-архитектуре, содержится раздел, озаглавленный «Слой, считающийся вредным».
Например, считается, что уровни сеанса и представления пакета 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 использует для туннелирования на сетевом уровне. Существуют разногласия в том, как вписать
К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.
Вот как традиционно протоколы TCP/IP вписываются в модель OSI:
TCP/IP | OSI | ||
7 | Прикладной | Прикладной | напр., |
6 | Представления | напр., XDR, AFP, TLS, SSL | |
5 | Сеансовый | напр., ISO 8327 / CCITT X.225, | |
4 | Транспортный | Транспортный | напр., |
3 | Сетевой | Сетевой | напр., |
2 | Канальный | Канальный | напр., |
1 | Физический | напр., радиосвязь, волоконно-оптические провода, инфракрасное излучение
|
Обычно в стеке TCP/IP верхние 3 уровня модели OSI (
Описание модели TCP/IP в технической литературе
В модели TCP/IP, в отличие от модели OSI, физический уровень никак не описывается. Тем не менее, в некоторых учебниках[7], для лучшего понимания, описывается «гибридная модель TCP/IP — OSI» из 5 уровней, содержащая дополнительный — физический уровень.
Следующая таблица показывает различные вариации в описании модели TCP/IP. Количество уровней варьируется от трёх до семи.
Kurose[8], Forouzan[9] | Comer[10], Kozierok[11] | Stallings[12] | Tanenbaum[13] | RFC 1122, Internet STD 3 (1989) | Cisco Academy[14] | Mike Padlipsky's 1982 «Arpanet Reference Model» (RFC 871) | 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 |
Некоторые из моделей в приведённой таблицы взяты из учебников, которые являются вторичными источниками и могут расходиться с RFC 1122 и другими
См. также
- Сетевые сервисы
- Модель OSI
- Модель DOD
- Динамический порт
- lwIP
- uIP (micro IP)
Примечания
- ↑ Модели OSI и TCP/IP Архивная копия от 2 октября 2017 на Wayback Machine. База знаний osLogic.ru
- ↑ Сетевые модели TCP/IP и OSI Архивная копия от 2 октября 2017 на Wayback Machine. Cisco Learning
- ↑ Васильев А. А., Телина И. С., Избачков Ю. С., Петров В. Н. Информационные системы: Учебник для вузов. — СПб.: Питер, 2010. — 544 с. — ISBN 978-5-49807-158-9.
- ↑ 1 2 Эндрю Кровчик, Винод Кумар, Номан Лагари и др. .NET сетевое программирование для профессионалов / пер. с англ. В. Стрельцов. — М.: Лори, 2005. — 400 с. — ISBN 1-86100-735-3. — ISBN 5-85582-170-2.
- ↑ RFC 1122, Requirements for Internet Hosts — Communication Layers, R. Braden (ed.), October 1989.
- ↑ 1 2 Чеппел Л. Титтел Э. TCP/IP. Учебный курс / Перевод с англ. Ю. Гороховский. — СПб.: БВХ-Петербург, 2003. — С. 29. — 976 с. — ISBN 5-94157-315-4.
- ↑ 1 2 Таненбаум Э. «Компьютерные Сети, пятое издание»
- ↑ James F. Kurose, Keith W. Ross, Computer Networking: A Top-Down Approach, 2008, ISBN 0-321-49770-8 . Дата обращения: 18 января 2014. Архивировано 23 января 2016 года.
- ↑ Behrouz A. Forouzan, Data Communications and Networking, 2003 . Дата обращения: 2 октября 2017. Архивировано 12 ноября 2016 года.
- ↑ Douglas E. Comer, Internetworking with TCP/IP: Principles, Protocols and Architecture, Pearson Prentice Hall 2005, ISBN 0-13-187671-6 . Дата обращения: 2 октября 2017. Архивировано 20 февраля 2022 года.
- ↑ Charles M. Kozierok, «The TCP/IP Guide», No Starch Press 2005 . Дата обращения: 20 мая 2022. Архивировано 2 февраля 2022 года.
- ↑ William Stallings, Data and Computer Communications, Prentice Hall 2006, ISBN 0-13-243310-9 . Дата обращения: 2 октября 2017. Архивировано 18 ноября 2016 года.
- ↑ Andrew S. Tanenbaum, Computer Networks, Prentice Hall 2002, ISBN 0-13-066102-3 . Дата обращения: 2 октября 2017. Архивировано 9 ноября 2016 года.
- ↑ Mark A. Dye, Rick McDonald, Antoon W. Rufi, Network Fundamentals: CCNA Exploration Companion Guide, 2007, ISBN 1-58713-208-7 . Дата обращения: 2 октября 2017. Архивировано 28 февраля 2022 года.
- ↑ R. Bush (December 2002), Some Internet Architectural Guidelines and Philosophy, Internet Engineering Task Force, Архивировано 11 марта 2018, Дата обращения: 18 января 2014
{{citation}}
: Недопустимый|ref=harv
(справка); Неизвестный параметр|coauthors=
игнорируется (|author=
предлагается) (справка) Источник . Дата обращения: 18 января 2014. Архивировано 11 марта 2018 года.
Литература
- Терри Оглтри. Модернизация и ремонт сетей = Upgrading and Repairing Networks. — 4-е изд. — М.: «Вильямс», 2005. — С. 1328. — ISBN 0-7897-2817-6.
- Дуглас Камер. Сети TCP/IP, том 1. Принципы, протоколы и структура = Internetworking with TCP/IP, Vol. 1: Principles, Protocols and Architecture. — М.: «Вильямс», 2003. — С. 880. — ISBN 0-13-018380-6.
- Семенов Ю. А. Протоколы Internet. — 2-е изд., стереотип.. — М.: Горячая линия - Телеком, 2005. — 1100 с. — 1150 экз. — ISBN 5-93517-044-2.
- Паркер Т., Сиян К. TCP/IP. Для профессионалов. — 3-е изд.. — СПб.: Питер, 2004. — 859 с. — 4000 экз. — ISBN 5-8046-0041-9.
Ссылки
- Официальный сайт IANA (англ.)
- IANA — идентификаторы протоколов (англ.)
- IANA — номера портов (англ.)
- RFC 1122 (англ.)
- RFC 793 (англ.) — TCP
- RFC 791 (англ.) — IP