Дослідження протоколу TCP/IP /укр./ (28157-1)

Посмотреть архив целиком

Міністерство освіти Украіни

Одеський Державний Університет ім. І.І.Мечникова

Інститут математики , єкономіки та механіки

Факультет інформаційних технологій
















Випускна робота

Тема: Дослідження протоколу TCP/IP




















ОДЕСА – 1999


Содержание

Введение………………………………………………………………………3

  1. Персональные компьютеры в сетях TCP/IP…………………………9

    1. Иерархия протоколов TCP/IP …………………………………………9

    2. IP адресация и имена объектов в сети Internet ……………………….11

    3. Подсети………………………………………………………………….14

    4. Маршрутизация TCP/IP………………………………………………..17

  2. Windows и сети…………………………………………………………..26

    1. Реализация TCP/IP для Windows ……………………………………..26

    2. Атаки TCP/IP и защита от них ………………………………………..32

    3. Активные атаки на уровне TCP……………………………………….34

    4. Предсказания TCP seguence number………………………………….35

    5. Десинхронизация нулевыми данными………………………………..38

    6. Детектирование и защита ……………………………………………...39

    7. Пассивное сканирование……………………………………………….40

Заключение…………………………………………………………………..43

Литература……………………………………………………………………46



Введение

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

Протоколы TCP/IP были разработаны, а затем прошли долгий путь усовершенствований для обеспечения требований феномена ХХ века – глобальной сети Internet. Протоколы TCP/IP используются практически в любой коммуникационной среде, от локальных сетей на базе технологии Internet, до сверхскоростных сетей АТМ, от телефонных каналов точка – точка до трансатлантических линий связи с пропускной способностью в сотни мегабит в секунду. В названии семейства присутствуют имена двух протоколов – TCP и IP. В 1969 году Агентство Исследований DAPRA Министерства Обороны США начало финансирование проекта по созданию экспериментальной сети коммутации пакетов .Эта сеть, названная APRANET, была построена для обеспечения надежной связи между компьютерным оборудованием различных производителей. По мере развития сети были разработаны коммуникационные протоколы - набор правил и форматов данных, необходимых для установления связи и передачи данных. Так появилось семейство протоколов TCP/IP. В 1983 году TCP/IP был стандартизирован ( MIL STD ) , в том же время агентство DAPRA начало финансирование проекта Калифорнийского университета в Беркли по поддержке TCP/IP в операционной системе UNIX.

TCP/IP - это установка протоколов, используемых для связи компьютерных сетей и маршрутизации движения информации между большим количеством различных компьютеров. "TCP" означает "Протокол контроля передачи", а "IP" означает "Протокол межсетевого взаимодействия". Протоколы стандартизированы описанными допустимыми форматами, обработкой ошибок, передачей сообщений и стандартами связи. Компьютерные системы, которые подчиняются протоколам связи, таким как TCP/IP, могут использовать общий язык. Это позволяет им передавать сообщения безошибочно к нужным получателям, не смотря на большие различия в аппаратере и программном обеспечении различных машин. Многие большие сети были выполнены с этими протоколами, включая DARPA сеть. Разнообразные университеты, учреждения и компьютерные фирмы связаны в глобальную сеть, которая следует протоколам TCP/IP. Тысячи индивидуальных машин подсоединены к глобальной сети. Любая машина глобальной сети может взаимодействовать с любой другой (термин "глобальная сеть" обычно используется для названия дествия объединения двух или более локальных сетей. В результате получается сеть из сетей "internet"). Машины в глобальной сети называются "hosts"(главные ЭВМ) или "nodes"(узловые ЭВМ). TCP/IP обеспечивает базу для многих полезных средств, включая электронную почту, передачу файлов и дистанционную регистрацию. Электронная почта предназначена для передачи коротких текстовых файлов. Прикладные программы для передачи файлов могут передавать очень большие файлы, содержащие программы и данные. Они также могут выполнять контрольные проверки правильности передачи данных. Дистанционная регистрация позволяет пользователям одного компьютера зарегистрироваться на удаленной машине и продолжать интерактивный сеанс связи с этой машиной.

Протокол межсетевого взаимодействия (IP). IP определяет несвязанную пакетную доставку. Эта доставка связывает одну или более пакетно-управляемые сети в глобальную сеть. Термин "несвязанную" означает, что получающая и посылающая машины не связаны собой непосредственным контуром. Здесь индивидуальные пакеты данных (дейтаграммы) маршрутизируются через различные машины глобальной сети к локальной сети-получателю и получающей машине. Таким образом сообщения разбиваются на несколько дейтаграмм, которые посылаются отдельно. Заметьте, что несвязанная пакетная доставка сама по себе ненадежна. Отдельные дейтаграммы могут быть получены или не получены и с большой вероятностью могут быть получены не в том порядке, в котором они были посланы. TCP увеличивает надежность. Дейтаграмма состоит из заголовка, информации и области данных. Заголовок используется для маршрутизации и процесса дейтаграммы. Дейтаграмма может быть разбита на малые части в зависимости от физических возможностей локальной сети, по которой она передается.

Когда шлюз посылает дейтаграмму к локальной сети, которая не можетразместить дейтаграмму как единый пакет, она должна быть разбита на части, которые достаточно малы для передачи по этой сети. Заголовки фрагментов дейтаграммы содержат информацию, необходимую для сбора фрагментов в законченную дейтаграмму. Фрагменты необязательно прибывают по порядку, в котором они были посланы; программный модуль, выполняющий IP протокол на получающей машине, должен собирать фрагменты в исходную дейтаграмму. Если какие-либо фрагменты утеряны, полная дейтаграмма сбрасывается.

