Сети ЭВМ и телекоммуникации

advertisement
Сети ЭВМ и телекоммуникации
Стеки протоколов
• Стек протоколов – это иерархически организованная
совокупность протоколов, достаточная для
реализации взаимодействия узлов в
компьютерной сети.
• Существующие стеки протоколов:
TCP/IP,
IPX/SPX,
NetBIOS/SMB,
DECnet ,
SNA,
VOIP и SIP.
• Все протоколы (кроме SNA) одинаковы на
физическом и на канальном уровне, но на других
уровнях используют разные протоколы.
IPX/SPX
• IPX/SPX (Internetwork Packet eXchange/Sequenced Packet
eXchange - межсетевой обмен
пакетами/последовательный обмен пакетами) —
стек протоколов, используемый в сетях Novell NetWare.
• Протокол IPX обеспечивает сетевой уровень (доставку
пакетов, аналог IP), SPX — транспортный и сеансовый
уровни (аналог TCP).
• Изначально был разработан Novell для DOS и широко
применялся как в корпоративных сетях, так и для
сетевых игр. Клиент был выполнен в виде резидентной
программы. Первые реализации требовали создания
исполняемого файла под каждую сетевую карту.
NetBIOS
•
NetBIOS (Network Basic Input/Output System) — протокол для работы в
локальных сетях на персональных ЭВМ типа IBM/PC. Протокол расширяет
стандартные функции BIOS, обеспечивая поддержку сети.
•
Был разработан фирмой Sytek Corporation по заказу IBM в 1983 году. Включает
в себя интерфейс сеансового уровня (NetBIOS interface), в качестве
транспортных протоколов использует TCP и UDP.
•
NetBEUI – протокол расширенного пользовательского интерфейса NetBIOS,
предоставляет функции сеансового, транспортного и сетевого уровня.
•
Особенностью NetBIOS является возможность его работы поверх разных
протоколов, например: NetBEUI, IPX и стек протоколов TCP/IP.
•
NetBIOS обеспечивает:
–
–
–
–
–
регистрацию и проверку сетевых имен;
установление и разрыв соединений;
связь с гарантированной доставкой информации;
связь с негарантированной доставкой информации;
поддержку управления и мониторинга драйвера и сетевой карты
SMB
• SMB (Server Message Block) — сетевой протокол
прикладного уровня для удалённого доступа к файлам,
принтерам и другим сетевым ресурсам, а также для
межпроцессного взаимодействия.
• Первая версия протокола была разработана
компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах.
• Вторая (SMB 2.0) была создана Microsoft и появилась в
Windows Vista.
• В настоящее время SMB связан главным образом с
операционными системами Microsoft Windows, где
используется для реализации сети Microsoft Windows и
совместного использования файлов и принтеров.
Стек протоколов OSI
•
•
•
•
•
•
Протоколы стека OSI отличает большая сложность и неоднозначность
спецификаций. Эти свойства явились результатом общей политики
разработчиков стека, стремившихся учесть в своих протоколах все многообразие
уже существующих и появляющихся технологий.
На физическом и канальном уровнях стек OSI поддерживает протоколы Ethernet,
Token Ring, FDDI, а также протоколы LLC, X.25 и ISDN, то есть использует все
разработанные вне стека популярные протоколы нижних уровней, как и
большинство других стеков.
Сетевой уровень включает сравнительно редко используемые протоколы
Connection-oriented Network Protocol (CONP) и Connectionless Network Protocol
(CLNP). Как следует из названий, первый из них ориентирован на соединение
(connection-oriented), второй – нет (connectionless).
Более популярны протоколы маршрутизации стека OSI: ES-IS (End SystemIntermediate System) между конечной и промежуточной системами и IS-IS
(Intermediate System-Intermediate System) между промежуточными системами.
Транспортный уровень стека OSI в соответствии с функциями, определенными
для него в модели OSI, скрывает различия между сетевыми сервисами с
установлением соединения и без установления соединения, так что
пользователи получают требуемое качество обслуживания независимо от
нижележащего сетевого уровня. Чтобы обеспечить это, транспортный уровень
требует, чтобы пользователь задал нужное качество обслуживания.
Службы прикладного уровня обеспечивают передачу файлов, эмуляцию
терминала, службу каталогов и почту. Из них наиболее популярными являются
служба каталогов (стандарт X.500), электронная почта (X.400), протокол
виртуального терминала (VTP), протокол передачи, доступа и управления
файлами (FTAM), протокол пересылки и управления работами (JTM)
Распределение протоколов по уровням модели OSI
7
6
5
4
3
2
1
HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP,
Прикладной
SMB, NFS, RTSP
Представления XDR, AFP, TLS, SSL
ISO 8327 / CCITT
Сеансовый
X.225, RPC, NetBIOS, ASP
Транспортный TCP, UDP, SCTP, SPX, RTP, ATP, DCCP, GRE
IP, PPP, ICMP, IGMP, CLNP, OSPF, RIP, IPX,
Сетевой
DDP, ARP, RARP, BGP
Ethernet, Token ring, HDLC, X.25, Frame
Канальный
relay, ISDN, ATM, MPLS
электрические
Физический
провода, радиосвязь, волоконнооптические провода, Wi-Fi
Стек протоколов TCP/IP
5
Прикладной
«7 уровень»
HTTP, RTP, FTP, DNS, RIP
4
Транспортный
TCP, UDP, SCTP, DCCP, OSPF
3
Сетевой
IP (IP), ICMP и IGMP, ARP
2
Канальный
1
Физический
Ethernet, IEEE 802.11 Wireless Ethernet, SLIP, Token
Ring, ATM и MPLS
физическая среда и принципы кодирования
информации
Стек протоколов TCP/IP из пособия системного администратора
Принципы взаимодействия
протоколов разных уровней
• В ходе обмена информацией протоколы тесно
общаются друг с другом:
– Приложения обмениваются информацией между
собой при помощи протоколов прикладного
уровня;
– Протоколы прикладного уровня при обмене
данными полагаются на работу транспортных
протоколов;
– Транспортные протоколы осуществляют передачу
данных используя услуги сетевых протоколов
(маршрутизация).
Примеры сетевых услуг
•
•
•
•
•
Хранение данных;
Поиск информации;
Почтовые услуги;
Передача сообщений и блоков данных;
Организация сеансов взаимодействия.
Межсетевой протокол IP
• Цель – передать IP-пакет через ряд
взаимосвязанных сетей.
• Передача ip-пакета от узла к узлу
осуществляется на основе интерпритации
ip-адреса.
• Выбор пути ip-пакета называется
маршрутизацией.
• В ряде случаев на маршруте пакет может
быть фрагментирован.
Маршрутизация
• Маршрутизация (Routing) — процесс определения маршрута
следования информации в сетях связи.
• Маршруты могут быть:
– статические маршруты – задаваться административно,
– динамические маршруты – вычисляться с помощью алгоритмов
маршрутизации, базируясь на информации о топологии и состоянии
сети, полученной с помощью протоколов маршрутизации.
• Статическими маршрутами могут быть:
– маршруты, не изменяющиеся во времени;
– маршруты, изменяющиеся по расписанию;
– маршруты, изменяющиеся по ситуации — административно в
момент возникновения стандартной ситуации.
• Маршрутизация в компьютерных сетях обычно выполняется
специальными программно-аппаратными средствами —
маршрутизаторами. В простых конфигурациях может
выполняться компьютерами общего назначения.
Таблица маршрутизации
• Таблица маршрутизации — электронная таблица (файл) или база данных,
хранящаяся на маршрутизаторе или сетевом компьютере, описывающая
соответствие между адресами назначения и интерфейсами, через которые
следует отправить пакет данных до следующего маршрутизатора.
• Таблица маршрутизации обычно содержит:
– адрес сети или узла назначения, либо указание, что маршрут является
маршрутом по умолчанию;
– маску сети назначения (для IPv4-сетей маска /32 (255.255.255.255) позволяет
указать единичный узел сети);
– шлюз, обозначающий адрес маршрутизатора в сети, на который необходимо
отправить пакет, следующий до указанного адреса назначения;
– интерфейс (в зависимости от системы это может быть порядковый номер, GUID
или символьное имя устройства);
– метрику — числовой показатель, задающий предпочтительность маршрута.
Чем меньше число, тем более предпочтителен маршрут (интуитивно
представляется как расстояние).
• В таблице может быть один, а в некоторых операционных системах и
несколько шлюзов по умолчанию.
Протоколы маршрутизации
•
•
•
•
•
Внутренний протокол маршрутизации RIP
Протокол OSPF (алгоритм Дейкстры)
Протокол IGRP
Внешний протокол BGP
Бесклассовая интердоменная маршрутизация
(CIDR)
Схемы маршрутизации
•
•
Anycast (дословно — «посылка кому-нибудь») – метод
рассылки пакетов (реализованный в протоколе IPv6),
позволяющий устройству посылать данные
ближайшему из группы получателей.
Из-за особенностей топологии сети или её политики
ближайший узел не обязательно будет географически
ближайшим.
Broadcast (широковещание ) – схема возможна только
в пределах одного сегмента сети. Однако пакеты
данных могут быть посланы из-за пределов сегмента, в
которой будет осуществлено широковещание. Нагрузка
на сеть в случае широковещания не отличается от
обычной передачи данных одному адресату, поскольку
пакеты данных не размножаются (в отличие от
групповой передачи, multicast).
Multicast (групповая передача) — специальная форма
широковещания, при которой сетевой пакет
одновременно направляется определённому
подмножеству адресатов — не одному (unicast), и не
всем (broadcast).
Наряду с приложениями, устанавливающими связь
между источником и одним получателем, существуют
такие, где требуется, чтобы источник посылал
информацию сразу группе получателей.
Версия 4 (IPv4)
0
1
2
3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Версия
IHL
Тип обслуживания
Идентификатор
Время жизни (TTL)
Протокол
Длина пакета
Флаги
Смещение фрагмента
Контрольная сумма заголовка
IP-адрес отправителя (32 бита)
IP-адрес получателя (32 бита)
Параметры (от 0 до 10-ти 32-х битных слов)
Данные (до 65535 байт минус заголовок)
• IHL — длина заголовка IP-пакета в 32-битных словах (dword). Это поле
указывает на начало блока данных в пакете. Минимальное корректное
значение для этого поля равно 5.
• Идентификатор — значение, назначаемое отправителем пакета и
предназначенное для определения корректной последовательности
фрагментов при сборке дейтаграммы. Для фрагментированного пакета все
фрагменты имеют одинаковый идентификатор.
• Флаги:
– Первый бит должен быть всегда равен нулю,
– Второй бит DF (don’t fragment) определяет возможность фрагментации пакета,
– Третий бит MF (more fragments) показывает, не является ли этот пакет
последним в цепочке пакетов.
• Смещение фрагмента — значение, определяющее позицию фрагмента в
потоке данных.
• Время жизни (TTL) — число маршрутизаторов, которые должен пройти
этот пакет. При прохождении маршрутизатора это число уменьшатся на
единицу. Если значения этого поля равно нулю то, пакет должен быть
отброшен и отправителю пакета может быть послано сообщение Time
Exceeded (ICMP код 11 тип 0).
• Протокол — идентификатор протокола следующего уровня (номер
протокола следующего уровня).
• Контрольная сумма заголовка — вычисляется с использованием операций
поразрядного сложения 16-разрядных слов заголовка по модулю 2.
Тип обслуживания
• Тип обслуживания (Type of Service, TOS) — байт, содержащий
набор критериев, определяющих тип обслуживания IP-пакетов.
Поле приоритет предоставляет возможность присвоить код приоритета
каждой дейтограмме:
0 Обычный уровень
1 Приоритетный
2 Немедленный
3 Срочный
4 Экстренный
5 ceitic/ecp
6 Межсетевое управление
7 Сетевое управление
Биты TOS
Биты C, D, T и R характеризуют пожелание
относительно способа доставки дейтограммы:
–
–
–
–
D=1 требует минимальной задержки,
T=1 - высокую пропускную способность,
R=1 - высокую надежность,
C=1 - низкую стоимость.
TOS играет важную роль в маршрутизации пакетов.
Интернет не гарантирует запрашиваемый TOS, но
многие маршрутизаторы учитывают эти запросы
при выборе маршрута.
Значения TOS для разных протоколов
FTP управление
FTP данные
1
Максим.
пропускная
способность
0
0
TFTP
DNS
Процедура
Миним.
задержка
Максим.
Миним.
Код TOS
надежность стоимость
0
0
0x10
1
0
0
0x08
1
0
0
0
0x10
1
0
0
0
0x10
0
0
0
0
0x00
0
0
0
0
0x00
Telnet
1
0
0
0
0x10
ICMP
0
0
0
0
0x00
IGP
0
0
1
0
0x04
SMTP управление
SMTP данные
1
0
0
0
0x10
0
1
0
0
0x08
SNMP
0
0
1
0
0x04
NNTP
0
0
0
1
0x02
UDP
TCP
Коды протоколов Интернет
Код
Сокращенное
Описание
протокола
название
Интернет
протокола
0
Зарезервировано
1
ICMP
Протокол контрольных сообщений [rfc792]
2
IGMP
Групповой протокол управления [rfc1112]
3
GGP
Протокол маршрутизатор-маршрутизатор [RFC-823]
4
IP
IP поверх IP (инкапсуляция/туннели)
5
ST
Поток [rfc1190]
6
TCP
Протокол управления передачей [RFC-793]
7
UCL
UCL
8
EGP
Протокол внешней маршрутизации [RFC-888]
9
IGP
Протокол внутренней маршрутизации
17
UDP
Протокол дейтограмм пользователя [RFC-768]
27
RDP
Протокол для надежной передачи данных [RFC-908]
Поле опции
(дополнительные параметры)
• Поле опции не обязательно присутствует в каждой
дейтограмме.
• Размер поля опции зависит от того, какие опции
применены. Если используется несколько опций, они
записываются подряд без каких-либо разделителей.
• Каждая опция содержит один октет кода опции, за
которым может следовать октет длины и серия октетов
данных.
• Если место, занятое опциями, не кратно 4 октетам,
используется заполнитель
Формат поля опции
• Флаг копия равный 1 говорит о том, что опция должна быть
скопирована во все фрагменты дейтограммы.
• Значения разрядов 2-битового поля класс опции:
–
–
–
–
0 – дейтограмма пользователя или сетевое управление;
1 – зарезервировано для будущего использования;
2 – отладка и измерения (диагностика);
3 – зарезервировано для будущего использования.
Значения классов и номеров опций
Класс
опции
Номер
опции
Длина
описания
Назначение
0
0
-
Конец списка опций. Используется, если опции не
укладываются в поле заголовка (смотри также поле
"заполнитель")
0
1
-
Никаких операций (используется для выравнивания
октетов в списке опций)
0
2
11
Ограничения,связанные с секретностью (для
военных приложений)
0
3
*
Свободная маршрутизация. Используется для того,
чтобы направить дейтограмму по заданному
маршруту
0
7
*
Запись маршрута. Используется для трассировки
0
8
4
Идентификатор потока. Устарело.
0
9
*
Жесткая маршрутизация. Используется, чтобы
направить дейтограмму по заданному маршруту
2
4
*
Временная метка Интернет
Временные метки и маршрутизация
• Опция записать маршрут создает дейтограмму, где
зарезервировано место, куда каждый маршрутизатор
по дороге должен записать свой IP-адрес (например,
утилита traceroute). Формат опции записать маршрут
в дейтограмме представлен ниже.
Формы маршрутизации
• Существует две формы маршрутизации:
– Свободная маршрутизация;
– Жесткая маршрутизация.
Жесткая маршрутизация означает, что адреса определяют точный маршрут
дейтограммы. Проход от одного адреса к другому может включать только одну
сеть.
Свободная маршрутизация отличается от предшествующей возможностью
прохода между двумя адресами списка более чем через одну сеть.
Поле длина задает размер списка адресов, а указатель отмечает адрес очередного
маршрутизатора на пути дейтограммы.
Порядок просмотра
маршрутной таблицы
• Просмотр маршрутной таблицы происходит в три этапа:
– Ищется полное соответствие адресу места назначения. В
случае успеха, пакет посылается соответствующему
маршрутизатору или непосредственно интерфейсу адресата.
Связи точка-точка выявляются именно на этом этапе.
– Ищется соответствие адресу сети места назначения. В случае
успеха система действует также как и в предшествующем
пункте. Одна запись в таблице маршрутизации соответствует
всем ЭВМ, входящим в данную сеть.
– Осуществляется поиск маршрута по умолчанию и, если он
найден, дейтограмма посылается в соответствующий
маршрутизатор.
Запись маршрута
• Опция временные метки работает также как и опция запись
маршрута.
• Каждый маршрутизатор на пути дейтограммы делает запись в
одном из полей дейтограммы (два слова по 32 разряда).
Смысл полей длина и указатель идентичен тому, что сказано о предыдущих
опциях.
4-битовое поле переполнение содержит число маршрутизаторов, которые не
смогли записать временные метки из-за ограничений выделенного места в
дейтограмме.
Временные метки
Значения поля флаги задают порядок записи временных меток
маршрутизаторами:
Значение Назначение
флага
0
Записать только временные метки; опустить ip-адреса.
1
Записать перед каждой временной меткой ip-адрес (как в формате
на предыдущем рисунке).
3
ip-адреса задаются отправителем; маршрутизатор записывает
только временные метки, если очередной IP-адрес совпадает с
адресом маршрутизатора
Временные метки должны содержать время в миллисекундах,
отсчитанное от начала суток.
Заголовок сегмента TCP
Флаги (управляющие биты):
URG — «Указатель важности»;
ACK — «Номер подтверждения» ;
PSH (Push function) —инструктирует
получателя протолкнуть данные,
накопившиеся в приемном буфере, в
приложение пользователя;
RST (Reset the connection)— оборвать
соединения;
SYN (Synchronize sequence numbers) —
синхронизация номеров
последовательности;
FIN (FIN bit) — флаг указывает на
завершение соединения.
Бит
0
0—3
4—9
10 — 15
Порт источника
16 — 31
Порт назначения
32
Номер последовательности
64
Номер подтверждения
96
Смещен
Зарезерв
ие
ировано
данных
Флаги
Размер Окна
Указатель
важности
128
Контрольная сумма
160
Опции (необязательное, но используется
практически всегда)
160/
192+
Данные
Указатель важности – 16-битовое значение положительного смещения от порядкового
номера в данном сегменте.
Поле указывает порядковый номер байта, которым заканчиваются важные данные.
Поле принимается во внимание только для пакетов с установленным флагом URG.
Номер последовательности
Выполняет две задачи:
– Если установлен флаг SYN, то это начальное значение номера
последовательности — ISN (Initial Sequence Number), и первый байт
данных, которые будут переданы в следующем пакете, будет иметь
номер последовательности, равный ISN + 1.
– В противном случае, если SYN не установлен, первый байт данных,
передаваемый в данном пакете, имеет этот номер
последовательности.
Поскольку поток TCP в общем случае может быть длиннее, чем число
различных состояний этого поля, то все операции с номером
последовательности должны выполняться по модулю 2^32. Это
накладывает практическое ограничение на использование TCP.
Если скорость передачи коммуникационной системы такова,
чтобы в течение MSL (максимального времени жизни сегмента)
произошло переполнение номера последовательности, то в сети
может появиться два сегмента с одинаковым номером,
относящихся к разным частям потока, и приёмник получит
некорректные данные.
Download