В компьютерных сетях нет никакой единой модели, нет и программного обеспечения для ее реализации. Пользователи имеют дело с реальными машинами, и со стороны вычислительной системы не осуществляется никаких попыток связать их воедино. Скажем, если компьютеры имеют разное аппаратное и программное обеспечение, пользователь не сможет этого не заметить. Если он хочет запустить программу на удаленной машине, ему придется явно зарегистрироваться на ней и явно дать задание на запуск.
На самом деле, распределенная система является программной системой, построенной на базе сети. Эта программная система обеспечивает высокую степень связности и прозрачности элементов. Таким образом, различие между компьютерной сетью и распределенной системой заключается в программном обеспечении (особенно в операционной системе), а не в аппаратуре.
Тем не менее эти два понятия имеют очень много общего. Например, как компьютерная сеть, так и распределенная система занимаются перемещением файлов. Разница заключается в том, кто вызывает эти перемещения — система или пользователь.
Хотя основной темой этой книги являются сети, многие разделы будут касаться и распределенных систем. Дополнительную информацию о распределенных системах см. [Tannenbaum, van Steen, 2007].
1.1. Применение компьютерных сетей
Прежде чем приступить к изучению технических подробностей, стоит посвятить некоторое время обсуждению вопроса, почему люди интересуются компьютерными сетями и для чего они могут быть использованы. В конце концов, если бы никто не был заинтересован в развитии этих технологий, то не было бы построено такое огромное количество самых разных сетей. Мы начнем с обсуждения таких традиционных вещей, как сети в организациях, затем перейдем к домашним сетям и новым технологиям, связанным с мобильной связью и мобильными пользователями, и закончим социальными вопросами.
1.1.1. Сети в организациях
Большинство современных организаций используют большое количество компьютеров. Например, компания может иметь компьютер для каждого сотрудника и использовать их, чтобы разрабатывать продукты, писать брошюры и делать платежные ведомости. Первоначально некоторые из этих компьютеров, возможно, работали в изоляции от других, но в некоторый момент управление, возможно, решило соединить их, чтобы быть в состоянии передавать информацию по всей компании.
Если посмотреть на эту проблему с более общих позиций, то вопросом здесь является совместное использование ресурсов, а целью — предоставление доступа к программам, оборудованию и особенно данным для любого пользователя сети, независимо от физического расположения ресурса и пользователя. В качестве примера можно привести сетевой принтер, то есть устройство, доступ к которому может осуществляться с любой рабочей станции сети. Это выгодное решение, поскольку нет никакой необходимости в том, чтобы свое печатающее устройство было у каждого служащего, к тому же, содержание и обслуживание одного принтера, очевидно, обходится дешевле.
Но, наверное, даже более важной проблемой, нежели совместное использование физических ресурсов, таких как принтеры и устройства резервного копирования, является совместное использование информации . В наше время любая компания, независимо от ее размеров, просто немыслима без данных, представленных в электронном виде. Маленькие и большие компании жизненно зависят от компьютеризированной информации. У большинства компаний в сети доступны потребительские отчеты, информация о продукте, материальные запасы, финансовые отчеты, информация о налоге и многое дгугое. Если бы вдруг внезапно отказали все компьютеры какого-нибудь банка, даже самого крупного, он обанкротился бы минут за пять, не более. Современное автоматизированное производство с использованием вычислительной техники в этом случае не продержалось бы и пяти секунд. Да что там говорить, если даже маленькое туристическое агентство, весь штат которого состоит из трех человек, находится в очень сильной зависимости от компьютерных сетей, позволяющих получать доступ к необходимой информации и документам.
В маленьких компаниях все компьютеры обычно собраны в пределах одного офиса или, в крайнем случае, одного здания. Если же речь идет о больших фирмах, то и вычислительная техника, и служащие могут быть разбросаны по десяткам представительств в разных странах. Несмотря на это, продавец, находящийся в Нью-Йорке, может запросить и сразу же получить информацию о товарах, имеющихся на складе в Сингапуре. Для соединения сетей, расположенных в разных местах, могут быть использованы сети, называемые VPN (Virtual Private Networks — виртуальные частные сети). Другими словами, тот факт, что пользователь удален от физического хранилища данных на 15 тысяч километров, никак не ограничивает его возможности доступа к этим данным. Можно сказать, что одной из целей сетей является борьба с «тиранией географии».