Что такое процессорный сокет. Сокеты в Python для начинающих. Что это такое

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

Например, производя замену центрального процессора, существует другое обозначение (CPU), очень важно точно понимать, какой именно тип сокета он имеет и подойдёт ли он к разъёму на материнской плате персонального компьютера.

Что это такое

Основной и очень важный параметр материнки – сокет центрального процессора (socket CPU). Это размещённое на основной плате компьютера гнездо, предназначенное для установки в него CPU. И прежде чем соединить эти компоненты в одну слаженную систему, нужно определить, совместимы ли они между собой или нет. Это как подключать вилку в розетку , если вилка американского стандарта, а розетка европейского, то они, естественно, не подойдут друг к другу, и прибор не заработает.

Как правило, в торговых точках по продаже компьютерных комплектующих, в ценнике на витрине либо в прайсе, всегда указываются основные параметры процессора, который продаётся. Вот среди этих параметров и указан тип сокета, к которому, подходит данный процессор. Главное при покупке – учитывать именно эту первостепенную характеристику CPU.

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

  • Сокеты для центральных процессоров от производителя AMD.
  • Сокеты, предназначенные для процессоров, произведённых компанией Intel.

Характеристики сокетов Intel и AMD

  • Физическими размерами socket.
  • Способом соединения контактов сокета и процессора.
  • Типом крепления охлаждающей системы процессорного кулера.
  • Количеством гнёзд или контактных площадок.

Способ соединения – здесь нет ничего сложного. На сокете имеются либо гнезда (как у AMD), в которые вставляются контакты процессора. Либо штырьки (как у Intel), на которые ложатся плоские контактные площадки CPU. Третьего варианта здесь нет.

Количество гнёзд или штырьков – здесь вариантов множество, их число может составлять от 400 и до 2000, а может быть, и ещё больше. Определить этот параметр можно взглянув на маркировку сокета, в названии которого закодирована данная информация. К примеру, Intel Core i7-2600 под процессорный socket Intel LGA 1155 имеет как раз 1155 контактных площадок на своей поверхности. А аббревиатура LGA говорит о том, что процессор имеет плоские контакты, а сокет, напротив, состоит из 1155 штырьков.

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

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

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

Как определить сокет у процессора

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

По производителю и модели

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

Вот примерная последовательность действий:

Через Speccy

  1. Скачайте и проинсталлируйте приложение Aida64 либо Speccy на свой компьютер. Далее, рассмотрим второй вариант. Откройте программу Speccy. И найдите в ней раздел с параметрами CPU, он должен называться «Центральный процессор».
  2. Далее, в выбранном разделе отыщите строку с наименованием «Конструктив» и ознакомьтесь с его содержимым. Именно здесь и будет указан тип сокета процессора.
  3. Примерно такие же действия, нужно будет выполнить при использовании программы Aida64. Раздел «Компьютер», подраздел DMI, далее в подразделе «Процессор», ищем строку со словом Socket.

В документации

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

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

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

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

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

  • Процессор стоит выбирать в зависимости от поставленных задач. Если в обычном режиме у вас работает около двух ресурсоёмких программ, то лучше купить двухъядерный «камень» с высокой частотой. Если же используется больше потоков – лучше остановить свой выбор на многоядернике той же архитектуры, пусть даже с меньшей частотой.
  • Гибридные процессоры (с встроенной видеокартой) позволят сэкономить на покупке видеокарты, при условии, что играть в навороченные игры вам не надо. Это почти все современные процессоры Intel и AMD серии A4-A12, но у AMD графическое ядро сильнее.
  • Вместе со всеми процессорами с пометкой «ВОХ» должен поставляться кулер (конечно, простенькая модель, которой не хватит для высоких нагрузок, но для работы в номинальном режиме — то что надо). Если нужен крутой кулер, то .
  • На процессоры с пометкой «ОЕМ» распространяется годовая гарантия, на ВОХ – трехлетняя. Если срок гарантии, предоставляемой магазином меньше – лучше задуматься над тем, чтобы поискать другого распространителя.
  • В некоторых случаях есть смысл купить проц с рук, таким образом можно сэкономить около 30% суммы. Правда, такой способ покупки связан с определенным риском, поэтому необходимо обращать внимание на наличие гарантии и репутацию продавца.

