Электронная библиотека » Александр Ватаманюк » » онлайн чтение - страница 6


  • Текст добавлен: 28 октября 2013, 20:24


Автор книги: Александр Ватаманюк


Жанр: ОС и Сети, Компьютеры


сообщить о неприемлемом содержимом

Текущая страница: 6 (всего у книги 19 страниц) [доступный отрывок для чтения: 6 страниц]

Шрифт:
- 100% +
Домашняя сеть

Наверняка в последнее время вы часто слышите словосочетание «домашняя сеть». Может быть, вам даже предлагают подключиться к такой сети. Не пугайтесь: это явление нормальное и повсеместное. Домашние сети возникают как грибы после дождя, и это хорошо, так как позволяет пользователям компьютеров получать понравившиеся информационные услуги не только на работе, но и дома.

Стоит сразу оговориться, что слово «домашняя» в этом случае принимает несколько другое значение, чем обычно. Оно не имеет ничего общего с домашним уютом, домашними тапочками или халатом. В случае с сетями слово «домашняя» стоит ассоциировать со словом «домовая». Домовая сеть, то есть сеть, построенная в доме, между домами, между кварталами и т. п. Поскольку слово «домовая» звучит явно некрасиво, его место заняло слово «домашняя».

Таким образом, обычно домашняя сеть – это полноценная локальная сеть, однако построенная без строгого соблюдения топологий, стандартов и т. д. Почему так? Все очень просто. Поскольку жилая квартира – не офис, не каждый согласится буравить стены, пробивать оконные рамы и разрешать другие подобные действия, чтобы подключить свой компьютер (компьютеры) к сети. В этом случае создатели домашней сети, как правило, идут навстречу пользователям, предлагая им альтернативный вариант. Вот и получается, что компьютеры подключаются любым доступным (быстрым, дешевым, легко ремонтируемым) способом. Соответственно проводка, если таковая используется, может находиться в самых невероятных местах.

На практике чаще всего встречаются домашние сети, которые в своей основе используют топологию «звезда» с применением кабеля на основе витой пары и сетевого стандарта Ethernet 802.3 100Base-TX. Кроме того, здесь же уживаются и беспроводные, и оптоволоконные сегменты для удлинения сети.

Глава 5
Модель сетевого взаимодействия и основные сетевые протоколы

Если вы были последовательны, то уже успели познакомиться с основными типами и топологиями сетей, а также сетевыми стандартами. Как и любая другая область жизни и работы человека, все действия находятся под неусыпным контролем разного рода законов и стандартов. Иначе и быть не может, так как в противном случае начинается хаос. Например, благодаря этим стандартам производители знают, какими параметрами и функциями должно обладать производимое ими оборудование, чтобы работать в тех или иных условиях.

Что касается любого типа сети, она подчиняется своим правилам и стандартам, роль которых выполняют модель взаимодействий ISO/OSI и протоколы передачи данных.

Модель ISO/OSI

Пожалуй, ключевым понятием в стандартизации сетей и всего, что к ним относится, является модель взаимодействия открытых систем (Open System Interconnection, OSI), разработанная «Международной организацией по стандартизации» (International Standards Organization, ISO). На практике применяется название модель ISO/OSI.

Описываемая модель состоит из семи уровней (рис. 5.1), каждый из которых отвечает за определенный круг задач, осуществляя их с помощью заложенных в этот уровень алгоритмов – стандартов. Поскольку главная задача – выполнить глобальную цель, то уровни связаны между собой посредством интерфейсов (процедуры взаимодействия, протоколы). Таким образом, выполнив свою часть задачи, нижестоящий уровень передает готовые данные вышестоящему. Если эти сведения по какой-то причине не соответствуют шаблону, то они возвращаются обратно на предыдущий уровень для доработки. Получается, что, когда информация пройдет всю цепочку из семи уровней, на выходе будут готовые к «употреблению» данные.

Рис. 5.1. Уровни модели ISO/OSI


Главное отличие между проводными (Ethernet 802.3) и беспроводными (IEEE 802.11) сетями кроется только в двух нижних уровнях – физическом и канальном. Остальные уровни работают абсолютно одинаково и никаких отличий не имеют.

Рассмотрим уровни модели ISO/OSI подробнее.

Физический уровень

Физический уровень – самый первый, нижний уровень. Фактически он представляет собой аппаратную часть сети и описывает способ передачи данных, используя для этого любой имеющийся канал связи: проводной или беспроводной. Исходя из среды передачи данных должно использоваться соответствующее сетевое оборудование с соответствующими параметрами передачи данных, учитывая всевозможные особенности канала, такие как полосы пропускания, защита от помех, уровень сигнала, кодирование, скорость передачи данных в физической среде и т. п.

По сути, всю описанную работу вынуждено выполнять сетевое оборудование: сетевая карта, мост, маршрутизатор и т. д.

Физический уровень – один из уровней, который отличает беспроводные сети от проводных. Главная разница между ними – среда передачи данных. В первом случае это радиоволны определенной частоты или инфракрасное излучение, во втором – любая физическая линия, например коаксиал, витая пара, оптоволокно, электрическая проводка и т. д.

Канальный уровень

Главная задача канального уровня – удостовериться, что канал передачи данных готов к этой процедуре и ничто не станет угрожать надежности передачи и целостности передаваемых пакетов. В идеале протоколы канального уровня в паре с сетевым оборудованием должны проверить, является ли канал свободным для передачи данных, не имеется ли коллизий передачи и т. п.

Такую проверку необходимо проводить каждый раз, так как локальная сеть редко состоит всего из двух компьютеров, хотя даже в этом случае канал может быть занят. Если канал свободен, то данные, которые необходимо передать другому компьютеру, делятся на более мелкие части – кадры, каждый из которых снабжается контрольной сумой и отсылается. Приняв этот кадр, получатель проверяет контрольные суммы и, если они совпадают, принимает его и отправляет подтверждение о доставке. В противном случае кадр игнорируется, фиксируется ошибка, которая отправляется получателю, и кадр передается заново. Так происходит кадр за кадром.

Как и физический уровень, канальный уровень также имеет различия для проводных и беспроводных сетей, что связано со спецификой сетевого оборудования. Так, беспроводное оборудование на данный момент работает только в полудуплексном режиме, то есть одновременно может вестись только прием или только передача, что резко снижает эффективность обнаружения коллизий в сети и соответственно скорость передачи данных в беспроводных сетях.

Поскольку модель ISO/OSI жестко регламентирует действия каждого уровня, то разработчикам прошлось немного модернизировать протоколы канального уровня для работы в беспроводных сетях. В частности, в случае беспроводной передачи данных используются протоколы CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) или DCF (Distributed Coordination Function).

Протокол CSMA/CA характеризуется тем, что избегает коллизий при передаче данных, используя явное подтверждение доставки, которое сообщает, что пакет доставлен и не поврежден.

Работает это следующим образом. Когда один компьютер собирается передать данные другому, то всем машинам сети посылается короткое сообщение (ready to send, RTS), содержащее в себе информацию о получателе и времени, необходимом для передачи данных. Получив такой пакет, все компьютеры прекращают передачу данных на указанное время. Получатель отсылает отправителю сообщение (clear to send, CTS) о готовности приема данных, получив которое, компьютер-отправитель высылает первую порцию данных и ждет подтверждения о доставке пакета. После получения подтверждения о доставке передача данных продолжается. Если подтверждение о доставке не пришло, то компьютер-отправитель повторно передает конкретный пакет.

Такая система гарантирует доставку пакетов данных, но в то же время заметно снижает скорость передачи данных. Именно поэтому беспроводные сети по скорости всегда отставали и будут отставать от проводных. Тем не менее существуют способы повысить скорость передачи данных за счет оптимизации передачи служебных данных. Кроме того, появляются и новые беспроводные стандарты.

Сетевой уровень

Как и канальный, сетевой уровень занимается передачей информации. Однако между ними есть существенная разница: канальный уровень может передавать данные между компьютерами, подключенными с использованием одной топологии. Если сеть комбинированная, то задача выполняется на сетевом уровне.

Данные в сетевом уровне делятся на порции, которые называются пакетами. Перед началом передачи данных другому компьютеру происходит преждевременная настройка связи, заключающаяся в выборе пути, по которому будут передаваться сведения. Этот процесс называется маршрутизацией.

Выбор нужного маршрута – одна из основных функций сетевого уровня. Невозможно выбрать идеальный путь, так как рано или поздно на одном из отрезков может повыситься трафик, что приведет к увеличению времени передачи пакетов. Поэтому нужный путь выбирается по среднему значению всех необходимых параметров: пропускной способности, интенсивности трафика, дальности и скорости передачи, ее надежности и т. п.

Как правило, при выборе маршрута используется информация установленных в сети маршрутизаторов. В их таблицах хранится информация о скорости передачи между отдельными отрезками сети, трафике, о среднем времени передачи и т. д., основываясь на которой протоколы сетевого уровня могут выбрать оптимальный путь прохождения данных.

Организовать сетевой уровень можно как программно, так и аппаратно.

Транспортный уровень

Транспортный уровень можно отнести к высокому уровню, то есть к такому, управлять которым можно программно, а не только с помощью аппаратных средств.

Идеальную сеть создать невозможно – хоть где-то, но будет отклонение от требований построения. Если сеть достаточно большая и включает несколько маршрутизаторов, то это не только усложняет ее, но и приводит к увеличению ненадежности.

Основная задача транспортного уровня – обеспечить требуемую степень надежности при передаче информации между выбранными компьютерами. Транспортный уровень может делать это пятью способами. Каждый из них отличается не только защищенностью данных при пересылке, но и временем их доставки или возможностью исправления возникших ошибок. По этой причине, начиная с данного уровня, выбрать вариант доставки может программа, то есть непосредственно пользователь. Зачем использовать максимальные предосторожности перед отправкой и во время отсылки данных, если сеть характеризуется хорошим качеством и низкой вероятностью появления ошибок? Логично выбрать наиболее простой способ из пяти существующих. Наоборот, если в сети часто происходят коллизии, приводящие к потере информации, то следует использовать способ, гарантирующий доставку информации в любом случае.[11]11
  Гарантировано для беспроводного варианта. В проводном варианте может помешать лишь физический обрыв кабеля.


[Закрыть]

Сеансовый уровень

Сеансовый уровень служит для контроля передачи пакетов между компьютерами. Синхронизируя принятые и отправленные пакеты, протоколы сеансового уровня отслеживают недостающие пакеты и передают их заново. За счет того что передаются только недостающие пакеты, достигается повышение скорости передачи данных.

Уровень представления данных

Чтобы урегулировать процессы отправки и получения информации между двумя компьютерами, существует уровень представления, отвечающий за приведение информации к единому синтаксическому стандарту. Именно здесь можно эффективно использовать разнообразные методы шифрования информации, чем и занимаются многие протоколы.

Прикладной уровень

Прикладной уровень отвечает за связь с прикладными программами. Это обычный набор протоколов, с помощью которых можно наладить доступ к любым ресурсам сети.

Таким образом, пройдя все семь уровней, сообщение пользователя пополняется служебной информацией (заголовками) каждого из них. Аналогично, попав к требуемому получателю и опять пройдя все семь уровней, информация очищается от всей служебной информации.

Что такое протокол и зачем он нужен

В предыдущем разделе была очень кратко рассмотрена модель ISO/OSI, которая описывает работу любого сетевого оборудования и сети в целом. Однако это всего лишь модель, рисунок на бумаге. Чтобы все это начало работать, необходим реализующий ее механизм, которым является протокол передачи данных, точнее, множество протоколов.

Таким образом, протокол – набор правил, используя которые можно передать данные между компьютерами. Все эти правила работают в рамках модели ISO/OSI и не могут отступать от нее ни на шаг, так как это может повлечь за собой несовместимость оборудования и программного обеспечения.

Поскольку каждый из уровней модели ISO/OSI обладает своими особенностями, реализация всех этих особенностей невозможна в рамках одного протокола. Мало того, она даже невыгодна, так как значительную часть логики можно создавать на уровне аппаратного обеспечения, что приводит к ускорению обработки данных. Исходя из этих соображений было разработано множество узконаправленных протоколов, каждый из которых выполняет свою задачу и делает это с максимальной отдачей и быстродействием.

Все протоколы можно разделить на низкоуровневые и высокоуровневые.

Низкоуровневые реализованы давно, и никаких кардинальных изменений в них не вносится, что за длительное время их использования позволило найти и устранить все возможные дыры и ошибки.

Примечание

