Компьютерные системы и сети

Применение электронных вычислительных машин. Создание локально-вычислительных сетей. Исследование принципов работы сети Ethernet. Изучение архитектуры прикладного интерфейса Windows. Назначение протокола NetBIOS и консольного приложения MyServer.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 19.01.2016
Размер файла 162,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

МЕЖДУНАРОДНЫЙ ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

Кафедра «Информационные системы и технологии»

КОНТРОЛЬНАЯ РАБОТА

Компьютерные системы и сети

Выполнил:

Зеневич Дмитрий Алексеевич

Минск 2015

Введение

Современное человеческое общество живет в период, характеризующийся небывалым ростом объема информационных потоков. Это относится как к экономике, так и к социальной сфере. Рыночные отношения предъявляют повышенные требования к своевременности, достоверности, полноте информации.

Применение современных электронных вычислительных машин дает возможность переложить трудоемкие операции на автоматические или автоматизированные устройства, которые могут работать со скоростью, превышающей скорость обработки информации человеком в миллионы раз.

Использование ЭВМ приводит к коренной перестройке технологии производства практически во всех отраслях промышленности, коммерческой и финансово-кредитной деятельности и, как следствие, к повышению производительности и улучшению условий труда людей. Именно поэтому современный специалист должен владеть теоретическими знаниями в области информатики и практическими навыками использования вычислительной техники, техники связи и других средств управления.

Локальные сети в последнее время из модного дополнения к компьютерам все более превращаются в обязательную принадлежность любой компании, имеющей больше одного компьютера. Совершенствование аппаратуры и программных средств достигло такого уровня, когда установить и эксплуатировать простейшую сеть может практически любой более или менее грамотный пользователь, тем более что на рынке имеется множество книг, подробно описывающих процесс установки и обслуживания, а последние версии наиболее распространенной операционной системы Windows содержат в себе довольно развитые сетевые средства, так что даже покупать специальное сетевое программное обеспечение совсем не обязательно. То, что раньше было доступно только посвященным, только специально обученным профессионалам, теперь легко может проделать каждый.

Расширение локально-вычислительных сетей и удлинение линий связи привело к необходимости создания глобальных сетей, в состав которых входят локальные, региональные сети и отдельные ПК. Для соединения ПК и сетей в глобальной сети используются специальные линии связи: волоконно-оптические, телефонные, спутниковые и т.д. Скорость передачи в таких линиях зависит от качества всех составляющих. Наиболее массовым каналом передачи данных является телефонные линии.

Объединение большого числа локально-вычислительных сетей привело в итоге к созданию всемирной компьютерной сети - Интернет.

электронный вычислительный сеть ethernet

1. Теоретические сведения

MAC-адрес (от англ. Media Access Control -- управление доступом к среде, также Hardware Address) -- это уникальный идентификатор, присваиваемый каждой единице активного оборудования компьютерных сетей.

При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта (равно как и встроенный сетевой интерфейс) должна иметь уникальный шестибайтный номер (MAC-адрес), прошитый в ней при изготовлении. Этот номер используется для идентификации отправителя и получателя фрейма, и предполагается, что при появлении в сети нового компьютера (или другого устройства, способного работать в сети) сетевому администратору не придётся настраивать MAC-адрес.

Уникальность MAC-адресов достигается тем, что каждый производитель получает в координирующем комитете IEEE Registration Authority диапазон из шестнадцати миллионов (224) адресов, и по мере исчерпания выделенных адресов может запросить новый диапазон. Поэтому по трём старшим байтам MAC-адреса можно определить производителя. Существуют таблицы, позволяющие определить производителя по MAC-адресу; в частности, они включены в программы типа arpalert.

В широковещательных сетях (таких, как сети на основе Ethernet) MAC-адрес позволяет уникально идентифицировать каждый узел сети и доставлять данные только этому узлу. Таким образом, MAC-адреса формируют основу сетей на канальном уровне, которую используют протоколы более высокого (сетевого) уровня. Для преобразования MAC-адресов в адреса сетевого уровня и обратно применяются специальные протоколы (например, ARP и RARP в сетях IPv4 и NDP в сетях на основе IPv6).

2. Практическая часть

Исходный код файла main.cpp

#include <Windows.h>

#include <iostream>

