Например TDA7294

Форум РадиоКот • Просмотр темы - W5500_client+Atmega8_для самых начинающих.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср июл 30, 2025 08:32:23

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 210 ]     ... , , , 7, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 02, 2025 16:05:40 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
1.
вообще вопрос был такой: должна или не должна W5500 сама закрывать соединение...
tonyk писал(а):
roman.com писал(а):
в режиме ESTABLISHED у меня w5500 работал весь день... пока он мне не надоел... и я его закрыл))

"Весь день"- это сколько? Даю подсказку: время автоматического закрытия соединения измеряется часами.

тесты показывают что W5500 сама (без команды) не закрывает соединение...
:tea:

2.
через роутер не проверял... не помню...
ну можно проверить))
:roll:
а нафига вообще роутеру закрывать соединение ?
для этого роутер должен следить что передаёт пользователь...
по логике... задача роутера принимать и передавать пакеты... а не следить за трафиком пользователя))
поэтому роутер не должен закрывать соединение))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 02, 2025 16:50:30 
Опытный кот

Карма: 9
Рейтинг сообщений: 164
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 707
Рейтинг сообщения: 3
На сколько помню, в BSD сокетах по умолчанию стояло 6 часов.
просто интересно, а какие бывают ещё сокеты? А где Вы встречали их? Про "по-умолчанию" - значение во всех ОС, которые мне встречались, два часа.
tonyk писал(а):
В W5500 на одном IP-порту может быть только одно подключение
просто интересно, а где может быть несколько подключений? Приведите пример, пожалуйста?
roman.com писал(а):
вообще вопрос был такой: должна или не должна W5500 сама закрывать соединение...
Ответ: закрывать соединение, когда Вы не планируете его в ближайшее время использовать, является правилом хорошего тона и здравого смысла. Таймауты, keep-alive и т.д. - это всё же способы решения нештатных ситуаций.
roman.com писал(а):
тесты показывают что W5500 сама (без команды) не закрывает соединение...
что логично.
roman.com писал(а):
через роутер не проверял... не помню...
да то ж самое будет, keep alive и висящая "до упора" сессия.
roman.com писал(а):
а нафига вообще роутеру закрывать соединение ?
из соображений самосохранения ;-) Если Вы включили свою поделку, она к роутеру подключилась - не знаю, что вы все с ними делаете - в интернет там сходить, например. И заглючило её по питанию. Вы её перезапустили, она ещё раз подключилась - а старая сессия висит, её ж никто корректно не финализировал. И так 100500 раз. На самом деле, даже вдвое меньше ;-) Если у роутера таймаута не будет - он ляжет, deny of service, хакеры победили ;-) Если будет таймаут - через пару часов отживёт. Ну, если Вы перестанете пытаться к нему подключаться к тому времени. Все роутеры последних лет 20-ти выпуска имеют к таким незатейливым DoS-атакам иммунитет. Но когда-то это был вполне реальный сценарий


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 02, 2025 20:23:40 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
а если я кино смотрю онлайн... или файл качаю большой... больше чем 2 часа... а роутер возьмёт и закроет мне сессию...
:o
фигня какая-то получается))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 02, 2025 20:37:15 
Опытный кот

Карма: 9
Рейтинг сообщений: 164
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 707
Рейтинг сообщения: 0
Так если Вы кино смотрите - сессия активна, передача данных идёт. Там ни о каком закрытии сессии речи нет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пн фев 03, 2025 06:21:56 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1228
Рейтинг сообщения: 0
AAX писал(а):
просто интересно, а где может быть несколько подключений? Приведите пример, пожалуйста?

Видимо, везде, кроме W5500. Стандартное значение- 5.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пн фев 03, 2025 10:02:00 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
AAX писал(а):
Так если Вы кино смотрите - сессия активна, передача данных идёт. Там ни о каком закрытии сессии речи нет.

тогда я не понимаю... как роутер определяет есть передача данных или нет передачи данных...
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт фев 04, 2025 02:48:26 
Опытный кот

