Каковы общие правила получения сообщения об ошибке 104 «Сброс соединения по одноранговой сети»? - PullRequest
0 голосов
/ 02 июля 2018

Существуют ли общие правила, когда веб-сайт отправляет сброс TCP, вызывая ошибку Connection reset by peer?

Как

  • слишком много открытых соединений
  • слишком высокая пропускная способность
  • подключен слишком долго
  • ...

Я почти уверен, что не существует закона, регулирующего это, и что разные сайты / веб-разработчики имеют разные вкусы, но мне было бы интересно, если есть какие-то общие наборы правил (из сайтов или учебников по теме или что у вас есть) преподавали в школе / на работе), которые в основном следуют.

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

Я загружаю некоторые правительственные данные, которые находятся в свободном доступе, но отсутствуют API или что-то в этом роде, поэтому два официальных способа получить их - это несколько тысяч раз кликнуть в какой-либо веб-ГИС или продолжить работу Кафкианский путь объяснения различным уровням клерков концепции баз данных, CSV-файлов, ZIP-файлов и того, что вы не можете (и не будете нуждаться, если они только что сделали то, что вы пытаетесь объяснить), просто подъезжайте к их Агентство с «гигантским» жестким диском, поэтому я стараюсь найти наиболее экономный способ для всех участников…

1 Ответ

0 голосов
/ 02 июля 2018

Сайт не «отправляет» ошибку «Сброс соединения по одноранговой сети». Эта ошибка генерируется ядром ОС на сайте клиента, если он получает сброс TCP для активного соединения. Есть много причин, по которым этот сброс TCP может быть отправлен. Сброс TCP может быть послан по проекту с какого-то ограничения нагрузки, например, чтобы ограничить количество соединений с одного и того же IP-адреса в течение определенного времени в качестве формы защиты DOS, чтобы ограничить очистку данных или обеспечить какой-либо справедливый использовать. Для такого рода явных ограничений не существует общего правила или даже закона.

Сброс TCP также может быть вызван перегрузкой приложения, сбоем приложения, нехваткой ресурсов системы ....

И сброс TCP произойдет, если клиент выполнит запись в соединение, которое сервер уже считает закрытым. Это может произойти, например, при сохранении активности HTTP: сервер может закрыть соединение в случае неактивности в любое время после отправки ответа HTTP. Если клиент отправляет новый запрос на то же соединение в то же время, когда сервер закрывает соединение, сервер отклонит новый запрос (так как соединение закрыто на стороне сервера) и отправит TCP RST, вызывая сброс соединения по пиру на клиенте. Клиент должен должным образом обработать эту ситуацию, создав новое соединение и отправив запрос еще раз (при условии, что запрос не был изменен в состоянии, т.е. является идемпотентным).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...