Эта статья включает список общих ссылок , но в ней отсутствуют соответствующие встроенные цитаты . ( Март 2011 ) |
В компьютерных сетях , в частности в Internet Relay Chat (IRC), netsplit — это разрыв между двумя серверами. Разрыв между любыми двумя серверами разделяет всю сеть на две части. [1]
Рассмотрим график справа, который представляет собой компьютерную сеть . Каждая линия представляет собой установленное соединение. Таким образом, сервер C напрямую подключен к A , который также подключен к B и D.
Если произойдет сбой в соединении между C и A , соединение может быть разорвано. Это может произойти либо из-за ошибки сокета , либо из-за чрезмерной задержки , с которой дальний сервер A ожидает этот случай (что называется тайм-аутом).
Когда соединение между A и C разрывается, пользователи, которые были подключены к другим серверам, которые больше не доступны в сети, кажутся выбывшими из сети. Например, если пользователь Сара подключен к серверу A , пользователь Боб подключен к серверу B , а пользователь Джо подключен к C , и C разделяется или отключается от A , Джо будет казаться , что Сара и Боб оба вышли (отключились от сети), и и Саре , и Бобу будет казаться , что Джо вышел из сети. Однако Джо все еще может общаться с любым, кто подключен к тому же серверу (в данном случае к серверу C ). Это происходит потому, что серверы, к которым они подключены, информируются об изменении состояния сети и обновляют свою локальную информацию соответствующим образом, чтобы отобразить изменение.
Позже сервер C может повторно подключиться к серверу (или серверам) в сети, и пользователи, которые, как казалось, вышли из сети, снова присоединятся; процесс отправки этой обновленной информации на все серверы в сети называется netburst ( или sync ).
Иногда пользователи пытаются использовать netsplit для получения доступа к частным каналам. Атака типа «отказ в обслуживании» может быть использована для создания netsplit путем перегрузки сетевого соединения IRC-сервера или инфраструктуры Интернета между двумя серверами. Если ни один из пользователей канала не находится на сервере C, пользователь может присоединиться к частному каналу и позже получить доступ, когда серверы переподключатся. Это обычно известно как split riding или riding the split .
Другой типичной атакой IRC, ориентированной на netsplit, является Nickname Colliding. В этой атаке пользователь на разделенном сегменте сети меняет псевдонимы на псевдонимы пользователя на другой стороне разделенной сети. При повторном подключении сеть отключает обоих пользователей, поскольку в один момент времени может использоваться только один псевдоним. Современное программное обеспечение IRC-серверов в значительной степени исключило этот метод, но серверы, использующие старое программное обеспечение, все еще могут быть уязвимы.
Ниже приведены примеры типичного netsplit. Когда два сервера разделяются, пользователь видит это как большое количество пользователей, покидающих сервер. После того, как серверы снова подключаются, пользователь видит, как другие пользователи снова присоединяются.
* usera вышел из (a.irc.net b.irc.net) * userb вышел из (a.irc.net b.irc.net) * userc вышел из (a.irc.net b.irc.net) * usera присоединился к #каналу * userb присоединился к #каналу * userc присоединился к #каналу
00:00 -!- Netsplit a.irc.net <-> b.irc.net выходит: usera, userb, userc 00:00 -!- Netsplit закончен, присоединяется: usera, userb, userc
* usera вышел (*.net *.split) * userb вышел (*.net *.split) * userc вышел (*.net *.split) * usera присоединился к #каналу * userb присоединился к #каналу * userc присоединился к #каналу