Как открыть розетку для интернета


Как подключить интернет розетку и коннектор: фото, видео

Главная » Электрика » Подключение интернет розетки RJ-45 и обжим коннектора

Во многих семьях подключается к интернету несколько устройств: без всемирной паутины мы жизни себе и не представляем, потому каждому требуется своя линия. Работают они, в основном, по беспроводному протоколу — Wi-Fi, но провод все-таки имеется, так как пока проводной интернет более стабильный, чем безпроводной. Во время ремонта все провода прячутся в стены и «интернетовские» не исключение. Их, как электрические, заводят на розетки, только другого стандарта: называют компьютерными или информационными. Они могут быть с разными разъемами, но наиболее распространенный — RJ 45. Установку и подключение можно сделать самостоятельно, но так как внешне выглядит разъем непривычно, проводов в нем больше чем два или три, да и соединение обеспечивается не пайкой и не скрутками, необходимо знать, как подключить интернет розетку а также коннектор, который в нее должен вставляться. 

Обжим коннектора RJ-45

Содержание статьи

Заходящий в квартиру или дом интернет-кабель, который чаще всего называют витой парой, часто заканчивается небольшим пластиковым разъемом. Вот это пластиковое устройство и есть коннектор, причем обычно RJ45.  На профессиональном жаргоне их еще называют «Джек».

Так выглядит коннектор RJ-45

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

Схема подключения интернет кабеля по цветам

Есть две схемы подключения: T568А и T568В. Первый вариант — «А» в нашей стране практически не используется, а повсеместно провода располагают по схеме «B». Ее и необходимо запомнить, так как именно она требуется в большинстве случаев.

Схемы подключения интернет кабеля по цветам (используйте вариант B)

Чтобы окончательно прояснить все вопросы, поговорим еще о количестве проводов в витой паре. Этот интернет-кабель бывает 2-х парным и 4-х парным. Для передачи данных со скоростью до 1 Гб/с используют 2-х парные кабели, от 1 до 10 Гб/с — 4-х парные. В квартиры и частные дома сегодня, в основном, заводят потоки до 100 Мб/с. Но с нынешними темпами развития интернет-технологии вполне возможно, что уже через пару лет скорости будут исчисляться Мегабитами. Именно по этой причине лучше сразу расшить сеть из восьми, а не из 4-х проводников. Тогда при изменении скорости вам не придется ничего переделывать. Просто аппаратура будет использовать большее число проводников. Разница в цене кабеля небольшая, а розетки и коннекторы для интернета все-равно используют восьми-контактные.

Если сеть уже разведена двухпарным, используйте те же коннекторы, только после первых трех проводников, уложенных по схеме B, пропускаете два контакта и зеленый проводник укладываете на место шестого (смотрите фото).

Схема подключения 4-х проводного интернет кабеля по цветам

Обжим витой пары в коннекторе

Для обжима проводов в коннекторе есть специальные клещи. Они стоят порядка 6-10$ в зависимости от производителя. Работать ими удобнее, хотя можно обойтись обычной отверткой и кусачками.

Клещи для обжима коннекторов (один из вариантов)

Сначала с витой пары снимается изоляция. Ее снимают на расстоянии 7-8 см от конца кабеля. Под ней есть четыре пары проводников разных цветов, скрученых по двое. Иногда имеется также тонкий экранирующий провод, его просто отгибаем в сторону — он нам не нужен. Пары раскручиваем, провода выравниваем, разводя в разные стороны. Затем складываем по схеме «В».

Порядок заделки разъема RJ-45 в коннекторе

Провода в нужном порядке зажимаем между большим и указательным пальцем, Проводки выкладываем ровно, плотно друг к другу. Выровняв все, берем кусачки и отрезаем лишнюю длину выложенных по порядку проводов: остаться должно 10-12 мм. Если приложить коннектор как на фото, изоляция витой пары должна начинаться выше защелки.

Отрезаем так, чтобы остались проводки 10-12 мм