Низкоуровневые протоколы реализуются на аппаратном уровне, что позволяет добиться максимального быстродействия и безошибочности.

Высокоуровневые протоколы разрабатывают и совершенствуют постоянно. В этом нет ничего плохого, даже наоборот: всегда существует возможность придумать новый, более эффективный способ передачи данных.

Примечание

Как правило, высокоуровневые протоколы реализуются в виде драйверов к сетевому оборудованию под разные операционные системы.

Существует множество разных протоколов, каждый из которых имеет свои особенности. Одни из них узконаправленные, другие имеют более широкое применение. Протоколы разрабатывают несколько фирм, поэтому неудивительно, что каждая из них создает свой собственный стек (набор) протоколов. Хотя эти стеки по умолчанию между собой несовместимы, существуют дополнительные протоколы, являющиеся мостами между ними, что позволяет использовать в одной операционной системе несколько несовместимых между собой протоколов.

Стоит также упомянуть, что не все протоколы могут применяться в одинаковых условиях. Случается, применение одного из них выгодно для небольшой группы компьютеров и крайне невыгодно для большого количества машин с несколькими маршрутизаторами и подключением к Интернету.

Наибольшую популярность приобрели такие стеки протоколов, как NetBIOS/NetBEUI, IPX/SPX, TCP/IP, DECnet и др.

Протокол NetBIOS/NetBEUI
NetBIOS

NetBIOS (Network Basic Input/Output System) – один из первых сетевых протоколов, разработанный в 1984 году для создания интерфейса передачи сообщений по локальной сети: как одноранговой, так и на основе сервера.

Чтобы передавать сообщения по сети NetBIOS, используются логические имена компьютеров. Когда такая машина заходит в сеть, она не только сообщает об этом всем остальным, но и заносит их имена в свою динамическую таблицу.

В силу своей простоты NetBIOS – один из самых быстрых протоколов, и это его сильная сторона.

На самом деле NetBIOS не является полноценным протоколом, так как описывает только программную часть передачи данных – набор сетевых API-функций. Это означает, что, используя его, можно только подготовить данные для передачи. Физическая же передача может осуществляться только с помощью любого транспортного протокола, например TCP.

Положительный момент этой ситуации – непривязанность к транспортному протоколу, что позволяет использовать любой подходящий для этих целей протокол. Кроме того, неоспоримым плюсом является его быстродействие.

Минус в том, что для полноценной работы NetBIOS требуется, чтобы на всех машинах сети стоял одинаковый транспортный протокол, иначе компьютеры не смогут синхронизироваться. Однако главный недостаток протокола – отсутствие поддержки маршрутизации, без чего не обходится любая мало-мальски развернутая сеть.

NetBEUI

NetBEUI (NetBIOS Extended User Interface) – транспортный протокол, «собрат» протокола NetBIOS. Однако он обладает большей скоростью доставки сообщений, надежностью и устойчивостью к ошибкам, что достигается путем подтверждающих пакетов, каждый раз присылаемых в ответ на полученное сообщение. При этом прежде всего в самом начале устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что уже гарантирует доставку пакетов.

Еще один момент надежности передачи данных – механизм, отслеживающий время «жизни» пакета (TTL). Если по его истечении компьютер-получатель не пришлет подтверждения о доставке очередного пакета данных, то компьютер-отправитель отсылает порцию данных повторно. Повторная отправка сведений аналогична предыдущей, и если пакет оказался поврежденным и компьютер-получатель его отклоняет, то он сообщает об этом компьютеру-отправителю.

Как и NetBIOS, NetBEUI не поддерживает маршрутизацию в сети, что не позволяет эффективно использовать его скорость и применять в глобальных сетях. Тем не менее этот протокол – один из основных компонентов NT-систем, и устанавливается он автоматически.

Протокол IPX/SPX

Протоколы IPX и SPX – представители стека протоколов, разработанных компанией Novell, которая в свое время являлась прямым конкурентом компании Microsoft. Конкуренция велась в области сетевых операционных систем: с одной стороны стояла операционная система Novell Netware, с другой – Windows NT. Соответственно каждая из этих систем использовала свой набор протоколов.

К сожалению, со временем Novell сдала свои позиции, и первенство завоевали сетевые версии операционных систем Windows NT. Тем не менее разработанные Novell протоколы используют до сих пор и будут использоваться еще очень долго.

