Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6275| Title: | Дослідження систем аналізу інформаційних потоків канального рівня OSI |
| Authors: | Рудаков, Костянтин Сергійович Карман, Максим Миколайович |
| Issue Date: | Jan-2022 |
| Abstract: | У кваліфікаційній роботі магістра створено програмне забезпечення для системи дослідження кадрів Ethernet на мові програмування Wireshark та середовищі C++. Створений програмний продукт призначений для перегляду Ethernet кадра та його характеристик. Робота складається з чотирьох основних розділів, додатків та списку використаних інформаційних джерел. В першому розділі розглядається аналіз предметної області. В другому розділі розглядаються специфікації вимог до програмного продукту. В третьому розділі розглянуті аналоги по магістерській роботі. В четвертому розділі наведено вибір програмної реалізації і результати, які одержані із попередніх розділів. Магістерська робота складається зі вступу, 4 розділів, висновку, списку використаної літератури та додатків. Вона містить 80 сторінок. При написанні роботи використано 76 інформаційних джерел. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6275 |
| Appears in Collections: | 123 Комп’ютерна інженерія (Спеціалізовані комп’ютерні системи) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| М_123_2021_Карман+.pdf Restricted Access | 1.09 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ СИСТЕМ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
освітнього ступеня «магістр»
на тему: ДОСЛІДЖЕННЯ СИСТЕМ АНАЛІЗУ ІНФОРМАЦІЙНИХ
ПОТОКІВ КАНАЛЬНОГО РІВНЯ OSI
Виконав: студент 2 курсу, групи МСКС-2007
спеціальності 123 Комп’ютерна
інженерія
Карман М. М.
(прізвище та ініціали)
Керівник Рудаков К.С.
(прізвище та ініціали)
Рецензент
(прізвище та ініціали)
Черкаси 2021 року
ЗМІСТ
ВСТУП ........................................................................................................................... 3
РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ........................................................ 12
1.1 Принципи роботи мережі Ethernet ................................................................. 12
1.2 Історія Ethernet ................................................................................................. 15
1.3 Типи та технології OSI .................................................................................... 16
1.4 Протокол UDP .................................................................................................. 31
РОЗДІЛ 2. СПЕЦИФІКАЦІЯ ВИМОГ ДО ПЗ ......................................................... 34
2.1 Функціональні вимоги .................................................................................... 34
2.2 Не функціональні вимоги ............................................................................. 234
2.3 Вимоги до Ethernet........................................................................................... 36
РОЗДІЛ 3. ОГЛЯД ІСНУЮЧИХ АНАЛОГІВ .......................................................... 40
РОЗДІЛ 4. ВИБІР ЗАСОБІВ РЕАЛІЗАЦІЇ ............................................................... 47
4.1 Мова програмування ....................................................................................... 47
4.2 Вибір технічних засобів .................................................................................. 50
4.3 Опис та проектування системи ...................................................................... 50
ВИСНОВКИ ................................................................................................................ 55
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ............................................................. 46
ДОДАТОК А – СИСТЕМА ДОСЛІДЖЕННЯ КАДРІВ ETHERNET .................... 53
ВСТУП
На даний час система автоматизації технологія Ethernet знайшла широке
застосування завдяки високій швидкості, універсальності і простоті інтеграції
систем автоматизації виробництва з корпоративною системою керування
підприємством. Мережі на основі Ethernet використовуються на середньому та
верхньому рівнях автоматизації, а також для підключення до Інтернет. Отже
отримання практичних знань і навичок у проектуванні, налаштуванні та
тестування систем автоматизації на основі мережі Ethernet є необхідною
складовою підготовки сучасних інженерів по спеціальності електромеханічні
системи автоматизації та електропривод.
Комп'ютерні мережі передачі даних є результатом еволюції комп'ютерних
технологій і в даний час утворюють основний засіб комунікації. Створення
комп'ютерних мереж викликано потребою спільного використання інформації на
віддалених один від одного комп'ютерах. Основне призначення комп'ютерних
мереж — спільне використання ресурсів і здійснення зв'язку як усередині однієї
організації, так і за її межами. Роздільними ресурсами можуть бути дані, додатки,
периферійні пристрої.
Базові компоненти і технології, пов'язані з архітектурою локальних або
глобальних мереж, можуть включати в себе: сервери, концентратори,
комутатори, маршрутизатори, комп'ютери, засоби зв'язку між пристроями. Таким
чином, комп'ютерна мережа являє собою комплекс розподіленої комп'ютерної
техніки, з'єднаної між собою системою передачі даних, що містить комунікаційне
обладнання та канали зв'язку.
Найновішою мережевою технологією сьогодні є технологія програмно-
конфігурованих мереж (ПКС, Software Defined Networks – SDN), що виникла,
значною мірою, як у відповідь запити бізнесу, т.к. дозволяє знизити операційні та
капітальні витрати телекомунікаційних компаній, інтернет-провайдерів,
власників комп'ютерних мереж та центрів обробки даних. ІТ-фахівці єдині на
думці, що ПКС – це магістральний напрямок розвитку комп'ютерних мереж і
«через 15 років усі працюватимуть на ПКС. Питання у тому, хто буде першим»
Останні 2-3 роки ІТ-спільнота активно обговорює можливості, варіанти реалізації
ще однієї нової технології - технології віртуалізації мережевих функцій (ВСФ,
Network Functions Virtualization - NFV).
Цій технології, як і ПКС, відводиться вирішальна роль подальшому розвитку
комп'ютерних мереж.
Особливо наголошується на ролі технології ВСФ у питаннях зменшення
часу розгортання комп'ютерних мереж та «озелененні» (або «екологізації»)
мережі Інтернет. Тобто. мається на увазі, що мережеві технології споживають
дуже багато енергії і майбутня архітектура комп'ютерних мереж має бути більш
енергоефективною. Інтернет займає 2% світового споживання електроенергії, що
еквівалентно потужності роботи 30 атомних електростанцій – 30 млрд.
Найбільший позитивний ефект при побудові мереж досягатиметься при
спільному застосуванні обох технологій, причому технологія ПКС є
«провідною», базовою до ВСФ, т.к. остання має впроваджуватися в архітектуру
ПКС. Технології ПКС і ВСФ є новими, революційними за очікуваною
ефективністю, мережевими технологіями, розробкою яких з 2007 р. активно
займаються і багато провідних світових ІТ-компаній, і кількість нових стартапів,
що все збільшується.
Найбільш успішними є: Nicira Networks (перший успішний комерційний
проект), Big Switch Networks, Vyatta, Pluribus Networks, Plexxi, LineRate Systems,
Contrail Systems. У 2011 році альянс компаній Deutsche Telekom, Facebook,
Google, Microsoft, Verizon та Yahoo утворили громадську організацію Open
Networking Foundation (ONF), націлену на просування та стандартизацію ПКС та
координуючу розвиток відкритого мережевого протоколу OpenFlow. Наразі до
складу ONF вже входить понад 40 найбільших ІТ-компаній світу. У РФ також
створено єдиний координуючий орган для дослідження ПКС-мереж, який є і
майданчиком для виникнення стартапів у цьому напрямі. Це Центр прикладних
досліджень комп'ютерних мереж (ЦПІКС), який є резидентом ІТ-кластера
інноваційного Фонду «Сколково». Розуміючи всі переваги ПКС технології,
компанії Google та Microsoft нещодавно впровадили її у свої центри обробки
даних.
Причини виникнення та утримання технології ПКС
Потреба нової мережевої парадигми виникла з таких причин:
• Зміна моделей переміщення трафіку: У звичайних клієнт-серверних
програмах, коли один клієнт зв'язується з одним сервером, модель
переміщення трафіку можна визначити як «північ-південь». У сучасних
центрах обробки даних запит від клієнта формує численні «горизонтальні»
переміщення інформації між комп'ютерами поки не буде сформовано
відповідь і переданий клієнту. Таку модель переміщення трафіку можна
визначити як схід-захід. Виконання запитів в останньому випадку
ускладнюється ще й тим, що вони виконуються з численних мобільних
пристроїв, з будь-якого місця і в будь-який час.
• Зростання хмарних послуг: Наразі відбувається безпрецедентне зростання
хмарних послуг – публічних та приватних. Користувачі хочуть мати до них
швидкий доступ – доступ на запит (on-demand). Проблема ускладнюється
тим, що при плануванні хмарних послуг необхідно враховувати всі
зростаючі вимоги щодо безпеки, сумісності, аудиту, а також динаміку
розвитку бізнесу: постійні реорганізації, злиття та роз'єднання
підприємств.
• Величезні обсяги інформації вимагають постійного зростання смуги
пропускання каналів: Управління "мегамасивами" даних вимагає
паралельної обробки на сотнях серверів, які безпосередньо з'єднані один з
одним. Тому в центрах обробки даних є постійна потреба у підвищенні
пропускної спроможності каналів зв'язку, викликана необхідністю
швидкого масштабування мережі зі збільшенням кількості оброблюваної
інформації.
• Складність мереж, що веде до їх статичності: Існуючі мережеві технології
засновані на наборі мережевих протоколів, що забезпечують надійне
з'єднання хостів у мережі з необхідною швидкістю з'єднання, з
урахуванням конкретної топології мережі. Відповідно до запитів бізнесу,
для покращення тих чи інших характеристик мережі кількість мережевих
протоколів постійно зростає. Кожен з них призначений для вирішення
певного завдання, вводиться незалежно від інших, поза рамками будь-якої
загальної архітектурної ідеї. Все це викликало головне обмеження, брак
існуючих мережевих технологій: складність. Статична, тобто. важка для
перенастроїв, природа існуючих мереж різко відрізняється від динамічної
природи технології серверної віртуалізації, що широко використовується в
центрах обробки даних, внаслідок чого виникає багато питань за адресними
схемами, сегментування мереж, організації маршрутизації.
Програмно-конфігурована мережа – це мережа, в якій управління мережею
відокремлено від мережевих пристроїв, що забезпечують просування
інформації в мережі, і безпосередньо програмується. Таке переміщення
управління, раніше жорстко прив'язаного до конкретних мережевих
пристроїв, доступний обчислювальний пристрій, дозволяє додаткам та
мережевим сервісам абстрагуватися від нижчележачого фізичного обладнання
та розглядати мережу як якусь логічну та віртуальну сутність [9]. На рис. 1
зображена логічна структура архітектури ПКС, пропонована ONF та
реалізована на базі інтерфейсу OpenFlow.
Рис. 1. Логічна структура архітектури ПКС
Архітектура ПКС включає три рівні, доступ до яких здійснюється через
відкриті API (тобто це повинні бути відкриті стандарти):
• Рівень програм, що складається з бізнес-додатків кінцевих користувачів.
Його взаємодія з нижчим рівнем здійснюється через інтерфейс
програмування додатків (API) північного кордону (northbound API).
Використовуючи зазначені API, можна реалізувати весь набір
мережевих сервісів: маршрутизацію, широкомовні розсилки, безпеку,
списки доступу, управління смугою пропускання, інженіринг трафіку,
якість обслуговування, оптимізацію роботи процесора та пам'яті,
оптимізацію використовуваної енергії, всі форми управління
мережевими політиками, спеціальні настройки бізнесу.
• Рівень управління здійснює логічно централізоване управління, що
забезпечує просування трафіку на інфраструктурному рівні за
допомогою відкритого інтерфейсу OpenFlow, що також називається
інтерфейсом південного кордону (southbound interface). Рівень
управління постійно «бачить» всю мережею і здатний керувати всіма
мережевими пристроями. Тому додаткам та мережевим політикам
мережа представляється як єдиний логічний комутатор. Зазначена
обставина надзвичайно спрощує створення, керування та
обслуговування мережі. Також спрощуються самі мережеві пристрої.
• Рівень інфраструктури складається із мережевих пристроїв, які
забезпечують просування пакетів даних. На рис. 2 показана схема
просування пакетів між мережними пристроями, що керуються ПКС-
контролером через інтерфейс OpenFlow.
Рис. 2. Схема просування пакетів між мережевими
пристроями під керуванням ПКС-контролера
Метою даної кваліфікаційної роботи є розробка програми «Система
дослідження кадрів Ethernet».
Для досягнення мети розв’язано такі задачі:
• проведено аналіз типів протоколів та методів їх передачі даних;
• здійснено передачу пакета(кадра) із клієнта на сервер;
• апробовано та реалізовано передачу кадра.
Завданням кваліфікаційної роботи є закріплення і розширення теоретичних
і практичних знань з використанням готових і створення власних систем
досліджень. Написання кваліфікаційної роботи являє собою чудовий шанс
закріплення навичок, які студент здобуває протягом вивчення предмету.
Зазвичай, в завданні кваліфікаційної роботи можна помітити легкі натяки на
практично кожну з тем, які були подані протягом всього курсу та ті, які були
подані на самостійне опрацювання.
Над питанням розробки цієї тематики присвячено ряд робіт відомих
науковці: Крамер Д.Є, Олифер О, Пахомов С, Семенов А.Б, Цвиркун Л.И, Radhika
R.R та інші. Проте дослідження системи кадрів Ethernet не достатньо розкрита.
Тому ця тематика являється актуальною.
Мета та задачі дослідження
Метою дослідження є удосконалення системи генерації кадрів Ethernet за
рахунок розробки методів програми.
Для досягнення мети потрібно розв’язати такі задачі:
• провести аналіз типів протоколів та методів передачі даних;
• розробити алгоритм для створення програми «системи дослідження кадрів
Ethernet»
• удосконалити метод передачі даних на основі визначеного протоколу;
• провести верифікацію запропонованого методу передачі даних.
Об’єктом дослідження
Об’єктом дослідження є процеси системи кадрів Ethrnet, що передають
дані від клієнта на сервер.
Предметом дослідження
Предметом дослідження є система кадрів Ethernet.
Методи дослідження
Методи дослідження базуються на використанні теорії проектування
систем, теорії системного аналізу, синтезу, програмування та алгоритмізації.
Наукова новизна отриманих результатів
• проведено дослідження та аналіз типів протоколів та методів передачі
даних та визначено напрямок удосконалення системи дослідження кадрів
Ethernet;
• удосконалено метод передачі даних на основі визначеного протоколу, який
відрізняється простотою від існуючих аналогів, що пришвидшує процес
впровадження при застосуванні;
• проведено верифікацію, яка підтвердила перевагу удосконаленого методу
Практичне значення отриманих результатів полягає в доведенні отриманих
наукових результатів до конкретних інженерних рішень:
• розроблено алгоритм для створення програми «системи дослідження
кадрів Ethernet»;
- розроблено схему визначення пакетів, в якому відображаються номер,
МAC- і ІР-адреси передавального і приймаючого хоста і час появи пакета;
- удосконалено швидкість показу та передачу пакетів від клієнта до сервера.
Особистий внесок здобувача: всі результати роботи отримані автором
самостійно. Робота провірена на плагіат.
Апробація результатів: Результати роботи доповідались і обговорювалися на
науковій конференції в 2020 році, в м. Черкаси.
РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
1.1 Принципи роботи мережі Ethernet
Ethernet описує технологію кабельних мереж передачі даних, які з'єднують
програмне забезпечення та / або апаратне забезпечення між собою. Здебільшого
це відбувається через локальні кабелі, саме тому Ethernet іноді називають
технологією LAN. Таким чином Ethernet забезпечує обмін даними між кінцевими
пристроями. Це можуть бути комп’ютери, принтери, сервери, маршрутизатори
тощо. При об'єднанні в локальну мережу ці пристрої встановлюють з'єднання
через протокол Ethernet і можуть обмінюватися пакетами даних один з одним.
Поточний і найбільш розповсюджений протокол - IEEE 802.3.
Ethernet був розроблений ще на початку 1970-х, але мережева система
спочатку використовувалась лише внутрішньо компанією Xerox. На початку
1980-х Ethernet був розроблений в стандартизований продукт. Однак Ethernet досі
не використовувався широко до середини десятиліття, коли кілька виробничих
компаній почали працювати з Ethernet та супутніми продуктами. Технологія
зробила вагомий внесок у те, як персональний комп'ютер зробив революційний
робочий світ. Сьогодні широко розповсюджений стандарт 802.3 IEEE
використовується в офісах, приватних домогосподарствах, контейнерах та
перевізниках.
Хоча перша версія технології мала лише швидкість 3 мегабіти в секунду,
протокол Ethernet сьогодні забезпечує швидкість до 1.000 мегабіт в секунду.
Раніше Ethernet обмежувались будівлею, але сьогодні Ethernet може охоплювати
дальність трохи більше 6 миль за допомогою волоконно-оптичних кабелів.
Протягом свого розвитку Ethernet взяв на себе домінуючу роль серед локальних
технологій та випереджав різних конкурентів. Крім того, сьогодні Ethernet в
режимі реального часу є галузевим стандартом для комунікаційних програм.
Кожен пристрій мережі Ethernet отримує власну 48-бітну адресу, яку
називають MAC-адресою. Учасники однієї мережі можуть обмінюватися
високочастотними повідомленнями. Для цього Ethernet використовує базову
смугу та мультиплексування. Гладкий алгоритм CSMA / CD (сенсор
багаторазового доступу / виявлення зіткнення) використовується для зв'язку один
з одним. Топологія мережі Ethernet є логічною, тому структура може бути
реалізована, наприклад, як шина або зірка.
Спілкування з цим алгоритмом схоже на дискусію за круглим столом, де
кожен учасник дозволяє іншому висловитися. Якщо два повідомлення
стикаються, учасники намагаються знову надіслати їх через випадкові проміжки
часу. Оскільки повідомлення повинно бути надіслане так само, як і прийняте, щоб
бути успішним, не може бути жодних заторів, наприклад, якщо надіслане
повідомлення занадто сильне для порівняно низької продуктивності прийому. В
іншому випадку дані можуть бути втрачені. Швидкість сигналу та швидкість
передачі контролюють безперебійний зв’язок, визначаючи правила для кадрів
даних.
Для запобігання зіткнення даних відповідний сигнал повинен дійти до
приймача перед пакетом даних. Оскільки більшість мереж сьогодні працюють у
повнодуплексному режимі, проте це рідко є проблемою. Але це було досить
важливо для більш раннього розвитку технології Ethernet.
Спочатку кожне повідомлення, надіслане в межах мережі, переходило на
всі підключені пристрої. Потім вони повинні були фільтрувати всі отримані дані
та вирішувати, чи стосуються вони їх. Ця загальна шина підтримувала
широкомовні повідомлення, але також фіксувала весь трафік даних для кожного
учасника - явно пробел у безпеці раннього Ethernet. Дані можуть бути
зашифровані, але сам трафік даних не можна контролювати індивідуально. Хаби
також не змогли закрити цей розрив у безпеці. Мости та комутатори є рішенням
у сучасних мережах, оскільки їх можна використовувати для сегментації Ethernet.
Ця технологія не вирішує всіх проблем. Наприклад, зловживання MAC-
підтопленням або підробкою MAC все ще становлять небезпеку для стабільності
мережі та безпеки переданих комунікаційних пакетів даних. Отже, безпечна
робота з Ethernet вимагає серйозного використання всіх підключених систем і
регулярного аналізу даних (наприклад, локальної мережі), щоб виявити можливі
випадки неправильного використання або порушень.
Поки кількість даних Ethernet не працює, вона працює добре. Однак,
коефіцієнт використання потужностей понад 50 відсотків може призвести до
затримки даних. Оскільки персональні комп'ютери розвивалися технологічно і
постійно збільшували обсяг своїх даних, мережі Ethernet також довелося
розвиватися, щоб не відставати від прогресу технологій. Комутатори
відповідають за ефективне ділення пакетів даних та мінімізацію ризику зіткнень.
Сучасні кабельні технології, такі як кручена пара та волоконно-оптичні, мають
більш високі швидкості передачі, що відповідають сучасним вимогам до мережі.
Ще одне нововведення - "Контроль потоку Ethernet". За допомогою цього
механізму передачу даних можна тимчасово зупинити, щоб полегшити потік
даних з іншого місця. Це особливо практично в повнодуплексному режимі, коли
мережа обслуговує відносно велику кількість кінцевих пристроїв. Контроль
потоку для конкретних членів мережі тимчасово відключається для оптимізації
загальної надійності мережі. Це також може спричинити втрати швидкості, які
можуть бути спричинені іншими механізмами, такими як протокол управління
передачею.
1.2 Історія Ethernet
Ethernet розвинувся з радіомережі ALOHAnet від Університету Гаваїв. У
дослідницькому центрі Xerox Palo Alto прозорливий Роберт Меткальф вже
працював над ранньою версією кабельного протоколу Ethernet на початку 1970-
х. Він мав на меті полегшити роботу в компанії спочатку, а потім пройти активну
перевірку. Фаза випробувань досягла свого найвищого рівня в 1976 р. В
науковому документі, опублікованому Меткальфом разом з Девідом Богогсом. У
ньому описані локальні мережі підключених персональних комп'ютерів.
У 1979 році Меткалф заснував власну компанію 3com, щоб розвинути
комп'ютери та локальну мережу та встановити Ethernet як стандарт. У 1980 році
він здійснив свій прорив із прийняттям Ethernet 1.0, який потім був розроблений
Інститутом інженерів електротехніки та електроніки (IEEE). Цей процес призвів
до винаходу інших технологій, включаючи протокол CSMA / CD (носій почуття
множинного доступу / виявлення зіткнення), який згодом став відомим як IEEE
802.3. Він також створив новаторські протоколи токен-шини (802.4) та
токенового кільця (802.5).
У період з 1983 по 1986 рр. Інновації Cheapernet, Ethernet-on-Broadband та
StarLAN прийшли на сцену до того, як стандарт Ethernet почав привертати більше
уваги багатьох виробників. Як результат, деякі невеликі компанії почали
використовувати мережі Ethernet на робочому місці, але все ще через телефонні
чотирипровідні лінії. Підключення до Ethernet через виту пару і волоконно-
оптичні кабелі не були розроблені до початку 1990-х років, що призвело до
впровадження стандарту 100 Мб / с для Ethernetacoding до IEEE 802.3u в 1995
році. одночасно. 1995 рік вважається роком народження сучасного Інтернету.
У минулому Ethernet в основному використовував звичайні коаксіальні
кабелі. Сьогодні мідні кабелі та волоконно-оптичні кабелі з крученою парою є
галузевим стандартом, оскільки вони дозволяють значно швидше передавати та
збільшувати діапазон. Ще одна перевага полягає в тому, що мідні кабелі також
можуть подавати живлення на підключені пристрої. Цей метод, який називається
"влада над Ethernet" (PoE), визначений в IEEE 802.3af і забезпечує
енергоефективні мережі.
1.3 Типи та технології Ethernet
Описуючи основи мережевих технологій, буде корисно пояснити різні
типи мереж, які використовуються.
Локальні мережі (локальні мережі)
Мережа - це будь-яка колекція незалежних комп'ютерів, які обмінюються
інформацією один з одним через спільний носій інформації. Локальні мережі або
локальні мережі, як правило, обмежені обмеженою географічною територією,
наприклад, однією будівлею або університетським містечком. Локальні мережі
можуть бути невеликими, поєднуючи всього три комп'ютери, але часто можуть
зв'язувати сотні комп'ютерів, якими користуються тисячі людей. Розробка
стандартних мережевих протоколів та засобів масової інформації призвела до
поширення в усьому світі локальних мереж у бізнесі та освітніх організаціях.
Мережі широкої площі (WAN)
Часто елементи мережі широко фізично розділені. Мережа широкої
області поєднує в собі кілька локальних мереж, які географічно розділені. Це
досягається підключенням декількох локальних мереж із виділеними
орендованими лініями, такими як T1 або T3, комутованими телефонними лініями
(синхронними та асинхронними), супутниковими каналами зв'язку та послугами
несучої передачі пакетів даних. WAN можуть бути такими ж простими, як модем
і сервер віддаленого доступу для службовців, а також можуть бути такими ж
складними, як сотні філій, що є глобально пов'язаними. Спеціальні протоколи
маршрутизації та фільтри мінімізують витрати на передачу даних на великі
відстані.
Бездротові локальні мережі (WLAN)
Бездротові локальні мережі або бездротові локальні мережі
використовують технологію радіочастот (RF) для передачі та прийому даних по
повітрю. Це мінімізує потребу в провідних з'єднаннях. WLAN надають
користувачам мобільність, оскільки вони дозволяють підключитися до локальної
мережі без фізичного підключення кабелем. Ця свобода означає, що користувачі
можуть отримати доступ до спільних ресурсів, не шукаючи місця для
підключення кабелів, за умови, що їх термінали є мобільними та в межах
визначеної зони покриття мережі. З мобільністю WLAN надають гнучкість та
підвищують продуктивність, що приваблює як підприємців, так і домашніх
користувачів. Мережі WLAN можуть також дозволити адміністраторам мережі
підключати пристрої, до яких фізично важко дістатися за допомогою кабелю.
Інститут електричних та електронних інженерів (IEEE) розробив
специфікацію 802.11 для технології бездротової локальної мережі. 802.11
визначає повітряний інтерфейс між бездротовим клієнтом та базовою станцією
або між двома бездротовими клієнтами. Стандарти WLAN 802.11 також мають
протоколи безпеки, розроблені для забезпечення того ж рівня безпеки, що і для
дротової локальної мережі.
Перший із цих протоколів - конфіденційність провідних еквівалентів
(WEP). WEP забезпечує безпеку за допомогою шифрування даних, що
надсилаються по радіохвилях від кінцевої до кінцевої точки.
Другий протокол безпеки WLAN - захищений доступ Wi-Fi (WPA). WPA
була розроблена як оновлення функцій безпеки WEP. Він працює з існуючими
продуктами, які підтримуються WEP, але забезпечує два ключових
удосконалення: покращене шифрування даних за допомогою протоколу
цілісності тимчасових ключів (TKIP), який розбирає ключі за допомогою
алгоритму хешування. Він має засоби для перевірки цілісності, щоб гарантувати,
що ключі не були підроблені. WPA також забезпечує аутентифікацію
користувача за допомогою розширюваного протоколу аутентифікації (EAP).
Таблиця 1.1
Протоколи бездротового зв’язку
Більше, ніж просто технологія, Інтернет став способом життя багатьох
людей, і це викликало своєрідну революцію як для публічного, так і для
приватного обміну інформацією. Інтернетом є найпопулярнішим джерелом
інформації майже нічого, щодня користується технічними та нетехнічними
користувачами.
Інтернет: Найбільша мережа з усіх
З метеоричним зростанням попиту на зв’язок Інтернет став головним
каналом зв'язку для мільйонів користувачів. Це децентралізована система
зв'язаних мереж, які мають масштаби у всьому світі. Це полегшує послуги
передачі даних, такі як віддалений вхід, передача файлів, електронна пошта,
всесвітня павутина та групи новин. Він складається з незалежних вузлів
комп’ютерів, які можуть визначити, які Інтернет-сервіси використовувати, а які
їх локальні послуги зробити доступними для глобальної спільноти.
Спочатку Інтернет обмежувався військовими та академічними установами,
а тепер Інтернет працює за трирівневою ієрархією, що складається з
магістральних мереж, мереж середнього рівня та мереж студії. Це повноцінний
канал для будь-якої форми інформації та комерції. Зараз веб-сайти надають
особисті, освітні, політичні та економічні ресурси практично в будь-якій точці
планети.
З розвитком програмного забезпечення для Інтернет в Інтернеті багато
приватних організацій впровадили інтранети. Інтранет - це приватна мережа, що
використовує інструменти типу Інтернет, але доступні лише в межах цієї
організації. Для великих організацій інтранет забезпечує легкий доступ до
корпоративної інформації для визначених працівників.
Хоча інтранет використовується для поширення конфіденційної
інформації в межах корпорації, екстранет зазвичай використовується компаніями
для безпечного обміну даними зі своїми діловими партнерами. Інструменти типу
Інтернет використовуються постачальниками контенту для оновлення
екстранети. Засоби шифрування та аутентифікації користувача надаються для
захисту інформації та для забезпечення того, щоб призначені люди, які мають
належні права доступу, могли її переглядати.
Види технології LAN
Ethernet - найпопулярніша технологія локальної локальної мережі
фізичного рівня, яка використовується сьогодні. Він визначає кількість
провідників, необхідних для з'єднання, пороги продуктивності, на які можна
очікувати, і забезпечує основу для передачі даних. Стандартна мережа Ethernet
може передавати дані зі швидкістю до 10 Мегабіт в секунду (10 Мбіт / с). Інші
типи локальної мережі включають Token Ring, Fast Ethernet, Gigabit Ethernet, 10
Gigabit Ethernet, Fiber Distributed Interface Data (FDDI), Asynchronous Transfer
Mode (ATM) та LocalTalk.
Ethernet популярний тим, що забезпечує хороший баланс між швидкістю,
вартістю та простотою установки. Ці переваги в поєднанні з широким
прийняттям на ринку комп'ютерів і можливістю підтримувати практично всі
популярні мережеві протоколи роблять Ethernet ідеальною мережевою
технологією для більшості користувачів комп'ютерів сьогодні.
Інститут електричних та електронних інженерів розробив стандарт
Ethernet, відомий як IEEE Standard 802.3. Цей стандарт визначає правила
налаштування мережі Ethernet, а також визначає, як елементи мережі Ethernet
взаємодіють один з одним. Дотримуючись стандарту IEEE, мережеве обладнання
та мережеві протоколи можуть ефективно спілкуватися.
Fast Ethernet
Стандарт мереж Fast Ethernet (IEEE 802.3u) встановлений для мереж
Ethernet, які потребують більшої швидкості передачі. Цей стандарт підвищує
обмеження швидкості Ethernet з 10 Мбіт / с до 100 Мбіт / с, лише мінімально
змінюючи існуючу структуру кабелю. Швидкий Ethernet забезпечує більш
швидку пропускну здатність для відео, мультимедіа, графіки, Інтернет-серфінгу
та більш чітке виявлення та виправлення помилок.
Існує три типи Fast Ethernet: 100BASE-TX для використання з кабелем UTP
рівня 5; 100BASE-FX для використання з волоконно-оптичним кабелем; і
100BASE-T4, який використовує додаткові два дроти для використання з UTP-
кабелем 3 рівня. Стандарт 100BASE-TX став найпопулярнішим завдяки тісній
сумісності зі стандартом Ethernet 10BASE-T.
Менеджерам мережі, які хочуть включити Fast Ethernet в існуючу
конфігурацію, потрібно прийняти багато рішень. Необхідно визначити кількість
користувачів на кожному сайті в мережі, які потребують більшої пропускної
здатності; які сегменти хребта потрібно переналаштувати спеціально для
100BASE-T; плюс те, що обладнання необхідно для того, щоб з'єднати сегменти
100BASE-T з існуючими сегментами 10BASE-T. Gigabit Ethernet - це майбутня
технологія, яка обіцяє шлях міграції понад Fast Ethernet, тому наступне покоління
мереж підтримуватиме ще більшу швидкість передачі даних.
Гігабітний Ethernet
Gigabit Ethernet був розроблений для задоволення потреби в більш
швидких комунікаційних мережах з такими додатками, як мультимедіа та Voice
over IP (VoIP). Також відомий як "гігабіт-Ethernet-над-мідь" або 1000Base-T, GigE
- версія Ethernet, яка працює зі швидкістю в 10 разів швидшою, ніж 100Base-T.
Він визначений у стандарті IEEE 802.3 і в даний час використовується в якості
основи підприємства. Існуючі локальні мережі Ethernet з картами 10 і 100 Мбіт /
с можуть подаватися в каркас Gigabit Ethernet для з'єднання високоефективних
комутаторів, маршрутизаторів та серверів.
З рівня шару передачі даних моделі OSI вгору зовнішній вигляд та
реалізація Gigabit Ethernet ідентичний тому, що і в Ethernet. Найважливіші
відмінності між Gigabit Ethernet та Fast Ethernet включають додаткову підтримку
повної дуплексної роботи на рівні MAC та швидкості передачі даних.
10 гігабітних Ethernet
10 Gigabit Ethernet - це найшвидший і останній із стандартів Ethernet. IEEE
802.3ae визначає версію Ethernet з номінальною швидкістю 10 Гбіт / с, що робить
її в 10 разів швидшою, ніж Gigabit Ethernet.
На відміну від інших систем Ethernet, 10-гігабітний Ethernet повністю
заснований на використанні оптичних волоконних з'єднань. Цей стандарт, що
розвивається, відходить від дизайну локальної мережі, який транслює всі вузли,
до системи, яка включає деякі елементи маршрутизації широкої області. Оскільки
це все ще є новим, який із стандартів отримає комерційне визнання ще не
визначено.
Таблиця 1.2
Специфікації технологій LAN
Асинхронний режим передачі (банкомат)
ATM - це швидка комунікаційна технологія зв'язку, яка може підтримувати
швидкість передачі даних від швидкості Sub-T1 до 10 Gbps. АТМ частково
досягає високих швидкостей, передаючи дані у клітинках фіксованого розміру та
розповсюджуючи протоколи виправлення помилок. Він покладається на
властиву цілісність цифрових ліній для забезпечення цілісності даних.
Банкомати можна інтегрувати в існуючу мережу за необхідності без
необхідності оновлювати всю мережу. Її операція з ретрансляцією стільникової
довжини є технологією майбутнього і пропонує більш передбачувані показники,
ніж кадри змінної довжини. Мережі надзвичайно універсальні, і мережа
банкоматів може з'єднувати точки в будівлі або по всій країні, і все ще
розглядаються як єдина мережа.
Потужність над Ethernet (PoE)
PoE - це рішення, в якому електричний струм подається на мережеве
обладнання через кабель Ethernet категорії 5 або вище. Для цього рішення не
потрібен додатковий шнур живлення змінного струму на рівні виробу.
Token Ring
Token Ring - ще одна форма конфігурації мережі. Він відрізняється від
Ethernet тим, що всі повідомлення передаються в одному напрямку вздовж кільця
в усі часи. Мережі Token Ring послідовно передають "маркер" кожному
підключеному пристрою. Коли маркер надходить на певний комп'ютер (або
пристрій), одержувачеві дозволяється передавати дані в мережу. Оскільки лише
один пристрій може передавати інформацію в будь-який момент часу, зіткнення
даних не відбувається. Доступ до мережі гарантовано, а також можуть
підтримуватися програми, залежні від часу. Однак ці переваги йдуть ціною.
Витрати на компоненти зазвичай вищі, а самі мережі вважаються складнішими і
складними у здійсненні. Різні постачальники ПК були прихильниками мереж
Token Ring.
Основи роботи в мережі Ethernet
Після встановлення фізичного з'єднання мережеві протоколи визначають
стандарти, які дозволяють комп'ютерам спілкуватися. Протокол встановлює
правила та специфікації кодування для надсилання даних. Це визначає, як
комп'ютери ідентифікують один одного в мережі, форму, яку дані повинні
приймати під час транзиту, і як ця інформація обробляється після досягнення
кінцевого пункту призначення. Протоколи також визначають процедури
визначення типу перевірки помилок, які будуть використовуватися, метод
стиснння даних, якщо такий потрібен, як пристрій, що надсилає, вкаже, що він
закінчив надсилати повідомлення, як приймаючий пристрій вкаже, що він
отримав повідомлення та обробку втрачених чи пошкоджених передач або
"пакетів".
Основними типами мережевих протоколів, що застосовуються сьогодні, є:
TCP / IP (для UNIX, Windows NT, Windows 95 та інших платформ); IPX (для
Novell NetWare); DECnet (для мереж комп'ютерів Digital Equipment Corp.);
AppleTalk (для комп'ютерів Macintosh) та NetBIOS / NetBEUI (для мережевих
менеджерів і мереж Windows NT).
Хоча кожен мережевий протокол відрізняється, всі вони мають однакові
фізичні кабелі. Цей поширений метод доступу до фізичної мережі дозволяє безліч
протоколів мирно співіснувати через мережевий носій, а також дозволяє
побудовнику мережі використовувати загальне обладнання для різноманітних
протоколів. Ця концепція відома як "незалежність протоколу", що означає, що
пристрої, сумісні на фізичному та рівні шарів передачі даних, дозволяють
користувачеві запускати багато різних протоколів на одному носії.
Модель взаємозв’язку відкритої системи
Модель Open System Interconnection (OSI) визначає, наскільки різні
пристрої обчислювальної техніки, такі як мережеві інтерфейсні карти (NIC),
мости та маршрутизатори, обмінюються даними по мережі, пропонуючи
мережеву структуру для реалізації протоколів у семи шарів. Починаючи з
додаткового шару, управління передається від одного шару до іншого. Далі
описано сім шарів, визначених моделлю OSI, що відображаються в порядку їх
виникнення, коли користувач передає інформацію.
7 рівень: Застосування
Цей шар підтримує процеси програми та кінцевих користувачів. У межах
цього шару враховується конфіденційність користувачів, а партнери зв'язку,
сервіс та обмеження визначаються. Передача файлів, електронна пошта,
програми Telnet і FTP надаються в цьому шарі.
6 рівень: Презентація (синтаксис)
У межах цього шару інформація перекладається вперед і назад між
додатками та мережевими форматами. Цей переклад перетворює інформацію в
дані, які рівень програми та розпізнає мережа незалежно від шифрування та
форматування.
5 рівень: сесія
У межах цього рівня з'єднання між додатками здійснюються, керуються та
припиняються за потребою, щоб забезпечити обмін даними між додатками на
кожному кінці діалогу.
4 рівень: транспорт
Повна передача даних забезпечується, оскільки інформація переноситься
прозоро між системами на цьому рівні. Транспортний шар також забезпечує
відповідний контроль потоку та відновлення помилок в кінці.
3 рівень: мережа
Використовуючи технології комутації та маршрутизації, цей шар
відповідає за створення віртуальних схем для передачі інформації від вузла до
вузла. Інші функції включають маршрутизацію, переадресацію, адресацію,
роботу в Інтернеті, контроль помилок і перевантажень, а також послідовність
пакетів.
2 рівень: посилання даних
Інформація в пакетах даних кодується і декодується в біти в межах цього
шару. Помилки керування потоком фізичного рівня та синхронізації кадру
виправляються тут, використовуючи знання та управління протоколом передачі.
Цей шар складається з двох підшарів: шару управління доступом до інформації
(MAC), який керує способом мережевих комп'ютерів отримують доступ до даних
та передають їх, і рівня управління логічним зв’язком (LLC), який керує
синхронізацією кадру, керуванням потоком та помилками перевірка.
1 рівень: Фізичний
Цей рівень дозволяє апаратному пристрою надсилати та приймати дані
через оператор, наприклад кабель, карту чи інші фізичні засоби. Він передає
бітовий потік через мережу на електричному та механічному рівні. Fast Ethernet,
RS232 та ATM - це всі протоколи з компонентами фізичного рівня.
Мережа топології - це геометричне розташування вузлів та кабельних ліній
в локальній мережі. Використовуються дві загальні конфігурації: шина та зірка.
Ці дві топології визначають, як вузли підключаються один до одного в мережі
зв'язку. Вузол - це активний пристрій, підключений до мережі, наприклад,
комп'ютер або принтер. Вузол також може бути частиною мережевого
обладнання, таким як концентратор, комутатор або маршрутизатор.
Топологія шини складається з вузлів, з’єднаних разом у ряд з кожним
вузлом, з'єднаним з довгим кабелем або шиною. Багато вузлів можуть вступити
в шину і розпочати зв'язок з усіма іншими вузлами в цьому сегменті кабелю.
Перерва в будь-якому місці кабелю зазвичай призведе до того, що весь сегмент
буде непрацездатним до моменту, коли розрив буде відремонтований. Приклади
топології шин включають 10BASE2 та 10BASE5.
Загальні конфігурації топології
10BASE-T Ethernet та Fast Ethernet використовують топологію зірок, де
доступ контролюється центральним комп'ютером. Зазвичай комп'ютер
розташований на одному кінці сегмента, а інший кінець закінчується в
центральному місці за допомогою концентратора або комутатора. Оскільки UTP
часто працює разом із телефонним кабелем, це центральне місце може бути
телефонним шафою або іншою областю, де зручно підключати сегмент UTP до
магістралі. Основна перевага цього типу мережі - надійність, оскільки якщо один
з цих сегментів "точка-точка" має перерву; це вплине лише на два вузли на цьому
посиланні. Інші користувачі комп'ютерів у мережі продовжують працювати так,
ніби цей сегмент не існує.
Зіткнення
Ethernet - це спільний носій, тому існують правила для надсилання пакетів
даних, щоб уникнути конфліктів та захистити цілісність даних. Вузли
визначають, коли мережа доступна для надсилання пакетів. Цілком можливо, що
два чи більше вузлів у різних місцях спробують надсилати дані одночасно. Коли
це відбувається, відбувається зіткнення пакетів.
Мінімізація зіткнень є найважливішим елементом проектування та
експлуатації мереж. Посилення зіткнень часто є результатом занадто великої
кількості користувачів у мережі. Це призводить до конкуренції за пропускну
здатність мережі та може уповільнити роботу мережі з точки зору користувача.
Сегментування мережі - це один із способів зменшити переповнену мережу,
тобто, розділивши її на різні частини, логічно з'єднані разом з мостом або
комутатором.
CSMA / CD
Для управління зіткненнями Ethernet використовує протокол під назвою
Carrier Sense Multiple Access / Collision Detection (CSMA / CD). CSMA / CD - це
тип протоколу суперечок, який визначає, як реагувати при виявленні зіткнення
або коли два пристрої намагаються одночасно передавати пакети. Ethernet
дозволяє кожному пристрою надсилати повідомлення в будь-який час без
необхідності чекати мережевого дозволу; таким чином, існує велика ймовірність
того, що пристрої можуть спробувати надсилати повідомлення одночасно.
Після виявлення зіткнення кожен пристрій, який передавав пакет, затримує
випадкову кількість часу перед повторною передачею пакету. Якщо трапиться
інше зіткнення, пристрій чекає вдвічі довше, перш ніж спробувати повторно
передати.
Продукти Ethernet
Щойно обговорені стандарти та технології допоможуть визначити
конкретні продукти, які мережеві менеджери використовують для побудови
мереж Ethernet. Далі представлені основні продукти, необхідні для створення
Ethernet LAN.
Трансивери
Трансивери також називаються блоками середнього доступу (MAU). Вони
використовуються для підключення вузлів до різних носіїв Ethernet. Більшість
комп'ютерів та мережевих інтерфейсних карт містять вбудований приймач
10BASE-T або 10BASE2, який дозволяє їх підключати безпосередньо до Ethernet
без необхідності зовнішнього приймача.
Багато пристроїв Ethernet надають роз'єм інтерфейсу блоку вкладень
(AUI), що дозволяє користувачеві підключатися до будь-якого типу носія через
зовнішній приймач. Роз'єм AUI складається з 15-контактного роз'єму типу D-
оболонки, жінки на стороні комп'ютера, чоловіки на стороні приймача.
Для мереж Fast Ethernet був розроблений новий інтерфейс під назвою MII
(Media Independent Interface), який пропонує гнучку можливість підтримувати
з'єднання зі швидкістю 100 Мбіт / с. MII - популярний спосіб підключення
посилань 100BASE-FX до пристроїв Fast Ethernet на основі міді.
Карти мережевого інтерфейсу
Карти мережевого інтерфейсу, які зазвичай називають NIC,
використовуються для підключення ПК до мережі. NIC забезпечує фізичне
з'єднання між мережевим кабелем та внутрішньою шиною комп'ютера. Різні
комп'ютери мають різну архітектуру шин. Слоти для шин PCI найчастіше
зустрічаються на комп'ютерах 486 / Pentium, а слоти розширення ISA зазвичай
зустрічаються на комп'ютерах 386 та старих версіях. NIC мають три основні
різновиди: 8-бітну, 16-бітну та 32-бітну. Чим більша кількість бітів, які можна
передавати в NIC, тим швидше NIC може передавати дані на мережевий кабель.
Більшість NIC розроблені для певного типу мережі, протоколу та середовища,
хоча деякі можуть обслуговувати декілька мереж.
Багато адаптерів NIC відповідають специфікаціям plug-and-play. У цих
системах NIC автоматично налаштовуються без втручання користувача, тоді як у
системах, що не підключаються та відтворюють, конфігурація проводиться
вручну за допомогою програми налаштування та / або DIP-комутаторів.
Карти доступні для підтримки майже всіх стандартів мереж. Швидкі
електронні мережі Ethernet часто здатні 10/100, і вони автоматично
встановлюються на відповідну швидкість. Gigabit Ethernet NIC - це 10/100/1000,
які можуть здійснювати автоматичне узгодження залежно від швидкості
використання Ethernet користувача. Повна дуплексна мережа - ще один варіант,
коли спеціальне підключення до комутатора дозволяє NIC працювати з
подвійною швидкістю.
Маточини / ретранслятори
Маточини / ретранслятори використовуються для з'єднання двох або
більше сегментів Ethernet будь-якого типу носія. У великих конструкціях якість
сигналу починає погіршуватися, оскільки сегменти перевищують їх максимальну
довжину. Маточини забезпечують посилення сигналу, необхідне для розширення
відрізка на більшу відстань. Хаб повторює будь-який вхідний сигнал у всі порти.
Вузли Ethernet необхідні в зіркових топологіях, таких як 10BASE-T.
Багатопортовий вузол з крученою парою дозволяє об'єднати кілька сегментів
«точка-точка» в одну мережу. Один кінець посилання "точка-точка" приєднаний
до концентратора, а другий - до комп'ютера. Якщо концентратор приєднаний до
магістралі, то всі комп'ютери в кінці сегментів крученої пари можуть
спілкуватися з усіма хостами на магістралі. Кількість та тип маточинів у будь-
якій області зіткнення обмежені правилами Ethernet. Ці правила ретранслятора
будуть обговорені більш детально пізніше.
Дуже важливим фактом, який слід зазначити про концентратори, є те, що
вони дозволяють лише користувачам ділитися Ethernet. Мережа концентраторів /
ретрансляторів називається "спільним Ethernet", що означає, що всі члени мережі
претендують на передачу даних в єдину мережу (зіткнення домену). Хаб /
ретранслятор поширює всі електричні сигнали, включаючи недійсні. Тому, якщо
зіткнення чи електричні перешкоди відбуваються на одному сегменті,
ретранслятори роблять це також і на всіх інших. Це означає, що окремі учасники
спільної мережі отримають лише відсоток доступної пропускної здатності
мережі.
1.4 Протокол UDP
Комунікація систем у локальних домашніх та корпоративних мережах, а
також у публічних мережах, таких як Інтернет, за замовчуванням базується на
сімействі сімейних протоколів. Найвідомішим компонентом цього стека
протоколів, безперечно, є Інтернет-протокол (IP), який не тільки відповідає за
адресу та фрагментацію пакетів даних, але й визначає, як описується інформація
про джерело та місце призначення. Однак передачею даних, як правило, керує
протокол управління передачею (TCP), орієнтований на з'єднання, саме тому
мережі часто називають мережами TCP / IP. Оскільки TCP забезпечує безпеку,
але також затримує передачу, Девід Патрік Рід опублікував свою концепцію
протоколу користувацьких дейтаграм (UDP) у 1980 році як простішу та швидшу
альтернативу стандартному протоколу.
Протокол User Datagram або короткий UDP - це протокол, який дозволяє
передавати дейтаграми без з'єднання в мережах на базі IP. Для досягнення
бажаних послуг на цільових хостах він використовує порти, перелічені як один із
основних компонентів у заголовку UDP. Як і багато інших мережевих протоколів,
UDP належить до сімейства протоколів Інтернет, де він класифікується як
посередник між мережевим рівнем та рівнем програми на транспортному рівні.
Використовуючи протокол User Datagram, програма може надсилати
інформацію дуже швидко, оскільки ні з'єднання з адресатом не повинно
встановлюватися, ні відповіді чекати не потрібно. Однак немає гарантії, що
пакети надійдуть в повному обсязі і в тому ж порядку, в якому вони були
відправлені. Крім того, протокол не забезпечує власного захисту від маніпуляцій
чи доступу сторонніми особами. Однак несправні пакети можуть бути виявлені
за допомогою додаткової контрольної суми (обов’язково в поєднанні з IPv6).
Особливості UDP
Щоб зрозуміти, як детально працює передача пакетів з протоколом,
корисно детальніше ознайомитись із властивостями протоколу User Datagram.
1. UDP не пов'язаний: Транспорт даних через UDP характеризується тим, що
він відбувається без наявного зв'язку між адресатом та одержувачем. Потім
відповідні пакети надсилаються на бажану IP-адресу із зазначенням
цільового порту, без того, щоб комп'ютер, що знаходиться за ними, не мав
відповіді. Однак якщо пакети також потрібно повернути одержувачу,
заголовок UDP необов'язково може також містити вихідний порт.
2. UDP використовує порти: Як і TCP, UDP використовує порти, щоб пакети
передавались правильним наступним протоколам або потрібним
програмам цільової системи. Порти визначаються цифрами згідно з
перевіреною схемою, з номерами від 0 до 1023, призначеними фіксованим
службам.
3. UDP дозволяє швидко спілкуватися без затримки. Транспортний протокол
підходить для швидкої передачі даних через відсутність налаштування
з'єднання. Це також випливає з того, що втрата окремих пакетів впливає
лише на якість передачі. З іншого боку, через TCP-з'єднання втрачені
пакети автоматично повторно запитуються, в результаті чого весь процес
передачі зупиняється.
4. UDP не гарантує безпеку та цілісність даних: Відсутність взаємної
автентифікації між адресатом та одержувачем забезпечує чудову швидкість
передачі UDP - однак протокол не може ні гарантувати повноту, ні безпеку
пакетів даних. Правильна послідовність відправлених пакетів також не
гарантується. З цієї причини служби, які використовують UDP, повинні
надавати власні заходи щодо виправлення чи захисту.
РОЗДІЛ 2. СПЕЦИФІКАЦІЯ ВИМОГ ДО ПЗ
2.1 Функціональні вимоги
Програма розробляється для ОС Windows і повинна бути невимогливою до
системних ресурсів.
Інтерфейс програми має бути мінімалістичним, сучасним та інтуїтивно
зрозумілим.
Програма «Система дослідження кадрів Ethernet» має виконувати такі
функції:
• Відображати клієнт та сервер
• Показувати MAC- та IP-адреси, які призначені для передачі(отримання )
кадру;
• Реалізувати розрахунок контрольної суми;
• Надавти можливість авторизації;
• Формування службових полів для протоколів;
• Після кожної передачі пакета надавати статистичні дані мережі;
• Діагностувати прийняті пакети для подальшої роботи з ними.
2.2 Не функціональні вимоги
Програмне забезпечення повино працювати з базою даних, а також
відповідати ряду наступних вимог:
1. Правильність – ПЗ повинно надавати правильні результати для будь-яких
даних з за здалегіть визначеного діапазону.
2. Ефективність – ПЗ повинно надавати результати за сприйнятий час і не
бути ресурсоємким.
3. Універсальність – ПЗ повино бути розраховане на широкий спектр задач та
за можливості на великий обєм вхідних даних.
4. Функціональність – ПЗ повино забезпечувати усі необхідні потреби
користувача та не реалізовувати не потрібних функцій.
5. Зручність – ПЗ повино бути зручним у використанні та з легкістю
засвоюватись, а програмний інтерфей – інтуїтивно зрозумілим.
6. Переносимість – Повино забезпечуватись перенесення з однієї машини на
іншу без змін, а бо з їх мінімальною присутністю.
7. Читабильність – Використані тексти в програмі повинні бути максимально
простими та читабельними для сприйнятя користувачем.
8. Модифікованість – ПЗ повинно надавати можливість для змін та
доповнень.
9. Формування вимог є лише початковою фазою роботи з вимогами.
Аналіз вимог є мостом між підготовкою, плануванням і проектуванням ПЗ,
який розглядає вимоги замовника як вихідні дані, на виході аналізу – вимоги
розробника, які справедливо називають детальними вимогами. Тут відбувається
перехід зі світу замовника у світ розробника. Змінюється мова запису вимог.
Тепер це не природна мова людини, а мова формалізованих моделей. Вона
незрозуміла замовнику, але зрозуміла і близька розробнику.
2.3 Вимоги до Ethernet
Найпоширеніші різновиди промислового Ethernet мають такі особливості
та характеристики [2–4]. EtherCAT (Ethernet for Control Automation Technology) є
відкритою Ethernet-мережею розробки фірми Beckhoff. Протокол забезпечує
обмін інформацією в режимі реального часу у мережі на основі витої пари чи
волоконно-оптичних засобів та підтримує різноманітні топології. Цей стандарт
підтримується EtherCAT Technology Group, що має 168 компаній-членів.
Специфікація протоколу EtherCAT доступна лише членам організації.
Profinet – стандарт промислового Ethernet, що визначається стандартами
IEC 61158 та IEC 61784, розроблений і опублікований організацією PROFIBUS
International і розвивається компанією Siemens AG і Profibus User Organization.
Він регламентує вимоги до устаткування і побудови мережі для передавання
даних зі швидкістю 100 Мбіт/с в умовах підвищених температурних, механічних
і електромагнітних впливів. Ця специфікація дає змогу працювати з такими
системами промислових комунікацій: Profibus, Interbus, Devicenet. Взаємодію
цих мереж з Profinet забезпечують спеціальні пристрої шлюзування (proxy). Для
конфігурування і діагностики в Profinet використовують протоколи TCP/IP та
UDP. Стандарт Profinet визначає топологію мережі, вимоги до з'єднувачів і
прокладання кабелю. Виробникам устаткування забезпечено єдині вимоги для
інтерфейсів, а кінцевим користувачам – простий монтаж мережі.
Modbus TCP – підтримується Schneider Automation, на основі Modbus-
протоколу, що добре зарекомендував себе і будується поверх протоколу TCP/IP
стандартних мереж Ethernet. Протокол Modbus розробила фірма Modicon
(сьогодні належить компанії Schneider Electric) для використання в її контролерах
з програмованою логікою. Вперше специфікація протоколу опублікована в 1979
р. Це був відкритий стандарт, що описує формат повідомлень і способи їх
передавання в мережі, котра складається з різних електронних пристроїв.
Спочатку контролери Modicon використовували послідовний інтерфейс RS-232,
пізніше почали застосовувати інтерфейс RS-485, оскільки він забезпечував вищу
надійність і давав змогу використовувати довші лінії зв'язку та підключати до
однієї лінії декілька пристроїв. Останньою модифікацією протоколу для
передавання даних по мережах Ethernet поверх TCP/IP став Modbus TCP.
Ethernet Powerlink – це Ethernet-протокол, що працює у режимі реального
часу, який поєднує концепцію CANopen з Ethernet-технологіями. Ethernet
Powerlink Standardization Group (EPSG) є відкритою асоціацією промислових
виробників, науково-дослідних інститутів та кінцевих користувачів у галузі
розроблення технологій режиму реального часу для Ethernet.
EtherNet/IP є промисловим стандартом мереж, що використовує такі
переваги комерційного Ethernet, як серійні апаратні засоби зв'язку та фізичні
носії. IP розшифровується як “Industrial Protocol”. Цей протокол підтримують
ControlNet International (CI), Industrial Ethernet Association (IEA) і Open DeviceNet
Vendor Association (ODVA). Реалізації фізичного рівня Industrial Ethernet мають
такі собливості [4]. Компоненти, що працюють за протоколом Industrial Ethernet,
повинні бути адаптовані для роботи в суворих умовах екстремальних температур,
вологості та вібрацій, які перевищують діапазони для ІТ-обладнання,
призначеного для встановлення в контрольованих умовах. У разі використання
систем автоматизації в неопалюваних приміщеннях чи поза приміщеннями
необхідний ширший температурний діапазон роботи обладнання – від –40 °C до
70 °C.
Тому офісне Ethernet обладнання не відповідає вимогам промислової
автоматизації. І навіть більше, вимоги щодо сертифікації промислового
обладнання найчастіше є унікальними і мають галузеві особливості.
Устаткування для промислового Ethernet обов'язково повинно пройти
випробування на електромагнітну сумісність відповідно до вимог IEC 61000-4,
IEEE C37.90, випробування на вібрацію IEC 60255-21 і захист від попадання
вологи чи сторонніх часток IEC 60529, NEMA 6 (IP67) тощо. Серед галузевих
стандартів та сертифікатів варто відзначити вимогу на відповідність стандарту
IEC 61850-3 (Мережі і системи зв'язку на підстанціях IEC 61850-3), сертифікат
Germanischer Lloyd (GL) або DNV, стандарти на вибухобезпечність UL1604
(ATEX) і багато інших. Залежно від вимог, що ставляться до мережі Industrial
Ethernet, для передавання даних можуть використовуватися різні види каналів
зв'язку.
Канали зв'язку на основі витих пар для швидкого монтажу FC TP (Fast
Connect twisted pair) – ідеальний варіант організації каналів зв'язку для офісних
застосувань, розширюваний на застосування у промислових умовах.
Підключення до мережевих версій сайта може здійснюватися через роз'єм 8p8c
(RJ45). Завдяки спеціальному виконанню кабелю (FC) тривалість монтажу ліній
зв'язку можна істотно зменшити. Але, на відміну від офісного застосування,
використовуються роз’єми з класом захисту IP67. Канали зв'язку на основі
промислових витих пар ITP (Industrial Twisted Pair) дають змогу створювати
електричні канали зв'язку з підключенням через з'єднувачі D-типу (M12).
Довжина лінії зв'язку може досягати 100 м. Оптичні канали зв'язку є оптимальним
рішенням для побудови резервованих кільцевих топологій мережі. Такі канали
зв'язку виконуються оптоволоконним кабелем. Оптичні канали зв'язку не
зазнають впливу електромагнітних полів і не вимагають використання додаткової
ізоляції.
Бездротові канали зв'язку використовуються для побудови локальних
обчислювальних мереж, що працюють у частотному діапазоні 2.4 ГГц.
Компоненти бездротових мереж відповідають вимогам стандарту IEEE 802.11b і
забезпечують можливість передавання даних зі швидкістю 1...11 Мбіт/с. Доступ
через бездротові канали до локальної мережі Industrial Ethernet здійснюється
через модулі RLM (Radio Link Module). Комбіновані системи – за необхідності в
межах однієї мережі Industrial Ethernet можуть використовуватися різні види
каналів зв'язку. Узгодження різних видів каналів зв'язку, що працюють з різними
швидкостями передачі (10/100), забезпечують Industrial Ethernet Switches та
медіа-конвертери.
РОЗДІЛ 3. ОГЛЯД ІСНУЮЧИХ АНАЛОГІВ
Перед створенням системи дослідження, було переглянуто ряд аналогів,
для того, щоби створити універсальне ПЗ, яке змогло би працювати швидче та
ндавати ефективний результат.
Нижче на рисунках наведені декілька аналогів та їх короткі
характеристики.
Рис. 3.1 Проекти Altera Quartus II для плат Марсохід,
Марсоход2 і Марсоход3
Підключення до локальної мережі може знадобиться для різних завдань. У
прикладі хочу розглянути найпростішу операцію - передачу пакета Ethernet UDP
платою Марсохід.
Апробація стандарту Ethernet 10baseT. Швидкість передачі даних в цьому
режимі - 10Мбіт. Можна обмінюватися об'єктами відбуваються за двома різними
парам кабелю UTP CAT5. У нашому випадку знадобиться тільки одна пара,
призначена для передачі. У роз'ємі ця пара підключена до ніжок 1, 2. Для того
щоб повідомити хабу або мережевої карти, до якої ми хочемо підключити наш
пристрій, з якою швидкістю ми будемо передавати дані, існує спеціальний
механізм - "Autonegotiation".
Для швидкості 10Мбіт потрібно з періодичністю 16ms (+/- 8ms) передавати
в лінію однополярний позитивний імпульс тривалістю від 100 до 200ns. В
результаті цього на хабі (мережевої карти) повинна спалахнути спеціальна
лампочка, що позначає, що до нього підключено 10Мбітное пристрій.
Метод кодування даних називається "Manchester". У ньому кожен біт
даних, що кодується послідовністю з двох біт несучої частоти. Для передачі "0"
використовується послідовність "1,0" а для "1" - "0,1". Для реалізації такого
алгоритму досить одного елемента XOR:
Рисунок 3.2 – Реалізація алгоритму манчестерського кодування
Дані передаються молодшими бітами вперед. Сам пакет повинен
починатися зі спеціального 8 - байтного префікса: 55h, 55h, 55h, 55h, 55h, 55h,
55h, D5h. Виходить 63 біта - пілот і останній біт - це стартбіт. Далі йдуть вже
корисні дані, адреса одержувача, відправника і т.д. Більш детальну інформацію
про різні типи пакетів і їх структурі, а також про те, які пакети реально "ходять"
у вашій локальній мережі можна дізнатися за допомогою програми "Ethereal"
(Тепер ця програма називається Wireshark).
Закінчується пакет чотирибайтових контрольною сумою (CRC32).
Крім того існують обмеження на мінімальну і максимальну довжину
пакета, мінімальна - 60 байт (без префікса і CRC32).
Для практичної реалізації ми взяли конкретне завдання - контроль, за
допомогою нашого пристрою, плати Марсохід, великого промислового
холодильника, що знаходиться в окремо-стоїть.
Для підключення до мережі, як вже раніше було сказано, нам знадобиться
всього одна пара. На платі Марсохід ми підключаємо її з пінам DP і DN.
До пінам f0..f5 ми будемо підключати шість датчиків температури
(DS18B20). Про вимір температури цим датчиком у нас вже була стаття.
Крім того, потрібна тактова частота 10МГц (меандр). Для її отримання ми
встановили зовнішній кварцовий генератор на 80Мгц (можна який-небудь інший,
з якого, цілочисельним розподілом, можна отримати 10МГц).
Рис. 3.3. Монтаж зовнішнього кварцового генератора на 80Мгц
Для простоти, щоб самим не винаходити значення різних полів в пакеті, ми
взяли за основу реальний пакет, відправлений програмою vdomsg.exe. Ця
програма відправляє на IP-адресу, вказану в якості параметра, тестовий рядок.
Скориставшись програмою Wireshark, ми перенесли все значення в
константу C64X8.V - це файл на мові Verilog.
Таким чином, наш посилається пакет, до початку UDP-даних, буде завжди
однаковим.
Наступні чотири байти будуть нести корисне навантаження:
0 - Номер опитуваного датчика температури.
1 1 - Стан кнопок key [3..0] (Для контролю дверей холодильника).
2 2,3 - Результат вимірювання температури одного з датчиків.
CommView - утиліти для аналізу мережевого трафіку
Головне вікно програми розділене на кілька вкладок, що відповідають за
ту чи іншу ділянку роботи. Перша з них, «Поточні IP-з'єднання», відображає
детальну інформацію про діючі IP-судинних комп'ютера. Тут можна побачити
локальний і віддалений IP-адреса, кількість переданих і прийнятих пакетів,
напрямок передачі, число встановлених IP-сесій, порти, ім'я хоста (якщо в
настройках програми не відключена функція розпізнавання DNS), і ім'я процесу,
що приймає або передавального пакета даної сесії. Остання інформація
недоступна для транзитних пакетів, а також на комп'ютерах, що працюють під
управлінням Windows 9x / ME.
Якщо за будь-якому з'єднанню натиснути правою кнопкою миші, то
відкриється контекстне меню, в якому можна найти інструменти, що полегшують
аналіз Сполука. Тут можна переглянути ОБСЯГИ Даних, переданих в рамках
з'єднання, повний список використаних портів, детальну інформацію про процес,
який приймає або передавальні пакети даної Сесії. CommView дозволяє
створюваті псевдонімі для MAC- и IP-адреса.
Рис. 3.4. Вкладка «Поточні IP-з'єднання»
Наприклад, задавши вместо громіздкіх цифрових адреса машин локальної
мережі їх псевдонімі, можна отріматі легко читаються и запам'ятовуються імена
комп'ютерів и таким чином полегшіті аналіз Сполука.
Рис. 3.5. Вікно завдання псевдонімів
Щоб створити псевдонім для IP-адреси, потрібно вибрати в контекстному
меню послідовно пункти «Створити псевдонім» і «використовуючи локальний
IP» або «використовуючи віддалений IP». У вікні поле IP-адреси буде вже
заповнено, і залишиться тільки ввести відповідне ім'я. Якщо новий запис IP-імені
створюється клацанням правої кнопки миші по пакету, поле імені автоматично
заповнюється ім'ям хоста (якщо воно є) і його можна редагувати. Точно так само
відбувається робота з MAC-псевдонімами.
З цього ж меню, вибравши пункт SmartWhois, можна відправити обраний
IP-адреса джерела або одержувача в програму SmartWhois - автономне додаток
компанії Tamosoft, яке збирає інформацію про будь-якому IP-адресу або назву,
наприклад, мережеве ім'я, домен, країну, штат або провінцію, місто, і надає її
користувачеві.
Рис. 3.6. Перехоплені пакети на обраному мережевому інтерфейсі
Друга вкладка, «Пакети», відображає всі перехоплені на обраному
мережевому інтерфейсі пакети і докладну інформацію про них.
Вікно розділене на три області. У першій з них відображається список всіх
перехоплених пакетів. Якщо в ньому вибрати один з пакетів, клацнувши по ньому
покажчиком миші, то інші вікна покажуть інформацію про нього. Тут
відображається номер пакета, протокол, Mac- і IP-адреси передавального і
приймаючої хоста, використовувані порти і час появи пакета.
РОЗДІЛ 4. ВИБІР ЗАСОБІВ РЕАЛІЗАЦІЇ
4.1 Мова програмування
Для розробки ПЗ було вибрано мову програмування Wireshark. Wireshark -
це досить відомий інструмент для захоплення і аналізу мережевого трафіку,
фактично стандарт як для освіти, так і для траблшутінга.
Wireshark працює з переважною більшістю відомих протоколів, має
зрозумілий і логічний графічний інтерфейс на основі GTK + і найпотужнішу
систему фільтрів.
Щоразу, коли wireshark запускається, він шукатиме скрипт під назвою
init.lua, який знаходиться в глобальній директорії конфігурації Wireshark. Якщо
Wireshark знайде цей файл, він запустить сценарій. Як тільки <глобальна
директорія конфігурації> /init.lua запустила, що є дві змінні, які повідомляють
wireshark, чи слід шукати сценарії
Якщо перший скрипт init встановить змінну enable_lua на справжню
Wireshark, він перестане читати сценарії та вимкне механізм Lua відразу після
запуску сценарію. Після запуску цього першого сценарію Wireshark виконає
пошук у глобальній директорії каталогів плагінів для файлів, що закінчуються в
. lua, і запустить їх у вигляді скриптів.
Якщо Wireshark запускає suexec (тобто як root, але запущений іншим
користувачем), він перевірить, чи змінна run_user_scripts_when_superuser
встановлена на true, перш ніж завантажувати будь-які подальші сценарії. В
іншому випадку після цього він запустить скрипт init.lua у вашій персональній
директорії конфігурації, якщо він існує, а потім здійснить пошук у вашій
особистому каталозі плагінів для файлів, що закінчуються на .lua, та запустить їх
як сценарії, а потім запустить усі сценарії, передані з параметр командного рядка
-X lua_script: xxx.lua у заданому порядку.
Усі ці сценарії будуть запущені до того, як будуть прочитані пакети,
наприкінці процесу реєстрації диссектора. Отже, що вам потрібно зробити, це
зареєструвати ряд функцій, які будуть викликатися під час обробки пакетів.
Розташування каталогів, що містять ці сценарії, на різних платформах
різні. Дивіться Додаток B, "Файли та папки" до Посібника користувача Wireshark
про розташування цих каталогів. Багатоплатформовий, працює в таких ОС як
Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, і, природно, Windows.
Поширюється під ліцензією GNU GPL v2.
Для того щоб проводити дослідження мережевих додатків і протоколів, а
також, щоб знаходити проблеми в роботі мережі, і, що важливо, з'ясовувати
причини цих проблем.
Цілком очевидно, що для того щоб максимально ефективно
використовувати сніфери або аналізатори трафіку, необхідні хоча б загальні
знання і розуміння роботи мереж і мережевих протоколів. Так само нагадаю, що
в багатьох країнах використання сніффер без явного на те дозволу прирівнюється
до злочину.
Сучасні мережеві карти наскільки розумні, що самі вважають контрольну
суму, навіщо це робити на рівні стека TCP / IP програмно, якщо можна робити
хардварний. А Wireshark натурально перехоплює пакети, до того як вони
потрапляють в мережу. І до того як ця сума була прорахована і була додана в
заголовок пакета.
Відповідно є два шляхи вирішення цієї проблеми - вимикати функцію
offload в налаштуваннях мережевої карти або в налаштуваннях сніффер вказати,
щоб він не звертав увагу на це значення. Хардванні функції часто краще
софтварних, в основному через швидкість обробки (в залозі зазвичай вище) тому
краще змінити налаштування самого сніффера.
Wireshark містить два види фільтрів - захоплення (Capture Filters) і
відображення (Display Filters). Спочатку розглянемо Capture Filters.
Як можна здогадатися з назви, вони служать для фільтрації ще на етапі
захоплення трафіку. Але в такому разі, безумовно, можна безповоротно втратити
частину потрібного трафіку. Фільтр являє собою вираз, що складається з
вбудованих значень, які при необхідності можуть об'єднуватися логічними
функціями (and, or, not). Для того, щоб його задіяти, потрібно зайти в меню
Сapture, потім Options, і в поле Capture Filter набрати, наприклад, host 8.8.8.8 (або,
наприклад, net 192.168.0.0./24).
Середовище розробки
Для створення даного програмного продукту було використано
середовище MSVC.
Microsoft Visual C++ (MSVC) — інтегроване середовище
розробки програмного забезпечення на мові C++, розроблена фірмою Microsoft.
Постачається або як частина комплекту Microsoft Visual Studio, або окремо у
вигляді безкоштовного функціонально обмеженого комплекту Visual C++
Express Edition.
Visual C++.NET підтримує розроблення застосунків як на Managed C++,
так і на звичайному С++, і тим самим дозволяє генерувати код як для
платформи .NET Framework, так і для виконання в середовищі «чистої» Windows.
У цьому відношенні Visual C++.NET є унікальним серед інших мовних засобів,
що надаються середовищем Visual Studio, оскільки ані Visual Basic .NET, ані
Visual J# не здатні генерувати код для чистого Win32, на відміну від попередніх
версій (Visual Basic і Visual J++, відповідно).
В першу чергу Visual C++ — це компілятор C++, але це також і
середовище, компоненти якого, взаємодіючи один з одним, спрощують процес
розроблення застосунків. Середовище Visual C++ пропонує великі можливості
для програмування Windows-застосунків. Найхарактернішою його компонентою
є бібліотека основних класів Microsoft (Microsoft Foundation Classes — MFC).
Великий набір класів С++ інкапсулює основну частину API (Application Standart
Interface) і пропонує могутню основу для написання типових застосунків.
Компілятор Visual C++ містить багато нових інструментальних засобів і
поліпшених можливостей для створення Windows-застосунків.
4.2 Вибір технічних засобів
Для повноцінної роботи системи дослідження потрібно, щоб комп’ютер
відповідав наступним характеристикам (таблиця 1.1).
Таблиця 1.1
Технічні вимоги для роботи програми «Система дослідження кадрів Ethernet »
№ п/п Назва Значення
1. Процесор із тактовою частотою Не менше 1ГГц
2. Оперативна пам'ять не менше 1 Гб.
3. Вільного місця на жорсткому диску 150 Мб.
4. Встановлена Операційна Система(ОС) Windows 7
5. Встановлений JDK пакет, обов’язково JDK 1.7 і вище
4.3 Опис та проектування системи
1) Запуск мови програмування Wireshark.
Рис. 4.1. Запуск Wireshark
2) Потім двічі клацаю по інтерфейсу, в результаті чого буде здійснено захват
пакетів
Рис. 4.2. Аналіз пакету
Для зупинки захоплення пакетів можна натиснути на відповідну кнопку на
панелі інструментів програми Wireshark.
Якщо потрібно буде знову почати захоплення пакетів, потрібно буде
натиснути на відповідну кнопку для запуску.
Рис. 4.3. Запуск захвату пакетів
Зайдіть в меню "Файл> Зберегти" для збереження захоплених даних в
файл.
Рис. 4.4. Вікно збереження
Виберіть місце розташування файлу, введіть ім'я та натисніть кнопку
"Зберегти".
Рис. 4.5. Збереження процесу
Для зручності пошуку / перегляду інформації про потрібних пакетах в
програмі Wireshark можна відфільтрувати захоплені пакети по IP-адресою або
номером порту.
Якщо ви наприклад хочете зробити фільтрацію захоплених пакетів по IP-
адресою призначення 104.16.54.111, в поле фільтрації вкажіть правило ip.dst ==
104.16.54.111.
Рис. 4.6. Вікно фільтру пакетів
Якщо ви хочете зробити фільтрацію захоплених пакетів за певним IP-
адресою (наприклад, по IP 192.168.1.99), в поле фільтрації вкажіть правило
ip.addr == 192.168.1.99
В цьому випадку будуть показані тільки пакети, в яких присутній вказаний
IP-адреса джерела або призначення.
ВИСНОВКИ
Після аналізу існуючих аналогів на ринку ПЗ було виявлено їх переваги та
недоліки і на основі отриманої при аналізі існуючих систем, інформації
розроблено програмне забезпеченн. Система може працювати лише під ОС
Windows.
Комп'ютерні мережі передачі даних є результатом еволюції комп'ютерних
технологій і в даний час утворюють основний засіб комунікації. Створення
комп'ютерних мереж викликано потребою спільного використання інформації на
віддалених один від одного комп'ютерах. Основне призначення комп'ютерних
мереж — спільне використання ресурсів і здійснення зв'язку як усередині однієї
організації, так і за її межами. Роздільними ресурсами можуть бути дані, додатки,
периферійні пристрої.
Розроблене та досліджене програмне забезпечення включає в себе систему
дослідження, яке має змогу пердавати Ethernet пакет від клієнта на сервер, ще є
змога фільтрації по певному IP-адресу. Програма є інтуїтивно зрозумілою та
комфортною у використанні. Додаток дозволяє швидко і зручно працювати з ним.
Розроблений додаток за допомогою мови програмування Wireshark, що
взаємодіє з пакетами Ethernet, та розширює її можливості. Додаток є зручним для
використання, за допомогою нього користувач має змогу працювати з кадрами,
контролювати розрахункові операції та здійснювати фільтрацію пакетів.
Робота складається з чотирьох основних розділів, додатків та списку
використаних інформаційних джерел.
В першому розділі розглядається аналіз предметної області.
В другому розділі розглядаються специфікації вимог до програмного
продукту.
В третьому розділі розглянуті існуючи аналогі та запропоновано краще
рішення.
В четвертому розділі наведено вибір програмної реалізації і результати,
які одержані із попередніх розділів.
Також реалізовано зручний та легкий до сприйняття інтерфейс
користувача. Використано при написанні програми новітні технології та
розробки написання програмного коду.
Робота була можливістю навчитися вибирати сутності і їх атрибути,
будувати системи дослідження даних на основі і технічного завдання; вміти
синтезувати і аналізувати схеми даних різної складності, в тому числі з
застосуванням програмних систем для проектування і моделювання.
Після роботи над даною системою було узагальнено, закріплено і
поглиблено знання, отримані за весь час навчання в коледжі, і використано їх для
обґрунтованого прийняття проектних рішень. Також було придбано досвід в
оформленні проектних і графічних матеріалів, складанні пояснювальних записок,
специфікацій, й іншої конструкторської документації.
Також в ході виконання кваліфікаційної роботи було здобуто досвід в
оформленні кваліфікаційної роботи та документації, складанні пояснювальних
записок, специфікацій, відомостей про програмне забезпечення.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. IEEE Std 802.1AX-2008. Link Aggregation. IEEE, 2008. URL:
https://standards.ieee.org
2. Kirrmann H. Fault tolerant computing in industrial automation. EPFL, 2005.
URL: http://lamspeople.epfl.ch/kirrmann/Pubs/FT_Tutorial_HK_050418.pdf
3. IEEE Std 802.1D-2004. Media Access Control Bridges. IEEE, 2004.
4. IEEE Std 802.1Q-2005/Cor1-2008. Virtual Bridged LANs. IEEE, 2008.
5. Лопухов І. Резервування промислових мереж Ethernet на другому рівні
OSI: стандарти і технології // Сучасні технології автоматизації. 2009. № 3.
С. 16–20.
6. Olifer V., Olifer N. Computer networks: principles, technologies, protocols.
New York: Wiley, 2010.
7. Ivey F. Network and internetwork communication with microcontrollers. Wiley,
2007.
8. Comer D. Internetworking with TCP/IP. Upper Saddle River: Prentice Hall,
2003.
9. Hill B. Cisco: the complete reference. New York: McGraw-Hill, 2008.
10. Stallings W. Data and computer communications. Boston: Pearson, 2005.
11. Цвиркун Л. І. та ін. Моделювання системи автоматизованого
відеоконтролю технологічних процесів // Автоматизація: проблеми, ідеї,
рішення. Севастополь, 2005. С. 70–72.
12. Anderson K., Minasi M. Local area networks. Indianapolis: QUE, 1999.
13. Berry N. Computer networks. London: Springer, 1996.
14. Бутаєв М. М., Коннов Н. Н. Моделювання мереж ЕОМ. Пенза, 2007.
15. Quill L., Russell R. Fast Ethernet. Kyiv: BHV, 1998.
16. Кулаков Ю. А., Омелянський С. В. Комп’ютерні мережі. Київ: Юніор,
1999.
17. Mark A. High-performance networks. Kyiv: DiaSoft, 1998.
18. Новиков Ю. В., Кондратенко С. В. Локальні мережі: архітектура,
алгоритми, проєктування. Київ, 2000.
19. Olifer V., Olifer N. Computer networks. Wiley, 2001.
20. Пахомова В. Н., Прудко А. А. Аналіз локальних мереж на основі моделі
TOKEN RING // Транспорт. 2002. № 12. С. 131–136.
21. Пахомов С. Можливості сучасних комутаторів щодо організації VLAN //
Комп’ютерПрес. 2005. № 4. URL:
http://www.compress.ru/article.aspx?id=10522
22. Семенов А. Б. Проєктування структурованих кабельних систем. Москва:
ДМК, 2003.
23. Tanenbaum A., Wetherall D. Computer networks. 4th ed. Boston: Pearson,
2007.
24. Metcalfe R., Boggs D. Ethernet: distributed packet switching // Communications
of the ACM. 1976. Vol. 19. P. 395–404.
25. Nagle J. On packet switches with infinite storage // IEEE Transactions. 1987.
Vol. 35. P. 435–438.
26. Sari H. Extending the capacity of multiple access channels // IEEE
Communications Magazine. 2000. Vol. 38. P. 74–82.
27. Семенов Ю. А. Протоколи та ресурси Internet. Київ, 1996.
28. Stevens W. UNIX network programming. New Jersey: Prentice Hall, 2004.
29. Satchell S., Clifford H. Linux IP stacks commentary. 2001.
30. Hatch B., Kolesnikov O. Building VPNs with Linux. New York: Apress, 2004.
31. Goldstein A. Softswitch. Санкт-Петербург, 2006.
32. Postel J. User datagram protocol. RFC 768. 1980.
33. Postel J. Transmission control protocol. RFC 793. 1981.
34. Stewart R. Stream control transmission protocol. RFC 4960. 2007.
35. Amer P. Load sharing for SCTP. 2013.
36. Stevens W., Fenner B., Rudoff A. UNIX network programming. 3rd ed. Boston,
2007.
37. Stewart R., Metz C. SCTP. 2002.
38. Mohit K., Rashmi M. MANET overview // IJCSE. 2012. Vol. 3. P. 121–125.
39. Radhika R. Handbook of mobile ad hoc networks. Springer, 2011.
40. Basagni S. Mobile ad hoc networking. Wiley, 2004.
41. Toor Y. Vehicle ad hoc networks // IEEE. 2008.
42. Дмитрієв В. Н. Системи зв’язку з динамічною топологією. СПб., 2007.
43. Разгуляєв Л. Мобільні адаптивні мережі // Зарубіжне військове обозріння.
2008.
44. Gerla M. TCP performance in wireless networks // IEEE. 1999.
45. Devaraj S. TCP in MANETs // ICCNT. 2014.
46. Романов С. В. Симулятори MANET-мереж // Інфокомунікаційні
технології. 2012.
47. Schwartz M. Communication networks. New York: McGraw-Hill, 1992.
48. Кориков А. М. Експеримент у науковому дослідженні // ТУСУР. 2015.
49. Di Caro G. AntHocNet routing algorithm. 2004.
50. IEEE Std 802.3-2012. Ethernet. IEEE, 2012.
51. UNH IOL. 10BASE-T Test Plans. URL: https://www.iol.unh.edu
52. UNH IOL. Fast Ethernet Test Plans. URL: https://www.iol.unh.edu
53. UNH IOL. Gigabit Ethernet Test Plans. URL: https://www.iol.unh.edu
54. Microchip. KSZ9021 Datasheet. URL: http://microchip.com
55. Intel. 82579 GbE PHY Datasheet. URL: https://intel.com
56. Adafruit. FT232H Breakout. URL: https://adafruit.com
57. FTDI. FT232H IC Documentation. URL: http://ftdichip.com
58. FTDI. Application Note AN_108. URL: http://ftdichip.com
59. Причини зниження продуктивності комп’ютерних мереж. URL:
http://opensource.com.ua
60. Tanenbaum A. Computer networks. 3rd ed. Boston: Pearson, 2002.
61. Stevens W. TCP/IP illustrated. Boston: Addison-Wesley, 2003.
62. Мамутов С. С. та ін. Аналіз продуктивності SOAP і TCP // Радіоелектронні
системи. 2007.
63. Stevens W. TCP congestion control. RFC 2001. 1997.
64. Vastola K. TCP throughput models. 2003.
65. Elaarag H. TCP performance over mobile networks. ACM, 2002.
66. Kunz T. TCP in mobile environments. 2004.
67. Padhye J. TCP throughput modeling // SIGCOMM. 1998.
68. Главацький С. П. Аналіз навантаження маршрутизатора // Цифрові
технології. 2016.
69. Главацький С. П. Дослідження впровадження IPv6 // ХНТУ. 2016.
70. Гуліус В. А. Модель продуктивності Fast Ethernet. Київ, 2008.
71. Виноградов Н. А. Пропускна здатність при змінному навантаженні // 2009.
72. Довженко Т. П. Дослідження TCP-черг // Зв’язок. 2015.
73. Olifer V. LAN analysis tools. 1998.
74. Лук’янов С. А. Вплив розміру кадру Ethernet. 2008.
75. Горягіна М. Г. Дослідження продуктивності мереж. 2008.
76. RFC 2544. Benchmarking methodology.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ДОДАТОК А – СИСТЕМА ДОСЛІДЖЕННЯ КАДРІВ ETHERNET
СИСТЕМА ДОСЛІДЖЕННЯ КАДРІВ ETHERNET
Текст програми
UA.ЧДТУ.21877- 01 12 01- 1
Листів 17
Розробник:
студент 2 курсу
групи МСКС-2007 М.М. Карман
2021
UA.ЧДТУ.211877- 01 12 01- 1
A DDRESS_ACLR_B=NONE
ADDRESS_REG_B=CLOCK1
CLOCK_ENABLE_INPUT_A=BYPASS
CLOCK_ENABLE_INPUT_B=BYPASS
CLOCK_ENABLE_OUTPUT_B=BYPASS
INIT_FILE=./ram_ip_paket_tx.mif
INTENDED_DEVICE_FAMILY="Cyclone IV E"
LPM_TYPE=altsyncram
NUMWORDS_A=2048
NUMWORDS_B=2048
OPERATION_MODE=DUAL_PORT
OUTDATA_ACLR_B=NONE
OUTDATA_REG_B=CLOCK1
POWER_UP_UNINITIALIZED=FALSE
RDCONTROL_REG_B=CLOCK1
WIDTHAD_A=11
WIDTHAD_B=11
WIDTH_A=8
WIDTH_B=8
WIDTH_BYTEENA_A=1
DEVICE_FAMILY="Cyclone IV E"
address_a
address_b
clock0
clock1
data_a
rden_b
wren_a
q_b
# Copyright
(C) 1991-
2013 Altera
C orporation
# Your use of Altera
Corporation's design
tools, logic functions
# and other software
and tools, and its
AMPP partner logic
# functions, and any
output files from any of
the foregoing
# (including device
UA.ЧДТУ.211877- 01 12 01- 1
programming or
simulation files), and
any
# associated
documentation or
information are
expressly subject
# to the terms and
conditions of the Altera
Program License
# Subscription
Agreement, Altera
MegaCore Function
License
# Agreement, or other
applicable license
agreement, including,
# without limitation,
that your use is for the
sole purpose of
# programming logic
devices manufactured
by Altera and sold by
# Altera or its
authorized distributors.
Please refer to the
# applicable agreement
for further details.
#
# --------------------------
----------------------------
-------------------- #
#
# Quartus II 64-Bit
# Version 13.0.0 Build
156 04/24/2013 SJ Full
Version
# Date created =
17:26:19 October 26,
2017
#
# --------------------------
----------------------------
-------------------- #
QUARTUS_VERSION
= "13.0"
UA.ЧДТУ.211877- 01 12 01- 1
DATE = "17:26:19 4
October 26, 2017"
# Revisions
PROJECT_REVISION
= "eth_tx"
# Copyright
(C) 1991-
2013 Altera
Corporation
# Your use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement, including,
# without limitation, that your use is for the sole purpose of
# programming logic devices manufactured by Altera and sold by
# Altera or its authorized distributors. Please refer to the
# applicable agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 64-Bit
# Version 13.0.0 Build 156 04/24/2013 SJ Full Version
# Date created = 17:26:19 October 26, 2017
#
# -------------------------------------------------------------------------- #
#
# Notes:
#
# 1) The default values for assignments are stored in the file:
# eth_tx_assignment_defaults.qdf
# If this file doesn't exist, see file:
# assignment_defaults.qdf
#
# 2) Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus II software
# and any changes you make may be lost or overwritten.
#
# -------------------------------------------------------------------------- #
UA.ЧДТУ.211877- 01 12 01- 1
set_global_assignment -name FAMILY "Cyclone IV E" 5
set_global_assignment -name DEVICE EP4CE22F17C6
set_global_assignment -name TOP_LEVEL_ENTITY top
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "17:26:19
OCTOBER 26, 2017"
set_global_assignment -name LAST_QUARTUS_VERSION 13.0
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V
set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera
(Verilog)"
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG
HDL" -section_id eda_simulation
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -
section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL
PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id
eda_simulation
set_global_assignment -name EDA_TEST_BENCH_ENABLE_STATUS
TEST_BENCH_MODE -section_id eda_simulation
set_global_assignment -name
EDA_NATIVELINK_SIMULATION_TEST_BENCH top_vlg_tst -section_id
eda_simulation
set_global_assignment -name EDA_TEST_BENCH_NAME top_vlg_tst -
section_id eda_simulation
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -
section_id top_vlg_tst
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME
top_vlg_tst -section_id top_vlg_tst
set_global_assignment -name EDA_TEST_BENCH_FILE
simulation/modelsim/top.vt -section_id top_vlg_tst
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23
MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE
(CONSERVATIVE)"
set_global_assignment -name VERILOG_FILE crc32.v
set_global_assignment -name VERILOG_FILE top.v
set_global_assignment -name VERILOG_FILE eth_tx.v
set_global_assignment -name QIP_FILE ram_ip_paket_tx.qip
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "2.5 V"
UA.ЧДТУ.211877- 01 12 01- 1
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to i_clk
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
o_eth_data[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
o_eth_tx_en
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
o_eth_data[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[1]
6
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[7]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[8]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[9]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[10]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[11]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[12]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[13]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[14]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[15]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[16]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[17]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[18]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[19]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[20]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
UA.ЧДТУ.211877- 01 12 01- 1
d_crc32[21]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[23]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[22]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[24]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[25]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[26]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[27]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[28]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[29]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[30]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[31]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to
d_crc32[2]
set_location_assignment PIN_B8 -to i_clk
set_location_assignment PIN_D3 -to o_eth_data[1]
set_location_assignment PIN_C3 -to o_eth_data[0]
set_location_assignment PIN_A3 -to o_eth_tx_en
set_location_assignment PIN_L3 -to o_led_tx
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to o_led_tx
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -
section_id Top
module
c rc(
input [7:0] data_in,
input crc_en,
output [31:0] crc_out,
input rst,
input clk);
reg [31:0] lfsr_q,
7
assign crc_out = lfsr_q;
always @(*) begin
lfsr_c[0] = lfsr_q[24] ^ lfsr_q[30] ^ data_in[0] ^
data_in[6];
UA.ЧДТУ.211877- 01 12 01- 1
lfsr_c[1] = lfsr_q[24] ^ lfsr_q[25] ^ lfsr_q[30] ^
lfsr_q[31] ^ data_in[0] ^ data_in[1] ^ data_in[6] ^ data_in[7];
lfsr_c[2] = lfsr_q[24] ^ lfsr_q[25] ^ lfsr_q[26] ^
lfsr_q[30] ^ lfsr_q[31] ^ data_in[0] ^ data_in[1] ^ data_in[2] ^
data_in[6] ^ data_in[7];
lfsr_c[3] = lfsr_q[25] ^ lfsr_q[26] ^ lfsr_q[27] ^
lfsr_q[31] ^ data_in[1] ^ data_in[2] ^ data_in[3] ^ data_in[7];
lfsr_c[4] = lfsr_q[24] ^ lfsr_q[26] ^ lfsr_q[27] ^
lfsr_q[28] ^ lfsr_q[30] ^ data_in[0] ^ data_in[2] ^ data_in[3] ^
data_in[4] ^ data_in[6];
lfsr_c[5] = lfsr_q[24] ^ lfsr_q[25] ^ lfsr_q[27] ^
lfsr_q[28] ^ lfsr_q[29] ^ lfsr_q[30] ^ lfsr_q[31] ^ data_in[0] ^
data_in[1] ^ data_in[3] ^ data_in[4] ^ data_in[5] ^ data_in[6] ^
data_in[7];
lfsr_c[6] = lfsr_q[25] ^ lfsr_q[26] ^ lfsr_q[28] ^
lfsr_q[29] ^ lfsr_q[30] ^ lfsr_q[31] ^ data_in[1] ^ data_in[2] ^
data_in[4] ^ data_in[5] ^ data_in[6] ^ data_in[7];
lfsr_c[7] = lfsr_q[24] ^ lfsr_q[26] ^ lfsr_q[27] ^
lfsr_q[29] ^ lfsr_q[31] ^ data_in[0] ^ data_in[2] ^ data_in[3] ^
data_in[5] ^ data_in[7];
lfsr_c[8] = lfsr_q[0] ^ lfsr_q[24] ^ lfsr_q[25] ^
lfsr_q[27] ^ lfsr_q[28] ^ data_in[0] ^ data_in[1] ^ data_in[3] ^
data_in[4];
lfsr_c[9] = lfsr_q[1] ^ lfsr_q[25] ^ lfsr_q[26] ^
lfsr_q[28] ^ lfsr_q[29] ^ data_in[1] ^ data_in[2] ^ data_in[4] ^
data_in[5];
lfsr_c[10] = lfsr_q[2] ^ lfsr_q[24] ^ lfsr_q[26] ^
lfsr_q[27] ^ lfsr_q[29] ^ data_in[0] ^ data_in[2] ^ data_in[3] ^
data_in[5];
lfsr_c[11] = lfsr_q[3] ^ lfsr_q[24] ^ lfsr_q[25] ^
lfsr_q[27] ^ lfsr_q[28] ^ data_in[0] ^ data_in[1] ^ data_in[3] ^
data_in[4];
lfsr_c[12] = lfsr_q[4] ^ lfsr_q[24] ^ lfsr_q[25] ^
lfsr_q[26] ^ lfsr_q[28] ^ lfsr_q[29] ^ lfsr_q[30] ^ data_in[0] ^
data_in[1] ^ data_in[2] ^ data_in[4] ^ data_in[5] ^ data_in[6];
lfsr_c[13] = lfsr_q[5] ^ lfsr_q[25] ^ lfsr_q[26] ^
lfsr_q[27] ^ lfsr_q[29] ^ lfsr_q[30] ^ lfsr_q[31] ^ data_in[1] ^
data_in[2] ^ data_in[3] ^ data_in[5] ^ data_in[6] ^ data_in[7];
lfsr_c[14] = lfsr_q[6] ^ lfsr_q[26] ^ lfsr_q[27] ^
lfsr_q[28] ^ lfsr_q[30] ^ lfsr_q[31] ^ data_in[2] ^ data_in[3] ^
data_in[4] ^ data_in[6] ^ data_in[7];
lfsr_c[15] = lfsr_q[7] ^ lfsr_q[27] ^ lfsr_q[28] ^
lfsr_q[29] ^ lfsr_q[31] ^ data_in[3] ^ data_in[4] ^ data_in[5] ^
data_in[7];
lfsr_c[16] = lfsr_q[8] ^ lfsr_q[24] ^ lfsr_q[28] ^
lfsr_q[29] ^ data_in[0] ^ data_in[4] ^ data_in[5];
lfsr_c[17] = lfsr_q[9] ^ lfsr_q[25] ^ lfsr_q[29] ^
UA.ЧДТУ.211877- 01 12 01- 1
lfsr_q[30] ^ data_in[1] ^ data_in[5] ^ data_in[6];
lfsr_c[18] = lfsr_q[10] ^ lfsr_q[26] ^ lfsr_q[30] ^
lfsr_q[31] ^ data_in[2] ^ data_in[6] ^ data_in[7];
lfsr_c[19] = lfsr_q[11] ^ lfsr_q[27] ^ lfsr_q[31] ^
data_in[3] ^ data_in[7];
lfsr_c[20] = lfsr_q[12] ^ lfsr_q[28] ^ data_in[4];
lfsr_c[21] = lfsr_q[13] ^ lfsr_q[29] ^ data_in[5];
8
lfsr_c[22] = lfsr_q[14] ^ lfsr_q[24] ^ data_in[0];
lfsr_c[23] = lfsr_q[15] ^ lfsr_q[24] ^ lfsr_q[25] ^
lfsr_q[30] ^ data_in[0] ^ data_in[1] ^ data_in[6];
lfsr_c[24] = lfsr_q[16] ^ lfsr_q[25] ^ lfsr_q[26] ^
lfsr_q[31] ^ data_in[1] ^ data_in[2] ^ data_in[7];
lfsr_c[25] = lfsr_q[17] ^ lfsr_q[26] ^ lfsr_q[27] ^
data_in[2] ^ data_in[3];
lfsr_c[26] = lfsr_q[18] ^ lfsr_q[24] ^ lfsr_q[27] ^
lfsr_q[28] ^ lfsr_q[30] ^ data_in[0] ^ data_in[3] ^ data_in[4] ^
data_in[6];
lfsr_c[27] = lfsr_q[19] ^ lfsr_q[25] ^ lfsr_q[28] ^
lfsr_q[29] ^ lfsr_q[31] ^ data_in[1] ^ data_in[4] ^ data_in[5] ^
data_in[7];
lfsr_c[28] = lfsr_q[20] ^ lfsr_q[26] ^ lfsr_q[29] ^
lfsr_q[30] ^ data_in[2] ^ data_in[5] ^ data_in[6];
lfsr_c[29] = lfsr_q[21] ^ lfsr_q[27] ^ lfsr_q[30] ^
lfsr_q[31] ^ data_in[3] ^ data_in[6] ^ data_in[7];
lfsr_c[30] = lfsr_q[22] ^ lfsr_q[28] ^ lfsr_q[31] ^
data_in[4] ^ data_in[7];
lfsr_c[31] = lfsr_q[23] ^ lfsr_q[29] ^ data_in[5];
end // always
always @(posedge clk, posedge rst) begin
if(rst) begin
lfsr_q <= {32{1'b1}};
End
else begin
lfsr_q <= crc_en ? lfsr_c : lfsr_q;
if (crc_en) begin
End
End
end // always
endmodule // crc
//
UA.ЧДТУ.211877- 01 12 01- 1
top
`define DEBUG
9
module top(
i nput wire i_clk,
output wire [1:0] o_eth_data, // TX data to ETH
output wire o_eth_tx_en // TX enable to ETH data
,
output wire o_led_tx // LED En TX
`ifdef DEBUG
,
output wire [31:0] d_crc32
`endif
);
localparam PAKET_PAUSE = 32'd1000;
reg [31:0] delay = 0;
reg led_tx = 0;
wire [10:0] ram_adr;
wire [7:0] ram_data;
wire ram_re;
reg tx_en = 0;
wire tx_ready;
reg [7:0] st = 0;
eth_tx
#(
.PAKET_MAX_SIZE( 11'd1500 ) // maksimalnaya
dlinna paketa
)
ETH_TX2
(
.i_clk( i_clk ),
.i_tx_en( tx_en ), // start tx
.o_tx_ready( tx_ready ), // tx end, modules ready
.o_eth_data( o_eth_data ), // TX data to ETH
.o_eth_tx_en( o_eth_tx_en ), // TX enable to ETH data
.i_ram_data( ram_data ), // interface for ext RAM
UA.ЧДТУ.211877- 01 12 01- 1
10
.o_ram_adr( ram_adr ),
.o_ram_re( ram_re ),
.i_ram_data_size( 60 ) // razmer danih dla posilki to
eth
`ifdef DEBUG
,
.d_crc32( d_crc32)
` endif
);
// RAM buffer, for tx paket
ram_ip_paket_tx RAM1(
.data( 0 ),
.rdaddress( ram_adr ),
.rdclock( i_clk ),
.rden( ram_re ),
.wraddress( 0 ),
.wrclock( 0 ),
.wren( 0 ),
.q( ram_data )
);
always @(posedge i_clk)
Begin
case(st)
0:
Begin
if (tx_ready) begin
tx_en <= 1;
led_tx <= 1;
st <= st + 1'b1;
End
End
1:
Begin
tx_en <= 0;
st <= st + 1'b1;
11
E nd
2:
Begin
st <= st + 1'b1;
UA.ЧДТУ.211877- 01 12 01- 1
E nd
3:
Begin
if (tx_ready) begin
led_tx <= 0;
st <= st + 1'b1;
End
End
4:
Begin
delay <= 0;
st <= st + 1'b1;
E nd
5:
Begin
delay <= delay + 1'b1;
if (delay == PAKET_PAUSE) st <= 0;
E nd
default: st <= 0;
Endcase
% ----PAKET---- %
% 192.168.17.255 %
DEPTH = 60;
WIDTH = 8;
ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;
CONTENT
BEGIN
0000 : FF; % MAC DST %
0001 : FF;
0002 : FF;
0003 : FF;
0004 : FF;
0005 : FF;
0006 : 00; % MAC SRC %
0007 : 12;
0008 : 34;
0009 : 56;
000A : 78;
000B : 90;
000C : 08; % protokol verhnego urovna IP=0800 %
12
000D : 00;
000E : 45; % IP, 4-version 5-razmer zagolovka %
000F : 00;
UA.ЧДТУ.211877- 01 12 01- 1
0010 : 00; % IP, razmer paketa zagolovok+danie %
0011 : 2E;
0012 : B3; % IP, identificator %
0013 : FE;
0014 : 00; % IP, flagi i smehenie segmenta %
0015 : 00;
0016 : 80; % IP, vrema gizni (128) %
0017 : 11; % IP, protokol nihnego urovna (0x11(17)-UDP) %
0018 : E1; % IP, kontrolnaya summa zagolovka low %
0019 : A8; % IP, kontrolnaya summa zagolovka high %
001A : C0; % IP - SRC 192 %
001B : A8; % IP - SRC 168 %
001C : 11; % IP - SRC 17 %
001D : C8; % IP - SRC 200 %
001E : C0; % IP - DST 192 %
001F : A8; % IP - DST 168 %
0020 : 11; % IP - DST 17 %
0021 : FF; % IP - DST 255 %
0022 : 04; % UDP, port SRC %
0023 : 00;
0024 : 04; % UDP, port DST %
0025 : 00;
0026 : 00; % UDP, dlinna %
0027 : 1A;
0028 : 0A; % UDP, kontrolnaya summa %
0029 : 51;
002A : 00; % data %
002B : 01;
002C : 02;
002D : 03;
002E : 04;
002F : 05;
0030 : 06;
0031 : 07;
0032 : 08;
0033 : 09;
0034 : 0A;
0035 : 0B;
0036 : 0C;
0037 : 0D;
0038 : 0E;
0039 : 0F;
003A : 10;
003B : 11;
13
% 003C : B8; %
UA.ЧДТУ.211877- 01 12 01- 1
% 003D : 79; %
% 003F : 64; %
% 0040 : 0D; %
END;
define
D EBUG
module top(
input wire i_clk,
output wire [1:0] o_eth_data, // TX data to ETH
output wire o_eth_tx_en // TX enable to ETH data
,
output wire o_led_tx // LED En TX
`ifdef DEBUG
,
output wire [31:0] d_crc32
`endif
);
localparam PAKET_PAUSE = 32'd1000;
reg [31:0] delay = 0;
reg led_tx = 0;
wire [10:0] ram_adr;
wire [7:0] ram_data;
wire ram_re;
reg tx_en = 0;
wire tx_ready;
reg [7:0] st = 0;
14
1eth_tx
#(
.PAKET_MAX_SIZE( 11'd1500 ) // maksimalnaya dlinna paketa
)
ETH_TX2
(
.i_clk( i_clk ),
.i_tx_en( tx_en ), // start tx
UA.ЧДТУ.211877- 01 12 01- 1
.o_tx_ready( tx_ready ), // tx end, modules ready
.o_eth_data( o_eth_data ), // TX data to ETH
.o_eth_tx_en( o_eth_tx_en ), // TX enable to ETH data
.i_ram_data( ram_data ), // interface for ext RAM
.o_ram_adr( ram_adr ),
.o_ram_re( ram_re ),
.i_ram_data_size( 60 ) // razmer danih dla posilki to eth
`ifdef DEBUG
,
.d_crc32( d_crc32)
`endif
);
// RAM buffer, for tx paket
ram_ip_paket_tx RAM1(
.data( 0 ),
.rdaddress( ram_adr ),
.rdclock( i_clk ),
.rden( ram_re ),
.wraddress( 0 ),
.wrclock( 0 ),
.wren( 0 ),
.q( ram_data )
);
always @(posedge i_clk)
Begin
case(st)
15
0:
Begin
if (tx_ready) begin
tx_en <= 1;
led_tx <= 1;
st <= st + 1'b1;
End
End
1:
Begin
tx_en <= 0;
st <= st + 1'b1;
UA.ЧДТУ.211877- 01 12 01- 1
End
2:
Begin
st <= st + 1'b1;
End
3:
Begin
if (tx_ready) begin
led_tx <= 0;
st <= st + 1'b1;
End
End
4:
Begin
delay <= 0;
st <= st + 1'b1;
End
5:
Begin
delay <= delay + 1'b1;
if (delay == PAKET_PAUSE) st <= 0;
End
default: st <= 0;
Endcase
End