Научная статья на тему 'Аналіз інфраструктури host-switch-host-virtualbox засобами мови Python3'

Аналіз інфраструктури host-switch-host-virtualbox засобами мови Python3 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
79
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
мікросайт / Інтернет речей / база даних / аналізатор пакетів / технологія віртуалізації. / Bottle / Internet of Things / SQLight / Sniffers / VirtualBox.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Безрук Валерій Михайлович, Кривенко Станіслав Анатолійович, Нiколенко Дмитро Олексійович

Розглядається будова інформаційної інфраструктури для створення мережі моніторингу та контролю за станом технології IoT, які традиційно використовують в мережах з низькою швидкістю, низькою потужністю і короткими пакетами даних. Аналіз зосереджений на прикладі реалізації концепції мікросайту Bottle з підтримкою бази даних SQLight. Експериментальні результати показують ефективність і стабільність роботи системи.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Host-switch-host-virtualbox Infrastructure Analysis by means of python3

The structure of the information infrastructure for creating a network for monitoring and controlling the state of the IoT technology that is traditionally used in networks with low speed, low power and short data packets is considered. The analysis focuses on the example of implementing the concept of a Bottle micro site with the support of the SQLight database. Finally, experimental results show the efficiency and stability of the system.

Текст научной работы на тему «Аналіз інфраструктури host-switch-host-virtualbox засобами мови Python3»

ТЕЛЕКОММУНИКАЦИИ

УДК 681.518.5

АНАЛ1З 1НФРАСТРУКТУРИ HOST-SWITCH-HOST-VIRTUALBOX ЗАСОБАМИ МОВИ PYTHON3

БЕЗРУКВ.М., КРИВЕНКО С.А.,

Н1КОЛЕНКО Д.О._

Розглядаеться будова шформацшно! шфраструктури для створення мереж1 монiторингу та контролю за станом технологи IoT, яш традицiйно використовують в мережах з низькою швидшстю, низькою потужнiстю i короткими пакетами даних. Анал1з зосереджений на прикладi реал1зацп концепцп мшросайту Bottle з тдт-римкою бази даних SQLight. Експериментальнi ре-зультати показують ефективнiсть i стабiльнiсть робо-ти системи.

Ключовi слова - мiкросайт, 1нтернет речей, база даних, аналiзатор пакетiв, технологiя вiртуалiзацil. Keywords - Bottle, Internet of Things, SQLight, Sniffers, VirtualBox. Вступ

Sniffers - це програми, яю можуть захоплювати, шифрувати та виявляти пакети мережного траф> ку за допомогою пакета програм та анатзувати !х з р1зних причин. Зазвичай використовуеться в галуз1 безпеки мережг Wireshark - це дуже по-ширений анатзатор протокол1в пакет1в [1]. Ця комп'ютерна програма виявляе та рееструе р1зно-маштну обмежену шформащю, особливо секрет-ш парол1, необхщш для отримання доступу до файшв або мереж. Анатзатори пакет1в можуть бути також написаш мовою python. У цш статп описаш мовою python кшька простих анал1затор1в пакет1в для платформи Linux. Використовуеться операцшна система Linux, оскшьки, хоча python е портативним, програми не будуть працювати або давати аналопчш результати, наприклад, на платформ! Windows. Це пов'язано з р1зницею в реал> зацп сокета API [2].

В данш статп дослщжуеться арх1тектура "ктент-сервер", що використовуеться в навчальному процес Харювського нацюнального ушверситету радюелектрошки. Поняття архiтектури "кшент-сервер" для р1зних людей мае р1зний змют, зале-жно вщ !х спещатзацп i вщ того, йде мова про програмне забезпечення чи про систему апарат-них засоб1в. У будь-якому випадку визначення цього поняття е досить простим: сервер (апарат-ний пристрш або програмне забезпечення) надае "послуги", яю потр1бш одному або кшьком кшен-там (користувачам послуг). Сдиним призначен-ням сервера е очшування запипв (ктеппв), пове-рнення вщповщей на них (надання послуги) i оч1-кування наступних запипв.

Ктенти, з шшого боку, звертаються до сервера з конкретним запитом, вщправляють вс необхiднi даш, а попм чекають вщповщ сервера, який мо-же або надавати запитуваш даш, або мютити вка-

