- •Державний комітет зв’язку та інформатизації України
- •Современные проблемы информационных сетей
- •Инструменты и ресурсы
- •Формат пакета ping.
- •Программа tracert в Windows.
- •Порядок вызова
- •Программа tcpdump (снифер) сетевой анализатор для поиска неисправностией в сети и отладки сетевых приложений.
- •Использование tcpdump
- •Выходная информация, формируемая tcpdump
- •Программа netstat
- •4. Интерфейсы
- •Маршрутная таблица
- •Статистика протоколов
- •Процессы
- •Типы процессов
- •Прикладные процессы
- •Атрибуты процессов
- •Реальный (rgid) и эффективный (egid) идентификаторы группы
- •Жизненный путь процесса
- •Сигналы
- •Взаимодействие между процессами
- •Организация каналов
- •Взаимодействие между процессами
- •Размер канала
- •Функции к разделу fifo
- •Пример приложения клиент-сервер, использующего fifo для обмена данными. Клиент посылает серверу сообщенияHello, а сервер выводит это сообщение на терминал.
- •Права доступа к объекту
- •Идентификаторы и имена в ipc
- •Tcp как потоковый протокол
- •Чтение длины записи
- •Функции разрешения имён
- •Преобразование имён хостов
- •Аккуратное размыкание соединение
- •Вызов shutdown
- •Алгоритм Найгла
- •Программная реализация архитектуры клиент – сервер
- •1.2 Разработка программ в архитектуре “клиент-сервер”
- •Заполнение адресной структуры и получение сокета
- •Привязка известного порта и вывод listen
- •Принятие соединения.
- •Обмен данными
- •Программный интерфейс сокетов
- •Сокеты во FreeBsd
- •Типы соединения
- •Адресация
- •Адресация Internet
- •Interface сокетов
- •Создание сокета
- •Програмныйинтерфейс сокетов
- •Поддержка различных типов сокетов в доменах
- •Пример использования сокетов
- •Sdl-описание протокола сеансового уровня эталонной модели взаимосвязи открытых систем
- •Основные понятия
- •Описание служб
- •Описание протоколов
- •Службы ядра сеансового уровня
- •Блок данных протокола
- •Ясо-описание протокола сеансового уровня
- •Разбиение блока сеансового протокола
- •Описание блока блк-дир
- •Описание блока блк-исп
- •Описание процессов дир и рдт
- •Описание процесса исп
Выходная информация, формируемая tcpdump
Информация, выдаваемая tcpdumpзависит от протокола.
Пример. С помощью клиента udphellocследует послать один байт в порт сервера времени дня в доменеnetcom.com:
bsd:$ udphelloc netcom4. netcom.com daytime
ThuSep16 15:11:49 1999
bsd:$
Хост netcom4 возвращает дату и время вUDР-дейтаграмме
18:12:23 bsd 1127>netcom4.netcom.com.daytime: nop1
18:12:23.389284 netcom4.netcom.com.daytime>bsd.1127:26
bsdпослалnetcom4UDР-дейтаграмму длиной 1 байт, аnetcom4 ответил дейтаграммой длиной 26 байт.
Протокол обмена ICMPпакетами аналогичен.
Трассировка одного запроса, генерируемого программой pingс хостаbsdна хостnetcom4:
1. 06:21:28.690320 bsd>netcom4.netcom.com:icmp:echo request
2. 06:21:29.400433 netcom4.netcom.com.daytime>bsd.1127:26
Строка icmp: означает, что этоICMP-дейтаграмма, а следующий за ней текст описывает тип этой дейтаграммы. Недостаткомtcpdumpявляется неполная поддержка вывода собственно данных. По умолчаниюtcpdumpвыводит только первые 68 байт, что достаточно для заголовков большинства протоколов. Авторыtcpdumpне всегда даютASCII-представление данных из-за возможности кражи паролей. Программы перевода выдачиtcpdumpв кодASCII распространены.
# !/usr/bin/per l5
$ tcpdump= “/usr/sbin/tcpdump”;
open( ICPD, “$tcpdump@ARGV|” )||
“не могу запустить tcpdump; \$!\\n”;
$|=1;
While (<TCPD>)
{
if (/^\t/)
{
chop;
$str=S_;
$str=-tr/\t//d;
$str=pack “H*”, $str;
$str=~tr/|x0-\x1f\x7f-\xff/./;
printf “\t%-40s\t%S\n”, substr ($_,4), $str;
}
else
{
print;
}
}
Программа netstat
Ядро ОС ведет разнообразную статистику об объектах, имеющих отношение к сети. Эту информацию можно получить. Существует четыре вида запросов.
1.Активные сокеты
netstatдает информацию о разных типах сокетов, но интерес представляют только сокеты из адресных доменовinet(AF_INET) иUNIX(AF_LOKALилиAF_UNIX).netstataдает вывод всех типов сокетов или выбрать один тип, указав адресное семейство с помощью опции –f.
При необходимости получить сведения о TCP/ИДР сокеты, то следует вызыватьnetstatтак
Bsd: $ netstat –f inet
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 localhost.domain *.* listen
tcp 0 0 bsd domain *.* listen
udp 0 0 localhost.domain *.*
udp 0 0 bsd domain *.*
bsd:$netstat–afinet
При обращении к серверу эхо-контроля с помощью telnet:
Bsd: $telnetbsdecho, то появится соединение в состоянииESTABLISHED:
Proto Recv-Q Send-Q localAddress Foreign Address (state)
tcp 0 0 bsd.echo bsd.1035 ESTABLISHED
tcp 0 0 bsd.1035 bsd.echo ESTABLISHED
tcp0 0 *,echo*,*LISTEN
Т.к. соединение указано с локальной машиной
telnet– клиент подсоединился к порту 7 (порт эхо) и фактически использует его в качестве порта назначения, хост продолжает прослушивать этот порт. Это нормально, так как с точки зрения протоколаTCPсоединение – это 4 адреса : 2 локальныхIP– адреса и порта и 2 удалённыхIP– адреса и порта.inetdпрослушивает порт на универсальном «псевдоадресе»INADDP_ANY(*.echo), тогда какIP– адрес для установленного соединения равенbsd. Если завершить работу клиента (telnet) и снова запуститьnetstat, получим :
-
Proto
Recv – Q
Send – Q
Local Address
Foreign Address
(state)
tcp
0
0
bsd.1035
Bsd.echo
TIME_WAIT
Клиентная строка соединения находится в состоянии TIME-WAIT.