#include <iphlpapi.h>

#pragma comment(lib, "iphlpapi.lib")

#pragma comment(lib, "Mpr.lib")

using namespace std;

void foundresurce(NETRESOURCE, int);

void macAdr();

NETRESOURCE nTRS_F; // Структура с пар-рами: dwScope, dwType, dwDisplayType, dwUsage, lpLocalName, lpRemoteName, lpComment, lpProvider;

void main()

{

int a = 0;

setlocale(LC_ALL, "rus");

while (a != 3)

{

printf("1.Перечислить сетевые ресурсы\n2.Отобразить MAC адрес\n3.ВЫХОД\nВВЕДИТЕ: ");

scanf_s("%d", &a);

switch (a)

{

case 1:

foundresurce(nTRS_F, 0);// Вызов фун-ции поиска ресурсов

break;

case 2:

macAdr();//Отображение МАС адреса

break;

case 3:

printf("Выход из программы...\n");

break;

}

system("pause");

system("cls");

}

void foundresurce(NETRESOURCE nTRS, int tMP)

{

DWORD tL, tM, tR;

HANDLE discSearch;

unsigned int i;

NETRESOURCE ntrsBuff[1000];

char machineName[100];

if (!tMP)

tL = WNetOpenEnum(RESOURCE_GLOBALNET,//1.Перечисляются все ресурсы сети

RESOURCETYPE_ANY,//2.Диски и принтеры

0,//3.Все ресурсы

&nTRS,//4.Переменная типа

&discSearch);//5.Дискрептор поиска

else

tL = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, &nTRS, &discSearch);

if (tL == NO_ERROR)

{ //Ресурс доступен

do

{ //Выводим максимальное кол-во записей

tM = -1;

tR = 32000;

tL = WNetEnumResource(discSearch, &tM, &ntrsBuff, &tR); // Обнуляем буфер

if (tL == NO_ERROR)

{ // Смотрим ресурс + вывод информации

for (i = 0; i < tM; i++)

{

if (ntrsBuff[i].lpRemoteName != NULL)

{

CharToOem(ntrsBuff[i].lpRemoteName, machineName);

printf("Ресурс сети: %s \n", machineName);

}

// Вывод сетевого имени

foundresurce(ntrsBuff[i], 1);

}// Рекурсия

}

else

if (tL != ERROR_NO_MORE_ITEMS)

{

//ошибка, нужно выходить из цикла

break;

}

} while (tL != ERROR_NO_MORE_ITEMS);

{

WNetCloseEnum(discSearch);

}

void macAdr()

{

IP_ADAPTER_INFO ip_ainf[128];

PIP_ADAPTER_INFO pip_ainf = ip_ainf;

ULONG bufLen = sizeof(ip_ainf);

GetAdaptersInfo(ip_ainf, &bufLen);

do {

printf("Имя адаптера: %s \nОписание: [%s] \nMAC: %02X:%02X:%02X:%02X:%02X:%02X\n",

pip_ainf->AdapterName,

pip_ainf->Description,

pip_ainf->Address[0],

pip_ainf->Address[1],

pip_ainf->Address[2],

pip_ainf->Address[3],

pip_ainf->Address[4],

pip_ainf->Address[5]);

} while (pip_ainf = pip_ainf->Next);

}

3. Пример работы программы

Рис. 1. - Перечисление ресурсов сети

Рис. 2 - Отображение МАС адресов устройств

3. Стек протоколов TCP/IP

Стек протоколов TCP/IP -- набор сетевых протоколов передачи данных, используемых в сетях, включая сеть Интернет. Название TCP/IP происходит из двух наиважнейших протоколов семейства -- Transmission Control Protocol (TCP) и Internet Protocol (IP), которые были разработаны и описаны первыми в данном стандарте.

Протоколы работают друг с другом в стеке (англ. stack, стопка) -- это означает, что протокол, располагающийся на уровне выше, работает «поверх» нижнего, используя механизмы инкапсуляции. Например, протокол TCP работает поверх протокола IP.

Стек протоколов TCP/IP включает в себя четыре уровня:

прикладной уровень (application layer),

транспортный уровень (transport layer),

сетевой уровень (network layer),

канальный уровень (link layer).

Протоколы этих уровней полностью реализуют функциональные возможности модели OSI. На стеке протоколов TCP/IP построено всё взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных.

Порты

Приложения, использующие «сокеты», идентифицируют себя на компьютере посредством номера порта (port number). Например, FTP-сервер использует определенный TCP-порт, поэтому другие приложения могут связаться с ним.

Порты могут иметь любой номер от 0 до 65 536. Номера портов для приложений клиентов динамически назначаются операционной системой при обработке запроса на обслуживание. Существуют зарезервированные (или заранее известные, от англ. well-known) номера портов, которые закреплены за стандартными прикладными протоколами и службами. Их список можно узнать, просмотрев текстовый файл Windows\System32\Drivers\Etc\Services.

Номера зарезервированных портов расположены в интервале от 1 до 1024. Полный список зарезервированных номеров портов определен в стандарте RFC 1700.

«Сокет» (от англ. socket) во многом аналогичен дескриптору файла (file handle). Он обеспечивает конечную точку сетевого соединения. Приложение, создавая «сокет», указывает три параметра: IP-адрес узла, тип обслуживания (протокол TCP для ориентированного на соединение обслуживания и UDP для не ориентированного) и порт, используемый приложением.

Протокол UDP

Протокол User Datagram Protocol (UDP) обеспечивает не ориентированную на соединение службу доставки датаграмм по принципу «максимального усилия». Это означает, что получение всей датаграммы или правильной последовательности отправленных пакетов не гарантируется.

Протокол UDP используется приложениями, не требующими подтверждения. Обычно такие приложения передают данные небольшого объема за один раз. Примеры служб и приложений, использующих UDP: сервис имен NetBIOS, сервис датаграмм NetBIOS и сервис SNMP.

Порты протокола UDP

Для использования протокола UDP приложение должно знать IP-адрес и номер порта получателя. Порт - место назначения при доставке сообщений - идентифицируется уникальным номером. Порт действует как мультиплексная очередь сообщений, то есть он может получать несколько сообщений одновременно. Важно отметить, что порты протокола UDP, перечисленные в таблице, отличаются от портов TCP несмотря на использование тех же значений номеров. Протокол UDP описан в стандарте RFC 768.

4. Консольное приложение MyServer (Chat Server)

Исходный код main.cpp:

#pragma comment (lib,"Ws2_32.lib")

#include <WinSock2.h>

#include <iostream>

#include <WS2tcpip.h>

SOCKET Connect; //Prinimaet podkluch pol'zovoteley

SOCKET* Connections; // Kollekciya socketov - massiv socketov

SOCKET Listen; //Socket dlya podklucheniya

int ClientCount = 0;

void SendMesageToClient(int ID)

{

char* buffer = new char[1024];

for (Sleep(75))

{

memset(buffer,0,sizeof(buffer));

if(recv(Connections[ID],buffer,1024,NULL))

{

printf(buffer);

printf("\n");

for (int i=0; i<=ClientCount; i++)

{

send(Connections[i],buffer,strlen(buffer),NULL); // otpravka vsem clientam soobschenie

}

delete buffer;

}

int main ()

{

setlocale (LC_ALL,"russian");

WSADATA data; //Peremennaya tipa

WORD version = MAKEWORD (2,2); //Versiya socetov

int res = WSAStartup (version,&data); //res - rezultat inicializacii socketa;

if(res!=0)

{

return 0;

}

struct addrinfo hints; // Peremennie dlya raboty s socketam

struct addrinfo * result;

Connections = (SOCKET*)calloc(64,sizeof(SOCKET)); // inicializaciya

ZeroMemory(&hints,sizeof(hints)); //ochistili stucturu

hints.ai_family = AF_INET; //tip soketa

hints.ai_flags = AI_PASSIVE; // flag

hints.ai_socktype = SOCK_STREAM; //DEGRAMA

hints.ai_protocol = IPPROTO_TCP;

//info o hoste (o nas)

getaddrinfo(NULL,"7770",&hints,&result); // hints - nastroyki soketa, result - info o sockete, servere itd

Listen = socket (result->ai_family,result->ai_socktype,result->ai_protocol); // Inicializiruem socket Listen

bind(Listen,result->ai_addr,result->ai_addrlen); // Ob'yavili server

listen(Listen,SOMAXCONN); // Max clientov

freeaddrinfo(result);

printf ("Start server...\n");

char m_connect[] = "Connect... ;;;5";

{

//cicl obrabotki soobscheniy

if (Connect = accept(Listen,NULL,NULL)) // ojudanie podclucheniya

{

printf ("Client connect....\n");

Connections[ClientCount] = Connect; // sohranyaem socket clienta

send (Connections[ClientCount],m_connect,strlen(m_connect),NULL); // soobchenie o podcluchenii dlya clienta

ClientCount++;//++ k polzovateley

CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)SendMesageToClient,(LPVOID)(ClientCount-1),NULL,NULL);

}

Рис.3 - Сервер

5. Приложение MyClient(Chat Client)

Исходный код файла Program.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace MyClient

static class Program

{

/// <summary>

/// Главная точка входа для приложения.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

6. Исходный код файла Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Net;

using System.Net.Sockets;

using System.IO;

using System.Threading;

namespace MyClient

{

public partial class Form1: Form

{

static private Socket Client;//сокет для клиента

private IPAddress ip = null; // Хранит ip адресс

private int port = 0;

private Thread th;

public Form1()

{

InitializeComponent();

richTextBox1.Enabled = false;

richTextBox2.Enabled = false;

button1.Enabled = false;

//Ниже принимаем найстройки для клиента

try

{

var sr = new StreamReader(@"Client_info/Client_info.txt");

string buffer = sr.ReadToEnd();

sr.Close();

string[] connect_info = buffer.Split(':');

ip = IPAddress.Parse(connect_info[0]);

port = int.Parse(connect_info[1]);

label4.ForeColor = Color.Green;

label4.Text = "Настройки:\n IP сервера:" + connect_info[0] + "\n Порте сервера: " + connect_info[1];

}

catch (Exception ex) //в случае ошибки

{

label4.ForeColor = Color.Red;

label4.Text = "Настройки не найдены";

Form2 form = new Form2();

form.Show();

}

}

private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)

{

Form2 form = new Form2();

form.Show();

}

void SendMessage(string message)

{

if (message != "" && message != " ")

{

byte[] buffer = new byte[1024];

buffer = Encoding.UTF8.GetBytes(message);

Client.Send(buffer);

th = new Thread(delegate() { RecvMessage(); });

th.Start();

}

}

void RecvMessage()

{

byte[] buffer = new byte[1024];

for (int i = 0; i < buffer.Length; i++)

{

buffer[i] = 0;

}

try

{

Client.Receive(buffer);

string message = Encoding.UTF8.GetString(buffer);

int count = message.IndexOf(";;;5");

if (count == -1)

{

continue;

}

string Clear_Message = "";

for (int i = 0; i < count; i++)

{

Clear_Message += message[i];

}

for (int i = 0; i < buffer.Length; i++)

{

buffer[i] = 0;

}

this.Invoke((MethodInvoker)delegate()

{

richTextBox1.AppendText(Clear_Message);

});

}

catch (Exception ex)

{

}

}

private void button2_Click(object sender, EventArgs e)

{

if (textBox1.Text != "" && textBox1.Text != " ")

{

button1.Enabled = true;

richTextBox2.Enabled = true;

Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

if (ip != null)

{

Client.Connect(ip, port);

}

private void button1_Click(object sender, EventArgs e)

{

SendMessage("\n" + textBox1.Text + ":" + richTextBox2.Text + ";;;5");

richTextBox2.Clear();

}

private void авторToolStripMenuItem_Click(object sender, EventArgs e)

MessageBox.Show("BY Dmitry Zenevich");

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

if (th != null ) th.Abort();

if (Client != null) Client.Close();

Application.Exit();

}

Исходный код файла Form2.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

namespace MyClient

{

public partial class Form2: Form

{

public Form2()

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if (textBox1.Text != "" && textBox1.Text != " " && textBox1.Text != "" && textBox1.Text != " ")

{

try

{

DirectoryInfo data = new DirectoryInfo("Client_info");

data.Create();

var sw = new StreamWriter(@"Client_info/Client_info.txt");

sw.WriteLine(textBox1.Text + ":" + textBox2.Text);

sw.Close();

this.Hide();

Application.Restart();

}

catch(Exception ex)

{

MessageBox.Show("Ошибка:" + ex.Message);

}

}

Пример работы программы

Рис.4 - Чат клиент

Заключение

Мы можем сделать вывод, что компьютеры уже прочно вошли в современный мир, во все сферы человеческой деятельности и науки, тем самым создавая необходимость в обеспечении их различным программным обеспечением. Конечно, в первую очередь это связано с развитием электронной вычислительной техники и с её быстрым совершенствованием и внедрением в различные сферы человеческой деятельности.

В контрольной работе сделан обзор, сравнительные характеристики, достоинства и недостатки протоколов таких как TCP и UDP. Существует много других эффективных и полезных приложений как чат и сервер, число их увеличивается с каждым днем. Поэтому, чтобы не отстать от ритма современной жизни, нужно постоянно быть в курсе новинок технических средств ПЭВМ, системного программного обеспечения и прикладных компьютерных технологий.

  • Список использованных источников

1. MSDN Library. Раздел Networking and Directory Services - Network Pro-tocols - NetBIOS, раздел Networking and Directory Services - Network Manage-ment - Windows Networking (WNet).

2. Справочник по командам Windows. [Электрон, ресурс] / Режим доступа: http://winchanger.whatis.ru/file/prog.zip

3. Windows: Сети: Изучение TCP/IP. [Электрон, ресурс] / OS Zone. Режимдоступа: http://www.oszone.net/display.php?id=1409

4. К.Закер. Компьютерные сети. Модернизация и поиск неисправностей: Пер. с англ. - СПб.: БХВ-Петербург, 2004. - 1008 с.: ил.

5. MSDN Library. Раздел Networking and Directory Services - Network Pro-tocols - Windows Sockets.

6. Windows: Сети: Изучение TCP/IP: [Электрон, ресурс] / OS Zone. Режим доступа: http://www.oszone.net/display.php?id=1409

7. К.З акер. Компьютерные сети. Модернизация и поиск неисправностей: Пер. с англ. - СПб.: БХВ-Петербург, 2004. - 1008 с.

Размещено на Allbest.ru


Подобные документы

  • Классификация компьютерных сетей. Назначение и особенности организации локальных вычислительных сетей. Назначение и структура глобальной сети Интернет. Работа с общими ресурсами в локальной сети. Вход и работа в Интернете. Поиск заданной информации.

    методичка [378,6 K], добавлен 05.10.2008

  • Классификация компьютерных сетей. Назначение компьютерной сети. Основные виды вычислительных сетей. Локальная и глобальная вычислительные сети. Способы построения сетей. Одноранговые сети. Проводные и беспроводные каналы. Протоколы передачи данных.

    курсовая работа [36,0 K], добавлен 18.10.2008

  • Понятия и назначение одноранговой и двухранговой вычислительных сетей. Изучение сетевой технологии IEEE802.3/Ethernet. Выбор топологии локальной сети, рангового типа и протокола с целью проектирования вычислительной сети для предприятия ОАО "ГКНП".

    курсовая работа [432,9 K], добавлен 14.10.2013

  • Изучение принципов построения локальных вычислительных сетей. Обоснование выбора сетевой архитектуры для компьютерной сети, метода доступа, топологии, типа кабельной системы, операционной системы. Управление сетевыми ресурсами и пользователями сети.

    курсовая работа [1,8 M], добавлен 25.04.2016

  • Классификация вычислительных сетей. Функции локальных вычислительных сетей: распределение данных, информационных и технических ресурсов, программ, обмен сообщениями по электронной почте. Построение сети, адресация и маршрутизаторы, топология сетей.

    доклад [23,2 K], добавлен 09.11.2009

  • Просмотр сведений о сетевых подключениях компьютера с помощью ОС Windows. Установление параметров сетевых протоколов (команда ipconfig), отчет об использовании. Разрешение имен NetBios. Проверка IP-адресов, трассировка маршрутов, команды сети NET.

    лабораторная работа [1,6 M], добавлен 11.09.2013

  • Особенности ламповых вычислительных устройств. Программные мониторы, мультипрограммирование, многотерминальные системы. Разработка формализованного языка. Переход от транзисторов к микросхемам. Система пакетной обработки. Глобальные компьютерные сети.

    реферат [282,6 K], добавлен 19.09.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.