Mon réseau

Mon réseau d’entreprise

24.4 Analyse de flux

Précédent   Suivant

Après avoir réglé le tuner sur une fréquence, nous utilisons l’outil dvbsnoop pour capturer et analyser le flux du dvb.

24.4.1 Liste des PIDs

Un transpondeur diffuse un TS (Transport Stream. Le TS est composé de paquets de 188 octets. Le paquet, est composé d’un Transport Stream Header de 4 octets et d’une charge utile de 184 octets. Cet en-tête contient en particulier le PID (Packet Identifier). Le TS contient plusieurs flux qui sont multiplexés. La séparation des flux se fait selon le numéro de PID.

La commande
dvbsnoop -pd 3 -s pidscan
permet de lister les PID d’un transport stream. Le résultat, lors de l’essai, contient 48 PID. Le scan a pris 45 secondes après avoir réglé le tuner sur ARTE HD(Multi 4) (et les chaînes du même transpondeur) en terrestre. Il s’agit du transpondeur R4 : M6, W9, NT1, Paris Première, Arte.

L’organisation des pid est :

  • Les numéros peuvent être utilisé en base décimale, par exemple : 17, ou en base hexadécimale, par exemple 0x11.

  • Les numéros inférieurs à 100 contiennent des informations générales, comme la liste des chaînes ou le guide des programmes.

  • Pour chaque chaîne, il y a un pid qui liste les pid contenant les flux élémentaires (vidéo, langues, sous-titres…)

24.4.2 Autres analyses

Dvbsnoop permet d’extraire et de décoder les différents flux du dvb. Il est capable de :

  • Mesurer la débit utilisé

  • Afficher des paramètres sur le signal de réception

  • Récupérer le flux en mode raw

  • Afficher et décoder un pid, comme le guide des programmes

  • Afficher la liste des pids

  • Décrypter le videotext

Il est aussi possible de récupérer le flux fournit par dvbsnoop pour le manipuler par wireshark (figure 24.3).

(image)

Fig. 24.3 : Analyse avec wireshark

Wireshark peut aussi analyser le trafic en utilisant directement l’interface usb. Il est alors plus utile d’utiliser tshark pour la capture et wireshark pour l’analyse fine sur la station de travail.

Pour obtenir la liste des PIDs, il faut utiliser la commande suivante :
dvbsnoop -s pidscan -pd num

Selon les détails désirés, num doit être adapté. Il faut environ une minute pour obtenir cette liste.

Le résultat sera :

# dvbsnoop -s pidscan -pd 1
dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/
PID found:    0 (0x0000)
PID found:   16 (0x0010)
PID found:   17 (0x0011)
PID found:   18 (0x0012)
PID found:   20 (0x0014)
PID found:   21 (0x0015)
PID found: 100 (0x0064)
PID found: 120 (0x0078)
...

En augmentant le niveau de détail :

# dvbsnoop -s pidscan -pd 3
dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/

---------------------------------------------------------
Transponder PID-Scan...
---------------------------------------------------------
PID found: 0 (0x0000)
      [SECTION: Program Association Table (PAT)]
PID found: 16 (0x0010)
     [SECTION: Network Information Table (NIT)
                   - actual network]
PID found: 17 (0x0011)
    [SECTION: Service Description Table (SDT)
                   - actual transport stream]
...

Les numéros de PID d’une chaîne sont contenus dans la même centaine. Les numéros inférieurs à 100 fournissent des informations sur le transpondeur.

24.4.3 Détails des pid

PID 0

Le PID 0 est assigné à la PAT (Program Association Table). Il liste les programmes diffusés (par exemple, les chaînes de télévision) et identifie leur Program_map_PID. La commande à utiliser est :

dvbsnoop -n 10 -pd 4 0x0

Ceci permet de déterminer combien de programmes sont diffusés par ce multiplex.

dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/

------------------------------------------------------------
SECT-Packet: 00000001   PID: 0 (0x0000), Length: 32 (0x0020)
Time received: Sat 2018-11-17 12:04:57.171
------------------------------------------------------------
0000: 00 b0 1d 00 04 cd 00 00 04 01 e0 64 04 02 e0 c8
               ...........d....
0010: 04 07 e1 2c 04 15 e1 90 04 16 e1 f4 23 3e 9e dd
              ...,........#>..

PID:   0 (0x0000)   [= assigned for: ISO 13818-1
                         Program Association Table (PAT)]

Guess table from table id...
PAT-decoding....
Table_ID: 0 (0x00) [= Program Association Table (PAT)]
section_syntax_indicator: 1 (0x01)
Transport_Stream_ID: 4 (0x0004)
Version_number: 6 (0x06)
current_next_indicator: 1 (0x01) [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)

   Program_number: 1025 (0x0401)
   Program_map_PID: 100 (0x0064)

   Program_number: 1026 (0x0402)
   Program_map_PID: 200 (0x00c8)

   Program_number: 1031 (0x0407)
   Program_map_PID: 300 (0x012c)

   Program_number: 1045 (0x0415)
   Program_map_PID: 400 (0x0190)

   Program_number: 1046 (0x0416)
   Program_map_PID: 500 (0x01f4)

==========================================================

Dans cet exemple, nous avons cinq programmes qui corresepondent à cinq chaînes de télévision. L’information peut être corrélée avec le résultat du scan précédent.

PID 0x10 : Network Information Table

Cette table contient des informations sur les réseaux de distributions et identifie les flux de transport.

PID 17

Service Description Table (SDT) - fournit des renseignements sur les services diffusés.

------------------------------------------------------------
SECT-Packet: 00000008   PID: 17 (0x0011), Length: 115 (0x0073)
Time received: Sat 2018-11-17 12:14:10.284
------------------------------------------------------------
0000: 42 f0 70 00 04 e1 00 00 20 fa ff 04 01 ff 80 0d B.p..... .......
0010: 48 0b 19 06 4d 75 6c 74 69 34 02 4d 36 04 02 ff H...Multi4.M6...
0020: 80 0d 48 0b 19 06 4d 75 6c 74 69 34 02 57 39 04 ..H...Multi4.W9.
0030: 07 ff 80 0f 48 0d 19 06 4d 75 6c 74 69 34 04 41 ....H...Multi4.A
0040: 72 74 65 04 15 ff 80 13 48 11 19 06 4d 75 6c 74 rte.....H...Mult
0050: 69 34 08 46 72 61 6e 63 65 20 35 04 16 ff 80 0f i4.France 5.....
0060: 48 0d 19 06 4d 75 6c 74 69 34 04 36 74 65 72 53 H...Multi4.6terS
0070: c0 a5 c1                                         ...

Il est possible de reconnaître les noms des chaînes diffusées sur ce multiplex. Pour chaque chaîne, il sera possible d’obtenir le numéro de service, le nom de la chaîne, le nom du multiplex, la norme de diffusion utilisée…

Service_id: 1031 (0x0407) [= --> refers to PMT program_number]
EIT_schedule_flag: 1 (0x01)
EIT_present_following_flag: 1 (0x01)
Running_status: 4 (0x04) [= running]
Free_CA_mode: 0 (0x00) [= unscrambled]

DVB-DescriptorTag: 72 (0x48) [= service_descriptor]
descriptor_length: 13 (0x0d)
service_type: 25 [= advanced codec HD digital television service]
service_provider_name_length: 6 (0x06)
service_provider_name: "Multi4" -- Charset: Latin alphabet
service_name_length: 4 (0x04)
Service_name: "Arte" -- Charset: Latin alphabet

PID 18

Ce PID diffuse la liste des prochaines émissions. Sur la TNT, le programme de toutes les chaînes est diffusé sur tous les multiplex. Les instants de début et de fin utilisent l’heure universelle. En France, il y a une heure ou deux de décalage.

24.4.4 Débits

dvbsnoop peut être utilisé pour mesurer le débit d’un PID. Selon les informations transmises, la collecte d’informations peut être plus ou moins rapide. La commande pour obtenir ces informations est :

dvbsnoop -s bandwidth -n 1000 -pd 2 num

Pour obtenir le débit d’un pid, il faut avoir un nolbre suffisant de paquets. Le débit moyen se stabilise alors.

Précédent   Suivant