Подрозетник это: Для чего нужны подрозетники, их виды.

Содержание

Для чего нужны подрозетники, их виды.

Многие из нас до определенного момента даже представления не имеют, что же такое подрозетник. Слышали возможно, но знать не знают что за зверь. Да и откуда, если все в порядке с электрикой в квартире. Но как только начинают разбалтываться розетки и выключатели, а у любителей вытащить вилку за провод это не редкость, можно как раз увидеть его — подрозетник. Что же это, для чего служит подрозетник, какие функции выполняет и что зависит от правильности его выбора и монтажа.

Пока с электрикой в квартире все в порядке, мы редко задумываемся о том, как она сделана, из чего состоит и для чего каждый ее элемент предназначен, а в большинстве случаев и вовсе не подозреваем о многом. И это правильно, ведь для того, что бы разогреть в микроволновке бутерброд, не обязательно знать как она устроена, мы просто нажимаем кнопочку и все происходит за нас. В электрике так же, не всегда нужно знать о ее устройстве, гораздо правильнее доверить ее изготовление грамотным монтажникам и просто пользоваться качественным механизмом. Но в случае поломки, многие могут сами устранить некоторое неисправности, при наличии небольшого опыта. Например, установить подрозетники. Подрозетники — это чаще всего пластиковый, а реже металлический цилиндр, который закрепляется в стене. В нем устанавливают сами механизмы розеток и выключателей, после закрывают рамкой. Именно поэтому подрозетники не видно и не все знают о их наличии. Узнают о них чаще всего любители вытащить вилку за провод, а не за саму вилку. Причем узнают неожиданно, потому что вытаскивают не только вилку, но и механизм, вместе с подрозетником. Это может произойти во многих случаях

  • достаточно старое здание и материал, которым закреплялся подрозетник со временем разрушился
  • подрозетники закрепили не достаточно качественно
  • сам подрозетник не достаточно качественный
  • если вытаскивать вилку из розетки не за саму вилку, а за провод, то подрозетник расшатывается. Да, при грамотной установке это не произойдет за 1 день и даже год. Но вода камень точит…

Неужели нельзя просто сделать отверстие в стене и в нем же закрепить розетку? Что мешает казалось бы. Но мы собираем качественную проводку и хотим что бы наш механизм работал как часы. Поэтому в предварительно подготовленное отверстие в стене нам необходимо установить подрозетник. Для чего это нужно?

  • правильно установленный подрозетник отлично держит механизм розетки, выключателя и других, предназначенных для данного способа установки устройств. Закрепить механизм в ней можно на 2 — 4 винта, предусмотренных в самом подрозетнике, а так же с помощью распорных лапок самого механизма розетки или выключателя.
  • в случае монтажа электропроводки без распределительных коробок — подрозетник будет служить нам распределительной коробкой.
  • дополнительный диэлектрический изолятор между стеной и механизмом розетки, выключателя.
  • подрозетники изготавливают из негорючего материала — защита от возгораний.

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

Подрозетники для установки в бетон, кирпич, газобетон, пеноблоки.

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

По форме изготовления они бывают:

  • Круглые — используются чаще всего. Для них проще всего изготовить специальное отверстие в стене. Для этого есть большое количество приспособлений. Из них можно собирать необходимые группы, в зависимости от того, сколько розеток или выключателей вы хотите установить.
  • Квадратные — не так распространены, но имеют свои преимущества — в них гораздо больше места и поэтому можно делать больший запас провода для удобства расключения и монтажа. Так же возможна установка в них элементов умного дома, диммеров и т.д. Квадратные подрозетники можно приобрести с вместимостью от 1 до 4 механизмов.
  • Овальные подрозетники — в чем то схожи с квадратными, в них так же остается намного больше места, монтаж в них производить на много легче. Так же можно приобрести с вместимостью от 1 до 5 механизмов.

Так же подрозетники отличаются по размерам, это и диаметр установки и внутренний диаметр и глубина самого подрозетника. Установочный диаметры бывают 60, 64 и 68мм, глубиной от 40 до 60 мм. Самый распространенный и правильный вариант это подрозетники диаметров 68 мм и глубиной 42 мм, либо глубиной 60 мм в том случае, если мы делаем разводку без распределительных коробок. Дополнительная глубина такого подрозетника даст нам возможность разместить в таком подрозетнике и расключение и сам механизм розетки.

Подрозетники для установки в тонкостенные перегородки — гипсокартон, ГВЛ и др.  

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

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

Подрозетник. Виды и устройство. Применение и монтаж. Особенности

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

Как устроен подрозетник

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

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

В задней и боковых стенках подрозетника обычно имеется перфорация для выбивания сквозного отверстия для ввода кабеля. Это исключает необходимость сверления.

Непосредственное прикрепление механизма розетки или другого устройства к подрозетнику может выполняться двумя способами:
  1. На саморезы.
  2. Зацепом лапок.

Самым надежным является крепление любого механизма в подрозетнике с помощью двух саморезов. Они могут располагаться относительно друг друга по горизонтальной или вертикальной оси. Многие подрозетники имеют на своем корпусе 4 отверстия, поэтому являются совместимыми со всеми устройствами. Если же отверстия на розетке или выключателе располагаются только по вертикали или горизонтали, то необходимо подбирать к ним соответствующий подрозетник.

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

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

Материалы изготовления
Установочные коробки изготавливаются из двух материалов:
  1. Пластик.
  2. Металл.

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

Стальной подрозетник проводит электричество, поэтому его применение на порядок опасней. Данные установочные коробки почти не используются. Изначально они пользовались спросом благодаря стойкости к горению, но современные изделия из пластика тоже имеют такое качество. Монтажные коробки для розеток из стали менее удобны в работе, но все же они имеют одно достоинство – обладают высокой жесткостью. Это является крайне полезным при монтаже с использованием разводных лапок.

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

Отличия подрозетников по способу установки
Установочные коробки разделяют на 3 вида по назначению. Они бывают:
  1. Для полнотелых стен.
  2. Для гипсокартонных перегородок.
  3. Под плинтус.

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

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

Третьей разновидностью подрозетников является установочная коробка

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

Подрозетники для группы розеток и выключателей

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

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

