AAX писал(а):W5500 устанавливает IP соединение с роутером.
нет... не так.
мне не надо примерно... мне надо точно.
W5500 не устанавливает IP соединение с роутером.
разберём подробнее...
допустим у нас есть:
-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 доставлен серверу))
процесс передачи закончен))
а далее уже писали выше...
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 не передаёт данные на сервер, то якобы через два часа роутер сам закроет соединение.
(но это не точно).
а вопрос
roman.com писал(а):откуда роутер знает ??? передаются данные или передаются служебные пакеты ACK ???
так и остался без ответа...