Информационные сети и коммуникации. Учебное пособие
.pdfБИБЛИОГРАФИЧЕСКИЙ СПИСОК
Кразделу 2
1.Стивенс У. Протоколы TCP-IP Практическое руководство / У. Стивенс, А. Ричард. – СПб.: Невский диалект; БХВ-Петербург, 2003. – 672 с.
2.Костромин В.А. Самоучитель Linux для пользователя / В.А. Костромин. – СПб.: БХВ-Петербург, 2003. – 672 с.: ил.
3.Колесниченко Д.Н. Linux-сервер своими руками / Д.Н. Колесниченко. – СПб.: Наука и техника, 2002. – 576 с.: ил.
4.Кирх О. Linux для профессионалов. Руководство администратора сети / О. Кирх. – СПб.: Питер, 2000. – 368 с.: ил.
Кразделу 4
1.Танаев А. [Электронный ресурс] http://thelib.ru/books/butanaev_anton/ programmirovanie_soketov-read.html.
2.Шарыгин А. [Электронный ресурс] Программирование сокетов http://www.rsdn.ru/article/unix/ sockets.xml.
3.LinuxShare [Электронный ресурс] – Режим доступа http://www.linux share.ru/docs/devel/languages/C/tppcu/5.htm. – Загл. сэкрана.
4.Select_tutorial [Электронный ресурс] – Режим доступа http://amax.h16.ru/docs/select_tut2.html. – Загл. с экрана.
5.Porting applications to IPv6 HowTo [Электронный ресурс] – Режим доступа – http://long.ccaba.upc.es/long/045Guidelines/eva/ipv6.html. – Загл.
сэкрана.
6.Introduction to IPv6 Socket Programming [Электронный ресурс] – Режим доступа http://www.lugod.org/presentations/ipv6programming –
Загл. с экрана.
61
Кразделу 5
1.Танаев А. [Электронный ресурс] http://thelib.ru/books/butanaev_anton/ programmirovanie_soketov-read.html
2.Шарыгин А. [Электронный ресурс] Программирование сокетов http://www.rsdn.ru/article/unix/ sockets.xml
3.LinuxShare [Электронный ресурс] – Режим доступа http://www.linuxshare.ru/docs/devel/languages/C/tppcu/5.htm
4.Select_tutorial [Электронный ресурс] – Режим доступа http://amax.h16.ru/docs/select_tut2.html
5.Porting applications to IPv6 HowTo [Электронный ресурс] – Режим доступа: http://long.ccaba.upc.es/long/045Guidelines/eva/ipv6.html. – Загл.
сэкрана.
6.Introduction to IPv6 Socket Programming [Электронный ресурс] – Режим доступа http://www.lugod.org/presentations/ipv6programming –
Загл. с экрана.
Кразделу 6
1.Distributed Computing Made Simple [Электронный ресурс] http://zeromq.org.
2.Танаев А. [Электронный ресурс] http://thelib.ru/books/butanaev_ anton/programmirovanie_soketov-read.html.
3.Шарыгин А. [Электронный ресурс] Программирование сокетов http://www.rsdn.ru/article/unix/ sockets.xml.
4.LinuxShare http://www.linuxshare.ru/docs/devel/languages/C/tppcu/5.htm.
5.Select_tutorial http://amax.h16.ru/docs/select_tut2.html.
6.Спецификации RFC. http://rfc.com.ru/ - onlie ресурс.
Кразделу 7
1.Танаев А. [Электронный ресурс] http://thelib.ru/books/butanaev_anton/ programmirovanie_soketov-read.html
2.Шарыгин А [Электронный ресурс]. Программирование сокетов http://www.rsdn.ru/article/unix/ sockets.xml
3.LinuxShare [Электронный ресурс] http://www.linuxshare.ru/docs/ devel/languages/C/tppcu/5.htm
62
4.Select_tutorial [Электронный ресурс] http://amax.h16.ru/docs/ select_tut2.html
5.Программированиезвука[Электронныйресурс] http://www.opennet.ru/ base/dev/sound.txt.html
6.Кодек для сжатия речевых данных [Электронный ресурс] http://www.speex.org
7.Структурааудиофайла[Электронный ресурс] http://audiocoding.ru/
Кразделу 8
1.http://zguide.zeromq.org/page:all [Электронный ресурс].
2.https://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/patterns/ patterns.html [Электронный ресурс].
3.Easy cluster parallelization with ZeroMQ [Электронный ресурс].
4.https://github.com/mdup/easycluster/ [Электронный ресурс].
63
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ 1 К РАЗДЕЛУ 2
Пример Shell скрипта, который проверяет наличие программы task.pl в памяти и «убивает» ее
-------------------------- начало листинга -----------------------------------
#!/bin/bash
#Признак, что это шелл-скрипт
echo "Сканер запущен! ";date; #вывели строку на консоль
while [ $(ps -e | grep "tasks.pl" | wc -c) -eq 0 ]; do
# проверили, встречается ли в списке задач "task.pl"
echo "task.pl в памяти не обнаружен" > /dev/tty6;
#выдали на терминал 6 сообщение
sleep 30;
#заснули на 30 секунд done
#признак конца while
var=$( killall virus.pl );
#присвоили переменной var ответ killall echo $var "процесс task.pl"
#напечатали строку на консоль echo "работа завершена"
---------------------------конец листинга------------------------------------
64
ПРИЛОЖЕНИЕ 2 К РАЗДЕЛУ 2
Справочник команд
Сетевые команды
ss - Утилита ss позволяет просматривать информацию об используемых сокетах. Подробнее man ss.
Netcat (nc) позволяет принимать или передавать информацию через сокеты в командном режиме. Подробнее man nc.
tcpdump – протоколирует трафик в сети
tcpdump [- c N] –i интерфейс
[-c N] – получить N пакетов и выйти -i интерфейс – имя интерфейса –i eth0
tcpdump –c 10 -i eth0:1
netstat – предоставляет информацию о сетях, сокетах, портах.
netstat –r – выводит таблицу маршрутов netstat –i – информация о интерфейсах
флаг –n – позволяет распечатывать адреса хостов, а не имена, подробнее смотрите в маn и info
traceroute – трассировка маршрута. Позволяет отследить маршрут движения IP пакетов от одного хоста к другому.
traceroute [-n] назначение
[-n] – требует распечатывать IP адреса вместо имен назначение – IP-адрес, к которому исследуется маршрут. traceroute –i eth0
Ping – пакетный локатор. Посылает эхо-запрос, на этот эхо-запрос адресат создает эхо-отклик. Таким образом, проверяется доступность адресата и выполняется хронометраж.
65
ping [-c N] назначение
[-c N] посылать N эхо-запросов Назначение – IP-адрес
ping –c 5 192.168.6.100
Некоторые команды bash
wc – счетчик количества строк символов в потоке (файле). Ключ [–c] позволяет подсчитывать количество байт в потоке.
grep – команда фильтр. Позволяет выделять строки из потока (файла), содержащие заданную подстроку.
grep “подстрока” файл
echo [строка] – печатает строку в поток. По умолчанию вывод осуществляется в поток stdout.
echo “Hello, world!”
Циклы и условное ветвление
Конструкция if: if {list} then {list2} else {list3} fi
Конструкция for: for name in words do list done for a in 1 2 3 ; do
touch /home/test/foo_$a done
Конструкции while, until: while listl do list2 done while [ -d /home/test/dir ] ; do
Is -1 /home/test/dir >> /home/test/dir.log echo -- SEPARATOR — >> /home/test/dir.log sleep 60
done
Команда проверки выражений для операторов ветвления test, или []
Условные выражения, строятся на основе проверки файловых атрибутов, сравнения строк и обычных арифметических сравнений. Ключи команды:
a –e –f file – верно, если файл существует
-b –c –d –p -S file верно, если файл соотвующего типа
66
-h –l file верно, если ссылка
-r/-w/-x file верно, если дано право на чтение/запись/исполнение -s верно, если размер больше нуля
-N file верно, если с момента последнего чтения файл был изменен filel -nt file2 – верно, если время модификации 1 позднее
filel -ot file2 – верно, если 1 старше
filel -ef file2 – верно, если файлы эквививалентны (inode) -z/-n string верно, если длина строки =/<> 0
stringl == string2 верно, если строки совпадают stringl != string2 верно, если строки совпадают
argl –ne/-le/-lt/-gt/-ge arg2 – арифметическая проверка
67
|
ПРИЛОЖЕНИЕ 1 К РАЗДЕЛУ 4 |
|
Ключи к команде tcpdump |
Ключ |
Описание |
-a |
Преобразовывает сетевые и широковещательные адреса в домен- |
|
ные имена. |
-e |
Отображает данные канального уровня (mac-адрес, протокол, |
|
длина пакета). Вместо ip-адресов будут отображаться mac-адреса |
|
компьютеров. |
-F файл |
Использовать фильтр, находящийся в файле. Если вы используе- |
|
те этот параметр, фильтр из командной строки будет игнориро- |
|
ваться. |
-i |
Указывает на то, какой сетевой интерфейс будет использоваться |
|
для захвата пакетов. По умолчанию – eth0, но если отсутствует |
|
локальная сеть, то можно воспользоваться интерфейсом обрат- |
|
ной связи lo. |
-l |
Использовать стандартный потоковый вывод tcpdump (stdout), |
|
например, для записи в файл: shell# tcpdump -l | tee out.log // |
-N |
отобразит работу tcpdump и сохранит результат в файле out.log |
Не добавляет доменное расширение к именам узлов. Например, |
|
|
tcpdump отобразит 'net' вместо 'net.library.org' |
-n |
Отображает ip-адрес вместо имени хоста. |
-nn |
Отображает номер порта вместо используемого им протокола. |
-p |
Не переводит интерфейс в режим приема всех пакетов |
-q |
(promiscuous mode). |
Выводит минимум информации. Обычно это имя протокола, от- |
|
-r |
куда и куда шел пакет, порты и количество переданных данных. |
Этот параметр позволяет tcpdump прочесть трафик из файла, ес- |
|
|
ли он был предварительно сохранен параметром -w. |
-S |
Позволяет не обрабатывать абсолютные порядковые номера |
|
(initial sequence number - ISN) в относительные. |
-s число |
Количество байт пакета, которые будет обрабатывать tcpdump. |
|
При установке большого числа отображаемых байт информация |
|
может не уместиться на экране и ее будет трудно изучать. В за- |
|
висимости от того, какие цели вы преследуете, и надо выбирать |
|
значение этого параметра. По умолчанию tcpdump сохраняет |
|
первые 68 байт, однако если вы хотите увидеть содержимое всего |
|
пакета, используйте значение в 1500 байт (максимально допу- |
|
стимый размер пакета в сети Ethernet). |
68
-t Не отображает метку времени в каждой строке.
-T тип Интерпретация пакетов заданного типа. Поддерживаются типы aodv, cnfp, rpc, rtp, rtcp, snmp, tftp, vat, wb.
-tt Отображает неформатированную метку времени в каждой строке.
-tttt Показывает время вместе с датой.
-v Вывод подробной информации (TTL; ID; общая длина заголовка, а также его параметры; производит проверку контрольных сумм IP и ICMP-заголовков).
-vv Вывод еще более полной информации, в основном касается NFS
и SMB.
-vvv Вывод максимально подробной информации.
-w Сохраняет данные tcpdump в двоичном формате. Преимущества использования данного способа по сравнению с обычным перенаправлением в файл – это высокая скорость записи и возможность чтения подобных данных другими программами, например, snort, но этот файл нельзя прочитать человеку.
-X Выводит пакет в ASCII- и hex-формате. Полезно в случае анализа инцидента, связанного с взломом, так как позволяет просмотреть, какая текстовая информация передавалась во время соединения.
-x Делает распечатку пакета в шестнадцатеричной системе, полезно для более детального анализа пакета. Количество отображаемых данных зависит от параметра -s.
-xx То же, что и предыдущий параметр, но включает в себя заголовок канального уровня.
-XX То же, что и предыдущий параметр, но включает заголовок канального уровня.
-с число tcpdump завершит работу после получения указанного числа пакетов.
69
ПРИЛОЖЕНИЕ 2 К РАЗДЕЛУ 4
Программа-сервер преподавателя
/*Программа сервера UDP */ /*2021 год*/
#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <stdlib.h> #include <unistd.h> #include<netinet/in.h> #include <termios.h> #include <fcntl.h> #include <string.h>
int udp_socket=-1; // идентификатор сокет для UDP char udpbuf[1024]; // буфер для хранения данных
struct sockaddr_in6 addr_UDP6; //Структура для хранения адреса ipv6
void init_UDP(void);// инициализация UDP-сокет void send_UDP(int); // Отправляем данные в UDP
void main()
{
int i; int recv;
int structlen;
structlen = sizeof(struct sockaddr_in); char SENDER_ADDR[44];
int byte1,byte2,byte3,byte4; unsigned char xorbyte=0;
70
