1   2   3   4   5   6   7   8
Ім'я файлу: Комп'ютерні мережі Курсова Робота 2021 .docx
Розширення: docx
Розмір: 693кб.
Дата: 15.02.2022
скачати
Пов'язані файли:
Аутогенне тренування. ШАБАТІН.docx
ОБД_Методичн_вказ_для_КР_2012.doc
123-kompyuterna-inzheneriya-bakalavr.pdf
Лабораторна робота 2.docx

4. Реалізація роботи.

4.1. Реалізація роботи.


Результатом розробки має бути користувальницький Windows – додаток призначенням якого буде визначення маршрутів слідування даних у мережах TCP/IP.

Проаналізувавши аналогічні за призначенням програми та обрані мною засоби, для написання програми використані наступні бібліотеки(простори імен): System; System.Collections.Generic; System.Linq; System.Text, System.Net; System.Threading.Tasks; System.Windows; System.Windows.Controls; System.Windows.Data; System.Windows.Documents; System.Windows.Input; System.Windows.Media; System.Windows.Media.Imaging; System.Windows.Navigation; System.Windows.Shapes; System.Diagnostics; System.Net.NetworkInformation; System.ComponentModel; System.Threading;

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

System.Collections.Generic - У цих просторах імен міститься ряд контейнерних типів, а також кілька базових типів та інтерфейсів, які дозволяють створювати спеціальні колекції.

System.Linq - У цих просторах імен містяться типи, які застосовуються під час виконання програмування з використанням API-інтерфейсу LINQ

System.Text - Простір імен System.Text містить класи, абстрактні базові класи та допоміжні класи. Скажімо, наприклад, якщо ви хочете скористатися StringBuilder, Декодером, кодером і т.д.

System.Net - Класи в просторі імен System.Net можна використовувати для розробки програм для Магазину Windows або додатків робочого столу. При використанні в Додатку для Магазину Windows класи простору імен System.Net зачіпаються функцією мережевої ізоляції, яка є частиною моделі безпеки програм, що використовується системою Windows Developer Preview. Відповідні мережеві можливості необхідно увімкнути у маніфесті додатків для Програми для Магазину Windows для системи, щоб дозволити мережний доступ Програмам для Магазину Windows.

System.Threading.Tasks - У цьому просторі імен містяться численні типи для побудови багатопотокових додатків, здатних розподіляти робоче навантаження серед кількох ЦП.

System.Windows, System.Windows.Controls, System.Windows.Shapes - Простір System.Windows є кореневим серед цих кількох просторів імен, які є набором графічних інструментів Windows Presentation Foundation (WPF)

System.Diagnostics - Простір імен

Надає класи, що дозволяють здійснювати взаємодію із системними процесами, журналами подій та лічильниками продуктивності.

System.Net.NetworkInformation - Простір імен, який надає доступ до даних мережного трафіку, відомостей про мережні адреси та сповіщень про зміну адрес для локального комп'ютера. Цей простір імен містить класи, що реалізують функціональність програми Ping. Клас Ping та інші пов'язані з ним класи можуть бути використані для перевірки доступності комп'ютера по мережі. System.ComponentModel - Простір імен, який надає класи, що використовуються для реалізації поведінки компонентів та елементів керування під час розробки та виконання. Цей простір імен містить базові класи та інтерфейси для реалізації атрибутів та перетворювачів типів, прив'язки до джерел даних та ліцензування компонентів. System.Threading - Простір імен, який надає класи та інтерфейси для багатопотокового програмування. Крім класів синхронізації роботи потоків і доступу до даних (Mutex, Monitor, Interlocked, AutoResetEvent і т. д.), цей простір імен містить клас ThreadPool, що дозволяє використовувати пул, що надається системою потоків, і клас Timer, що виконує методи зворотного виклику в потоках пула потоків . А також ще декілька вбудованих в WPF класів для корректної роботи програми, з елементами ОС Windows, а саме (System.Windows.Data, System.Windows.Documents, System.Windows.Input, System.Windows.Media, System.Windows.Media.Imaging, System.Windows.Navigation).

5. Протокол виконання програми та інструкція користувача


Проект складається з наступних файлів:

- MainWindow.xaml (2 КБ) - файл розмітки графіки вікна;

- MainWindow.xaml.cs (5 КБ) - файл з кодом програми;

- TraceRoutApp.csproj (5 КБ) – файл проекту;

Після компіляції з’являється виконуючий файл TraceRoutApp.exe (13Кб). Для роботи програми додаткових файлів не потрібно.

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

Мінусами програми є те що вона має лише базовий функціонал порівняно з багатьма аналогами, також вона написана за домопогою WPF, це означає що вона працюватиме лише на ОС Windows та при необхідності портувати її на іншу ОС доведеться переписувати її в іншому середовищі і можливо на іншій мові. Для роботи програми потрібен .NET Framework мінімум версії1 4.0

При запуску програми користувач бачить 3 основні елементи вікна програми це поле для вводу доменного імені чи IP-адреси сайту(вузла), кнопку для запуску операції трасування та поле для виводу результатів. Загальний вигляд програми та результат її роботи наведено на рисунках 5.1 та 5.2 відповідно.



Рисунок 5.1 Загальний вигляд програми.



Рисунок 5.2 Результат роботи програми.

Висновок


Проведено аналіз процесів що протікають в комп’ютері та мережі.