Также широко используются овальные установочные коробки, рассчитанные под одновременный монтаж сразу нескольких механизмов электроустановочных изделий. Такой подрозетник может быть рассчитан на установку 2-5 корпусов розеток или выключателей.

Особенности монтажа подрозетников

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

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

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

Установка подрозетников выполняется на разной высоте, что зависит от того какое оборудование будет в него монтироваться. Для размещения в них выключателей света и другого оборудования, кроме розеток, высота от пола должна составлять 90 см. Непосредственно для розеток рекомендуются крепить установочную коробку на расстоянии 20-30 см от плинтуса. Подъем на такую дистанцию исключает промокание контактов в случае заливания пола водой.

Такой стандарт высоты продиктован правилами безопасности и удобства. Однако он не является обязательным. В отдельных случаях можно размещать подрозетники на любой другой высоте, отталкиваясь от особенностей электротехники, которая будет к нему подключаться. Так установочные коробки для розеток на кухне могут устанавливаться над столешницей, стандартная высота которой составляет 82-86 см. Сам подрозетник размещается над ней на высоте 5-10 см.

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

При установке подрозетников нужно обратить внимание, что они могут отличаться между собой по глубине.  У стандартных изделий она составляет 25 мм и 45 мм. Наиболее универсальные коробки 45 мм. Однако бывает оборудование, которое нуждается в более глубоком подрозетнике. Примером может быть терморегулятор для теплого пола. В некоторых случаях для его подключения необходимы более глубокие нестандартные установочные коробки.

Похожие темы:

Что такое подрозетник?

Введите ваш запрос для начала поиска.

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

При обустройстве электрической системы в бытовом или коммерческом помещении важно использовать современные изделия, которые обезопасят всю конструкцию и сделаю монтаж более простым. Если проводиться монтаж розеток, крайне рекомендуется использовать так называемые подрозетники. Подрозетник — это специальная монтажная коробочка, которую монтируют в стены для дальнейшей установки в нее розетки. Такое изделие обеспечивает розетке лучший комфорт, безопасность и длительную работоспособность. В зависимости от места установки выделяют подрозетники для сплошных стен и для скрытой установки. Для сплошных стен их монтируют в кирпичную или бетонную стену, для скрытой установки подходят сухие перегородки. Купить розетки и подрозетники сегодня более чем просто, менеджеры помогут подобрать подходящие размеры и характеристики.

Классическими и наиболее популярными считаются те подрозетники, где внутренний диаметр колеблется в пределах 60-65 мм, а глубина монтажа достигает 40-45 мм. Для более точной установки такого подрозетника лучше воспользоваться коронкой 68-70 мм, ведь диаметр нужно брать с небольшим запасом. Также производитель предлагает ассортимент из нескольких типов, которые создаются в зависимости от конструкции.

 

 

  • Несъемные тоннели — соединительные тоннели в подрозетнике нельзя снять, при этом они имеются на всех экземплярах. Если некоторые соединительные тоннели не будут задействованы, их придется удалять вручную. Для многих это небольшой, но недостаток.
  • Съемные тоннели — в подрозетнике отсутствуют соединительные части, их приходиться покупать отдельно.

 

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

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

Интересное: Обогрев канализационных труб: утепление своими руками

Подрозетники, для чего они нужны, какими они бывают, как правильно выбрать подрозетник? | Мир электромонтажа

Для чего нужны подрозетники, их виды.

Многие из нас до определенного момента даже представления не имеют, что же такое подрозетник. Слышали возможно, но знать не знают что за зверь. Да и откуда, если все в порядке с электрикой в квартире. Но как только начинают разбалтываться розетки и выключатели, а у любителей вытащить вилку за провод это не редкость, можно как раз увидеть его — подрозетник. Что же это, для чего служит подрозетник, какие функции выполняет и что зависит от правильности его выбора и монтажа.

Пока с электрикой в квартире все в порядке, мы редко задумываемся о том, как она сделана, из чего состоит и для чего каждый ее элемент предназначен, а в большинстве случаев и вовсе не подозреваем о многом. И это правильно, ведь для того, что бы разогреть в микроволновке бутерброд, не обязательно знать как она устроена, мы просто нажимаем кнопочку и все происходит за нас. В электрике так же, не всегда нужно знать о ее устройстве, гораздо правильнее доверить ее изготовление грамотным монтажникам и просто пользоваться качественным механизмом. Но в случае поломки, многие могут сами устранить некоторое неисправности, при наличии небольшого опыта. Например, установить подрозетники. Подрозетники — это чаще всего пластиковый, а реже металлический цилиндр, который закрепляется в стене. В нем устанавливают сами механизмы розеток и выключателей, после закрывают рамкой. Именно поэтому подрозетники не видно и не все знают о их наличии. Узнают о них чаще всего любители вытащить вилку за провод, а не за саму вилку. Причем узнают неожиданно, потому что вытаскивают не только вилку, но и механизм, вместе с подрозетником. Это может произойти во многих случаях

  • достаточно старое здание и материал, которым закреплялся подрозетник со временем разрушился
  • подрозетники закрепили не достаточно качественно
  • сам подрозетник не достаточно качественный
  • если вытаскивать вилку из розетки не за саму вилку, а за провод, то подрозетник расшатывается. Да, при грамотной установке это не произойдет за 1 день и даже год. Но вода камень точит…

Для чего нужны подрозетники

Неужели нельзя просто сделать отверстие в стене и в нем же закрепить розетку? Что мешает казалось бы. Но мы собираем качественную проводку и хотим что бы наш механизм работал как часы. Поэтому в предварительно подготовленное отверстие в стене нам необходимо установить подрозетник. Для чего это нужно?

  • правильно установленный подрозетник отлично держит механизм розетки, выключателя и других, предназначенных для данного способа установки устройств. Закрепить механизм в ней можно на 2 — 4 винта, предусмотренных в самом подрозетнике, а так же с помощью распорных лапок самого механизма розетки или выключателя.
  • в случае монтажа электропроводки без распределительных коробок — подрозетник будет служить нам распределительной коробкой .
  • дополнительный диэлектрический изолятор между стеной и механизмом розетки, выключателя.
  • подрозетники изготавливают из негорючего материала — защита от возгораний.

Подрозетники — какими они бывают

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

Подрозетники для установки в бетон, кирпич, газобетон, пеноблоки.

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

