Найти в Дзене
Тора go!

Пинг по TCP

Мудрость древних линуксоидов для доджунов: "Выбирать нужно такой линукс, по которому у вас есть знакомый гуру" Мудрость древних линуксоидов для джунов: "Выбирать нужно тот Линукс, который потом меньше нужно обрабатывать напильником" Но всё-таки бывают случаи, когда что-то не то чтобы собрать в тулчейне, а даже накодить, бывает быстрее, проще и профитнее во всех смыслах, чем прочие решения. На прошлой неделе передо мной встала рабочая задача по быстрой и краткой диагностике сетевых сервисов одной железяки. Железяка, в данном случае, простая. Не сложнее домашнего роутера. НО! Те данные, что мне удалось собрать расставили всё по местам и убрали ненужные версии в обсуждении причин уникального поведения данной железяки. Работаю я в Манджаро. Просто в нём я чувствую, что не занимаюсь безобразием, а сразу начинаю заниматься делом. Частенько бывает, что нужен какой-то новенький пакет, или такой пакет, который отсутсвует в PPA-шках Убунты, например. Мне, как сеньору, не составляет труда реализо

Мудрость древних линуксоидов для доджунов: "Выбирать нужно такой линукс, по которому у вас есть знакомый гуру"

Мудрость древних линуксоидов для джунов: "Выбирать нужно тот Линукс, который потом меньше нужно обрабатывать напильником"

Но всё-таки бывают случаи, когда что-то не то чтобы собрать в тулчейне, а даже накодить, бывает быстрее, проще и профитнее во всех смыслах, чем прочие решения.

На прошлой неделе передо мной встала рабочая задача по быстрой и краткой диагностике сетевых сервисов одной железяки. Железяка, в данном случае, простая. Не сложнее домашнего роутера. НО! Те данные, что мне удалось собрать расставили всё по местам и убрали ненужные версии в обсуждении причин уникального поведения данной железяки.

Картинка сделана запросом в ИИ: "А сделай-ка мне картинку на рабочий стол для моего нового Манджаро Линукса в стиле хакерского рабочего места".
Картинка сделана запросом в ИИ: "А сделай-ка мне картинку на рабочий стол для моего нового Манджаро Линукса в стиле хакерского рабочего места".

Работаю я в Манджаро. Просто в нём я чувствую, что не занимаюсь безобразием, а сразу начинаю заниматься делом. Частенько бывает, что нужен какой-то новенький пакет, или такой пакет, который отсутсвует в PPA-шках Убунты, например. Мне, как сеньору, не составляет труда реализовать технически задачу по появлению нужного бинарника в системе, но идеологически меня ломает собирать каждый раз тулчейн (про безопасность я вообще тут молчу), необходимый для подобной задачи.

Повторюсь, чисто идеологически.

В общем, манджаро быстрее, почти без напильников в юзабилитях и в целом мне приятнее. Да чего уж там, в последнее время одни восторги.

Но вернёмся к задаче.

Все вы, конечно, знаете про утилиту ping, которая работает по протоколу ICMP и помогает получить в числе прочего информацию о скорости эхо-ответа на запрос от вас до интересующего местоположения в сети.

Но существует также и TCP-версия данного механизма. TCP Ping работает также, разница лишь в том, что в протоколе TCP специально не выделено подпротокола для мониторинга скорости соединения, эта функциональность доступна исходя из самого дизайна протокола.

Без того, чтобы углубляться, почему ping может не работать или того, что такое троекратное рукопожатие в TCP, для моей задачи было достаточно того, что оно просто работает :D

Итак, мы имеем сетевую железяку и потребность в определённый момент времени понимать, как быстро она отвечает и отвечает ли вообще не только на пинги, но и каким-либо своим TCP-сервисом по соответствующему порту.

Оказалось, что в линуксах нет унифицированной одной известной, с одинаковыми параметрами запуска и предсказуемым в любых случаях работы выводом, утилиты. И было решено, что проще написать свою.

Теоретических знаний было достаточно, а практический опыт позволил просто сесть и написать подобную утилиту.

-2

Почему Python? Да потому что все любят Python.

Проще, изучаемо, предсказуемо и вообще "просто захотелось". Да тут в целом-то, не то чтобы программирование. Просто математика + инглиш.

Главное - что работает!

-3

На всё ушло немного времени, а задача была любопытная в итоге и пришлось, конечно, немного погуглить, но оно того стоило.

Если есть вопросы - пишите)

Помните, глупых вопросов не бывает. Самый глупый вопрос тот, что не был задан. Ну и в целом, чем больше спросите - тем больше узнаете.

Всем любопытства побольше и интересных задач в джиру!