Витую пару с отрезанными проводами заводим в коннектор. Обратите внимание, что взять его нужно защелкой (выступ на крышке) вниз.

Заводим провода в коннектор

Каждый проводник должен попасть в специальную дорожку. Вставляют провода до упора — они должны дойти до края коннектора. Придерживая кабель у края разъема, его вставляют в клещи. Ручки клещей сводят плавно сводят вместе. Если корпус стал нормально, особых усилий не требуется. Если чувствуете, что «не идет» перепроверьте, правильно ли стоит RJ45 в гнезде. Если все нормально, попробуйте еще раз.

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

Как работают клещи для обжима коннекторов

Подобное соединение надежное и проблемы с ним возникают редко. А если что и случается, перезаделать кабель легко: отрезаете и повторяете процесс с другим «джеком».

О подключении люстры можно прочесть тут.

Видео-урок: обжим коннектора RJ-45 клещами и отверткой

Процедура несложна, ее легко повторить. Возможно, вам будет легче все проделать, после видео. В нем показано как работать клещами, а также как обойтись без них, а проделать все при помощи обычной прямой отвертки.

Как подключить интернет кабель к розетке

Теперь дошли непосредственно до того, как подключить интернет розетку. Начнем с разновидностей. Как и обычные электрические розетки, информационные бывают двух модификаций:

  • Для внутреннего монтажа. В стену вмуровывается монтажная пластиковая коробка. В нее затем вставляется и закрепляется контактная часть розетки, а сверху закрывается все пластиковой декоративной панелью.

    Компьютерная розетка RJ45 внутренняя

  • Для наружного монтажа. Этот тип розеток очень похож по внешнему виду на привычные телефонные розетки: небольшой пластиковый корпус, которые крепится на стену. Он тоже состоит из нескольких частей. Сначала монтируется корпус с контактной пластиной, потом подключаются провода, и после все закрывается защитным колпачком.

    Компьютерная розетка RJ-45 для наружного монтажа — настенная

По количеству точек подключение есть одинарные и двойные компьютерные розетки.

Хоть внешне компьютерные розетки отличаются, принцип подключения проводников у них одинаков. Есть специальные контакты, оснащенные микроножами. У вставленного проводника прорезается защитная оболочка. В результате металл контактов-микроножей плотно прилегает к металлу проводника.

Как подключить настенную компьютерную розетку

Внутри каждой розетки есть подсказка о том, как размещать провода при подключении интернет-кабеля. Производители наклеивают цветовую схему, которую мы видели при обжиме коннектора. Так же имеются два варианте — «А» и «B», и точно также используем мы вариант «В».

Пример нанесения цветовой маркировки на корпусе компьютерной розетки

Корпус крепят на стену, как правило входным отверстием для кабеля вверх, компьютерным разъемом вниз. Далее действия просты:

  • Снимают с витой пары защитную изоляцию примерно на 5-7 см. Проделывать это нужно осторожно, чтобы не повредить изоляцию проводников.
  • На фото вы видите, что на плате есть небольшой пластиковый хомут. В него заводят проводник, и закрепляют так, чтобы зачищенный от изоляции кусок был ниже хомута.

    Подключение настенной розетки с 4-мя проводами

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

    Восемь проводников подключают по схеме «В»

  • После того как все проводники достигли своего места лишнее (торчащие кусочки) обрезают.
  • Надевают крышку.

Подключение витой пары к розетке действительно несложная процедура. Даже в первый раз она займет несколько минут. Еще раз посмотреть что и как делают можно в видео. В нем сначала показано подключение интернет-кабеля с 4 проводами, потом — с 8.

Иногда, чтобы выключить свет, приходится вставать в кровати. Но можно сделать управление освещением с нескольких точек. Как — читайте в статье про подключение проходных выключателей.

Как подключить внутреннюю интернет-розетку