По форме изготовления они бывают:

  • Круглые — используются чаще всего. Для них проще всего изготовить специальное отверстие в стене. Для этого есть большое количество приспособлений. Из них можно собирать необходимые группы, в зависимости от того, сколько розеток или выключателей вы хотите установить.
  • Квадратные — не так распространены, но имеют свои преимущества — в них гораздо больше места и поэтому можно делать больший запас провода для удобства расключения и монтажа. Так же возможна установка в них элементов умного дома, диммеров и т.д. Квадратные подрозетники можно приобрести с вместимостью от 1 до 4 механизмов.
  • Овальные подрозетники — в чем то схожи с квадратными, в них так же остается намного больше места, монтаж в них производить на много легче. Так же можно приобрести с вместимостью от 1 до 5 механизмов.

Так же подрозетники отличаются по размерам, это и диаметр установки и внутренний диаметр и глубина самого подрозетника. Установочный диаметры бывают 60, 64 и 68мм, глубиной от 40 до 60 мм. Самый распространенный и правильный вариант это подрозетники диаметров 68 мм и глубиной 42 мм, либо глубиной 60 мм в том случае, если мы делаем разводку без распределительных коробок. Дополнительная глубина такого подрозетника даст нам возможность разместить в таком подрозетнике и расключение и сам механизм розетки.

Подрозетники для установки в тонкостенные перегородки — гипсокартон, ГВЛ и др.

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

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

Спасибо, что дочитали!

Не забываем ставить палец вверх и подписываться на канал 😉

Монтажные коробки (подрозетники) для кирпичных стен

Подрозетник - монтажная коробка под механизмы электроустановочных изделий

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

Ещё одно название подрозетника - "монтажная коробка". Некоторые разделяют это два понятия. Существует мнение, что монтажной коробкой называется навесные выступающие детали, а подрозетники - исключительно утопленные. Это неверно.

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

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

Два главных размера по ширине - 60 и 75 миллиметров. Глубина заделки определяет соответствующий габаритный размер подрозетника (25, 32, 44 миллиметров и другой). Форма бывает круглой, квадратной, прямоугольной и так далее. Круглые подрозетники встречаются чаще всего, так как являются более универсальными.

При монтаже подрозетника выступающие части по бокам следует расположить в горизонтальном положении, так изделие будет зафиксировано. Но прежде всё-таки рекомендуется немного расширить отверстие в стене, если это возможно. После пространство до стены следует залить строительной смесью, обычно используют гипс или алебастр. Монтировать нужно "заподлицо" со стенкой. Чтобы повысить звукоизоляционные свойства, лучше подложить под заднюю стенку самой коробки полоску любого звукоизоляционного материала.

Подрозетники для гисокартонных стен

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

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

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

Монтажные коробки

Особенности подрозетников (коробок монтажных)

Подрозетник - электроустановочное изделие, необходимое при монтаже или замене розетки. Иначе подрозетник называется «коробкой монтажной».

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

Материал изготовления подрозетников

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

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

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

Подрозетники: особенности конструкции, установка  и размеры

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

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

Установка подрозетников бывает двух типов: открытая и закрытая. Подрозетник для открытой установки монтируется на плинтусе в ситуации необходимости проведения электропроводки в нем.

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

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

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

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

Стандартными размерами коробок монтажных являются габариты 68см на 45см, при этом внутренние размеры несколько меньше 65см на 40см. Глубина узких подрозетников – 25мм, а углубленных – 80 мм. Диаметр может быть различным. Размеры монтажных коробок квадратной формы варьируются, в зависимости от производителя. Самыми популярными параметрами являются 70 мм на 70 мм. 

Ассортимент подрозетников на современном рынке очень широкий, что дает большой выбор, исходя из ваших предпочтений и особенностей ситуации. 

Приобрести подрозетники от известных и надежных производителей Вы можете в торгово-выставочной сети "Планета Электрика".

Подрозетник

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

В настоящее время в основном выпускаются подрозетники из полипропилена.

Фиксация электроустановочных устройств в них выполняется при помощи саморезов, разжимные лапки практически не используются.
Рассмотрим основные виды, их размеры и предназначение.

Подрозетники для бетона

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

Подрозетник для бетона (диаметр 60мм, глубина 40мм, IP-20)

Подрозетник для бетона (диаметр 68мм, глубина 45мм, IP 30)

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

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

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

А ко 2му типу потребуется дополнительное приобретение соединительных кабель-каналов.

Фиксация в стене производится алебастром или аналогичными гипсовыми смесями.

Подрозетники для бетона не подходят для установки в гипcокартонные и аналогичные стены! Их нельзя надежно зафиксировать.

Подрозетники для гипсокартона

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

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

В независимости от диаметра, 60 или 68мм, межосевое расстояние равно 71мм. Именно этот размер позволит смонтировать блок розеток(выключателей и т.п.) в одной рамке.

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

