В стеке TCP/IP определены четыре уровня (см табл.1). Каждый из них несет на себе некоторую долю нагрузки по решению основной задачи — организации надежной и производительной работы составной сети, части которой построены на основе разных сетевых технологий.
Табл.1. Уровни стека TCP/IP .
Уровень I | Прикладной уровень |
Уровень II | Основной (транспортный) уровень |
Уровень III | Уровень межсетевого взаимодействия |
Уровень IV | Уровень сетевых интерфейсов |
Уровень межсетевого взаимодействия
Стержнем всей архитектуры является уровень межсетевого взаимодействия, или сетевой уровень, который реализует концепцию передачи пакетов в режиме без установления соединений, то есть дейтаграммным способом. Именно этот уровень обеспечивает возможность перемещения пакетов по сети, используя тот маршрут, который в данный момент является наиболее рациональным. Этот уровень также называют уровнем internet, указывая, тем самым, на основную его функцию — передачу данных через составную сеть.
Что такое TCP IP / Урок 22 / Тестировщик с нуля
Основным протоколом уровня (в терминологии модели OSI ) в стеке TCP/IP является протокол IP . Этот протокол изначально проектировался как протокол передачи пакетов в составных сетях, состоящих из большого количества локальных сетей, объединенных как локальными, так глобальными связями. Поэтому протокол IP хорошо работает в сетях со множеством топологий, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Так как протокол IP является дейтаграммным протоколом, он не гарантирует доставку пакетов до узла назначения, но старается это сделать.
К уровню межсетевого взаимодействия относятся все протоколы, связанные с состоянием и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP и OSPF , а также протокол межсетевых управляющих сообщений ICMP . Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и удаленным источником пакета. С помощью специальных пакетов ICMP сообщает о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т. п.
Основной уровень
Поскольку на сетевом уровне не устанавливается соединение, то нет никаких гарантий того, что все пакеты будут доставлены в место назначения целыми и невредимыми или придут в том же порядке, в котором они были отправлены. Эту задачу — обеспечение надежности информационной связи между двумя конечными узлами — решает основной уровень стека TCP/IP , называемый также транспортным.
На этом уровне функционируют протокол управления передачей TCP и протокол дейтаграмм пользователя UDP . Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования логических соединений. Этот протокол позволяет равноранговым объектам на компьютере-отправителе и на компьютере-получателе поддерживать обмен данными в дуплексном режиме. TCP позволяет без ошибок доставлять сформированный на одном из компьютеров поток байт в любой другой компьютер, входящий в составную сеть. TCP делит поток байт на части — сегменты и передает их нижележащему уровню межсетевого взаимодействия. После того, как эти сегменты будут доставлены в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.
TCP/IP: что это и зачем нужно
Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и главный протокол уровня межсетевого взаимодействия IP , и выполняет только функции связующего звена (мультиплексора) между сетевым протоколом и многочисленными системами прикладного уровня, или пользовательскими процессами.
Прикладной уровень
Прикладной уровень объединяет все службы, представляемые системой пользовательским приложениям. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое число протоколов и служб прикладного уровня. Прикладной уровень реализуется программными системами, построенными в архитектуре клиент-сервер, базирующейся на протоколах нижних уровней.
В отличие от протоколов остальных трех уровней, протоколы прикладного уровня занимаются деталями конкретного приложения и «не интересуются» способами передачи данных по сети. Этот уровень постоянно расширяется за счет присоединения к старым, прошедшим многолетнюю эксплуатацию сетевым службам типа Telnet, FTP , TFTP , DNS , SNMP , сравнительно новых служб, таких, например, как протокол передачи гипертекстовой информации HTTP.
Уровень сетевых интерфейсов
Идеологическим отличием архитектуры стека TCP/IP от многоуровневой организации других стеков является интерпретация функций самого нижнего уровня — уровня сетевых интерфейсов. Протоколы этого уровня должны обеспечивать интеграцию в составную сеть других сетей, причем задача ставится так: сеть TCP/IP должна иметь средства включения в себя любой другой сети, какую бы внутреннюю технологию передачи данных эта сеть не использовала. Отсюда следует, что этот уровень нельзя определить раз и навсегда. Для каждой технологии, включаемой в составную сеть подсети, должны быть разработаны собственные интерфейсные средства. К таким интерфейсным средствам относится протокол инкапсуляции IP-пакетов межсетевого взаимодействия в кадры локальных технологий.
Уровень сетевых интерфейсов в протоколах TCP/IP не регламентируется, но он поддерживает все популярные стандарты физического и канального уровней: для локальных сетей — это Ethernet, Token Ring, FDDI , Fast Ethernet, Gigabit Ethernet, 100VG-AnyLAN, для глобальных сетей — протоколы соединений «точка-точка» SLIP и PPP , протоколы территориальных сетей с коммутацией пакетов X.25, frame relay. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня.
Соответствие уровней стека TCP/IP уровням модели OSI .
Так как стек TCP/IP был разработан до появления модели взаимодействия открытых систем OSI , то, хотя он также имеет многоуровневую структуру, сответствие уровней стека TCP/IP уровням модели OSI достаточно условно (табл.2).
Табл.2. Соответствие уровней стека TCP/IP и модели OSI .
7 | WWW, Gopher, WAIS | SNMP | FTP | Telnet | TFTP | SMTP | I | |
6 | ||||||||
5 | TCP | UDP | II | |||||
4 | ||||||||
3 | IP | ICMP | RIP | OSPF | ARP | III | ||
2 | не регламентируется: Ethernet, Gigabit Ethernet, Token Ring, PPP , FDDI , X.25, SLIP, frame relay . | IV | ||||||
1 | ||||||||
уровни OSI | уровни TCP/IP |
Рассматривая многоуровневую архитектуру TCP/IP , можно выделить в ней, подобно архитектуре OSI , уровни, функции которых зависят от конкретной технологической реализации сети, и уровни, функции которых ориентированы на работу только с приложениями и не зависят от технологий сети.
Протоколы прикладного уровня стека TCP/IP работают на компьютерах, выполняющих приложения пользователей. Даже полная смена сетевого оборудования в общем случае не должна влиять на работу приложений, если они получают доступ к сетевым возможностям через протоколы прикладного уровня.
Протоколы транспортного уровня уже более зависимы от сети, так как они реализуют интерфейс к уровням, непосредственно организующим передачу данных по сети. Однако подобно протоколам прикладного уровня, программные модули, реализующие протоколы транспортного уровня, устанавливаются только на конечных узлах.
Протоколы двух нижних уровней являются сетезависимыми, а следовательно, программные модули протоколов межсетевого уровня и уровня сетевых интерфейсов устанавливаются как на конечных узлах составной сети, так и на маршрутизаторах.
Единицы данных протоколов стека TCP/IP
Каждый коммуникационный протокол оперирует с некоторой единицей передаваемых данных. Названия этих единиц иногда закрепляются стандартом, но чаще просто определяются традицией. В стеке TCP/IP за многие годы его эксплуатации образовалась устоявшаяся терминология в этой области (табл.3).
Табл.3. Единицы данных в стеке TCP/IP .
I | ПРИКЛАДНЫЕ ПРОТОКОЛЫ (поток) | |
II | UDP (дейтаграмма) | TCP (сегмент) |
III | IP (пакет или IP-дейтаграмма) | |
IV | СЕТЕВЫЕ ИНТЕРФЕЙСЫ (кадр(фрейм)) |
Потоком называют данные, поступающие от приложений на вход транспортного уровня TCP или UDP .
Протокол TCP нарезает из потока сегменты .
Единицу данных протокола UDP часто называют дейтаграммой (или датаграммой) . Дейтаграмма — это общее название для единиц данных, которыми оперируют протоколы без установления соединений. К таким протоколам относится и протокол межсетевого взаимодействия IP .
Дейтаграмму протокола IP называют также пакетом .
В стеке TCP/IP принято называть кадрами (фреймами) единицы данных протоколов, на основе которых IP-пакеты переносятся через подсети составной сети. При этом не имеет значения, какое название используется для этой единицы данных в локальной технологии.
Структура связей протокольных модулей
Рассмотрим потоки данных, проходящие через стек. В случае использования протокола TCP , данные передаются между прикладным процессом и модулем TCP . Типичным прикладным процессом, использующим протокол TCP , является модуль FTP . Стек протоколов в этом случае будет FTP / TCP / IP /Ethernet. При использовании протокола UDP , данные передаются между прикладным процессом и модулем UDP . Например, SNMP пользуется транспортными услугами UDP . Его стек протоколов выглядит так: SNMP / UDP / IP /Ethernet.
- Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он может быть направлен либо в модуль ARP , либо в модуль IP . На то, куда должен быть направлен Ethernet-кадр, указывает значение поля типа в заголовке кадра.
- Если IP-пакет попадает в модуль IP , то содержащиеся в нем данные могут быть переданы либо модулю TCP , либо UDP , что определяется полем «протокол» в заголовке IP-пакета.
- Если UDP-датаграмма попадает в модуль UDP , то на основании значения поля «порт» в заголовке датаграммы определяется прикладная программа, которой должно быть передано прикладное сообщение.
- Если TCP-сообщение попадает в модуль TCP , то выбор прикладной программы, которой должно быть передано сообщение, осуществляется на основе значения поля «порт» в заголовке TCP-сообщения.
Источник: kunegin.com
Как работает протокол TCP/IP?
Мне не понятно, ГДЕ все эти правила записаны (где эта последовательность действий задана) — «посмотри, есть ли соответствие «доменное имя — айпи» на компе, если нет, отправь, днс-запрос серверу днс, жди ответ, потом устанавливай соединение по протоколу айпи, котом пакеты лови (хттп и тсп-пакеты) и посылай подтверждение о получении, закрывай соединение»? Это какой-то протокол? Везде пишут про ОПИСАННУЮ ВЫШЕ последовательность действий, но мне не понятно КАКАЯ ПРОГРАММА ЭТО ВСЕ ДЕЛАЕТ И ГДЕ ЭТО «ЗАШИТО».
Отслеживать
задан 8 окт 2016 в 21:43
2,049 3 3 золотых знака 18 18 серебряных знаков 35 35 бронзовых знаков
Это выполняет драйвер tcp/ip в ядре операционной системы (это то что касается tcp/ip), а DNS частично библиотека языка, частично ядро, частично служба DNS
8 окт 2016 в 21:49
Поведение браузера не такое как описано в вопросе, но если основной вопрос, «ГДЕ правила для TCP/IP описаны», то основное место где все официальные стандарты для интернета публикуются это различные RFCs, хотя наверняка многие вещи только в виде кода (в основном внутри различных ОС) существует (могут быть и userspace реализации). Ну а чтобы ответить на вопрос в заголовке «как TCP/IP работает» помимо многочисленных RFCs, целые книги написаны такие как TCP/IP Illustrated by W. Richard Stevens
9 окт 2016 в 5:45
jfs, что я написал неправильно в вопросе?
9 окт 2016 в 10:11
9 окт 2016 в 18:48
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Работа с сетью — это одна из частей многоуровневой системы ввода/вывода в операционной системе. Если вникать глубже, когда вы инициализируете запрос к устройству, этот запрос обслуживает диспетчер ввода-вывода, который передаст его куда нужно, и вернет в процесс данные, которые нужны от устройства.
Во всех современных сетях используется так называемый стек протоколов для наслоения различных протоколов друг на друга. На каждом уровне решаются разные вопросы. Например, на самом нижнем уровне протоколы определяют, как сообщить в потоке битов, где начинаются и где заканчиваются пакеты. На более высоком уровне протоколы занимаются прокладыванием маршрутов для пакетов по сложным сетям от источника к месту назначения. И на еще более высоком уровне они обеспечивают надлежащую доставку всех пакетов в многопакетном сообщении в нужном порядке.
Пользовательский процесс генерирует сообщение и выдает системный вызов для его отправки по предварительно установленному TCP-соединению. Стек протоколов, находящийся в ядре, добавляет в начало сообщения TCP-заголовок, а затем IP-заголовок. Затем сообщение поступает к драйверу сети Ethernet, который добавляет Ethernet-заголовок, направляющий пакет к маршрутизатору в сети Ethernet. После чего этот маршрутизатор внедряет пакет в Интернет.
Чтобы установить соединение с удаленным хостом (или хотя бы отправить ему дейтаграмму), необходимо знать его IP-адрес. Поскольку оперировать списками с 32-битными адресами людям неудобно, была изобретена система под названием DNS (Domain Name System — система доменных имен), представляющая собой базу данных, которая отображает ASCII-имена хостов на их IP-адреса.
- Браузер запрашивает у DNS IP-адрес, соответствующий имени
- DNS в ответ выдает IP
- Браузер устанавливает TCP-соединение с портом 80 на хосте с IP-адресом
- Затем он отправляет запрос на файл index.html
- Сервер отправляет файл index.html
- Отображение файла
- TCP-соединение разрывается.
Естественно, установление соединения, запрос IP по имени происходит через API операционной системы, операционная система пересылает ваш запрос DNS службе, которая сканирует файл hosts, и если там есть запись — выдает ее, иначе обращается к серверу или собственному кешу.
Рекомендую Вам почитать «Современные операционные системы» Э. Таненбаум., книга большая, но знаний от нее получите по архитектуре и работе операционной системы массу.
Источник: ru.stackoverflow.com
Sysadminium
В этой статье вы познакомитесь с сетевыми моделями OSI и TCP/IP. OSI — это 7 уровневая модель. А TCP/IP — 4 уровневая модель.
Оглавление скрыть
Модель OSI
OSI (Open System Interconnection) — это эталонная модель сетевых взаимодействий. Эта модель весь процесс передачи данных делит на 7 частей, другими словами на 7 уровней. Каждый уровень отвечает за определённые задачи, но не говорит, как эти задачи решать. Это позволяет разработчикам создавать новые протоколы или технологии, которые работают на определённом уровне (решают определённые задачи) и не задумываться о других задачах. Другие задачи решаются на других уровнях, на которых работают другие протоколы и технологии.
Например, при разработке определённого протокола, нужно подумать о 2 вещах:
- О работе самого протокола (что этот протокол будет делать и какие задачи решать).
- О взаимодействии с более низким и более высоким уровнем. То есть как данные должны переходить с уровня на уровень, вверх или вниз.
Вот так выглядит эта модель:
Данные, переходя с верхнего уровня на нижний, обрабатываются и к ним добавляется служебная информация. Процесс добавления служебной информации более низкого уровня называется — инкапсуляция.
Обратный процесс, когда данные переходят на более высокий уровень, при этом служебные данные более низкого уровня отбрасываются называется — декапсуляция.
Дальше пробежимся по каждому уровню, сверху вниз.
7 уровень — прикладной
Это самый высокий уровень. На нём работают пользовательские приложения, установленные на компьютере, сервере или телефоне. Здесь работают, например: клиент электронной почты и почтовый сервер, программный телефон и сервер ip-телефонии, браузер и web-сервер.
Протоколы этого уровня: DNS, HTTP, POP3, IMAP, SMTP, SIP, FTP, CIFS, NFS, DHCP и подобные.
Передающиеся данные на этом уровне называются сообщениями.
6 уровень — представления
На этом уровне происходит преобразование данных. Например шифрование или сжатие. Данные должны быть представлены в определённом виде, чтобы принимающее их приложение смогло эти данные обработать.
Здесь, теоретически, данные могут преобразовываться в разные форматы, например GIF или MP4. Или данные могут быть зашифрованы и расшифрованы.
На этом уровне работают протоколы: SSL и TLS.
5 уровень — сеансовый
Этот уровень отвечает за создание и уничтожение сеансов связи. Чтобы сеанс установился и поддерживался, на этом же уровне работает согласование кодеков.
4 уровень — транспортный
Этот уровень обеспечивает передачу данных по сети. То есть данные ещё не передаются физически, но уже происходит договорённость, как данные будут передаваться.
Здесь работают два протокола TCP и UDP. Эти протоколы применяются для разного типа трафика. Если трафик чувствителен к потерям, то используют TCP, который гарантирует доставку данных. А если трафику нужна более быстрая передача данных и можно пожертвовать потерями данных, то используют UDP.
На этом уровне сообщение делится на сегменты (если выбран протокол TCP) или на дейтаграммы (если выбран протокол UDP). В качестве служебной информации к каждому сегменту или дейтаграмме добавляется сетевой порт источника и назначения. Такие порты прослушивают процессы на хостах (компьютерах, серверах или телефонах).
3 уровень — сетевой
Этот уровень тоже отвечает за передачу данных. Но в отличии от транспортного уровня, где происходит выбор надёжности или скорости отправки данных. Задача этого уровня — ip-адресация и маршрутизация.
На этом уровне пришедший сверху сегмент или дейтаграмма делится на пакеты. А в качестве служебной информации к каждому пакету добавляется ip-адреса отправителя и получателя.
IP-адрес — это сетевой адрес устройства в Интернете.
Именно на этом уровне происходит маршрутизация пакетов, поэтому здесь расположились протоколы маршрутизации: BGP, OSPF, RIP, EIGRP.
Также на этом уровне работает протокол: ICMP, именно с его помощью работает утилита PING.
Ну и конечно же здесь работает протокол IP, который вводит ip-адреса.
А главное устройство, работающее на этом уровне — Маршрутизатор (Router).
2 уровень — канальный
Этот уровень разбивает пакеты, пришедшие с сетевого уровня на кадры (Frame). В качестве дополнительной информации каждому кадру назначаются физические адреса (mac-адреса) отправителя и получателя.
MAC-адрес — это физический адрес устройства в одном широковещательном домене.
Помимо физической адресации, этот уровень отвечает за обнаружение и исправление ошибок. То есть каждый кадр проверяется на ошибки и происходит попытка исправления ошибок разными способами (а иногда и не происходит).
На этом уровне работают коммутаторы (Switch) и мосты (Bridge). Эти устройства передают кадры определённому получателю а не всем.
На этом уровне работают протоколы: CDP, PPP, MPLS. Также здесь обитает технология Ethernet, которая занимает этот уровень и более низкий уровень.
1 уровень — физический
Это самый нижний уровень модели OSI. На этом уровне происходит разбивка кадров на биты. Затем биты кодируются в сигналы, а сигналы передаются по среде передачи. По проводам можно передавать сигналы с помощью электрического тока или света. Или можно передавать сигналы с помощью радио-волн.
Среди технологий, работающих на этом уровне, можно выделить Ethernet. Он описывает, как сигналы должны кодироваться, передаваться по проводам и так далее. Ещё на этом уровне работают: Bluetooth и Wi-Fi.
Сетевые устройства, которые здесь работают, это: концентраторы (Hub) и повторители (Repeater). Эти устройства работают с сигналами не вникая в логику передачи. Так как здесь нет никаких адресов, то сигнал просто передаётся с одного порта на другой.
Итоговая картинка
В итоге все полученные знания выше можно представить на следующем рисунке:
Модель TCP/IP
Эталонная модель сетевых взаимодействий OSI — это теоретическая модель, которая хорошо описывает, как сетевые устройства должны общаться друг с другом. Но на практике, разрабатывая сетевые протоколы, вместо OSI используют другую модель сетевых взаимодействий — TCP/IP.
Помимо модели сетевых взаимодействий TCP/IP есть стек протоколов TCP/IP. В этот стек входит множество сетевых протоколов, которые хорошо встраиваются в одноименную модель.
Модель TCP/IP делит процесс передачи данных на 4 уровня вместо 7 уровней OSI:
4 уровень — прикладной
Прикладной уровень в модели TCP/IP является самым верхним. Здесь работают приложения, установленные на компьютере, телефоне или сервере. Но в отличии от модели OSI здесь же происходит согласование данных (шифрование, сжатие, выбор формата данных и выбор кодеков) и установка сеансов связи.
Например, здесь работают протоколы SIP, DHCP, HTTP и подобные.
3 уровень — транспортный
Этот уровень не отличается от транспортного уровня в модели OSI. Здесь также работают 2 протокола: TCP и UDP. А в качестве служебной информации выступают сетевые порты.
2 уровень — интернет (межсетевой)
Интернет состоит из множества локальных сетей, объединённых между собой маршрутизаторами.
Этот уровень не отличается от сетевого уровня модели OSI. Здесь реализуется ip-адресация и маршрутизация, за счет введения ip-адресов.
1 уровень — сетевых интерфейсов
Этот уровень вобрал в себя физический и канальный уровни модели OSI. Это аппаратный уровень, на котором работают сетевые карты, коммутаторы, повторители, концентраторы.
Также на этом уровне находятся среды передачи информации, провода, радиоволны. Но не просто среды, а технологии, которые эти среды используют: Ethernet, Wi-Fi, DSL, Bluetooth.
Также на этом уроне можно обнаруживать или исправлять ошибки, возникшие при передаче данных.
Имя статьи
Сетевые модели OSI И TCP/IP
В этой статье вы познакомитесь с сетевыми моделями OSI и TCP/IP. OSI — это 7 уровневая модель. А TCP/IP — 4 уровневая модель
Источник: sysadminium.ru