Карма: 9
Рейтинг сообщений: 164
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 707
Рейтинг сообщения: 0
Видимо, везде, кроме W5500. Стандартное значение- 5.
Если мы про IP соединения говорим, то есть IP-адрес, есть номер порта у сервера. Есть IP-адрес и номер порта клиента. Возможен только один сокет, без исключений, где эти четыре цифры полностью совпадают. Если клиент написан по-уму, второе соединение к тем же IP и номеру порта сервера он у себя открывает с другим номером своего порта. Откуда цифра 5 взята? О каких одновременных подключениях речь? Непонятно.
roman.com писал(а):
тогда я не понимаю... как роутер определяет есть передача данных или нет передачи данных...
:dont_know:
Так а чего же сложного? TCP-соединение создаётся между устройством и роутером. Передаются данные - SYN, ASK, данные, и т.д. Роутер вполне в курсе, когда он в последний раз что-то принял или отправил в этом соединении.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт фев 04, 2025 13:22:24 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1228
Рейтинг сообщения: 0
AAX писал(а):
Если мы про IP соединения говорим, то есть IP-адрес, есть номер порта у сервера. Есть IP-адрес и номер порта клиента. Возможен только один сокет, без исключений, где эти четыре цифры полностью совпадают. Если клиент написан по-уму, второе соединение к тем же IP и номеру порта сервера он у себя открывает с другим номером своего порта. Откуда цифра 5 взята? О каких одновременных подключениях речь? Непонятно.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт фев 04, 2025 14:32:58 
Опытный кот

Карма: 9
Рейтинг сообщений: 164
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 707
Рейтинг сообщения: 0
Да Вы хоть намекните, о чём Вы писали. Одновременные подключения чего к чему? Учебники я читал. W5500 ковырял, и как сервер, и как клиент. Что за ограничение подключений, чтобы "у W5500 один, а стандартное - 5" не могу понять. Бестолковый, что взять...
UPD: чуть не забыл, я там ещё вопрос задавал, про то, какие бывают сокеты, чтобы не BSD. И где Вам довелось с ними поработать. Тоже интересно было бы узнать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт фев 04, 2025 20:35:34 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
так никто и не объяснил... что у нас с роутером))
:roll:
допустим у нас есть:
-W5500.
-роутер.
-некий сервер в интернете (возможно второй W5500).

подключаем по классической схеме:

W5500 >> роутер >> некий сервер в интернете.

1.
W5500 устанавливает соединение с сервером в интернете (возможно второй W5500).

W5500_client подключается к серверу:
>SYN
>SYN ACK
>ACK

2.
далее... W5500 передаёт данные на сервер в интернете (возможно второй W5500).

W5500 DATA > сервер в интернете (возможно второй W5500).
W5500 DATA < сервер в интернете (возможно второй W5500).

3.
далее... когда W5500 не передаёт данные на сервер в интернете (возможно второй W5500), то каждые ~45 секунд W5500 и сервер обмениваются служебными пакетами ACK (подтверждая что соединение всё ещё открыто).
....
....
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
~45 сек
....
....
....

4.
выше утверждали что если W5500 не передаёт данные на сервер, то якобы через два часа роутер сам закроет соединение.
(но это не точно).
:dont_know:

внимание (!) вопрос:
откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вт фев 04, 2025 23:38:32 
Опытный кот

Карма: 9
Рейтинг сообщений: 164
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 707
Рейтинг сообщения: 0
так никто и не объяснил... что у нас с роутером))
ща сделаем ;-)
1.
W5500 устанавливает соединение с сервером в интернете (возможно второй W5500).
не так сразу ;-) W5500 устанавливает IP соединение с роутером. И вежливо просит роутер переслать IP пакеты на сервер назначения. Роутер устанавливает (на другом интерфейсе, обычно) соединение с каким-то оборудованием оператора связи (провайдера). И вежливо просит его переслать IP пакеты на сервер назначения. Оборудование оператора связи... ну, вы понели :) Утилита командной строки traceroute или tracert в зависимости от операционной системы покажет Вам перепитии IP пакета на пути к цели ;-) Причём не факт, что каждый хоп из трейса напрямую устанавливает соединение со следующим - есть ещё мосты всякие... и наоборот - два хопа могут внутри одной железки оказаться, IP пакету просто добавляется "обёртка".
внимание (!) вопрос:
откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???
:roll:
Ответ: как выше было сказано,
AAX писал(а):
TCP-соединение создаётся между устройством и роутером. Передаются данные - SYN, ASK, данные, и т.д. Роутер вполне в курсе, когда он в последний раз что-то принял или отправил в этом соединении.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср фев 05, 2025 01:21:14 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
AAX писал(а):
W5500 устанавливает IP соединение с роутером.

нет... не так.

мне не надо примерно... мне надо точно.
:)

W5500 не устанавливает IP соединение с роутером.
:tea:
разберём подробнее...
:tea:

допустим у нас есть:
-W5500.
-роутер.
-некий сервер в интернете.

подключаем по классической схеме:

W5500 >> (LAN) роутер (WAN) >> некий сервер в интернете.

0.
W5500 хочет установить соединение с сервером в интернете. IP сервер = 95.23.14.234
Но сервер в интернете находится в другой сети.
как это W5500 это понял ?
по IP и маске сети.))

IP W5500 = 192.168.0.3
маска = 255.255.255.0
IP сервер = 95.23.14.234

поэтому чтобы установить соединение с сервером, W5500 отправляет пакет на шлюз ))
IP шлюз = 192.168.0.1

но прежде чем отправить пакет на шлюз (IP шлюз = 192.168.0.1), W5500 должен сначала выяснить MAC адрес шлюза.
для этого есть протокол ARP.

первым делом W5500 ищет MAC адрес шлюза в ARP таблице...
но его там нет)) потому что это первое включение W5500.
MAC адрес в ARP таблице живёт 2 минуты.

поэтому W5500 отправляет широковещательный пакет FF:FF:FF:FF:FF:FF
IP шлюз = 192.168.0.1 отвечает пакетом 01:02:03:04:05:06
W5500 записывает MAC адрес шлюза 01:02:03:04:05:06 в ARP таблицу.

затем W5500 отправляет пакет IP сервер = 95.23.14.234 на MAC адрес шлюза 01:02:03:04:05:06

шлюз 01:02:03:04:05:06 отправляет пакет IP сервер = 95.23.14.234 на MAC адрес провайдера 11:22:33:44:55:66

провайдер 11:22:33:44:55:66 отправляет пакет IP сервер = 95.23.14.234 на MAC адрес сервера 77:88:99:00:11:22

пакет IP сервер = 95.23.14.234 доставлен серверу))
процесс передачи закончен))
:tea:

а далее уже писали выше...

1.
W5500 устанавливает соединение с сервером в интернете (возможно второй W5500).

W5500_client подключается к серверу:
>SYN
>SYN ACK
>ACK

2.
далее... W5500 передаёт данные на сервер в интернете (возможно второй W5500).

W5500 DATA > сервер в интернете (возможно второй W5500).
W5500 DATA < сервер в интернете (возможно второй W5500).

3.
далее... когда W5500 не передаёт данные на сервер в интернете (возможно второй W5500), то каждые ~45 секунд W5500 и сервер обмениваются служебными пакетами ACK (подтверждая что соединение всё ещё открыто).
....
....
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
~45 сек
....
....
....

4.
выше утверждали что если W5500 не передаёт данные на сервер, то якобы через два часа роутер сам закроет соединение.
(но это не точно).
:dont_know:

а вопрос
roman.com писал(а):
откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???

так и остался без ответа...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср фев 05, 2025 08:01:13 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
ну... если так-то по факту, то роутер действительно должен иметь защиту от "бесконечного кол-ва открываемых соединений (без команды окончания)"

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср фев 05, 2025 14:19:41 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
на самом деле... не должен.
мы обсуждаем... фантазии))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср фев 05, 2025 14:23:10 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
ну мы, блин ... пантазЁры! :)))

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт фев 06, 2025 03:56:04 
Опытный кот

