1. Модель OSI
Уровень | Назначение |
---|---|
7. Прикладной Application |
Отвечает за взаимодействие с приложением. Позволяет использовать в разработке приложения минимальный объем сетевого кода |
6. Представление Presentation |
Уровень для выполнения действий связанных с форматированием данных (сжатие, шифрование, кодирование и тд) |
5. Сеансовый Session |
Отвечает за установление соединения между двумя оконечными точками связи. Обеспечивает настройку правильных параметров для обеспечения двухсторонней связи между двумя приложениями (двумя приложениями на двух концах) |
4. Транспортный Transport |
Обеспечивает взаимодействие двух прикладных программ. В зависимости от используемого протокола, на этом уровне могут выполняться функции обнаружения и устранения ошибок, установки и разрыва сеанса транспортного уровня, мультиплексирования, фрагментации и управления потоком данных |
3. Сетевой Network |
Отвечает за логическую адресацию и определение маршрута между группами логических адресов |
2. Канальный Datalink |
Нужен для физической адресации и управления интерфейсной платой |
1. Физический Physical |
Отвечает за преобразование битов и байтов в электрические, оптические или радио сигналы |
Уровень 7 - прикладной
Отвечает за взаимодействие с пользовательским приложением. Обычно обменивается данными не с самим приложением, а с сетевыми приложениями, которые применяются в пользовательском приложении. Например при использовании web, пользовательским приложением будет браузер, а сетевым приложением будет ПО протокола HTTP
Примерами протоколов этого уровня могут выступить http, ftp, telnet, smtp, pop3, imap, ssh
Уровень 6 - представление
На представительском уровне происходит модификация формата данных. Например чтобы отправить изображение по электронной почте нужно преобразовать это изображение в текст (ведь почтовый протокол smtp может передавать только текст). Для этого почтовый клиент может воспользоваться протоколом многоцелевых почтовых расширений internet (miltipurpose internet mail extensions - MIME). Также с помощью этого же протокола почтовый клиент получателя сконвертирует полученный текст обратно в изображение
Также этот уровень отвечает за сжатие, шифрование и многие другие действия
Уровень 5 - сеансовый
К числу наиболее широко применяемых протоколов сеансового уровня относятся rpc, ldap и netbios
Понять смысл этого уровня сложнее всего, потому что в выполнении функций этого уровня могут учавствовать и протоколы других уровней. В модели tcp/ip эту функцию чаще всего выполняет транспортный уровень
Уровень 4 - транспортный
Наиболее выжными из выполняемых этим уровнем функций являются контроль ошибок, их исправление и управление потоком данных
Связь на этом уровне может быть как с установлением логического соединения, так и без него
Связь с установлением логического соединения предусматривает установление соединения между двумя компьютерами еще до начала передачи пользовательских данных. Это позволяет обеспечить двухстороннюю связь. Другими словами протокол предуматривает передачу служебных пакетов благодаря которым получатель может понять что вскоре к нему поступят данные, на эти служебные пакеты ("предупреждения") получатель отвечает подтверждающим пакетом. Это обеспечивает возможность предварительно удостовериться что связь между хостами возможна
Также связь с установлением логического соединения предусматривает гарантии доставки. Если при передаче пакета происходит ошибка, то происходит повторная отправка этого же пакета
С другой стороны связь без установления логического соединения. Она не устанавливает никаких соединений, а работает по принципу "отправил и забыл". Также в большинстве случаев она не предусматривает никаких средств исправления ошибок. Подразумевается, что эту задачу должно взять на себя пользовательское приложение либо один из вышестоящих уровней
Управление потоком данных нужно для того чтобы не утопить получателя в данных. Если компьютер с высокой скоростью обработки данных начнет передавать данные компьютеру с низкой скоростью обратки данных, то второй компьютер может потерять часть данных (не успеет обработать слишком большой поток данных от отправителя)
Три метода управления потоком данных:
Буферизация - этот метод позволяет справиться с коротким всплеском данных, но если данные идут непрерывным потоком, то буфер переполнится и данные начнут теряться
Уведомление о заторе - этот метод обычно используется вместе с буферизацией. При заполнении буфера получателя, получатель отправляет отправителю сообщение с сигналом прекратить передачу данных (либо снизить скорость передачи). А после того как буфер у получателя рассосется, он отпрвляет сообщение о с указанием того что передача может быть возобновлена
Но и в этом методе есть недостатки (видно на схеме)
Применение окон - это наиболее сложный, но и наиболее гибкий способ управления потоком данных. При передаче данных с применением окон разрешается передавать одновременно заранее согласованное количество пакетов (это количество и называется окном) до получения подтверждения от получателя. Это означает что передача одним хостом слишком большого количества данных для другого хоста почти исключена (ведь он сначала должен дождаться подтверждения от получателя и только потом слать вторую партию данных)
Уровень 3 - сетевой
Протоколы этого уровня обеспечивают логическую адресацию и маршрутизацию. Адрес сетевого уровня применяется для указания местонахождения хоста. Эта задача обычно решается разделением адреса на две части: поле группы и поле хоста. Это разделение позволяет каждому хосту учитывать наличие других хостов в его группе, а для передачи пакетов от одной группы к другой применяются маршрутизаторы
Уровень 2 - канальный
Канальный уровень предусматривает выполнение таких функций как устранение коллизий, физическая адресация, распознавание ошибок и фреймирование
Устранение коллизий - методы устранения коллизий позволяют определить как должен быть организован доступ к разделяемой среде передачи данных (когда к одному каналу передачи данных подключено несколько хостов и они одновременно пытаются использовать его для передачи). Если в полудуплексном канале одновременно будут слать данные более одного хоста, то данные будут теряться, точнее их электрические сигналы будут смешиваться и будут возникать коллизии
Физическая адресация - все устройства должны иметь физический адрес, обычно это mac-адрес. Физический адрес должен быть уникальным. Он должен однозначно отличать одно устройство от любых других устройств в мире
Mac-адрес это 48 битное число, которое записывается в виде 12 шестнадцатиричных цифр (например 01-02-03-ab-cd-ef). Первые 6 шестнадцатиричных цифр обозначают изготовителя устройста, а последние 6 конкретное устройство
Физический адрес определенного типа (не обязательно mac) является обязательным компонентом пакета на канальном уровне
Обнаружение ошибок - для обнаружения ошибок и искажений во время передачи пакета в конец пакета перед отправкой дописывается концевик с контрольной суммой (fcs). Метод с применением fcs предусматривает использование циклического избыточного кода. После прибытия пакета к получателю, получатель извлекает из пакета fcs и вычисляет новое значение fcs для полученных данных. Если извлеченное и вычисленное значения не совпадают, то этот пакет отбрасывается (за устранение ошибок отвечают протоколы более высокого уровня. Как правило транспортный)
Фреймирование - это очень важная задача. Нужно для того чтобы можно было отличить один пакет от другого в потоке данных (ведь данные передаются в виде бесконечного потока единиц и нулей и просто так отличить один пакет от другого сложно). Для того чтобы определять, что в цепочке единиц и нулей является mac-адресом, а что fcs требуется какой-то ключ. Есть несколько вариантов решения такой проблемы, описывать их здесь пока не буду
Уровень 1 - физический
Определяет различные спецификации частот, требования к расстояниям и задержкам, регламетируемые напряжения и прочие физические параметры
Важное значение с точки зрения организации сетей имеет модель DOD (department of defense). Именно она лежит в основе протоколов tcp/ip
No Comments