Монтаж пластиковой коробки описывать не будем — это другая тема. Разберемся в особенностях подключения и сборки. Основная загвоздка тут в том, как разобрать компьютерные розетки. При подключении к ним проводников необходимо добраться до контактной части: небольшого керамического или пластикового корпуса с вмонтированными контактами-микроножами. Вот на эту монтажную пластину подключаются проводники, а потом снова собирается корпус. И вся проблема в том, что у разных производителей они собираются/разбираются по-разному.

Например, у популярного производителя компьютерных розеток Legrand (Легранд) для того чтобы добраться до разъемов в компьютерной розетке  Legrand Valena RJ45, необходимо снять лицевую крышку. Под ней обнаружится белая пластиковая крыльчатка (как на фото), на которой нанесена стрелка.

Как разобрать интернет розетку RJ-45 Legrand (Легранд)

Необходимо крыльчатку повернуть по стрелке, после чего в руках у вас останется корпус и контактная пластина. На ней нанесена цветная маркировка проводников. Подключение ничем не отличается, разве что — сначала в отверстие на пластине необходимо продеть витую пару, а потом разводить провода.

Для наглядности, посмотрите видео.

Еще один популярный производитель такого оборудования —  Lezard (Лезард). У него система другая. Лицевая панель и металлическая рамка фиксируются на небольших болтах. Их открутить легко, а вот внутренняя контактная пластина держится все на зажимах. Собирая и разбирая компьютерные розетки Lezard (Лезард) в нужных местах необходимо отжать контакты отверткой.

Как разобрать интернет-розетку Lezard (Лезард)

Чтобы вынуть пластиковую контактную группу из корпуса, необходимо надавить на защелку, находящуюся на верху. После чего в руках у вас окажется небольшая коробочка. Но и это еще не все. Необходимо снять пластиковую крышку, которая закрывает и прижимает проводники. Снимают ее поддевая отверткой боковые лепестки. Пластик упругий и усилия требуются довольно приличные. Только не переусердствуйте: это все-таки пластик. После чего разводка проводов стандартная: по нанесенной на боках разметке (не забываем, что используем схему «В»).

И снова, для закрепления материала советуем посмотреть видео.

Если знать, как подключить интернет розетку, даже с незнакомой моделью разобраться несложно. И вы теперь сможете модернизировать свою сеть сами (увеличить длину витой пары, перенести компьютер в другое место, сделать еще одну точку подключения и т.д.), без привлечения специалистов. Остался еще один вопрос: как подключать двойные розетки. К ним подводят два кабеля и дальше идет расшивка по цветовой схеме. Это возможно, когда сеть у вас формируется модемом или заходят две интернет-линии. Можно ли одним кабелем расшить оба входа? Можно, но нужно не запутаться в цветовом обозначении проводов в дальнейшей разводке сети (помнить какой цвет вместо какого вы использовали).

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

В сети TCP / IP каждое устройство должно иметь IP-адрес.

IP-адрес идентифицирует устройство , например, компьютер.

Однако одного IP-адреса недостаточно для запуска сетевых приложений, так как компьютер может запускать нескольких приложений и / или служб .

Так же, как IP-адрес идентифицирует компьютер, сетевой порт идентифицирует приложение или службу , работающую на компьютере.

Использование портов позволяет компьютерам / устройствам запускать несколько служб / приложений .

На схеме ниже показано соединение компьютера с компьютером и указаны IP-адреса и порты.

Аналогия

Если вы используете аналог дома или многоквартирного дома, IP-адрес соответствует адресу улицы.

Все апартаменты имеют одинаковый адрес.

Однако у каждой квартиры также есть номер квартиры, который соответствует номеру порта.

Диапазоны номеров портов и известные порты

Номер порта использует 16 бит, поэтому может иметь значение от 0 до 65535 в десятичной системе счисления

Номера портов делятся на следующие диапазоны:

Номера портов 0-1023 - хорошо известные порты. Они выделяются серверным службам Управлением по присвоению номеров Интернета (IANA). например, веб-серверы обычно используют порт 80 , а серверы SMTP используют порт 25 (см. диаграмму выше).

