Відмінності між версіями «IPX/SPX»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Стек IPX/SPX)
(IPX - протокол)
Рядок 34: Рядок 34:
 
Оригінальний транспортний протокол Novell, на мій погляд, не сприяє успіху цієї мережі. Не встигнувши вчасно переорієнтуватися на транспортні й маршрутні протоколи стека TCP / IP цей украй популярний зовсім недавно вид мереж в даний час має шанси зникнути.
 
Оригінальний транспортний протокол Novell, на мій погляд, не сприяє успіху цієї мережі. Не встигнувши вчасно переорієнтуватися на транспортні й маршрутні протоколи стека TCP / IP цей украй популярний зовсім недавно вид мереж в даний час має шанси зникнути.
  
IPX-пакети, що передаються по мережі Ethernet, можуть мати кілька різних форматів. Найстарший з них носить в Novell назву "802.3" і використовується за замовчанням в версіях аж до 3.11. У наступних версіях форматом за замовчанням є "802.2". Використовуємо також і формат, названий Ethernet II, який найбільш близький ідеології TCP/IP. Мережа в Netware - це логічний канал, який використовується спільно рядом вузлів так, що вони можуть взаємодіяти один з одним безпосередньо. Так процеси, реалізовані на одному сервері, вважаються підключеними до внутрішньої IPX-мережі. Всі користувачі мережі типу Ethernet II утворюють логічну мережу IPX. Всі користувачі однієї мережі типу 802.3 розглядаються як вузли різних мереж IPX. Зіставлення форматів пакетів для різних мережевих стандартів представлено на Мал. 1.
+
IPX-пакети, що передаються по мережі Ethernet, можуть мати кілька різних форматів. Найстарший з них носить в Novell назву "802.3" і використовується за замовчанням в версіях аж до 3.11. У наступних версіях форматом за замовчанням є "802.2". Використовуємо також і формат, названий Ethernet II, який найбільш близький ідеології TCP/IP. Мережа в Netware - це логічний канал, який використовується спільно рядом вузлів так, що вони можуть взаємодіяти один з одним безпосередньо. Так процеси, реалізовані на одному сервері, вважаються підключеними до внутрішньої IPX-мережі. Всі користувачі мережі типу Ethernet II утворюють логічну мережу IPX. Всі користувачі однієї мережі типу 802.3 розглядаються як вузли різних мереж IPX. Зіставлення форматів пакетів для різних мережевих стандартів представлено на Мал. 2.
 +
 
 +
<center>[[Файл:Imag223.gif]]</center>
 +
<center>Мал 2.</center>
 +
 
  
  

Версія за 11:22, 19 жовтня 2011

Стек IPX/SPX