з1вку на причину вщмови. Сервер працюе неви-значено довго, безперервно обробляючи запити; ктенти виконують одноразов1 запити для отримання послуги, отримують цю послугу, шсля чо-го завершують поточну операщю. Кшент може в подальшому виконувати додатков1 запити, але вони розглядаються в рамках окремих операцш. Вступаючи в св1т мережевого програмування, найважче зрозум1ти, як працюе сервер. Що ж сто-суеться функцюнування ктента, то його можна описати набагато простше в пор1внянш з сервером. Завдання ктента полягае лише в тому, що вш повинен створити свою окрему кшцеву точку зв'язку, а попм встановити з'еднання з сервером. Пюля цього ктент може виконувати запити, в тому числ1 здшснювати весь необхщний обмш даними. Пюля обробки запиту або отримання кл> ентом результату, або просто необхщного шдтве-рдження сеанс зв'язку завершуеться [3]. Широк можливосп вщкривае альтернативний шдхщ на основ1 застосування мови Python як уш-версально! для р1зних операцшних систем IoT [4]. Метою дослщження е анал1з можливостей застосування мови Python як ушверсально! для р1зних операцшних систем при реатзацп анатзатора протокол1в пакенв в мереж ¡з складною шфра-структурою.

1. Модель шфраструктури 1.1. Апаратна модель

Визначення поняття архгтектури "ктент-сервер" шюструеться на рис. 1, де показаний призначений для користувача, або кл1ентський, комп'ютер, за допомогою якого отримуеться шформащя вщ сервера через 1нтернет.

ТС _ i г- ■ - г

Рис. 1. Типове використання одного з кластерiв 21£;Вее

Хоча така система дшсно може служити прикладом арх1тектури "кшент-сервер", це не единий вар1ант дано! архиектури. Кр1м того, архiтектура "ктент-сервер" може бути реатзована не ильки за допомогою програмного забезпечення, але \ з застосуванням комп'ютерних апаратних засоб1в. Прикладами апаратних сервер1в можуть служити сервери друку. Вони обробляють завдання на друк { вщправляють !х на принтер (або на якийсь шший пристрш друку), шдключений до тако! си-стеми. Як правило, доступ до сервера друку нада-

еться в мереж^ i клieнтськi комп'ютери вщправ-ляють на нього запити друку. Ще одним прикладом апаратного сервера може служити файловий сервер. Таю сервери, як правило, являють собою комп'ютери з великим обся-гом запам'ятовуючих пристро1'в загального приз-начення, до яких надаеться дистанцiйний доступ для клiентiв. Комп'ютери ктенпв монтують диски серверного комп'ютера так, начебто цi диски перебувають на локальному комп'ютерi. Одшею з найбiльш широко застосовуваних мережних опе-рацiйних систем, якi шдтримують файловi сервери, е NFS компани SUN MICROSYSTEMS. Якщо доступ до мережного дискового накопичувача органiзований так, що неможливо визначити, чи встановлений диск на локальному комп'ютерi чи знаходиться в мереж^ це означае, що система "ктент-сервер" усшшно виконуе свою роботу. Призначення тако1 системи полягае в тому, щоб користувач у свош роботi не вщчував рiзницi мiж локальним i мережним диском. Таке функцiону-вання системи доступу забезпечуеться за допомо-гою програмно1 реалiзацiï.

Програмнi сервери також експлуатуються на апа-ратних засобах, але, на вiдмiну вiд апаратних серверiв, не мають видiлених перифершних при-строïв (принтерiв, дискових накопичувачiв). До основних послуг, що надаються програмними серверами, вiдносяться виконання програм, по-шук i передача даних, агрегування, оновлення даних, а також здшснення iнших типiв запрогра-мованих дш або операцiй манiпулювання даними. У нашi днi до найбiльш широко застосовуваних програмних серверiв вiдносяться веб-сервери. Приватш особи або компанiï, яю бажають екс-плуатувати власнi веб-сервери, повинш придбати один чи юлька комп'ютерiв, пiдготувати веб-сторiнки або створити веб-додатки, яю вони бажають надати користувачам, а по^м запустити веб-сервер. Призначення такого сервера полягае в тому, щоб приймати ктентсью запити, повертати веб-сторiнки веб-клiентам, тобто браузерам на комп'ютерах користувачiв, а по^м чекати насту-пного ктентського запиту. Передбачаеться, що пiсля запуску щ сервери повиннi експлуатуватися невизначено довго. Зрозумшо, це недосяжна мета, але безперервна експлуатащя веб-серверiв здiйснюеться настiльки довго, наскiльки це мож-ливо, за умови вщсутносп втручання якоюь зов-нiшньоï сили, яка свщомо чи несвiдомо (напри-клад, через вiдмову апаратних засобiв) викликае припинення ïx роботи.

Ще одним типом програмних серверiв е сервери баз даних. Таю сервери приймають ктентсью запилв на збереження або пошук iнформацiï, ви-конують дiï вiдповiдно до цих запитах, а поим очшують надходження завдання на виконання чергово1' роботи. Ц сервери також призначенi для експлуатаци протягом невизначено довгого часу. Останшм типом програмного сервера е вшонний

сервер. Таю сервери можуть розглядатися майже як aнaлогiчнi апаратним серверам. Вони експлуатуються на комп'ютерi з шдключеним пристроем вiдобрaження, наприклад, монiтором того чи ш-шого типу. Клiентaми вiконного сервера е про-грами, для роботи яких потрiбно вiконне середо-вище. Таю кшенти прийнято розглядати як дода-тки з грaфiчним iнтерфейсом користувача GUI1. Спроба виконання подiбних додатюв без вшон-ного сервера, шшими словами, в середовищi шд-тримки текстового режиму, такому як вшно DOS або командний iнтерпретaтор Unix, призводить до невдалого завершення. Пюля отримання доступу до вшонного сервера додатки з грaфiчним штерфейсом функцiонують нормально. Таке се-редовище стае ще бiльш цiкaвим, якщо застосо-вуеться поряд з мережними засобами. Зазвичай як дисплей для вшонного клiентa служить сервер на локальному комп'ютер^ але в деяких мережних середовищах пiдтримки вiкон, таких як система Х Window, для виведення вщображення з грaфiч-ного додатку можна вибрати вшонний сервер ш-шого комп'ютера. У таких ситуащях програма з грaфiчним штерфейсом користувача може експлуатуватися на одному комп'ютер^ а виводити зображення на шшому!

Як приклад описаних вище систем, можна розг-лянути передачу шформацп в системi, схема яко! наведена на рис. 2.

Study Room

--

Î ? ?

i 1 \ 1 1 /

Laptop 1 laptop 2

Living Room

7T77B1 (y) |L

Router / \ Smart phone

Рис. 2. Апаратна модель

До складу системи входять таю елементи: ноутбуки Lenovo s10-3(Windows 8.1 pro) та Asus X200MA(Windows 10 education); комутатори D-Link DIR100 та TP-LINK WR740N; пасивна опти-чна мережа.

1 graphical user interface - GUI

1.2. Налаштування системи

На ноутбук Lenovo s10-3 була встановлена BipTy-альна машини VirtualBox Bepciï 5.2.8. VirtualBox надае BiciM вipтyальних карт Ethernet PCI для ко-жноï вipтyальноï машини. Для кожноï такоï карт-ки можна самостiйно вибрати обладнання, яке буде вipтyалiзоване, а також режим вipтyалiзацiï, в якому вipтyальна карта буде працювати у вщ-ношеннi фiзичного мережевого обладнання на хост Asus X200MA (рис. 3).

Рис. 3. Перша вiртуальна карта

Чотири мережних карти можна налаштувати у роздш "Мережа" д1алогового вшна в граф1чному штерфейс користувача VirtualBox. Налаштування друго1 мережно! карти наведено на рис. 4.

Adapter 1 Adapter 2 Adapter 3 Adapter -4 0 Enable Network Adapter Attached to:

Bridged Adapter T

Name: » Advanced

Realtek PCIe FE Family Controller

Рис. 4. Друга вiртуальна карта

Для друго! картки вибрано тип обладнання (Real-tec PCIe FE Family Controller), яке буде представлено в1ртуальн1й машиш.

За допомогою мостових мереж VirtualBox вико-ристовуе драйвер пристрою на систем1 WINDOWS 10 хосту Asus X200MA, який фшьт-руе даш з ф1зичного мережевого адаптера. Цей драйвер називасться "net filter". Це дозволяе VirtualBox перехоплювати даш з ф1зично! мереж1 та вставляти в не! даш, ефективно створюючи новий мережний штерфейс у програмному забез-печенш. Коли псть використовуе такий новий штерфейс програмного забезпечення, вш вигля-дае на хост-систем1 так, шби псть був ф1зично шдключений до штерфейсу за допомогою мережевого кабеля: хост може вщправити даш гостю через цей штерфейс i отримувати вщ нього даш.

Це означае, що можна налаштувати маршрутиза-цiю або мют мiж гостем та шшою частиною мереж.

Для цього VirtualBox потребуе драйвера пристрою на хост-системг Те, як працюе мостова мережа, повшстю переписано за допомогою VirtualBox 2.0 та 2.1, залежно вщ операцiйноi системи хоста. З точки зору користувача, головна вщмшнють полягае в тому, що складна конфиу-ращя бшьше не потрiбна нi в однш iз шдтриму-ваних операцiйних систем для хоспв. Незважаючи на те, що TAP бшьше не потрiбний для Linux з мостовими мережами, можна викори-стовувати штерфейси TAP для деяких додатко-вих налаштувань, оскiльки ви можете пiдключити вiртуальну машину до будь-якого хоста-штерфейсу, який також може бути штерфейсом TAP.

Щоб увiмкнути мережу з мостом, все що потрiб-но зробити, це вщкрити дiалогове вшно налаштування вiртуальноi машини, перейти на сторшку «Мережа» та вибрати «Мостова мережа» у списку для «Прикршлено до». Нарешп, вибрати пот-рiбний головний iнтерфейс зi списку внизу стор> нки, який мютить фiзичнi мережнi iнтерфейси систем. Наприклад, на типовому MacBook це дозволить вам вибрати мiж "enl: AirPort" (який е бездротовим штерфейсом) i "en0: Ethernet", який представляе iнтерфейс iз мережевим кабелем. Перехвд до бездротового iнтерфейсу виконуеться iнакше, нiж вiд моста до проводового iнтерфейсу, тому що бшьшють бездротових адаптерiв не шд-тримують нерозбiрливий режим. У всьому траф> ку потрiбно використовувати MAC-адресу бездротового адаптера хоста, тому VirtualBox мае за-мшити вихщну MAC-адресу в заголовку Ethernet вихщного пакета, щоб переконатися, що вщпо-вщь буде надiслано на головний штерфейс. Коли VirtualBox бачить вхщний пакет з IP адресою призначення, що належить одному з адаптерiв вiртуальноi машини, вiн замiнюе MAC-адресу призначення в заголовку Ethernet за допомогою MAC-адреси адаптера VM та передае його. VirtualBox розглядае пакети ARP та DHCP, щоб вивчати IP адреси вiртуальних машин. Залежно вщ операцiйноi системи вашого хосту слiд пам'ятати про таю обмеження: У хостах Macintosh функщональшсть обмежена, коли використовуеться AirPort (бездротова мережа Mac) для мостових мереж. В даний час VirtualBox тдтримуе тльки IPv4 та IPv6 через AirPort. Для шших протоколiв (наприклад, IPX) потрiбно вибрати провщний iнтерфейс. У хостах Linux функщональшсть обмежена, коли використовуються бездротовi iнтерфейси для мостових мереж. В даний час VirtualBox тдтримуе тшьки IPv4 та IPv6 через бездротовий зв'язок.

Для шших протоколiв (наприклад, IPX) потрiбно вибрати провiдний iнтерфейс. Крiм того, встановлення MTU на менш шж 1500 бaйтiв на дротяних штерфейсах, надане драйвером sky2 на NIC ультра Ethernet UE Marvell Yukon II EC, як вщомо, викликае втрати пaкетiв при певних умовах. 1.3. Взаeмодiя елементiв Схема оргашзацп зв'язку наведена на рис. 5.

Внутршня структура фрейму Ethernet вказана в стандарт IEEE 802.3. На рис. 6 показано повний пакет Ethernet та кадр всередиш, як це було над> слано, для розмiру корисного навантаження MTU 1500 окте^в.

Деяю реалiзацiï Gigabit Ethernet та шших варiан-тiв високо1' швидкостi Ethernet шдтримують б> льшi фрейми, вiдомi як Джамбо фрейми.

ETHERNET FRAME

PAYLOAD (IP/ARP frame + padding) 46byte-150Qbyte

0x0800 - 1P4 l-HAMt