Порты 1024-49151 - Зарегистрированный порт - Они могут быть зарегистрированы для услуг с IANA и должны рассматриваться как полурезервированные. Программы, написанные пользователем, не должны использовать эти порты.

Порты 49152-65535 - используются клиентскими программами , и вы можете использовать их в клиентских программах. Когда веб-браузер подключается к веб-серверу, браузер выделяет себе порт в этом диапазоне. Также известен как эфемерных портов .

TCP сокеты

Соединение между двумя компьютерами использует сокет .

Сокет - это комбинация IP-адреса и порта

{схема] На каждом конце соединения будет сокет. {/ Схема]

Представьте, что вы сидите дома за своим компьютером, и у вас открыто два окна браузера.

Один смотрит на сайт Google, а другой - на Yahoo.

Подключение к Google будет:

Ваш ПК - IP1 + порт 60200 ——– Google IP2 + порт 80 (стандартный порт)

Комбинация IP1 + 60200 = сокет на клиентском компьютере и IP2 + порт 80 = целевой сокет на сервере Google.

Подключение к Yahoo будет:

ваш ПК - IP1 + порт 60401 ——– Yahoo IP3 + порт 80 (стандартный порт)

Комбинация IP1 + 60401 = сокет на клиентском компьютере и IP3 + порт 80 = целевой сокет на сервере Yahoo.

Примечания: IP1 - это IP-адрес вашего ПК. Номера клиентских портов назначаются динамически и могут быть повторно использованы после закрытия сеанса.

TCP и UDP - транспортный уровень

Примечание : Вы можете найти статью о наборе протоколов TCP / IP, полезную для понимания следующего

IP-адресов реализованы на сетевом уровне, который представляет собой IP-уровень .

Порты реализованы на транспортном уровне как часть TCP или UDP-заголовка , как показано на схеме ниже:

Протокол TCP / IP поддерживает два типа порта: TCP-порт и UDP-порт .

TCP - для приложений, ориентированных на соединение. Он имеет встроенную проверку ошибок и повторно передает отсутствующие пакеты.

UDP - для приложений без подключения. Он не имеет встроенной проверки ошибок, и не будет повторно передавать пропущенные пакеты .

Приложения предназначены для использования протокола транспортного уровня UDP или TCP в зависимости от типа требуемого соединения.

Например, веб-сервер обычно использует TCP-порт 80 .

Он может использовать любой порт, но приложение веб-сервера разработано для использования TCP-соединения. См. TCP против UDP

Вот очень хорошее видео, которое действительно хорошо объясняет порты и сокеты

Проверка открытых портов

В системах Windows и Linux есть утилита под названием netstat , которая выдаст вам список открытых портов на вашем компьютере.

В этих статьях показано, как использовать netstat в Windows и Linux.

Вы можете проверить состояние порта удаленных машин, используя строку сканера портов nmap.

Вы можете установить NMAP в Windows, Linux и Apple. Его можно использовать с графическим пользовательским интерфейсом или как инструмент командной строки.

Вот полезная статья по использованию NMAP из командной строки.

Вот хорошее видео об использовании Nmap , а также описание процедур соединения TCP / IP, которое полезно для понимания портов.

Ссылки и ресурсы:

Основы TCP и UDP - Подключение к веб-сайту - Это для программистов, но здесь нет кодирования, только объяснение портов и сокетов.

Состояния подключения - если вам интересно, что означают установленные, прослушивающие и другие описания состояний. вот хорошая диаграмма состояний, к которой он относится.

Онлайн-тестер портов Набор инструментов для сканирования портов и тестирования веб-серверов.

Статьи по теме:

Оцените? И используйте Комментарии, чтобы сообщить мне больше

[Всего: 94 Среднее: 4.1/5]

.Программирование сокетов

на Python (Руководство) - Real Python

Сокеты и API сокетов используются для отправки сообщений по сети. Они обеспечивают форму межпроцессного взаимодействия (IPC). Сеть может быть логической локальной сетью для компьютера или сетью, которая физически подключена к внешней сети, со своими собственными подключениями к другим сетям. Очевидным примером является Интернет, к которому вы подключаетесь через своего провайдера.