Протокол контроля передачи (TCP).

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

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


1. Персональные компьютеры в

cетях TCP/IP

1.1 Иерархия протоколов TCP/IP


Протоколы TCP/IP широко применяются во всем мире для объединения компьютеров в сеть Internet. Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных компьютерных подсетей. Иерархию управления в TCP/IP – сетях обычно представляют в виде пятиуровневой модели, приведенной на рисунке.

  1. Этот нижний уровень hardware описывает ту или иную среду передачи данных.

  2. На уровне network interface (сетевой интерфейс) лежит аппаратно–зависимое программное обеспечение, реализующее распространение информации на том или ином отрезке среды передачи данных. Отметим, что TCP/IP,изначально ориентированный на независимость от среды передачи, никаких ограничений от себя на программное обеспечение этих двух уровней не накладывает. Понятие “среда передачи данных” и “программное обеспечение сетевого интерфейса” могут на практике иметь различные по сложности и функциональности наполнения –это могут быть и просто модемное двухточечное звено, и представляющая сложную многоузловую коммуникационную структуру сеть Х.25 или Frame Relay.

  3. Уровень internet (межсетевой) представлен протоколом IP. Его главная задача – маршрутизация (выбор пути через множество промежуточных узлов) при доставке информации от узла – отправителя до узла – адресата. Вторая важная задача протокола IP – сокрытие аппаратно –программных особенностей среды передачи данных и предоставление вышележащим уровням единого интерфейса для доставки информации. Достигаемая при этом канальная независимость и обеспечивает многоплатформненное применение приложений, работающих над TCP/IP.

  4. Протокол IP не обеспечивает транспортную службу в том смысле, что не гарантирует доставку пакетов, сохранение порядка и целостности потока пакетов и не различает логические объекты (процессы),порождающие поток информации. Это задачи других протоколов - TCP/IP и UDP,относящихся к следующему transport(транспортному) уровню.TCP и UDP реализуют различные режимы доставки данных.TCP, как говорят ,- протокол с установлением соединения. Это означает ,что два узла ,связывающиеся при помощи этого протокола ,”договариваются” о том ,что будут обмениваться потоком данных, и принимают некоторые соглашения об управлении этим потоком. UDP (как и IP) является дейтаграммным протоколом, т.е. таким, что каждый блок передаваемой информации обрабатывается и распространяется от узла к узлу не как часть некоторого потока, а как независимая единица информации – дейтаграмма.

  5. Выше – на уровне application (прикладном) - лежат прикладные задачи, такие как обмен файлами, сообщениями электронной почты, терминальный доступ к удаленным серверам.

1.2 IP адресация и имена объектов в сети Internet

Каждому компьютеру в сети Internet присваивается IP – адрес, в соответствии с тем, к какой IP – сети он подключен.

Cтаршие биты 4 – х байтного IP – адреса определяют номер IP – сети. Оставшаяся часть IP – адреса - номер узла. Существуют 5 классов IP - адресов, отличающиеся количеством бит в сетевом номере и номере узла.

Адресное пространство сети Internet может быть разделено на непересекающиеся подпространства – “ подсети “, с каждой из которых можно работать как с обычной сетью TCP/IP. Единая IP – сеть организации можно строиться как объединение подсетей. Стандарты TCP/IP определяют структуру IP – адресов. Для IP – адресов класса В первые два байта являются номером сети Оставшаяся часть IP – адреса может использоваться как угодно. Стандарты TCP/IP определяют кол – во байт, задающих номер сети.

Удобнее обращаться к компьютерам не по их числовым адресам , а по именам (host name).Список этих имен хранится в специальной базе данных Domian Name System (DNS). Например, компьютеру по имени “ comsys.ntukpi.kiev.ua “ в DNS соответствует IP – адрес 194.44.197.195.

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

Популярность TCP/IP и архитектуры на шине PCI подвигла Apple на создание продукта, который имеет отношение сразу к двум названным категориям. Новый Power Macintosh 9500 оснащен процессором и высокоскоростной шиной PCI ,предоставляя пользователям, занимающимся издательским делом, созданием систем мультимедиа и размещением информации в Internet , более высокую производительность .

Power Mac 9500 поставляется вместе с новой версией MacOs, System 7.5.2 и Open Transport 1.0 , заменившим AppleTalk и MacTCP, благодаря чему , Macintosh получает дополнительные сетевые и коммуникационные возможности и совместимость .

TCP/IP Internet продемонстрировала свою способность приспосабливаться практически к любому средству связи.

Можно ожидать скорой реализации беспроволочного TCP/IP – доступа. Уже через 1 –2 года переносная вычислительная техника по своим возможностям ни в чем не уступит стационарной. Основной трудностью будет не столько возможность осуществления IP – соединения ,сколько преодоление мобильными пользователями проблем , связанных с динамической IP – конфигурацией.

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

Протоколы TCP/IP опираются не на широковещание для осуществления масштабируемости , необходимой для распространения сети на весь земной шар . Компьютер , использующий TCP/IP , для нормальной работы должен знать некоторых ключевых компонентов – шлюзов и сервера имен . Для глобальной объединенной сети важны имена и адреса . В отличии от популярных протоколов для ПК ,TCP/IP снабжен схемами обеспечения уникальности IP – адресов и сетевых имен . Процедура распознавания сетевых при помощи TCP/IP традиционно осуществляется посредством громоздкого преобразования имен NetBios в IP – адреса в файле LMHOSTS , который обычно создается вручную в каждом узле.В общем виде IP – адрес представляет собой 4 разделенных точками десятичных числа , например 128.66.12.1. Этот формат адреса называется точечная десятичная нотация .IP – адрес идентифицирует сеть и конкретный компьютер в этой сети . Число байтов , определяющих сеть и компьютер , варьируются в зависимости от класса адреса .

1.3.Подсети

Адреса постов в сети также должны быть уникальными. Достичь этого можно 2 способами. Во – первых, регистрировать адреса всех хостов сети централизованно. Этот способ лучше всего использовать при работе в маленьких сетях, где сетевой администратор может работать со всеми имеющимися адресами , не боясь разорваться на части . Если же вы работаете в большой сети , то рекомендуется воспользоваться вторым способом . В этом случае локальному сетевому администратору предоставляются блоки адресов , и он затем определяет индивидуальный адрес хоста , выбирая его из блока . Блок адресов может быть как набором адресов хоста , так и формально определенной подсетью .

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

Чтобы определить меньшую сеть внутри большей, необходимо задать адрес подсети и адрес хоста определяется маской подсети ( subnet mask ) . Маска подсети – это битовый шаблон, в котором битам , используемым для адреса подсети , присвоены значения 1 , а битам , используемым для адреса хоста , - значения 0 .

Маски подсети определены только локально. Они специально установлены при конфигурировании каждого хоста и на удаленные хосты не передаются . Следовательно , маска подсети применима только к адресам локальной сети и нормально работает только в том случае , если используется в каждой системе такой сети . Когда хост получает уникальный IP – адрес , он должен получить и уникальное имя . Выбор имени хоста – это на волнующий вопрос . Для обеспечения уникальности имен хостов используются те же способы , что и для IP – адресов . Если хост обращается лишь к хостам вашей локальной сети , то достаточно сделать его имя уникальным только в пределах данной сети . Но если он обменивается информацией со всем миром , то его имя должно быть неповторимым во всем мире .

Гарантия уникальности – это дело службы регистрации в InterNIC . Она присваивает глобально уникальное имя домена каждому, кто правильно его затребует . Этот процесс очень похож на присвоение номера сети . Как и IP – адреса , имена хостов также делятся на части , которые определяют и конкретный хост в нем. Имена записываются от частного к общему, в виде серии разделенных точками слов и аббревиатур . Они начинаются с имени компьютера , далее последовательно указываются имена локальных доменов вплоть до имени домена , определенного службой NIC ,и заканчивается именем домена высшего уровня . Чтобы пояснить эту структуру, рассмотрим пример .

Допустим, в домене nuts.com* имеется компьютер с именем penaut . В домене nuts.com вы можете использовать короткое имя penaut ,но пользователи с другой стороны земного шара должны обращаться к нему только по имени penaut.nuts.com .Уникальность имениnuts.com гарантирует служба InterNIC ,а уникальность имени penaut внутри nuts.com - администратор локального домена. В небольших сетях обычно используют одну базу данных имен , которая контролируется администратором . Домены больших сетей подразделяются на поддомены , и ответственность за определение имен внутри поддомена возлагается на администратора поддомена . Как только NIC назначит организации имя домена , эта организация получит право образовывать поддомены без ведома NIC .

Пример .

Внутри домена nuts.com можно организовать под домен sales.nuts.com и возложить ответственность за этот под домен на Тайлера Мак – Кефферти из отдела сбыта. Он будет присваивать имена хостам в своем поддомене , одно из которых может быть peanut . Хост с таким именем не будет конфликтовать с описанным выше хостом peanut , поскольку его полное имя peanut.sales.nuts.com.

Служба имен.

Каждый домен и поддомен обслуживается сервером имен ( name server) . Сервер имен берет имя хоста и превращает его в IP - адрес для использования программами TCP/IP . Если ваше сеть соединена с Internet , вам придется воспользоваться DNS , и вас будет касаться все, о чем говорилось выше. Пока ваша система работает в небольшой изолированной сети , IP адреса именам хостов можно присваивать с помощью таблицы хостов . Таблица хостов - это файл имен хостов и адресов , который считывается непосредственно в ПК . Системный администратор должен постоянно обновлять эту таблицу .

1.4. Маршрутизация TCP/ IP

TCP/IP не может обойтись без маршрутизации . Чтобы достичь удаленного места назначения, ваш компьютер должен знать туда правильный путь. Эти пути определяются маршрутами , указанными в таблице мест назначения , для достижения которых используются шлюзы . Для помещения маршрутов в эту таблицу обычно применяются 2 метода : статистическая маршрутизация и динамическая . 1 – ая осуществляется сетевым администратором , а динамическая – самой системой через протоколы маршрутизации . В ПК чаще всего используют статистическую маршрутизацию, единственный статистический маршрут по умолчанию ( default route ) , который указывает на маршрутизатор , переправляющий все данные для ПК .

Настройка маршрутизации для DOS отличается от настройки маршрутизации для UNIX – систем , поскольку DOS не относится к числу многозадачных ОС . Из – за отсутствия многозадачности протокол маршрутизации не может быть запущен как фоновый процесс . Это одна из причин того , почему ПК чаще используют статистическую маршрутизацию . Кроме того , многие реализации TCP/IP для ПК позволяют ввести только один статистический маршрут . Системный администратор UNIX может запустить протокол маршрутизации и позволить маршрутизатору создать таблицу маршрутов на своей машине. Конфигурация ПК может быть различной . ПК позволяет ввести только один маршрут , даже если их на самом деле два . Если же данные необходимо передать через другой маршрутизатор, это будет выполнено с помощью протокола ICMP . В этом случае выберите по умолчанию шлюз , который используется наиболее часто , и он будет сам исправлять маршрут, т.е. при необходимости пересылать данные по другому маршруту . В этом случае по умолчанию следует задавать тот шлюз , который используется наиболее часто , а не тот , через который проходит больше всего маршрутов.

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

Еще один конфигурационный параметр TCP/IP – это широковещательный адрес . Им называют специальный, используемый системой для общения со всеми компьютерами локальной сети одновременно. Стандартный широковещательный адрес – это IP – адрес , в котором все биты номера хоста имеют значение 1.

Выбор программного пакета TCP/IP аналогичен выбору сетевой карты и основан на анализе соотношения эффективность/стоимость. Поддержка со стороны поставщика и легкость конфигурирования также имеет большое значение , но на выбор программ влияют некоторые дополнительные факторы . 1 – цена . Никто не разбрасывается бесплатными аппаратными средствами , но бесплатные пакеты программ существуют . Самая большая опасность бесплатных программ кроется в том , что в нужный момент для них может не оказаться необходимой технической поддержки . Сетевое программное обеспечение должно отвечать вашим требованиям , т.е. иметь такие специфические особенности , которые отвечают требованиям сетевых служб и которые правильно понимают пользователи . В программном обеспечении TCP/IP для DOS при работе с сетью используются те же команды , что и в программном обеспечении для UNIX , так что обширная документация TCP/IP, написанная для UNIX ,может быть полезна пользователям ПК.

Приложения DOS ,TCP/IP

PRT


TSR


SNMP



PCNFS.SYS.TSR



DOS

Драйвер сетевого

Устройства

Аппаратные средства


Рис. 1. Программный модуль PC/NFS

На рис.1 показано , как выглядит TCP/IP , инсталлированный в системе DOS .Модули , отображенные на рисунке , характерны для пакета PC/NFS разработанного фирмой SunSoft . Однако структура драйверов и резидентных программ одинакова для всех реализаций TCP/IP для DOS.Имена и функции модулей в каждой из реализаций будут свои, но основные средства ,с помощью которых реализуется работа TCP/IP, остаются неизменными . Это – прерывания драйверы устройств и резидентные программы .Резидентные программы (TSR) – это такие программы , которые остаются в памяти после того , как управление перелается системе DOS. Резидентные программы TCP/IP обычно запускаются во время загрузки системы из файла AUTOEXEC.BAT.Такая программа сначала запускает маленькую программу , которая устанавливает вектор прерываний , резервирует необходимую память и возвращает управление DOS, используя специальную функцию 31h стандартного прерывания DOS 21h. Эта специальная функция существует , поскольку резидентные программы - стандартная часть DOS , предназначенная для реализации фоновых процессов в ограниченной форме . Большое преимущество реализации программы TCP/IP как резидентной программы – это скорость . Программа все время находится в памяти и может обрабатывать запросы в реальном режиме времени . Недостаток такой реализации в том , что резидентная программа уменьшает объем доступной пользователю памяти . По этой причине очень важно при установке резидентного пакета TCP/IP в системе DOS пользоваться менеджером памяти .

TCP/IP работает в самых разных сетях потому , что он не зависит от физических особенностей конкретной сети . Однако , хотя он и не требует конкретной сети , ему все равно нужна хоть какая – то физическая сеть , чтобы передавать информацию из одного пункта в другой. Чтобы запустить TCP/IP в DOS ,мы должны инсталлировать драйвер для карты сетевого интерфейса . Физическое устройство общается с DOS и приложениями с помощью драйвера . Физическое аппаратное обеспечение сети и его драйвер на самом деле не являются частью стека протокола TCP/IP , но это необходимый компонент для работы TCP/IP.Наличие драйверов устройств – сильная черта DOS. Благодаря этому к системе очень легко добавлять новые устройства, не изменяя ядра операционной системы . Стандарт , определенный компанией Microsoft , называется Network Device Interface Specification (NDIS), а стандарт от NovellOpen Datalink Interface (ODI).Это несовместимые стандарты. Большинство реализаций TCP/IP поддерживает как драйверы NDIS , так и драйверы ODI , и большинство карт сетевого интерфейса поставляется с драйверами обоих типов. Данные стандарты позволяют поддерживать на одном компьютере мультипротокольные стеки .

Приложения

TCP/IP

Служба

NetWare

Протоколы

TCP/IP

Оболочка рабочей

Станции

Конвертер

ODI

Протоколы Novell

IPX


Уровень поддержки


Мультипротокольный драйвер


Сетевая карта


Рис.2. Мультипротокольные стеки

Это означает, что если используется драйвер NDIS или ODI, то TCP/IP может пользоваться одним и тем же интерфейсом вместе с другими сетевыми протоколами, например протоколами для NetWare.

На рис. 2 показан стек протоколов TCP/IP , использующий одну и ту же карту сетевого интерфейса вместе с протоколом IPX , использующим драйвер ODI .Возможность организовать несколько стеков протоколов на одном сетевом интерфейсе является очень важной особенностью , так как TCP/IP часто приходится сосуществовать с NetWare и другими протоколами для ПК.

Процесс инсталляции TCP/IP в системе DOS состоит из двух основных этапов: копирование программы на жесткий диск и конфигурирование ее для конкретной системы. Эти две задачи часто реализуются при помощи специальных инсталляционных программ под названием Install или Setup. Обычно программа инсталляции необходима только для того, чтобы распаковать программу, которая находится на дискетах в сжатом виде . Конфигурирование TCP/IP для DOS представляет собой сложную задачу . В отличие от системы UNIX, конфигурационные команды в разных реализациях TCP/IP для DOS не похожи друг на друга .

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

TCP/IP имеет собственный конфигурационный файл и собственный синтаксис команд . Установку некоторых конфигурационных значений TCP/IP можно выполнить при помощи протокола самонастройки BOOTP.Этот протокол позволяет клиенту получить свой IP – адрес и другие параметры конфигурации с центрального сервера . ПК с операционной системой DOS запускают только клиента службы имен , который называют ресолвер. Конфигурирование ресолвера требует только указанного по умолчанию имени домена и адреса одного сервера имен. В процессе отладки новой конфигурации используется 2 типа команд : команды, которые выводят текущую конфигурацию, и команды, которые тестируют сетевые связи. Классическая тестовая программа TCP/IP – это ping.Она посылает эхо – запрос ICMP протоколу IP удаленной системы. Если система отвечает, то связь работает.

Команда имеет вид:

C: \ ping almond.nuts.com

almond.nuts.com is alive

Система DOS имеет множество команд для вывода данных о конфигурации TCP/IP.


2 . Windows и сети

2.1 Реализация TCP/IP для Windows

Windows – это еще одна причина популярности DOS . Windows – это не операционная система - это графический пользовательский интерфейс (GUI ) , который работает в DOS как приложение . Чтобы использовать Windows, нужно сначала инсталлировать DOS. Windows продлила жизнь DOS, преодолев два ее больших недостатка – отсутствие многозадачности и поддержку ограниченного объема памяти. В Windous используется система под названием кооперативная многозадачность, которая при распределении ресурсов полагается на хорошее поведение приложений. Все пакеты, реализующие TCP/IP для DOS , основаны на резидентных программах , но методы конфигурирования и синтаксис команд у каждого пакета свои . Существуют 3 способа реализации TCP/IP для Windows : резидентные программы (TSR) – они могут обслуживать любое окно Windows , а одна и та же резидентная программа может быть использована и в системе DOS, если Windows не запущена. Динамически связываемая библиотека (DLL) – это библиотека , которая может быть вызвана программой , даже если она не была подключена к программе при компилляции. DLL требует очень мало памяти, и память, которую они используют - это имеющаяся в изобилии доступная для Windows память. Они вообще не используют область памяти DOS. Приложения TCP/IP , основанные на DLL, нуждаются в обслуживании Windows. Виртуальный драйвер (VxDVirtual Device Driver) – это новейший подход к разработке TCP/IP для Windows .VxD представляет собой драйвер устройства , созданный внутри виртуальной машины Windows. Как и драйвер DOS , VxD может быть создан , чтобы обрабатывать прерывания в реальном режиме времени. VxD не использует область памяти DOS.

Системы на основе TSR работают и в DOS , и в Windows. Они рекомендуются в том случае, если требуется программа реализации TCP/IP, которая работает в обеих средах . Реализация TCP/IP с использованием DLL и в виде VxD- родные для Windows программы. Возможности VxD выше, чем DLL, поскольку они могут управляться прерываниями. Поэтому технология VxD - перспективное направление и для программного обеспечения TCP/IP. Вне зависимости от метода реализации системы, наиболее важным фактором при выборе пакета TCP/IP для Windows является количество приложений , которые он поддерживает , и качество этих приложений . Существует несколько пакетов TCP/IP для Windows, из которых можно выбрать наиболее приемлемый . Например, пакет фирмы Microsoft – это стек протоколов TCP/IP, но в нем отсутствуют многие приложения, а пакет фирмы SPRY - это полный набор приложений, но без стека протоколов. Winsock – это стандарт API, определенный для TCP/IP в системе Windows. Winsock представляет собой реализацию интерфейса в стиле Berkeley TCP/IP socket Microsoft Windows.

