- Windows sockets win 10
- Понятие windows sockets приложения
- Список сокетов приложений в Windows
- Как посмотреть сокеты приложений у вас на компьютере
- Как изменить время жизни сокета
- Как узнать PID приложения
- Отсутствуют сетевые протоколы — ошибка Windows Sockets в Windows 10
- What’s New for Windows Sockets
- Updated for Windows 8.1 and Windows Server 2012 R2
- Updated for Windows Phone 8
- Updated for Windows 8 and Windows Server 2012
- Updated for Windows 7 and Windows Server 2008 R2
- Updated for Windows Server 2008 and Windows Vista with Service Pack 1 (SP1)
- Updated for Windows Server 2008
- Updated for Windows Vista
- Updated for April 2005
- Updated for Windows Server 2003
Windows sockets win 10
Добрый день, уважаемые посетители и читатели блога, недавно я на одном из форумов наткнулся на дискуссию, на тему того, что такое сокеты 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 исчезла. Если вам и это не помогло, я бы попробовал дополнительно переустановить (обновить) драйвера ваших сетевых адаптеров. Возможно проблема еще и с ними.
What’s New for Windows Sockets
Updated for Windows 8.1 and Windows Server 2012 R2
The following functions are supported for Windows Store apps on WindowsВ 8.1, Windows ServerВ 2012В R2, and later. Microsoft Visual StudioВ 2013 UpdateВ 3 or later is required for Windows Store apps.
Updated for Windows Phone 8
The following functions are supported for Windows Phone Store apps on WindowsВ PhoneВ 8 and later.
Updated for Windows 8 and Windows Server 2012
Microsoft WindowsВ 8 and Windows ServerВ 2012 introduce new Windows Sockets programming elements.
A set of high-speed networking extensions are available for increased networking performance with lower latency and jitter. These extensions targeted primarily for server applications use pre-registered data buffers and completion queues to increase performance.
The following are new Windows Sockets functions added to support Winsock high-speed networking Registered I/O extensions:
The following are new Windows Sockets enumerations, structures, and typedefs added to support Winsock high-speed networking Registered I/O extensions:
A set of enhancements for asynchronous naming support are available.
The following are new Windows Sockets functions added to support asynchronous naming requests:
The following existing Winsock functions have been revised to support asynchronous naming requests:
A set of enhancements to add support for Internationalized Domain Name (IDN) parsing are available.
The following existing Winsock functions have been revised to support IDN parsing:
An enhancement for naming support in Winsock to support requesting both a canonical name and a fully qualified domain name are available.
The following existing Winsock function has been revised to support requesting both a canonical name and a fully qualified domain name:
The following new Winsock structure has been added to support requesting both a canonical name and a fully qualified domain name:
The following new Windows Sockets function has been added to retrieve the local host name in Unicode:
The following are new Windows Sockets Ioctls added to support the Windows Filtering Platform (WFP) redirect service:
The following are new Windows IP socket options added to support the Windows Filtering Platform (WFP) redirect service:
The following are a new Windows Sockets Ioctl and an associated structure added to control the initial (SYN / SYN+ACK) retransmission characteristics of a TCP socket:
The following are a new Windows Sockets Ioctl and an associated structure added to retrieve the association between a socket and an RSS processor core and NUMA node:
The following new Windows Sockets Ioctls are added to apply and query transport settings on a socket:
The only transport setting currently defines is for the REAL_TIME_NOTIFICATION_CAPABILITY capability on a TCP socket. The following new structures and enumerations are added to support the REAL_TIME_NOTIFICATION_CAPABILITY:
The following new Windows Sockets Ioctl is added to enable a fast path for loopback on a TCP socket. This feature can lower latency and improve performance for applications that use TCP loopback (applications used by the financial service industry, for example).:
An enhancement to support transferring streaming media that require quality of service (Voice over IP, for example).
The following new Windows Sockets function supports transferring streaming media that require quality of service:
The SetSocketMediaStreamingMode function is also supported for Windows Store apps on WindowsВ 8, Windows ServerВ 2012, and later.
A set of inline functions defined in the Winsock2.h header file for converting a float or an unsigned __int64 between host byte order and network byte order.
Updated for Windows 7 and Windows Server 2008 R2
Microsoft WindowsВ 7 and Windows ServerВ 2008В R2 introduce new Windows Sockets programming elements.
The following existing Windows Sockets functions were enhanced to support additional options:
The following are new Windows Sockets options:
Dynamic send buffering for TCP was added on WindowsВ 7 and Windows ServerВ 2008В R2. As a result, the use of the SIO_IDEAL_SEND_BACKLOG_CHANGE and SIO_IDEAL_SEND_BACKLOG_QUERY IOCTLs are needed only in special circumstances. For more information, see SIO_IDEAL_SEND_BACKLOG_QUERY.
Updated for Windows Server 2008 and Windows Vista with Service Pack 1 (SP1)
Microsoft Windows ServerВ 2008 and WindowsВ Vista with Service PackВ 1 (SP1) introduce new Windows Sockets programming elements.
The following are new Windows Sockets Ioctls:
These new Ioctls can be used by an application using TCP to determine the ideal value for the amount of data outstanding to send in order to achieve the best throughput for a connection. This is called the ideal send backlog (ISB) size.
Updated for Windows Server 2008
Microsoft Windows ServerВ 2008 introduce new Windows Sockets programming elements.
The following are new Windows Sockets options:
Updated for Windows Vista
Microsoft WindowsВ Vista introduces new Windows Sockets programming elements. These elements extend the capability of Winsock to simplify programming and provide IPv6 compatibility. For more information about porting Winsock applications to IPv6, see IPv6 Guide for Windows Sockets Applications.
Windows sockets tracing is a new feature supported on WindowsВ Vista and Windows ServerВ 2008. This feature can be enabled in retail binaries to trace certain socket events with minimal overhead. For more information, see Winsock Tracing.
The following are new Windows Sockets functions:
The following are new Windows Sockets structures and enumerations:
MicrosoftВ WindowsВ Vista introduces new Windows Sockets SPI functions to provide the ability to categorize applications for a layered service providers. New functions are also added for namespace providers.
The following are new Windows Sockets SPI functions:
The following are new Windows Sockets SPI structures:
MicrosoftВ WindowsВ Vista introduces new Windows Sockets programming elements.
The following are new Windows Sockets Ioctls:
The following are new Windows Sockets options:
Updated for April 2005
The following functions have been added to the Windows Sockets SPI (ws2spi.h) to support 32-bit processes and catalogs on 64-bit platforms:
Updated for Windows Server 2003
Microsoft Windows ServerВ 2003 introduces new Windows Sockets programming elements. These elements extend the capability of Winsock to simplify programming and provide IPv6 compatibility. For more information about porting Winsock applications to IPv6, see IPv6 Guide for Windows Sockets Applications.
The following are new Windows Sockets functions:
The following are new Windows Sockets structure definitions: