Отладка ошибок ETIMEDOUT

Я пытаюсь отладить частые ошибки ETIMEDOUT на api.facebook.com (31.13.95.8) при выполнении запросов HTTP GET с наших серверов Linux. Чтобы выяснить, является ли это проблемой на нашем сервере или на стороне Facebook, я запустил эту команду:

$ mtr -r -c 10 --report-wide 31.13.95.8 -P 443
Start: Fri Mar 24 15:18:54 2017
HOST: lothlorien                         Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 108.170.241.35                      0.0%    10   12.3  12.4  12.3  12.8   0.0
  2.|-- 32934.hkg.equinix.com               0.0%    10   13.6  13.7  13.6  14.0   0.0
  3.|-- po102.psw02.hkg3.tfbnw.net          0.0%    10   13.1  13.1  13.0  13.3   0.0
  4.|-- 173.252.67.87                       0.0%    10   13.2  13.2  13.1  13.4   0.0
  5.|-- edge-star-shv-01-hkg3.facebook.com  0.0%    10   13.2  13.2  13.1  13.4   0.0

Однако, когда я запускаю эту команду (обратите внимание на дополнительную -T, которая отправляет TCP SYN вместо пакетов ICMP ECHO), мы видим значительную потерю пакетов:

$ mtr -r -c 10 -T --report-wide 31.13.95.8 -P 443
Start: Fri Mar 24 15:20:51 2017
HOST: lothlorien                         Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 108.170.241.67                      0.0%    10   12.5  15.3  12.5  37.5   7.8
  2.|-- 32934.hkg.equinix.com               0.0%    10   14.5  14.4  13.8  15.7   0.3
  3.|-- po102.psw03.hkg3.tfbnw.net          0.0%    10   13.8  13.9  13.4  14.6   0.0
  4.|-- 173.252.67.5                        0.0%    10   14.0  14.2  13.7  14.7   0.0
  5.|-- edge-star-shv-01-hkg3.facebook.com 90.0%    10  250.7 250.7 250.7 250.7   0.0

Любая причина, почему вторая команда показывает значительную потерю пакетов, а первая нет?

1 ответ

Используете ли вы пул подключений к API? Вероятно, что пакеты SYN ограничены, чтобы предотвратить атаки стиля SYNflood.

Другие вопросы по тегам