0x0806 - ARP REQUEST/RESPONSE

0x&6dd = IP6 FRAME

FRAMt LEMCTH IS NOT USED!

х'чхя+х;:+х;;+хч

+XL,"'+XS)+X":+X'+X:+

+x!+)C+x!+x+i

ETHERNET

MAC ADDRESSES

BROADCAST ADDRESS = FF:FF:FF:FF:FF:FF

multicast address = Ûl:xx:xx:xx:xx:xx {FIRST ADDRESS BIT « LS8 - OME!)

Bit order in a byte: L5B first, MSB last (BIG ENDXA«) Byte order in the addresses, rvPE and cue: little wdiam Byte order in the pay load: usually LITTLE ENDIAN (IP/ARP)

Рис. 5. Схема оргашзацп зв'язку

Веб-сервер BOTTLE (один файл мовою PYTHON3) запускаеться в середовищi IDLE, яке працюе шд гостьовою операцшною системою XUBUNTU 18.04 на вiртуальнiй машинi. Опера-цiйною системою хоста Asus X200MA е WINDOWS10. Призначення такого сервера поля-гае в тому, щоб приймати клiентськi запити, по-вертати веб-сторiнки веб-клiентам, тобто браузерам на комп'ютерах користувачiв, а поим чекати наступного кшентського запиту. Клiентськi запити збертаються в базi даних пiд управлшням SQLight (один файл мовою PYTHON3). 2. Результати дослiдження

Результати дослщження отриманi за допомогою написаних мовою python юлькох простих анал> заторiв пакетiв для платформи Linux. Використо-вуеться операцiйна система XUBUNTU. Аналiзу-еться трафiк фрейм ворка (Python Web Framework) i SQLight, яю тдвищують продукти-внiсть мереж i ефектившсть обслуговування велико!' юлькосп пристро1в IoT. 2.1. Аналiз фрейму Ethernet Пакет даних на дрот та фрейм як його корисне навантаження складаються з двшкових даних. Ethernet передае даш з найбшьш значущим октетом (байтом) спочатку; однак в межах кожного октету найменший значний б^ переноситься.

Рис. 6. Фрейм Ethernet

Для видобування фреймiв створюеться об'ект сокету

conn = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(3)) з такими параметрами: сiм'я адрес -AF_PACKET; тип сокету - SOCK_RAW; тип протоколу - визначаеться на основi перетворення об'ектiв мережi до об'ектiв хосту socket.ntohs(3). 2.2. Розпакування заголовкiв IP-паке^в IP-пакет складаеться з роздiлу заголовюв та роз-дiлу даних. IP-пакет не мае контрольно! суми даних чи будь-якого шшого суфшса шсля роздiлу даних. Як правило, канальний рiвень (Ethernet) iнкaпсулюе IP-пакети в фрейми з суфiксом CRC, який виявляе бшьшють помилок, i зазвичай контрольна сума ТСР^вня до кiнця визначае бшьшють iнших помилок. Заголовок пaкетiв IPv4 складаеться з 14 полiв, з яких 13 необхщш (рис.7).

Наведений нижче код повертае правильно вщфо-рматовану адресу IPv4: import struct

class IPv4:

def_init_(self, raw_data):

version_header_length = raw_data[0]

self.version = version_header_length >> 4

self.header_length = (version_header_length & 15) * 4

self.ttl, self.proto, src, target = struct.unpack('! 8x B B 2x 4s 4s', raw_data[:20])

self.src = self.ipv4(src)

self.target = self.ipv4(target) self.data = raw_data[self.header_length:] # Returns properly formatted IPv4 address def ipv4(self, addr):

return '.'.join(map(str, addr))

import struct

class TCP:

def_init_(self, raw_data):

(self.src_port, self.dest_port, self. sequence, self.acknowledgment, offset_reserved_flags) = struct.unpack(

'! H H L L H', raw_data[: 14]) offset = (offset_reserved_flags >> 12) * 4 self.flag_urg = (offset_reserved_flags & 32) >> 5 self.flag_ack = (offset_reserved_flags & 16) >> 4 self.flag_psh = (offset_reserved_flags & 8) >> 3 self.flag_rst = (offset_reserved_flags & 4) >> 2 self.flag_syn = (offset_reserved_flags & 2) >> 1 self.flag_fin = offset_reserved_flags & 1 self.data = raw_data[offset:]

