WinSock – это интерфейс, предназначенный для упрощения процесса программирования сетевых приложений для Windows. Обычному пользователю ни к чему углубляться в детали — будет достаточно знания о том, что WinSock представляет собой набор функций, обеспечивающих связь между транспортным протоколом, который выполняет передачу данных, и самим приложением. Во время взаимодействия между клиентом и сервером в сети каждого участника этого взаимодействия можно рассматривать как конечную точку. Конечные точки взаимодействия и определяются сокетами.
Сброс WinSock при неполадках в работе сети
Иногда настройки WinSock повреждаются – произойти это может как в результате деятельности вредоносных программ, так и вследствие экспериментов пользователя с настройкой сетевой карты, а также из-за излишне агрессивных действий антивирусов. Сбой настроек WinSock приводит к нарушению работы сетевых компонентов системы. Основная проблема, возникающая в такой ситуации – невозможность подключения к сети или прекращение ее работы.
Эту проблему можно обнаружить, проанализировав компьютер на предмет наличия следующих «симптомов»:
— Сеть работает при ручных настройках, однако автоматическое получение компьютером ip-адреса становится невозможным, при том, что служба DHCP-клиент включена.
— При включенной службе DNS-клиент пинг проходит только по адресам, но не по именам.
— При попытке пинга какого-либо IP-адреса из командной строки ответное сообщение системы содержит после слов «Обман пакетами с…» различные символы – такие, как геометрические фигуры и т. п.
— Получение компьютером адреса из пространства APIPA (169.254.*.*) происходит не после ожидания, а почти сразу же после включения сети.
— Настройки сети доступны не полностью – например, компьютер получает только адрес шлюза.
— Большая часть сетевых служб останавливается сразу после начала работы.
— Все созданные пользователем сетевые подключения исчезают.
Все эти неполадки свидетельствуют о повреждении тех разделов реестра, в которых сохранена конфигурация WinSock. Решить эту проблему можно при помощи командной строки. Для этого нажмите кнопку «Пуск» и введите в поле поиска сочетание букв cmd. Щелкните правой кнопкой мыши по появившемуся файлу cmd.exe и выберите пункт «Запуск от имени администратора», затем нажмите «Продолжить». В открывшемся окне командной строки следует ввести команду «netsh winsock reset» и нажать Enter, после чего перезагрузить компьютер.
Команда «netsh winsock reset» предназначена для выполнения сразу нескольких полезных функций. Она предотвращает как отправку пакетов от чужого имени, так и отказы в обслуживании, ограничивая возможности передачи данных с помощью сокетов. Также эта команда ограничивает частоту создания сетевых подключений, но не их общее количество – соединений может быть сколь угодно много, но они не могут быть установлены одновременно. При превышении заданного лимита разрешенных подключений все последующие оказываются в очереди, после чего устанавливаются с разрешенной частотой. Еще одна очень полезная функция этой программы заключается в том, что она снижает риск массового заражения компьютеров вирусами через сеть, замедляя скорость распространения вредоносных программ.
Восстановление WinSock после удаления LSP
Одна из основных функций WinSock – обработка данных, которые передаются по сетевому протоколу TCP/IP. В ходе этого процесса информация по цепочке передается через все установленные на компьютере модули LSP, которые могут как модифицировать принятые данные, так и отменить запрос. Технология LSP используется для антивирусной защиты, фильтрации контента и подсчета трафика. Если удаление одного из модулей LSP было произведено некорректно, дальнейшая передача данных по протоколу TCP/IP становится невозможна, поскольку нарушается процесс обработки информации. Подобные ситуации возникают зачастую в результате внедрения вредоносных программ, предназначенных для перехвата данных, в WinSock. Когда антивирус удаляет эту программу, цепочка передачи данных нарушается, и пользователь оказывается перед неприятной дилеммой: либо потерять соединение с сетью Интернет, либо восстанавливать вредоносное приложение, которое только что было удалено.
Однако во многих случаях корректное удаление модулей LSP уже не является необходимым благодаря тому, что цепочка передачи данных WinSock восстанавливается автоматически. Помимо этого, появились новые команды, предназначенные для использования в утилите командной строки Netsh.
— Первая команда: «netsh winsock show catalog» — позволяет отобразить список всех модулей LSP WinSock, установленных на компьютере.
— Вторая команда: «netsh winsock reset catalog» — обнуляет все пользовательские настройки и восстанавливает исходную конфигурацию LSP WinSock
Как переустановить сетевой протокол TCP/IP
Если сетевой протокол TCP/IP находится в составе какой-либо сборки Windows, при ее инсталляции он может установиться неправильно. В таком случае нет иного выхода, кроме переустановки протокола. В первую очередь, для переустановки необходимо запустить regedit – делается это через меню «Пуск» — так же, как было описано выше, в примере с cmd.exe. В реестре нужно найти и удалить 2 ключа, что не должно вызвать особых проблем, за исключением возможного изменения прав доступа:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WinSock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WinSock2\
Второй шаг: в папке windows\inf находится файл Nettcpip.inf. В этом файле необходимо найти раздел под названием [MS_TCPIP.PrimaryInstall], и в этом разделе – запись «Characteristics = 0xa0». В данном случае 0xa0 нужно заменить на 0x80. Если при попытке сохранить файл система выдаст сообщение «Отказано в доступе», следует сохранить измененный файл в другое место, а затем удалить исходный файл (для этого потребуются права администратора) и переместить отредактированный на его место.
Далее в разделе «Сетевые подключения» на Панели управления нужно щелкнуть правой кнопкой мыши «Подключение по локальной сети» и выбрать пункт «Свойства», где на вкладке «Общие» последовательно нажать «Установить», «Протокол» и «Добавить». Появится окно под названием «Выбор сетевых протоколов», в котором нужно будет отметить пункт «Установить с диска», а в следующем окне «Копировать файлы с диска» — ввести путь: C:\Windows\inf, после чего нажать ОК. Далее следует выбрать пункт Протокол Интернета (TCP/IP) и подтвердить свой выбор нажатием кнопки ОК, после чего вернуться на экран «Подключение по локальной сети». Расположенная здесь кнопка «Удалить» после всех описанных выше манипуляций будет активна, что позволит удалить TCP/IP. После этого необходимо перезагрузить компьютер и установить TCP/IP заново. Делается это также через «Сетевые подключения» с помощью нажатия кнопки « Установить с диска и использования пути С:\Windows\inf. После выполнения всех этих действий необходимо вновь перезагрузить компьютер.