Безотказная работа серверов возможна только в том случае , если на них установлена надежная ОС. Большинство администраторов локальных сетей обратились к ОС NetWare, а администраторы сетей ,работающих на основе протокола TYCP/IP, – k UNIX . Microsoft хотела бы изменить эту ситуацию. Самой последней ее попыткой решить эту задачу было создание OC Windows NT – многозадачная , многопользовательская и многофункциональная ОС . Ее однопользовательская версия предназначена для мощных рабочих станций, а для серверов была выпущена многопользовательская версия Windows NT Server. OC NT с самого начала предназначалась для работы в сетях . Уже первые версии включали в себя программное обеспечение, предназначенное для поддержки протоколов TCP/IP, и предполагали построение корпоративных сетей, работающих на основе этих протоколов . BIOS ,или базовая система ввода/вывода – стандартная часть DOS, реализующая процедуры, используемые приложениями при запросе сервиса ввода /вывода у системы DOS. Протокол NetBios расширил ее, дополнив функциями ввода /вывода через сеть. Протокол не обеспечивает передачу пакетов через маршрутизаторы . Пакеты передаются только в пределах одной физической сети. Работа NetBios зависит от особенностей функционирования нижележащего, физического уровня сети, на котором обеспечивается широковещательная передача информации. Преимущества и недостатки NetBios делают его очень удобным для использования в маленькой изолированной локальной сети и совершенно непригодным для большой производственной сети. Протокол NetBios можно запустить поверх множества других сетевых протоколов, включая TCP/IP. Протокол NetBios over TCP/IP - это когда сообщения NetBios встраиваются в дейтаграммы TCP/IP. Он относится к числу стандартных .Приложения , использующие NBT, могут работать только вместе с теми приложениями, которые также используют NBT. Они не могут взаимодействовать с приложениями, работающими поверх NBT. Каждая система, которая ожидает связи через глобальную сеть TCP/IP, должна запустить у себя NBT. Приложения NetBios не могут взаимодействовать со стандартными приложениями TCP/IP. Самое большое разочарование, ожидающие пользователей при работе в сети TCP/IP- это Mail, система электронной почты . Проблема для пользователей сети TCP/IP состоит в том , что с помощью Mail невозможно послать письмо никому, кроме других пользователей Microsoft Mail . Windows NT –это операционная система со встроенной поддержкой сети. Для того чтобы работать в глобальных сетях Microsoft предложила протокол NBT . При функционировании сети под управлением этого протокола используется файл LMHOSTS ( чтобы уменьшить зависимость от широковещательных передач ) и параметр Scope ID ( для фильтрации нежелательной информации при работе в больших глобальных сетях ). Помимо этих двух специальных параметров , при конфигурировании TCP/IP для NT требуется установка тех же опций , что и для других реализаций TCP/IP. Система Windows NT поставляется с несколькими приложениями , работа которых зависит от интерфейса приложений NetBios . Эти приложения обеспечивают выполнение большинства функций, предлагаемых стандартными приложениями TCP/IP. При конфигурировании TCP/IP потребуется информация об аппаратном обеспечении, адресах и маршрутизации . Так как этот протокол создавался в расчете на независимость от любого конкретного аппаратного обеспечения , информация , которая в некоторых других сетевых средствах встроена в аппаратные компоненты, не может быть встроена в TCP/IP. Эту информацию должен ввести тот, кто ответственен за конфигурацию . Изначально протокол TCP/IP создавался для того , чтобы обеспечить надежную работу сети, состоящей из мэйнфреймов и мини – компьютеров и находящейся под управлением профессиональных администраторов . Компьютеры в сетях TCP/IP рассматриваются как равноправные системы ( peers). В протоколе TCP/IP не делается различий между ПК и мэйнфреймами. Для TCP/IP все они хосты , а ко всем хостам предъявляются одинаковые требования по конфигурации. Конечно TCP/IP тоже совершенствуется по мере развития ПК и программного обеспечения локальных сетей . В протоколе TCP/IP также появились средства , облегчающие задачу конфигурирования ПК – RARP , BOOTP.

Протокол обратного перевода адресов RARP – это протокол, который преобразует физический сетевой адрес в IP – адрес . Чтобы создать сервер RARP , который может помочь с начальной инсталляцией программного пакета TCP/IP, вам нужен не зависящий от TCP/IP способ узнать адрес Ethernet. Иногда этот адрес обозначен на самой плате Ethernet или приведен в документации к ней . Протокол RARP – полезное средство , но он обеспечивает получение только IP- адреса . Чтобы работа сервера была более эффективной , требуется предварительное конфигурирование программного обеспечения TCP/IP для пользователей ПК. Не каждая реализация TCP/IP может быть заранее сконфигурирована.

Протокол cамозагрузки BOOTP определяется в RFC 951. Этот документ представляет BOOTP в качестве альтернативы RARP, т.е. когда используется BOOTP, надобность RARP отпадает. BOOTP обеспечивает намного больше конфигурационной информации и постоянно совершенствуется. Исходная спецификация протокола позволяла поставщикам без проблем расширять его возможности , что весьма способствовало его дальнейшему развитию. Можно отконфигурировать сервер BOOTP так , чтобы он имел дело сразу со многими клиентами. Сервер легко конфигурируется при помощи всего лишь двух диалоговых окон, но за эту легкость приходится платить.Динамический протокол конфигурации хостов DHCP является представителем последнего на сегодняшний день поколения BOOTP. Он обеспечивает клиента полным набором значений конфигурационных параметров TCP/IP . Также позволяет выполнять автоматическое распределение IP- адресов. Сервер DHCP обеспечивает поддержку клиента BOOTP .

2.2. Атаки TSP/IP и защита от них

Атаки на TCP/IP можно разделить на два вида: пассивные и активные. При данном типе атак крэкеры никаким образом не обнаруживают себя и не вступают напрямую во взаимодействие с другими системами. Фактически все сводиться к наблюдению за доступными данными или сессиями связи.

Атака типа подслушивание заключаются в перехвате сетевого потока и его анализе. Англоязычные термин - "sniffing"

Для осуществления подслушивания крэкеру необходимо иметь доступ к машине, расположенной на пути сетевого потока, который необходимо анализировать; например, к маршрутизатору или PPP-серверу на базе UNIX. Если крэкеру удастся получить достаточные права на этой машине, то с помощью специального программного обеспечения сможет просматривать весь трафик, проходящий через заданные интерфейс.

Второй вариант - крэкер получает доступ к машине, которая расположена в одном сегменте сети с системой, которой имеет доступ к сетевому потоку. Например, в сети "тонкий ethernet" сетевая карта может быть переведена в режим, в котором она будет получать все пакеты, циркулирующие по сети, а не только адресованной ей конкретно. В данном случае крэкеру не требуется доступ к UNIX - достаточно иметь PC с DOS или Windows (частая ситуация в университетских сетях) .

