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.0.

1 005.gif
Мал. 1.0. Стек 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-пакетів.

Інформація взята з:[ http://translate.google.com/translate?hl=uk&sl=ru&u=http://www.citforum.ru/nets/protocols/1_02_03.shtml&sa=X&oi=translate&resnum=1&ct=result&prev=/search%3Fq%3D%25D0%25A1%25D1%2582%25D0%25B5%25D0%25BA%2BIPX/SPX%26hl%3Duk%26client%3Dopera%26rls%3Dru%26hs%3DoeZ ]


Загальна характеристика протоколу IPX

Протокол Internetwork Packet Exchange (IPX) є оригінальним протоколом мережного рівня стека Novell, розробленим на початку 80-х років на основі протоколу Internetwork Datagram Protocol (IDP) компанії Xerox.

Протокол IPX відповідає мережному рівневі моделі ISO/OSI (мал. 2.00) і підтримує, як і протокол IP, тільки дейтаграммный (без установлення з'єднань) спосіб обміну повідомленнями. У мережі NetWare найбільш швидка передача даних при найбільш ощадливому використанні пам'яті реалізується саме протоколом IPX.

Файл:Ipx1.jpg
Мал. 2.00. Відповідність протоколів IPX/SPX семиуровневой моделі OSI

Надійну передачу пакетів може здійснювати транспортний протокол SPX (Sequenced Packet Exchange Protocol), що працює з установленням з'єднання і відновлює пакети при їхній втраті або ушкодженні. Як видно з мал. 2.00, використання протоколу SPX не є обов'язковим при виконанні операцій передачі повідомлень протоколами прикладного рівня.

Прикладний рівень стека IPX/SPX складають два протоколи: NCP і SAP. Протокол NCP (NetWare Core Protocol) підтримує всі основні служби операційної системи Novell NetWare - файлову службу, службу печатки і т.д. Протокол SAP (Service Advertising Protocol) виконує допоміжну роль. За допомогою протоколу SAP кожен комп'ютер, що готовий надати яку-небудь службу для клієнтів мережі, повідомляє про це широкомовно по мережі, вказуючи в SAP-пакетах тип служби (наприклад, файлова), а також своя мережна адреса. Наявність протоколу SAP дозволяє різко зменшити адміністративні роботи з конфигурированию клієнтського програмного забезпечення, тому що всю необхідну інформацію для роботи клієнти довідаються з оголошень SAP (крім маршрутизаторів за замовчуванням, про які можна довідатися за допомогою протоколу IPX).

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

Специфіка адресації в протоколі IPX є джерелом як достоїнств, так і недоліків цього протоколу. Протокол IPX працює з мережними адресами, що включають три компоненти:

  • номер мережі (4 байти);
  • номер вузла (6 байт);
  • номер сокета (2 байти).

Номер мережі на відміну від протоколу IP має завжди фіксовану довжину - 4 байти. У принципі для корпоративних мереж ця довжина є надлишкової, тому що навряд чи в підприємства виникне потреба розділити свою мережу на 4 мільярди подсетей. У період домінування мереж IPX/SPX компанія Novell розглядала можливість створення єдиного всесвітнього центра по розподілі IPX-адрес, аналогічного центрові InterNIC. Однак стрімке зростання популярності мережі Internet позбавив це починання змісту. Хоча протоколи IPX/SPX як і раніше працюють у величезній кількості корпоративних мереж, замінити IP у всесвітній мережі вони вже не зможуть. Треба відзначити, що фахівці компанії Novell приклали чимало зусиль, щоб у новій версії 6 протокол IP придбав деякі риси, властиві протоколові IPX, і тим самим полегшив перехід користувачів IPX на IPv6 (коли це стане практично необхідним). Звичайно всі три складові IPX-адреси, у тому числі і номер мережі, записуються в шест-надцатеричной формі.

Під номером вузла в протоколі IPX розуміється апаратна адреса вузла. У локальних мережах це МАС - адреса вузла - мережного адаптера або порту маршрутизатора. Розмір адреси вузла в 6 байт відбиває походження цього полючи, але в нього можна помістити будь-яка апаратна адреса, якщо він укладається в розмір цього полючи.

Номер сокета (socket) ідентифікує додаток, що передає свої повідомлення по протоколі IPX. Сокет виконує в стеці IPX/SPX ту ж роль, що порт у протоколах TCP/UDP стека TCP/IP. Наявність цього полючи в протоколі мережного рівня, яким є IPX, порозумівається тим, що в стеці Novell прикладні протоколи NCP і SAP взаємодіє з мережним рівнем безпосередньо, минаючи транспортний протокол SPX. Тому роль мультиплексора-демультиплексора прикладних протоколів приходиться виконувати протоколові IPX, для чого в його пакеті необхідно передавати номер сокета прикладного протоколу. Протоколи NCP і SAP не користуються послугами SPX для прискорення роботи стека, а швидкість роботи на малопотужних персональних комп'ютерах почала 80-х років була однієї з основних цілей компанії Novell. Кожен додатковий рівень у стеці, хоча б і такий простій, як UDP, сповільнює роботу стека. За відмовлення від транспортного рівня компанії Novell довелося реалізовувати засобу відновлення загублених пакетів у протоколі NCP. Проте прикладні програмісти, що розробляють свої власні мережні додатки для стека IPX/ SPX, можуть користуватися протоколом SPX, якщо не захочуть убудовувати досить складні алгоритми ковзного вікна у свої програми.

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

Адреса маршрутизатора за замовчуванням також не потрібно задавати вручну на кожнім клієнтському комп'ютері. У протоколі IPX є спеціальний запит, що передається на заздалегідь визначений номер сокета. Якщо в мережі клієнта є маршрутизатор або сервер, що виконує роль програмного маршрутизатора, то клієнт при старті системи видає такий запит широкомовно, і всі маршрутизатори повідомляють йому свої МАС - адреси, що використовуються як адресу наступного маршрутизатора.

Як видно з опису, адміністративні витрати при конфигурировании мережі IPX/SPX зводяться до мінімуму. При цьому відпадає необхідність у протоколі типу ARP, що з'ясовує відповідність між мережними адресами вузлів і їх МАС - адресами. Однак при зміні мережного адаптера потрібно скорегувати адресу вузла, якщо для його з'ясування використовуються не широкомовні запити-відповіді, а довідкова служба типу Novell NDS, у якій фіксуються мережні адреси серверів. Відсутність протоколу ARP підвищує продуктивність мережі, тому що дозволяє не витрачати час на виконання ARP-запитів і ARP-відповідей.


Формат пакета протоколу 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
Інформація взята з:[ http://kunegin.narod.ru/ref6/ipx/set31.htm ]

Контрольна сума (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 у глобальних мережах і без зазначених нововведень.

Інформація взята з:[ http://www.compnets.narod.ru/4-8.html ]

Маршрутизація протоколу IPX