Введение
Феномен, особенно в IRC, когда один сервер отключается от остальных.
В компьютерных сетях, в частности в Internet Relay Chat (IRC), netsplit – это разрыв соединения между двумя серверами. Разрыв соединения между любыми двумя серверами разделяет всю сеть на две изолированные части.
Причины и последствия
Рассмотрим график справа, который представляет компьютерную сеть. Каждая линия обозначает установленное соединение. Таким образом, сервер C подключен напрямую к A, который также подключен к B и D. Если произойдет разрыв соединения между C и A, соединение может быть разорвано. Это может произойти либо из-за ошибки сокета, либо из-за чрезмерной задержки, при которой удаленный сервер A предвидит эту ситуацию (это называется тайм-аутом). Когда соединение между A и C прерывается, пользователи, подключенные к другим серверам, которые становятся недоступными в сети, кажутся отключившимися. Например, если пользователь Sara подключена к серверу A, пользователь Bob подключен к серверу B, а пользователь Joe подключен к серверу C, и C отключается от A, то Joe покажется, что Sara и Bob отключились, а Sara и Bob, в свою очередь, увидят, что отключился Joe. Однако Joe все еще может общаться с теми, кто подключен к тому же серверу (в данном случае сервер C). Это происходит потому, что серверы, к которым они подключены, получают информацию об изменении статуса сети и соответствующим образом обновляют свои локальные данные, чтобы отразить это изменение. Впоследствии сервер C может восстановить соединение (переподключиться) к серверу (или серверам) в сети, и пользователи, которые казались отключившимися, снова подключатся; процесс отправки этой обновленной информации всем серверам в сети называется netburst (или синхронизацией).
If a disruption in the connection between C and A occurs, the connection may be terminated as a result. This can occur either by a socket producing an error, or by excessive lag in which the far server A anticipates this case (which is called a timeout). When the connection between A and C is severed, users who were connected to other servers that are no longer reachable on the network appear to quit. For example, if user Sara is connected to server A, user Bob is connected to server B, and user Joe is connected to C, and C splits, or disconnects, from A, it will appear to Joe as if Sara and Bob both quit (disconnected from the network), and it will appear to both Sara and Bob that Joe quit. However, Joe can still talk to anyone who is connected to the same server (in this case server C). This happens because the servers to which they are connected are informed of the change in the network status, and update their local information accordingly to display the change. Later, server C may relink (reconnect) to a server (or servers) on the network and the users who appeared to have quit will rejoin; the process of sending this updated information to all servers on the network is called a netburst (or sync).
Вопросы безопасности
Иногда пользователи пытаются использовать сетевые разделения для получения доступа к приватным каналам. Атака типа "отказ в обслуживании" может быть использована для создания сетевого разделения путем перегрузки сетевого подключения IRC-сервера или интернет-инфраструктуры между двумя серверами. Если ни одного из пользователей канала не было на сервере C, пользователь мог присоединиться к приватному каналу и получить доступ к нему после повторного соединения серверов. Это обычно известно как "split riding" или "riding the split" (езда на разделении). Другая распространенная атака, связанная с сетевыми разделениями в IRC, – это коллизия никнеймов. В этой атаке пользователь в разделенном сегменте сети меняет свой никнейм на никнейм пользователя, находящегося в другом сегменте разделенной сети. При повторном подключении сеть отключает обоих пользователей, поскольку одновременно может использоваться только один никнейм. Современное программное обеспечение для IRC-серверов в значительной степени устранило этот метод, но серверы, использующие устаревшее программное обеспечение, все еще могут быть уязвимы.
Внешний вид
Ниже приведены примеры типичного разделения сети. Когда два сервера разделяются, пользователь видит массовый выход игроков. После повторного соединения серверов пользователь видит, как другие игроки снова подключаются.