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

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 32: Рядок 32:
  
 
'''Робота з каналами'''
 
'''Робота з каналами'''
 +
 
За допомогою команд віртуальні канали можуть створюватися, віддалятися, а також може бути визначений їх стан. При роботі з каналами імена використовуються лише для створення каналів.
 
За допомогою команд віртуальні канали можуть створюватися, віддалятися, а також може бути визначений їх стан. При роботі з каналами імена використовуються лише для створення каналів.
 +
 
Далі, коли канали вже будуть створені, для передачі даних використовуються номери каналів, а не імена або номери імен. Канал створюється одночасно двома станціями одна з яких при цьому знаходиться в режимі прийому запиту на створення каналу, а інша передає такий запит. Канал створюється з будь-якими двома іменами, тобто можна вказувати і своє ім'я як приймач.
 
Далі, коли канали вже будуть створені, для передачі даних використовуються номери каналів, а не імена або номери імен. Канал створюється одночасно двома станціями одна з яких при цьому знаходиться в режимі прийому запиту на створення каналу, а інша передає такий запит. Канал створюється з будь-якими двома іменами, тобто можна вказувати і своє ім'я як приймач.
 +
 
Команда передачі запиту (Call) встановлює канал між двома іменами. У полі NCB_name вказується ім'я станції, яка встановлює канал, в полі NCB_caLLNAME - ім'я станції, з ...яка встановлює канал, в полі NCB_caLLNAME - ім'я станції, з якою встановлюється канал.
 
Команда передачі запиту (Call) встановлює канал між двома іменами. У полі NCB_name вказується ім'я станції, яка встановлює канал, в полі NCB_caLLNAME - ім'я станції, з ...яка встановлює канал, в полі NCB_caLLNAME - ім'я станції, з якою встановлюється канал.
 
Ці імена можуть відноситися до програм, що працюють на одній або на різних станціях. Для успішного створення каналу приймаюча сторона повинна видати команду прийому запиту (Listen).
 
Ці імена можуть відноситися до програм, що працюють на одній або на різних станціях. Для успішного створення каналу приймаюча сторона повинна видати команду прийому запиту (Listen).
 +
 
При створенні каналу вказується час тайм-ауту для операцій прийому і передачі даних. Команда робить декілька спроб створити канал і в разі невдачі повертає код помилки.
 
При створенні каналу вказується час тайм-ауту для операцій прийому і передачі даних. Команда робить декілька спроб створити канал і в разі невдачі повертає код помилки.
 +
 
При роботі з груповим ім'ям команду Call слід видати кілька разів, оскільки за один виклик створюється лише один канал.
 
При роботі з груповим ім'ям команду Call слід видати кілька разів, оскільки за один виклик створюється лише один канал.
 
Після створення каналу поле NCB_lsn в NCB обох станцій міститиме привласнений номер каналу. Його слід зберегти.
 
Після створення каналу поле NCB_lsn в NCB обох станцій міститиме привласнений номер каналу. Його слід зберегти.
 
Для команди Listen у полі NCB_caLLNAME вказується ім'я, з яким встановлюється канал. Якщо в перший байт імені записати символ "*", канал буде встановлений з будь-якою зухвалою станцією. Програма може видати декілька команд Listen для створення одночасно декількох каналів.
 
Для команди Listen у полі NCB_caLLNAME вказується ім'я, з яким встановлюється канал. Якщо в перший байт імені записати символ "*", канал буде встановлений з будь-якою зухвалою станцією. Програма може видати декілька команд Listen для створення одночасно декількох каналів.
Команда Hung_up призначена для закриття каналу, номер якого вказаний в полі NCB_lsn.  
+
 
Вона має бути виконана з обох боків каналу після заверш роботи. Якщо канал зайнятий, то видається помилка. Для команд передачі з чеканням відводиться 20 секунд на завершення.
+
Команда Hung_up призначена для закриття каналу, номер якого вказаний в полі NCB_lsn. Вона має бути виконана з обох боків каналу після заверш роботи. Якщо канал зайнятий, то видається помилка. Для команд передачі з чеканням відводиться 20 секунд на завершення.
  
  