Поскольку TCP/IP-трафик, как правило, не шифруется (мы рассмотрим исключения ниже), крэкер, используя соответствующий инструментарий, может перехватывать TCP/IP-пакеты, например, telnet-сессий и извлекать из них имена пользователей и их пароли.

Следует заметить, что данный тип атаки невозможно отследить, не обладая доступом к системе крэкера, поскольку сетевой поток не изменяется. Единственная надежная защита от подслушивания -- шифрование TCP/IP-потока (например, secure shell) или использование одноразовых паролей (например, S/KEY).

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

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



2.3.Активные атаки на уровне TCP

При данном типе атак крэкер взаимодействует с получателем информации, отправителем и/или промежуточными системами, возможно, модифицируя и/или фильтруя содержимое TCP/IP-пакетов. Данные типы атак часто кажутся технически сложными в реализации, однако для хорошего программиста не составляет труда реализовать соотвествующий инструментарий. К сожалению, сейчас такие программы стали доступны широким массам пользователей (например, см. раздел про SYN-затопление).

Активные атаки можно разделить на две части. В первом случае крэкер предпринимает определенные шаги для перехвата и модификации сетевого потока или попыток "притвориться" другой системой. Во втором случае протокол TCP/IP используется для того, чтобы привести систему-жертву в нерабочее состоянии.

Обладая достаточными привилегиями в Unix (или попросту используя DOS или Windows, не имеющие системы ограничений пользователей), крэкер может вручную формировать IP-пакеты и передавать их по сети. Естественно, поля заголовка пакета могут быть сформированы произвольным образом. Получив такой пакет, невозможно выяснить откуда реально он был получен, поскольку пакеты не содержат пути их прохождения. Конечно, при установке обратного адреса не совпадающим с текущим IP-адресом, крэкер никогда не

получит ответ на отосланный пакет. Однако, как мы увидим, часто это и не требуется.

Возможность формирования произвольных IP-пакетов является ключевым пунктом для осуществления активных атак.

2.4.Предсказание TCP sequence number

Данная атака была описана еще Робертом Моррисом (Robert T. Morris) в A Weakness in the 4.2BSD Unix TCP/IP Software Англоязычный термин -- IP spoofing. В данном случае цель крэкера - притвориться другой системой, которой, например, "доверяет" система-жертва (в случае использования протокола rlogin/rsh для беспарольного входа). Метод также используется для других целей -- например, для использовании SMTP жертвы для посылки поддельных писем.

Вспомним, что установка TCP-соединения происходит в три стадии (3-way handshake): клиент выбирает и передает серверу sequence number (назовем его C-SYN), в ответ на это сервер высылает клиенту пакет данных, содержащий подтверждение (C-ACK) и собственный sequence number сервера (S-SYN). Теперь уже клиент должен выслать подтверждение (S-ACK). Схематично это можно представить так:

После этого соединение считается установленным и начинается обмен данными. При этом каждый пакет имеет в заголовке поле для sequence number и acknowledge number. Данные числа увеличиваются при обмене данными и позволяют контролировать корректность передачи.

Предположим, что крэкер может предсказать, какой sequence number (S-SYN по схеме) будет выслан сервером. Это возможно сделать на основе знаний о конкретной реализации TCP/IP. Например, в 4.3BSD значение sequence number, которое будет использовано при установке следующего значения, каждую секунду увеличивается на 125000. Таким образом, послав один пакет серверу, крэкер получит ответ и сможет (возможно, с нескольких попыткок и с поправкой на скорость соединения)предсказать sequence number для следующего соединения.

Если реализация TCP/IP использует специальный алгоритм для определения sequence number, то он может быть выяснен с помощью посылки нескольких десятков пакетов серверу и анализа его ответов.

Итак, предположим, что система A доверяет системе B, так, что пользователь системы B может сделать "rlogin A"_ и оказаться на A, не вводя пароля. Предположим, что крэкер расположен на системе C. Система A выступает в роли сервера, системы B и C - в роли клиентов.

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

После этого крэкер может попробовать притвориться системой B, для того, что бы получить доступ к системе A (хотя бы кратковременный).

Крэкер высылает несколько IP-пакетов, инициирующих соединение, системе A, для выяснения текущего состояния sequence number сервера. Крэкер высылает IP-пакет, в котором в качестве обратного адреса указан уже адрес системы B. Система A отвечает пакетом с sequence number, который направляется системе B. Однако система B никогда не получит его (она выведена из строя), как, впрочем, и крэкер. Но он на основе предыдущего анализа догадывается, какой sequence number был выслан системе B Крэкер подтверждает "получение" пакета от A, выслав от имени B пакет с предполагаемым S-ACK (заметим, что если системы располагаются в одном сегменте, крэкеру для выяснения sequence number достаточно перехватить пакет, посланный системой A). После этого, если крэкеру повезло и sequence number сервера был угадан верно, соединение считается установленным.

Теперь крэкер может выслать очередной фальшивый IP-пакет, который будет уже содержать данные. Например, если атака была направлена на rsh, он может содержать команды создания файла .rhosts или отправки /etc/passwd крэкеру по электронной почте.

Представим это в виде схемы 1:


Естественно, 100% срабатывания у этой схемы нет, например, она не застрахована от того, что по дороге не потеряются какие-то пакеты, посланные крэкером. Для корректной обработки этих ситуаций программа должна быть усложнена.

2.5.Десинхронизация нулевыми данными

В данном случае крэкер прослушивает сессию и в какой-то момент посылает серверу пакет с "нулевыми" данными, т.е. такими, которые фактически будут проигнорированы на уровне прикладной программы и не видны клиенту (например, для telnet это может быть данные типа IAC NOP IAC NOP IAC NOP...). Аналогичный пакет посылается клиенту. Очевидно, что после этого сессия переходит в десинхронизированное состояние.

ACK-буря

Одна из проблем IP Hijacking заключается в том, что любой пакет, высланный в момент, когда сессия находится в десинхронизированном состоянии вызывает так называемый ACK-бурю. Например, пакет выслан сервером, и для клиента он является неприемлимым, поэтому тот отвечает ACK-пакетом. В ответ на этот неприемлимый уже для сервера пакет клиент вновь получает ответ... И так до бесконечности.

К счастью (или к сожалению?) современные сети строятся по технологиям, когда допускается потеря отдельных пакетов. Поскольку ACK-пакеты не несут данных, повторных передачи не происходит и "буря стихает".

Как показали опыты, чем сильнее ACK-буря, тем быстрее она "утихомиривает" себя -на 10MB ethernet это происходит за доли секунды. На ненадежных соединениях типа SLIP - ненамного больше.

2.6.Детектирование и защита

Есть несколько путей. Например, можно реализовать TCP/IP-стэк, которые будут контролировать переход в десинхронизированное состояние, обмениваясь информацией о sequence number/acknowledge number. Однако в данному случае мы не застрахованы от крэкера, меняющего и эти значения.

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

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

Стопроцентную защиту от данной атаки обеспечивает, как всегда, шифрование TCP/IP-трафика (на уровне приложений - secure shell) или на уровн протокола - IPsec). Это исключает возможность модификации сетевого потока. Для защиты почтовых сообщений может применяться PGP.

Следует заметить, что метод также не срабатывает на некоторых конкретных реализациях TCP/IP. Так, несмотря на [rfc...], который требует молчаливого закрытия сесии в ответ на RST-пакет, некоторые системы генерируют встречный RST-пакет. Это делает невозможным раннюю десинхронизацию.

Для более глубокого ознакомления с этой атакой рекомендуется обратиться к IP Hijacking (CERT).

2.7. Пассивное сканирование

Сканирование часто применяется крэкерами для того, чтобы выяснить, на каких TCP-портах работают демоны, отвечающие на запросы из сети. Обычная программа-сканер последовательно открывает соединения с различными портами. В случае, когда соединение устанавливается, программа сбрасывает его, сообщая номер порта крэкеру.

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

Однако крэкер может воспользоваться другим методом -- пассивным сканированием (английский термин "passive scan"). При его использовании крэкер посылает TCP/IP SYN-пакет на все порты подряд (или по какому-то заданному алгоритму). Для TCP-портов, принимающих соединения извне, будет возвращен SYN/ACK-пакет, как приглашение продолжить 3-way handshake. Остальные вернут RST-пакеты. Проанализировав данные ответ, крэкер может быстро понять, на каких портах работают программа. В ответ на SYN/ACK-пакеты он может также ответить RST-пакетами, показывая, что процесс установки соединения продолжен не будет (в общем случае RST-пакетами автоматический ответит TCP/IP-реализация крэкера, если он не предпримет специальных мер).

Метод не детектируется предыдущими способами, поскольку реальное TCP/IP-соединение не устанавливается. Однако (в зависимости от поведения крэкера) можно отслеживать резко возросшее количество сессий, находящихся в состоянии SYN_RECEIVED (при условии, что крэкер не посылает в ответ RST) прием от клиента RST-пакета в ответ на SYN/ACK.

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

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


Заключение.

Протоколы TCP/IP прошли долгий путь усовершенствований для обеспечения требований феномена ХХ века – глобальной сети Internet.Протоколы TCP/IP используются практически в любой коммуникационной среде, от локальных сетей на базе технологии Ethernet , до сверхскоростных сетей АТМ, от телефонных каналов точка – точка до трансатлантических линий связи с пропускной способностью в сотни мегабит в секунду.

Некоторые основные положения:

-TCP/IP имеет четырехуровневую иерархию.

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

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

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

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

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

Почему сети TCP/IP не доминируют на рынке ПК?

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

Основные достоинства TCP/IP:

  • Cемейство протоколов основано на открытых стандартах, свободно доступных и разработанных независимо от конкретного оборудования или операционной системы. Благодаря этому TCP/IP является наиболее распространенным средством объединения разнородного оборудования и программного обеспечения.

  • Протоколы TCP/IP не зависят от конкретного сетевого оборудования физического уровня. Это позволяет использовать TCP/IP в физических сетях самого различного типа : Ethernet , TokenRing , X.25, т.е. практически в любой среде передачи данных.

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

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


Литература

  1. Ю.А.Кулаков, Г.М.Луцкий ”Компьютерные сети”

М. – К. “Юниор”,1998. – 384с.,ил.

  1. А.И.Гусева “Технология межсетевых взаимодействий”

М. “Диалог – МИФИ” 1997г., - 272с.

  1. Крейг Хант “ПК в сетях TCP/IP

  2. UNIX” – руководство системного администратора

1995г., Санкт – Петербург

  1. Журнал сетевых решений “ 1995г., ноябрь, том1.номер4.

  2. Сергей Дунаев “UNIX” ,”Диалог – МИФИ” Москва – 1997г.

  3. М.Шварц “ Проектирование и моделирование “ 1 – 2 том

Диалог – МИФИ'' Москва

13




Случайные файлы

Файл
titylnik.doc
36364.rtf
2514.rtf
35632.rtf
41493.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.