Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Linux - Алексей Александрович Стахнов на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Адресация в TCP/IP

Каждый компьютер в сети IP имеет адреса трех уровней:

1. Локальный адрес узла , определяемый технологией (например, Ethernet), с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети – это МАС-адрес (Media Access Control) сетевого адаптера. МАС-адреса назначаются производителями оборудования и являются (теоретически) уникальными адресами, т. к. управляются централизованно, однако большинство производителей Ethernet-карт предоставляют утилиту для переназначения МАС-адреса. Для всех существующих технологий локальных сетей МАС-адрес имеет 6-байтовый формат: старшие 3 байта – идентификатор фирмы-производителя, а младшие 3 байта назначаются уникальным образом самим производителем.

•  IP-adpec , состоящий из 4 байтов (стандарт IPv4) или 16 байтов (стандарт IPv6). Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования сети. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно либо назначен по рекомендации специального подразделения Интернета (Network Information Center, NIC), если сеть должна работать как составная часть Интернета.

• Символьный идентификатор-имя , например, tosser.mail.ru. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени фирмы, имени домена. Такой идентификатор-имя используется на прикладном уровне, например, в протоколе FTP.

IP-адрес состоит из двух частей: сетевой части и адреса хоста. На основании сетевой части адреса принимается решение о сетевой маршрутизации. Адрес хоста однозначно определяет сетевое устройство, которое, в большинстве случаев, совпадает с хостом (как обычно, не обойтись без исключений – некоторые компьютеры имеют несколько IP-адресов). Стандартно IP-адреса записываются как десятичные числа (по одному на каждый байт адреса), разделенные точками. К примеру, 192.168.44.2. Однако не все сетевые адреса могут использоваться для назначения их компьютерам. Исключениями являются адреса 0.0.0.0, 127.0.0.1, 255.255.255.255 и некоторые другие. Существует несколько классов сетевых адресов (табл. 3.6).

Таблица 3.6. Распределение сетевых адресов по классам сетей

* В колонке «Формат» буквы С обозначают сетевую часть адреса, а буквы М – его компьютерную часть.

Выделением IP-адресов занимается служба регистрации информационного центра InterNIC, но если необходимо получить 4–5 IP-адресов, то их вполне может предоставить любой интернет-провайдер. Однако не все адреса предназначены для доступа из Интернета. Существует группа адресов, предназначенных для использования только в локальных сетях. Вот эти адреса:

• 10.0.0.0-10.255.255.255

• 172.16.0.0-172.31.255.255

• 192.168.0.0-192.168.255.255

Как можно видеть, это адреса классов А, В и С соответственно.

Несколько IP-адресов имеют специальное значение:

• адрес, в котором сетевая часть содержит нули, соответствует хосту в локальной сети. Например, 0.0.0.145 соответствует рабочей станции 145 в локальной сети, а адрес 0.0.0.0 – текущему хосту;

• сеть с адресом 127.Х.Х.Х – является фиктивной сетью, не имеющей никаких аппаратных сетевых интерфейсов и состоящей только из локального компьютера. Адрес 127.0.0.1 всегда обозначает текущую машину и имеет символическое имя localhost;

• адрес, содержащий в какой-либо части число 255, обозначает широковещательный адрес. Например, пакет, посланный по адресу 192.168.3.255, будет отослан всем компьютерам в сети 192.168.3, а пакет, посланный по адресу 255.255.255.255, отправится по всем компьютерам Интернета.

Символьные имена Интернета имеют следующую структуру:

Имя_компьютера.домен3уровня.домен2уровня.домен1уровня

Например: www.rambler.ru, www.yahoo.com, www.fklan.com.ua.

Домены первого уровня стандартизированы и состоят из двух или трех букв латинского алфавита. Правда, в последнее время вводятся домены первого уровня, состоящие из более чем трех букв, но пока массового распространения они не получили. Как правило, домен первого уровня может иметь имя типа com, org, net, mil или двухсимвольного названия страны, за которой закреплен домен: ru – Россия, иа – Украина, uk – Великобритания. Относительно имени домена второго уровня строгих правил нет. Для доменов первого уровня типа com домен второго уровня имеет имя компании или фирмы. Для домена страны правило именования несколько другие. В частности, для России имя домена второго уровня определяется покупателем -k примеру, exler.ru, а для Украины имя домена второго уровня – это либо название областного центра (odessa.ua), либо имя типа com, org, net, mil. Похожая ситуация наблюдается и в других странах – Швеция, Франция, Германия имена доменов второго уровня жестко не закрепляют, а Великобритания, Тайвань, Япония – закрепляют.

Протокол адресации ARP/RARP

Не смотря на то, что адресация IP-пакетов осуществляется при помощи IP-адресов, при передаче данных с компьютера на компьютер необходимо использовать аппаратные МАС-адреса (конечно, кроме тех случаев, когда используется соединение типа «точка-точка»). Для определения соответствия аппаратных МАС-адресов IP-адресам служит протокол ARP (Address Resolution Protocol) – протокол преобразования адресов. Он применяется в сетях любых типов, использующих широковещательный режим. ARP можно применять только в пределах одной сети. Однако это не мешает передавать пакет через несколько сетей, просто при прохождении пакетом маршрутизатора, он определяет новый МАС-адрес приемника. Каждый компьютер в сети создает кэш ARP, который содержит последние запросы.

Иногда аппаратные адреса необходимо транслировать в IP-адреса. Для этого используется протокол RARP (Reverse Address Resolution Protocol, обратный протокол преобразования адресов).

Протокол ICMP

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

Протоколы транспортного уровня

Протоколы транспортного уровня базируются на протоколе IP. Существуют два протокола транспортного уровня – TCP и UDP. Эти протоколы обеспечивают передачу данных с заданными характеристиками между источником и приемником данных. Эти протоколы вводят новый уровень адресации, так называемый номер порта (port number), который определяет, какому процессу на хосте передаются данные. Номера портов занимают два байта. Существует список соответствия номеров портов приложениям, определенный в RFC1700 (Request For Comments, запрос для пояснений. Данные документы описывают стандарты протоколов Интернета и их взаимодействия). Некоторые зарезервированные порты приведены в табл. 3.7.

Таблица 3.7. Сервисы и закрепленные за ними порты

Протокол TCP

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

Протокол TCP имеет следующие характеристики, обуславливающие его широкое использование:

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

• доставка данных является надежной. Перед отправкой следующего пакета источник информации должен получить подтверждение о приеме предыдущего пакета от приемника информации;

• возможность управления потоком данных;

• возможность доставки экстренных данных.

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

Протокол UDP

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

В качестве примера приведем несколько приложений, использующих протокол U DP:

• сервер DNS;

• программы, использующие протокол синхронизации времени NTP;

• программы, использующие протокол удаленной загрузки ВООТР.

Для всех перечисленных программ предполагается, что в случае утери пакета необходимые действия (повторная посылка пакета, выдача сообщения и тому подобные действия) осуществляются самими программами. В случае необходимости гарантированной доставки данных используется протокол TCP.

Протоколы уровня приложений

Последний, четвертый уровень – уровень приложений. К сожалению, почти каждый разработчик программ, использующих протокол уровня приложения, изобретает свой протокол или модифицирует уже существующие. Однако существует некий костяк протоколов, описанный в соответствующих RFC. В зависимости от используемого протокола транспортного уровня протоколы уровня приложений либо полагаются на надежную доставку данных (протокол TCP), либо придумывают свой способ контроля достоверности данных (при использовании протокола UDP). Большая часть протоколов уровня приложений в качестве команд используют обычные английские слова (к примеру, протокол SMTP, HTTP), что значительно упрощает отладку приложений.

Протокол FTP

Протокол передачи файлов. Используется для организации и приема файлов. Позволяет просматривать каталоги и файлы, переименовывать их, удалять и т. п. При пересылке файлов контролирует их целостность. Существует «младший брат» протокола FTP – TFTP, который намного проще в реализации, и, в основном, используется для загрузки информации на бездисковые рабочие станции.

Протокол SMTP

Простой протокол передачи почтовых сообщений. Позволяет работать с электронной почтой. Благодаря тому, что все команды – обычные английские слова, можно с помощью программы telnet подключиться на 25-й порт (SMTP) и передавать соответствующие команды с консоли.

Протокол Telnet

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

Сетевая файловая система NFS

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

Протокол IPX

IPX (Internet Packet Exchange) – протокол обмена пакетами между сетями, разработан фирмой Novell для своего программного продукта NetWare. Однако начиная с четвертой версии своей операционной системы, фирма Novell стала внедрять поддержку протокола TCP/IP, а в пятой версии протокол TCP/IP стал практически «родным» для NetWare. Тем не менее, протокол IPX еще достаточно широко используется.

Протокол IPX произошел от протокола межсетевых датаграмм IDP (Internet Datagram Protocol), разработанного в научно-исследовательском центре Xerox. Протокол IPX реализует механизм сокетов с негарантированной доставкой датаграмм. Поверх протокола IPX могут функционировать большое количество протоколов, в том числе:

• протокол данных маршрутизации RIP;

• протокол обмена нумерованными пакетами SPX (Sequenced Packet Exchange), гарантированная доставка;

• протокол Echo;

• протокол сообщений об ошибках;

• протокол обмена пакетами PEP (Packet Exchange Protocol);

• протокол сервисных объявлений SAP (Service Advertisement Protocol).

Существует программное обеспечение под Linux (Mars), выполняющее функции сервера NetWare, и программное обеспечение, выступающее клиентом для серверов NetWare. Также есть программное обеспечение под Linux, позволяющее маршрутизировать пакеты IPX.

Протокол AppleTalk

Протокол AppleTalk используется в сетях фирмы Apple. Реально, помимо компьютеров Apple, он не используется нигде. В операционной системе Linux существует поддержка этого протокола, что позволяет взаимодействовать с компьютерами Apple.

Протокол NetBIOS

Протокол, используемый фирмой Microsoft в своих продуктах.

Протокол DECnet

Группа сетевых продуктов фирмы DEC. Поддержка в операционной системе Linux этого протокола существует. Однако маловероятно, что вы столкнетесь с этим протоколом.

Стандарты в Интернете

Стандарты Интернета описаны в документах, известных как RFC (Request For Comments). В табл. 3.8 приведены некоторые стандарты.

Таблица 3.8. Список основных стандартов Интернета

Ссылки

• www.rfc-editor.org – сайт, посвященный RFC.

• Man-страница (встроенная страница помощи) arp – программы, работающей с ARP-таблицей.

Глава 4 Идеология файловой системы

Одним из столпов операционной системы является файловая система. От ее архитектуры, возможностей, надежности во многом зависит работоспособность операционной системы. Помимо продуманной «родной» файловой системы крайне желательно, чтобы была возможность также работать с другими наиболее распространенными файловыми системами (например, FAT 16/FAT 32). В этой главе мы подробно рассмотрим, что нам предлагает Linux.

История развития файловых систем Linux

Первоначально Linux разрабатывался как расширение операционной системы Minix, и было вполне логично взять от предшественника все, что можно, поскольку такое решение позволяло достаточно быстро пройти этап проектирования (ведь все уже и так разработано, надо было только создать соответствующий программный код). На тот момент (начало 1990-х, компьютеры на базе 386-го процессора считались мощными, в порядке вещей был жесткий диск емкостью 120 Мбайт) файловая система Minix была достаточно эффективна. Однако ее архитектурные ограничения (адреса блоков 16-битные, что ставит предел максимального объема файловой системы в 64 Мбайт, каталоги содержат записи с ограниченным размером, имя файла не должно превышать 14 символов) очень скоро вынудили разработчиков задуматься об альтернативной файловой системе. Была разработана «Extended File System» (Ext FS – расширенная файловая система), затем ее сменила в качестве стандартной «Second Extended File System» (Ext2FS – вторая расширенная файловая система). Сегодня практически завершена разработка следующей версии файловой системы Ext3 – с поддержкой журналирования. Существуют также и другие журналируемые файловые системы: ReiserFS (стандарт de-facto журналируемых файловых систем для серверов на базе Linux) и JFS от фирмы IBM. По всей видимости, в ближайший год будет произведен полный перевод Linux на журналируемую файловую систему. Пока же большинство системных администраторов используют файловую систему ReiserFS. Однако достаточно много аналитиков преде казывают большую вероятность использования системы JFS. Аргументы в ее пользу достаточно весомы: имя IBM, отлаженность, хорошая масштабируемость и надежность. Посмотрим, кто победит.

Файл

Ключевым понятием в операционной системе Linux является концепция файла. Практически все моменты, связанные с данными, в том или ином виде представляются в виде файла или операций с файлами. Для операционной системы Linux по большому счету, все равно, с каким устройством или процессом взаимодействовать – система работает с файлом. В результате получается весьма унифицированный интерфейс.

Типы файлов

Поскольку понятие файла применяется к достаточно разнородным вещам (файл как таковой, физические устройства, каталоги и т. п.), поневоле возникает разделение файлов на типы. В Linux существует шесть типов файлов:

• файл;

• каталог;

• файл устройства;

• канал (FIFO, PIPE);

• ссылка (link).

• сокет (Socket).

Файл

Содержит информацию в некотором формате. Для операционной системы – просто набор байтов. Вся интерпретация содержимого файла осуществляется прикладной программой.

Каталог

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

Файл устройства

В операционной системе Linux доступ к устройствам осуществляется через специальные файлы. Такой файл является точкой доступа к драйверу устройства. Существует два типа файлов устройств: символьные и блочные.

Символьный файл устройства используется для небуферизированного обмена данными с устройством – байт за байтом.

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

Канал

Файлы этого типа используются для связи между процессами для передачи данных.

Ссылки

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

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

Сокет

Сокеты предназначены для взаимодействия между процессами. Часто используются для доступа к сети TCP/IP.

Владельцы файлов

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

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

Как правило, права доступа к файлу изменяются от максимальных у владельца файла до минимальных (вплоть до полного отсутствия) у всех остальных. Устанавливать и изменять права доступа к файлу или каталогу могут только два пользователя – владелец файла и администратор системы (пользователь root). Изменить права доступа к файлу можно утилитой chmod.



Поделиться книгой:

На главную
Назад