Карма: 9
Рейтинг сообщений: 164
Зарегистрирован: Сб ноя 16, 2013 23:34:34
Сообщений: 707
Рейтинг сообщения: 0
roman.com, чот я тупил вчера прям жоска, предыдущее сообщение написал, прочитал - исправил, прочитал ещё раз - снова отредактировал, хотел вообще удалить, но нужной кнопки не нашёл :) и спать ушёл. Мне жаль, что Вам пришлось это читать, извините. Попытаюсь исправиться. Значить, как оно работает:
часть с MAC-адресами мы поскипаем, т.к. это другой сетевой уровень, там данные по-своему на фреймы бьются, и применительно к тайм-аутам нам это не интересно.
Клиент располагает настроенными собственным IP-адресом и IP-адресом шлюза по-умолчанию. Из DHCP или захардкоженными в настройки. Давайте для наглядности предположим, что IP клиента у нас 192.168.0.2, шлюз - 192.168.0.1. Клиент желает установить соединение со своего порта 49876 на порт 80 некоего сервера в интернетах. Предположим, опять же, что IP этого сервера - 92.68.0.111.
Клиент формирует TCP пакет, в заголовки ставит свой исходящий порт 49876, порт назначения - 80, какой-то произвольный номер пакета, и устанавливает флаг SYN. К этому пакету добавляется "обёртка" IP - адрес отправителя (192.168.0.2), адрес получателя(92.68.0.111) и т.д. Этот IP-пакет отправляется шлюзу (192.168.0.1). Логика про "локалка"/"не локалка" Вами описана совершенно верно. Дальше шлюз (роутер) должен бы по-идее передать этот пакет дальше по маршруту. Но :) у нас адрес отправителя принадлежит т.н. "частной" сети. Т.е. за каждым роутером может быть компьютер с адресом 192.168.0.2. И если просто передать пакет на 92.68.0.111 обратный адрес по факту будет "на деревню, дедушке". Роутер берёт IP пакет. "Разворачивает" его. Записывает в память адрес отправителя, адрес получателя. Записывает порт отправителя, порт получателя из TCP пакета. "Заворачивает" TCP пакет в IP обёртку, где ставит адресом отправителя свой адрес в интернете. Опять же, предположим, что 92.68.22.33. Адрес получателя остаётся без изменений. Таким образом получается, что у нас от клиента к роутеру один сокет - сокеты идентифицируются по четырём параметрам, IP адреса и номера портов отправителя и получателя. А от роутера к получателю другой сокет по факту - там же IP отправителя другой. Дальше когда будет получен ответ, роутер проделает с пакетом обратную процедуру - проверит, какой сокет из записанных в память соответствует адресам/портам полученного ответа, и подменит IP получателя со своего IP(92.68.22.33) на IP клиента(192.168.0.2) И отправит пакет в локальную сеть. Это называется NAT. А чтобы избежать ситуации (довольно частой), когда два компьютера из локалки решат установить соединение с одним и тем же портом одного и того же компьютера в интернете с одного и того же номера порта отправителя - NAT может и в TCP пакете номер порта отправителя заменить на другой :) И так мобильные операторы например "выпаливают" раздачу мобильного интернета с мобильника на компьютер. Фуф, как букав многа вышло. Хоть толк есть? Или пошёл я нафик куда-нибудь в другое место википедию пересказывать? ;-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт фев 06, 2025 16:39:12 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
отлаживаю клиента, отправку запроса/сообщения к серверу
- ОК отправка запроса серверу
- ОК прием сервером запроса/расшифровка
- ОК wireshark пакеты "не красит" черным, вроде все пучком
но вот что кажет "шарк" - это мне не понятно: пакет "промаркирован" как VNC
какие будут комментарии/пояснения?! :)))
Вложение:
pic_2025.02.06_20.28.53.jpg [237.08 KiB]
Скачиваний: 20