Протоколы IPX и SPX являются продолжением протокола XNS компании Xerox, который не получил широкого распространения.

IPX/SPX представляет собой набор подпротоколов, каждый из которых может выполнять возложенную на него задачу на высоком уровне (рис. 5.2). Тем не менее два нижних уровня (физический и сетевой) реализуют стандартные протоколы Ethernet.

Рис. 5.2. Распределение протоколов стека IPX/SPX по уровням модели ISO/OSI (в сравнении)


Рассмотрим некоторые протоколы, входящие в состав протокола IPX/SPX.

• IPX (Internetwork Packet Exchange) – отвечает за работу сетевого уровня. Его основные функции – вычисление адресов компьютеров сети и организация маршрутизации между двумя выбранными компьютерами. Анализируя данные других протоколов, IPX составляет наиболее эффективный путь маршрутизации, после чего пакет данных (датаграмма[12]12
  В своей работе протокол использует понятие датаграммы – пакета данных, снабженных служебной информацией о получателе и отправителе.


[Закрыть]
) с добавленной информацией об адресе получателя и отправителя отсылается по выбранному маршруту. К сожалению, этот протокол самостоятельно работать не может, так как не устанавливает соединение между компьютерами, а без этого нельзя ожидать от него надежности доставки пакетов.

• SPX (Sequenced Packet Exchange) – протокол транспортного уровня, отвечающий за установку соединения между выбранными компьютерами и передающий сообщения – датаграммы.

• SAP (Service Advertising Protocol) – отвечает за работу сразу трех уровней: прикладного, представления данных и сеансового. Однако одна из основных его функций – рассылка сообщений о доступных сервисах, благодаря чему все сетевые устройства знают об имеющихся сетевых сервисах. SAP – очень мощное средство организации службы поддержки, однако это и его основной недостаток. Поскольку любое сетевое устройство сети постоянно посылает о себе информацию, это приводит к повышению трафика сети и соответственно – снижению ее эффективности. Для уменьшения засорения сети используют возможности маршрутизаторов, позволяющих фильтровать SAP-сообщения.

• NCP (NetWare Core Protocol) – протокол верхнего (прикладного) уровня, отвечающий за взаимодействие сервера операционной системы Novell NetWare и рабочей станции. С его помощью пользователь видит любую нужную информацию о ресурсах сети, работает с файлами, меняет их атрибуты, удаляет, копирует и т. д.

Протокол TCP/IP

TCP/IP – самый распространенный протокол транспортного уровня и в локальных, и в глобальных сетях, разработанный Министерством обороны США более 20 лет назад.

Протокол TCP/IP имеет открытый интерфейс. Это означает, что вся информация об этом протоколе открыта и любой может использовать ее посвоему желанию и назначению.

В названии данного протокола есть разделитель, то есть оно состоит из наименований двух протоколов. Первый из них – TCP (Transmission Control Protocol), второй – IP (Internet Protocol). Следовательно, в данном протоколе участвует по меньшей мере два протокола (рис. 5.3).

Рис. 5.3. Распределение протоколов стека TCP/IP по уровням модели ISO/OSI (в сравнении)


На самом деле в стеке TCP/IP участвует намного больше протоколов, так как каждый из них предназначен для выполнения определенных задач. Как известно, лучше иметь несколько механизмов, работа которых отлажена до мелочей, чем один большой, но вызывающий неполадки.

Стек TCP/IP состоит из следующих протоколов.

• TCP (Transmission Control Protocol) – осуществляет обмен данными между двумя компьютерами с предварительно установленной логической связью. Он постоянно используется в Интернете, так как надежность соединения в этом случае играет очень большую роль. Кроме того, TCP обеспечивает надежность доставки сообщений, принимая подтверждения доставки каждой порции сведений, что достигается путем подтверждающих пакетов, каждый раз присылаемых в ответ на полученное сообщение. При этом в самом начале устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что уже гарантирует доставку пакетов.

