- Протоколы для windows sockets
- Протоколы для windows sockets
- Понятие windows sockets приложения
- Список сокетов приложений в Windows
- Как посмотреть сокеты приложений у вас на компьютере
- Как изменить время жизни сокета
- Как узнать PID приложения
- Отсутствуют сетевые протоколы — ошибка Windows Sockets в Windows 10
- Отсутствуют сетевые протоколы Windows 10
- Сброс протокола TCP/IP и Winsock
- Отключение NetBIOS
- Программы, вызывающие ошибку с сетевыми протоколами Windows 10
- Другие способы исправить проблему
Протоколы для windows sockets
WinSock или Windows socket — это интерфейс программного программирования (API) созданный для реализации приложений в сети на основе протокола TCP/IP. То есть это просто группа функций . Для работы используется WSOCK32.DLL.
Практически это интерфейс к протоколу TCP/IP.
При взаимодействии клиент — сервер в сети каждого участника взаимодействия можно рассматривать как конечную точку. Сокет это вроде как и есть эта конечная точка. В приложении Вы определяете сокет. И хоть программирование сокетов в UNIX и Windows похоже, мы с Вами будем рассматривать именно Windows socket.
Незнаю интересно это или нет, но Windows socket разрабатывался на основе интерфейса Беркли для UNIX, но к ним добавлены функции поддержки событий Windows.
Есть две версии WinSock
- WinSock 1.1 — поддержка только TCP/IP
- WinSock 2.0 — Поддерка дополнительного программного обеспечения
Спецификация WinSock разделяет функции на три типа:
- Функции Беркли
- Информационные функции (получение информации о наименовании доменов, службах, протоколах Internet)
- Расширения Windows для функций Беркли
Все функции могут быть блокирующие и неблокирующие. Обычно блокирующие это функции Беркли. То есть при работе такой функции нельзя выполнять другие функции WinSock.
Давайте расмотрим как производится подключение к серверу. Сначала программа подключается к адресу IP с созданием сокета. Программа будет ждать подключения. Для подключения программа клиент тоже создает сокет и пытается подключиться к сокету сервера. Но сервер не спит . Только он увидит попытку подключения он создаст новый сокет. И этот новый сокет будет использоваться для взаимодействия с клиентом. А тот, к которому была попытка подключения будет ждать следующего. На этой основе производится взаимодействие сервера и многими программами.
Сам сокет может быть создан на основе:
- TCP (transport control protocol) — надежное соединение
- UDP (user datagram protocol) — ненадежное соединения
Протоколы для windows sockets
Добрый день, уважаемые посетители и читатели блога, недавно я на одном из форумов наткнулся на дискуссию, на тему того, что такое сокеты windows и как их посмотреть и подумал, что это неплохая тема для статьи. Подумал и написал :)). Думаю эта заметка будет полезна начинающим системным администраторам, в понимании того, как на транспортном уровне модели OSI найти проблему или проверить доступность приложения по номеру порта, хочу отметить, что эти знания фундаментальные, и их понимание заложит в вас отличную базу, для дальнейшей работы, на любом предприятии.
Понятие windows sockets приложения
Что такое сокет — это по сути область оперативной памяти, в которой на определенном сетевом порту (TCP/UDP) работает приложение, и именно оно прослушивает нужный порт. Какая задача стояла перед программистами, задача простая переместить информацию из оперативной памяти одного компьютера, в оперативную память другого компьютера. Дальше это может быть представлено как:
Номер сокета Windows, это номер ячейки оперативной памяти к которому привязано приложение. Приложение привязавшись к некой области оперативной памяти начинает туда писать данные и сокет из этой области памяти начинает мелкими пакетами по 65 кбайт, начинает передавать в сеть на другое устройство. На другой стороне эти кусочки, так же помещаются в ОЗУ, желательно в той же последовательности, и сокет с той стороны начинает их разбирать, и представлять пользователю из какого то приложения.
Список сокетов приложений в Windows
У меня стоит операционная систем Windows 8.1, показывать я буду все на ней, в прошлый раз мы кстати в ней лечили баг, что был не найден run vbs. Для того, чтобы посмотреть какие сокеты соответствуют каким приложениям и каким TCP/UDP портам, вы должны перейти в директорию
и отыскать там файл services, он будет без расширения, но его можно открыть правой кнопкой мыши через обычный блокнот, у меня это будет notepad++.
Открыв данный файл вы увидите название службы (приложения) номер сокета (TCP/UDP) и описание. Для примера видно, что сервер ftp работает по портам 20 и 21. По сути тут системе и задаются стандарты по которым должны работать службы.
Как посмотреть сокеты приложений у вас на компьютере
Тут два метода которыми я пользуюсь. Представим себе ситуацию, что вы установили некое приложение, все работает пытаетесь на него попасть с другого компьютера по сети, но не можете. Отключаете брандмауэр на том компьютере, и все начинает работать, вывод блокируется какой то порт этого приложения. Его вычислить поможет нам две утилиты, первая из командной строки, а вторая имеет удобный графический интерфейс.
Более подробно про утилиту netstat и ее использование читайте по ссылке. В итоге вы получите сводную таблицу, в которой будет вот, что интересно:
- Тип протокола — TCP или UDP
- Адрес отправителя с указанием портов
- Адрес получателя с указанием портов
- Состояние — либо слушает либо установил соединение и закрыто
- PID это номер идентифицирующий приложение
Как видите в примере у меня много сессий по 443 и 80 порту по сути это браузер Google Chrome.
Приложение заняв сокет, уже не позволит на нем же открыться другому приложению, Сокет живет минут 10.
Как изменить время жизни сокета
Для того, чтобы в операционной системе Windows изменить TTL или как его еще называют время жизни сокета, вам необходимо воспользоваться реестром. Открываете редактор реестра Windows 8.1. Переходите в раздел
Там есть ключ TcpTimedWaitDelay, если его нет то нужно его создать. Укажите нужное вам десятичное значение. TcpTimedWaitDelay — Этот параметр определяет интервал времени, в течение которого подключение находится в состоянии TIME_WAIT, прежде чем будет закрыто. Пока подключение находится в состоянии TIME_WAIT, пара сокетов не может быть использована повторно (это т. н. «состояние 2MSL»). Согласно документу RFC793, данное значение должно в два раза превышать максимальное время жизни пакета в сети.
Как узнать PID приложения
Для того, чтобы узнать PID приложения в Windows, вам нужно в области пуск кликнуть правой кнопкой мыши и из контекстного меню выбрать Диспетчер задач
В диспетчере задач, найдите поле ИД процесса .если его не будет то добавьте.
Теперь давайте смотреть, в правой части я вижу приложение skype и оно имеет PID 4352, смотрим в левой части экрана и видим порты и Ip адрес, которые слушает данной приложение.
Ну и еще есть утилита TCPView, про нее я уже отдельно писал. Утилита бесплатная и имеет графический интерфейс, запустив ее вы сразу видите кому какой PID принадлежит. Так же видно все сокеты и их состояния.
Думаю, у вас теперь не должно быть вопроса, что такое сокеты windows и как их посмотреть, всем спасибо за прочтение.
Отсутствуют сетевые протоколы — ошибка Windows Sockets в Windows 10
У коллеги на домашнем компьютере с Windows 10 стал периодически (раз в 2-3 дня) пропадать доступ в интернет (статус “Ограничено” у подключения), а при запуске мастера диагностики сетей Windows (запускается при щелчке мыши по значку с ошибкой сетевого подключения или через Параметры -> Обновление и безопасность -> Устранение неполадок -> Запустить средство устранения неполадок подключения к Интернету) появляется характерная ошибка:
В реестре отсутствуют записи для Windows Sockets, необходимые для связи по сети.
Windows Sockets registry entries required for network connectivity are missing.
Коллега обычно решал проблему перезагрузкой Windows и роутера, после чего подключение в интернет работало какое-то время, но через день-два проблема повторялась. Недавно он попросил меня попробовать исправить ошибку с отсутствующими сетевыми протоколами. Вот что получилось у меня.
При такой плавающей проблеме обычно рекомендуется начать с самого простого — сбросить текущие настройки TCP/IP и Windows Sockets. Если у вас на компьютере IP адрес настроен вручную, а не через DHCP, следующие команды сбросят ваши сетевые настройки. Поэтому предварительно нужно записать текущие настройки IP адреса, маски, шлюза и DNS серверов для ваших сетевых подключений.
netsh winsock reset
netsh interface ipv4 reset
Данные команды сбросят настройки протокола TCP/IP для всех сетевых адаптеров и все обработчики (Winsock Layered Service Providers) к начальному, чистому состоянию. В результате вы удалите все сторонние обработчики, которые были встроены в ваш стек Winsock сторонними программами. Чаще всего в стек Winsock встраивают свои библиотеки-обработчики антивирусы, сниферы, файерволами и даже некоторые вирусы :).
После выполнения всех команду нужно перезагрузить компьютер и проверить интернет-подключение.
Если проблема не решилась, нужно через реестр удалить текущие настройки Windows Sockets.
- Откройте редактор реестра и перейдите к ключу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock. Создайте резервную копию ветки реестра, экспортировав ее в reg файл (ПКМ -> Export);
- Удалите ветку (ПКМ -> Delete);
- Выполните эти же действия для ветки HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock2;
После этого вам нужно вручную переустановить компоненты протокола TCP/IP.
- В панели управления сетевыми подключениями (ncpa.cpl) откройте свойства вашего сетевого адаптера и нажмите кнопку Install;
- Выберите Protocol в списке компонентов для установки (Select Network Feature Type);
- Затем выберите, что вы хотите установить компонент с диска и укажите путь к каталогу C:\Windows\INF ;
- В списоке переустанавливаемых сетевых протоколов выберите Internet Protocol version 4 (TCP/IPv4) и перезагрузите компьютер.
.
Чтобы исправить ошибку нужно вручную импортировать с другого компьютера с той же версий ОС и применить на проблемном ПК следующие ветки реестра: HKLM\SYSTEM\CurrentControlSet\Services\Winsock и HKLM\SYSTEM\CurrentControlSet\Services\Winsock2.
Можете скачать готовые файлы для чистой Windows 10 x64 LTSC по ссылкам ниже:
После импорта reg файлов нужно перезагрузить компьютер и попробовать еще раз переустановить протокол TCP/IP (в самом крайнем случаем воспользуютесь своими ветками ресстра winsock, сохранными ранее, но лучше использовать чистые).
Теперь в свойствах вашего сетевого подключений проверьте, что он настроен на получение динамического IP адреса и настроек DNS серверов, либо укажите IP адрес и DNS сервера вручную (в моем случае после сброса статические настройки IP просто очистились ). Для домашнего компьютера можно указать использовать следующие статические адреса DNS серверов Google: 8.8.8.8 и 8.8.4.4.
Здесь же нажмите на кнопку Advanced и на вкладке WINS отключите просмотр LMHOSTS и NetBIOS через TCP/IP. Эти сетевые ротоколы являются устаревшими и не нужны в современных сетях .
После этого проблема с периодическим отключением интернета с ошибкой “отсутствуют один или несколько сетевых протоколов” в Windows 10 исчезла. Если вам и это не помогло, я бы попробовал дополнительно переустановить (обновить) драйвера ваших сетевых адаптеров. Возможно проблема еще и с ними.
Отсутствуют сетевые протоколы Windows 10
Если при попытке диагностики неполадок при неработающем Интернете или локальной сети в Windows 10 вы получаете сообщение о том, что на этом компьютере отсутствуют один или несколько сетевых протоколов, в инструкции ниже предлагается несколько способов исправить проблему, один из которых, надеюсь вам поможет.
Однако, прежде чем начать, рекомендую отключить и подключить заново кабель к сетевой карте ПК и (или) к роутеру (в том числе проделать то же самое с кабелем WAN к роутеру, если у вас подключение по Wi-Fi), так как случается, что проблема «отсутствуют сетевые протоколы» вызвана именно плохим подключением сетевого кабеля.
Примечание: если у вас есть подозрение, что проблема появилась после автоматической установки обновлений драйверов сетевой карты или беспроводного адаптера, то обратите внимание также на статьи Не работает Интернет в Windows 10 и Соединение Wi-Fi не работает или ограничено в Windows 10.
Сброс протокола TCP/IP и Winsock
Первое, что стоит попробовать если диагностика неполадок сети пишет, что один или несколько сетевых протоколов Windows 10 отсутствуют — выполнить сброс WinSock и протокола TCP/IP.
Сделать это просто: запустите командную строку от имени администратора (правый клик мышью по кнопке «Пуск», выбрать нужный пункт меню) и по порядку введите следующие две команды (нажимая Enter после каждой):
После выполнения этих команд перезагрузите компьютер и проверьте, была ли решена проблема: с большой вероятностью проблем с отсутствующим сетевым протоколом не возникнет.
Если при выполнении первой из указанных команд вы увидите сообщение о том, что вам отказано в доступе, то откройте редактор реестра (клавиши Win+R, ввести regedit), перейдите к разделу (папке слева) HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Nsi\
Отключение NetBIOS
Еще один способ исправить проблему с подключением и Интернетом в данной ситуации, срабатывающий для некоторых пользователей Windows 10 — отключение NetBIOS для сетевого подключения.
Попробуйте по шагам выполнить следующее:
- Нажмите клавиши Win+R на клавиатуре (клавиша Win — та, что с эмблемой Windows) и введите ncpa.cpl после чего нажмите Ок или Enter.
- Кликните правой кнопкой мыши по вашему Интернет-подключению (по локальной сети или Wi-Fi), выберите пункт «Свойства».
- В списке протоколов выберите IP версии 4 (TCP/IPv4) и нажмите кнопку «Свойства» ниже (заодно, кстати, посмотрите, включен ли этот протокол, должен быть включен).
- Внизу окна свойств нажмите «Дополнительно».
- Откройте вкладку WINS и установите «Отключить NetBIOS через TCP/IP».
Примените сделанные настройки и перезагрузите компьютер, а затем проверьте, заработало ли подключение так, как нужно.
Программы, вызывающие ошибку с сетевыми протоколами Windows 10
Подобные проблемы с Интернетом могут вызывать и сторонние программы, устанавливаемые на компьютер или ноутбук и какими-либо хитрыми способами использующие сетевые подключения (мосты, создание виртуальных сетевых устройств и т.д.).
Среди замеченных в вызывающих описываемую проблему — LG Smart Share, но это могут быть и другие похожие программы, а также виртуальные машины, эмуляторы Android и подобного рода ПО. Так же, если в последнее время в Windows 10 что-то менялось в части антивируса или фаервола, это тоже могло вызывать проблему, проверьте.
Другие способы исправить проблему
Прежде всего, если проблема у вас возникла внезапно (т.е. ранее все работало, а систему вы не переустанавливали), возможно, вам смогут помочь точки восстановления Windows 10.
В остальных же случаях чаще всего причиной проблемы с сетевыми протоколами (если вышеописанные методы не помогли) являются не те драйвера на сетевой адаптер (Ethernet или Wi-Fi). При этом в диспетчере устройств вы все так же будете видеть, что «устройство работает нормально», а драйвер не нуждается в обновлении.
Как правило, помогает либо откат драйвера (в диспетчере устройств — правый клик по устройству — свойства, кнопка «откатить» на вкладке «драйвер», либо принудительная установка «старого» официального драйвера производителя ноутбука или материнской платы компьютера. Подробные шаги описаны в двух руководствах, которые упомянуты в начале этой статьи.
А вдруг и это будет интересно:
Почему бы не подписаться?
Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)
04.05.2016 в 18:03
Что-то последнее время вижу кучу статей: Если Windows 10 + проблема
И не только на вашем сайте. Во времена Win 7 кажется такого не было. Это только мне кажется или таковую тенденцию вы тоже заметили?
05.05.2016 в 08:47
Ну просто у моего сайта специфика такая — он именно о проблемах (а всякие обзорчики я пишу, когда не могу найти новых проблем). Так же думаю и у многих других.
А так по проблемности 10-ки… в общем-то не особо больше чем в предыдущих версиях ОС таких проблем.
За исключением трех очень распространенных штук: 1) Windows 10 настойчиво обновляет драйвера, которые не нужно обновлять, что вызывает у пользователей проблемы, особенно на ноутбуках. Решаемо. 2) Несколько странно работает сеть (TCP/IP), причем у многих (при отсутствии явных проблем с настройкой или драйверами). 3) Сбои приложений Windows 10 Store и меню пуск, приложения «Параметры».
17.09.2016 в 00:29
Windows 10, очень любит обновление. Зачем так часто проводить обновление?
17.09.2016 в 08:15
Для исправления найденных проблем, недочетов, усовершенствования безопасности системы.
15.05.2016 в 02:43
Большое Вам спасибо!
После обновления до Windows 10 диагностика неполадок сети выдала, что один или несколько сетевых протоколов Windows 10 отсутствуют.
Для такого чайника как я это темный лес
Проблему решили Ваши рекомендации выполнить сброс WinSock и протокола TCP/IP.
11.06.2016 в 01:02
Система не подключалась к интернету- писала об отсутствии протоколов. После сброса winsock , TCP/IP и interface ipv4 подключение происходит, но страницы браузера не отображаются. Сбросить interface ipv6 не дает, пишет — «Сброс- сбой. Отказано в доступе. Заданные пользователем параметры для сброса отсутствуют.»
11.06.2016 в 06:56
Возможно, ваш провайдер какие-то дополнительные параметры требует для подключения? Также иногда помогает отключение протокола IPv6 в свойствах подключения. Плюс, если вы только что обновились до 10-ки, при этом при обновлении у вас уже был установлен антивирус (т.е. переехал в новую систему), это также может вызывать подобные проблемы — можно попробовать удалить, проверить, установить заново.
13.06.2016 в 15:47
Проблема проявилась после обновления до Win 10. Действия по сбросу адаптера и отключению NetBIOS прошли успешно, но проблема опять вылезает при перезапуске. При включении/выключении компьютера проблема не проявляется. Странно это.
14.06.2016 в 07:39
Сам факт странен, да (и посоветовать не могу придумать что). А то что появляется только при перезапуске — не странен. Просто у вас включен быстрый запуск, предполагаю, а когда он включен — это своего рода гиберанция, а не выключение (т.е. фактического перезапуска системы не происходит)
29.06.2016 в 14:08
отличная помощь начинающим спасибо за этот сайт вы лучшие
29.06.2016 в 16:39
Спасибо за информацию, все просто и доступно для чайников. обязательно подпишусь.
29.07.2016 в 17:58
Что первый пункт, что второй — не помог
Раньше была Вин7 и всё было норм. Вчера поставил Вин10, начисто её установив и теперь мучаюсь с этой проблемой. Странно, что на компьютере в другой комнате тоже обновлялся до Вин10 и никаких проблем с инетом не было, а у меня такое.
06.08.2016 в 23:30
Спасибо вам! при втором способе интернет заработал сразу!
09.10.2016 в 14:37
Ничего не помогло. И у меня на свойствах подключения отсутствует вкладка WINS. Не знаю что делать. Снесу десятку, поставлю семерку про, видимо. Задрала.
22.10.2016 в 07:41
У меня сейчас вообще интересная странность.
Включил Hyper V попробовать (раз уж включили в поставку). Не очень понравилось, отключил и началось….
Компьютер не видит сеть по NETbios.
При чем ipconfig /all выдает, что: «NetBios через TCP/IP : Отключен»
А по факту галочка стоит, служба NetBios через TCP/IP включена.
Что только не делал, ни черта не помогает.
22.10.2016 в 07:48
А подключения виртуального адаптера остались?
Win+R — ncpa.cpl
Потом удалить интернет-подключение из моста, сетевой мост удалить. Не уверен точно, что в этом дело, это так, навскидку.
06.11.2016 в 16:13
Когда я сбрасываю TCP/IP и WinSock, разрешая полный доступ разделу 26 и перезагружаю комп у меня сбрасывается разрешение полного доступа, помогите пожалуйста.
07.11.2016 в 08:36
Попробуйте сбросить вот так, не меняя настроек доступа: https://remontka.pro/reset-network-windows-10/
07.11.2016 в 14:18
День добрый!
Вопрос следующий — как подружить FeedDemon и Windows 10?
В браузере всё настроено, приложение для фидов установлено. Но мне кажется что проблема именно в 10-ке. В настройках (win+i), там где «Выбор стандартных приложений для протоколов» нет такого пункта! т.е. присутствует FTP (URL:File transfer Protocol), HTTP (URL:), HTTPS (URL:), MAILTO и т.п.
Я к чему это всё веду, вот в 7-ке была такая возможность — при нажатии на ссылку вида: сразу запускался FeedDemon
Есть какие-то мысли по поводу?
Спасибо, очень интересно пишете.
08.11.2016 в 09:57
Четких рецептов нет, но идея одна есть: отыскать в реестре, как и где существующие протоколы прописываются, а потом попробовать сделать аналогичным образом. Причем для простоты и уменьшения количества результатов поиска можно для начала ассоциировать, например, mailto с какой-то не встречающейся больше в реестре программой, а потом выполнить поиск по имени этой программы.
Сам проверить сейчас не могу, но надеюсь идея ясна.
04.12.2016 в 12:36
Чудо чудное, диво дивное, 3 дня ковырял комп, лопатил нет, пока не наткнулся на эту статью, спасибо, помог 1й пункт, с 1го раза, теперь все чудненько открывается, обновляется!
04.12.2016 в 15:36
Мдаа,рано радовался, после некоторого времени работы, снова все возвращается на круги своя… попробовал с отключением биос — работал дольше, но потом снова перестал, опять 1 м способом попробовал — эффекта нет…
05.12.2016 в 09:58
А не может быть такого, что Windows 10 вас сама какие-то сетевые драйверы обновляет? Тогда можно запретить обновление драйверов сетевой, см. https://remontka.pro/disable-driver-auto-update-windows-10/ Или еще как вариант какой-то антивирус это вытворяет?
05.12.2016 в 19:45
Сдался, короче, неделю пытался наладить нормальную работу 10-ки, то одно, то другое, то дрова не те, то уголь отсырел, снес, поставил 7ку, успокоился… P.S а так 10-ка понравилась,только жидкая на мой взгляд она какая то…
29.03.2017 в 22:08
Спасибо вам за советы и поклон до земли! Справилась с проблемой без сервиса!
02.02.2019 в 16:32
Добрый день! Подскажите пожалуйста. На 10-ке не могу подключить сетевой диск, пишет нужен какой-то smb2. На семерке все отлично, и даже на Маке подключается.
02.02.2019 в 16:49
Попробуйте в powershell от администратора команду
она включает этот протокол. а вообще помог бы точный текст сообщения.
02.08.2019 в 13:46
Добрый день! На одном из компьютеров Windows 10 после перезагрузки перестала запускаться служба «Рабочая станция» и он перестал видеть все компьютеры в сетевом окружении. В сети присутствуют только компьютеры Windows 10 и один Windows 2008 сервер. На проблемном компьютере изменил строку параметра DependOnService в реестре. Из строки «Bowser MRxSmb10 MRxSmb20 NSI» удалил «MRxSmb10». Стало «Bowser MRxSmb20 NSI» как на всех остальных компьютерах в сети. После этого он стал видеть только Windows 2008 сервер. Как теперь сделать, чтобы он увидел остальные компьютеры, которые под Windows 10?
15.08.2019 в 02:47
Доброго времени суток!
Проблема с протоколами не решается никак…есть предположение, что виной всему VPN
Раз в сутки, а то и больше «выскакивают» протоколы
Помогают численные перезагрузки, либо выключение компьютера на длительное время.
Возможно ли еще как то решить эту проблему? Учитывая постоянное использование VPN (нужен для работы)
15.08.2019 в 09:47
Здравствуйте.
В теории, VPN может быть причиной, да. Особенно если используется не самонастроенный, а какое-то ПО стороннее для этого. Что посоветовать? Поэкспериментировать с другими вариантами (а для начала удостовериться, что без VPN проблема не появляется).
23.10.2019 в 20:17
Спасибо большое за совет, первое же рекомендованное действие помогло решить проблему