и далее, когда зацикливаешь отправку "данного" сообщения - "шарк" выдает "предупреждение", что порт используется повторно
это криминал или чего?
Вложение:
pic_2025.02.06_20.50.22_2.jpg [239.82 KiB]
Скачиваний: 15

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 11:55:07 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
всё нормально))

VNC - это wireshark пытается определить протокол... а внутри пакетов не протокол а данные... вот он и пишет фигню всякую))
:tea:

а я тут вообще отправил пустой пакет))
СпойлерИзображение

wireshark определил протокол как FC...
хотя там нет никакого протокола)) потому что пакет пустой.
:tea:

что интересно... пустые пакеты тоже доходят... )) но только в пределах локальной сети.

при передачи пакета роутер смотрит ARP таблицу...
но так как в ARP таблицы MAC адреса 0000000 нет, то роутер отправляет пустой пакет на все порты.
получается типа широковещательного пакета FFFFFFFF))

подобные тесты объясняют принцип работы роутера.
:tea:

Хоть толк есть?

нету.

на главный вопрос ответа нет.
roman.com писал(а):
а вопрос
roman.com писал(а):
откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???

так и остался без ответа...


Добавлено after 1 hour 5 minutes 56 seconds:
AAX писал(а):
К этому пакету добавляется "обёртка"

не надо про "обёртки"... ))
вот реальный TCP пакет.

Код:
/////////////////////////////////////////////////////////////////////TX_TCP:(60)
/
/SYN_ACK, FIN_ACK, ACK, RST_ACK 
void TX_TCP(void)
{
/
////////////////////////////////////////////// TX: TX_MAC > Destination MAC: 
TX_int[0] = TX_MAC[0];   
TX_int[1] = TX_MAC[1];   
TX_int[2] = TX_MAC[2];     
TX_int[3] = TX_MAC[3];     
TX_int[4] = TX_MAC[4];   
TX_int[5] = TX_MAC[5];   
/////////////////////////////////////////////// TX: Source MAC: 
TX_int[6]  = 0x00;       
TX_int[7]  = 0x08;       
TX_int[8]  = 0xdc;     
TX_int[9]  = 0x01;     
TX_int[10] = 0x02;   
TX_int[11] = 0x03;   
/
////////////////////////////////////////////// TX: Type: IP (0x0800)
TX_int[12] = 0x08;   
TX_int[13] = 0x00;   
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// Protocol IP: (20 bytes)
/
////////////////////////////////////////////// TX: Version: 4, Header length: 20 bytes
TX_int[14] = 0x45;     
/////////////////////////////////////////////// TX: Differentiated Services Field
TX_int[15] = 0x00;   
/
////////////////////////////////////////////// TX: Total Length
//(Total Length = Protocol IP(20) + Protocol TCP(20) + Options(0) + Data/Padding(6) = 40)
//Padding(6) не считается
TX_int[16] = 0x00;   
TX_int[17] = 0x28; //40 bytes             
/////////////////////////////////////////////// TX: Identification
TX_int[18] = 0x00;   
TX_int[19] = 0x00;   
/
////////////////////////////////////////////// TX: Fragment offset: Don't fragment:
TX_int[20] = 0x40;   
TX_int[21] = 0x00; 
/////////////////////////////////////////////// TX: Time to live: 128
TX_int[22] = 0x80;     
/////////////////////////////////////////////// TX: Protocol: TCP (6)
TX_int[23] = 0x06;       
/////////////////////////////////////////////// TX: Header checksum IP: 
//TX_int[24] = 0x00;   
//TX_int[25] = 0x00;   
/////////////////////////////////////////////// TX: Source IP: 
TX_int[26] = 192;   
TX_int[27] = 168;   
TX_int[28] = 0;     
TX_int[29] = 3;       
/////////////////////////////////////////////// TX: TX_IP > Destination IP: 
TX_int[30] = TX_IP[0];   
TX_int[31] = TX_IP[1];     
TX_int[32] = TX_IP[2];     
TX_int[33] = TX_IP[3];     
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// Protocol TCP (20 bytes)
/////////////////////////////////////////////// TX: Source port: 8000 
TX_int[34] = 0x1F;     
TX_int[35] = 0x40;   
/////////////////////////////////////////////// TX: TX_port > Destination port:
TX_int[36] = (TX_port>>8);       
TX_int[37] = TX_port;     
/////////////////////////////////////////////// TX: TX_Sequence:
TX_int[38]=(TX_Sequence>>24);   
TX_int[39]=(TX_Sequence>>16);   
TX_int[40]=(TX_Sequence>>8);           
TX_int[41]=TX_Sequence;         
/////////////////////////////////////////////// TX: TX_Acknowledgment:
TX_int[42]=(TX_Acknowledgment>>24);   
TX_int[43]=(TX_Acknowledgment>>16);   
TX_int[44]=(TX_Acknowledgment>>8);           
TX_int[45]=TX_Acknowledgment;         
/////////////////////////////////////////////// TX: Header Length:
//(Header Length = Protocol TCP(20) + Options(0) = 20)
TX_int[46]=0x50; //20 bytes (5*4 bytes = 20)
/////////////////////////////////////////////// TX: Flags:
//TX_int[47]=0x12; //0x12 (SYN, ACK)
//TX_int[47]=0x11; //0x11 (FIN, ACK)
//TX_int[47]=0x10; //0x10 (ACK)
//TX_int[47]=0x14; //0x14 (RST,ACK)
/////////////////////////////////////////////// TX: Window: 2048:
TX_int[48]=0x08;
TX_int[49]=0x00;
/////////////////////////////////////////////// TX: checksum TCP: // начальное =0 
//TX_int[50] = 0;   
//TX_int[51] = 0;     
/////////////////////////////////////////////// TX: Urgent Pointer: 0:
TX_int[52] = 0;   
TX_int[53] = 0;     
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// TX: Options: (0 bytes)
//
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// TX: Data/Padding: (6 bytes)
TX_int[54] = 0x00;   
TX_int[55] = 0x00;     
TX_int[56] = 0x00;   
TX_int[57] = 0x00;     
TX_int[58] = 0x00;   
TX_int[59] = 0x00;     
////////////////////////////////////////////////////////////////////////////////

в TCP пакете есть поля и флаги разные...
AAX писал(а):
Это называется NAT.

вот NAT.
СпойлерИзображение

а тут я передаю фото))
СпойлерИзображение