Версія за 11:44, 26 листопада 2008

Стек NetBIOS/SMB

Фірми Microsoft і IBM спільно працювали над мережевими засобами для персональних комп'ютерів, тому стек протоколів NetBIOS/SMB є їх сумісним дітищем. На фізичному і канальному рівнях цього стека використовуються всі найбільш поширені протоколи Ethernet, Token Ring, FDDI і інші. Засоби NETBIOS з'явилися в 1984 році як мережеве розширення стандартних функцій базової системи вводу/виводу (BIOS) IBM РС для мережевої програми РС Network фірми IBM, яка на прикладному рівні (мал. 1.6) використовувала для реалізації мережевих сервісів протокол SMB (Server Message Block).

Image057.gif
Мал. 1.6. Стек NETBIOS / SMB

Надалі цей протокол був замінений так званим протоколом розширеного призначеного для користувача інтерфейсу NetBEUI NetBIOS Extended User Interface. Для забезпечення сумісності додатків як інтерфейс до протоколу NetBEUI був збережений інтерфейс NetBIOS. Протокол NetBEUI розроблявся як ефективний протокол, що споживає небагато ресурсів і призначений для мереж, що нараховують не більше за 200 робочих станцій. Цей протокол містить багато корисних мережевих функцій, які можна віднести до мережевого, транспортного і сеансовому рівнів моделі OSI, однак з його допомогою неможлива маршрутизація пакетів. Це обмежує застосування протоколу NetBEUI локальними мережами, не розділеними на підмережі, і унеможливлює його використання в складових мережах. Деякі обмеження NetBEUI знімаються реалізацією цього протоколу NBF (NetBEUI Frame), яка включена в операційну систему Microsoft Windows NT.

Протокол SMB (Server Message Block) виконує функції сеансового, представницького і прикладного рівнів. На основі SMB реалізовується файлова служба, а також служби друку і передачі сполучень між додатками.


Протокол NETBIOS працює на трьох рівнях моделі взаємодії відкритих систем: мережевому, транспортному і сеансовому. NETBIOS може забезпечити сервіс більш високого рівня, ніж протоколи IPX і SPX, проте не володіє здатністю до маршрутизації. Таким чином, NETBIOS не є мережевим протоколом в строгому сенсі цього слова. NETBIOS містить багато корисних мережевих функцій, які можна віднести до мережевого, транспортного і сеансового рівнів, проте з його допомогою неможлива маршрутизація пакетів, оскільки в протоколі обміну кадрами NETBIOS не вводиться таке поняття як мережа. Це обмежує застосування протоколу NETBIOS локальними мережами, не розділеними на підмережі. NETBIOS підтримує як дейтаграммный обмін, так і обмін зі встановленням з'єднань. Протокол SMB (Server Message Block) виконує функції сеансового, представницького і прикладного рівнів моделі OSI. На основі SMB реалізовується файлова служба, а також служби друку і передачі сполучень між додатками. У функції SMB входять наступні операції:

• Управління сесіями. Створення і розрив логічного каналу між робочою станцією і мережевими ресурсами файлового сервера.

• Файловий доступ. Робоча станція може звернутися до файл-серверу із запитами на створення і видалення каталогів створення, відкриття і закриття файлів, читання і запис у файли, перейменування і видалення файлів, пошук файлів, отримання і установку файлових атрибутів, блокування записів.

• Сервіс друку. Робоча станція може ставити файли в чергу для друку на сервері і отримувати інформацію черги друку.

• Сервіс повідомлень. SMB підтримує просту передачу повідомлень з наступними функціями: послати просте повідомлення; послати широкомовне повідомлення; послати початок блоку повідомлень; послати текст блоку повідомлень; послати кінець блоку повідомлень; переслати ім'я користувача; відмінити пересилку; отримати ім'я машини.