Основные технические характеристики процессоров

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

Каждый процессор имеет свой сокет (платформу) , т.е. название разъёма на материнской плате под который он предназначен. Какой бы вы ни выбрали процессор, обязательно смотрите на соответствие сокетов. На данный момент существует несколько платформ.

  • LGA1150 – не для топовых процессоров, используется для офисных компьютеров, игровых и домашнего медиацентра. Встроенная графика начального уровня, кроме Intel Iris/Iris Pro. Уже выходит из оборота.
  • LGA1151 – современная платформа, рекомендуется для будущего апгрейда на более новые «камни». Сами по себе процессоры не сильно быстрее предыдущей платформы, т.е., смысла апгрейдиться на неё особо нет. Но зато здесь присутствует более мощное встроенное графическое ядро серии Intel Graphics, поддерживается память DDR4, но она не даёт сильного выигрыша в производительности.
  • LGA2011-v3 – топовая платформа, предназначенная для построения высокопроизводительных настольных систем на базе системной логики Intel X299, дорого, устарело.
  • LGA 2066 (Socket R4) - разъём для HEDT (Hi-End) процессоров Intel архитектуры Skylake-X и Kaby Lake-X, пришёл на замену 2011-3.
  • AM1 для слабых, энергоэкономичных процессоров
  • AM3+ распространённый сокет, подходит для большинства процессоров AMD, в т.ч. для высокопроизводительных процессоров без интегрированного видеоядра
  • AM4 создан для микропроцессоров с микроархитектурой Zen (бренд Ryzen) с встроенной графикой и без неё, и всех последующих. Появилась поддержка памяти DDR4.
  • FM2/FM2+ для бюджетных вариантов Athlon X2/X4 без встроенной графики.
  • sTR4 — тип разъёма для HEDT семейства микропроцессоров Ryzen Threadripper. Схож с серверными сокетами, самый массивный и для настольных компьютеров.

Есть устаревшие платформы, покупать которые можно в целях экономии, но нужно учесть, что новых процессоров для них делать уже не будут: LGA1155, AM3, LGA2011, AM2/+, LGA775 и другие, которых нет в списках.

Наименование ядра. Каждая линейка процов имеет своё название ядра. Например, у Intel сейчас актуальны Sky Lake, Kaby Lake и самый новый Coffee Lake восьмого поколения. У AMD – Richland, Bulldozer, Zen. Чем выше поколение — тем более высокопроизводительный чип, при меньших энергозатратах, и тем больше внедрено технологий.

Количество ядер: от 2 до 18 штук. Чем больше – тем лучше. Но тут есть такой момент: программы, которые не умеют распределять нагрузку по ядрам будут работать быстрее на двухядернике с бОльшей тактовой частотой, чем на 4-х ядерном, но с меньшей частотой. Короче, если нет чёткого технического задания, то работает правило: больше – лучше, и чем дальше, тем это будет правильнее.

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

Тактовая частота , измеряется в гигагерцах, например — 3,5ГГц. Всегда чем больше – тем лучше, но только в пределах одной серии. Если взять старый Pentium с частотой в 3.5ГГц и какой-нибудь новый, то старый будет медленнее во много раз. Это объясняется тем, что у них совсем разные ядра.

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

Объем кэш памяти 1, 2 и 3 уровней , одна из ключевых характеристик, чем больше, тем быстрее. Первый уровень самый важный, третий — менее значим. Напрямую зависит от ядра и серии.

TDP – рассеиваемая тепловая мощность, ну или насколько при максимальной нагрузке. Меньшее число означает меньший нагрев. Без чётких личных предпочтений на это можно не обращать внимание. Мощные процессоры потребляют 110-220 Ватт электроэнергии в нагрузке. Можно ознакомиться с диаграммой примерного потребления энергии процессорами Интел и АМД под обычной нагрузкой, чем меньше, тем лучше:

