История возникновения компьютерных сетей
Первые компьютеры разрабатывались для выполнения уникальных задач, связанных с обороной, крупными научными исследованиями и т.п. Каждый из них обладал собственной архитектурой, несовместимой с конструкциями других вычислительных машин. С ростом числа компьютеров решаемые с их помощью задачи унифицировались. Появилась потребность в оперативном обмене информацией между устройствами.
Сложившиеся к середине 1960-х гг. способы обмена информацией между вычислительными устройствами - с помощью перфокарт, перфолент, магнитных дискет - были слишком затратными и ненадежными. Инженеры искали способ связать компьютеры таким образом, чтобы обмен информацией производился без промежуточных носителей, по тем же принципам, по которым передаются телеграфные и телефонные сообщения. К концу 1960-х гг. широкое распространение получили модемы - устройства, позволявшие организовать удаленный (терминальный) доступ к компьютеру. Такие соединения еще нельзя было назвать полноценными сетями, поскольку они лишь в отправляли команды с клавиатуры и выводили отклик удаленного компьютера на экран в виде текста.
Рисунок 1. Модем 1960-х годов для передачи информации между компьютерами. Автор24 — интернет-биржа студенческих работ
К концу 1960-х гг. в США появились необходимые условия для объединения компьютеров в сети:
- надежное оборудование для передачи информации по кабелю (модемы) и программное обеспечение для их подключения (терминальные программы);
- сетевые протоколы - правила обмена информацией между компьютерами (наиболее перспективным оказался стандарт TCP/IP);
- операционные системы (UNIX и другие) со встроенным "сетевым стеком" - набором программ, позволяющим обрабатывать сетевую информацию.
С начала 1970-х гг. интенсивно растет количество компьютеров, подключенных к сети ARPANET (впоследствии Интернет), созданной при поддержке Министерства обороны США как средство децентрализованного обмена информацией.
Передача информации в компьютерных сетях
Обмен информацией между компьютерами производится через различные физические среды: по кабелям, оптоволокну, радиоволнам. Для преобразования передаваемой информации в необходимый для последующей обработки формат необходимы такие устройства, как модемы, сетевые карты, wifi-адаптеры и т.п.
Устройство, через которое компьютер обменивается информацией с другими подключенными к сети компьютерами, называется сетевым интерфейсом.
Информация передается в компьютерных сетях пакетами - "порциями" определенной длины. Каждый пакет содержит заголовок с адресами отправителя и адресата, другую информацию, необходимую для пересылки по сети, а также непосредственно передаваемые данные. В некоторых пакетах содержится контрольная сумма, позволяющая получателю убедиться, что данные приняты без искажений. В случае ошибок поврежденные пакеты запрашиваются повторно.
При передаче аудио- и видеоинформации допустимо использовать протокол UDP, не проверяющий данные на ошибки. Современные компьютерные сети достаточно надежны, поэтому искажения в некоторых кадрах окажутся незаметными для пользователя. Однако при передаче критически важной информации, требующей точного соответствия данных на сторонах отправителя и получателя, проверка на ошибки должна производиться. Для этого используется протокол TCP.
Компьютеры могут обмениваться информацией и с устройствами, находящимися в других сетях. Для передачи данных между сетями используются маршрутизаторы, благодаря которым локальные сети объединяются в глобальную. Еще одной важной частью инфраструктуры Интернета являются серверы имен (DNS). Они позволяют обращаться к компьютерам не по сетевым адресам, а по удобным именам, таким как yandex.ru, google.com и т.п.
Обработка сетевой информации
Сетевой интерфейс передает принятую по сети информацию ядру операционной системы, которая распределяет ее по так называемым портам - программным модулям, отвечающим за обработку того или иного вида сетевой информации. Например, электронная почта использует, как правило, порты 25 и 110, веб-сервисы - порт 80 и т.д. Переданная портам информация обрабатывается программами-клиентами и программами-серверами (см. ниже) по особым правилам - протоколам прикладного уровня. Например, передача и отображение веб-страниц производится в соответствии с протоколом http, для передачи электронной почты используются протоколы smtp, pop3, imap и т.д.
Рисунок 2. Обмен информацией между клиентом и сервером. Автор24 — интернет-биржа студенческих работ
Программы, организующие взаимодействие пользователя с компьютерными сетями, можно разделить на клиенты и серверы.
Клиент - программа, отправляющая запросы, получающая и обрабатывающая ответы от других программ и отображающая полученную информацию в удобном для пользователя виде. Сервер - программа, отвечающая на запросы программ-клиентов.
Примеры клиентов - браузеры Mozilla Firefox, Google Chrome, Safary и др. Серверы: nginx для организации веб-сайтов, программа для доставки электронной почты sendmail и т.п.
Следует понимать различие между программой-сервером и сервером как компьютером, на котором установлено сетевое программное обеспечение. Компьютеры-серверы правильнее называть хостами, но их именование серверами прочно вошло в обиход. Изначальным смыслом слова "сервер" было именно "программа, обрабатывающая запросы".