а тут я передаю музыку))
СпойлерИзображение

а тут я передаю видео))
СпойлерИзображение

W5500 всё умеет.
:tea:
и даже VPN.
СпойлерИзображение

СпойлерИзображение

:tea:
AAX писал(а):
в заголовки ставит свой исходящий порт 49876, порт назначения - 80, какой-то произвольный номер пакета,

произвольный номер пакета называется Identification
вот он в пакете
Код:
/////////////////////////////////////////////// TX: Identification
TX_int[18] = 0x00;   
TX_int[19] = 0x00;   

AAX писал(а):
часть с MAC-адресами мы поскипаем, т.к. это другой сетевой уровень, там данные по-своему на фреймы бьются, и применительно к тайм-аутам нам это не интересно.

очень даже интересно.
я вижу каждый бит в интернете...

точнее даже не каждый бит, а каждый электрический импульс... на осциллографе))
СпойлерИзображение

можем разобрать ещё глубже... на уровне электронов в медных проводах и фотонов в оптическом кабеле))
:))

всё это прекрасно...
но всё это не отвечает на вопрос...

откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 16:45:55 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
Цитата:
откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???

Ну очевидно-же!??? Если мы знаем что передается, то уж роутеру это знать по службе положено! Чего не понятно?! :)))

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 20:02:55 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8176
Откуда: .ru
Рейтинг сообщения: 0
ну допустим... роутер видит что внутри пакетов.
тогда следующий вопрос...
а нафига это надо роутеру ? ))
:tea:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 210 ]     ... , , , 7, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y