Предисловие

Что ж, это руководство было написано по просьбе моего старого приятеля. Мне
эта идея понравилась, так как люди, прочитав его, узнавали что-то новое.
Возможно, в будущем я буду писать какие-либо другие руководства, но сейчас
я сам занимаюсь обучением — чтением руководств и других статей. Итак, у меня не было много времени и знаний, чтобы написать какое-нибудь выдающееся
руководство, но я попытался сделать все возможное… (пожалуйста, не ругайте меня за мой скудный Английский). Это руководство ориентировано прежде
всего на начинающих, интересующихся организацией сети/безопасностью и на
тех, кто мало знает о структуре и основах Интернет и его протоколах. Если
вы уже имеете некоторый опыт с рассматриваемой темой, то я полагаю, что вы
вряд ли узнаете здесь что-либо новое. В этом документе модель OSI рассмотрена наиболее простым путем, более понятным начинающим. Если вы хотите 
знать о модели OSI — все, то вам следует обратиться к другим руководствам, RFC и
книгам, которые могут быть найдены в интернет. 

Удачи… 8)

Модель OSI

Итак, что такое модель OSI? Что ж, давным-давно связь между компьютерами от
разных производителей была довольно непростой задачей, так как на них использовались самые разные протоколы и форматы данных. Но Международная Организация по Стандартизации (ISO) разработала коммуникационную архитектуру,
известную как модель Взаимосвязи Открытых Систем (OSI), определявшую стандарты связи компьютеров от разных производителей. Модель OSI была подразделена на 7 уровней, причем второй уровень содержал несколько подуровней (выделенных Институтом Электрических и Электронных Инженеров (IEEE), которые
не будут рассмотрены в этом руководстве. Бегло ознакомьтесь со следующей
таблицей:

7ой — уровень: Приложение > Сервисы
6ой — уровень: Представление > Сервисы
5ый — уровень: Сессия > Связь
4ый — уровень: Транспортный > Связь
3ий — уровень: Сетевой > Связь
2ой — уровень: Данные > Физические соединения 
1ый — уровень: Физический > Физические соединения 

Уровни определены таким образом, чтобы изменения в одном уровне не требовали
изменений в других уровнях. Верхние уровни (5, 6 и 7) более умные, чем нижние; уровень Приложения может оперировать теми же протоколами и форматами
данных, которые используются другими уровнями. Таким образом
существует существенное различие между Физическим и уровнем Приложения. Может быть сейчас
вам это довольно трудно понять, но после прочтения документа целиком вы (надо
надеяться) поймете, о чем я здесь говорю. Запрос, сгенерированный верхушкой
(например, уровнем Приложения) проходит вниз через все шесть уровней, то есть
до Физического уровня. Вы, возможно, подумаете: «Зачем нужны другие уровни?».
Что ж, ответ очень простой:
Каждый уровень занимается выполнением своих конкретных задач, но для начала давайте ознакомимся с Физическим уровнем. 

Физический Уровень (1)

Это самый простой уровень; он имеет дело только с электрическими (и оптическими)
соединениями между устройствами. Двоичные данные кодируются в импульсы, пригодные для передачи их через средства сети. Например, провода, кабели, приемо-передатчики и разъемы — все это относится к Физическому Уровню. Устройства подобно
репитерам, хабам и сетевым картам также относятся к этому уровню.

Уровень Данных (2)

Этот уровень немного «умнее» Физического уровня, так как он обеспечивает надежную передачу данных. Так как средства сети взаимодействуют с
протоколами и более высокими уровнями, то уровень Данных ответственен за конечное пакетирование
двоичных данных верхнего уровня в дискретные пакеты прежде, чем они поступают
на Физический уровень. Он посылает фреймы (блоки данных) через сеть. Ethernet
(802.2 & 802.3), Tokenbus (802.4) и Tokenring (802.5) — протоколы уровня Данных. 

Сетевой Уровень (3)

Основная задача Сетевого уровня — обеспечить функциональное назначение маршрутизации, благодаря которой пакеты могут быть переданы через границы локального сетевого сегмента в смежные сети или на тысячи миль дальше. По большей части, для
разрешения этой задачи используется IP, Протокол Интернет. Другой протокол Сетевого уровня — это, Обмен Пакетами Интернет (IPX). Этот протокол был разработан
Novell incorporation, а также некоторыми другими, подобно SPX и NCP. Эти протоколы
были реализованы на Операционной Системе Netware. Несколько функций, которые
выполняет Сетевой уровень:

— Деление потока двоичных данных в дискретные пакеты определенной длины
— Обнаружение ошибок
— Коррекция ошибок путем повторной передачи пакетов, оказавшихся плохими
— Управление потоком

Транспортный Уровень (4)

Что ж, этот уровень передает данные, используя протоколы подобно UDP, TCP и/или
SPX (SPX также используется NetWare, но он отличается от IPX тем, что он образует прямое соединение). Транспортный уровень — это центр модели OSI. Этот уровень
обеспечивает надежную, прозрачную передачу данных между конечными точками, этот
уровень также обеспечивает мультиплексирование, управление потоком и обнаружение/коррекцию ошибок. 

Семейство протоколов TCP/IP и несколько других протоколов

Прежде, чем перейти к рассмотрению пятого уровня модели OSI, я хочу
расcказать
кое-что о наиболее распространенных на данный момент протоколах: TCP/IP. Если вы уже знакомы с основами TCP/IP, то вы можете пропустить эту часть и читать дальше об уровне Сессии. 

TCP/IP

TCP означает ‘Протокол Управления Передачей’ и почти все компьютеры совместимы с этим протоколом. TCP устанавливает соединение между двумя компьютерами и передает данные между двумя хостами. Пакет состоит из заголовка и датаграммы. В
датаграмме вы обнаружите передаваемые данные, в заголовке(ах) пакета упомянутую важную информацию:

TCP:
— Исходный порт
— Порт на конечном узле
— Последовательный номер
— Подтверждающий номер
— Длина Заголовка (Стандартно — 20 Байт)
— Флаги (syn, ack, psh, fin, rst, urg)
— Размер окна
— Контрольная сумма

IP:
— IP_v4 или IP_v6
— Длина Заголовка
— DSF
— Суммированная длина
— Идентификация
— Флаги (Установлен бит Фрагментации или нет)
— Смещение Фрагментации
— TTL
— Протокол (в данном случае TCP)
— Контрольная сумма заголовка
— Исходный IP
— IP места назначения

Если вы хотите знать, как устанавливается соединение, читайте, пожалуйста,
дальше… Сначала пакет с SYN-флагом посылается по IP адресу конечного узла 
маршрута, конечный узел ответит пакетом с ACK(SYN) флагом или пакетом с
RST-флагом. Поясняю: SYN — означает SYN-(chronisation), то есть он ‘просит’ 
конечный узел установить соединение; когда тот компьютер получит этот пакет, он ответит пакетом с ACK(SYN)-флагом. ACK означает ACK-(nowledgement). После получения пакета с ACK(SYN)-флагом, компьютер возвращает ACK, это означает, что соединение установлено. Это то, что мы называем «Тройное Рукопожатие». Если соединение установлено, и один из хостов хочет его прервать, то он посылает пакет с установленным FIN-флагом. (FIN значит
FINish).
Вот таблица, которая сделает это (надо надеяться) более понятным: 

Компьютер A Компьютер B

SYN —>
<— ACK(SYN)
ACK —>

ДА, здесь соединение установлено!

FIN —>
<— ACK(FIN)
RST —>

Теперь соединение закрывается и передача данных прекращается.

Компьютер A Компьютер B

SYN —>
<— RST
ACK —>

Дерьмо… «Компьютер B» не хочет соединяться с «Компьютером A!»
(может быть на «Компьютере B» запущен файрволл)

Есть несколько путей злоупотребления протоколом TCP: SYN-флудинг,
teardrop, Smurf-атаки, последовательные атаки, етс. Для получения
более подробной информации проверьте http://neworder.box.sk
и http://packetstorm.securify.com.

Хорошо, IP — это аббревиатура Internet Protocol. Взглянем на пример
выше: если «Компьютер A» посылает пакет «Компьютеру B», то в заголовке IP-пакета будут содержаться IP-адреса обоих компьютеров, IP
места назначения (компьютера B) и исходный IP (компьютер A). Маршрутизаторы между двумя хостами смотрят заголовок IP-пакета и маскируют пакеты для следующего сегмента. Если во время ‘путешествия’
пакета в сети происходит ошибка, например конечный хост недоступен,
то используется ICMP (Протокол Управления Интернет Сообщениями)
для отправления сообщения об ошибке, так что ошибка должна быть исправлена (и пакет(ы) могли быть переданы повторно). Программы ‘ping’
и ‘traceroute’ используют ICMP сообщения для
определения статуса
хостов в других сегментах. 

В настоящее время стандартом является IP_v4, но в будущем будет использоваться
IP_v6, также называемый IP_ng (next generation). IP_v4 базируется на 32-битной
адресации, в то время как IP_v6 поддерживает(!) 128-битную адресацию. Это довольно существенное различие, таким образом при использовании IP_v6 можно будет
использовать гораздо больше IP-адресов. Заголовок IP_v6 является упрощенным заголовком IP_v4, но, возможно, в ‘апдейтах’ IP_v6 такие характеристики будут
улучшены/исправлены.

Оставить мнение

Check Also

Алмазный фонд «Хакера». Самые крутые материалы по реверсингу и malware за три года

Иногда мы, редакторы и авторы «Хакера», сами читаем «Хакер». Нет, ну то есть мы постоянно …