На канальному рівні стеку NetBIOS/SMB використовують ті самі протоколи та технології, що й для стеку TCP/IP. SMB (Server Message Block) – протокол, що забезпечує прикладному процесудоступ до файлів та принтерів інших комп’ютерів. NetBIOS (Network Basic Input/Output System) – протокол, що доповнює базову систему (BIOS) персональних комп’ютерів типу IBM PC функціями для роботи у мережі.

Порівнюючи між собою можливості двох стеків NetBIOS/SMB та TCP/IP, бачимо, що кожен з них займає своє особливе місце за призначенням. Стек NetBIOS/SMB дозволяє легко створювати невеликі мережі, а ті ускладнення, які пов’язані з використанням стеку TCP/IP, виправдовуються можливістю утворення міжмережних зв’язків та підключення до всесвітньої мережі Інтернет. Через велику кількість додатків, які використовують функції API, NETBIOS, що надаються, в багато мережевих ОС ці функції реалізовані у вигляді інтерфейсу до своїх транспортних протоколів. У NetWare є програма, яка емулює функції NETBIOS на основі протоколу IPX, існують програмні емулятори NETBIOS для Windows NT і стека TCP/IP.

Робота з каналами

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

Далі, коли канали вже будуть створені, для передачі даних використовуються номери каналів, а не імена або номери імен. Канал створюється одночасно двома станціями одна з яких при цьому знаходиться в режимі прийому запиту на створення каналу, а інша передає такий запит. Канал створюється з будь-якими двома іменами, тобто можна вказувати і своє ім'я як приймач.

Команда передачі запиту (Call) встановлює канал між двома іменами. У полі NCB_name вказується ім'я станції, яка встановлює канал, в полі NCB_caLLNAME - ім'я станції, з ...яка встановлює канал, в полі NCB_caLLNAME - ім'я станції, з якою встановлюється канал. Ці імена можуть відноситися до програм, що працюють на одній або на різних станціях. Для успішного створення каналу приймаюча сторона повинна видати команду прийому запиту (Listen).

При створенні каналу вказується час тайм-ауту для операцій прийому і передачі даних. Команда робить декілька спроб створити канал і в разі невдачі повертає код помилки.

При роботі з груповим ім'ям команду Call слід видати кілька разів, оскільки за один виклик створюється лише один канал. Після створення каналу поле NCB_lsn в NCB обох станцій міститиме привласнений номер каналу. Його слід зберегти. Для команди Listen у полі NCB_caLLNAME вказується ім'я, з яким встановлюється канал. Якщо в перший байт імені записати символ "*", канал буде встановлений з будь-якою зухвалою станцією. Програма може видати декілька команд Listen для створення одночасно декількох каналів.

Команда Hung_up призначена для закриття каналу, номер якого вказаний в полі NCB_lsn. Вона має бути виконана з обох боків каналу після заверш роботи. Якщо канал зайнятий, то видається помилка. Для команд передачі з чеканням відводиться 20 секунд на завершення.



Додаткова інформація: NetBIOS Extended User Interface Розширений користувальницький інтерфейс NetBIOS

Дуже простий мережевий протокол, створений IBM і Microsoft. Використовується для реалізації NetBIOS поверх Ethernet з низькими накладними витратами. NetBEUI - немаршрутізіруемий протокол.

Network Basic Input / Output System Мережева базова система введення / виводу

NetBIOS - це простий інтерфейс програмування додатків (API), створений в 1980-х роках, що дозволяє програмам надсилати дані певним мережних іменами. NetBIOS завжди працює поверх іншого мережевого протоколу, такого як IPX / SPX, TCP / IP або Logical Link Control (LLC). NetBIOS, що працює поверх LLC, більше відомий як NetBEUI (NetBIOS Extended User Interface - помилкове вживання!).

NetBT

Протокол для передачі пакетів NetBIOS через TCP / IP. Використовує порти 137, 138 і 139. NetBT - повністю маршрутізіруемий протокол.

Інфо взята з: [1]