А где эти "всякие геймдев митапы"? Говорите так, словно это за хлебом сходить. Опять же туда небось надо не с пустыми руками идти, верно?
Насчет стека технологий тоже не просто. На уровне эксперта я владею только языком Lua. Остальное так быстро развивается, что мои знания устарели. Но я сейчас птица в свободном полёте. И люди как раз и нужны, чтобы вместе учиться, развиваться, что-то пробовать. Одному без опыты и сложно, и главное скучно. Никто не ругает и не подсказывает.
Конечно, это так. Проблема только в том, что знание это нужно закрепить опытом, а для этого нужно пользоваться устаревшим компилятором. Без этого знание это просто улетучится. Ну и быстрого изучения языка тоже не получится. А так, да, о пользе знаний было бы глупо спорить.
Уточните, как именно различаются файлы (испорченный и оригинальный)? Размер больше/меньше? Дефекты каждый раз одинаковые (при повторном скачивании)? Дефекты в начале\конце файла? И так далее. Нужно провести побайтовое сравнение (на глаз). А пока что вариантов слишком много, и гадать не вижу смысла.
Контрольные суммы и так очевидно, что разные, это почти бесполезная информация.
Представьте, что коммутатор «XY» (ну, или маршрутизатор как вариант) разделили на два устройства «X» и «Y». Один порт коммутатора находится в одном конце света, другой — в другом. Какая, по-вашему, должна быть авторизация между портами в пределах одного устройства? Однако, опять же, как именно пересылать данные между портами X и Y — зависит от устройства. Почему бы не использовать TCP/IP для пересылки данных между портами?
Главное — чтобы «внешние» параметры потерь и пинга на внешних портах устройства были в пределах нормы. А что внутри, — не так важно, лишь бы работало.
Чисто теоретически возможно такое:
— На стадии X «черный ящик» разбирает трафик (может заодно сжать) и расфасовывает в свои собственные пакеты.
— На стадии Y «черные» пакеты снова собираются и восстанавливается исходный трафик.
Точно так же от Y к X, т.е. это некая двусторонняя обертка трафика типа VPN, но с поддержкой многоканальности, резервирования и всяческой коррекции ошибок. То, что происходит между X и Y — это их сугубо личное дело. А компьютеры «A» и «B» могут вообще «видеть» друг друга, словно они в одной локальной сети, в одном и том же адресном пространстве.
По идее такое «решение» должно постоянно диагностировать каналы и их параметры, и всё время менять приоритеты, или даже общую политику согласования.
Но это всё в теории очень красиво. На практике же мне не приходилось сталкиваться с подобным. Но я надеюсь, что на хабре есть специалисты, которые очень хорошо в этом разбираются.
Во-первых, рассматриваются плоскости, включая соседние (читайте внимательнее, пожалуйста, прежде чем комментировать).
Во-вторых, это лишь пример алгоритма, не претендующий на решение и указывающий на то, что задача слишком общая.