2010-08-03 4 views
1

Я новичок в сетевых аспектах. У меня есть несколько основных вопросов, связанных с TCP/протокола внутрибрюшинна и сетямиПротокол TCP/IP и сетевая топология

  1. Если сетевой коммутатор (в локальной сети) между управлением клиентом и сервером (что общается через асинхронный. Сокеты) два компьютера выключен. Может ли клиент и сервер быть уведомлены о том, что соединение сокета больше не активно. Клиент и сервер работают на ОС Win XP и кодируются с использованием C#.

  2. Имеется ли сетевая топология в случае полуоткрытого соединения между сокет-клиентом и сервером сокетов. Напр. Будет ли отключен статус одного или обоих уведомлений на другом конце и зависит от сетевой топологии.

Заранее спасибо.

ответ

2
  1. Сетевой элемент, такой как маршрутизатор/концентратор/коммутатор, не вызывает никаких действий на уровне TCP, если он опускается. Операционная система может заметить, что физический уровень выключен и выцарапаны все сокеты, привязанные к этой сетевой карте, если это сетевой элемент, который напрямую подключен к разрыву ПК - это будет различаться между операционными системами/сетевыми картами и другими вещами. Помимо этого, чтобы обнаружить, что соединение было отключено, вам придется что-то отправить и полагаться на механизмы тайм-аута TCP для отказа. Это можно сделать неявно, включив в соединение TCP Keepalives.

  2. Отсоединение с одной стороны будет замечено только в том случае, если эти сообщения достигнут другой стороны, если сетевая топология изменится или sometinhg разрывается посередине соединения таким образом, что сообщения больше не достигают другого конца, разъединение не будет замечено. (NAT шлюзы - большой источник проблем, таких как это, они могут отключить TCP-соединение, которое они отслеживают, и вы никогда не узнаете, что соединение больше не действует, если вы не пытаетесь что-либо написать (или включить TCP keepalives) подключение). Обратите внимание, что большинству сетевых API требуется, чтобы вы прочитали из соединения, чтобы отключить связь, а другой конец закрыл соединение - если эти «закрытые» сообщения действительно достигнут вашей стороны.

+0

+1 «Что он сказал». В следующий раз я попробую тип быстрее. –

Смежные вопросы