Локальная сеть
Абонент соединяется с использованием сети LAN Ethernet и при этом отсутствуют дополнительные подключения.
Просто компьютер подсоединяется одним из двух видов кабеля:
Необходимо отметить, что этот вид подключения имеет два следующих подвида:
- Динамический – DHCP, который можно отнести к простым видам, так как у пользователя нет необходимости во вводе параметров настроек. Достаточно вставить провод в ПК и все нужные характеристики поступят в автоматическом режиме.
- Статический – IP. В этом случае IP-адрес фиксированный и нужно вручную ввести параметры сети. Настройки прописаны в контрактных документах поставщика услуг связи с клиентом. Нужно указать следующие обязательные характеристики конфигурации: IP, маску подсети, ДНС и шлюз.
В компьютере на операционной системе Windows эти параметры вводятся в «Свойствах протокола Интернета» версии 4.
В этом меню можно легко изменить характеристики в соответствии с указанными в договоре с провайдером данными.
Примечание: Нередко в этих двух подвидах применяется привязка по адресу «МАС».
Сегодня кабельный тип подключения к интернету через WAN разъем пока занимает лидирующую позицию в рейтинге популярности среди пользователей.
Главное достоинство – высокая скорость при сравнительно низких ценах на тарифы обслуживающей компании.
Провайдеры подключают клиентов в этом случае следующими способами:
а) с использованием оптоволоконного кабеля;
б) через витую пару.
Как сделать выбор: TCP или UDP для vpn?
Программа Whoer VPN по умолчанию использует TCP-протокол, но при необходимости вы можете сменить его на UDP в Настройках одним кликом.
Наши клиенты часто спрашивают, какой протокол лучше: tcp или udp для vpn. Прочитав этой статье о tcp и udp протоколах, вы сами можете решить, какой из них лучше подходит именно вам. OpenVPN приложения работают как с UDP, так и с TCP, и оба протокола безопасны и обеспечивают анонимность. Какой из них использовать, зависит от того, для чего вы используете VPN.
В дополнение к собственному впн-клиенту, мы предоставляем нашим пользователям Openvpn конфиги для использования с любым подходящим клиентом на выбранной платформе. Рекомендуем вам посмотреть видео-инструкцию Меняем TCP на UDP в OpenVPN на нашем youtube-канале, если вы используете OpenVPN клиент.
Подписывайтесь на нас в соцсетях, задавайте вопросы и делитесь полезной информацией с друзьями и близкими!
Протокол SRT
Первым общеотраслевым решением стал протокол SRT. Он был разработан компанией Haivision и исходно создавался ею для интеграции в кодеры и декодеры собственного производства. Однако потом было решено выложить спецификацию в открытый доступ. Протокол был опубликован в 2017 году и тогда же был основан Альянс SRT. Это придало стандарту статус индустриального, и безлицензионная технология SRT вскоре была взята на вооружение многими разработчиками аппаратуры. Сегодня число членов альянса перевалило за две сотни.
В отличие от большинства других систем, SRT не поддерживает множественные потоки передачи, и основная система восстановления пакетов, заложенная в протоколе, это ARP. Из функций SRT можно отметить возможность мультиплексирования, то есть организации нескольких SRT-соединений на одном UDP-порте, поддержку AES-шифрования, а также наличие трех режимов установления соединения: вызова, прослушивания и рандеву. В режиме вызова принимающая сторона отправляет запрос на получение информации от получателя, в этом случае общедоступный IP-адрес и открытый UDP-порт нужен только на передающей стороне. В режиме прослушивания инициатива принадлежит передатчику, а общедоступный IP и открытый UDP-порт требуется только на приемной стороне. Причем благодаря возможности мультиплексирования одного открытого порта достаточно даже при передаче множества SRT-потоков. Это упрощает конфигурирование системы. Режим рандеву предназначен для налаживания соединения между двумя сетевыми экранами или при размещении распределительного SRT-узла в облаке.
UDP заголовок
На рисунке показаны поля, присутствующие в UDP заголовке.
- Порт отправителя — в этом поле указывается номер порта отправителя. Предполагается, что это значение задает порт, на который при необходимости будет посылаться ответ. В противном же случае, значение должно быть равным 0. Если хостом-источником является клиент, то номер порта будет, скорее всего, эфемерным. Если источником является сервер, то его порт будет одним из «хорошо известных».
- Порт получателя — это поле обязательно и содержит порт получателя. Аналогично порту отправителя, если клиент — хост-получатель, то номер порта эфемерный, иначе (сервер — получатель) это «хорошо известный порт».
- Длина дейтаграммы — поле, задающее длину всей дейтаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка — 8 байт. Теоретически, максимальный размер поля — 65535 байт для UDP-дейтаграммы (8 байт на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 — 65507 (помимо 8 байт на UDP-заголовок требуется еще 20 на IP-заголовок).
- Контрольная сумма — поле контрольной суммы используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями.
Рассмотрим структуру заголовка UDP с помощью сетевого анализатора Wireshark:
Протокол TCP
TCP протокол имеет большую надежность, в сравнении с UPD протоколом. Для того, чтобы начать отправку данных, ему нужно согласие и соединение обоих узлов. Это увеличивает надежность передаваемой информации.
Передача информации через TCP протокол начинается с установления соединения с получателем. Он должен известить о том, что готов получить информацию. Только после этого начинается передача данных. С TCP протоколом вы можете быть уверены, что получатель реален и он готов получить информацию от вас. Это увеличивает надежность передаваемых данных. После завершения процесса, отправитель должен сообщить, что больше информация поступать не будет. Получатель же должен ответить, что он понял это и получил все данные.
Информация передается пакетами. Каждый пакет нумеруется и передается в связи со своим порядковым номером. К тому же после передачи нескольких пакетов, TCP протокол запросит подтверждение получателя о том, что они были получены. Если ответа не последовало, то операция передачи повторяется. И так происходит несколько раз. Если все попытки так и не увенчались успехом, то TCP протокол разрывает соединение. При этом, если сеть между узлами слабая, то запросы о получении будут происходить чаще. В этом и заключается особенность TCP соединения
Он готов работать с любыми сетями, не обращая внимание на их надежность
Чаще всего, TCP протоколы используются в двух случаях. Первый — при авторизации. Второй — когда передается шифрованная информация и нужно обязательно убедиться в том, что информация дошла до получателя.
PRO MPEG FEC
Система помехозащиты PRO MPEG FEC работает следующим образом. Пакеты выстраиваются в матрицу N*M, последовательно заполняя ряд за рядом, а затем для каждого ряда и для каждой колонки вычисляются помехозащитные коды. Коды в колонках защищают от разовых потерь, а коды в столбцах — от групповых. Степень защиты регулируется размерностью матрицы. В последней версии помехозащитного кода Pro-MPEG CoP #3 FEC добавлена возможность формирование матриц не из последовательных пакетов, а из периодически выбираемых из потока. Это повышает устойчивость к групповым ошибкам без увеличения объема контрольной информации, которая в среднем составляет около 30%.
Протокол RTP работает на базе UDP, но дополнительно передает информацию о порядковых номерах пакетов. Это позволяет восстановить порядок следования пакетов и выявить пропажи. Но для восстановления пакетов требуются дополнительные механизмы. Один из них —помехоустойчивое кодирование средствами PRO MPEG FEC. Достоинство этого метода заключается в низкой вносимой задержке, обусловленной только дополнительными вычислениями. Она составляет от 100 до 500 мс. Тем не менее помехоустойчивое кодирование хорошо подходит только для каналов с прогнозируемым или более-менее стабильным уровнем потерь, таких как вещательные. В условиях непредсказуемости состояния транспортного канала PRO MPEG FEC неэффективен. При плохом канале он может не сработать, а при хорошем — неоправданно загрузить линию передачей ненужных контрольных бит. Поэтому PRO MPEG FEC в основном используется для переброса с одной головной станции на другую, при сомнительном качестве выделенного IP-канала или при передаче по спутниковому каналу в IP-формате, где отсутствует обратная связь. Рассматривать это решение как надежный и эффективный способ доставки через открытый интернет нельзя.
Полноценные технологии на базе RTP для доставки видео через открытый интернет включают комплекс механизмов защиты от потерь. До недавнего времени в сегменте профессиональной доставки предлагались только корпоративные решения. Самое известное из них — от компании ZIXI. Им
множество крупных студий и операторов. Это закрытое решение, и подробности его технической реализации неизвестны. Производитель сообщает только, что в технологии используется комбинация адаптивного помехоустойчивого кодирования, системы восстановления пакетов (Automatic Repeat reQuest, ARQ), параллельной доставки по нескольким каналам и бесшовного переключения при сбоях с одного канала на другой. Эти инструменты могут применяться в разных сочетаниях в зависимости от требований к параметрам передачи. Если приоритетна скорость доставки, то, по словам разработчиков, платформу несложно настроить так, что прохождение потока будет занимать менее секунды вне зависимости от расстояния между передатчиком и приемником. А при другой конфигурации платформа может гарантировать надежность доставки 99,9999 % в отношении джиттера и потерь. Этот показатель подтвержден тестами. Скорость доставки при такой надежности падает, но по-прежнему может составлять конкуренцию вещательным сетям. Использование ARQ позволяет оператору точно задать уровень задержки из диапазона, достижимого при требуемой надежности, например чтобы синхронизировать поток с другим, передаваемым по вещательному каналу. Платформа поддерживает конфигурации точка—точка или точка—многоточка.
Похожее решение предлагает компания VideoFlow. Оба они многократно проверены на практике и востребованы на рынке, так как расценки на них сопоставимы со стоимостью спутниковых каналов с такой же пропускной способностью.
Помимо них на рынке есть множество других решений для профессиональной доставки видео через интернет. Это протокол LRT разработки LiveU, платформа MultiPipe компании QARVA, Transporter от компании «Майкроимпульс». Большинство из них обеспечивают надежность работы за счет использования ARP и разбиения одного логического канала на несколько потоков с отправкой по разным маршрутам.
Но в любом развивающемся сегменте рано или поздно появляется потребность в индустриальных стандартах.
Модель OSI
Эталонная модель OSI являет собой 7-уровневую сетевую иерархию созданную международной организацией по стандартам (ISO). Представленная модель на рис.1 имеет 2 различных модели:
- горизонтальная модель на основе протоколов, реализующую взаимодействие процессов и ПО на разных машинах
- вертикальную модель на основе услуг, реализуемых соседними уровнями друг другу на одной машине
В вертикальной — соседние уровни меняются информацией с помощью интерфейсов API. Горизонтальная модель требует общий протокол для обмена информацией на одном уровне.
Рисунок — 1
Модель OSI описывает только системные методы взаимодействия, реализуемые ОС, ПО и тд. Модель не включает методы взаимодействия конечных пользователей. В идеальных условиях приложения должны обращаться к верхнему уровню модели OSI, однако на практике многие протоколы и программы имеют методы обращения к нижним уровням.
Физический уровень
На физическом уровне данные представлены в виде электрических или оптических сигналов, соответствующие 1 и 0 бинарного потока. Параметры среды передачи определяются на физическом уровне:
- тип разъемов и кабелей
- разводка контактов в разъемах
- схема кодирования сигналов 0 и 1
Самые распространенные виды спецификаций на этом уровне:
- EIA-RS-232-C, CCITT V.24/V.28 — параметры несбалансированного последовательного интерфейса
- EIA-RS-422/449, CCITT V.10 — параметры сбалансированного последовательного интерфейса
- IEEE 802.3 — Ethernet
- IEEE 802.5 — Token ring
На физическом уровне нельзя вникнуть в смысл данных, так как она представлена в виде битов.
Канальный уровень
На этом канале реализована транспортировка и прием кадров данных. Уровень реализует запросы сетевого уровня и использует физический уровень для приема и передачи. Спецификации IEEE 802.x делят этот уровень на два подуровня управление логическим каналом (LLC) и управление доступом к среде (MAC). Самые распространенные протоколы на этом уровне:
- Протокол последовательной передачи HDLC
- IEEE 802.2 LLC и MAC
- Ethernet
- Token Ring
- FDDI
- х 25
- Frame Relay
Также на этом уровне реализуется обнаружение и исправление ошибок при передаче. На канальном уровне пакет помещается в поле данных кадра — инкапсуляция. Обнаружение ошибок возможно с помощью разных методов. К примеру реализация фиксированных границ кадра, или контрольной суммой.
Сетевой уровень
На этом уровне происходит деление пользователей сети на группы. Здесь реализуется маршрутизация пакетов на основе MAC-адресов. Сетевой уровень реализует прозрачную передачу пакетов на транспортный уровень. На этом уровне стираются границы сетей разных технологий. Маршрутизаторы работают на этом уровне. Пример работы сетевого уровня показан на рис.2 Самые частые протоколы:
- ПIP
- IPX
- X 25
- CLNP
Рисунок — 2
Транспортный уровень
На этом уровне потоки информации делятся на пакеты для передачи их на сетевом уровне. Самые распространенные протоколы этого уровня:
- TCP — протокол управления передачей
- NCP
- SPX
- TP4
Сеансовый уровень
На этом уровне происходит организация сеансов обмена информацией между оконечными машинами. На этом уровне идет определение активной стороны и реализуется синхронизация сеанса. На практике многие протоколы других уровней включают функцию сеансового уровня.
Уровень представления
На этом уровне происходит обмен данными между ПО на разных ОС. На этом уровне реализовано преобразование информации (кодирование, сжатие и тд) для передачи потока информации на транспортный уровень. Протоколы уровня используются и те, что используют высшие уровни модели OSI.
Прикладной уровень
Прикладной уровень реализует доступ приложения в сеть. Уровень управляет переносом файлов и управление сетью. Используемые протоколы:
- FTP/TFTP — протокол передачи файлов
- X 400 — электронная почта
- Telnet
- smtp
- CMIP — управление информацией
- SNMP — управление сетью
- NFS — сетевая файловая система
- FTAM — метод доступа для переноса файлов
Передача данных в TCP
Теперь разберём пример передачи данных в уже установленном сеансе.
Клиент отравляет запрос к серверу. Поскольку данные поместились в один пакет TCP, он получил флаг PSH, чтобы сервер не ждал продолжение получения данных. При этом пакет получил 2 флага: ACK (подтвердил предыдущею передачу пакетов от сервера) и PSH.
В ответ на это сервер отправляет пакет ACK с номером успешно полученных данных.
Далее сервер обработал запрос и отправляет данные клиенту. Эти данные делятся на пакеты и отправляются сегментами.
Далее клиент подтверждает, что данные получены отправляя пакеты с флагом ACK.
WiMax и Wi-Fi
Wi-Fi маршрутизаторы многие пользователи используют дома. Также эти сети распространены в общественных местах: вокзалах, кафе, парках, торговых центрах и т.д.
Операторы связи эту технологию используют редко из-за небольшой зоны покрытия.
Провайдеры организуют покрытие Wi-Fi по технологии WiMax крупных участков, например, районов коттеджных поселков.
Эта технология охватывает значительные площади, радиус которых исчисляется километрами, но для этого оператор устанавливает базовые станции.
Средняя скорость по технологии WiMax не превышает 70 мегабит.
Пользователю, чтобы соединиться с такой беспроводной сетью, необходим приемник, но если он находится на значительном удалении от ближайшей базовой станции, потребуется дополнительное приобретение специальной антенны для увеличения мощности приема сигнала.
Рекомендуется сначала проконсультироваться с оператором, предоставляющим услуги по этой технологии и удостовериться в нахождении приемника пользователя в зоне покрытия сетью.
Если базовые станции расположены дальше 10 километров (а благоприятнее, чтобы они были в пределах прямой видимости), лучше поменять свое решение и воспользоваться другими типами подключений к глобальной сети.
Обе технологии Wi-Fi и WiMax беспроводные и это основное их преимущество, позволяющее решать широкий спектр задач.
Структура пакета
UDP не предоставляет никаких гарантий доставки сообщения для вышестоящего протокола и не сохраняет состояния отправленных сообщений. По этой причине UDP иногда называют Unreliable Datagram Protocol (англ. — Ненадёжный протокол датаграмм).
UDP обеспечивает многоканальную передачу (с помощью номеров портов) и проверку целостности (с помощью контрольных сумм) заголовка и существенных данных. Надёжная передача в случае необходимости должна реализовываться пользовательским приложением.
Биты | 0 — 15 | 16-31 |
---|---|---|
0-31 | Порт отправителя (Source port) | Порт получателя (Destination port) |
32-63 | Длина датаграммы (Length) | Контрольная сумма (Checksum) |
64-… | Данные (Data) |
Заголовок UDP состоит из четырёх полей, каждое по 2 байта (16 бит). Два из них необязательны к использованию в IPv4 (розовые ячейки в таблице), в то время как в IPv6 необязателен только порт отправителя.
Порт отправителя
В этом поле указывается номер порта отправителя. Предполагается, что это значение задаёт порт, на который при необходимости будет посылаться ответ. В противном же случае, значение должно быть равным 0. Если хостом-источником является клиент, то номер порта будет, скорее всего, динамическим. Если источником является сервер, то его порт будет одним из «хорошо известных».
Порт получателя
Это поле обязательно и содержит порт получателя. Аналогично порту отправителя, если хостом-получателем является клиент, то номер порта динамический, если получатель — сервер, то это будет «хорошо известный» порт.
Длина датаграммы
Поле, задающее длину всей датаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка — 8 байт. Теоретически, максимальный размер поля — 65535 байт для UDP-датаграммы (8 байт на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 — 65507 (помимо 8 байт на UDP-заголовок требуется ещё 20 на IP-заголовок).
На практике также следует учитывать, что если длина IPv4 пакета с UDP будет превышать MTU (для Ethernet по умолчанию 1500 байт), то отправка такого пакета может вызвать его фрагментацию, что может привести к тому, что он вообще не сможет быть доставлен, если промежуточные маршрутизаторы или конечный хост не будут поддерживать фрагментированные IP пакеты. Также в RFC791 указывается минимальная длина IP пакета 576 байт, которую должны поддерживать все участники, и рекомендуется отправлять IP пакеты большего размера только в том случае если вы уверены, что принимающая сторона может принять пакеты такого размера. Следовательно, чтобы избежать фрагментации UDP пакетов (и возможной их потери), размер данных в UDP не должен превышать: MTU — (Max IP Header Size) — (UDP Header Size) = 1500 — 60 — 8 = 1432 байт. Для того чтобы быть уверенным, что пакет будет принят любым хостом, размер данных в UDP не должен превышать: (минимальная длина IP пакета) — (Max IP Header Size) — (UDP Header Size) = 576 — 60 — 8 = 508 байт.
В Jumbogram’мах IPv6 пакеты UDP могут иметь больший размер. Максимальное значение составляет 4 294 967 295 байт (232 — 1), из которых 8 байт соответствуют заголовку, а остальные 4 294 967 287 байт — данным.
Следует заметить, что большинство современных сетевых устройств отправляют и принимают пакеты IPv4 длиной до 10000 байт без их разделения на отдельные пакеты. Неофициально такие пакеты называют «Jumbo-пакетами», хотя понятие Jumbo официально относится к IPv6. Тем не менее, «Jumbo-пакеты» поддерживают не все устройства и перед организацией связи с помощью UDP/IP IPv4 посылок с длиной превышающей 1500 байт нужно проверять возможность такой связи опытным путём на конкретном оборудовании.
Контрольная сумма
Поле контрольной суммы используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями. Поле не является обязательным для IPv4.
Сколько всего портов TCP?
Для протокола TCP порт с номером 0 зарезервирован и не может использоваться. Для протокола UDP указание порта процесса-отправителя («обратного» порта) не является обязательным, и порт с номером 0 означает отсутствие порта. Таким образом, номер порта — число в диапазоне от 1 до 216-1=65 535.
Соединение TCP
Чтобы установить соединение между двумя процессами на разных компьютерах сети, необходимо знать не только интернет-адреса компьютеров, но и номера тех ТСР-портов (sockets), которые процессы используют на этих компьютерах. Любое TCP-соединение в сети Интернет однозначно идентифицируется двумя IP-адресами и двумя номерами ТСР-портов.
Протокол TCP умеет работать с поврежденными, потерянными, дублированными или поступившими с нарушением порядка следования пакетами. Это достигается благодаря механизму присвоения каждому передаваемому пакету порядкового номера и механизму проверки получения пакетов.
Когда протокол TCP передает сегмент данных, копия этих данных помещается в очередь повтора передачи и запускается таймер ожидания подтверждения.
Сокеты TCP
Активные TCP соединения с интернетом (w/o servers)
# netstat -nt Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.26.95.251:56981 10.161.85.55:22 ESTABLISHED tcp 0 0 10.26.95.251:44596 10.26.95.226:2193 ESTABLISHED
Для сокетов TCP допустимы следующие значения состояния:
CLOSED Закрыт. Сокет не используется. LISTEN Сокет ожидает входящих соединений. SYN_SENT Активно пытается установить соединение. Cокет в процессе установки соединения. SYN_RECEIVED (SYN_RCVD) Идет начальная синхронизация соединения. Был принят запрос установки соединения из сети. ESTABLISHED Соединение установлено. CLOSE_WAIT Удаленная сторона отключилась; ожидание закрытия сокета. FIN_WAIT_1 Сокет закрыт; соединение закрывается. CLOSING Сокет закрыт, затем удаленная сторона отключилась; ожидание подтверждения. LAST_ACK Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения. FIN_WAIT_2 Сокет закрыт; ожидание отключения удаленной стороны. TIME_WAIT Сокет закрыт, но ожидает пакеты, ещё находящиеся в сети для обработки UNKNOWN Статус сокета неизвестен.
Что такое TCP RST?
TCP RST – это сегмент TCP (обратите внимание, что TCP посылает сообщения сегментами, а НЕ пакетами, что часто неправильно употребляется в среде сетевых администраторов), который показывает, что с соединением что-то не так. RST посылается в следующих случаях:
- Посылается SYN для несуществующего сервера.
- TCP хочет прервать соединение.
- Получен сегмент, для которого не существует соединения.
TCP vs self-made UDP. Final fighting
- Send/recv buffer: для своего протокола можно делать mutable buffer, с TCP будут проблемы с buffer bloat.
- Congestion control вы можете использовать существующие. У UDP они любые.
- Новый Congestion control трудно добавить в TCP, потому что нужно модифицировать acknowledgement, вы не можете это сделать на клиенте.
- Мультиплексирование — критичная проблема. Случается head-of-line blocking, при потере пакета вы не можете мультиплексировать в TCP. Поэтому HTTP2.0 по TCP не должен давать серьезного прироста.
- Случаи, когда вы можете получить установку соединения за 0-RTT в TCP крайне редки, порядка 5 %, и порядка 97 % для self-made UDP.
- IP Migration — не такая важная фича, но в случае сложных подписок и хранения состояния на сервере она однозначно нужна, но в TCP никак не реализована.
- Nat unbinding не в пользу UDP. В этом случае в UDP надо часто делать ping-pong пакеты.
- Packet pacing в UDP простой, пока нет оптимизации, в TCP эта опция не работает.
- MTU и исправление ошибок и там, и там примерно сравнимы.
- По скорости TCP, конечно, быстрее, чем UDP сейчас, если вы раздаете тонну трафика. Но зато какие-то оптимизации очень долго доставляются.
Выбираем UDP!
Уровни сетей и модель OSI
Обычно, сети обсуждаются в горизонтальной плоскости, рассматриваются протоколы сети интернет верхнего уровня и приложения. Но для установки соединений между двумя компьютерами используется множество вертикальных слоев и уровней абстракции. Это означает, что существует несколько протоколов, которые работают друг поверх друга для реализации сетевого соединения. Каждый следующий, более высокий слой абстрагирует передаваемые данные и делает их проще для восприятия следующим слоем, и в конечном итоге приложением.
Существует семь уровней или слоев работы сетей. Нижние уровни будут отличаться в зависимости от используемого вами оборудования, но данные будут передаваться одни и те же и будут иметь один и тот же вид. На другую машину данные всегда передаются на самом низком уровне. На другом компьютере, данные проходят все слои в обратном порядке. На каждом из слоев к данным добавляется своя информация, которая поможет понять что делать с этим пакетом на удаленном компьютере.
Модель OSI
Так сложилось исторически, что когда дело доходит до уровней работы сетей, используется модель OSI или Open Systems Interconnect. Она выделяет семь уровней:
- Уровень приложений — самый верхний уровень, представляет работу пользователя и приложений с сетью Пользователи просто передают данные и не задумываются о том, как они будут передаваться;
- Уровень представления — данные преобразуются в более низкоуровневый формат, чтобы быть такими, какими их ожидают получить программы;
- Уровень сессии — на этом уровне обрабатываются соединения между удаленным компьютерами, которые будут передавать данные;
- Транспортный уровень — на этом уровне организовывается надежная передача данных между компьютерами, а также проверка получения обоими устройствами;
- Сетевой уровень — используется для управления маршрутизацией данных в сети пока они не достигнут целевого узла. На этом уровне пакеты могут быть разбиты на более мелкие части, которые будут собраны получателем;
- Уровень соединения — отвечает за способ установки соединения между компьютерами и поддержания его надежности с помощью существующих физических устройств и оборудования;
- Физический уровень — отвечает за обработку данных физическими устройствами, включает в себя программное обеспечение, которое управляет соединением на физическом уровне, например, Ehternet или Wifi.
Как видите, перед тем, как данные попадут к аппаратному обеспечению им нужно пройти множество слоев.
Модель протоколов TCP/IP
Модель TCP/IP, еще известная как набор основных протоколов интернета, позволяет представить себе уровни работы сети более просто. Здесь есть только четыре уровня и они повторяют уровни OSI:
- Приложения — в этой модели уровень приложений отвечает за соединение и передачу данными между пользователям. Приложения могут быть в удаленных системах, но они работают как будто бы находятся в локальной системе;
- Транспорт — транспортный уровень отвечает за связь между процессами, здесь используются порты для определения какому приложению нужно передать данные и какой протокол использовать;
- Интернет — на этом уровне данные передаются от узла к узлу по сети интернет. Здесь известны конечные точки соединения, но не реализуется непосредственная связь. Также на этом уровне определяются IP адреса;
- Соединение — этот уровень реализует соединение на физическом уровне, что позволяет устройствам передавать между собой данные не зависимо от того, какие технологии используются.
Эта модель менее абстрактная, но мне она больше нравиться и ее проще понять, поскольку она привязана к техническим операциям, выполняемым программами. С помощью каждой из этих моделей можно предположить как на самом деле работает сеть. Фактически, есть данные, которые перед тем, как будут переданы, упаковываются с помощью нескольких протоколов, передаются через сеть через несколько узлов, а затем распаковываются в обратном порядке получателем. Конечные приложения могут и не знать что данные прошли через сеть, для них все может выглядеть как будто обмен осуществлялся на локальной машине.
Что такое TCP?
TCP-протокол – это виртуальный канал, сформированный между двумя или более узлами. Его работоспособность становится возможной, если заранее установить соединение – в противном случае передача информационных пакетов будет невозможной. С помощью протокола TCP реализуется надежная передача большого объема данных к разнообразным пользовательским устройствам.
Чтобы обеспечить надежное соединение, протокол TCP предусматривает трехэтапный запуск сеанса связи. Клиент и сервер должны передавать значения ISN и порта. Еще одна отличительная особенность протокола TCP заключается в использовании контрольной суммы, с помощью которой система проверяет, правильно ли передана информация конечному пользователю.