Сетевое взаимодействие делится на семь уровней:
-
Физический уровень - передача битов по физическим каналам.
-
Канальный уровень - передача кадра данных между любыми узлами в сетях типовой топологии или соседними узлами в сетях произвольной топологии. В качестве адресов на канальном уровне используются MAC-адреса
-
Сетевой уровень - доставка пакета любому узлу в сетях произвольной топологий. На этом уровне нет никаких гарантий доставки пакета.
-
Транспортный уровень - доставка пакета любому узлу с любой топологией сети и заданным уровнем надёжности доставки. На этом уровне есть средства для установки соединения, буферизации, нумерации и упорядочивания пакетов.
-
Уровень сеанса - управление диалогом между узлами. Обеспечена возможность фиксации активной на данный момент стороны.
-
Уровень представления - предоставляет возможность преобразования данных (шифрование, сжатие)
-
Прикладной уровень - набор сетевых сервисов (FTP, E-mail и др.) для пользователей и приложения.
Сетевые протоколы:
Протокол IP:
Протокол IP при передаче данных не устанавливает виртуального соединения и использет датаграммы (пакеты данных) для отправки информации от одного компютера к другому. По протоколу IP, пакеты просто отправляются в сеть без ожидания подтверждения о получения данных, а значит - без гарантии целостности данных.
Каждый IP пакет содержит адреса отправителя и получателя, идентификатор протокола, TTL (время жизни пакета) и контрольную сумму для проверки целостности пакета.
Протоколы ARP и RARP:
Протокол ARP предназначен для определения аппаратного (MAC) адреса компьютера в сети по его IP адресу. Прежде чем данные смогут быть отправлены на какой-нибудь компьютер, отправитель должен знать аппаратный адрес получателя.
Когда компьютер посылает ARP запрос на поиск аппаратного адреса, то протокол сначала ищет этот адрес в локальном кэше. Если уже были обращения по данному IP адресу, то информация о MAC адресе должна сохраниться в кэше. Если ничего не найдено, то в сеть посылается широковещательный запрос, который получат все компьютеры сети. Тот кому принадлежит искомый IP, ответит на запрос указав свой MAC-адрес.
Протокол RARP делает обратное - определяет IP адрес по известному MAC адресу.
Протоколы TCP и UDP:
Протоколы TCP и UDP находятся на транспортном уровне, поэтому когда пакет TCP или UDP опускается на уровень ниже для отправки в сеть, он преобразовывается в IP. Здесь пакету добавляется сетевой адрес, TTL и другие атрибуты протокола IP. После этого пакет идет дальше вниз для физической отправки в сеть.
Протокол UDP:
Благодаря тому, что протокол UDP не устанавливает соединения, он работает быстрее TCP. Из-за высокой скорости его очень удобно использовать там, где данные нужно передавать быстро, и не нужно заботиться об их целостности.
Протокол TCP:
В отличие от UDP протокол TCP устанавливает связь между приемником и передатчиком и обеспечивает целостности данных и гарантии их доставки т.е. работает по принцыпу клиент-сервер.
Когда данные отправляются в сеть по TCP, то на отправляющей стороне включается таймер. Если в течение определенного времени приемник не подтвердит получение данных, то будет предпринята еще одна попытки отправки данных. Если приемник получит испорченные данные, то он сообщит об этом источнику и попросит снова отправить испорченные пакеты.
Соединение:
- Клиент, который хочет соединиться с сервером, отправляет ему SYN-запрос, указывая номер порта, к которому он хочет подсоединится, и специальное число (чаще всего случайное).
- Сервер отвечает своим сегментом SYN, содержащим специальное число сервера. Он также подтверждает приход SYN пакета от клиента с использованием ACK ответа, где специальное число, отправленное клиентом, увеличено на 1.
- Клиент должен подтвердить приход SYN от сервера с использованием ACK - специальное число сервера, увеличенное на 1.
Получается, что при соединении клиента с сервером они обмениваются специальными числами. Эти числа и используются в дальнейшем для обеспечения целостности и защищенности связи. Если кто-то другой захочет вклиниться в установленную связь, то ему надо будет подделать эти числа. Но так как они большие и выбираются случайным образом, то такая задача достаточно сложная, но решаемая.
|