100
ЛАБОРАТОРНАЯ РАБОТА № 10 Метод доступа CSMA/CD и обеспечение надежности Ethernet
Продолжительность — 2 часа. Максимальный рейтинг — 8 баллов.
ЦЕЛЬ РАБОТЫ
Освоить методы расчета характеристик сети, гарантирующих корректность передачи кадров и доступа к среде в техноло-
гии Ethernet.
ЗАДАНИЕ
1.Повторить темы, связанные с передачей данных в каналах связи, методы доступа, форматы пакетов и характеристики передачи. Повторить методы Ethernet доступа и способы расчета PDV
иPVV.
2.В соответствии с индивидуальным заданием спроектировать ЛВС.
3.Обязательно произвести оценочный расчет следующих параметров:
– Vmax максимальный объем передаваемых данных для каждого домена сети;
– Cbt_max Cbt_min требуемую max и min битовую скорость передачи данных (при передаче максимальными 1508б и минимальными 72б пакетами);
– Ckdr_min Ckdr_max требуемую max и min кадровую ско-
рость передачи данных;
– t_pr время реакции сети (при передаче максимальными и минимальными пакетами).
4.Доказать работоспособность сегментов сети с точки зрения методов доступа. Для технологии типа Ethernet произвести расчет PDV и PVV.
5.Для сетевого сервера рассчитать:
–необходимое быстродействие;
–объем ОЗУ и сетевого буфера;
–объем HDD.
6. Спроектировать адресацию компьютеров в сети. Разработать схему подсетей.
101
Выписать маски подсетей для всех сегментов и диапазоны адресов хостов.
Допускается использование VLAN.
ВАРИАНТЫ ТОПОЛОГИЧЕСКИХ СХЕМ СЕТИ
I
II
III
A |
1 |
|
3 |
|
|
|
|
B |
2 |
4 |
5 |
|
6 |
8 |
C |
|
|
|
|
7 |
|
9 |
D |
|
|
3 |
2 |
A |
|
|
|
B |
1 |
4 |
5 |
|
6 |
9 |
C |
|
|
|
|
8 |
|
D |
|
|
|
|
A |
1 3 |
|
2 |
B |
C |
8 |
4 |
5 |
6 |
7 |
9 |
D |
|
|
A |
|
1 |
|
|
|
IV
V
B |
2 |
3 |
4 |
5 |
9 |
C |
|
|
D |
6 |
|
8 |
|
|
|
|
|
|
|
3 |
1 |
A |
|
B |
2 |
4 |
5 |
6 |
7 |
8 |
C |
|
|
|
|
D |
9 |
|
|
|
3 |
|
2 |
A |
|
|
|
VI |
B 1 |
4 |
5 |
6 |
9 C |
D
8
102
Таблица 1 — Протоколы передачи и длины сегментов для топологических схем сети
Вариант |
1 сегмент |
2 сегмент |
3 сегмент |
4 сегмент |
5 сегмент |
6 сегмент |
7 сегмент |
8 сегмент |
9 сегмент |
|
|
1 |
10Base-T 60 |
10Base-5 150 |
10Base-5 100 |
10Base-FB 700 |
10Base-FL 200 |
10Base-5 200 |
FOIRL 900 |
10Base-T 100 |
10Base-5 200 |
|
|
2 |
10Base-2 50 |
10Base-2 100 |
FOIRL 850 |
10Base-FL 1600 |
FOIRL 300 |
FOIRL 700 |
10Base-FL 1900 |
10Base-2 160 |
10Base-2 100 |
|
|
3 |
10Base-T 50 |
10Base-T 100 |
10Base-5 50 |
10Base-5 200 |
10Base-FL 800 |
10Base-FL 900 |
FOIRL 900 |
10Base-T 800 |
10Base-T 80 |
|
|
4 |
10Base-T 100 |
10Base-2 125 |
FOIRL 800 |
FOIRL 900 |
FOIRL 900 |
FOIRL 600 |
10Base-FL 1400 |
10Base-T 60 |
10Base-T 70 |
|
|
5 |
10Base-T 70 |
10Base-FL 1500 |
10Base-FB 600 |
10Base-FB 1800 |
10Base-FL 700 |
10Base-FL 1500 |
FOIRL 800 |
10Base-T 40 |
10Base-FL 1750 |
|
|
6 |
10Base-2 110 |
10Base-2 125 |
10Base-5 500 |
10Base-FL 1400 |
FOIRL 1000 |
FOIRL 800 |
10Base-FB 1800 |
10Base-5 340 |
FOIRL 400 |
|
|
7 |
10Base-T 80 |
10Base-5 125 |
FOIRL 900 |
FOIRL 700 |
10Base-FB 1500 |
10Base-FB 800 |
10Base-FL 1200 |
10Base-5 200 |
10Base-T 40 |
|
|
|
|
||||||||||
8 |
10Base-2 50 |
10Base-2 90 |
10Base-5 400 |
10Base-FL 1700 |
10Base-FL 1200 |
10Base-FL 1300 |
FOIRL 650 |
10Base-2 100 |
10Base-2 150 |
|
|
9 |
10Base-T 60 |
10Base-T 90 |
10Base-FL 700 |
10Base-5 200 |
FOIRL 550 |
FOIRL 650 |
10Base-FB 1250 |
10Base-T 80 |
10Base-T 90 |
102 |
|
10 |
10Base-T 70 |
10Base-T 30 |
10Base-FB 500 |
10Base-5 350 |
10Base-FB 1700 |
10Base-FB 1500 |
10Base-5 340 |
10Base-2 125 |
10Base-T 100 |
||
|
|||||||||||
11 |
10Base-2 75 |
10Base-FL 1300 |
10Base-FL 500 |
10Base-5 300 |
10Base-5 100 |
10Base-5 200 |
10Base-FB 750 |
10Base-FL 1800 |
10Base-2 135 |
|
|
12 |
10Base-T 90 |
FOIRL 750 |
10Base-5 200 |
FOIRL 800 |
10Base-FL 1500 |
10Base-FB 500 |
10Base-FL 800 |
FOIRL 200 |
10Base-2 150 |
|
|
13 |
10Base-T 60 |
10Base-2 125 |
FOIRL 700 |
10Base-FB 700 |
10Base-5 200 |
10Base-FB 1500 |
10Base-FL 1000 |
10Base-T 40 |
10Base-T 100 |
|
|
14 |
10Base-2 50 |
10Base-5 125 |
10Base-FL 1700 |
10Base-FL 1600 |
FOIRL 700 |
10Base-FL 1200 |
FOIRL 650 |
10Base-2 150 |
10Base-2 160 |
|
|
15 |
10Base-T 50 |
10Base-2 90 |
10Base-5 200 |
10Base-5 200 |
10Base-FL 900 |
FOIRL 550 |
10Base-FB 1250 |
10Base-T 90 |
10Base-T 800 |
|
|
16 |
10Base-T 100 |
10Base-T 90 |
10Base-5 350 |
FOIRL 900 |
FOIRL 600 |
10Base-FB 1700 |
10Base-5 340 |
10Base-T 100 |
10Base-T 60 |
|
|
17 |
10Base-T 70 |
10Base-T 30 |
10Base-5 300 |
10Base-FB 1800 |
10Base-FL 1500 |
10Base-5 100 |
10Base-FB 750 |
10Base-2 135 |
10Base-T 40 |
|
|
18 |
10Base-2 110 |
10Base-FL 1300 |
FOIRL 800 |
10Base-FL 1400 |
FOIRL 800 |
10Base-FL 1500 |
10Base-FL 800 |
10Base-2 150 |
10Base-5 340 |
|
|
19 |
10Base-T 80 |
FOIRL 750 |
FOIRL 900 |
10Base-5 100 |
10Base-FL 200 |
10Base-FB 800 |
FOIRL 900 |
10Base-5 200 |
10Base-5 200 |
|
|
20 |
10Base-2 50 |
10Base-5 150 |
10Base-5 400 |
FOIRL 850 |
FOIRL 300 |
10Base-FL 1300 |
10Base-FL 1900 |
10Base-2 100 |
10Base-2 100 |
|
|
21 |
10Base-T 60 |
10Base-2 100 |
10Base-FL 700 |
10Base-5 50 |
10Base-FL 800 |
FOIRL 650 |
FOIRL 900 |
10Base-T 80 |
10Base-T 80 |
|
|
22 |
10Base-T 70 |
10Base-T 100 |
10Base-FB 500 |
FOIRL 800 |
FOIRL 900 |
10Base-FB 1500 |
10Base-FL 1400 |
10Base-T 70 |
10Base-2 125 |
|
|
23 |
10Base-2 75 |
10Base-2 125 |
10Base-FL 500 |
10Base-FB 600 |
10Base-FL 700 |
10Base-5 200 |
FOIRL 800 |
10Base-FL 1750 |
10Base-FL 1800 |
|
|
24 |
10Base-T 90 |
10Base-FL 1500 |
10Base-5 200 |
10Base-5 500 |
FOIRL 1000 |
10Base-FB 500 |
10Base-FB 1800 |
FOIRL 400 |
FOIRL 200 |
|
103
11 SOCKET-ПРОГРАММИРОВАНИЕ
Протокол IP не имеет никакой обратной связи и не гарантирует целостности передаваемых данных, то для этого применяются протоколы более высокого уровня — TCP и UDP. Пакеты данных, сформированные этими протоколами, не могут в чистом виде передаваться по сети, они вкладываются в IP-пакеты и передаются в их составе. Протокол UDP обеспечивает быструю, но ненадежную передачу данных, без организации канала и без подтверждения доставки. Протокол TCP — существенно более надежный, но и не такой быстрый. При отправке данных ожидается некоторое время ответ получателя, если ответа нет или пришел ответ о получении испорченных данных, то происходит повторная передача.
При работе с компонентами C++Builder или Delphi, предназначенными для передачи данных по сетям всегда необходимо заполнять свойство Host компонента. Это свойство содержит имя (DNS, Wins) или IP-адрес и используется для формирования пакетов при передаче по сети. Другое свойство каждого сетевого компонента — это свойство Port. Речь идет не об аппаратных портах компьютера, а о программных портах Windows. Порт характеризуется своим номером, многие номера закреплены за определенными протоколами и службами Интернета. При самостоятельном определении номера порта необходимо следить за тем, чтобы задаваемый номер порта не совпал с используемым (зарезервированным) номером. Какие именно порты вашей системы заняты, можно узнать, посмотрев файл Services без расширения, расположенный в каталоге Windows (для Windows 9.х) или в каталоге System32\drivers\etc (для Windows NT/2000/XP).
Сокеты (socket) — это некие программные коммутаторы, обслуживающие соединения в сети. По своему назначению они разделяются на 3 типа: клиентские, слушающие и серверные. Клиентский сокет инициирует соединение, указывая имя или IP-адрес удаленного сервера и порт, используемый сервером. На сервере запрос клиента об установлении связи получает слушающий сокет, его задача — формировать очередь запросов. А серверный сокет, последовательно обрабатывая эту очередь и дойдя до запроса клиента, устанавливает соединение с клиентским сокетом. Он от-
104
правляет ответ на клиентский сокет, который получает описание серверного сокета с которым он установил связь.
Таким образом, сокеты позволяют организовать обмен информацией в сетях, когда к одному серверу может одновременно обращаться множество клиентов. Функции клиентского сокета в C++Builder (или Delphi) выполняет компонент TClientSocket, а за серверный сокет отвечает компонент TServerSocket. Рассмотрим пример использования компонентов TClientSocket и TServerSocket.
Сервер
1.Для создания серверного приложения нужно использовать компонент TServerSocket, расположенный на вкладке Internet.
2.Для компонента TServerSocket установить свойство Port равным 3000. Можно установить и другой номер TCP-порта — это не принципиально. Важно только, чтобы порт не оказался занятым каким-нибудь приложением. Этот же номер порта мы будем использовать и для TClientSocket.
3.Необходимо активировать серверное приложение — дать команду на прослушивание соответствующего порта.
ServerSocket1->Active= true;
4.Написать обработчик для получения данных. Для объекта ServerSocket1 обрабатываем событие OnClientRead. Получить принятые от клиента данные можно при помощи метода ReceiveText(), для этого используется передаваемый в обработчик параметр Socket типа TCustomWinSocket.
5.Полезно визуализировать признак того, что клиент подсоединился к нашему серверу. Для этого создаются для объекта
ServerSocket1 обработчики событий OnClientConnect и OnClientDisconnect, в которых отражается информация о признаке присоединения (отсоединения) клиента.
Написание серверного приложения закончено.
Клиент
1. Для создания клиентского приложения необходимо использовать компонент TClientSocket.