TCP/IP

TCP/IPсетевая модельпередачи данных,представленных в цифровом виде. Модель описывает способ передачи данных от источника информации к получателю. В модели предполагается прохождение информации через четыре уровня, каждый из которых описывается правилом (протоколом передачи). Наборы правил, решающих задачу по передаче данных, составляют стекпротоколов передачи данных,на которых базируетсяИнтернет[1][2].Название TCP/IP происходит из двух важнейших протоколов семейства —Transmission Control Protocol(TCP) иInternet Protocol(IP), которые были первыми разработаны и описаны в данном стандарте. Также изредка упоминается как модель DOD (Department of Defense)[3]в связи с историческим происхождением от сетиARPANETиз 1970-х годов (под управлениемDARPA,Министерства обороны США[4]).

Набор интернет-протоколов обеспечивает сквозную передачу данных, определяющую, как данные должны пакетироваться, обрабатываться, передаваться,маршрутизироватьсяи приниматься. Эта функциональность организована в четыреслоя абстракции,которые классифицируют все связанные протоколы в соответствии с объёмом задействованных сетей. От самого низкого до самого высокого уровня — это уровень связи, содержащий методы связи для данных, которые остаются в пределах одного сегмента сети; интернет-уровень, обеспечивающий межсетевое взаимодействие между независимыми сетями; транспортный уровень, обрабатывающий связь между хостами; и прикладной уровень, который обеспечивает обмен данными между процессами для приложений.

Развитием архитектуры Интернета и протоколов в модели TCP/IP занимается открытое международное сообщество проектировщиковIETF.

История

Стек протоколов 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,которая в общих чертах описывает четыреуровня абстракции[5][6].Они выдержали испытание временем, поскольку IETF никогда не изменяла эту структуру. Как таковая модель сети TCP/IP предшествуетмодели OSI,более всеобъемлющей эталонной структуре для общих сетевых систем.

Уровни стека TCP/IP

Стек протоколов TCP/IP включает в себя четыре уровня[6]:

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

Распределение протоколов по уровням модели TCP/IP
Прикладной
(Application Layer)
напр.,HTTP,RTSP,FTP,DNS
Транспортный

(Transport Layer)

напр.,TCP,UDP,SCTP,DCCP
(RIP,протоколы маршрутизации, подобныеOSPF,что работают поверхIP,являются частью сетевого уровня)
Сетевой (Межсетевой)

(Network Layer)

Для TCP/IP этоIP
(вспомогательные протоколы, вродеICMPиIGMP,работают поверх IP, но тоже относятся к сетевому уровню; протоколARPявляется самостоятельным вспомогательным протоколом, работающим поверх канального уровня)
Уровень сетевого доступа (Канальный)

(Link Layer)

Ethernet,IEEE 802.11,WLAN,SLIP,Token Ring,ATMиMPLS,физическая среда и принципы кодирования информации,T1,E1

Прикладной уровень

Наприкладном уровне(Application layer) работает большинство сетевых приложений.

Эти программы имеют свои собственные протоколы обмена информацией, например,Интернет-браузердля протоколаHTTP,ftp-клиентдля протоколаFTP(передача файлов), почтовая программа для протоколаSMTP(электронная почта),SSH(безопасное соединение с удалённой машиной),DNS(преобразование символьных имён вIP-адреса) и многие другие.

В массе своей эти протоколы работают поверхTCPилиUDPи привязаны к определённомупорту,например:

  • HTTPна TCP-порт 80 или 8080,
  • FTPна TCP-порт 20 (для передачи данных) и 21 (для управляющих команд),
  • SSHна TCP-порт 22,
  • запросыDNSна порт UDP (реже TCP) 53,
  • обновление маршрутов по протоколуRIPна UDP-порт 520.

Эти порты определены Агентством по выделению имён и уникальных параметров протоколов (IANA).

К этому уровню относятся:Echo,Finger,Gopher,HTTP,HTTPS,IMAP,IMAPS,IRC,NNTP,NTP,POP3,POPS,QOTD,RTSP,SNMP,SSH,Telnet,XDMCP.

Транспортный уровень

Протоколытранспортного уровня(Transport layer) могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные.

Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня; напримерOSPF(IP-идентификатор 89).

TCP(IP-идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжныйпоток данных,дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие отUDP.

UDP(IP-идентификатор 17) протокол передачидатаграммбез установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протоколTCP.

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

ИTCPUDPиспользуют для определения протокола верхнего уровня число, называемоепортом.

Сетевой (межсетевой) уровень

Межсетевой уровень(Network layer) изначально разработан для передачи данных из одной сети в другую. На этом уровне работаютмаршрутизаторы,которые перенаправляют пакеты в нужную сеть путём расчёта адреса сети помаске сети.Примерами такого протокола являетсяX.25иIPCв сетиARPANET.

С развитием концепцииглобальной сетив уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны, например в протоколеICMP(используется для передачи диагностической информацииIP-соединения) иIGMP(используется для управленияmulticast-потоками).

ICMP и IGMP расположены надIPи должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, и поэтому их невозможно вписать в модель OSI.

Пакеты сетевого протоколаIPмогут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальныйIP-номер протокола.ICMP и IGMP имеют номера, соответственно, 1 и 2.

К этому уровню относятся:DVMRP,ICMP,IGMP,MARS,PIM,RIP,RIP2,RSVP

Канальный уровень

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

Примеры протоколов канального уровня —Ethernet,IEEE 802.11WLAN,SLIP,Token Ring,ATMиMPLS.

PPPне совсем вписывается в такое определение, поэтому обычно описывается в виде пары протоколовHDLC/SDLC.

MPLSзанимает промежуточное положение между канальным и сетевым уровнем и, строго говоря, его нельзя отнести ни к одному из них.

Канальный уровень иногда разделяют на 2 подуровня —LLCиMAC.

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

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

Сравнение с модельюOSI

Три верхних уровня в модели OSI, то есть уровень приложения, уровень представления и уровень сеанса, отдельно не различаются в модели TCP/IP[4],которая имеет только прикладной уровень над транспортным уровнем. Хотя некоторые чистые приложения протокола 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.

Усилия по разработке протокола 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 использует для туннелирования на сетевом уровне. Существуют разногласия в том, как вписатьмодель TCP/IPв модель OSI, поскольку уровни в этих моделях не совпадают.

К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может бытьARPилиSTP.

Вот как традиционно протоколы TCP/IP вписываются в модель OSI:

Распределение протоколов по уровням модели 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,физический уровень никак не описывается. Тем не менее, в некоторых учебниках[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и другимиIETF-первоисточниками[15].

См. также

Примечания

  1. Модели OSI и TCP/IPАрхивная копияот 2 октября 2017 наWayback Machine.База знаний osLogic.ru
  2. Сетевые модели TCP/IP и OSIАрхивная копияот 2 октября 2017 наWayback Machine.Cisco Learning
  3. Васильев А. А.,Телина И. С.,Избачков Ю. С.,Петров В. Н.Информационные системы: Учебник для вузов. —СПб.:Питер, 2010. — 544 с. —ISBN 978-5-49807-158-9.
  4. 12Эндрю Кровчик, Винод Кумар, Номан Лагари и др..NET сетевое программирование для профессионалов / пер. с англ. В. Стрельцов. —М.:Лори, 2005. — 400 с. —ISBN 1-86100-735-3.—ISBN 5-85582-170-2.
  5. RFC 1122,Requirements for Internet Hosts — Communication Layers,R. Braden (ed.), October 1989.
  6. 12Чеппел Л. Титтел Э.TCP/IP. Учебный курс/ Перевод с англ. Ю. Гороховский. —СПб.:БВХ-Петербург, 2003. — С.29.— 976 с. —ISBN 5-94157-315-4.
  7. 12Таненбаум Э. «Компьютерные Сети, пятое издание»
  8. James F. Kurose, Keith W. Ross, Computer Networking: A Top-Down Approach, 2008, ISBN 0-321-49770-8.Дата обращения: 18 января 2014.Архивировано23 января 2016 года.
  9. Behrouz A. Forouzan, Data Communications and Networking, 2003.Дата обращения: 2 октября 2017.Архивировано12 ноября 2016 года.
  10. Douglas E. Comer, Internetworking with TCP/IP: Principles, Protocols and Architecture, Pearson Prentice Hall 2005, ISBN 0-13-187671-6.Дата обращения: 2 октября 2017.Архивировано20 февраля 2022 года.
  11. Charles M. Kozierok, «The TCP/IP Guide», No Starch Press 2005.Дата обращения: 20 мая 2022.Архивировано2 февраля 2022 года.
  12. William Stallings, Data and Computer Communications, Prentice Hall 2006, ISBN 0-13-243310-9.Дата обращения: 2 октября 2017.Архивировано18 ноября 2016 года.
  13. Andrew S. Tanenbaum, Computer Networks, Prentice Hall 2002, ISBN 0-13-066102-3.Дата обращения: 2 октября 2017.Архивировано9 ноября 2016 года.
  14. Mark A. Dye, Rick McDonald, Antoon W. Rufi, Network Fundamentals: CCNA Exploration Companion Guide, 2007, ISBN 1-58713-208-7.Дата обращения: 2 октября 2017.Архивировано28 февраля 2022 года.
  15. 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.

Ссылки