В этом руководстве есть три различных итерации построения сервера и клиента сокетов с помощью Python:

  1. Мы начнем обучение с рассмотрения простого сервера и клиента сокета.
  2. После того, как вы познакомились с API и принципами работы в этом начальном примере, мы рассмотрим улучшенную версию, которая обрабатывает несколько подключений одновременно.
  3. Наконец, мы перейдем к созданию примера сервера и клиента, который функционирует как полноценное приложение сокета, со своим собственным настраиваемым заголовком и содержимым.

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

Примеры в этом руководстве используют Python 3.6. Вы можете найти исходный код на GitHub.

Сети и розетки - большие предметы. О них написаны буквально тома. Если вы новичок в сокетах или сетях, это совершенно нормально, если вы чувствуете себя перегруженным всеми терминами и частями. Я знаю, что сделал!

Но не расстраивайтесь.Я написал для вас это руководство. Как и в случае с Python, мы можем учиться понемногу за раз. Воспользуйтесь функцией закладок в браузере и вернитесь, когда будете готовы к следующему разделу.

Приступим!

Фон

Розетки имеют долгую историю. Их использование началось с ARPANET в 1971 году, а позже стало API в операционной системе Berkeley Software Distribution (BSD), выпущенной в 1983 году, под названием Berkeley Sockets.

.

Что такое розетка? (Учебники по Java ™> Пользовательские сети> Все о сокетах)

Обычно сервер работает на определенном компьютере и имеет сокет, привязанный к определенному номеру порта. Сервер просто ждет, слушая сокет, чтобы клиент сделал запрос на соединение.

На стороне клиента: клиент знает имя хоста машины, на которой работает сервер, и номер порта, на котором сервер прослушивает. Чтобы сделать запрос на соединение, клиент пытается встретиться с сервером на машине и порту сервера.Клиент также должен идентифицировать себя для сервера, чтобы он привязался к номеру локального порта, который он будет использовать во время этого соединения. Обычно это назначается системой.

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

На стороне клиента, если соединение принято, сокет успешно создан, и клиент может использовать сокет для связи с сервером.

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


Определение:

Сокет - это одна конечная точка двустороннего канала связи между двумя программами, работающими в сети. Сокет привязан к номеру порта, чтобы уровень TCP мог идентифицировать приложение, в которое должны быть отправлены данные.


Конечная точка - это комбинация IP-адреса и номера порта. Каждое TCP-соединение можно однозначно идентифицировать по двум его конечным точкам. Таким образом, вы можете иметь несколько соединений между вашим хостом и сервером.

Пакет java.net на платформе Java предоставляет класс Socket , который реализует одну сторону двустороннего соединения между вашей программой Java и другой программой в сети. Класс Socket находится на вершине платформенно-зависимой реализации, скрывая детали любой конкретной системы от вашей программы Java.Используя класс java.net.Socket вместо того, чтобы полагаться на собственный код, ваши Java-программы могут обмениваться данными по сети независимо от платформы.

Кроме того, java.net включает класс ServerSocket , который реализует сокет, который серверы могут использовать для прослушивания и приема соединений с клиентами. В этом уроке показано, как использовать классы Socket и ServerSocket .

Если вы пытаетесь подключиться к Интернету, класс URL и связанные классы ( URLConnection , URLEncoder ), вероятно, более подходят, чем классы сокетов.Фактически, URL-адреса являются относительно высокоуровневым соединением с Интернетом и используют сокеты как часть базовой реализации. Видеть Работа с URL-адресами для получения информации о подключении к Интернету через URL-адреса.

.

Как работают веб-сокеты? - Кевин Сукочефф

