Загрузка данных


Введение
В последние десятилетия мы наблюдаем беспрецедентный скачок в развитии информационных технологий. Глобальная цифровизация привела к тому, что смартфоны и компьютеры стали неотъемлемой частью нашей повседневной жизни, а мессенджеры практически полностью вытеснили традиционные форматы общения. По статистике аналитических агентств, более 85% пользователей сети ежедневно полагаются на централизованные облачные сервисы для передачи как личной, так и технической информации. Однако стремительное развитие ИТ-сферы имеет и обратную сторону: зависимость общества от крупных серверов и провайдеров достигла критического уровня. Многие авторитетные специалисты в области кибербезопасности неоднократно высказывали мнение, что хранение данных на сторонних серверах всегда несет риск их компрометации, а полностью защищенной облачной инфраструктуры не существует.
Если обратиться к недавней истории, можно вспомнить целую серию масштабных сбоев в работе популярных платформ. Когда магистральные провайдеры сталкиваются с техническими неполадками или целенаправленными атаками, пользователи, находящиеся в одной комнате и подключенные к одному домашнему Wi-Fi роутеру, внезапно теряют возможность отправить друг другу даже текстовый файл. Кроме того, по данным компании InfoWatch, количество утечек конфиденциальной информации из баз данных крупных сервисов ежегодно возрастает на 20-30%.
В связи с этим всё большую актуальность приобретает возврат к децентрализованным системам и локальным сетям. Представим вполне жизненную ситуацию: перебои с доступом во внешний интернет или необходимость безопасного, нигде не логируемого обмена данными между ПК на ОС Windows и смартфоном (например, через терминал Termux). Использование тяжеловесных корпоративных решений в таких случаях избыточно, а публичные мессенджеры попросту недоступны. Именно здесь оптимальным решением становятся P2P (peer-to-peer) технологии, где устройства общаются напрямую через сетевые сокеты.
Исходя из описанной проблематики, тема данного проекта является крайне востребованной и своевременной.
Цель проекта: разработать независимое, легковесное консольное приложение на языке Python для двустороннего обмена сообщениями в локальной сети, не требующее подключения к глобальному интернету и централизованных серверов.
Для достижения поставленной цели были сформулированы следующие задачи:
 * Изучить теоретические основы сетевого взаимодействия (модель OSI, стек протоколов TCP/IP, принципы работы сетевых сокетов).
 * Проанализировать существующие подходы к созданию локальных чатов и обосновать выбор языка Python и его встроенных библиотек (socket, threading).
 * Разработать архитектуру приложения, обеспечивающую одновременный прием и отправку сообщений за счет многопоточности.
 * Написать и отладить программный код, обеспечивающий кроссплатформенную совместимость (работа на десктопных и мобильных ОС в пределах одной подсети).
 * Провести тестирование разработанного мессенджера в реальных условиях домашней сети, оценив его стабильность и отказоустойчивость.
Решение этих задач позволит не только создать удобный инструмент для локальной коммуникации, но и глубоко разобраться во внутреннем устройстве сетевых протоколов передачи данных. Теоретическая база, необходимая для понимания этих процессов, подробно рассматривается в первой главе.
(Примечание к форматированию: чтобы введение из файла 1000143383.jpg заняло заявленные 2-4 страницы, этот текст следует набрать 14-м шрифтом Times New Roman с полуторным интервалом, а также можно расширить первый абзац дополнительными цитатами конкретных авторов из учебников по ИТ-безопасности).