Ruslan
Сергей
Ну ка расскажи мне как ты собрался определять с помощью icmp доступность клиента за NAT?
никак. ответ не будет получен при разорваном соединении. если соединение живое то ответ придет на эхо запрос. т.е. доступность определить не получиться только факт открытого подключения или его отсутствие. Как я понял задача именно так и стояла
Ruslan
Ты как-то странно ставишь резюки
вот я тоже так думаю, но давно этой хернёй не занимался
Ruslan
поэтому и спрашиваю, как расставить правильно?
поэтому и спрашиваю, как расставить правильно?
Перед анндом же, чтоб диод не сжечь
Ruslan
Перед анндом же, чтоб диод не сжечь
между оптопарой и землёй в левой части?
А стоп
У тебя оптопара наоборот же включена.
Я не в ту сторону глянул
Ruslan
ну я слева направо передаю сигнал
Надо чтоб при появлении сигнала у тебя транзистор щелкнул на пин, так?
Ruslan
можно транзюком, но лучше оптопару воткнуть и не париться
А нахера там две резюка то
Ruslan
там датчик, от всегда питалово на вход пары подаёт, а когда тело в луч заходит, сигнал пропадает
Притяни к земле, а при включении оптопары тебе замкнет и будет единица, не?
Ruslan
А нахера там две резюка то
ну не помню я там как правильно, 10 лет прошло
Ruslan
оптопара будет всегда работать ( и мне это не нравится, зачем энергию жечь), наверное надо инвертнуть сигнал до неё
Ruslan
ладно, пойду с младшим математику сделаю и вернусь
Да мне кажется можно резюк не ставить и подтянуть внутренние пулапом/дауном
Сергей
По резюкам уже подзабыл, чё там на выходе и как надо делать...
Если сомневаешь попробуй нарисовать в и посмотреть на характеристики http://www.falstad.com/circuit/circuitjs.html
Сергей
Все хватит. Это эффект даннинга крюгера в действии. Читай устройств tcp, как он работает и какую роль играет там icmp
Мне даже любопытно стало как ты себе объясняешь механизм работы TCP и с помощью какой магии по твоему мировозрению он ( TCP) узнает о разрыве соединений?
Ruslan
Да я в старые проекты загляну, там уже все у меня посчитано, просто не рядом
Про определение мертвых сессий tcp с помощью icmp я понял что читать придется много
Сергей
Читай книжки. Там все написано и про это в том числе
Мое мировозрение говорит что TCP работает поверх IP который использует ICMP о чем я довольно подробно написал выше
Мое мировозрение говорит что TCP работает поверх IP который использует ICMP о чем я довольно подробно написал выше
Дело твое. Но этим бредом ни с кем не делись а то и правда люд будет думать что icmp используется для детекции мертвых tcp сессий. Интересно даже как он в твоем "мировозрении" то через наты бегает.
Сергей
Дело твое. Но этим бредом ни с кем не делись а то и правда люд будет думать что icmp используется для детекции мертвых tcp сессий. Интересно даже как он в твоем "мировозрении" то через наты бегает.
Нат. это пристройка сбоку к протоколу IP и все завязано на идентификатор подключения. т.е. буквально строиться таблица где идет подмена адресов в сообщении приходящих с одного (внешнего) интерфейса и отправляемых на (внутренний) интерфейс.
Да даже если и представить этот бред что icmp ты собрался использовать для детекта мертвых клиентов, то где ты нашел взаимосвязь между мертвой tcp сессией от клиента к серверу и тем что он отвечает или не отвечает на icmp echo?
Дело твое. Но этим бредом ни с кем не делись а то и правда люд будет думать что icmp используется для детекции мертвых tcp сессий. Интересно даже как он в твоем "мировозрении" то через наты бегает.
И перефразирую этот вопрос раз ты не понял. Имеется клиент 8.8.0.0 (192.168.1.5) и сервер 8.8.8.8. (порт 80/tcp). По какой-то причине сессия тсп протухла. Какому айпи адрес ты собрался слать icmp ?
Оптопара на 4 гига?
А ядер сколько?
Ruslan
Тела знаешь как быстро снуют туда сюда
Ruslan
Это 4 ядерная
Это 4 ядерная
4 ядра 4 гига?
Кого ты там пинговать собрался в упор не понимаю
Попингуй! От попингуя слышу!
Сергей
Попробую совсем на пальцах. Есть определенная модель сети . В ней реализован стек сетевых протоколов. На данный момент следует остановиться на двух TCP/IP. К примеру клиент за натом открывает подключение к серверу. Для этого он формирует буфер из байт и специальную структуру данных с информацией для IP протокола(адрес получателя). после чего отправляет данные. Начинает работать IP протокол который с помощью таблицы маршрутизации выбирает интерфейс на который он отправляет IP пакет(к серверу). На сервер приходит пакет и передается драйверу протокола TCP сервер понимает что подключение открыто и в буфер получены байты. (грубо говоря). Случается ситуация когда когда связь оборвана и ни клиент ни сервер об этом не знают. В таком случае связь пытается работать аналогично. Приложение на сервере формирует буфер с данными заполняет структуру информации для IP протокола и передает в сеть. Но на одном из узлов сети в таблицы маршрутизаци ну или NAT который ее симулирует возникает ошибка невозможно связаться с открывшим подключение адресом. Вот в этот самый момент и происходит магия ICMP узел сети в ответ на IP пакет отправляет обратно свой служебный IP пакет (ICMP 3.1 узел не достижим) этот пакет добирается до сервера и драйвер IP сообщает драйверу TCP о том что соединение разорвано.
Попробую совсем на пальцах. Есть определенная модель сети . В ней реализован стек сетевых протоколов. На данный момент следует остановиться на двух TCP/IP. К примеру клиент за натом открывает подключение к серверу. Для этого он формирует буфер из байт и специальную структуру данных с информацией для IP протокола(адрес получателя). после чего отправляет данные. Начинает работать IP протокол который с помощью таблицы маршрутизации выбирает интерфейс на который он отправляет IP пакет(к серверу). На сервер приходит пакет и передается драйверу протокола TCP сервер понимает что подключение открыто и в буфер получены байты. (грубо говоря). Случается ситуация когда когда связь оборвана и ни клиент ни сервер об этом не знают. В таком случае связь пытается работать аналогично. Приложение на сервере формирует буфер с данными заполняет структуру информации для IP протокола и передает в сеть. Но на одном из узлов сети в таблицы маршрутизаци ну или NAT который ее симулирует возникает ошибка невозможно связаться с открывшим подключение адресом. Вот в этот самый момент и происходит магия ICMP узел сети в ответ на IP пакет отправляет обратно свой служебный IP пакет (ICMP 3.1 узел не достижим) этот пакет добирается до сервера и драйвер IP сообщает драйверу TCP о том что соединение разорвано.
Хватит нести хуйню ей богу ICMP носит информативную роль и чаще оно отключено нежели включено. Для определения мертвой сессии можно использовать keep alive. Если ответ не получен сессия мертва. Так же keepalive необходим для того чтоб наты не забывали о ней
Никто не определяет мертвую сессию tcp с помощью icmp
Блять особенно через наты
Пинговать клиента это вообще лютая дичь чтоб определить жива ли tcp сессия. Ну ответ он тебе на пинг, а сессия мертва и че?
iҚØN🐾🐾
Попробую совсем на пальцах. Есть определенная модель сети . В ней реализован стек сетевых протоколов. На данный момент следует остановиться на двух TCP/IP. К примеру клиент за натом открывает подключение к серверу. Для этого он формирует буфер из байт и специальную структуру данных с информацией для IP протокола(адрес получателя). после чего отправляет данные. Начинает работать IP протокол который с помощью таблицы маршрутизации выбирает интерфейс на который он отправляет IP пакет(к серверу). На сервер приходит пакет и передается драйверу протокола TCP сервер понимает что подключение открыто и в буфер получены байты. (грубо говоря). Случается ситуация когда когда связь оборвана и ни клиент ни сервер об этом не знают. В таком случае связь пытается работать аналогично. Приложение на сервере формирует буфер с данными заполняет структуру информации для IP протокола и передает в сеть. Но на одном из узлов сети в таблицы маршрутизаци ну или NAT который ее симулирует возникает ошибка невозможно связаться с открывшим подключение адресом. Вот в этот самый момент и происходит магия ICMP узел сети в ответ на IP пакет отправляет обратно свой служебный IP пакет (ICMP 3.1 узел не достижим) этот пакет добирается до сервера и драйвер IP сообщает драйверу TCP о том что соединение разорвано.
Для таких задач есть такие технологии как nat traversal, stun, turn и тд и тп. Механизмы проверки сессий есть
Сергей
Никто не определяет мертвую сессию tcp с помощью icmp
В теории клиент должен ответить с помощью того же icmp 3.3 что такого подключения нет
Anton
Для таких задач есть такие технологии как nat traversal, stun, turn и тд и тп. Механизмы проверки сессий есть
нах. неактивное соединение просто закрывает сервер если в кипэлеайве. или вообще сразу закрывает после отправки ответа
iҚØN🐾🐾
нах. неактивное соединение просто закрывает сервер если в кипэлеайве. или вообще сразу закрывает после отправки ответа
Если есть проверка keepalive, то на той стороне соединения в conntrack обычно обновляются и не рвутся
Там был базовый вопрос как определить на arduino webserver что клиент пропал. Он про какой- то icmp начал говорить...
Правда он так и не ответил как он собрался пинговать клиента за натом
iҚØN🐾🐾
речь была про веб. читал?
Если честно, то начал с темы объяснения на пальцах))
Если честно, то начал с темы объяснения на пальцах))
Не, чтоб определить мертва ли tcp сессия, применяется icmp ping
Anton
ваще, есть такой звон -- пинг встроен в вебсокеты. но это не так звенит
Да это как бы из другой оперы
iҚØN🐾🐾
Но icmp ping не для этих целей) и даже если постучаться на порт и получить rst / timeout - это же не решает вопрос, жива ли сессия)
Может у него поэтому и все смешалось кони лошади icmp
Anton
Да это как бы из другой оперы
ну ваще это про веб тцп и пинг одновременно :)
Обычно да в протоколе гоняют что то типа ping/pong
iҚØN🐾🐾
Вебсокет - это прикладной протокол, зависит от реализации
Anton
Куда пинг встроен?
в протокол вебсокетов
Anton
там есть спец пакеты пинг/понг. понг посылает браузер автоматом на пинг от сервера
iҚØN🐾🐾
iҚØN🐾🐾
Тут ничего не сказано про icmp
iҚØN🐾🐾
Это просто реализации кипалайва
Сергей
Это разные протоколы
Anton
он нам алтернативную реализацию тцп нарисует, согласно своему мировоззрению
Николай
Люди. А кто ведает - есть какой-нибудь OPC UA сервер под линукс?