Досліджено об’єкт розробки, призначення та область застосування проектного рішення.

Зроблено огляд існуючих рішень керування процесів, що протікають в середовищі.

Проаналізовані основні інструменти для розробки програмного забезпечення. Обґрунтовано та доведено правильність, що до вибору засобів проектування. Для програмної реалізації обрано C#.

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

Література


  1. Traceroute [1.1]: https://uk.wikipedia.org/wiki/Traceroute#%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%B8_%D1%82%D0%B0_%D0%B4%D0%BE%D0%BF%D0%BE%D0%B2%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B4%D0%BE_traceroute

  2. Tracert и Traceroute [2.1]: https://help.reg.ru/hc/ru/articles/4408047753105-%D0%A3%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B-Traceroute-%D0%B8-Tracert

  3. Програма MTR [2.2.]: https://uk.wikipedia.org/wiki/MTR_(%D1%83%D1%82%D0%B8%D0%BB%D1%96%D1%82%D0%B0)

  4. MTR версія для Windows [2.2]: https://help.reg.ru/hc/ru/articles/4408046869009-%D0%94%D0%B8%D0%B0%D0%B3%D0%BD%D0%BE%D1%81%D1%82%D0%B8%D0%BA%D0%B0-%D0%B8-%D0%BB%D0%BE%D0%B3%D0%B8

  5. Tracemap [2.3]: http://xgu.ru/wiki/tracemap

  6. Мови програмування [3.1]: http://ipkey.com.ua/uk/faq/925-programming-languages.html

  7. Мови програмування [3.1]:

Діагностика мережі за допомогою MTR [Електронний ресурс]: https://hyperhost.ua/info/ru/diagnostika-seti-s-pomoshchyu-mtr


  1. Мови програмування [3.2]: https://ru.wikipedia.org/wiki/Windows_Presentation_Foundation

  2. Мови програмування [3.2]: https://ru.wikipedia.org/wiki/XAML




  1. Мови програмування [3.2]: https://metanit.com/sharp/wpf/2.php

  2. Реалізація [4.1]: https://docs.microsoft.com/en-us/dotnet/api/system.net.networkinformation.ping.send?view=net-6.0

Додаток А.
Блок-схема алгоритму роботи програми (рис. А.1).




Рис.А.1. Блок-схема алгоритму роботи програми.

Додаток Б.
Лістинг програми наведено нижче у (табл. Б.1)


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

using System.Diagnostics;

using System.Net.NetworkInformation;

using System.ComponentModel;

using System.Threading;
namespace TraceRoutApp

{

///

/// Логика взаємодії для MainWindow.xaml

///


public partial class MainWindow : Window

{

public MainWindow()

{

InitializeComponent();

}

private void Button_Click(object sender, RoutedEventArgs e)

{

string hostname = addresslist.Text; //Тут використовуємо адресу потрібного вам сайту.

int timeout = 1000; //1000 мс або 1 секунда.

int max_ttl = 30; //Максимальна калькість серверів, які можна знайти.

int current_ttl = 0; //Буде використовуватися для відстеження кількості знайдених серверів.

const int buffersize = 32;

Stopwatch s1 = new Stopwatch();

Stopwatch s2 = new Stopwatch();

byte[] buffer = new byte[buffersize];

new Random().NextBytes(buffer);

Ping pinger = new Ping();

Task.Factory.StartNew(() =>

{

WriteListBox($"Трасування маршруту ICPM розпочато на <{hostname}>");

for (int ttl = 1; ttl <= max_ttl; ttl++)

{

current_ttl++;

s1.Start();

s2.Start();

PingOptions options = new PingOptions(ttl, true);

PingReply reply = null;

try

{

reply = pinger.Send(hostname, timeout, buffer, options);

}

catch

{

WriteListBox("Помилка");

break;

}

if (reply != null)
{

//Біти трасування :)

if (reply.Status == IPStatus.TtlExpired)

{

//Адресу знайдено після вашої на шляху до місця призначення.

WriteListBox($"[{ttl}] - Маршрут: <{reply.Address}> Час: {s1.ElapsedMilliseconds} мс - Загальний час: {s2.ElapsedMilliseconds} мс");

continue; //Команда переходить до других бітів, щоб знайти більше серверів.
}

if (reply.Status == IPStatus.TimedOut)

{

//Це може статися, якщо сервер відповідає дуже довго або якщо на сервері закритий порт ICPM (дуже часто саме через це).

WriteListBox($"\n[{ttl}] - Перевищено час очікування на <{hostname}>. Наступна спроба.");

continue;

}

if (reply.Status == IPStatus.Success)

{

//Пакет ICPM дійшов до пункту призначення (ім'я хоста).

WriteListBox($"\nУспішно. Маршрут трасування на <{hostname}> в {s1.ElapsedMilliseconds} мс - Загальний час: {s2.ElapsedMilliseconds} мс");

WriteListBox($"\n----------------------------------------------------------------------------------------------------------------\n");

s1.Stop();

s2.Stop();

}

}

break;

}

});

}

private void WriteListBox(string text)

{

Dispatcher.BeginInvoke(new Action(() =>

{

outlist.Items.Add(text);

}));

}

}

}

Таблиця Б.1. Лістинг програми


1   2   3   4   5   6   7   8

скачати

© Усі права захищені
написати до нас