Рис. 7. Заголовок ИР-пакепв

2.3. Розпаковка даних ICMP та TCP

ICMP - мережний протокол, що входить в стек протоколiв TCP/IP. В основному ICMP викорис-товусться для передачi повщомлень про помилки й iншi винятковi ситуацп, що виникли при пере-дачi даних. Також на ICMP покладаються деякi сервiснi функцп, зокрема на основi цього протоколу заснована дiя таких загальновiдомих утилгг як ping та traceroute.

ICMP описаний в RFC 792 (з доповненнями в RFC 950) i е стандартом 1нтернету (входить в стандарт STD 5 разом з протоколом IP). Хоча формально ICMP використовуе IP (ICMP пакети шкапсулюються в IP пакети), вш е невщ'емною частиною IP й обов'язковий при реашзацп стека TCP/IP. Поточна верая ICMP для IPv4 називаеть-ся ICMPv4. В IPv6 юнуе аналогiчний протокол ICMPv6.

ICMP не е протоколом, орiентованим на з'еднан-ня (як, наприклад, TCP), тобто при втрат пакету ICMP не буде робити шяких спроб по його вщно-вленню. ICMP повщомлення (тип 12) генерують-ся при знаходженш помилок у заголовку IP пакета (за винятком самих ICMP пакенв, щоб не при-звести до нескiнченно зростаючого потоку ICMP повiдомлень про ICMP повщомлення).

ICMP повiдомлення (тип 3) генеруються маршрутизатором при вщсутност маршруту до адресата. Схема розпаковки сегменпв TCP наведена на рис. 8.

Код, наведений нижче, повертае правильно вщ-форматований сегмент ТСР:

Рис. 8. Сегмент ТСР

Код, який дозволяе не друкувати надлишкову ш-формащю щодо локального хосту, наведено нижче:

s = socket. socket(socket.AF_INET, socket. SOCK_RAW, socket.IPPROTO_TCP)#line01

resa=re.search('127.0.0.1',str(s.recvfrom(1))) #line02

if resa is None : #line03

print(s.recvfrom(1)) #line04

else: #line05

print('nosano') #line06

break#line07

В рядку 1 створюеться об'ект сокету з такими параметрами: шм'я адрес - AF_INET; тип сокету - SOCK_RAW; тип протоколу - IPPROTO_TCP. Крiм того, в кодi використовуеться сiм'я адрес AF_PACKET, яка вперше введена в сучасну вер-сiю python 3.6.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рядок 2 забезпечуе пошук адреси 1нтернет протоколу локального хосту.

Рядки 3-7 забезпечують роздрукiвку адрес 1нтер-нет протоколу (рис. 9).

pyttoa j.e.s iisfauLt, Apr i 20ier м) [CCC 7.J.Û] аг иг.ич

Ty^e 'copyright", 'credit?" or "'lгr-irI ;" fer eore information.

RESTART: УяаИл/ъ Г ТмрТНЦОГВ' LiVBl i n Шла/Ру thai Г: ■ с ' rl 11 ■ - e-i, ', г ■/ 11 г ■ [. -Ethernet Dde;

ï x a i \ уаа\уаа \ x « епуаа v xet x tû\ye h vyfia \ x hf \ x?a\y 36 \ x cg\ x де\ уа лусз \ к«» ^M^ xB9\y00\xe^ ус 0\уаа\*в2 \ *57\y00\ye^xei\ у00\у0е\*»\ y W\y00\y»\ xe» Wt X00\I00\*eeV Хв9\У00\Я00\*вв

RESTART: /W*6H/sf iSiOl.1 ГГ "rf.i: ■ Г ■>■ i f t И 11 >■■ [)-

- IPv4 packet:

- VaniAfi: 4, Header Lennth; :: TTL: 1H

- Protocol : й, lS?.16B.?.iai. tarait: 132.16ft. Î. IB]

- 1CP segnent:

source Port: 10S1S. Bcstiiation porl: ¿010 : Sequence; 2449747033. Achnmrledflnenl; Q

- ilpgj:

- UflG: 9. ACK : 0. PS«: 0 ■ ItsT: s. Srrr: t. FtH:0

Рис. 9. Результати анал1зу

Даш Ethernet роздруковаш вбудованими функцi-ями:

print('Ethernet Data:')