WebSocket - это постоянное соединение между клиентом и сервером. WebSockets обеспечивает двунаправленный полнодуплексный канал связи. который работает через HTTP через одно соединение сокета TCP / IP. На своем core протокол WebSocket упрощает передачу сообщений между клиентом и сервер. Эта статья представляет собой введение в WebSocket. протокол, в том числе проблемы, которые решают WebSockets, и обзор того, как WebSockets описываются на уровне протокола.

Почему именно WebSocket?

Идея WebSockets возникла из-за ограничений HTTP-технологий. технологии. При использовании HTTP клиент запрашивает ресурс, а сервер отвечает запрошенными данными. HTTP - строго однонаправленный протокол - любые данные, отправленные с сервера клиенту, должны быть первыми по запросу клиента. Долгое голосование традиционно действовало как обходной путь для этого ограничения. При длительном опросе клиент делает HTTP-запрос с длительным периодом ожидания, и сервер использует это время. тайм-аут для отправки данных клиенту.Длинный опрос работает, но есть недостаток - ресурсы на сервере связаны на всем протяжении длинный опрос, даже если нет данных для отправки.

WebSockets, с другой стороны, позволяют отправлять данные на основе сообщений, аналогично UDP, но с надежностью TCP. WebSocket использует HTTP как начальный транспортный механизм, но поддерживает соединение TCP после получен ответ HTTP, чтобы его можно было использовать для отправки сообщений между клиентом и сервером. WebSockets позволяют нам создавать "в реальном времени" приложения без использования длительного опроса.

Обзор протокола

Протокол состоит из открывающего рукопожатия, за которым следует базовое сообщение. кадрирование, наложенное на TCP.

- RFC 6455 - Протокол WebSocket

WebSockets начинают свою жизнь как стандартный HTTP-запрос и ответ. Внутри этого цепочка ответов на запросы, клиент просит открыть соединение WebSocket, и сервер отвечает (если может). Если это первоначальное рукопожатие успешно, клиент и сервер согласились использовать существующий TCP / IP соединение, которое было установлено для HTTP-запроса как WebSocket подключение.Теперь данные могут передаваться через это соединение с использованием базового фреймового протокол сообщений. Как только обе стороны признают, что WebSocket соединение должно быть закрыто, TCP соединение разорвано.

Установление соединения WebSocket - Открытое рукопожатие WebSocket

WebSockets не используют схему http: // или https: // (потому что они не следовать протоколу HTTP). Вместо этого URI WebSocket используют новую схему ws: (или wss: для безопасного WebSocket).Остальная часть URI - это то же, что и HTTP URI: хост, порт, путь и любые параметры запроса.

  "ws:" "//" хост [":" порт] путь ["?" запрос] "wss:" "//" хост [":" порт] путь ["?" запрос]  

Соединения WebSocket могут быть установлены только для URI, следующих за этим схема. То есть, если вы видите URI со схемой ws: // (или wss: // ), тогда и клиент, и сервер ДОЛЖНЫ следовать соединению WebSocket. протокол в соответствии со спецификацией WebSocket.

подключений WebSocket установлено при обновлении пары HTTP-запрос / ответ. Клиент, который поддерживает WebSockets и хочет установить соединение, отправит HTTP запрос, который включает несколько обязательных заголовков:

  • Подключение: обновление
    • Заголовок Connection обычно определяет, сетевое соединение остается открытым после текущей транзакции отделка. Обычное значение для этого заголовка - keep-alive , чтобы убедитесь, что соединение является постоянным, чтобы разрешить последующие запросы на тот же сервер.Во время рукопожатия открытия WebSocket мы установили заголовок до Обновите , сигнализируя, что мы хотим сохранить соединение жив, и использовать его для запросов, отличных от HTTP.
  • Обновление: websocket
    • Заголовок Upgrade используется клиентами для запроса сервера на переключение к одному из перечисленных протоколов в порядке убывания предпочтения. Мы укажите здесь websocket , чтобы указать, что клиент хочет установить соединение WebSocket.
  • Sec-WebSocket-ключ: q4xkcO32u266gldTuKaSOw ==
    • Sec-WebSocket-Key - одноразовое случайное значение (nonce) генерируется клиентом.Значение представляет собой случайно выбранное 16-байтовое значение, имеющее был закодирован base64.
  • Sec-WebSocket-Версия: 13
    • Единственная допустимая версия протокола WebSocket - 13. Любая другая версия, указанная в этом заголовке, недействительна.