Стек IPX/SPX є оригінальним стеком протоколів фірми Novell, розробленим для мережевої операційної системи NetWare ще на початку 80-х років. Протоколи мережевого і сеансового рівнів Internetwork Packet Exchange (IPX) і Sequenced Packet Exchange (SPX), які й дали назву стеку, є прямою адаптацією протоколів XNS фірми Xerox, поширених набагато менше, ніж стек IPX/SPX. Популярність стека IPX/SPX безпосередньо пов'язана з операційною системою Novell NetWare, що ще зберігає світове лідерство за числом встановлених систем, хоча останнім часом її популярність дещо знизилася і за темпами росту вона відстає від Microsoft Windows NT. Багато особливостей стека IPX/SPX обумовлені орієнтацією ранніх версій ОС NetWare (до версії 4.0) на роботу в локальних мережах невеликих розмірів, що складаються з персональних комп'ютерів із скромними ресурсами. Зрозуміло, що для таких комп'ютерів компанії Novell потрібні були протоколи, для реалізації яких потрібна була б мінімальна кількість оперативної пам'яті (обмеженої в IBM-сумісних комп'ютерах під керуванням MS-DOS обсягом 640 Кбайт) і які б швидко працювали на процесорах невеликої обчислювальної потужності. У результаті, протоколи стека IPX/SPX донедавна добре працювали в локальних мережах, і не дуже – у великих корпоративних мережах, тому що вони занадто перевантажували повільні глобальні зв'язки широкомовними пакетами, що інтенсивно використовуються декількома протоколами цього стека (наприклад, для встановлення зв'язку між клієнтами і серверами). Ця обставина, а також той факт, що стек IPX/SPX є власністю фірми Novell і на його реалізацію потрібно одержувати ліцензію (тобто відкриті специфікації не підтримувалися), довгий час обмежували поширеність його тільки мережами NetWare. Проте з моменту випуску версії NetWare 4.0 Novell внесла і продовжує вносити у свої протоколи серйозні зміни, спрямовані на їхню адаптацію для роботи в корпоративних мережах. Зараз стек IPX/ SPX реалізований не тільки в NetWare, але й у декількох інших популярних мережевих ОС, наприклад SCO UNIX, Sun Solaris, Microsoft Windows NT.

Сімейство протоколів фірми Novell і їх відповідність моделі ISO / OSI представлено на Мал 1.

1 005.gif
Мал 1. Стек IPX / SPX

На фізичному і канальном рівнях в мережах Novell використовуються всі популярні протоколи цих рівнів (Ethernet, Token Ring, FDDI та інші).

На мережевому рівні в стеке Novell працює протокол IPX, а також протоколи обміну маршрутною інформацією RIP і NLSP (аналог протоколу OSPF стека TCP / IP). IPX є протоколом, який займається питаннями адресації і маршрутизації пакетів в мережах Novell. Маршрутні рішення IPX засновані на адресних полях в заголовку його пакету, а також на інформації, що надходить від протоколів обміну маршрутною інформацією. Наприклад, IPX використовує інформацію, що поставляється або протоколом RIP, або протоколом NLSP (NetWare Link State Protocol) для передачі пакетів комп'ютера призначення або наступного маршрутизатора. Протокол IPX підтримує тільки дейтаграммний спосіб обміну повідомленнями, за рахунок чого економно споживає обчислювальні ресурси. Отже, протокол IPX забезпечує виконання трьох функцій: завдання адреси, встановлення маршруту та розсилку дейтаграмм.

Транспортному рівню моделі OSI в стеке Novell відповідає протокол SPX, який здійснює передачу повідомлень з встановленням сполук.

На верхніх прикладному, представницькому і сеансовом рівнях працюють протоколи NCP і SAP. Протокол NCP (NetWare Core Protocol) є протоколом взаємодії сервера NetWare і оболонки робочої станції. Цей протокол прикладного рівня реалізує архітектуру клієнт-сервер на верхніх рівнях моделі OSI. За допомогою функцій цього протоколу робоча станція проводить підключення до сервера, відображає каталоги сервера на локальні букви дисководів, переглядає файлову систему сервера, копіює вилучені файли, змінює їх атрибути і т.п., а також здійснює розподіл мережевого принтера між робочими станціями.

SAP (Service Advertising Protocol) - протокол оголошення про сервіс - концептуально подібний до протоколу RIP. Подібно до того, як протокол RIP дозволяє маршрутизаторам маршрутної обмінюватися інформацією, протокол SAP дає можливість мережних пристроям обмінюватися інформацією про наявні мережевих сервісах.

Сервери та маршрутизатори використовують SAP для оголошення про своїх сервісних послуги та мережевих контактах. Протокол SAP дозволяє мережних пристроїв постійно коригувати дані про те, які сервісні послуги є зараз у мережі. При старті сервери використовують SAP для оповіщення що залишилася частини мережі про свої послуги. Коли сервер завершує роботу, то він використовує SAP для того, щоб сповістити мережа про припинення дії своїх послуг.

У мережах Novell сервери NetWare 3.x кожну хвилину розсилають шіроковещательние пакети SAP. Пакети SAP в значній мірі засмічують мережу, тому однією з основних завдань маршрутизаторів, що виходять на глобальні зв'язку, є фільтрація трафіку SAP-пакетів і RIP-пакетів.

Інформація взята звідси

IPX - протокол

Протокол IPX (Internetwork Packet Exchange) призначений для передачі дейтограмм в системах, неорієнтованих на з'єднання (також як і IP або NETBIOS, розроблений IBM і емульований в Novell), він забезпечує зв'язок між NetWare серверами і кінцевими станціями. Максимальний розмір IPX-дейтограмми становить 576 байт, з них 30 байта займає заголовок. Передбачається, що мережа, через яку транспортуються ці дейтограмми, здатна пересилати пакети відповідної довжини. IPX-пакети можуть розсилатися широкомовно, для цього поле типу має значення 0x14, адреса мережі призначення повинен відповідати локальної мережі, адреса вузла призначення при цьому приймає значення 0xFFFFFF.

Оригінальний транспортний протокол Novell, на мій погляд, не сприяє успіху цієї мережі. Не встигнувши вчасно переорієнтуватися на транспортні й маршрутні протоколи стека TCP / IP цей украй популярний зовсім недавно вид мереж в даний час має шанси зникнути.

IPX-пакети, що передаються по мережі Ethernet, можуть мати кілька різних форматів. Найстарший з них носить в Novell назву "802.3" і використовується за замовчанням в версіях аж до 3.11. У наступних версіях форматом за замовчанням є "802.2". Використовуємо також і формат, названий Ethernet II, який найбільш близький ідеології TCP/IP. Мережа в Netware - це логічний канал, який використовується спільно рядом вузлів так, що вони можуть взаємодіяти один з одним безпосередньо. Так процеси, реалізовані на одному сервері, вважаються підключеними до внутрішньої IPX-мережі. Всі користувачі мережі типу Ethernet II утворюють логічну мережу IPX. Всі користувачі однієї мережі типу 802.3 розглядаються як вузли різних мереж IPX. Зіставлення форматів пакетів для різних мережевих стандартів представлено на Мал. 2.

Imag223.gif
Мал 2.


Формат пакета протоколу IPX

Пакет протоколу IPX має набагато більш просту структуру в порівнянні з пакетом IP, що, власне, і відбиває менші функціональні можливості протоколу IPX.

IPX-пакет має наступні поля:

Таб1.Поля заголовка IPX пакета
Поле заголовка Довжина в байтах
Checksum-контрольна сума 2

Length-общая длина пакета

2
TransportControl-счетчик пройденных мостов 1
PacketType тип пакета 1
DestNetwork-адрес сети получателя 4
DestNode-адрес станции получателя 6
DestSocet-сокет программы- получателя 2
SourceNetwork-адрес сети отправителя 4
SourceNode-адрес узла отправителя 6
SourceSocet-сокет программы-отправителя 2
DATA-данные 0-564
Інформація взята звідси

Контрольна сума (Checksum) - це 2-байтовое поле, що є «пережитком минулого», що протокол IPX веде від протоколу IDP стека Xerox. Тому що низкоуровневые протоколи (наприклад, Ethernet) завжди виконують перевірку контрольних сум, то IPX не використовує це поле і завжди встановлює його в одиниці.

Довжина (Length) займає 2 байти і задає розмір усього пакета, включаючи IPX-заголовок і поле даних. Самий короткий пакет - 30 байт - включає тільки IPX-заголовок, а рекомендува максимально великий - 576 байт - включає IPX-заголовок плюс 546 байт даних. Максимальний розмір пакета в 576 байт відповідає рекомендаціям стандартів Internet для складених мереж. Протокол IPX обчислює значення цього полючи, ґрунтуючись на інформації, наданою прикладною програмою при виклику функції IPX. IPX-пакет може перевершувати максимум, що рекомендується, у 576 байт, що і відбувається в локальних мережах Ethernet, де використовуються IPX-пакети в 1500 байт із полем даних у 1470 байт.

Керування транспортом (Transport control) має довжину 8 біт. Це поле визначає час життя пакета в хопах. IPX-пакет може перетнути до 15 маршрутизаторів. Протокол IPX установлює це однобайтовое поле в 0 до початку передачі, а потім збільшує його на 1 щораз, коли пакет проходить через маршрутизатор. Якщо лічильник перевищить 15, то пакет анулюється.

Тип пакета (Packet type) має довжину 8 біт. Фірма Xerox визначила у свій час визначені значення для різних типів пакетів: прикладні програми, що посилають IPX-пакети, повинні встановлювати це поле в значення, рівне 4. Значення 5 відповідає службовим IPX-пакетам, використовуваним протоколом SPX як службові повідомлення. Значення 17 указує на те, що в поле даних IPX-пакета знаходиться повідомлення протоколу NetWare Core Protocol (NCP) - основного протоколу файлової служби NetWare.

Адреса призначення (Destination address) - складається з трьох полів: номера мережі призначення, номера вузла призначення, номера сокета призначення. Ці поля займають відповідно 4, 6 і 2 байти.

Адреса відправника (Source address) - номер вихідної мережі, номер вихідного вузла, номер вихідного сокета. Аналогічні адресним полям призначення.

Поле даних (Data). Може займати від 0 до 546 байт. Поле даних нульової довжини може використовуватися в службових пакетах, наприклад, для підтвердження одержання попереднього пакета. З аналізу формату пакета можна зробити деякі висновки про обмеження протоколу IPX.

Відсутня можливість динамічної фрагментації на мережному рівні. У IPX-пакеті немає полів, за допомогою яких маршрутизатор може розбити занадто великий пакет на частині. При передачі пакета в мережу з меншим значенням MTU IPX-маршрутизатор відкидає пакет. Протокол верхнього рівня, наприклад NCP, повинний послідовно зменшувати розмір пакета доти, поки не одержить на нього позитивну квитанцію.

Великі накладні витрати на службову інформацію. Порівняно невелика максимальна довжина полючи даних IPX-пакета (546 байт при довжині заголовка 30 байт) приводить до того, що як мінімум 5 % даних є службовими.

Час життя пакета обмежено числом 15, що може виявитися недостатнім для великої мережі (для порівняння, у IP-мережах пакет може пройти до 255 проміжних маршрутизаторів).

Відсутнє поле якості сервісу, що не дозволяє маршрутизаторам автоматично підбудовуватися до вимог додатка до якості передачі трафика.

Крім того, деякі недоліки мереж Novell зв'язані не з протоколом IPX, a із властивостями інших протоколів стека IPX/SPX. Багато недоліків виявляються при роботі стека IPX/SPX на повільних глобальних лініях зв'язку, і це закономірно, тому що ОС NetWare оптимизировалась для роботи в локальній мережі.

Наприклад, неефективна робота по відбудові загублених і перекручених пакетів на низкоскоростных глобальних каналах обумовлена тим, що протокол NCP, що виконує цю роботу, використовує метод одержання квитанцій із простоями. У локальних мережах зі швидкістю 10 Мбит/з такий метод працював цілком ефективно, а на повільних каналах час чекання квитанції помітно гальмує роботу передавального вузла.

У версіях ОС NetWare до 4.0 відповідність символьних імен серверів їхнім мережним адресам установлювалося тільки за допомогою широкомовного протоколу Service Advertising Protocol (SAP). Однак широкомовні розсилання помітно засмічують повільні глобальні канали. Модернізуючи свій стек для застосування у великих корпоративних мережах, компанія Novell використовує тепер довідкову службу NDS (NetWare Directory Services) для перебування різноманітної інформації про наявним у мережі ресурсах і службах, у тому числі і про відповідність імені сервера його мережній адресі. Тому що служба NDS підтримується тільки серверами з версією NetWare 4.x і вище, те для роботи з версіями NetWare 3.x маршрутизатори розпізнають SAP-пакети по номері їх сокета і передають них на всі порти, імітуючи широкомовні розсилання локальної мережі, на що витрачається значна частина пропускної здатності повільних глобальних ліній. Крім того, така «псевдошироковещательность» зводить нанівець ізоляцію мереж від некоректних SAP-пакетів.

В останніх версіях своєї операційної системи NetWare компанія Novell значно модифікувала свій стек для того, щоб він міг більш ефективно використовуватися у великих складених мережах.

Служба NDS дозволяє відмовитися від широкомовного протоколу SAP. Служба NDS заснована на ієрархічній розподіленій базі даних, що зберігає інформацію про користувачів і поділювані ресурси мережі. Додатки звертаються до цієї служби по протоколі прикладного рівня NDS.

Додано модуль для реалізації методу ковзного вікна - так називаний Burst Mode Protocol NLM.

Додано модуль для підтримки довгих IPX-пакетів у глобальних мережах - Large Internet Packet NLM.

Крім того, постійне підвищення швидкодії глобальних служб зменшує недоліки оригінальних протоколів стека IPX/SPX, що дозволяє деяким оглядачам говорити про успішну роботу операційної системи NetWare у глобальних мережах і без зазначених нововведень.

Інформація взята звідси

SPX - протокол

SPX (Sequence Packet eXchange) і його вдосконалена модифікація SPX II є транспортні протоколи 7-рівневої моделі ISO. Це протокол гарантує доставку пакета і використовує техніку ковзаючого вікна (віддалений аналог протоколу TCP). У разі втрати або помилки пакет пересилається повторно, число повторень задається програмно. У протоколі SPX не передбачена широкомовна або мультікастінг-адресація. У SPX індукується ситуація, коли партнер несподівано перериває з'єднання, наприклад через обрив зв'язку. Пакети SPX вкладаються в пакети IPX. При цьому у полі тип пакета IPX записується код 5. Заголовок пакета SPX завжди містить 42 байта, включаючи 30 байт заголовка IPX-пакета, куди він вкладений.

Imag228.gif

Поле управління з'єднанням визначає, чи є даний пакет системним чи прикладним. Це поле містить однобітові прапорці, використовувані spx і spx ІІ для управління потоком даних у віртуальному каналі.

  • 0x01 XHD Зарезервовано SPX II для розширення заголовків;
  • 0x02 RES1 Призначення поля не визначено, має дорівнювати нулю;
  • 0x04 NEG SPX II (SIZ) погоджує розмір запиту / відгуку, для spx має дорівнювати нулю;
  • 0x08 SPX2 Тип пакета SPX II, для spx має дорівнювати нулю;
  • 0x10 EOM Встановлюється клієнтом spx для індикації кінця повідомлення (end-of-message);

Поле тип потоку даних характеризує тип даних, поміщених в пакет. Значення цього поля перераховані нижче:

  • 0x00-0x07 визначається клієнтом і може використовуватися в додатках;
  • 0x80-0xfb зарезервовані на майбутнє;
  • 0xfc spx ІІ, впорядковане звільнення запиту;
  • 0xfd spx ІІ, впорядковане звільнення підтвердження;
  • 0xfe вказує на закінчення зв'язку (end-of-connection). При закритті каналу spx-драйвер посилає клієнтові пакет, де в полі тип потоку записаний даний код;
  • 0xff підтвердження отримання повідомлення про закінчення зв'язку (end-of-connection-acknowledgment). Цим кодом позначається пакет, що підтверджує закриття каналу, в прикладну програму такий пакет не передається

Поля ідентифікатора відправника і одержувача містять коди, що визначають учасників інформаційного обміну, присвоюються SPX-драйвером у момент встановлення зв'язку. У запитах на з'єднання це поле містить код 0xffff. Дане поле служить для забезпечення демультиплексування пакетів, що надходять на один і той же з'єднувач (socket). Поле послідовний номер визначає число пакетів пересланих в одному напрямку. Кожен з партнерів обміну має свій лічильник, який скидається в нуль після досягнення 0xffff, після чого рахунок може продовжуватися. Для програми це поле, також як і наступні два, недоторкане. spx-пакети підтвердження містять в цьому полі порядковий номер останнього посланого пакета. Поле номер підтвердження характеризує послідовний номер наступного пакета, який spx очікує отримати. Будь-який пакет з порядковим номером менше, ніж задано в полі номера підтвердження, доставлений благополучно і не вимагає ретрансміссіі. Поле число буферів служить для вказівки числа доступних на станції буферів (буфера нумеруються, починаючи з 0, один буфер здатний прийняти один пакет) і використовується для організації управління потоком даних між додатками. Код цього поля інформує партнера по найбільшому порядковому номері пакету, який може бути посланий. Протокол spx посилає пакети до тих пір, поки локальний послідовний номер не стане рівним числу-вказівником на віддаленій ЕОМ.

SPX-протокол не посилає наступний пакет до тих пір, поки не отримає підтвердження отримання попереднього. Хоча в протоколі SPX передбачений алгоритм ковзаючих вікон (як і в TCP), практично він у даний час не використовується, що цілком виправдано для локальних мереж. Слід зауважити, що для досить великих LAN, де пакет проходить через кілька маршрутизаторів, нехтування технікою вікон стає недозволеною розкішшю. На випадок непередбачених обривів зв'язку в spx є алгоритм "сторожова собака". Цей алгоритм реалізується спеціальною програмою, яка активується лише у випадку, коли протягом певного часу в каналі відсутній трафік в будь-якому з напрямів (машина все зробила, а оператор заснув). У цьому випадку програма посилає спеціальні пакети і, якщо через певне число спроб "достукатися" до партнера не вдається, сесія переривається. Якщо партнер не надсилає відгук за обумовлений час (RTT), проводиться повторна посилка пакета, при цьому RTT збільшується на 50%. Значення RTT не повинно перевищити величини max_retry_delay, яка за замовчуванням дорівнює 5 секундам. Якщо зв'язок не відновилася, відправник намагається знайти інший маршрут до адресата. Якщо маршрут знайдений, лічильник спроб скидається в нуль і процедура відправки запускається знову. Допустима кількість спроб може лежати в діапазоні 1-255 (за замовчуванням - 10). При відсутності успіху сесія переривається.

Значення RTT визначається за часом відгуку найближчого маршрутизатора, яке подвоюється, а до отриманої величини додається деяка константа. Для кожної з сесій RTT визначається незалежно. Багаточасові константи задаються адміністратором мережі.

Протокол spx дозволяє здійснити від 100 до 2000 з'єднань одночасно (за умовчанням це число дорівнює 1000). Конфігураційні параметри SPX-протоколу (і мережі) зберігаються в файлах shell.cfg і net.cfg.

У 1992 році була розроблена нова версія SPX - SPX II. Головне удосконалення протоколу пов'язано із застосуванням пакетів більшого розміру. Раніше довгі spx-пакети фрагментувалися і пересилалися по частинах, враховуючи, що черговий пакет може бути посланий лише після отримання підтвердження, неважко зрозуміти крайню неефективність такої схеми. Стандарт spx дозволяє обмін пакетами з розміром, обмеженим тільки використовуваної мережевим середовищем. Так в Ethernet пакет SPX II може мати довжину 1518 байт. Крім того, SPX II допускає використання технології вікон, тобто можна послати кілька кадрів, не чекаючи отримання підтвердження на кожен з вже посланих. Розмір вікна встановлюється відповідно до кодом, що міститься в полі число-покажчик (число буферів / пакетів). При необхідності адміністратор може задати розмір вікна раз і назавжди. Формат пакетів SPX II дещо відрізняється від SPX. У SPX II збільшено число допустимих кодів для поля управління з'єднанням, введено додаткове поле в заголовок підтвердження (два байти, ім'я поля "розширене підтвердження"). Нове поле додано після поля число буферів. Алгоритм встановлення зв'язку в SPX II відрізняться від варіанту spx тим, що необхідно узгодити розмір пересилаються пакетів.

  • 0x20 ATN (Attention) зарезервовано для спеціальних запитів (не підтримується SPX);
  • 0x40 ACK Встановлюється для запиту підтвердження отримання даного пакету. Запити і відгуки обробляються на рівні SPX (додаток не повинно модифікувати цей код);
  • 0x80 SYS Встановлюється, якщо даний пакет є системним і служить для підтвердження. Додатки не використовують пакети цього типу.
Imag229.gif

Управління мережами Novell здійснюється за допомогою стандартного протоколу SNMP (Simple Network Management Protocol) і керуючої бази даних MIB.