print(format_multi_line(DATA_TAB_1, eth.data)) 1нформащю щодо пакетгв 1нтернет протоколу друкуе код

print(TAB_1 + 'IPv4 Packet:')

print(TAB_2 + 'Version: {}, Header Length: {}, TTL: {},'.format(ipv4.version, ipv4.header_length, ipv4.ttl))

print(TAB_2 + 'Protocol: {}, Source: {}, Target: {}'.format(ipv4.proto, ipv4.src, ipv4.target)) Iнформaцiю щодо сегменпв протоколу ТСР друкуе код

print(TAB_1 + 'TCP Segment:')

print(TAB_2 + 'Source Port: {}, Destination Port: { }'.format(tcp.src_port, tcp.dest_port))

print(TAB_2 + 'Sequence: {}, Acknowledgment: { }'.format(tcp.sequence, tcp.acknowledgment))

print(TAB_2 + 'Flags:')

print(TAB_3 + 'URG: {}, ACK: {}, PSH: {}'.format(tcp.flag_urg, tcp.flag_ack, tcp.flag_psh))

print(TAB_3 + 'RST: {}, SYN: {}, FIN:{}'.format(tcp.flag_rst, tcp.flag_syn, tcp.flag_fin))

Висновок

Анaлiз можливостей застосування мови Python як ушверсально! для рiзних оперaцiйних систем при реaлiзaцii aнaлiзaторa протоколiв пaкетiв в мереж iз складною iнфрaструктурою показав ефектившсть i стaбiльнiсть роботи системи. Л^ература:

1. Wireshark User's Guide [Online] Available: https://www.wireshark.org/download/docs/user-guide.pdf

2. Code a network packet sniffer in python for Linux [Online] Available:

https://www.binarytides.com/python-packet-sniffer-code-linux//

3. Wesley J. Chun Core PYTHON Applications Programming. Third Edition, Michigan, Pearson Education, Inc,.2012, pp. 53-93.

4. Analysis ZigBee Alliance initiative to create a universal language for IOT dotdot/ Bezruk V., Vlasova V., Krivenko S. // Radioelektronika i informatika. 2017. N 1.P. 9-13.

5. struct — Interpret bytes as packed binary data [Online] Available:

https://docs.python.org/3/librarv/struct.html#format-characters/

6. Python network packet sniffer. [Online]. Available: https://github.com/buckyroberts/Python-Packet-Sniffer

Надшшла до редколегп 03.06.2018 Рецензент: д-р техн. наук, проф. Бараншк В.В. Безрук Валерш Михайлович, д-р техн. наук, акаде-мш aкaдемii' зв'язку Укра!ни, професор, зaвiдувaч ка-федри «1нформацшно-мережна iнженерiя» ХНУРЕ. Адреса: Укра!на, 61166, Харшв, пр. Науки, 14, E-mail: valeriy_bezruk@ukr.net.

Кривенко Сташслав Анатол1йович, канд. техн. наук, доцент кафедри «1нформацшно-мережева шжене-рiя» ХНУРЕ. Адреса: Укра!на, 61166, Харк1в, пр. Науки, 14, E-mail: Stanislav.Kryvenko@nure.ua. Школенко Дмитро Олексшович, студент мапстер-сько! тдготовки кафедри «Iнформaцiйно-мережнa iнженерiя» ХНУРЕ. Адреса: Укра!на, 61166, Хaркiв, пр. Науки, 14, E-mail: dmitro.nikolenko@nure.ua. Bezruk Valeriy, Doctor of Technical Sciences, professor, academician of the Ukrainian Academy of Telecommunications, Professor, Head of the Department of Information and network engineering. Address: 14 Nauki av., Kharkiv city, Ukraine, 61166, E-mail: valeriy_bezruk@ukr.net Krivenko Stanislav, Candidate of technical sciences, associate professor of the Information and networkengineering department, Kharkov National University of Radioelectronics. Address: 14 Nauki av., Kharkiv city, Ukraine, 61166, E-mail: Stanislav.Kryvenko@nure.ua. Nikolenko Dmitry, Master's degree student, Department "Information and Network Engineering", Kharkiv National University of Radio Electronics. Address: 14 Nauki av., Kharkiv city, Ukraine, 61166, E-mail: dmitro. nikolenko @nure. ua

i Надоели баннеры? Вы всегда можете отключить рекламу.