Привет, Hexlet! Хочу поделится в впечатлениями от прочтения книги «Компьютерные сети. Нисходящий подход», авторы: Джеймс Куроуз, Кит Росс.
Тема компьютерных сетей меня интересовала давно, тем более программист, который создаёт Web-приложение, должен не только уметь писать код, но и понимать как его приложение взаимодействует по сети (хотя бы на базовом уровне).
Почему нисходящий подход?
Вообще существует два пути изучения компьютерных сетей:
- Сверху вниз по модели взаимодействия открытых систем(OSI), начиная с прикладного уровня и кончая физическим;
- Соответственно снизу от физического к прикладному.
Не знаю кому как, мне понравился первый вариант, он мне более понятен (данные от приложения через сокет спускаются на транспортный уровень, там инкапсулируются в дейтаграмму и спускаются на сетевой).
О самой книге:
- Книга читается довольно легко, за исключением мест, где производятся различные математические расчеты (типа двойной экспоненциальный алгоритм выдержки для расчета времени задержки в протоколе разделяемого доступа к среде), но эти места я пропускал, для базового понимания они и не нужны.
- На сайте издательства можно скачать упражнения и лабораторные работы по анализу сетевого трафика. (ссылка в книге есть)
- В книге разобраны все основные протоколы стека TCP/ip (особенно для нас, как для разработчиков, важны HTTP, DNS, TCP, UDP)
- Есть примеры программирования сокетов (правда, на Python)
- Особенно меня поразило, какое прикладное применение в компьютерных сетях нашла теория графов — это и построение маршрутов, и предотвращение петель коммутации (протокол дерева). Раньше я думал, что графы — это структура данных, которая применяется в программировании.
- Еще мне понравилась глава: «Один день из жизни запроса веб-страницы». В этой главе описываются 24 шага получения веб-станицы конечным хостом, начиная от подключения хоста к сети, и заканчивая отображением веб-страницы. На каждом шаге описываются протоколы, которые были задействованы. Это так сказать своеобразный маркер — если понял все шаги, значит книгу прочел не зря. Это очень круто!
Вообщем книга мне понравилась, не жалею потраченного времени, всем советую! Всем удачи, добра и успехов в обучению программированию!