Новые книги

В той отрасли, где мы работаем, библиотека DirectDraw появилась довольно давно. Во всяком случае, за это время она успела доказать свои возможности, и о ней было написано несколько книг. Как обычно, эти книги отличаются по своему качеству. Однако в основном это были добротные учебники, которые (как и многие книги о компьютерах) были написаны за три месяца авторами, изучавшими предмет по ходу дела. В результате большинство этих книг содержит лишь подготовительный материал. Теперь, когда библиотека DirectDraw подросла и обрела свою репутацию (во всяком случае, она старше других компонентов DirectX), настало время уйти от основ и познакомиться с ее некоторыми нетривиальными возможностями.

Эта книга начинается с того, на чем другие книги обычно заканчивались. Мы поговорим об основах DirectDraw, но лишь в общих чертах. Читатель — опытный программист, но незнакомый с DirectDraw — сможет с ходу войти в курс дела. Затем мы перейдем к другим темам, столь же интересным, сколь и полезным.

Цель этой книги — научить вас работать с DirectDraw, а не предоставить некоторую «структурную основу» или нестандартный API, который бы выполнял за вас всю работу. Демонстрационные программы написаны на C++ и используют MFC, но совсем не для того, чтобы скрыть все технические подробности. С++ и MFC — превосходные инструменты, потому что с их помощью любое приложение можно написать несколькими разными способами. Примеры для этой книги были написаны так, чтобы при этом получались структурированные и удобные для чтения проекты, которые наглядно показывают, что и почему происходит в программе.

Помимо DirectDraw, во многих примерах используется библиотека DirectInput. Строго говоря, при программировании графики для Windows можно обойтись и без DirectInput, но ей все же стоит воспользоваться. Она работает быстрее традиционных средств ввода Windows и к тому же входит в DirectX, так что для работы с ней не потребуется никаких дополнительных SDK.
В книге?–?описание современных приемов успешных продаж, которые обычно держатся в секрете или раскрываются лишь на дорогостоящих тренингах и семинарах. Автор книги?–?успешный продавец, бизнес-консультант. В отличие от теоретиков торговли, он прекрасно знает то, о чем говорит и пишет: на протяжении более двадцати лет он продавал все?–?от кирпичей до самолетов! Все главы книги представляют собой идеальное руководство для обучения ремеслу успешной торговли. Готовыми рецептами и конкретными решениями вы сможете воспользоваться буквально через несколько минут чтения этой книги!

IP Masquerade and Network Address Translation

Глава 11. IP Masquerade и Network Address Translation

Этот сервис нужен для подключения локальной сети через один компьютер к большой внешней сети. Связано это как с появлением необходимости в защите сетей с помощью firewall, так и с тем, что полноценные сетевые адреса дороги да и не всегда нужны. В качестве примера рассмотрим сеть небольшой фирмы. Она имеет одну машину-шлюз, подключенную к Internet, остальные машины должны работать через этот шлюз. Но что делать, если их адреса относятся к внутренней частной сети? На помощь приходит IP Masquerade.

Одной из частей этого сервиса является сетевая трансляция адресов (Network Address Translation, NAT). NAT описывает процесс изменения сетевых адресов, содержащихся в заголовках пакетов. Этот подход является идеальным для решения проблемы. Таким образом, ВСЯ сеть может реально работать с Internet через ОДИН IP-адрес!

IP masquerading позволяет использовать частный IP-адрес в локальной сети и поручить маршрутизатору преобразование адресов с учетов сервисов и портов. Когда такой маршрутизатор получает пакет из внутренней сети, он меняет его так, будто пакет пришел на самом деле от маршрутизатора. Затем пакет отсылается в сеть. С пакетами ответов из сети выполняется то же самое, но в обратном порядке.

Мы имеем маленькую сеть Ethernet на частных адресах, которые не могут использоваться в Internet. Сеть имеет Linux-маршрутизатор, обеспечивающий доступ к Internet. Одно из автоматизированных рабочих мест в сети (192.168.1.3) пожелало установить подключение к удаленному компьютеру 209.1.106.178 через порт 8888. Автоматизированное рабочее место направляет пакет маршрутизатору, который идентифицирует этот запрос подключения как требование услуг masquerade. Он принимает пакет, выделяет для него порт 1035, заменяет адрес и номер порта в пакете и передает пакет в сеть. Компьютер адресата полагает, что получил подключения из Linux-компьютера, который обеспечивает masquerade, и посылает ответ. Маршрутизатор после получения этого ответа находит связь в таблице masquerade и производит обратную замену адреса и порта. Локальный компьютер полагает, что он работает непосредственно с удаленным компьютером. Удаленный главный компьютер не знает ничего относительно локального компьютера вообще и полагает, что получил подключение с Linux-компьютера, обеспечивающего masquerade.

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

Краевые эффекты

IP masquerade порождает несколько побочных эффектов. Поскольку машина с IP masquerade находится на краю двух сетей, эффекты получили название краевых. Частью они полезны, частью не очень.

Ни один из компьютеров в сети позади маршрутизатора masquerade никогда не проявится в сети непосредственно. Следовательно, вы нуждаетесь только в одном реальном адресе IP, чтобы позволить всем компьютерам делать сетевые подключения в Internet. Это имеет и плохую сторону: ни один из этих компьютеров не видим из Internet, и вы не можете непосредственно соединяться с ними из Internet. Единственный компьютер, видимый в masquerade-сети, это машина, которая обеспечивает masquerade. Это важно, когда используются услуги типа почты или FTP. Этот факт помогает определять то, что услуги нужно обеспечить masquerade-компьютером.

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

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

Наконец, некоторые сетевые сервисы либо вообще не работают через masquerade, либо требуют немало работы по их настройке. Обычно это сервисы, которым нужны входящие соединения: Direct Communications Channels (DCC), IRC, разные видео и аудио трансляций. Некоторые из этих услуг имеют модули для своей работы в такой ситуации, другие вообще не могут быть использованы.