Подробное описание 4 уровней модели tcp/ip и сравнение с osi
Содержание:
Мультиплексирование
Способ объединения двух или более потоков данных в один сеанс называется мультиплексированием. Когда клиент TCP инициализирует соединение с сервером, он всегда ссылается на четко определенный номер порта, который указывает на процесс приложения. Сам клиент использует случайный номер порта из частных пулов номеров портов.
Используя TCP Multiplexing, клиент может взаимодействовать с несколькими различными процессами приложения за один сеанс. Например, клиент запрашивает веб-страницу, которая, в свою очередь, содержит различные типы данных (HTTP, SMTP, FTP и т. Д.), Тайм-аут сеанса TCP увеличивается, и сеанс остается открытым на более длительное время, так что накладные расходы на трехстороннюю рукопожатие могут избегать.
Это позволяет клиентской системе получать несколько соединений по одному виртуальному соединению. Эти виртуальные соединения не подходят для серверов, если тайм-аут слишком длинный.
Сетевые протоколы TCP/IP, NWLink IPX/SPX, NetBEUI
Давайте начнем с того, что вообще такое сетевой протокол и с чем его едят.Сетевой протокол — это набор программно реализованных правил общения между компьютерами. Этакий язык, на котором компьютеры разговаривают друг с другом и передают информацию. Ранее компьютеры были, так сказать, многоязычны и в старых версиях Windows использовался целый набор протоколов, — TCP/IP, NWLink IPX/SPX, NetBEUI. Ныне же пришли к общей договоренности, и стандартом стало использование исключительно протокола TCP/IP, а посему речь далее пойдет именно о нем.
Когда говорят о TCP/IP, то обычно подразумевают под этим именем множество различных.. правил или, скажем, стандартов, которые прописаны с использованием (или под использование) этого протокола. Так, например, есть правила, по которым осуществляется обмен сообщениями между почтовыми серверами и есть правила, по которым конечный пользователь получает в свой ящик письма. Имеются правила для проведения видео-конференций и правила для организации «телефонных» переговоров по Интернету. Фактически, это даже не то чтобы правила.. Скорее этакая грамматика, что ли. Ну знаете, в английском одна структура построения диалогов, в французском другая.. Вот и в TCP/IP нечто подобное, т.е. некая связка различных грамматических правил представляет собой как раз цельный протокол TCP/IP или, точнее говоря, стек протоколов TCP/IP.
Назначение TCP
TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.
Основными протоколами стека, давшими ему название, являются протоколы IР и ТСР. Эти протоколы в терминологии модели 051 относятся к сетевому и транспортному уровням соответственно. IР обеспечивает продвижение пакета по составной сети, а ТСР гарантирует надежность его доставки.
Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами.
Маршрутизатор — это компьютер, который передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся «близкими родственниками». По существу оно скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.
TCP/IP дает решение проблемы данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело. IP — самый фундаментальный протокол из комплекта TCP/IP — передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для «прыжков» между сетями.
Особенности TCP
Поскольку стек ТСР/IР изначально создавался для глобальной сети Internet он имеет много особенностей, дающих ему преимущество перед другими протоколами, когда речь заходит о построении сетей, включающих глобальные связи. В частности, очень полезным свойством, делающим возможным применение этого протокола в больших сетях, является его способность фрагментировать пакеты. Действительно, большая составная сеть часто состоит из сетей, построенных на совершенно разных принципах. В каждой из этих сетей может быть установлена собственная величина максимальной длины единицы передаваемых данных (кадра). В таком случае при переходе из одной сети, имеющей большую максимальную длину, в сеть с меньшей максимальной длиной может возникнуть необходимость деления передаваемого кадра на несколько частей. Протокол IP стека ТСР/IР эффективно решает эту задачу.
Другой особенностью технологии ТСР/IР является гибкая система адресации, позволяющая более просто по сравнению с другими протоколами аналогичного назначения включать в интерсеть сети других технологий. Это свойство также способствует применению стека ТСР/IР для построения больших гетерогенных сетей.
В стеке ТСР/ IР очень экономно используются возможности широковещательных рассылок. Это свойство совершенно необходимо при работе на медленных каналах связи, характерных для территориальных сетей.
История
Стек протоколов 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).
Как работает TCP соединение
Соединение отправителя и получателя (два узла) происходит так:
1. Отправитель отсылает получателю специальный пакет, именуемый SYN, т.е. пригашает к соединению2. Получатель отвечает уже пакетом SYN-ACK, т.е. соглашается3. Отправитель отсылает спец. пакет ACK, т.е. подтверждает, что согласие получено
На этом TCP-соединение успешно установлено и получатель с отправителем могут спокойно обмениваться информацией. При передаче все пакеты данных нумеруются, отсылаются подтверждения о получении каждого из них, а потерянные пересылаются заново.
TCP порты
На каждом компьютере установлено, как минимум несколько программ. И сразу несколько из них могут обмениваться информацией, как же их различать? Именно для этого и были придуманы TCP порты, это по сути уникальный идентификатор соединения между двумя программами.
Номер порта — это число от 0 до 65535 в 16 битном формате, оно указывает какому именно приложению предназначается определенный пакет данных. Т.е. позволяет различным программам, работающим на одном компьютере, независимо друг от друга отправлять и получать информацию.
Есть целый ряд уже зарезервированных портов, которые являются стандартом:
Также, стоит отметить, что порты данного протокола никак не пересекаются с такими же, но у UDP. Так, например, порт: 1234 не пересечется с таким же, но у UDP.
В заключение
Вот вы и узнали, что это такое, постарался написать, как можно более понятно, без лишних терминов. Главное знать, как это работает и серфинг в интернете станет еще куда интереснее.
Обзор сетевой модели 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.
Шлюзы по умолчанию
Если компьютеру с протоколом TCP/IP требуется обмен данными с узлом в другой сети, он, как правило, будет подключаться через устройство, называемое маршрутизатором. В терминах TCP/IP маршрутизатор, указанный на узле, который связывает подсеть узла с другими сетями, называется шлюзом по умолчанию. В этом разделе объясняется, как TCP/IP определяет, нужно ли отправлять пакеты на шлюз по умолчанию, чтобы получить доступ к другому компьютеру или устройству в сети.
Когда узел пытается подключиться к другому устройству по протоколу TCP/IP, он выполняет процесс сравнения, используя определенную маску подсети и конечный IP-адрес, а также маску подсети и собственный IP-адрес. В результате этого сравнения компьютер получает сведения о том, является ли конечный узел локальным или удаленным узлом.
Если результат этого процесса определяет назначение как локальный узел, компьютер отправит пакет в локальной подсети. Если результат сравнения определяет назначение как удаленный узел, компьютер переадресует пакет на шлюз по умолчанию, определенный в свойствах TCP/IP. Она отвечает маршрутизатору на перенаправление пакета в правильную подсеть.
Библиография
- Дуглас Э. Комер . Межсетевое взаимодействие с 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 (прикладной, представления и сеансовый) объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.
Что такое сетевые порты
При передаче данных кроме IP-адресов отправителя и получателя пакет информации содержит в себе номера портов. Пример: 192.168.1.1:80, — в данном случае 80 — это номер порта. Порт — это некое число, которое используется при приеме и передаче данных для идентификации процесса (программы), который должен обработать данные. Так, если пакет послан на 80-й порт, то это свидетельствует, что информация предназначена серверу HTTP.
Номера портов с 1-го до 1023-й закреплены за конкретными программами (так называемые well-known-порты). Порты с номерами 1024-65 535 могут быть использованы в программах собственной разработки. При этом возможные конфликты должны решаться самими программами путем выбора свободного порта. Иными словами, порты будут распределяться динамически: возможно, что при следующем старте программа выберет иное значение порта, если, конечно, Вы вручную через настройки не задавали ей порт.
Порядок следования сообщений
Но подтверждений и повторной отправки данных недостаточно для обеспечения надежной передачи потока байт. Это защищает только от потери сегментов, но не обеспечивает сохранение порядка следования сообщений.
Какие проблемы могут произойти? Протокол IP не сохраняет порядок следования сообщений и поэтому сегменты могут прийти к получателю не в том порядке в котором они были отправлены. Кроме того, некоторые сегменты могут прийти два и более раз. Рассмотрим одну из возможных причин дублирования сегментов.
Дублирование сегментов
Предположим, отправитель передал сегмент данных получателю, получатель этот сегмент принял и передал отправителю подтверждение, но при передаче подтверждения произошла ошибка. Отправитель не получил подтверждение, сработал таймер и тот же самый сегмент данных был отправлен второй раз.
Это один из возможных вариантов, на самом деле, таких вариантов еще очень много, поэтому в протокол TCP встроен механизм защиты от дублирования и нарушение порядка следования сообщений.
Механизм очень простой, все сообщения нумеруются. В TCP нумеруются не сегменты, так как разные сегменты могут иметь разный размер, а байты.
В нашем примере 4 сегмента первый сегмент содержит байты от 0 до 1023, второй от 1024 до 2047 и так далее.
Нумерация байтов
При передаче отправитель включают в сегмент номер первого байта данных, которые в нем содержатся.
- Например сегмент данных, байт 0, он содержит байты с 0 до 1023.
- Получатель отправляет подтверждение и в подтверждение включает номер следующего байта, который ожидается байт 1024.
- Отправитель передает следующий сегмент, включая в него номер первого байта, сегмент данных, номер первого байта 1024 содержит данные до номера байта 2047.
- Получатель отправляет подтверждение, что он ждет байт с номером 2048, если сегменты придут в неправильном порядке, то получатель по номерам байтов всегда сможет выставить их в правильной последовательности.
Дублирование сегментов
Рассмотрим как решается ситуация с дублированием сегментов.
- Отправитель включает в сегмент номер первого передаваемого байта 1024.
- Получатель отправляет подтверждение, где говорит что ждет байт в 2048.
- Но так как подтверждение не дошло, то отправитель передает тот же самый сегмент 1024.
- Однако получатель видит, что этот сегмент у него уже есть поэтому он этот сегмент игнорирует и снова отправляет подтверждение, где говорит что он ожидает байт 2048.