• UDP (User Datagram Protocol) – при использовании этого протокола не нужно иметь установленное логическое соединение двух компьютеров. Когда передаются данные другому компьютеру, предполагается, что он где-то есть, то есть подключен к сети. В этом случае нет никакой гарантии, что обмен данными произойдет. При этом к отсылаемому пакету просто добавляется IP-адрес компьютера, которому нужно отослать сообщение. Если сообщение принято, то присылается подтверждение об этом, иначе отсылка данных повторяется через некоторый промежуток времени. Как ни странно, но протокол UDP применяется в сети достаточно часто благодаря скорости, с которой он работает. Данная скорость достигается за счет того, что не устанавливаются соединения с другими компьютерами, что позволяет использовать трафик в нужном направлении. Так, этот протокол часто применяется в сетевых играх, для передачи звуковых данных с Интернет-радио и в других случаях, где надежность доставки пакетов не играет большой роли.

• IP (Internet Protocol) – протокол более высокого уровня, чем TCP и UDP. Он используется непосредственно для передачи данных по ранее установленному (или неустановленному) соединению и имеет механизмы маршрутизации. Пользуясь информацией о маршрутизации между выбранными компьютерами, он просто добавляет адрес отправителя и получателя к пакету и отсылает его дальше. Еще одна часто используемая функция протокола – разбитие большого пакета на более мелкие составляющие на одном компьютере и соответственно соединение всех частей в одно целое на другом, что является большим плюсом данного протокола. IP не контролирует доставку сообщений конечному адресату. IP-адреса машины-отправителя и машины-получателя включаются в заголовок датаграммы и используются для ее передачи между шлюзами. При этом информация о маршрутизации, находящаяся на шлюзе, указывает, куда передать датаграмму на каждом этапе.

• ICMP (Internet Control Message Protocol) – отвечает за контроль над протоколом IP. Он отслеживает любые изменения, влияющие на процесс маршрутизации. При возникновении каких-либо ошибок об этом узнают и отправитель, и получатель, при этом в сообщении указывается причина сбоя.

• RIP (Routing Information Protocol) – родной «брат» протокола IP (они оба связаны с маршрутизацией). Тем не менее протокол RIP отвечает за выбор наилучшего пути маршрута доставки данных.

• OSPF (Open Shortest Path First) – еще один протокол, выполняющий те же действия, что и RIP.

• ARP (Address Resolution Protocol) – работает с адресами компьютеров, то есть определяет фактический адрес машины, расположенной в той или иной ветке сети. Например, если нужно узнать физический адрес в сети Ethernet, имея при этом IP-адрес, то ARP конвертирует 32-битный IP-адрес в 48-битный Ethernet-адрес.

• DNS (Domain Name System) – это также «адресный» протокол, позволяющий определять адрес компьютера на основе его логического имени.

• RARP (Revere Address Resolution Protocol) – протокол, определяющий адрес компьютера в сети. Работает аналогично протоколу ARP, однако конвертирование происходит в обратном порядке, то есть 48-битный Ethernet-адрес преобразуется в 32-битный IP-адрес.

• ВООТР (Boot Protocol) – относится к прикладному уровню. С его помощью можно запустить сетевой компьютер, используя данные о загрузке с сетевого сервера.

• FTP (File Transfer Protocol) – очень известный протокол, позволяющий загружать файлы с одного компьютера на другой.

• TELNET – позволяет налаживать связь между двумя компьютерами, используя удаленный доступ. При этом пользователь получает полный контроль над компьютером, с которым связывается.

• EGP (Exterior Gateway Protocol) – служит шлюзом, если данные необходимо передать из локальной сети во внешнюю. При этом кроме информации передаются дополнительные служебные сведения о состоянии сети.

• IGP (Interior Gateway Protocol) – еще один шлюзовой протокол, необходимый для передачи информации о маршрутизации внутри сети.

• GGP (Gateway-to-Gateway Protocol) – передает информацию о сети и текущей маршрутизации, только в этом случае данные сведения предназначены для других существующих внутренних или внешних шлюзов.

Кроме описанных, существует набор протоколов, отвечающих за разные аспекты функционирования сети, в частности администрирование, работу с электронной почтой и т. п.

Имея в составе мощный набор вспомогательных протоколов, TCP/IP не зря пользуется популярностью. К тому же сегодня это единственный эффективный протокол, который используется для работы в Интернете.

Внимание! Это не конец книги.

Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!

Страницы книги >> Предыдущая | 1 2 3 4 5 6
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации