Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

VoIP_V2

.docx
Скачиваний:
22
Добавлен:
23.06.2024
Размер:
1.46 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ

__________________________________________________________

Факультет СиСС

Кафедра Сети связи и системы коммутации

Задание № 4

по дисциплине «Мультисервисные системы и сети»

на тему:

«Чтение трассы вызова VoIP»

Выполнил: ст. гр. БЗС2002

Ломакин А. А.

Проверил: доц. каф. ССиСК

Деарт В. Ю.

(Весенний семестр)

Москва 2023

1. Задание

  1. Установить программу – анализатор трафика WireShark. Изучить ее возможности, в частности, возможности фильтрации.

  2. Показать временную диаграмму установления соединения VoIP по протоколу SIP.

  3. Подробно проанализировать трассировку процесса установления соединения.

2. Исходные данные

Файл с трассой «SIP_CALL_RTP_G711» был взят с сайта «https://wiki.wireshark.org/gollum/search?q=sip_call» и будет в приложении к отчёту.

3. Выполнение

Для начала следует определить, сколько всего вызовов VoIP было на данной трассе. Для этого можно воспользоваться встроенной функцией WireShark, а именно Телефония  Вызовы VoIP:

Рисунок 1 – вызовы VoIP

Нам откроется следующее окно, в котором можно заметить 3 вызова:

Рисунок 2 – все звонки VoIP

Обратим внимание на столбик «Протокол» - нас интересует только протокол инициации сессий SIP (Session Initiation Protocol), поэтому звонок по протоколу MGCP не будет рассмотрен.

Итак, имеется 2 звонка по протоколу SIP, разберем каждый из них более подробно. Для начала рассмотрим странный звонок длительностью в 0 секунд:

Для того, чтобы получить временную диаграмму установления соединения VoIP, нужно выделить интересующий нас звонок мышкой, после чего нажать «Flow Sequence»:

Рисунок 3 – Flow sequence

После чего нам откроется следующее окно с временной диаграммой:

Рисунок 4 – временная диаграмма вызова

Из диаграммы следует, что терминал с IP 200.57.7.196 (следует из разобранного ниже запроса INVITE в поле Message Body) послал INVITE (приглашение к соединению) на прокси-сервер с IP 200.57.7.195, который переслал INVITE на терминал с IP 200.57.7.204 с содержательной частью, сформированной протоколом SDP (указан список кодеков (которыми владеет терминал 200.57.7.196), порт для соединения и другая информация). В ответ терминал отсылает 100 Trying и 180 Ringing, после чего временная диаграмма кончается, хотя для разговора по RTP необходимо отправить еще 200 OK (со списком выбранных для разговорной сессии кодеков и номера порта) и принять ACK от вызвавшего терминала.

Полная временная диаграмма того, как это должно быть, представлена на рисунке:

Рисунок 5 - Временная диаграмма установления соединения VoIP, передачи речи и разъединения между двумя SIP терминалами через прокси-сервер

Посмотрим на каждый из запросов рассмотренного выше вызова подробнее, для этого применим фильтр «sip» к трассе:

Рисунок 6 – фильтр sip

На рисунке выше нас интересуют запросы, обведенные красным. Рассмотрим запрос INVITE более подробно (красным подчеркнуты данные, на которые, как я думаю, следует обратить внимание):

Рисунок 7 – запрос INVITE

Разберем запрос сверху-вниз:

Src: 200.57.7.195 – Ip-адрес прокси.

Dst: 200.57.7.204 – IP-адрес терминала, принявшего запрос.

Далее идут назначенные порты.

После идёт IP-адрес прокси.

<sip:francisco@bestel.com:55060> - кому назначается этот запрос.

1 INVITE – тип запроса.

application/sdp – указано, что для формирования тела сообщения был использован SDP.

200.57.7.196 – IP-адрес вызывающего терминала.

Далее видно, что будет передаваться audio, назначен порт, стек и список кодеков, которыми обладает отправивший запрос терминал.

После идет подробное описание кодеков.

Рисунок 8 – ответ 100 Trying

Из данного рисунка видно, что терминал посылает прокси ответ 100 Trying.

Далее терминал-получатель (изначального запроса INVITE) отвечает сообщением 180 Ringing, которое сервер пересылает терминалу-отправителю (изначального запроса INVITE):

Рисунок 9 – ответ 180 Ringing

Как уже было сказано выше, дальше по всем канонам должны были быть ответы 200 OK, ACK и начало RTP-сессии, но в данном звонке их не было, поэтому перейдем к более подробному рассмотрению второго звонка.

Теперь рассмотрим звонок длительностью 8.5 секунд (как я понял, 8.5 секунд – это длительность не самого звонка (RTP-сессии), а длительность установления соединения, т.к. сам звонок длится около 26 секунд (будет показано дальше)). Для начала рассмотрим его временную диаграмму:

Рисунок 10 – временная диаграмма вызова

Из диаграммы следует, что терминал с IP 200.57.7.196 послал INVITE (приглашение к соединению) на прокси-сервер с содержательной частью, сформированной протоколом SDP (указан список кодеков, порт для соединения и другая информация). Прокси переслал этот запрос к терминалу 200.57.7.204. В ответ терминал посылает 100 Trying, 180 Ringing и 200 OK, после чего образуется RTP-сессия.

Итого получаем: 200.57.7.196 – терминал, который первым послал INVITE на прокси, 200.57.7.204 – второй терминал, который принял INVITE, 200.57.7.195 – прокси.

Посмотрим на каждый из запросов/ответов рассмотренного выше вызова подробнее, для этого применим фильтр «sip» к трассе:

Рисунок 11 – фильтр sip

На рисунке выше нас интересуют запросы, обведенные красным. Рассмотрим запрос INVITE более подробно:

Рисунок 12 – запрос INVITE

Здесь, аналогично разобранному выше запросу INVITE, указаны IP-адреса терминала, принимающего запрос, прокси, от кого запрос, тип запроса, IP-адрес вызывающего (второго) терминала, что будет передаваться audio, назначен порт, стек и список кодеков с их подробным описанием.

После идут ответы 100 Trying и 180 Ringing, которые полностью аналогичны рассмотренным выше.

Далее вызываемый терминал посылает прокси 200 OK, подробное описание которого представлено на рисунке ниже:

Рисунок 13 – сообщение 200 OK

В этом сообщении указывается, что для передачи голоса выбран кодек G.711 с A-законом, а номер UDP-порта – 8000.

Между терминалами открывается RTP-сессия, по которой происходит обмен голосовыми пакетами. По значению временных меток этих пакетов можно судить о продолжительности разговора (Timestamp).

Рассмотрим RTP-сессию более подробно. Для начала мы можем в окне вызовов VoIP выбрать необходимый нам звонок и нажать «Play Streams», после чего нам откроется проигрыватель RTP:

Рисунок 14 – Play Streams

Рисунок 15 – проигрыватель RTP

В данном окне можно прослушать разговор, а также увидеть выбранный кодек, длительность разговора, порты, IP-адреса и количество пакетов.

Теперь рассмотрим RTP-сессию более подробно, для этого введем фильтр «rtp» ко всей трассе:

Рисунок 16 – фильтр «rtp»

На рисунке выше красным подчеркнуты первые 3 пакета RTP в одну сторону (от вызываемого терминала к вызывающему), а зеленым первые 3 RTP пакета в другую сторону (от вызывающего терминала к вызываемому). По значению меток Seq и Time можно судить о номере RTP-пакета. Время отправки первых пакетов с той и другой стороны совпадает с временной диаграммой.

Проследим, когда был отправлен последний RTP-пакет, что свидетельствует о конце разговора:

Рисунок 17 – конец RTP-сессии вызывающего терминала

На рисунке выше красным подчеркнут последний RTP-пакет для вызываемого терминала. Время отправки пакета совпадает со временем окончания разговора в проигрывателе RTP.

Рисунок 18 – конец RTP-сессии вызываемого терминала

На рисунке выше зеленым подчеркнут последний RTP-пакет для вызывающего терминала. Время отправки пакета совпадает со временем окончания разговора в проигрывателе RTP.

Подробнее разберемся с форматом RTP-пакета:

Рисунок 19 – RTP-пакет

На рисунке выше представлен первый RTP-пакет от вызываемого терминала. Мы можем увидеть IP-адреса обоих терминалов (поля Src и Dst), порт принимающей и отправляющей пакет стороны, Sequence number (определяет последовательный номер пакета (+1 с каждым пакетом RTP)), Timestamp (относительная временная метка), а также выбранный кодек. SSI – источник синхронизации, который выбирается случайно.

Также стоит рассмотреть пакет RTCP, который используется для контроля RTP сессии и сбора полезной информации:

Рисунок 20 – RTCP-пакет

SR (Sender Reports – рапорт источника) – содержит статистическую информацию отправителя и информацию получателей;

RR (Receiver Reports – рапорт приемника) – содержит статистическую информацию получателей;

Первые 2 бита (10) — версия протокола RTCP.

P-бит (0) - признак наличия заполнения (Padding).

RC размером 5 бит (00001) обозначает число блоков источников, представленных в данном рапорте.

Поле PT – 8 бит - тип пакета (SR – рапорт отправителя, RR – рапорт приемника).

Далее идут биты для поля Length – длина пакета.

SSRC – идентификатор источника синхронизации (идентификатор источника);

NTP timestamp (64 бита) – значение абсолютной метки времени в формате протокола NTP. Значение этого поля вместе с временной меткой в пакете отправителя может быть использовано для расчета RTT;

RTP timestamp – содержит метку относительного времени, сгенерированную протоколом RTP;

Sender packet count – содержит число отправленных пакетов с начала текущей сессии;

Sender octet count – содержит общее число октетов, отправленных с начала сессии;

Fraction Lost (8 бит) – доля потерянных пакетов данного источника относительно общего числа пакетов;

Packet Lost (24 бит) – общее число потерянных пакетов данного источника;

Highest Sequence Number – максимальный номер пакета, полученного от данного источника;

LSR – старшая часть последнего значения метки времени NTP (Network Time Protocol) TimeStamp, полученного от данного источника;

DLSR – задержка времени от получения последнего сообщения от данного источника до формирования данного блока.

Ключевыми полями для понимания качества обслуживания, как я думаю, являются Fraction Lost и Packet Lost, а также DLSR. В данном RTCP-пакете Fraction Lost = 0, Packet Lost = 0 и DLSR = 1 (0 milliseconds), поэтому можно с уверенностью сказать, что RTP-пакеты, отправленные до этого RTCP-пакета, дошли успешно.

Соседние файлы в предмете Мультисервисные системы и сети