Вопрос №3 Принципы проектирования информационного обеспечения программного комплекса
Вид материала | Документы |
- Е. В. Чепин московский инженерно-физический институт (государственный университет), 30.11kb.
- Рабочая программа учебной дисциплины (модуля) case-средства проектирования программного, 143.56kb.
- Технология программирования, 643.21kb.
- Базы данных, 3110.93kb.
- А. А. Дюмин московский инженерно-физический институт (государственный университет), 30.84kb.
- Учебно-методический комплекс дисциплины разработка и стандартизация программных средств, 362.73kb.
- Методика выбора программного обеспечения турфирмой Антон Россихин (само-софт), 34.31kb.
- С. Д. Романин московский инженерно-физический институт (государственный университет), 24.74kb.
- Примерная программа наименование дисциплины Проектирование и архитектура программных, 182.2kb.
- Рабочая программа учебной дисциплины "системы автоматизированного проектирования электроустановок, 119.83kb.
Вопрос №26. Типы, стандарты протоколов компьютерной сети.
Сетевая модель OSI
Сетевая модель OSI (англ. Open Systems Interconnection Reference Model — модель взаимодействия открытых систем) — абстрактная модель для сетевых коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и понятнее.
Разумеется, в настоящее время основным используемым протоколом является TCP/IP, разработка которого не была связана с моделью OSI.
Модель состоит из 7-ми уровней, расположенных вертикально друг над другом. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции.
Прикладной уровень (Application layer)
Верхний (7-й) уровень модели, обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.
Уровень представления (Presentation layer)
Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может осуществляться сжатие/распаковка или кодирование/раскодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Сеансовый уровень (Session layer)
Отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.
Транспортный уровень (Transport layer)
4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка.
Сетевой уровень (Network layer)
3-й уровень сетевой модели OSI, предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию пакетов, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
Канальный уровень (Data Link layer)
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры данных, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты и сетевые адаптеры.
В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровня между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS.
Физический уровень (Physical layer)
Самый нижний уровень модели, предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель и соответственно их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне работают концентраторы и повторители (ретрансляторы) сигнала.
Семиуровневая модель OSI является теоретической, и содержит ряд недоработок. Реальные сетевые протоколы вынуждены отклоняться от неё, обеспечивая непредусмотренные возможности, поэтому привязка некоторых из них к уровням OSI является несколько условной.
Основная недоработка OSI — непродуманный транспортный уровень. На нём OSI позволяет обмен данными между приложениями (вводя понятие порта — идентификатора приложения), однако, возможность обмена простыми датаграммами в OSI не предусмотрена — транспортный уровень должен образовывать соединения, обеспечивать доставку, управлять потоком и т. п. Реальные же протоколы реализуют такую возможность. Например:
- Семейство TCP/IP
Семейство TCP/IP имеет два транспортных протокола: TCP, полностью соответствующий OSI, и UDP, отвечающий транспортному уровню только наличием порта, обеспечивающий обмен датаграммами между приложениями.
- Семейство IPX/SPX
В семействе IPX/SPX, порты (называемые «сокеты» или «гнёзда») появляются в протоколе сетевого уровня IPX, обеспечивая обмен датаграммами между приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI. Кроме того, IPX не имеет адреса для хоста, полагаясь на адресацию канального уровня (например, MAC-адреса для Ethernet).
Стек протоколов TCP/IP
Стек протоколов TCP/IP — набор сетевых протоколов, на которых базируется интернет. Название образовано из аббревиатур двух базовых протоколов — TCP и IP.
Обычно описывается по аналогии с моделью OSI, представляющей взаимодействие протоколов в виде стека. В такой модели каждый уровень предназначен для решения узкого круга задач и используется для предоставления услуг для более высоких уровней. Верхние уровни ближе к пользователю и работают с наиболее абстрактными объектами, тогда как нижние уровни сильно зависят от физической среды передачи данных.
Модель OSI более логична, её проще использовать, т. к. протоколы чётко разделены по уровням. Однако модель TCP наиболее распространена.
Обычно в стеке TCP/IP верхние 3 уровня (прикладной, представительный и сеансовый) модели OSI объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению. Упрощенно интерпретацию стека TCP/IP можно представить так:
| Прикладной «7 уровень» | напр. HTTP, FTP, DNS (RIP, работающий поверх UDP, и BGP, работающий поверх TCP, являются частью сетевого уровня) |
4 | Транспортный | напр. TCP, UDP, RTP, SCTP, DCCP (протоколы маршрутизации, подобные OSPF, что работают поверх IP, являются частью сетевого уровня) |
3 | Сетевой | Для TCP/IP это IP (вспомогательные протоколы, вроде ICMP и IGMP работают поверх IP, но являются частью сетевого уровня; ARP не работает поверх IP) |
2 | Канальный | напр. Ethernet, Token ring, и подобные. |
1 | Физический | напр. физическая среда и принципы кодирования информации, T1, E1 |
Физический уровень
Физический уровень описывает среду передачи данных (будь то кабель, оптоволокно или радиоканал), физические характеристики такой среды и принцип передачи данных (разделение каналов, модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние).
Канальный уровень
Канальный уровень описывает каким образом передаются пакеты данных через физический уровень, включая кодирование (т.е. специальные последовательности битов, определяющих начало и конец пакета данных). Ethernet, например, в полях заголовка пакета содержит указание того, какой машине или машинам в сети предназначен этот пакет.
Примеры протоколов канального уровня — Ethernet, IEEE 802.11 Wireless Ethernet, SLIP, Token Ring, ATM и MPLS.
Сетевой уровень
Изначально разработан для передачи данных из одной (под)сети в другую. Примерами такого протокола является X.25 и IPC в сети ARPANET.
С развитием концепции глобальной сети в уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны, например в протоколе ICMP (используется для передачи диагностической информации IP-соединения) и IGMP (используется для управления multicast-потоками).
ICMP и IGMP расположены над IP и должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, а поэтому их невозможно вписать в модель OSI.
Пакеты сетевого протокола IP могут содержать код, указывающий какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2.
Транспортный уровень
Протоколы транспортного уровня могут решать проблему негарантированной доставки сообщений, а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют для какого именно приложения предназначены эти данные.
TCP (IP идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.
UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
UDP обычно используется в таких приложениях, как потоковое видео, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.
И TCP, и UDP используют для определения протокола верхнего уровня число, называемое портом. Существует список стандартных портов TCP и UDP.
Прикладной уровень
На прикладном уровне работает большинство сетевых приложений.
Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.
В массе своей эти протоколы работают поверх TCP или UDP, и привязаны к определённому порту, например:
HTTP на TCP-порт 80 или 8080,
FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд),
SSH на TCP-порт 22,
запросы DNS на порт UDP (реже TCP) 53,
обновление маршрутов по протоколу RIP на UDP-порт 520.
Эти порты определены Агентством по выделению имен и уникальных параметров протоколов (IANA).
Бесспорно, к этому уровню относятся: DHCP, Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.
Стек протоколов IPX/SPX
IPX/SPX (от англ. Internetwork Packet eXchange/Sequenced Packet eXchange) — стек протоколов, используемый в сетях Novell NetWare. Протокол IPX обеспечивает сетевой уровень (доставку пакетов, аналог IP), SPX — транспортный и сеансовый уровень (аналог TCP).
IPX (англ. Internetwork Packet Exchange) — протокол сетевого уровня модели OSI, предназначен для передачи дейтаграмм в системах, неориентированных на соединение (также как и IP или NetBIOS, разработанный IBM и эмулируемый в Novell), он обеспечивает связь между NetWare-серверами и конечными станциями.
Оригинальный транспортный протокол Novell не способствует успеху этой сети. Не успев своевременно переориентироваться на транспортные и маршрутные протоколы стека TCP/IP этот крайне популярный совсем недавно вид сетей в настоящее время имеет шансы исчезнуть.
SPX (Sequence Packet eXchange) и его усовершенствованная модификация SPX II представляют собой транспортные протоколы 7-уровневой модели ISO. Это протокол гарантирует доставку пакета и использует технику скользящего окна (отдаленный аналог протокола TCP). В случае потери или ошибки пакет пересылается повторно, число повторений задается программно. В протоколе SPX не предусмотрена широковещательная или мультикастинг-адресация. Пакеты SPX вкладываются в пакеты IPX.