Interprocess CommunicationРефераты >> Программирование и компьютеры >> Interprocess Communication
Существует ряд классических разновидностей сетей.
Сеть коммутации каналов. Суть ее заключается в том, что если надо связать АМ2 с АМ3, то происходит соединение каналов и коммутационных машин между этими АМ. Это соединение будет существовать до конца взаимодействия АМ2 и АМ3. Достоинство этой сети в том, что скорость взаимодействия между машинами равна скорости самого медленного компонента сети, участвующего в связи (это максимально возможная скорость). Недостаток в том, что такая связь может блокировать другие соединения (в данном случае АМ1 и АМ4 не свяжутся до конца связи между АМ2 и АМ3). Уйти от этой проблемы можно потребовав от коммутационной среды большой избыточности, т.е. организовать дополнительные (дублирующие) каналы.
Сеть коммутации сообщений. Если коммутация каналов - это коммутация на время всего сеанса связи, то коммутация сообщений - это связь, при которой весь сеанс разделяется на передачу сообщений (сообщение - некоторая, логически завершенная, порция данных), и коммутация происходит на период передачи сообщения. В такой сети на коммуникационные машины ложатся большие нагрузки, они должны обладать возможностью буферизации сообщений в связи с неравномерной скоростью передачи на разных участках сети. Достоинства - простота логическая и физическая, недостатки - снижение скорости работы в сети, и потери, связанные с буферизацией.
Сеть коммутации пакетов. Сеанс разбивается на сообщения, сообщения разбиваются на порции данных одинакового объема - пакеты. По сети перемещаются не сообщения, а пакеты. Здесь действует принцип горячей картошки: основное действие коммутационной машины - как можно быстрее избавиться от пакета, определив кому его дальше можно перекинуть Т.к. все пакеты одинакового объема, не возникает проблем с буферизацией, потому что мы всегда можем рассчитать необходимую буферную способность коммутационных машин. Логически происходит достаточно быстрое соединение, потому что сеть коммутации пакетов практически не имеет ситуаций, когда какие-то каналы заблокированы. За счет того, что происходит дробление сеанса на пакеты, имеется возможность оптимизации обработки ошибок при передаче данных. Если мы получаем ошибку в режиме коммутации каналов, то надо повторять весь сеанс, если в режиме коммутации сообщений, то надо повторять сообщение, здесь же достаточно повторить передачу пакета, в котором обнаружена ошибка.
В реальных системах используются многоуровневые сети, которые в каких-то режимах работают в режиме коммутации каналов, в каких-то режимах работают в режиме коммутации сообщений и т.д. На сегодняшний день можно сказать, что сетей, принадлежащих чисто к одному из вышеперечисленных типов, нет.
Стандарт ISO/OSI
Развитие многомашинных ассоциаций вообще, и сетей ЭВМ в частности, определило возникновение необходимости стандартизации взаимодействия, происходящего в сети. Поэтому в конце 70-х начале 80-х годов ISO (International Standard Organization) предложила т.н. стандарт взаимодействия открытых систем ISO/OSI (Open System Interface).
Была предложена семиуровневая модель организации взаимодействия компьютеров со средой передачи данных, с программами, функционирующими на разных компьютерах, и в общем случае организация взаимодействия в сети. Предлагались к рассмотрению семь уровней взаимодействия:
VII | Прикладной уровень |
VI | Представительский уровень |
V | Сеансовый уровень |
IV | Транспортный уровень |
III | Сетевой уровень |
II | Канальный уровень |
I | Физический уровень |
1. Физический уровень или уровень сопряжения с физическим каналом. На этом уровне решаются самые земные вопросы организации взаимосвязи: это вопросы уровней и типов сигналов, и т.д. Этот уровень определяет конкретную физическую среду. Предположим, физической средой может быть среда, которая называется "витая пара", или среда, которая называется "коаксиальный провод", или средой может быть оптоволокно, и т.д. Каждая из этих физических сред определяет свои правила общения через них.
2. Канальный уровень. На этом уровне формализуются правила передачи данных через канал. Если физический уровень связан непосредственно со средой (с каналом), то канальный уровень связан с передачей информации по этому каналу.
3. Сетевой уровень. Этот уровень управляет связью в сети между машинами. Здесь решается вопрос адресации и маршрутизации данных.
4. Транспортный уровень. Этот уровень иногда называют уровнем логического канала. На этом уровне решаются проблемы управления передачей данных, и связанные с этими проблемами задачи - локализация и обработка ошибок и непосредственно сервис передачи данных.
5. Сеансовый уровень обеспечивает взаимодействие программ (понятно, что машины сами по себе не взаимодействуют, а взаимодействуют программы). При этом решаются проблемы синхронизации обмена данных, отмены сеанса в результате фатального исхода, подтверждения паролей.
6. Представительский уровень. На этом уровне решается проблема с представлением данных. Понятно, что разные системы имеют разные формы представления данных.
7. Прикладной уровень. На прикладном уровне решаются проблемы стандартизации взаимодействия с прикладными системами.
Итак, была предложена такая семиуровневая модель, и было предложено использовать эту модель в двух качествах: стандартизация взаимодействия в сети (разработка стандартов) и применение этой модель для практических решений. Стандарты на физический уровень уже разработаны, разрабатываются стандарты на канальный уровень. К сожалению, реальные сети не соответствуют такой семиуровневой модели, хотя иногда можно найти некоторое соответствие.
Считается, что на каждой из ВС, функционирующих в сети, существует набор уровней сетевого взаимодействия, соответствующий такой семиуровневой модели. При этом считается, что гарантированно в сети существуют подряд идущие уровни снизу вверх. Т.е. если есть сеансовый уровень, то гарантированно есть все нижестоящие.
У нас есть две машины, на каждой из которых реализована эта семиуровневая модель. Система взаимодействия предусматривает такое взаимодействие между машинами, при котором каждый уровень общается с себе подобным уровнем. Правило взаимодействия систем на одноименных уровнях, называется протоколом передачи данных. При этом одноименные уровни реально напрямую друг с другом оперировать не могут. Они оперируют друг с другом через нижестоящие уровни и физическую среду. Любой уровень нашей модели может непосредственно взаимодействовать только с соседним уровнем (либо соседним сверху, либо снизу). Правила взаимодействия между уровнями называются интерфейсом. Если один уровень обращается к другому (в другой машине) через протокол передачи данных, на самом деле происходит обращение через соответствующую последовательность интерфейсов к нижестоящим уровням, далее происходит передача через физическую среду, и затем происходит последовательная передача от нижестоящего уровня к нужному.