Модель, серия : не относится к характеристикам, но тем не менее я хочу рассказать как понять какой процессор лучше в рамках одной серии, не особо вникая в характеристики. Название процессора, например « состоит из серии « Core i3″ и номера модели «8100». Первая цифра означает линейку процессоров на каком-то ядре, а следующие — это его «индекс производительности», грубо говоря. Так, мы можем прикинуть, что:

  • Core i3-8300 быстрее, чем i3-8100
  • i3-8100 быстрее, чем i3-7100
  • Но i3-7300 будет шустрее, чем i3-8100, несмотря на более младшую серию, потому что 300 сильно больше чем 100. Думаю, суть вы уловили.

То же самое касается и AMD.

А вы будете играть на компьютере?

Следующий момент, с которым нужно заранее определиться: игровое будущее компьютера. Для «Весёлой фермы» и других простеньких онлайн-игр подойдёт любая встроенная графика. Если покупать дорогую видеокарту в планы не входит, но поиграть хочется, тогда нужно брать процессор с нормальным графическим ядром Intel Graphics 530/630/Iris Pro, AMD Radeon RX Vega Series. Пойдут даже современные игры в Full HD 1080p разрешении на минимальных и средних настройках качества графики. Можно играться в World of Tanks, GTA, Доту и другие.

  • Комментарии (227 )

  • ВКонтакте

    Минский Ремонтник

    Ответить

    • Алексей Виноградов

      Ответить

      • Ответить

        Ответить

    • BRedScorpius

      Ответить

    aleksandrzdor

    Ответить

    • Елена Малышева

      Ответить

      • Алексей Виноградов

        Ответить

    Дмитрий

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Леонид

    Ответить

    • Алексей Виноградов

      Ответить

    Леонид

    Ответить

    • Алексей Виноградов

      Ответить

    Сергей

    Ответить

    • Алексей Виноградов

      Ответить

      • Сергей

        Ответить

        • Алексей Виноградов

          Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Станислав

    Ответить

    • Алексей Виноградов

      Ответить

    Владислав

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Александр

    Ответить

    • Алексей Виноградов

      Ответить

    Александр

    Ответить

    • Алексей Виноградов

      Ответить

    Игорь Новожилов

    Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

      • Ответить

        • Алексей Виноградов

          Ответить

    • Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Александр С.

    Ответить

    • Алексей Виноградов

      Ответить

      Александ С.

      Ответить

      • Ответить

    Алексей Виноградов

    Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    Александр С.

    Ответить

    Ответить

    • Александр С.

      Ответить

    Александр С.

    Ответить

    Ответить

    Вячеслав

    Ответить

    • Алексей Виноградов

      Ответить

    Дмитрий

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Константин

    Ответить

    • Александр С.

      Ответить

    Виталий

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

      Григорий

      Ответить

    Дмитрий

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Ответить

    • Александр С.

      Ответить

      • Ответить

    Александр С.

    Ответить

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Леонид

    Ответить

    • Александр С.

      Ответить

      • Леонид

        Ответить

    Ответить

    Владимир

    Ответить

    • Александр С.

      Ответить

    Ответить

    серега

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Ответить

    • Александр С.

      Ответить

      • Ответить

    Леонид

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Наталья

    Ответить

    • Алексей Виноградов

      Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

      • Алексей Виноградов

        Ответить

    Андрей

    Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

    Андрей

    Ответить

    • Александр С.

      Ответить

    Андрей

    Ответить

    Андрей

    Ответить

    • Александр С.

      Ответить

    Александр С.

    Ответить

    • Алексей Виноградов

      Ответить

    Андрей

    Ответить

    Александр С.

    Ответить

    Андрей

    Ответить

    Александр С.

    Ответить

    Андрей

    Ответить

    Александр С.

    Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

    Андрей

    Ответить

    Александр

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

      • Александр

        Ответить

        • Александр С.

          Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Максим

    Ответить

    • Александр С.

      Ответить

    Андрей

    Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

    Андрей

    Ответить

    • Алексей Виноградов

      Ответить

    Ответить

    • Ответить

      • Андрей

        Ответить

        Александр С.

        Ответить

    • Алексей Виноградов

      Ответить

    Дмитрий

    Ответить

    • Алексей Виноградов

      Ответить

      Александр С.

      Ответить

      Александр С.

      Ответить

    Максим

    Ответить

    • Александр С.

      Ответить

    Александр

    Ответить

    • Александр С.

      Ответить

      • Александр

        Ответить

    Александр С.

    Ответить

    • Ответить

    Ответить

    • Александр С.

      Ответить

    Ответить

    • Александр С.

      Ответить

    Дмитрий

    Ответить

    Ответить

    • Александр С.

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Александр С.

    Ответить

    Ответить

    • Александр С.

      Ответить

    Ответить

    • Александр С.

      Ответить

    Ответить

    • Алексей Виноградов

      Ответить

      • Ответить

        • Алексей Виноградов

          Ответить

        • Александр С.

          Ответить

    толик дукалис

    Ответить

    Новичек

    Ответить

    • Александр С.

      Ответить

      • Новичек

        Ответить

    Ответить

    • Новичек

      Ответить

      • Ответить

        • Новичек

          Ответить

    Константин

    Ответить

    • Александр С.

      Ответить

    Ответить

    • Ответить

      • Александр С.

        Ответить

        • Ответить

          • Александр С.

        • Ответить

    Искандар

    Ответить

    Ответить

    Ответить

    Владимир

    Ответить

    • Александр С.

      Ответить

    Ответить

    Андрей

    Ответить

    Ответить

    Ответить

    • Алексей Виноградов

      Ответить

    Сергей

    Ответить

    Леонид

    Ответить

    • Алексей Виноградов

      Ответить

      • Леонид

        Ответить

        • Алексей Виноградов

          Ответить

    Виктор
    Сен 17, 2018

    Ответить

    • Виктор
      Сен 17, 2018

      Ответить

      • Александр С.
        Ноя 13, 2018

        Ответить

    Татьяна
    Янв 04, 2019

    Ответить

    Виктор
    Апр 19, 2019

    Ответить

    • Алексей Виноградов
      Апр 19, 2019

      Ответить

    A
    Июл 12, 2019

    Ответить

    вася
    Дек 15, 2019

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

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

    Ок -- возможно, вы слышали от какого-нибуть Unix-хакера фразу типа "господи, всё, что есть в Unix - файлы!" Этот человек, возможно, имел в виду, что программы в Unix при абсолютно любом вводе-выводе читают или пишут в файловый дескриптор. Дескриптор файла - это простое целое число, связанное операционной системой с открытым файлов. Но (и в этом заключается ловушка) файлом может быть и сетевое подключение, и FIFO, и пайпы, и терминал, и реальный файл на диске, и просто что угодно другое. Всё в UNIX - это файл! Итак, просто поверьте, что собираясь общаться с другой программой через интернет, вам придется делать это через дескриптор файла.

    "Эй, умник, а откуда мне взять этот дескриптор файла для работы в сети?" Отвечу.
    Вы совершаете системный вызов socket(). Он возвращает дескриптор сокета, и вы общаетесь через него с помощью системных вызовов send() и recv() (man send, man recv).

    "Но, эй!" могли бы вы воскликнуть. "Если это дескриптор файла, почему я не могу использовать простые функции read() и write(), чтобы общаться через него?". Ответ прост: "Вы можете!". Немного развернутый ответ: "Вы можете, но send() и recv() предлагают гораздо больший контроль над передачей ваших данных."

    Что дальше? Как насчет этого: бывают разные виды сокетов. Есть DARPA инернет-адреса (Сокеты интернет), CCITT X.25 адреса (X.25 сокеты, которые вам не нужны), и, вероятно, многие другие в зависимости от особенностей вашей ОС. Этот документ описывает только первые, Интернет-Сокеты.

    Два типа интернет-сокетов

    Что? Есть два типа интернет сокетов? Да. Ну ладно, нет, я вру. Есть больше, но я не хочу вас пугать. Есть ещё raw-сокеты, очень мощная штука, вам стоит взглянуть на них.

    Ну ладно. Какие два типа? Один из них - "потоковый сокет", второй - "сокет дейтаграмм", в дальнейшем они будут называться "SOCK_STREAM" и "SOCK_DGRAM" соответственно. Дейтаграммные сокеты иногда называют "сокетами без соединения" (хотя они могут и connect()`иться, если вам этого действительно захочется. См. connect() ниже.)

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

    Что использует потоковые сокеты? Ну, вы наверно слышали о программе Telnet, да? Телнет использует потоковый сокет. Все символы, которые вы печатаете, должны прибыть на другой конец в том же порядке, верно? Кроме того, браузеры используют протокол HTTP, который в свою очередь использует потоковые сокеты для получения страниц. Если вы зайдёте телнетом на любой сайт, на порт 80 и наберёте что-то вроде "GET / HTTP/1.0" и нажмете ввод два раза, на вас свалится куча HTML ;)

    Как потоковые сокеты достигают высокого уровня качества передачи данных? Они используют протокол под названием "The Transmission Control Protocol", иначе - "TCP". TCP гарантирует, что ваши данные передаются последовательно и без ошибок. Возможно, ранее вы слышали о TCP как о половине от "TCP/IP", где IP - это "Internet Protocol". IP имеет дело в первую очередь с маршрутизацей в Интернете и сам по себе не отвечает за целостность данных.

    Круто. А что насчёт дейтаграммных сокетов? Почему они называются без-соединительными? В чем тут дело? Почему они ненадежны?
    Ну, вот некоторые факты: если вы посылаете дейтаграмму, она может дойти. А может и не дойти. Но если уж приходит, то данные внутри пакета будут без ошибок.

    Дейтаграммные сокеты также используют IP для роутинга, но не используют TCP; они используют "User Datagram Protocol", или "UDP".

    Почему UDP не устанавливает соединения? Потому что вам не нужно держать открытое соединение с потоковыми сокетами. Вы просто строите пакет, формируете IP-заголовок с информацией о получателе, и посылаете пакет наружу. Устанавливать соединение нет необходимости. UDP как правило используется либо там, где стек TCP недоступен, либо там, где один-другой пропущеный пакет не приводит к концу света. Примеры приложений: TFTP (trivial file transfer protocol, младшый брат FTP), dhcpcd (DHCP клиент), сетевые игры, потоковое аудио, видео конференции и т.д.

    "Подождите минутку! TFTP и DHCPcd используются для передачи бинарных данных с одного хоста на другой! Данные не могут быть потеряны, если вы хотите нормально с ними работать! Что это за темная магия?"

    Нуу, мой человеческий друг, TFTP и подобные программы обычно строят свой собственный протокол поверх UDP. Например, TFTP протокол гласит, что для каждого принятого пакета получатель должен отправить обратно пакет, говорящий "я получил его!" ("ACK"-пакет). Если отправитель исходного пакета не получает ответ, скажем, в течение 5 секунд, он отправит пакет повторно, пока, наконец, не получит ACK. Подобные процедуры очень важны для реализации надёжных приложений, использующих SOCK_DGRAM.

    Для приложений, не требующих такой надёжности - игры, аудио или видео, вы просто игнорируете потерянные пакеты или, возможно, пытаетесь как-то их компенсировать. (Игроки в quake обычно называют это явление "проклятый лаг", и "проклятый" - это ещё крайне мягкое высказывание).

    Зачем вам может понадобиться использовать ненадежный базовый протокол? По двум причинам: скорость и скорость. Этот способ гораздо быстрее, выстрелил-и-забыл, чем постоянное слежение за тем, всё ли благополучно прибыло получателю. Если вы отправляете сообщение в чате, TCP великолепен, но если вы шлёте 40 позиционных обновлений персонажа в секунду, может быть, не так и важно, если один или два из них потеряются, и UDP тут будет неплохим выбором.

    Теория сетей и низкие уровни

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

    Эй, детишки, настало время поговорить об инкапсуляции данных! Это очень-очень важная вещь. Это настолько важно, что вам стоит выучить это наизусть.
    В основном суть такова: пакет родился; пакет завёрнут ("инкапсулирован") в заголовок первым протоколом (скажем, протоколом TFTP), затем всё это (включая хидер TFTP) инкапсулируется вновь следующим протоколом (скажем, UDP), затем снова - следующим (например, IP), и наконец финальным, физическим протоколом (скажем, Ethernet).

    Когда другой компьютер получает пакет, оборудование (сетевая карта) исключает Ethernet-заголовок (разворачивает пакет), ядро ОС исключает заголовки IP и UDP, программа TFTP исключает заголовок TFTP, и наконец мы получаем голые данные.

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

    Собственно, вот все уровни полномасштабной модели:


    • Прикладной

    • Представительский

    • Сеансовый

    • Транспортный

    • Сетевой

    • Канальный

    • Аппаратный (физический)

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

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


    • Уровень приложений (Telnet, FTP и т.д.)

    • Транспортный протокол хост-хост (TCP, UDP)

    • Интернет-уровень (IP и маршрутизация)

    • Уровень доступа к сети (Ethernet, Wi-Fi или что угодно)

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

    Видите, как много работы заключается в создании одного простого пакета? Офигеть! И все эти заголовки пакетов вы должны самостоятельно набирать в блокноте! Шучу. Всё, что вам нужно сделать в случае потоковых сокетов - это послать (send()) данные наружу. Ядро ОС построит TCP и IP хидеры, а оборудование возьмет на себя уровень доступа к сети. Ах, я люблю современные технологии.

    На этом наш краткий экскурс в теорию сетей завершен. Ах да, я забыл вам сказать: всё, что я хотел вам сказать о маршрутизации: ничего! Да-да, я ничего не буду говорить об этом. О таблице маршрутизации за вас позаботятся ОС и IP-протокол. Если вам действительно интересно, почитайте документацию в интернете, её море.

    Опубликовано: 03.02.2017

    Приветствую, друзья.

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

    Что такое сокеты ПК

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

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

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

    Выбор сокета

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

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

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

    Виды сокетов

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

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

    Сокеты Intel

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


    К современным сокетам Intel можно отнести:

    LGA 2011-3 - пришедшему на замену LGA 2011 . Поддерживает Кэш L3 в 20 Мб, до 8 ядер процессора и частоту оперативной памяти до 17000 МГц. Также стоит отметить наличие припоя под крышкой процессора, благодаря чему происходит намного более качественная теплоотдача на радиатор.

    LGA 1150 и более свежий 1151 - процессоры на данном сокете хоть и проигрывают сокету 2011-3, но все равно имеют хорошие показатели производительности. Процессоры на данном сокете подойдут даже для серьезных игровых ПК.

    LGA 2066 - должен прийти на замену сокету 2011-3 в 3 квартале 2017 года.

    Сокеты AMD


    Сокеты кампании AMD отличаются совместимостью среди смежных процессоров. Менее частый переход на новый сокет позволяет дольше обновлять процессор ПК без необходимости замены материнской платы. Благодаря этому обновление системы обходится намного дешевле. Однако и здесь есть обратная сторона. Новые технологии не так быстро доходят до компьютеров на процессорах от AMD. Например поддержка памяти типа DDR4 ожидается только в начале 2017 года. Процессоры AMD имеют 2 линейки сокетов:

    FM 2 / FM 2+ - данные сокеты были предназначены для работы с процессорами со встроенными графическими модулями. За счет отсутствия необходимости в видеокарте можно существенно удешевить стоимость ПК. Такие компьютеры не предназначены для игр или работы с тяжелой графикой, но их вполне хватает для слабых игр и решения прочих бытовых задач.

    AM 3 / AM 3+ - эти сокеты пришли на смену сокетам AM2/AM2+. Они предназначены для работы с мало и высоко производительными процессорами без графического ядра.

    AM 4 - новинка 2016 года. Данный сокет должен заменить собой сокеты AM3/AM3+ . На данный момент процессоров с таким сокетом в продаже нет, но вот-вот ожидается их появление.

    Таблица совместимости процессоров AMD

    Материнская плата
    AM2
    Материнская плата
    AM2+
    Материнская плата
    AM3
    Материнская плата
    AM3+
    Материнская плата
    FM1
    Материнская плата
    FM2
    Материнская плата
    FM2+
    Процессор AM2
    Процессор AM2+
    Процессор AM3
    Процессор AM3+
    Процессор FM1
    Процессор FM2
    Процессор FM2+

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

    Выбор сокета очень важен для правильной компановки компьютера. Для высокопроизводительных ПК стоит выбирать сокеты под современные процессоры Intel. Для среднего сегмента подойдут как Intel так и AMD сокеты. Все зависит от цены. Фавориты в этом сегменте могут со временем менятся. При сборке бюджетных ПК стоит уделить внимание компании AMD. Их процессоры и материнские платы дешевле и обновление их обойдется недорого.

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

    Что это

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

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


    Рассмотрим это на простом примере. Представим себе большой зал с множеством небольших окошек, за которыми стоят девушки. Есть и пустые окна, за которыми никого нет. Те самые окна - это порты. Там, где стоит девушка - это открытый порт, за которым стоит какое-то приложение, которое его прослушивает. То есть, если, вы подойдете к окошку с номером 9090, то вас поприветствуют и спросят, чем могут помочь. Так же и с сокетами. Создается приложение, которое прослушивает свой порт. Когда клиент устанавливает соединение с сервером на этом порту именно данное приложение будет ответственно за работу этим клиентом. Вы же не подойдете к одному окошку, а кричать вам будут из соседнего:)

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

    Сервер

    Сейчас создайте два файла - один для сервера, а другой для клиента.

    В Python для работы с сокетами используется модуль socket:

    Import socket

    Прежде всего нам необходимо создать сокет:

    Sock = socket.socket()

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

    Теперь нам нужно определится с хостом и портом для нашего сервера. Насчет хоста - мы оставим строку пустой, чтобы наш сервер был доступен для всех интерфейсов. А порт возьмем любой от нуля до 65535. Следует отметить, что в большинстве операционных систем прослушивание портов с номерами 0 - 1023 требует особых привилегий. Я выбрал порт 9090. Теперь свяжем наш сокет с данными хостом и портом с помощью метода bind, которому передается кортеж, первый элемент (или нулевой, если считать от нуля) которого - хост, а второй - порт:

    Sock.bind(("", 9090))

    Теперь у нас все готово, чтобы принимать соединения. С помощью метода listen мы запустим для данного сокета режим прослушивания. Метод принимает один аргумент - максимальное количество подключений в очереди. Напряжем нашу бурную фантазию и вспомним про зал с окошками. Так вот этот параметр определяет размер очереди. Если он установлен в единицу, а кто-то, явно лишний, пытается еще подстроится сзади, то его пошлют:) Установим его в единицу:

    Sock.listen(1)

    Ну вот, наконец-то, мы можем принять подключение с помощью метода accept, который возвращает кортеж с двумя элементами: новый сокет и адрес клиента. Именно этот сокет и будет использоваться для приема и посылке клиенту данных.

    Conn, addr = sock.accept()

    Вот и все. Теперь мы установили с клиентом связь и можем с ним «общаться». Т.к. мы не можем точно знать, что и в каких объемах клиент нам пошлет, то мы будем получать данные от него небольшими порциями. Чтобы получить данные нужно воспользоваться методом recv, который в качестве аргумента принимает количество байт для чтения. Мы будем читать порциями по 1024 байт (или 1 кб):

    While True: data = conn.recv(1024) if not data: break conn.send(data.upper())

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

    Теперь можно и закрыть соединение:

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

    #!/usr/bin/env python # -*- coding: utf-8 -*- import socket sock = socket.socket() sock.bind(("", 9090)) sock.listen(1) conn, addr = sock.accept() print "connected:", addr while True: data = conn.recv(1024) if not data: break conn.send(data.upper()) conn.close()

    Клиент

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

    #!/usr/bin/env python # -*- coding: utf-8 -*- import socket sock = socket.socket() sock.connect(("localhost", 9090)) sock.send("hello, world!") data = sock.recv(1024) sock.close() print data

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