Вместе эти заголовки приведут к HTTP-запросу GET от клиент к URI ws: // , как в следующем примере:

  ПОЛУЧИТЬ ws: //example.com: 8181 / HTTP / 1.1 Хост: localhost: 8181 Подключение: Обновление Прагма: без кеширования Cache-Control: без кеша Обновление: websocket Sec-WebSocket-Версия: 13 Sec-WebSocket-ключ: q4xkcO32u266gldTuKaSOw ==  

Когда клиент отправляет начальный запрос на открытие соединения WebSocket, он ждет ответа от сервера.Ответ должен иметь код ответа HTTP 101 Switching Protocols . Ответ HTTP 101 Switching Protocols указывает, что сервер переключается на протокол, который клиент запрошен в заголовке запроса Upgrade . Кроме того, сервер должен включить заголовки HTTP, подтверждающие, что соединение было успешно улучшено:

  HTTP / 1.1 101 Протоколы коммутации Обновление: websocket Подключение: Обновление Sec-WebSocket-Accept: fA9dggdnMPU79lJgAE3W4TRnyDM =  
  • Подключение: обновление
    • Подтверждает, что соединение было обновлено.
  • Обновление: websocket
    • Подтверждает, что соединение было обновлено.
  • Sec-WebSocket-Accept : fA9dggdnMPU79lJgAE3W4TRnyDM = `
    • Sec-WebSocket-Accept имеет кодировку base64, хешированное значение SHA-1. Вы сгенерировать это значение путем объединения клиентов Sec-WebSocket-Key nonce и статическое значение 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 определено в RFC 6455. Хотя Sec-WebSocket-Key и Sec-WebSocket-Accept кажутся сложными, они существуют, так что оба клиент и сервер могут знать, что их коллега поддерживает WebSockets.Поскольку WebSocket повторно использует HTTP-соединение, там являются потенциальными проблемами безопасности, если любая из сторон интерпретирует WebSocket данные как HTTP-запрос.

После того, как клиент получит ответ сервера, соединение WebSocket открыть, чтобы начать передачу данных.

Протокол WebSocket

WebSocket - это протокол с фреймами , что означает, что фрагмент данных (сообщение) делится на несколько дискретных частей, размер которых закодировано в кадре.Кадр включает тип кадра, длину полезной нагрузки, и часть данных. Обзор фрейма дан в RFC. 6455 и воспроизведено Вот.

  0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + - + - + - + - + ------- + - + ------------- + ----------------- -------------- + | F | R | R | R | код операции | M | Длина полезной нагрузки | Увеличенная длина полезной нагрузки | | I | S | S | S | (4) | A | (7) | (16/64) | | N | V | V | V | | S | | (если полезная нагрузка len == 126/127) | | | 1 | 2 | 3 | | K | | | + - + - + - + - + ------- + - + ------------- + - - - - - - - - - - - - - - - + | Увеличенная длина полезной нагрузки продолжается, если полезная нагрузка len == 127 | + - - - - - - - - - - - - - - - + ------------------------------- + | | Маскирующий ключ, если МАСКА установлена ​​в 1 | + ------------------------------- + ----------------- -------------- + | Маскирующий ключ (продолжение) | Данные полезной нагрузки | + -------------------------------- - - - - - - - - - - - - - - - - + : Данные полезной нагрузки продолжение...: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | Данные полезной нагрузки продолжение ... | + ------------------------------------------------- -------------- +  

Я не буду здесь останавливаться на всех деталях протокола кадров. Обратитесь к RFC 6455 для получения полной информации. Скорее, Я расскажу о самых важных моментах, чтобы мы могли понять протокола WebSocket.

Ребро-бит

Первый бит заголовка WebSocket - это бит Fin.Этот бит устанавливается, если этот фрейм - последние данные для завершения этого сообщения.

Биты RSV1, RSV2, RSV3

Эти биты зарезервированы для использования в будущем.

код операции

У каждого кадра есть код операции, который определяет, как интерпретировать данные полезной нагрузки.

Значение кода операции Описание
0x00 Этот кадр продолжает полезную нагрузку из предыдущего кадра.
0x01 Обозначает текстовый фрейм.Текстовые фреймы декодируются сервером в кодировке UTF-8.
0x02 Обозначает двоичный фрейм. Двоичные фреймы доставляются сервером без изменений.
0x03-0x07 Зарезервировано для использования в будущем.
0x08 Обозначает, что клиент хочет закрыть соединение.
0x09 Фрейм ping. Служит механизмом подтверждения связи, гарантирующим, что соединение все еще живо. Получатель должен ответить понгом.
0x0a Рамка для понга. Служит механизмом подтверждения связи, гарантирующим, что соединение все еще живо. Получатель должен ответить фреймом ping.
0x0b-0x0f Зарезервировано для использования в будущем.
Маска

Установка этого бита в 1 включает маскирование . WebSockets требует, чтобы все полезная нагрузка обфусцирована с использованием случайного ключа (маски), выбранного клиентом. Ключ маскировки объединяется с данными полезной нагрузки с помощью операции XOR. перед отправкой данных в полезную нагрузку.Эта маскировка предотвращает появление кешей. неверная интерпретация фреймов WebSocket как кэшируемых данных. Почему мы должны предотвращать кеширование данных WebSocket? Безопасность.

При разработке протокола WebSocket было показано, что если развертывается скомпрометированный сервер, и клиенты подключаются к этому серверу, он можно иметь промежуточные прокси или кеш инфраструктуры ответы скомпрометированного сервера, чтобы будущие клиенты, запрашивающие data получают неверный ответ. Эта атака называется cache. отравление , и является результатом того факта, что мы не можем контролировать, как прокси-серверы ведут себя в дикой природе.Это особенно проблематично при внедрении нового протокола, такого как WebSocket, который должен взаимодействовать с существующая инфраструктура интернета.

Длина полезной нагрузки

Поле Payload len и Extended payload length поле используются для кодировать общую длину данных полезной нагрузки для этого кадра. Если полезная нагрузка данные небольшие (менее 126 байт), длина кодируется в поле Payload len . По мере роста данных полезной нагрузки мы используем дополнительные поля для закодировать длину полезной нагрузки.

Маскирующий ключ

Как обсуждалось с битом MASK , все кадры, отправленные от клиента к серверы маскируются 32-битным значением, содержащимся в кадре. Это поле присутствует, если бит маски установлен в 1, и отсутствует, если бит маски установлен на 0.

Данные полезной нагрузки

Данные полезной нагрузки включают произвольные данные приложения и любое расширение данные, согласованные между клиентом и сервером. Расширения согласовываются во время первоначального рукопожатия и позволяют расширить протокол WebSocket для дополнительных целей.

Закрытие соединения WebSocket - рукопожатие закрытия WebSocket

Чтобы закрыть соединение WebSocket, отправляется закрывающий кадр (код операции 0x08 ). Помимо кода операции, закрывающий кадр может содержать тело, которое указывает причину закрытия. Если одна из сторон соединения получает закрывающий кадр, он должен отправить закрытый кадр в ответ, и больше никаких данных должны быть отправлены через соединение. После получения кадра закрытия обеими сторонами разрывается TCP-соединение.Сервер всегда инициирует закрытие TCP-соединения.

Дополнительные ссылки

Эта статья представляет собой введение в протокол WebSocket и покрывает много земли. Однако полный протокол содержит больше деталей, чем что я мог бы вписать в этот пост в блоге. Если хотите узнать больше, там есть несколько отличных ресурсов на выбор:

См. Также
.

Смотрите также