Читаем Техника сетевых атак полностью

USENET [от ‘User’ Network’], сущ. Распределенная система ‘электронных досок объявлений’ (смотри bboard), поддерживая в основном машинами под управлением UNIX. Первые шаги в этом направлении были сделаны в 1979 - 80 годах Стивом Белловин, Джимом Эллисом, Томом Траскоттом и Стривом Даниэлем в Университете Дьюка, но вскоре система выросла до невероятных размеров и стала международной. Возможно на сегодняшний день (1993 год) это самая большая децентрализованная информационная система во всем мире, поддерживающая около 1200 телеконференций (смотри newsgroup), и ежедневный трафик USENET [новые статьи по технике, дискуссии, новости, болтовня и ругань (смотри flamage)] в среднем составляет около 40 мегабайт, что в напечатанном виде составит ~20 000 страниц.

(Выдержка из «Словаря Жаргона» Эрика Раймонда)

Теоретически конференцию можно организовать и на базе POP3 и SMTP протоколов, но при этом возникнет множество технических проблем, решение которых разумнее возложить на отдельный протокол.

Врезка «информация» *

Любопытно, но длительное время адрес all@zmail.ru был предназначен для рассылки сообщений всем абонентам этой почтовой системы. Дырка впервые была использована «доброжелателями» в Новогоднюю Ночь, поздравивших окружающих с этим «замечательным» праздником. В ответ посыпались оскорбления, и стихийно возникло некое подобие конференции, конец которой был положен администраторами сервера. А жаль…

Врезка «информация» *

На заре развития Internet, когда преобладали операционные системы UNIX, для организации конференций (да, впрочем, и электронной почты) часто использовался протокол UUCP (UNIX to UNIX Copy). Местами он чудом сохранился до сих пор, но большинство узлов перешло на более шустрый и гибкий NNTP протокол.

Таким протоколом стал NNTP (Network News Transport Protocol), представляющий собой нечто промежуточное между IMAP4 и POP3 протоколами. Независимо от организации групп новостей, все они связаны в единую иерархическую структуру. Образно можно уподобить конференции дереву папок, а сообщения - хранящихся в них файлам. Фактически можно рассматривать каждую группу новостей, как папку IMAP4, со своими собственными атрибутами.

Однако протокол NNTP содержит много нововведений, не встречавшихся ранее в почтовых системах. Одна из решаемых им проблем - обеспечение синхронизации сообщений. Тысячи NNTP-серверов, порой даже не подозревающих о существовании друг друга, должны иметь идентичное содержимое. На какой бы из них не поступило новое сообщение, оно должно быть разослано всем остальным серверам.

Здесь не будет приводиться подробное описание используемых алгоритмов синхронизации. Не то, чтобы они были слишком сложны для понимания, но механизмы взаимодействия NNTP-серверов скрыты от пользователя и существуют далеко не в единственном варианте - от тривиальной рассылки, до самоорганизующейся распределенной базы данных.

Врезка «для начинающих»

Бесплатных news-серверов много, но хороших среди них очень мало. Чаще всего конференции открыты только на чтение. Посылка сообщений (если даже она и разрешена) обычно никуда не уходит дальше этого сервера. Поэтому ничего не остается, кроме как воспользоваться услугами, предоставляемыми собственным Internet-провайдером.

К счастью, существует масса специальных программ для поиска общедоступных NNTP-серверов. Неплохо себя зарекомендовал “New Hunter” (http://www.slip.net/~rain/nh/) механизм работы которой будет рассмотрен в «дополнении».

Для подключения к NNTP-серверу необходимо установить с ним TCP-соединение по сто девятнадцатому порту.


Рисунок 012 Подключение к NNTP-серверу


Если соединение установлено успешно, через секунду на экране telnet-клиента должно появится приглашение приблизительного вида:

· 201 news.rnd.runnet.ru InterNetNews NNRP server INN 2.2 21-Jan-1999 ready (no posting).

Код ответа 201 (в тексте он выделен жирным шрифтом) обозначает, что сервер не позволяет клиенту создавать новые сообщения (иными словами постинг [232] запрещен). В том случае, когда постинг разрешен, сервер возвращает код 200 и строку наподобие «posting ok».

Врезка «замечание»

Полное описание кодов возврата содержится в RFC-977, и поэтому не приводится в данной книге.

Список доступных конференций можно получить с помощью команды “LIST”. При медленном соединении эта операция может занять продолжительное время, поскольку количество конференций обычно очень велико. Поэтому ниже приводится лишь фрагмент ответа сервера:

Перейти на страницу:

Похожие книги

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных
Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных