Здравствуйте raeen, Вы писали:
R>Здравствуйте NavuhodonosoR, Вы писали:
R>>>Вопрос: где храниться эта инфа?
NR>>Не вдаваясь в подробности: в системе.
R>Вернуться к теме: именно это и представляет интерес.
"Не будте слишком умными, но будьте умными в меру" (с) Библия. Кажется это звучит так. А вообще с вопросами по Win а-ля "где и как хранится некая инфа" — либо к БГ, либо "в морг". В качестве иллюстрации смотри
здесь
Здравствуйте raeen, Вы писали:
R>Здравствуйте vladsm, Вы писали:
V>>Здравствуйте raeen, Вы писали:
V>>С точки зрения адреса получателя — одинаковые. Но ведь есть еще адрес и порт отправителя. Вот по ним "отбор", видимо, и происходит.
R>Получается, что так.
Не получается так, а именно так и работает. Когда на принимающую сторону приходит пакет, обработчик очереди делает lookup сокетного соединения. И ищет он по вот такому ключу (dest_addr, dest_port, src_addr, src_port) с точки зрения пришедшего пакета, или (local_addr, local_port, remote_addr, remote_port) с точки зрения таблица (обычно hash table) сокетных соединений в локальной системе. Все сокетные соединения в Internet пространстве однозначно идентифицируются парой (или точнее четверкой) (local_addr: local_port, remote_addr: remote_port). Есть еще отдельный случай, это listen socket. Так как с ним не устанавливается коннекшен, в его идентификаторе нет remote_addr:remote_port, и его ID выглядит обычно вот таким образом (local_addr, local_port, 0, 0) или просто (local_addr, local_port). Система заводит 2е таблицы. Первая содержит listen сокеты, вторая сокеты уже установившие соединения (то есть те, которые имеют и local и remote части). По приходящему пакету, вначале делается lookup в connected sockets таблице, и если такового нет, то пытаются найти его в listen sockets таблице.
Если возникают какие-то непонятные вещи с TCP/IP, и по ним нет документации в MSDN, то можно смотреть как это реализовано в других системах, по исходникам, например Linux, FreeBSD. Не думаю, что классические вещи, в Windows реализованы каким-то своим образом.
PS: для мониторинга TCP/IP коннекшенов удобно использовать TCPView, ее можно найти здесь
http://www.sysinternals.com/ntw2k/utilities.shtml
Здравствуйте Sashko, Вы писали:
S>Если возникают какие-то непонятные вещи с TCP/IP, и по ним нет документации в MSDN, то можно смотреть как это реализовано в других системах, по исходникам, например Linux, FreeBSD. Не думаю, что классические вещи, в Windows реализованы каким-то своим образом.
S>PS: для мониторинга TCP/IP коннекшенов удобно использовать TCPView, ее можно найти здесь http://www.sysinternals.com/ntw2k/utilities.shtml
Спасибо, весьма помогло