Что такое розетка? (Учебники по 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-адреса.

Сокет

в компьютерной сети - GeeksforGeeks

Сокет - это одна конечная точка двустороннего канала связи между двумя программами, работающими в сети. Механизм сокетов обеспечивает средства межпроцессного взаимодействия (IPC) путем установления именованных точек контакта, между которыми происходит обмен данными.

Like «Pipe» используется для создания каналов, а сокеты создаются с помощью системного вызова «socket» . Разъем обеспечивает двунаправленную связь FIFO по сети. На каждом конце связи создается сокет, подключающийся к сети. У каждого сокета есть определенный адрес. Этот адрес состоит из IP-адреса и номера порта.

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

Типы сокетов:
Существует два типа сокетов: сокет дейтаграммы и сокет потока .



  1. Разъем дейтаграммы:
    Это тип сети, в которой есть точка без подключения для отправки и получения пакетов. Он похож на почтовый ящик.Отправленные в ящик письма (данные) собираются и доставляются (передаются) в почтовый ящик (приемное гнездо).
  2. Потоковый сокет
    В операционной системе компьютера потоковый сокет - это тип сокета межпроцессного взаимодействия или сетевого сокета, который обеспечивает ориентированный на соединение, упорядоченный и уникальный поток данных без границ записи с четко определенными механизмами для создания и разрушения соединений. и для обнаружения ошибок. Похож на телефон. Между телефонами устанавливается соединение (два конца) и происходит разговор (передача данных).

Вызов функции Описание
Create () Для создания сокета
Bind () Это идентификация сокета, например номер телефона для связи
Listen () Готов к приему соединения
Connect () Готов действовать как отправитель
Accept () Подтверждение, это похоже на принятие вызова от отправителя
Запись () Для отправки данных
Чтение () Для получения данных
Закрыть () Для закрытия соединения

Внимание, читатель! Не прекращайте учиться сейчас.Практикуйте экзамен GATE задолго до самого экзамена с помощью предметных и общих викторин, доступных в курсе GATE Test Series Course .

Изучите все концепции GATE CS с бесплатными живыми классами на нашем канале YouTube.

Что такое розетка?

Что такое розетка?

Что такое розетка?

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

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


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

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

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

См. Также
java.net.ServerSocket
java.net.Socket

сетей - Что такое сокет?

Что это такое?

Розетка, или «розетка» может быть несколькими вещами:

Прежде всего, это модель мышления и интерфейс прикладного программирования (API) . Это означает, что у вас есть набор правил, которым вы должны следовать, и набор функций, которые вы можете использовать для написания программ, которые что-то делают, в соответствии с точно указанным контрактом.В данном конкретном случае что-то означает обмен данными с другой программой.

API сокетов широко абстрагирует детали «коммуникации» в целом. Он инкапсулирует, с кем и как вы разговариваете, через одну (почти) последовательную и идентичную форму для печенья.
Вы можете создавать сокеты в разных «доменах» (например, «сокет unix» или «интернет-сокет») и с разными типами связи (например, сокет «дейтаграмма» или сокет «поток») и разговаривать с разными получателей, и все работает точно так же (ну, 99%, очевидно, есть незначительные различия, которые вам придется учитывать).

Вам не нужно знать (и вы даже не хотите знать!), Разговариваете ли вы с другой программой на том же компьютере или на другом компьютере, или есть ли между этими компьютерами сеть IPv4 или IPv6, или, может быть, какая-то другой протокол, о котором вы никогда не слышали.

socket - это также имя библиотечной функции (или системного вызова), которая создает «сокет », который представляет собой файл особого типа (все в Unix - это файл).

Как это по сравнению с...

розетки относятся к той же категории, что и трубы, и именные трубы

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

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

Сокет, с другой стороны, является средством двухсторонней связи («дуплекс»), что означает, что вы можете писать и читать из одного и того же сокета, и вам не нужны два отдельных сокета для двусторонней связи. коммуникация.
Кроме того, сокет может действовать как поток (идентичный каналу), или он может отправлять дискретные, ненадежные сообщения, или он может отправлять дискретные, упорядоченные сообщения (первые два работают в любом домене, последний - только в «unix domain»). "). Он может отправлять сообщения (или имитировать поток) кому-то на совершенно другом компьютере. При определенных условиях сокет может даже выполнять некую форму связи «один ко многим» (многоадресную рассылку).

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

межпроцессное взаимодействие иногда упоминается в отношении сетей

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

Объяснение портов и сокетов 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 - Подключение к веб-сайту - Это для программистов, но здесь нет кодирования, только объяснение портов и сокетов.

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

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

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

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

net

 proc isDisconnectionError (flags: set [SocketFlag]; lastError: OSErrorCode): bool {...} {.
    поднимает: [], теги: [].} 
Определяет, является ли lastError ошибкой отключения. Это возможно только в том случае, если flags содержит SafeDisconn. Источник Редактировать
 proc toOSFlags (socketFlags: set [SocketFlag]): cint {...} {. Raises: [], tags: [].} 
Преобразует флаги в базовое представление ОС. Источник Редактировать
 proc newSocket (fd: SocketHandle; домен: Domain = AF_INET;
               sockType: SockType = SOCK_STREAM;
               протокол: Протокол = IPPROTO_TCP; buffered = true): принадлежит (Socket) {...} {.
    поднимает: [], теги: [].} 
Создает новый сокет, как указано в параметрах. Источник Редактировать
 proc newSocket (домен, sockType, протокол: cint; buffered = true;
               наследуемый = определенный (nimInheritHandles)): принадлежащий (Socket) {...} {.
    вызывает: [OSError], теги: [].} 

Создает новое гнездо.

SocketHandle, связанный с результирующим Socket, по умолчанию не будет наследоваться дочерними процессами. Это можно изменить с помощью наследуемого параметра.

При возникновении ошибки возникает ошибка OSError.

Источник Редактировать
 proc newSocket (домен: Domain = AF_INET; sockType: SockType = SOCK_STREAM;
               протокол: Протокол = IPPROTO_TCP; буферизованный = истина;
               наследуемый = определенный (nimInheritHandles)): принадлежащий (Socket) {...} {.
    вызывает: [OSError], теги: [].} 

Создает новое гнездо.

SocketHandle, связанный с результирующим Socket, по умолчанию не будет наследоваться дочерними процессами.Это можно изменить с помощью наследуемого параметра.

При возникновении ошибки возникает ошибка OSError.

Источник Редактировать
 proc parseIpAddress (addressStr: string): IpAddress {...} {. Raises: [ValueError],
    теги: [].} 
Анализирует IP-адрес. Вызывает ошибку ValueError. Источник Редактировать
 proc isIpAddress (addressStr: string): bool {...} {. Tags: [], raises: [].} 
Проверяет, является ли строка IP-адресом. Возвращает true, если это так, иначе false. Источник Редактировать
 proc toSockAddr (адрес: IpAddress; порт: Порт; sa: var Sockaddr_storage;
                sl: var SockLen) {...} {. Raises: [], tags: [].} 
Преобразует IpAddress и Port в SockAddr и SockLen Источник Редактировать
 proc fromSockAddr (sa: Sockaddr_storage | SockAddr | Sockaddr_in | Sockaddr_in6;
                  sl: SockLen; адрес: var IpAddress; порт: var Port) {...} {. inline.} 
Преобразует SockAddr и SockLen в IpAddress и Port. Вызывает ObjectConversionDefect в случае недопустимых аргументов sa и sl. Источник Редактировать
 proc raiseSSLError (s = "") {...} {. вызывает: [SslError], теги: [].} 
Вызывает новую ошибку SSL. Источник Редактировать
 proc getExtraData (ctx: SslContext; index: int): RootRef {...} {. Вызывает: [SslError],
    теги: [].} 
Извлекает произвольные данные, хранящиеся внутри SslContext. Источник Редактировать
 proc setExtraData (ctx: SslContext; индекс: int; данные: RootRef) {...} {.
    вызывает: [SslError], теги: [].} 
Хранит произвольные данные внутри SslContext. Уникальный индекс должен быть получен с помощью getSslContextExtraDataIndex.Источник Редактировать
 proc newContext (protVersion = protSSLv23; verifyMode = CVerifyPeer;
                certFile = ""; keyFile = ""; cipherList = CiphersIntermediate;
                caDir = ""; caFile = ""): SslContext {...} {.
    вызывает: [Exception, LibraryError, SslError, IOError],
    теги: [RootEffect, ReadDirEffect, ReadEnvEffect].} 

Создает контекст SSL.

Версия протокола определяет используемый протокол. SSLv2, SSLv3, TLSv1 доступны с добавлением protSSLv23, что обеспечивает совместимость со всеми из них.

Существует три варианта режима проверки: CVerifyNone: сертификаты не проверяются; CVerifyPeer: сертификаты проверены; CVerifyPeerUseEnvVars: сертификаты проверяются, а необязательные переменные среды SSL_CERT_FILE и SSL_CERT_DIR также используются для поиска сертификатов

Определение nimDisableCertificateValidation переопределяет verifyMode и отключает глобальную проверку сертификата!

сертификатов ЦС будут загружены в следующем порядке из:

  • caFile, caDir, параметры, если установлены
  • , если для verifyMode установлено значение CVerifyPeerUseEnvVars, используются переменные среды SSL_CERT_FILE и SSL_CERT_DIR
  • набор файлов и каталогов из файла ssl_certs.

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

Сертификаты могут быть сгенерированы с помощью следующей команды:

  • openssl req -x509 -nodes -days 365 -newkey rsa: 4096 -keyout mykey.pem -out mycert.pem

или используя ECDSA:

  • openssl ecparam -out mykey.pem -name secp256k1 -genkey
  • openssl req -new -key mykey.pem -x509 -nodes -days 365 -out mycert.pem
Источник Редактировать
 proc destroyContext (ctx: SslContext) {...} {. Raises: [SslError], tags: [].} 
Свободная память, на которую ссылается SslContext. Источник Редактировать
 proc pskIdentityHint = (ctx: SslContext; hint: string) {...} {. Вызывает: [SslError],
    теги: [].} 

Устанавливает подсказку личности, передаваемую на сервер.

Используется только в наборах шифров PSK.

Источник Редактировать
 proc clientGetPskFunc (ctx: SslContext): SslClientGetPskFunc {...} {. Raises: [],
    теги: [].} 
Источник Редактировать
 proc clientGetPskFunc = (ctx: SslContext; fun: SslClientGetPskFunc) {...} {.
    вызывает: [Exception], теги: [RootEffect].} 

Устанавливает функцию, которая возвращает идентификатор клиента и PSK на основе подсказки об идентификаторе от сервера.

Используется только в наборах шифров PSK.

Источник Редактировать
 proc serverGetPskFunc (ctx: SslContext): SslServerGetPskFunc {...} {.поднимает: [],
    теги: [].} 
Источник Редактировать
 proc serverGetPskFunc = (ctx: SslContext; fun: SslServerGetPskFunc) {...} {.
    вызывает: [Exception], теги: [RootEffect].} 

Устанавливает функцию, которая возвращает PSK на основе идентификатора клиента.

Используется только в наборах шифров PSK.

Источник Редактировать
 proc getPskIdentity (socket: Socket): string {...} {. Raises: [], tags: [].} 
Получает идентификатор PSK, предоставленный клиентом.Источник Редактировать
 proc wrapSocket (ctx: SslContext; socket: Socket) {...} {. Raises: [SslError], tags: [].} 

Заключает сокет в контекст SSL. Эта функция эффективно превращает сокет в сокет SSL.

Это должно вызываться на неподключенном сокете; сеанс SSL будет запущен при подключении сокета.

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

Источник Редактировать
 proc wrapConnectedSocket (ctx: SslContext; socket: Socket;
                         рукопожатие: SslHandshakeType; hostname: string = "") {...} {.
    вызывает: [SslError, Exception], теги: [RootEffect].} 

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

Это должно вызываться в подключенном сокете и немедленно выполнять квитирование SSL.

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

Источник Редактировать
 proc getPeerCertificates (sslHandle: SslPtr): seq [Сертификат] {...} {.
    вызывает: [Исключение], теги: [].} 
Возвращает цепочку сертификатов, полученную одноранговым узлом, к которому мы подключены через соединение OpenSSL, представленное sslHandle. Рукопожатие должно быть завершено и цепочка сертификатов должна быть успешно проверена, иначе будет возвращена пустая последовательность.Цепочка упорядочена от конечного сертификата до корневого сертификата. Источник Редактировать
 proc getPeerCertificates (сокет: Socket): seq [Сертификат] {...} {.
    вызывает: [Исключение], теги: [].} 
Возвращает цепочку сертификатов, полученную одноранговым узлом, к которому мы подключены через данный сокет. Рукопожатие должно быть завершено и цепочка сертификатов должна быть успешно проверена, иначе будет возвращена пустая последовательность. Цепочка упорядочена от конечного сертификата до корневого сертификата.Источник Редактировать
 proc sessionIdContext = (ctx: SslContext; sidCtx: string) {...} {. Вызывает: [SslError],
    теги: [].} 

Устанавливает контекст идентификатора сеанса, в котором сеанс может быть повторно использован. Используется для разрешения клиентам повторно использовать идентификатор сеанса вместо выполнения нового рукопожатия.

TLS-клиенты могут попытаться возобновить сеанс с использованием контекста идентификатора сеанса, поэтому он должен быть установлен, если для verifyMode установлено значение CVerifyPeer или CVerifyPeerUseEnvVars, в противном случае соединение не будет установлено, и в случае возобновления возникнет ошибка SslError.

  • Полезно, только если установлено на стороне сервера.
  • Должен быть уникальным для каждого приложения, чтобы клиенты не работали со сбоями.
  • sidCtx должен иметь длину не более 32 символов.
Источник Редактировать
 proc getSocketError (socket: Socket): OSErrorCode {...} {. Raises: [OSError], tags: [].} 
Проверяет osLastError на допустимую ошибку. Если он был сброшен, он использует последнюю ошибку, сохраненную в объекте сокета. Источник Редактировать
 proc socketError (socket: Socket; err: int = -1; async = false;
                 lastError = -1.OSErrorCode; флаги: установить [SocketFlag] = {}): void {...} {.
    gcsafe, вызывает: [SslError, OSError], теги: [].} 

Вызывает ошибку OSError на основе кода ошибки, возвращаемого SSL_get_error (для сокетов SSL) и osLastError в противном случае.

Если async имеет значение true, ошибка не будет выдана в случае, если ошибка была вызвана отсутствием данных, доступных для чтения.

Если значение err не ниже 0, исключение не возникает.

Если flags содержит SafeDisconn, исключение не будет возникать, если ошибка была вызвана отключением однорангового узла.

Источник Редактировать
 proc listen (socket: Socket; backlog = SOMAXCONN) {...} {. Tags: [ReadIOEffect],
    вызывает: [OSError].} 

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

При сбое выдает ошибку OSError.

Источник Редактировать
 proc bindAddr (socket: Socket; port = Port (0); address = "") {...} {.
    теги: [ReadIOEffect], вызывает: [ValueError, OSError].} 

Привязывает адрес: порт к сокету.

Если адрес "", будет привязан ADDR_ANY.

Источник Редактировать
 proc acceptAddr (server: Socket; client: var own (Socket); address: var string;
                flags = {SafeDisconn}; наследуемый = определенный (nimInheritHandles)) {...} {.
    теги: [ReadIOEffect], gcsafe, блокировки: 0, вызывает: [OSError, IOError, SslError].} 

Блокирует до тех пор, пока не будет установлено соединение от клиента.Когда соединение установлено, клиент устанавливается на клиентский сокет, а адрес - на адрес подключающегося клиента. Эта функция вызовет OSError в случае возникновения ошибки.

Полученный клиент унаследует любые свойства серверного сокета. Например: буферизован ли сокет или нет.

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

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

Источник Редактировать
 proc accept (сервер: сокет; клиент: принадлежащая переменной (сокет); флаги = {SafeDisconn};
            наследуемый = определенный (nimInheritHandles)) {...} {. tags: [ReadIOEffect],
    вызывает: [OSError, IOError, SslError].} 

Эквивалент acceptAddr, но не возвращает адрес, только сокет.

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

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

Источник Редактировать
 proc close (socket: Socket; flags = {SafeDisconn}) {...} {.
    вызывает: [Exception, LibraryError, OSError, SslError, OSError],
    теги: [RootEffect].} 

Замыкает розетку.

Если сокет является сокетом SSL / TLS, этот процесс также отправит партнеру уведомление о закрытии. Если SafeDisconn находится в флагах, невыполнение этого из-за отключений будет проигнорировано. На практике это обычно безопасно. Подробнее см. Здесь.

Источник Редактировать
 proc toCInt (opt: SOBool): cint {...} {. Raises: [], tags: [].} 
Преобразует объект SOBool в его представление cint Socket Option. Источник Редактировать
 proc getSockOpt (socket: Socket; opt: SOBool; level = SOL_SOCKET): bool {...} {.
    теги: [ReadIOEffect], вызывает: [OSError].} 
Получает опцию opt как логическое значение. Источник Редактировать
 proc getLocalAddr (сокет: Socket): (строка, порт) {...} {.
    вызывает: [OSError, Exception], теги: [].} 

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

Это высокоуровневый интерфейс для getsockname.

Источник Редактировать
 proc getPeerAddr (socket: Socket): (string, Port) {...} {. Raises: [OSError, Exception],
    теги: [].} 

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

Это высокоуровневый интерфейс для getpeername.

Источник Редактировать
 proc setSockOpt (socket: Socket; opt: SOBool; value: bool; level = SOL_SOCKET) {...} {.
    теги: [WriteIOEffect], вызывает: [OSError].} 
Устанавливает для option opt логическое значение, указанное в value.
 var socket = newSocket ()
socket.setSockOpt (OptReusePort, истина)
socket.setSockOpt (OptNoDelay, истина, уровень = IPPROTO_TCP.toInt) 
Источник Редактировать
 proc connectUnix (socket: Socket; path: string) {...} {. Raises: [], tags: [].} 
Подключается к сокету Unix по пути. Это работает только в системах в стиле Unix: Mac OS X, BSD и Linux. Источник Редактировать
 proc bindUnix (socket: Socket; path: string) {...} {. Raises: [], tags: [].} 
Привязывает сокет Unix к пути. Это работает только в системах в стиле Unix: Mac OS X, BSD и Linux. Источник Редактировать
 proc hasDataBuffered (s: Socket): bool {...} {. Raises: [], tags: [].} 
Определяет, буферизированы ли данные в сокете. Источник Редактировать
 proc recv (socket: Socket; data: pointer; size: int): int {...} {. Tags: [ReadIOEffect],
    повышает: [].} 

Получает данные от сокета.

Примечание : Это функция низкого уровня, вас могут заинтересовать версии этой функции более высокого уровня, которые также называются recv.

Источник Редактировать
 proc recv (socket: Socket; data: pointer; size: int; timeout: int): int {...} {.
    теги: [ReadIOEffect, TimeEffect], вызывает: [TimeoutError, OSError].} 
перегрузка с параметром тайм-аута в миллисекундах. Источник Редактировать
 proc recv (socket: Socket; data: var string; size: int; timeout = -1;
          flags = {SafeDisconn}): int {...} {. вызывает: [TimeoutError, OSError, SslError],
                                        теги: [ReadIOEffect, TimeEffect].} 

Версия recv.

Считывает байты размером от до из сокета в буфер.

Для буферизованных сокетов эта функция попытается прочитать все запрошенные данные. Он будет читать эти данные в блоках BufferSize.

Для небуферизованных сокетов эта функция не пытается прочитать все запрошенные данные. Он вернет столько данных, сколько предоставит операционная система.

Когда возвращается 0, соединение сокета закрыто.

Эта функция вызовет исключение OSError при возникновении ошибки. Значение ниже 0 никогда не возвращается.

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

Примечание : данные должны быть инициализированы.

Предупреждение : в настоящее время поддерживается только флаг SafeDisconn.

Источник Редактировать
 proc recv (socket: Socket; size: int; timeout = -1; flags = {SafeDisconn}): string {...} {.
    встроенный, вызывает: [TimeoutError, OSError, SslError],
    теги: [ReadIOEffect, TimeEffect].} 

Версия recv более высокого уровня, которая возвращает строку.

Считывает байты размером от до из сокета в буфер.

Для буферизованных сокетов эта функция попытается прочитать все запрошенные данные. Он будет читать эти данные в блоках BufferSize.

Для небуферизованных сокетов эта функция не пытается прочитать все запрошенные данные. Он вернет столько данных, сколько предоставит операционная система.

Когда возвращается "", соединение сокета было закрыто.

Эта функция вызовет исключение OSError при возникновении ошибки.

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

Предупреждение : в настоящее время поддерживается только флаг SafeDisconn.

Источник Редактировать
 proc readLine (сокет: Socket; строка: var TaintedString; timeout = -1;
              flags = {SafeDisconn}; maxLength = MaxLineLength) {...} {.
    теги: [ReadIOEffect, TimeEffect], вызывает: [TimeoutError, OSError, SslError].} 

Считывает строку данных из сокета.

Если читается вся строка \ r \ L не добавляется к строке, однако, если читается только \ r \ L, тогда строка будет установлена ​​на нее.

Если розетка отключена, линия будет установлена ​​на "".

Исключение OSError будет вызвано в случае ошибки сокета.

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

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

Предупреждение : в настоящее время поддерживается только флаг SafeDisconn.

Источник Редактировать
 proc recvLine (сокет: сокет; тайм-аут = -1; флаги = {SafeDisconn};
              maxLength = MaxLineLength): TaintedString {...} {.
    вызывает: [TimeoutError, OSError, SslError], теги: [ReadIOEffect, TimeEffect].} 

Считывает строку данных из сокета.

Если читается вся строка \ r \ L не добавляется к результату, однако, если читается только \ r \ L, то результат будет установлен на него.

Если сокет отключен, результат будет установлен на "".

Исключение OSError будет вызвано в случае ошибки сокета.

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

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

Предупреждение : в настоящее время поддерживается только флаг SafeDisconn.

Источник Редактировать
 proc recvFrom (socket: Socket; data: var string; length: int;
              адрес: var строка; порт: var Port; flags = 0'i32): int {...} {.
    теги: [ReadIOEffect], вызывает: [Exception, OSError, IOError, ValueError].} 

Получает данные из сокета. Эта функция обычно должна использоваться с сокетами без подключения (сокеты UDP).

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

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

Источник Редактировать
 proc skip (socket: Socket; size: int; timeout = -1) {...} {.
    вызывает: [TimeoutError, OSError], теги: [TimeEffect, ReadIOEffect].} 

Пропускает размер в байтах.

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

Возвращает количество пропущенных байтов.

Источник Редактировать
 proc send (сокет: сокет; данные: указатель; размер: int): int {...} {.
    теги: [WriteIOEffect], вызывает: [].} 

Отправляет данные в сокет.

Примечание : это низкоуровневая версия отправки. Вероятно, вам следует использовать версию ниже.

Источник Редактировать
 proc send (сокет: сокет; данные: строка; флаги = {SafeDisconn}) {...} {.
    теги: [WriteIOEffect], вызывает: [SslError, OSError].} 
отправляет данные в сокет.Источник Редактировать
 proc trySend (socket: Socket; data: string): bool {...} {. Tags: [WriteIOEffect],
    повышает: [].} 
Безопасная альтернатива отправке. Не вызывает OSError при возникновении ошибки, а вместо этого возвращает false при ошибке. Источник Редактировать
 proc sendTo (сокет: сокет; адрес: строка; порт: порт; данные: указатель;
            размер: int; af: домен = AF_INET; flags = 0'i32) {...} {.
    теги: [WriteIOEffect], вызывает: [OSError].} 

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

При возникновении ошибки возникает исключение OSError.

Примечание: Вы можете использовать высокоуровневую версию этой функции, которая определена ниже.

Примечание: Эта процедура недоступна для сокетов SSL.

Источник Редактировать
 proc sendTo (сокет: сокет; адрес: строка; порт: порт; данные: строка) {...} {.
    теги: [WriteIOEffect], вызывает: [OSError].} 

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

При возникновении ошибки возникает исключение OSError.

Это высокоуровневая версия вышеупомянутой функции sendTo.

Источник Редактировать
 proc isSsl (socket: Socket): bool {...} {. Raises: [], tags: [].} 
Определяет, является ли сокет сокетом SSL. Источник Редактировать
 proc getFd (socket: Socket): SocketHandle {...} {. Raises: [], tags: [].} 
Возвращает файловый дескриптор сокета Источник Редактировать
 proc IPv4_any (): IpAddress {...} {. Raises: [], tags: [].} 
Возвращает IPv4 любой адрес, который можно использовать для прослушивания на всех доступных сетевых адаптерах. Источник Редактировать
 proc IPv4_loopback (): IpAddress {...} {. Raises: [], tags: [].} 
Возвращает адрес обратной связи IPv4 (127.0.0.1) Источник Редактировать
 proc IPv4_broadcast (): IpAddress {...} {. Raises: [], tags: [].} 
Возвращает широковещательный адрес IPv4 (255.255.255.255) Источник Редактировать
 proc IPv6_any (): IpAddress {...} {. Raises: [], tags: [].} 
Возвращает любой IPv6-адрес (:: 0), который можно использовать для прослушивания на всех доступных сетевых адаптерах. Источник Редактировать
 proc IPv6_loopback (): IpAddress {...} {. Raises: [], tags: [].} 
Возвращает адрес обратной связи IPv6 (:: 1) Источник Редактировать
 proc `==` (lhs, rhs: IpAddress): bool {...} {. Raises: [], tags: [].} 
Сравнивает два IP-адреса на предмет равенства. Возвращает истину, если адреса равны Источник Редактировать
 proc `$` (адрес: IpAddress): string {...} {. Raises: [], tags: [].} 
Преобразует IpAddress в текстовое представление Источник Редактировать
 proc dial (адрес: строка; порт: порт; протокол = IPPROTO_TCP; buffered = true): свой (
    Socket) {...} {. Tags: [ReadIOEffect, WriteIOEffect], вызывает: [OSError, IOError].} 
Устанавливает соединение с указанной парой адрес: порт по указанному протоколу. Процедура перебирает возможные варианты разрешения адреса до тех пор, пока не завершится успешно, что означает, что она без проблем работает как с IPv4, так и с IPv6.Возвращает Socket, готовый к отправке или получению данных. Источник Редактировать
 proc connect (сокет: сокет; адрес: строка; порт = порт (0)) {...} {.
    теги: [ReadIOEffect], вызывает: [OSError, SslError].} 

Подключает сокет к адресу: порт. Адрес может быть IP-адресом или именем хоста. Если адрес является именем хоста, эта функция будет пробовать каждый IP-адрес этого имени хоста. htons уже выполняется на порте, поэтому вы не должны этого делать.

Если сокет является SSL-сокетом, подтверждение будет выполнено автоматически.

Источник Редактировать
 proc connect (socket: Socket; address: string; port = Port (0); timeout: int) {...} {.
    теги: [ReadIOEffect, WriteIOEffect], вызывает: [OSError, TimeoutError].} 

Подключается к серверу по адресу, указанному в порту, указанном в порту.

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

Предупреждение: Эта процедура не работает для SSL-соединений начиная с Nim v1.0.2. Рассмотрите возможность использования другой процедуры подключения. См. Https://github.com/nim-lang/Nim/issues/15215 для получения дополнительной информации.

Источник Редактировать
 proc getPrimaryIPAddr (dest = parseIpAddress ("8.8.8.8")): IpAddress {...} {.
    вызывает: [OSError, OSError, SslError, ValueError, Exception, LibraryError],
    теги: [ReadIOEffect, RootEffect].} 

Находит локальный IP-адрес, обычно назначаемый eth0 в LAN или wlan0 в WiFi, используемый для доступа к внешнему адресу. Полезно для запуска локальных служб.

Трафик не отправляется.

Поддерживает IPv4 и v6. Вызывает ошибку OSError, если внешняя сеть не настроена.

 echo $ getPrimaryIPAddr () 
Источник Редактировать
Сеть

- В чем разница между портом и сокетом?

Сводка

Сокет TCP - это экземпляр конечной точки , определяемый IP-адресом и портом в контексте либо конкретного TCP-соединения, либо состояния прослушивания.

Порт - это идентификатор виртуализации, определяющий конечную точку службы (в отличие от конечной точки экземпляра службы , также известной как идентификатор сеанса).

Сокет TCP - это , а не , соединение , это конечная точка определенного соединения.

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

Может быть только один сокет слушателя для данной комбинации адреса / порта .

Экспозиция

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

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

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

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

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

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

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

Это пара сокетов (4-кортежный состоящий из IP-адреса клиента, номер порта клиента, IP-адрес сервера, и номер порта сервера), который указывает две конечные точки, которые однозначно идентифицирует каждое TCP-соединение в Интернет.( TCP-IP, иллюстрированный том 1 , У. Ричард Стивенс)

В большинстве языков, производных от C, TCP-соединения устанавливаются и управляются с помощью методов экземпляра класса Socket. Хотя обычно работают с более высоким уровнем абстракции, обычно с экземпляром класса NetworkStream, это обычно предоставляет ссылку на объект сокета. Кодировщику кажется, что этот объект сокета представляет соединение, потому что соединение создается и управляется с помощью методов объекта сокета.

В C #, чтобы установить TCP-соединение (с существующим слушателем), сначала нужно создать TcpClient . Если вы не укажете конечную точку для конструктора TcpClient , он использует значения по умолчанию - так или иначе локальная конечная точка определена. Затем вы вызываете Connect в созданном вами экземпляре. Для этого метода требуется параметр, описывающий другую конечную точку.

Все это немного сбивает с толку и наводит на мысль, что розетка - это соединение, а это ерунда.Я пребывал в этом заблуждении, пока Ричард Дорман не задал вопрос.

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

Ясность будет улучшена и в других отношениях. Сокет - это , а не , идентифицируемый комбинацией IP-адреса и порта:

[...] TCP демультиплексирует входящие сегменты, используя все четыре значения, которые составляют локальный и внешний адреса: IP-адрес назначения, номер порта назначения, IP-адрес источника и номер порта источника. TCP не может определить, какой процесс получает входящий сегмент, глядя только на порт назначения. Кроме того, единственная из [различных] конечных точек на [заданном номере порта], которая будет получать входящие запросы на соединение, находится в состоянии прослушивания.(p255, TCP-IP Illustrated Volume 1 , W. Richard Stevens)

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

Hagrawal мне не верит (см. Комментарии), так что вот реальный образец. Я подключил веб-браузер к http://dilbert.com, а затем запустил netstat -an -p tcp . Последние шесть строк вывода содержат два примера того факта, что адреса и порта недостаточно для однозначной идентификации сокета. Есть два разных соединения между 192.168.1.3 (моя рабочая станция) и 54.252.94.236:80 (удаленный HTTP-сервер)

  TCP 192.168.1.3:63240 54.252.94.236:80 SYN_SENT
  TCP 192.168.1.3: 63241 54.252.94.236:80 SYN_SENT
  TCP 192.168.1.3:63242 207.38.110.62:80 SYN_SENT
  TCP 192.168.1.3:63243 207.38.110.62:80 SYN_SENT
  TCP 192.168.1.3:64161 65.54.225.168:443 УСТАНОВЛЕН
  

Поскольку сокет является конечной точкой соединения, существует два сокета с комбинацией адрес / порт 207.38.110.62:80 и еще два с комбинацией адрес / порт 54.252.94.236:80 .

Я думаю, что недоразумение Хагравала возникло из-за того, что я очень осторожно использовал слово «идентифицирует».Я имею в виду «полностью, однозначно и однозначно идентифицирует». В приведенном выше примере есть две конечные точки с комбинацией адрес / порт 54.252.94.236:80 . Если все, что у вас есть, это адрес и порт, у вас недостаточно информации, чтобы различить эти сокеты. Недостаточно информации, чтобы идентифицировать сокет.

Приложение

В абзаце два раздела 2.7 RFC793 говорится:

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *