Home
        FTT-SE: Desenvolvimento de um dissector para um protocolo de
         Contents
1.       Cap  tulo 4    Desenvolvimento de um  dissector como plug in    4 1 Introdu    o    O Wireshark    software open source distribu  do sob a licen  a General Pu   blic License  GPL   Neste documento n  o irei descrever os mecanismos de  compila    o e empacotamento dos dissectors do Wireshark      4 2 Pr   requisitos    Para desenvolvermos um dissector temos de obter o c  digo fonte do Wi   reshark na vers  o developer  E tamb  m recomend  vel que se obtenha tam   b  m os documentos Wireshark Developer s guide e Wireshark User s guide     Antes de podermos modificar ou adicionar dissectors ao Wireshark temos  de der capazes de compilar a aplica    o apartir do c  digo fonte Para com   pilarmos do c  digo fonte precisamos de ferramentas adicionais que podem  n  o estar inclu  das por defeito no sistema em que pretendemos desenvolver  o dissector  As instru    es de instala    o do Wireshark est  o bem descritas  no ficheiro INSTALL no direct  rio raiz do c  digo fonte do Wireshark     A maior parte do c  digo do Wireshark que nos interessa est   escrito  em ANSI     utilizado ANSI C devido    necessidade de portabilidade do  c  digo entre os m  ltiplos sistemas operativos em que Wireshark funciona   Quando estivermos a escrever em C temos de ter em especial aten    o em  usar apenas fun    es que estejam dispon  veis nos v  rios sistemas operativos     1 American National Standards Institute C    16    Desenvolvimento de um dissector como plug in    4 3 Recursos    Para po
2.   2004     4  P  Pedreiras  P  Gai  L  Almeida  and G  C  Buttazzo     Ftt ethernet  A flexible  real time communication protocol that supports dynamic qos management on  ethernet based systems     IEEE Transactions on Industrial Informatics  vol  vol   1  n   3  pp   162  Ago  2005     5  A  Orebaugh  G  Ramirez  J  Burke  and L  Pesce  Wireshark  amp  Ethereal  Network Protocol Analyzer Toolkit  Jay Beale   s Open Source Security   Syn   gress Publishing  2006     6  U  Lamping and E  Sharpe  Richard Warnicke  Wireshark User   s Guide 29805  for Wireshark 1 2 0  2008     7  U  Lamping  Wireshark Developer   s Guide 29805 for Wireshark 1 2 0  2008                 
3.  7 2 Fun    o proto reg handoff    Esta fun    o regista no Wireshark o ponto de entrada quando se detecta  uma mensagem do protocolo  fun    o dissect ftt  bem como o elemento  que despoleta o dissector   o campo type do protocolo Ethernet ser igual a  Ox8FFO     tambem registada a fun    o ftt init routine   que    execu   tada sempre que se inicia uma nova captura     7 3 Fun    o ftt init routine      7 3 Fun    o ftt init routine      Esa fun    o    chamada sempre que se inicia uma nova captura  Esta    res   pons  vel por definir os valores iniciais de vari  veis de estado e alocar o array  de estruturas que v  o armazenar as informa    es de cada EC     7 4 Fun    o dissect ftt      Esta fun    o    chamada sempre que o Wireshark detecta uma mensagem  com o ethertype igual a Ox8FFO  esta tem acesso   s estruturas tub e pinfo  ja  anteriormente descritas  e que cont  m toda a informa    o necess  ria    analise  do protocolo    A fun    o come  a por colocar informa    es na janela summary  o FTT   ETH na coluna Protocol  asseguir coloca informa    o sobre o tipo de men   sagem na coluna Info    O pr  ximo passo    colocar informa    o na janela Protocol tree  portanto   cria se ent  o a tree para o protocolo FTT  e depois    colocada na tree a  informa    o sobre o tipo de mensagem    Identificado o tipo   o processamento da mensagem    enviado para uma  fun    o especifica     7 5 Fun    o dissect TM      Esta fun    o    chamada pela dissect_FTT   sempre que esta de
4.  Aplic  vel a Trigger Message     Sintaxe Base Intervalo de Dados  ftt asleft   UINT16   decimal 0 a 65535    6 3 10  Latencia desde o inico do EC    Aplicavel a Synchronous Data Message e Assynchronous Data Message     Sintaxe Intervalo de Dados  ftt TMtime   Tempo Relativo   Tempo em segundos Nao aplicavel    6 3 11 Id da Mensagem    Aplic  vel a Synchronous Data Message e Assynchronous Data Message     Sintaxe Intervalo de Dados  ftt id   UINTI6 0x0000 a OxFFFF    6 3 12 Id de Asynchronous Data Message na Trigger Mes   sage    Aplic  vel a Trigger Message  identifica se existe o Id no EC     Sintaxe Intervalo de Dados  ftt AMsgId   UINTI6 0x0000 a OxFFFF    6 3 13 Id de Synchronous Data Message na Trigger Message    Aplic  vel a Trigger Message  identifica se existe o Id no EC     Sintaxe Intervalo de Dados  ftt SMsgId   UINTI6 0x0000 a OxFFFF    iN  o Implementado    6 3 Filtragem    6 3 14 N  mero da Trigger Message na captura    Aplic  vel a Trigger Message  este campo exprime numa ordem sequencial a  ordem da Trigger Message na captura     Intervalo de Dados       UNTIG O a 05535    6 3 15 Utiliza    o dos filtros    Para aplicarmos filtros    captura que est   a ser analizada est   dispon  vel  na barra de ferramentas  em cima  uma interface que permite que se es   crevam Display Filters  No input dos filtros existe um um mecanismo de  auto completion  Figura  6 3      File Edit View Go Capture Analyze Statistics Telephony Tools Help  Siro   i mGxos ac  vsr ts F    Q 
5.  Nimoo de mensagens Simcronas      N  mero de mensagens Ass  ncronas    MSG Index Informa    o sobre mensagem  ID Identificador da mensagem     Frag No   2   N  mero de Fragmentacio       5 4 Tipos de mensagens       FIT Sequence Mesg   Mesg   Mesg    NSM  Type Number    NAM                      Flags          5       Frag No   ID   Frag No   ID   Frag No  0 T B 31 a 83 7 95 IL 127                NSM   Number of Synchronous Messages  NAM   Number of Asynchronous Messages    Figura 5 3  Estrutura de uma Trigger Message    5 4 2 Syncronous Data Message    A Syncronous Data Message transporta informa    es   presen de ser  transmitidas em tempo real  a sua estrutura     Figura 5 4      Tamanho  bytes   F   a i ae Apo de mensagem       identificador da mensagem      FTI i i  Seq No FI FragNo   Data i   Type OEIE si up o  Ri Ri Po na Ra Peers    15 23 31 39 55       Figura 5 4  Estrutura de uma Syncronous Data Message ou Asyncronous  Data Message    5 4 3  Asyncronous Data Message    A Asyncronous Data Message transporta informa    es    ass  ncronas     po   dendo possuir ou n  o requisitos de pontualidade  a sua estrutura    igual     Syncronous Data Message Figura  5 4      5 4 4 Asynchronous Status message    Este tipo de mensagem transporta informa    es de estado e configura    o do  sistema e dos dispositivos na rede  a sua estrutura n  o    relevante no   mbito  deste projecto     5 4 5 Idle    Sem relev  ncia no   mbito do projecto     25    26    5 4 6 Plug N Play    Sem
6.  Trigger Message TM  pelo  Master  que sincroniza a rede e identifica todas as mensagens  s  ncronas ou  ass  ncronas  a serem processadas naquele EC  As mensagens s  ncronas s  o  de alta prioridade e s  o as primeiras a serem enviadas no EC em instantes  temporais bem defendidos calculados apartir da informa    o na TM  as men   sagens ass  ncronas s  o enviadas no restante tempo do EC  podendo ou n  o  possuir requisitos de tempo real        envio de uma mensagem para todos os n  s na rede    23    24    O protocolo FTT SE    5 4 Tipos de mensagens    O protocolo FTT SE utiliza para comunicar entre os diferentes n  s diferen   tes tipos de mensagens que assentam no campo de dados  Data   do protocolo  Ethernet  com o Type Ox8ffO  Figura 5 2       FTT  Type   Destination Source x    SFD   Start of Frame Delimiter  FCS   Frame Check Sequence    Figura 5 2  Estrutura de um pacote Ethernet    Na estrutura dos pacotes FTT existe um campo  de dois bytes que iden   tifica o tipo de mensagem e est   descrito como     0x0000 Trigger Message   0x0001 Syncronous Data Message  0x0002 Asynchronous Data Message  0x0003 Asynchronous Status Message  0x0004 Idle    0x0005 Plug n Play    5 4 1 Trigger Message    A Trigger Message    enviada pelo Master para todos os n  s  broadcast  e pos   sui informa    es sobre todas as mensagens a serem enviadas pelos diferentes  n  s durante o corrente EC  a sua estrutura     Figura 5 3      Tamanho  bytes   2   Seo     Numero de sequ  ncia     NM  2  
7.  alguns dissectors para descodificar a pr  xima parte do  tubuff  caso existam     chamado o pr  ximo dissector      6  O dissector descodifica a sua parte do protocolo e passa o payload res   tante para o tubuff e    chamada de novo a fun    o dissector try port       7  Este processo de descodificar cada camada do pacote continua at   n  o  existir mais dados ou n  o existir nenhum dissector registado para os  dados restantes  Uma vez isto a pr  xima frame    lida     3 4 Programa    o    No contexto do projecto de investiga    o    apropriado desenvolver um pro   tocol dissector como plug in    O protocol dissector    normalmente escrito em ANSI C de modo a ser o  mais port  vel poss  vel dado a que o Wireshark corre em m  ltiplas platafor   mas    Um dissector pode ser desenvolvido para integrar o c  digo fonte  ou  pode ser implementado como plug in  a vantagem de um plug in    que n  o     necess  rio a recompila    o completa do Wireshark durante o desenvolvimento  do c  digo     SO tobuff    um buffer usado para passar o payload restante a ser descodificado para  algum dissector adicional  este buffer deve ser actualizado por cada dissector    13    14    Wireshark    epan_dissect_run      dissect_packet      Zz    EE    Loj   dissect frame         tvbuff  1    dissect try port      Ne      tvbuff   tvbuff       X      dissect ip      dissectors    dissect tcp    dissect arp      dissect ftt      dissect_         Figura 3 3  processo de packet dissection    WIRESHARK 
8.  de mensage    Cap  tulo 1    Introdu    o    Este trabalho surgiu no   mbito do projecto Bolsa de Integra    o na In   vestiga    o   2009 financiado pela FCT  e tem por objectivo o desenvol   vimento de um protocol dissector em Wireshark para a fam  lia de protocolos  FTT SH  sobre Ethernet     1 1 Motiva    o    Existe hoje em dia uma classe de aplica    es de tempo real que incluem activi   dades cr  ticas que imp  em requisitos de pontualidade e previsibilidade  Estas  aplica    es  normalmente implementadas em arquitecturas distribu  das leva   ram ao desenvolvimento de protocolos de comunica    o espec  ficos  denomi   nados protocolos de tempo real  que permitem oferecer garantias determi   n  sticas de previsibilidade e lat  ncia    T  m se observado um crescimento no desenvolvimento destes protocolos  assentes na plataforma Ethernet que se prendem essencialmente por elevada  capacidade  disponibilidade de recursos t  cnicos e humanos  e baixo custo    Existem j   no mercado varias ferramentas de capazes de observar o tr     fego que circula numa rede do tipo referido  vulgarmente conhecidas por  sniffers  mas possuem apenas capacidade de descodificar os protocolos de  comunica    es mais gen  ricos  por este motivo  n  o    comum encontrar fer   ramentas deste tipo para redes de tempo real    Da   que seja essencial desenvolver uma ferramenta capaz de analisar o  tr  fego destas redes para garantir o bom funcionamento destas    O objectivo deste trabalho est   defin
9.  developer  Pressupoem as substi   tui    es     PROTONAME   Nome do Protocolo  PROTOSHORTNAME   Um nome abreviado para o protocolo    PROTOABBREV   Um nome para usar nas express  es dos filtros  deve apenas  conter letras min  sculas  d  gitos e hifens     4 5 1 Pre  mbulo        ifdef HAVE CONFIG H    include  config h    endif     include  lt stdio h gt     17    18    H    DO DO JI DO DI Wb          Desenvolvimento de um dissector como plug in    include  lt stdlib h gt   include  lt string h gt     include   glib  h gt      include  lt epan packet   h gt    include  lt epan prefs h gt        Nesta sec    o defenimos os ficheiros que precisamos de incluir para o  programa  estes s  o precisos para as fun    es globais que ir  o ser usadas no  dissector   Quando    preciso usar fun    es mais especificas temos de adicionar  a sua fonte neste local     4 5 2 Registo de par  metros e declara    es de fun    es       Forward declaration we need below  if using  proto reg handoff     as a prefs callback  ef   void proto_reg_handoff PROTOABBREV  void         Initialize the protocol and registered fields x   static int proto PROTOABBREV      1   static int hf PROTOABBREV FIELDABBREV      1     n       Global sample preference   controls       static gboolean gPREF HEX   FALSE       Global sample port pref x    static guint gPORT PREF   1234     display of numbers        Initialize the subtree pointers x   static gint ett PROTOABBREV      1        Nesta sec    o declaramos variav
10.  findTM     ra sa 0 0 00    00 ee 41  8 O sistema TAP 42          aid A ean a RSA oe eae eae 42  Da Be he ee es ae a 42  8 2 1 Descri    o das informa    es fornecidas pela ferramental 42  8 2 2 Lat  ncianos EOS                      42                        8 2 3 Estat  sticas Sum  riaS                    42  8 3 Utiliza    o da ferramenta                       43  9 Resultados experimentai 44       91 Testes preliminares                          44  9 1 1 Desenvolvimento                       44    9 1 2 Resultados                          45            9 2 Testes ao dissector FTT SE           0 00 00 0004 45  10 Conclus  es e Trabalho Futuro 47       101 Conclus  es      ee 47               10 2 Trabalho Futuro                       000084 47  11 Manual de Instala    o 48  11 1 Ambiente de desenvolvimento                    48    E    ara 48  ee 49      49  49  Re 49  q 49  ss Sats  dp es 50  a sh he de 50   y       o 50                                11 3 8 Comandos para instalar o dissector            50  11 3 9 Instala    o dos filtros de coreg                51  11 4 Instala    o protocol tap fttstal        0    sss  51    Bibliografia 52    Lista de Figuras       6 1 Expert Info               CR ae oe a bas Bee ee 30             qy     30         Tr 33                 34  E              35         6 6 Exemplo de filtragem por tipo de mensageml             36  6 7  Exemplo de filtragem por numero de mensagens Assincronas    6 8 Exemplo de filtragem por tempo e por tipo
11.  ligada atrav  s de um ethernet hub o Wireshark  pode configurar a placa de rede  NIC  em promiscuous mode e obter n  o s    pacotes endere  ados para o computador em que o programa est   instalado   mas todos os pacotes a viajar na rede  Posteriormente podemos analisar a  informa    o descodificada pelo Wireshark atrav  s das suas funcionalidades     Figura B I      3 2 1 GUI Graphical User Interface     O GUI do Wireshark    configur  vel e f  cil de usar  a informa    o sobre os  pacotes    mostrada em tr  s   reas da janela  figura B 2      summary  no topo  mostra  o n  mero do pacote  o tempo  o endere  o de  origem  o endere  o de destino e o nome e informa    o sobre a camada  mais alta do protocolo     3 2 Funcionamento    Computador com Wireshark    Figura 3 1  poss  vel topologia de liga    o do Wireshark numa rede    File Edit View Go Capture Analyze Statistics Telephony Tools Help                                                    Bsq ocoxca meort es BB Geert goma a   W  Fitter    ly l     Expression         4 Clear        Apply       No    Time   source Destination   Protocol   Info E                 gt  Frame 1  72 bytes on wire  72 bytes captured     Linux cooked capture  Packet type  Sent by us  4   Link layer address type  512  Link layer address length  0 protocol tree  Source   lt MISSING gt   Protocol  IP  0x0800      Internet Protocol  Src  93 102 200 45  93 102 200 45   Dst  62 169 67 172  62 169 67 172    gt  User Datagram Protocol  Src Port  45795  45
12.  o mostra o m  nimo  o m  ximo  a m  dia e o desvio padr  o das  lat  ncias entre mensagens com o mesmo Jd nos diferentes ECs     8 3 Utiliza    o da ferramenta    Para a utilizarmos esta ferramenta temos de ter um inst  ncia de terminal  aberta e executar o seguinte comando    tshark  op    es de captura   z fttstat Ox  Id     no campo Id colocamos o Id em hexadecimal  que queremos que seja  analisado nas Selected Id Stats ou  1 caso n  o seja necess  rio o processa   mento destas informa    es     43    Cap  tulo 9    Resultados experimentais    9 1 Testes preliminares    9 1 1 Desenvolvimento    Durante o estudo do desenvolvimento do Wireshark foi implementado um  dissector para testes para um protocolo imagin  rio     Caesar Protocol    com  a estrutura     Tipo   Tipo de mensagem do protocolo  sem sentido funcional apenas para  efeito de testes     Flags   Flags indicadoras de caracter  sticas do protocolo  apenas o bit me   nos significativo tem informa    o significativa     DO   Reply             Sequence Number   Numero de sequ  ncia das mensagens  as mensagens    Request e Reply correspondentes t  m de ter o mesmo sequence number     Este protocolo    implementado directamente sobre Ethernet com o type  0x1001   As funcionalidades deste dissector s  o     e Identifica    o do tipo de mensagem   e Identifica    o e processamento das flags     e Relacionamento entre Requests e Replys em tempo e numero de frame     9 2 Testes ao dissector FTT SE    e Detec    o de erro
13.  para resolver este o problema  est   defeniu se o mecanismo CSMA CD  Carrier Sense Multiple Access with  Colision Detection    2 3 2 Switched Ethernet   full duplex    Nesta arquitectura os n  s est  o ligados a um dispositivo central  switching  hub  efectuando canais independentes  segmentos de rede  para cada dispo   sitivo    Esta arquitectura elimina ent  o o problema das colis  es  visto que os  n  s da rede n  o competem pela mesmo canal  e permite a opera    o em full   duplex  i e  cada dispositivo pode enviar e receber dadosn em simult  neo     Switched Ethernet    Shared Ethernet                                                                                        Figura 2 2  Shared vs Switched Ethernet    Cap  tulo 3    Wireshark    31 O que   o Wireshark    O Wireshark    um programa de andlise de redes que se insere numa catego   ria de programas chamados sniffers  Estes programas caracterizam se por  monitorizar o tr  fego que viaja numa rede    A an  lise da rede pelo Wireshark caracteriza se pela leitura e desco   difica    o de pacotes e a sua apresenta    o numa forma leg  vel de forma a  determinar o que est   a acontecer na rede  O grande espectro de protoco   los que consegue analisar e o facto de ser um programa open source que     activamente suportado  faz deste um dos programas mais utilizados para a  an  lise de redes     3 2 Funcionamento    O Wireshark obt  m os pacotes a analisar atrav  s de um processo designado  por capture  Se a rede estiver
14.  podemos colocar no filtro apenas ftt error Figura  6 4      Podemos utilizar os operadores seguintes em conjunto com os campos  previamente descritos  de acordo com o formato e base da vari  vel associada     33    Funcionalidades do dissector FTT SE    Hiei Edt View o Capi ire Analyze cat stice i Telephony Jools Help    JAU Baxe reer  t FGA accah  855 O                                  Ed Filter   ftterror M    Expression    IES Clear      Apply        No  P                       Time   Source   ination   Protocol   Info    FIT                Frame 1  1022 bytes on wire  1022 bytes captured    gt  Ethernet II  Src  3com 35 ff 6a  00 50 04 35 ff 6a   Dst  3Com 74 la fc  00 04 75 74 la fc            0000 00 04 75 74 la fc 00 50 04 35 ff 6a 8f fO 00 01  0010 00 00 00 00 00 01 00 01 02 03 04 05 06 07 08 09  0020 Oa Ob Oc Od Ge Of 10 11 12 13 14 15 16 17 18 19 a keasvoso  0030 la lb lc ld le 1f 20 21 22 23 24 25 26 27 28 29 a     asas      0040 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39    01 23456789  0050 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49    lt   gt  GA BCDEFGHI  0060 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 JKLMNOPQ RSTUVWXY  0070 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 Z N        a bcdefghi  0080 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 jklmnopq rstuvwxy       File   homejcesarArea de Trabalh      Packets  8512 Displayed  9 Marked  O Time  00 00 00 000   Profile  Default 4                         Figura 6 4  Filtro de exist  ncia de e
15.  relev  ncia no   mbito do projecto     O protocolo FTT SE    Cap  tulo 6    Funcionalidades do dissector  FTT SE    6 1 Identifica    o e Processamento das mensagens    O dissector est   preparado para identificar todos os tipos de mensagens  pertencentes ao protocolo FTT SE  no entanto s      capaz de processar e  interrelacionar as mensagens dos tipos  Trigger Message  Synchronous Data  Message e Asyncronous Data Message     6 1 1 Summary    Na janela summary s  o mostradas as informa    es que sumarizam o pacote  analisado  Em primeiro lugar    identificado o protocolo na coluna  Protocol     na coluna Info    mostrado o tipo de mensagem e em seguida informa    es  especificas de cada tipo de mensagem     Trigger Message    e Sync Msgs   Identifica    o do n  mero de Synchronous Data Messages  a serem enviadas no presente EC     e Async Msgs   Identifica    o do n  mero de Asynchronous Data Mes   sages a serem enviadas no presente EC     Synchronous Data Message    e Id   Identifica    o do Td     e Frag no   Identifica    o do n  mero de Fragmenta    o     28 Funcionalidades do dissector FTT SE    Asynchronous Data Message    e Id   Identifica    o do Id     e Frag no   Identifica    o do n  mero de Fragmenta    o     6 1 2 Informa    es na Protocol Tree    Na Protocol Tree s  o mostradas informa    es detalhadas sobre a mensagem a  ser analisada e sobre a rela    o entre mensagens  As informa    es s  o asseguir  descritas por tipo de mensagem     Trigger Message  e Ide
16.  se existir uma Reply sem ter sido recebido a Request  correspondente     Os testes ao funcionamento deste dissector foram feitos manualmente  com o programa PackETHE    uma ferramenta capaz de gerar pacotes  Ethernet e envia las em qualquer interface de rede dispon  vel no compu   tador  os testes foram feitos maioritariamente atrav  s da interface loopback     9 1 2 Resultados    Este dissector serviu para aprender a trabalhar com a API do Wireshark e a  ter no    es sobre como indexar estruturas no programa  Foi bastante impor   tante para compreender como se deve e e por onde come  ar a desenvolver  um dissector     Os resultados dos testes foram satisfat  rios     9 2 Testes ao dissector FTT SE    Os testes a este dissector foram feitos inicialmente com o recurso ao pro   grama PackETH  tendo ainda sido escrito por mim um programa simples  que gerava em texto uma Trigger Message com os seguintes par  metros  configur  veis     e Sequence Number    e Flags    e Numero de Synchronous Data Messages   e Numero de Asynchronous Data Messages     sendo o resto dos par  metros gerados aleatoriamente    Durante o desenvolvimento foram sido implementadas funcionalidades  ao dissector e sendo testadas as poss  veis situa    es de erro    Foram testadas as situa    es     Sequence Number   Foram testadas situa    es de erro de Trigger Messa   ges consecutivas com Sequence Number n  o sequenciais     Numero de Mensagens   Foram testadas situa    es de erros de Trigger  Messages com v
17.  ser enviada  i e  identifica o  protocolo que est   presente na camada acima na mensagem  ou noutro  caso pode identificar o tamanho do campo DATA     No campo DATA encontramos os dados em si que possuem a informa       o a ser transmitida     O campo reg     usado para dete    o de erros na recep    o  transmiss  o  da frame      Frame Check Sequency    2 3 Topologias de Liga    o    2 3 Topologias de Liga    o  2 3 1 Shared Ehternet   half duplex    A arquitectura original do Ethernet    partilhada e half duplez  i e  os dis   positivos est  o ligados ao mesmo canal f  sico  podendo haver apenas hub s  repetidores no caminho  e    half duplex no sentido em que cada dispositivo  pode estar apenas a enviar ou a receber num determinado momento  nunca  em simult  neo    Cada dispositivo    independente dos restantes  n  o existe um dispositivo  central a controlar os outros     ent  o dada a mesma oportunidade para  ocupar o canal a cada dispositivo    O Ethernet usa um mecanismo broacast delivery no sentido em que todas  as mensagens s  o ouvidas por todos os dispositivos ligados    rede  existe  depois um circuito de address matching do lado do receptor que compara o  endere  o de destino de cada frame com o seu pr  prio para que este apenas  processe a informa    o para ele endere  ada    Do lado da transmiss  o podemos notar o problema que se d   quando  mais que um dispositivo querem enviar informa    o ao mesmo tempo  quando  isto acontece dizemos que temos uma colis  o 
18. 795   Dst Port  domain  53    gt  Domain Name System  query                 TINO 04 02 00 00 00 0606 00 60  0016 45 00 06 38 fb ad 40 60 40 11 97 le 5d 66 c82d E  8      P  0820 3e a9 43 ac b2 e3 68 35 60 24 15 96 6a 62 6100  gt c   data VIEW   0030 00 61 00 60 60 00 60 60 06 65 78 61 69 6c 65 03     0040 6f 72 67 00 00 61 00 01 org      N             O Linux cooked mode capture  sll   1    Packets  62 Displayed  62 Marked  0 Time  00 00 00 000 __ Profile  Default       Figura 3 2  GUI do Wireshark    protocol tree  no meio  mostra detalhes sobre cada camada contida no  pacote capturado  desde a camada mais alta  ex  HTML  at   a mais  baixa  ex  Ethernet       12    Wireshark    data view  em baixo  mostra os dados capturados em formato raw em  HEX e ASCII     3 2 2 Filtros    O Wireshark tem a capacidade de usar filtros de captura capture filters  e  filtros de apresenta    o display filters   Os display filters possuem uma sin   taxe pr  pria que permite fazerem se fun    es para seguir conversa    es entre  computadores p ex   folow TCP stream   que    j   uma fun    o built in mas     baseada na sintaxe dos filtros   a sintaxe destes possui opera    es l  gicas e  identifica    o dos v  rios campos dos protocolos  ex  source address  destina   tion address  time  segmentation  flags  crc     Embora tenham fun    es em comum os capture filters possuem uma sin   taxe menos poderosa que os display filters     3 2 3 Estat  stica    O Wireshark possui algumas ferramentas esta
19. FTT SE  Desenvolvimento de um dissector para  um protocolo de tempo real    C  sar Gomes   Orientador  Paulo Pedreiras   Universidade de Aveiro Universidade de Aveiro    30 de Outubro de 2010    IcesargomesQua  pt   pbrpQua pt    Conte  do    1 Introdu    o 6                   6    2 O sistema Ethernet  21 Hist  ria                           soso  7            2 2 Os quatro elementos basicog                     7  221 Ethernet Framd    1    ee ee o  8        2 3 Topologias de Liga    o                         9  2 3 1 Shared Ehternet   half dupled             2   9                  2 3 2 Switched Ethernet   full dupled               9  3  Wireshark 10  sl Oque  o Wireshark     0 0 0 0    0000 ee 10    ft El EEEE BE 10  onan cesses 10  tee Sk ogi enn iets Re E Sr 12  hate apiece asd oa A a ee 12  a a a oR Se 8 Be 12                    3 3 1  Funcionamentg            0  00 0008  ee 12  TTT ee ee eee E 13  4 Desenvolvimento de um dissector como pluq i 15                    Er TUN 15  TTT a 15  dai USEI Co a RE Gordo ao Ra DAR    do 16  4 3 1 Recursos na Internew                    16     y     yF       TTT                      17    4 5 3  Fun    o proto register PROTOABBREVI                 7  Descri    o Funcional do c  digo do dissector para FTT S    CONTE  DO                    4 5 4 Fun    o proto reg handoff PROTOABBRE  4 5 5 Fun    o dissect PROTOABBREV      O protocolo FTT S  oe ek G4  pa konka oh DS ku  Seo to E KA trees o do ne oe Aro Ge dd  5 3 Funcionamento do protoc
20. aa   O   NUESo o  Y     Expression      a Clear      Apply                                    Interface List DB Open Website  Live list of the capture interfaces  counts incoming packets  Open a previously captured file Visit the project s website  Start capture on interface  Open Recent  o User s Guide     home cesar Area de Trabalho capturas cap rx view runtime  22 MB  The User s Guide  local version  if installed    home cesar Area de Trabalho capturas test  39 KB      i Security   home cesar Area de Trabalho capturas cap rx view neg runtime  9979 KB         SERA Work with Wireshark as securely as possible   home cesar Area de Trabalho nspi pcap  not found    home cesar Area de Trabalho rtp example raw  not found     Capture Options  ial p P    Start a capture with detailed options     home cesar Area de Trabalho 01 test pcap  not found   Co CaptureHelp   fhome cesar Area de Trabalho 003transf cap  not found    nome cesar Area de Trabalho 01 pcap  not found    home cesar Area de Trabalho 0a1 pcap  not found   Mome cesar olas  not found     How to Capture    Step by step to a successful capture setup    Network Media   Sample Captures    ESKI aa ne tae rome SN  Coa G EAE MIER A rich assortment of example capture files on the wiki                                                 Figura 6 3  Interface de input de filtros    Podemos verificar a exist  ncia de um campo do protocolo na frame ao  colocarmos apenas o campo no filtro  p e se quisermos filtrar as mensagens  com erro 
21. ados por v  rias fun    es     Cap  tulo 5    O protocolo FTT SE    5 1 Protocolos de tempo real    Nas comunica    es em redes de controlo e monitoriza    o de processos indus   triais  existem certos requisitos que s  o diferentes das redes de comunica    o  de uso comum em casa ou no escrit  rio  Por exemplo  a predictabilidade     favorecida em detrimento da taxa de transmiss  o m  dia  e existem fre   quentemente rela    es de preced  ncia temporal entre mensagens  Qualquer  incumprimento destes requisitos pode ter impacto negativo significativo no  desempenho do controlo de um processo industrial    Para satisfazer estes requisitos  t  m vindo a ser desenvolvidas redes de  comunica    o especificas que se adaptam   s comunica    es em ambiente in   dustrial  em que    preciso garantir efici  ncia temporal na monitoriza    o de  sensores e no controlo de automatismos    Existem j   varias solu    es para as comunica    es em    tempo real     no  entanto    interessante desenvolver uma solu    o que consiga garantir este  tipo de comunica    es assentando se na plataforma Ethernet  devido    sua  f  cil implementa    o  alta disponibilidade de recursos t  cnicos e humanos e  baixo custo  Visto que a Ethernet    uma arquitectura de rede uso geral  n  o  est   preparada para este tipo de comunica    es    O protocolo FTT SE prop  e ent  o fazer com que uma rede em Ethernet  satisfa  a os requisitos de uma rede de    tempo real        5 111 Requisitos    Os sistemas de comu
22. ariados n  meros de mensagens S  ncronas e Ass  ncronas  em que algumas todas ou nenhumas foram respondidas     Mensagens n  o Inclu  das   Foram testadas situa    es de envio de men   sagens antes de existir alguma Trigger Message  e de mensagens Sin   cronas e Ass  ncronas n  o anunciadas        Programa dispon  vel em http   packeth sourceforge net  sob a licen  a GNU GPL    45    46    Resultados experimentais    Para alem destes testes foram testadas situa    es sem erros  O resultados  destes testes estiveram de acordo com as funcionalidades propostas para o  dissector     Cap  tulo 10    Conclus  es e Trabalho  Futuro    10 1 Conclus  es    Visto que os protocolos de tempo real como o FTT SE s  o usados em am   bientes industriais  no controlo de sistemas de produ    o  estes t  m de ser  muito fiaveis  pois podem por em causa toda uma linha de produ    o  Este  dissector vem fornecer uma ferramenta de an  lise e debbuging das redes im   plementadas sobre FTT SE  sendo particularmente   til para detectar falhas  do sistema     10 2 Trabalho Futuro    Sendo sempre poss  vel melhorar  como temos observado na evolu    o da tec   nologia que nos rodeia  este trabalho tem muita margem por onde possa ser  melhorado    Em primeiro lugar    poss  vel conferir mais robustez ao c  digo  e adicionar  mais informa    es detalhadas sobre os pacotes p e  a interpreta    o das flags   e sobre a interrela    o entre eles    N  o tendo sido adicionado ao dissector funcionalidades para 
23. de Dados       ftt type   UINTI6   Value String   0    Trigger Message   Synchronous Data Message    Asynchronous Data Message    Asynchronous Signaling Message    Idle Message    Plug n Play Message     6 3 2 Sequence Number    Base Intervalo de Dados  UINT8   decimal 0 a 255    6 3 3 Flags    Aplic  vel a Trigger Message  Synchronous Data Message e Asynchronous  Data Message     Sintaxe Intervalo de Dados  ftt flag s   UINT8 0x00 a Oxff    6 3 4 N  mero de Mensagens Sincronas    Aplicavel a Trigger Message     Sintaxe Base Intervalo de Dados    ftt nsm   UINT16 0 a 65535    6 3 5 Numero de Mensagens Assincronas    Aplic  vel a Trigger Message   Sintaxe Base Intervalo de Dados  ftt nam   UINTI6 0 a 65535    6 3 6 Frame correspondente    Aplic  vel a Synchronous Data Message e Asynchronous Data Message     Sintaxe Base Intervalo de Dados  rt frane   FRAME NUM  decimal   Ga      6 3 7 Erro    Aplic  vel a Trigger Message  Synchronous Data Message e Asynchronous  Data Message     32    Funcionalidades do dissector FTT SE    Intervalo de Dados       ftt error   UINTI6   Value String   0    Comprimento M  nimo    Mensagem n  o inclu  da na TM    Mensagem duplicada L   Mensagens s  ncronas por enviar    Mensagens assincronias por enviar    Erro no numero de sequ  ncia     6 3 8 Numero de Mensagens Sincronas por enviar       Aplic  vel a Trigger Message     Sintaxe Base Intervalo de Dados  ftt sleft   UINTI6   decimal O a 65535    6 3 9 Numero de Mensagens Assincronas por enviar   
24. dermos desenvolver o dissector temos de conhecer a API do Wi   reshark para tal existem v  rios locais onde podemos aceder para obter essa  informa    o  Embora existam mais recursos apenas referenciarei aqueles que  achar relevantes     4 3 1 Recursos na Internet    Existem na Internet v  rios recursos com muita informa    o dos quais destaco  o Wiki do Wireshark   que contem muita informa    o  incluindo recursos de  utilizadores e de programadores  informa    o sobre protocolos e notas dos  programadores  e tamb  m a Wireshark dev mailing list     4 3 2 Recursos no c  digo fonte    Durante o desenvolvimento de um dissector    muitas vezes necess  rio recor   rer ao c  digo fonte do Wireshark para saber como utilizar as fun    es por ele  suportadas  S  o bastante importantes os seguintes direct  rios e ficheiros     Direct  rio doc    No direct  rio doc est  o documentos de texto que nos assistem durante o  processo de desenvolvimento de um dissector      README  developer   O documento principal que nos d   suporte no desen   volvimento de um novo dissector   Nele est  o inclu  das  metodologias  a seguir  informa    es muito importantes sobre o design de um dis   sector  um template com as principais fun    es de um dissector e sua  descri    o  e potenciais problemas que poderam surgir aquando do de   senvolvimento de um dissector     README  malloc   Nele est   descrita superficialmente a API de gest  o de  mem  ria do Wireshark      README binarytrees   Informa    o s
25. dever  o ser enviadas no currente EC       feito ent  o algumas verifica    es para detectar erros  e depois s  o colo   cadas na Protocol Tree as informa    es j   descritas para Trigger Messages     7 6 Fun    o dissect SDM      Esta fun    o    chamada pela dissect_FTT   sempre que esta detecta uma  mensagem do tipo Synchronous Data Message e tem acesso   s mesmas es   truturas que a fun    o dissect FTT    mais o acesso    tree do protocolo       feito ent  o a identifica    o dos conte  dos presentes na mensagem  e  colocado na coluna Info da janela Summary o Id e o Fragmentation Number    De seguida    verificado atrav  s do tempo da mensagem   a que EC esta  pertence  para depois ser verificada a sua exist  ncia na   rvore bin  ria cor   respondente    A seguir s  o processadas e mostradas na protocol tree as informa    es j    descritas para este tipo de pacote     7 7 Fun    o dissect ADM    Fun    o funcionalmente equivalente    dissect_SDM para Asynchronous Data  Messages     7 8 Fun    o checkMem      Esta fun    o    chamada na fun    o dissect_TM   pois    nela que se guardam  informa    es na mem  ria  A fun    o verifica se a mem  ria alocada j   est    toda ocupada e caso se verifique  esta realocar   os ponteiros de modo a que  seja poss  vel guardar mais informa    es na mem  ria     7 9 Fun    o findTM      7 9 Fun    o findTM      Esta    uma fun    o auxiliar que    respons  vel por encontrar o   ndice ade   quado do array de estruturas associadas   s Tr
26. do o c  digo fonte  necess  rio     11 3 Instala    o do dissector FTT ETH como plug in 49    11 3 Instala    o do dissector FTT ETH como plug   in    Os direct  rios referidos nesta sec    o tem como direct  rio base do Wireshark insta   lado apartir do c  digo fonte     11 3 1 O direct  rio do plug in e os seus ficheiros    Deve ser criada uma pasta plugins ftt onde devem ser colocados os ficheiros   AUTHORS  COPY ING  Changelog  Makefile am  Makefile common  Makefile nmake   moduleinfo h  moduleinfo nmake  packet ftt c  plugin rc in ftt global h   packet ftt h  que devem ser disponibilizados em anexo com este documento     11 3 2 Mudan  as em ficheiros j   existentes do Wireshark  Para finalizar se a instala    o do plug in tem se de alterar os seguintes ficheiro    e configure in   e epan Makefile am   e Makefile am   e Makefile nmake   e packaging nsis Makefile nmake   e packaging nsis wireshark nsi   e plugins Makefile am   e plugins Makefile nmake    11 3 3 Mudan  as no plugins Makefile am       necess  rio mudar a directiva SUBDIRS  por ordem alfab  tica  de modo a reflectir  a adi    o do plugin     SUBDIRS      CUSTOM SUBDIRS        gryphon       irda      Q CURE VIV l    Pie Y       O direct  rio deve ser inserido por ordem alfab  tica     11 3 4 Mudan  as no plugins Makefile nmake  Deve se adicionar  por ordem alfab  tica  em process plugins o seguinte      el E    MAKE      MAKEFLAGS     f Makefile  nmake   PLUGIN TARGET     cd       A seguir    adicionamos em in
27. eis essenciais ao registo do dissector no  Wireshark   bem como o registo dos campos analisados com informa    o  relevante a passar para o Wireshark     Podem ainda declararar se nesta sec    o  vari  veis globais  estruturas e  constantes necess  rias ao funcionamento do dissector      4 5 3 Fun    o proto register PROTOABBREV       hn CURE VIV l    o N       void  proto register PROTOABBREV  void   i  module_t  PROTOABBREV module     x Setup list of header fields See Section 1 6 1 for  detailsx   static hf register info hf             amp hf PROTOABBREV FIELDABBREV     10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25    26  27  28  29    30  31  32  33  34  35    36  37    oR WN rH       4 5 Estrutura de um dissector 19       FIELDNAME    PROTOABBREV   FIELDABBREV     FIELDTYPE  FIELDBASE  FIELDCONVERT  BITMASK    FIELDDESCR    HFILL          I      x Setup protocol subtree array     static gint xett          amp ett PROTOABBREV   J        Register the protocol name and description     proto PROTOABBREV   proto register protocol   PROTONAME     PROTOSHORTNAME     PROTOABBREV         PROTOABBREV_module   prefs_register_ protocol    proto_PROTOABBREYV    proto reg handoff PROTOABBREV           Register a sample preference     prefs register bool preference  PROTOABBREV module     show hex     Display numbers in Hex       Enable to display numerical values in hexadecimal      amp ePREF HEX     x Register a sample port preference R      prefs register uint prefer
28. ence  PROTOABBREV module   tcp   port    PROTOABBREV TCP Port      PROTOABBREV TCP port if other than the default    10   amp gPORT PREF          Esta fun    o    usada para registar o dissector no Wireshark   os scripts  make reg dotc e make reg py passam por todos os dissectors e constroem a  lista de modo a que sejam registados no motor do Wireshark     Na linha 7 temos a declara    o do hf array  este array    importante para  tirar partido das capacidade dos display filter  cada elemento do array ser    um item que poder   ser filtrado no Wireshark  ex  ip src 0 0 0 255     Podem se definir diferentes itens em diferentes tipo de conte  dos p e     Ethernet addresses  n  meros em hexadecimal  strings etc     4 5 4 Fun    o proto reg handoff PROTOABBREV       void  proto reg handoff PROTOABBREV  void        dissector handle t PROTOABBREV  handle      20    11  12    n       FOU AND    j     13  14    15    16    17  18  19  20  21          Desenvolvimento de um dissector como plug in     x Use new create dissector handle    to indicate that  dissect PROTOABBREV       returns the number of bytes it dissected  or O if it  thinks the packet    does not belong to PROTONAME           PROTOABBREV handle   new create dissector handle   dissect PROTOABBREV   proto PROTOABBREV     dissector add   PARENT SUBFIELD   ID VALUE   PROTOABBREV  handle           Esta fun    o    usada para instruir o Wireshark de quando deve chamar  o dissector  A fun    o new create dissector handle   na 
29. ido ent  o como o desenvolvimento  de um plug in para o Wireshark para este tipo de redes      Fundac  o para a Ci  ncia e Tecnologia    Flexible Time Triggered    Cap  tulo 2    O sistema Ethernet    2 1 Hist  ria    O sistema Ethernet foi inventado em 1973 por Bob Metcalfe na Palo Alto  Research Center na California  Aquela data estava descrito como um sis   tema de rede para ligar esta    es de trabalho e impressoras a laser de alta  velocidade    Desde ent  o o sistema Ethernet evoluiu bastante na sua velocidade de  transmiss  o  2 94 Mbps at   10 Gbps  e tamb  m no seu meio f  sico  desde cabo  coaxial passando por cabos twisted pair e mais recentemente fibra optica    O sistema Ethernet     uma tecnologia que define uma norma de comu   nica    o em redes locais  local area network  LAN   nela est  o defenidos  o  suporte f  sico de transmiss  o  a maneira como s  o transmitidos os impulsos  digitais  o hardware suportado etc   todas as especifica    es necess  rias para  se conseguir montar uma rede   rea local entre quaisquer computadores    Hoje em dia o Ethernet    largamente utilizado para montar LA N s sendo  das tecnologias mais utilizadas em todo o mundo  os factores que o tornaram  popular foram o baixo custo  a escabilidade  a fiabilidade  e o largo acesso  a ferramentas de gest  o  2      2 2 Os quatro elementos b  sicos    Uma LAN Ethernet    feita de hardware e software que em conjunto entregam  dados digitais entre computadores  Para conseguir isto quatro e
30. igger Messages  atrav  s do  tempo da mensagem que lhe    passada     41    Cap  tulo 8    O sistema TAP    8 1 O que       O Wireshark tem em si implementado o sistema TAP que permite que sejam  executadas notifica    es de informa    o  geradas a partir de eventos de alguns  pacotes de alguns protocolos       implementado no dissector um mecanismo que passa informa    es para  a interface TAP que    depois recolhida por um tap listener     8 2 O tap fttstat    Com base no mecanismo TAP foi desenvolvida uma ferramenta que produz  informa    es estat  sticas  sobre o protocolo FTT  A utiliza    o desta ferra   menta est   apenas disponivel no tshark     8 2 1 Descri    o das informa    es fornecidas pela ferramenta  Quando a ferramenta    utilizada  esta produz informa    es importantes que  s  o asseguir descritas     8 2 2  Lat  ncia nos ECs    Por cada EC que    iniciado e indexado por uma Trigger Message    impressa  uma linha com a informa    o do n  mero da Trigger Message na captura e a  lat  ncia desta ao primeiro pacote recebido do correspondente EC     8 2 3 Estat  sticas Sum  rias    Latency Stats    Esta sec    o das estat  sticas mostra a o m  nimo  o m  ximo a m  dia e o desvio  padr  o das lat  ncias do primeiro pacote em cada EC    8 3 Utiliza    o da ferramenta    Btween EC Stats    Esta sec    o mostra o m  nimo  o m  ximo  a m  dia e o desvio padr  o das  lat  ncias entre EC s  os tempos entre Trigger Messages sucessivas     Selected Id Stats    Esta sec   
31. lementos  precisam de ser combinados para fazerem um sistema Ethernet    Os elementos s  o     e    frame   Um conjunto de bytes normalizado usado para transportar  dados pela rede     e O Medium Accsess Control Protocol   Um conjunto de regras embuti   das em cada interface Ethernet que permite que v  rios computadores    Bl    2 2 1    A    resto    O sistema Ethernet    acedam a um canal partilhado     Componentes de Sinaliza    o   componentes electr  nicos que recebem  e enviam sinais atrav  s do canal     Meios F  sicos   cabos e outro hardware usados para transportar os  sinais digitais aos computadores ligados    rede     Ethernet Frame       Destination Source    Preamble Address Address Type Data Padding   FCS    Figura 2 1  A frame Ethernet mais comum  I     frame    o componente mais importante de um sistema Ethernet  o  dos componentes existem para moverem frames de um lado para o    outro  A sua estrutura    mostrada na figura E T     O pre  mbulo    um conjunto de bits usado para sinalizar o inicio e  sincronismo de uma frame     Os Destination Address e o Source Address s  o respectivamente o en   dere  o de destino e o endere  o de fonte da frame  Tal como nas nossas  casas temos um endere  o   nico para o qual nos mandam a nossa cor   respond  ncia  no caso das redes Ethernet cada computador possui um  endere  o para o qual as mensagens s  o enviadas     O campo Ethertype pode ser usado de duas maneiras numa delas este  cont  m o tipo de mensagem que est   a
32. linha 10  passa ao  Wireshark qual a fun    o que deve chamar para processar os pacotes    A fun    o dissector_add  na linha 12 passa ao Wireshark o elemento  que despoletar   o dissector   esse elemento    o PARENT SUBFIELD  ex      ethertype    no caso do elemento ser o campo type do protocolo Ethernet      tcp port    no caso do elemento ser o campo port do protocolo TCP   o valor  que toma o elemento ser   o ID VALUE     4 5 5 Fun    o dissect PROTOABBREV         static int  dissect PROTOABBREV tvbuff t xtvb  packet info xpinfo     proto tree xtree             Set up structures needed to add the protocol subtree and  manage it x   proto item xti   proto tree  PROTOABBREV tree        Make entries in Protocol column and Info column on  summary display     col set str pinfo     cinfo   COL PROTOCOL   PROTOABBREV           This field shows up as the  Info  column in the display   you should use  it  if possible  to summarize what s in the packet  so  that a user looking  at the list of packets can tell what type of packet it is  See section 1 5  for more information     col clear  pinfo  gt cinfo  COL INFO      22  23  24  25  26  27  28  29    30  31    32  33    34  35  36  37  38  39  40  41  42  43    44  45    46  47       4 5 Estrutura de um dissector    col set str pinfo  gt cinfo  COL INFO   XXX Request          create display subtree for the protocol x   ti   proto tree add item tree  proto PROTOABBREV  tvb   0     1  FALSE      PROTOABBREV tree   proto item add sub
33. nica    o que suportam aplica    es de    tempo real    tem  de cumprir alguns requisitos  Os requisitos mais comuns s  o predictabili   dade  tratamento de tr  fego peri  dico com diferentes per  odos  tratamento  de tr  fego espor  dico  lat  ncia limitada  efici  ncia no tratamento de pacotes  e gest  o din  mica de QoS     5 2 Arquitectura       Figura 5 1  Estrutura do Elementary Cycle    5 2 Arquitectura    De modo a preencher os requisitos das redes de    tempo real     o protocolo  FTT SE utiliza uma arquitectura centralizada de agendamento e controlo  de transmiss  o master  multislave  Dado que o controlo de transmiss  o e o  agendamento est  o localizados num s   n    master      poss  vel a implemen   ta    o da gest  o din  mica de QoS    O Master    respons  vel por dizer a cada slave quando e o que transmitir   fazendo assim com que exista uma no    o coerente de tempo em cada n   da  rede  e tambem consegue se evitar colis  es na rede     5 3 Funcionamento do protocolo    5 3 1 Elementary Cycle    Um dos aspectos fundamentais do protocolo    0 Elementary Cycle EC   que     uma janela temporal de dura    o fixa que aloca o tr  fego de mensagens  no barramento  O tempo no barramento    ent  o organizado numa sucess  o  infinita de ECs  Em cada EC existem ainda duas janelas temporais  a sin   crona e a ass  ncrona  dedicadas tr  fego desencadeado por tempo e trafico  desencadeado por eventos  respectivamente  Figura B T     Cada EC come  a com o broadcast  de uma
34. ntifica    o do Sequence Number   e Identifica    o do campo flags     e Identifica    o das Synchronous Messages   Identifica    o da quantidade     Identifica    o do ID e do Fragmentation Number de cada men   sagem a ser enviada no EC     e Identifica    o das Asynchronous Messages   Identifica    o da quantidade     Identifica    o do ID e do Fragmentation Number de cada men   sagem a ser enviada no EC     Synchronous Data Message    e Identifica    o do ID   e Identifica    o do Sequence Number   e Identifica    o do Fragmentation Number     e Identifica    o da Frame da Trigger Message que inicia o EC em que  a mensagem se insere     e Calculo do tempo passado desde o inicio do EC   Asynchronous Data Message   e Identifica    o do ID    e Identifica    o do Sequence Number     e Identifica    o do Fragmentation Number     6 2 Detec    o de Erros    e Identifica    o da Frame da Trigger Message que inicia o EC em que  a mensagem se insere     e Calculo do tempo passado desde o inicio do EC     6 2 Detec    o de Erros    Um aspecto importante num dissector    a analise funcional do protocolo   dai que seja interessante detectar erros para estudar o funcionamento dos  n  s    Os erros mostrados s  o     Mensagem n  o inclu  da na Trigger Message   Este erro d   se quando  uma mensagem    transmitida com um ID que n  o existe na Trigger  Message correspondente ao EC     Mensagens S  ncronas por enviar   Este erro d   se quando se detecta o  inicio de um novo EC  chegada de 
35. obre a utiliza    o de   rvores bin  rias  num dissector      README plugins   Documenta    o sobre como utilizar a interface plug in no  Wireshark       README request response tracking   informa    o de como implementar  estruturas de tracking de conversa    es num dissector      CI k  WON    4 4 Desenvolvimento do dissector    Direct  rio epan    O direct  rio Ethernet Protocol Analyzer  EPAN  contem protocol dissectors  e as fun    es mais   teis e mais usadas num dissector   Dou destaque ao  ficheiro packet info h pois contem informa    o sobre uma estrutura b  sica  com muita informa    o da maior import  ncia sobre os pacote a ser analisado     Direct  rio Plug ins    E neste direct  rio que se encontram os dissectors implementados pela inter   face plug in e    neste tamb  m que vamos colocar o c  digo fonte para o nosso  dissector      4 4 Desenvolvimento do dissector    Antes de come  ar mos a construir um dissector    recomend  vel que se ana   lise a cria    o passo a passo de um dissector presente no Wireshark Deve   loper s guide  Depois de analisado o anterior documento pode se come  ar  um dissector de raiz  apartir do template no ficheiro README  developer   ou alterar um dissector j   existente     4 4 1 Instala    o do dissector como plug in apartir do c  digo  fonte    Ver ficheiro README  plugins em doc      4 5 Estrutura de um dissector    A an  lise desta sec    o do relat  rio deve ser acompanhada pelo template de  um dissector do ficheiro  doc README 
36. ocar na  caixa de dialogo a express  o  ftt TMtime  lt  0 00002  amp  amp  ftt type    1 Figura    6 3         35    36    Funcionalidades do dissector FTT SE                       N  mero da TM na captura  4272   Sequence Number  179  Flags  0x00             Figura 6 7  Exemplo de filtragem por n  mero de mensagens Assincronas    6 3 Filtragem    V Flexible Time Triggered   Ethernet    Message Type  Synchronous Data Message  1   Y Synchronous Data Message  Message Id  0x0000  Sequence Number  6  Flags  0x00  Fragmentation Number  1  TM na frame  2375       JKLMNO     jkl    Figura 6 8  Exemplo de filtragem por tempo e por tipo de       mensagem    37    Cap  tulo 7    Descri    o Funcional do    c  digo do dissector para  FTT SE    A an  lise deste capitulo deve ser feita acompanhando o c  digo fonte do  dissector    7 1 Fun    o proto register ftt      Esta fun    o    caracterizada por registar o dissector no    motor    do Wireshark  da   que sejam nela declaradas informa    es importantes para o funciona   mento correcto do plug in    O array hf register info hf      respons  vel pela defini    o e registo  de todos os itens que ser  o capazes de ser filtrados  bem como a maneira  como s  o mostrados na protocol tree    O array gint  ett      respons  vel pela defini    o das vari  veis que pos   suem o estado dos ramos mostrados na protocol tree    Por fim s  o executadas fun    es que s  o respons  veis por registar as ca   racter  sticas do dissector no Wireshark     
37. olo  5 3 1 Elementary Cucla  ea i ae Ween ee ae ea da  5 4 1 Trigger Messagd   2    ss   5 4 2 Syncronous Data Messagg  543  Asyncronous Data Messaqd                                                       5 4 4 Asynchronous Status message    DAS TUA  o sususa ie EE 4 ew kave RR ves    5 4 6 Plug N Play        Funcionalidades do dissector FTT SE  6 1 Identifica    o e Processamento das mensagens               6 1 2 Informa    es na Protocol Tred                 6 2  Detec    o de Erros   ss sg sira no ss su sa ess i gp e ss  63 Filtrageml                        o  sss     6 3 1 IDOL  sa TT RA RO Ree Re ee  TT O RU AE TIS  6 3 2 Sequence Number       2    are e a ia a  6 33 Flood  o   a 3 saj ks poate devi la a Sg bl RO Dead    6 3 4 Numero de Mensagens Sincronag              6 3 5 Numero de Mensagens Ass  ncronas               6 3 6 Frame correspondenta                     GS E Erro ss e a di o AONDE AP am CR o ete DS    6 3 8 Numero de Mensagens S  ncronas por enviar        6 3 9 Numero de Mensagens Ass  ncronas por envia    Er    ey      E RE a a  aa haa  a             dd Rua E A         7 1 Fun    o proto register fit  7 2 Fun    o proto_req_handoff                0 0004    7 3 Fun    o ftt init routine        CONTE  DO        7 4 Fun    o dissect ftt     2    0 00000 A 39                7 5 Fun    o dissect TM        2    ee 39  7 6 Fun    o dissect SDM        2    ee Sl 40  Bia Gres ope teen Arve uy A a ace 40  7 8 Fun    o checkMem   o e s rod da tad e sl 40  7 9 Fun    o
38. processar as  Asynchronous Status Message e Assynchronous Signaling Message     sempre  poss  vel adicion   las     Cap  tulo 11    Manual de Instala    o    11 1 Ambiente de desenvolvimento    Este trabalho foi desenvolvido no sistema operativo Ubuntu na vers  o 9 04  Jaunty Jackalope com o kernel linux 2 6 28 11 generic  na edi    o do c  digo  fonte foi utilizado o IDE Geany na vers  o 0 16 Argon     11 2 Instala    o do Wireshark    Foi utilizado o Wireshark Development Version Network Protocol Analyzer  1 3  g compilado apartir do c  digo fonte  ues esta disponivel em       A instala    o do programa requer que se tenha o pacote do link anterior descom   pactado e que se tenha uma inst  ncia de terminal com o seu working directory na  pasta em que temos o c  digo fonte  a seguir temos de seguir as seguintes instru    es  no terminal     1  sudo   autogen  sh   este comando faz com que se criem alugumas makefiles   caso faltem pacotes instalados no sistema operativo a script notifica quais  est  o em falta     2  sudo   configure  disable warnings as errors   esta script configura  as op    es do programa  a op    o  disable warnings as errors faz com que  as warnings n  o sejam tratadas como erros e  consequentemente n  o parem  a compila    o   caso faltem pacotes instalados no sistema operativo a script  notifica quais est  o em falta     3  sudo make install   este comando faz a instala    o propriamente dita do  Wireshark executando todas as makefiles e compilando to
39. r  pida que a anterior  deve se ent  o  executar de novo     sudo make install    11 3 9 Instala    o dos filtros de cores    Ainda nos ficheiros disponibilizados juntamente com este documento est   um fi   cheiro com o nome color  que cont  m as regras de cores para o protocolo FTT  A  sua instala    o pressup  e a execu    o do Wireshark em modo de super utilizador    Depois de iniciado o programa deve se aceder na barra de menus a  View  gt Coloring Rules  na janela que ir   aparecer deve se escolher a fun    o Import  e seleccionar o ficheiro color     11 4 Instala    o protocol tap fttstat    Para instalar o tap tem se de alterar o ficheiro MAKEFILE e executar os seguintes  passos     e adicionar em am objects 8  por ordem alfab  tica  a seguinte linha   tshark tap fttstat   OBJEXT     e adicionar em TSHARK TAP SRC  por ordem alfab  tica  a seguinte linha   tap fttstat c     e a seguir a em distclean compile    rm  f   tab c  por ordem alfab  tica  a seguinte linha   include     DEPDIR  tshark tap fttstat Po    e adicionar na sec    o a seguir    ultima o c  digo presente no ficheiro addMkf  fornecido com este documento     para concluir a instala    o executasse o comando  sudo make install na pasta raiz do Wireshark      51    Bibliografia    1     Ethernet   Wikipedia  the free encyclopedia      2  C  E  Spurgeon  Ethernet  The Definitive Guide   O Reilly  2000     3  P  Pedreiras  L  Almeida  and J  A  Fonseca  The Quest for Real Time Behavior  in Ethernet  CRC Press
40. rros           V  rias rela    es podem ser combinadas com os operadores l  gicos or      e and  amp  amp         6 3 16 Exemplos de utiliza    o de filtros  Exemplo 1    Se se pretender filtrar a captura pelas mensagens com o Id igual a 0x0000  deve se colocar na caixa de dialogo a express  o  ftt id    0x0000 Figura     6 5      6 3 Filtragem    Bugos paxca ar sv Ft BBcccnaumma o          p         Eu      Frame 1  1022 bytes on wire  1022 bytes captured     gt  Ethernet II  Src  3com 35 ff 6a  00 50 04 35 ff 6a   Dst  3Com 74 la fc  00 04 75 74 la fc               04 35 ff 6a 8f fo 00 01  02 03 04 05 06 07 08 09  12 13 14 15 16 17 18 19  22 23 24 25 26 27 28 29               01 23456789  1   lt   gt  GA BCDEFGHI  4a 4b 4c 4d 4e 4f 50 51 JKLMNOPQ RSTUVWXY  5a 5b 5c 5d 5e 5f 60 61 ZIN        a bcdefghi  6a 6b 6c 6d 6e 6f 70 71 jklmnopq rstuvwxy    ne      Figura 6 5  Exemplo de filtragem por Id    Exemplo 2   Se se pretender filtrar a captura pelas mensagens do tipo Synchronous Data  Message deve se colocar na caixa de dialogo a express  o  ftt type    1  ou ftt type     Synchronous Data Message  Figura  6 6     Exemplo 3    Se se pretender filtrar a captura pelas Trigger Messages com refer  ncia a  mais que duas Asynchronous Data Message deve se colocar na caixa de di   alogo a express  o  ftt nam  gt  2  Figura  5 7      Exemplo 4    Se se pretender filtrar a captura pelas mensagens com lat  ncia menor do que  0 00002 segundos e do tipo Synchronous Data Message deve se col
41. stall plugins     Manual de Instala    o    xcopy plugins  fttx  dll   INSTALL DIR N plugins V  VERSION   d    cd plugins  if exist Custom  nmake    MAKE     MAKEFLAGS     f Custom  nmake  install    plugins      WW W9 li       11 3 5 Mudan  as na Makefile am    Deve se adicionar o plugin  por ordem alfab  tica  em plugin ldadd        1  if HAVE PLUGINS     plugin ldadd         E onca plugins  gryphon gryphon la N  6     dlopen plugins irda irda la     Slo pen plugins  ftt ftt la N   9 es       11 3 6 Mudan  as na configure in    Deve se adicionar  por ordem alfab  tica  a Makefile do plug in em AC_OUTPUT  AC_OUTPUT     plugins  gryphon  Makefile  plugins  irda  Makefile    plugins ftt  Makefile    a           o NoT LW DL    11 3 7 Mudancas ao epan Makefile am    Deve se adicionar o caminho relativo para o plugin  por ordem alfab  tica  em plu   gin src     plugin src            plugins  gryphon packet gryphon c         plugins  irda  packet irda c       JI OO LVIV l         plugins  ftt packet ftt c            11 3 8 Comandos para instalar o dissector    O proximo passo    despoletar a compila    o do plug in  a primeira compila    o deve  ser feita apartir da raiz  verificando todas as makefiles do Wireshark por mudan  as   deve se ent  o abrir uma instancia de terminal e executar     11 4 Instala    o protocol tap fttstat    sudo make install    As compila    es subsequentes em caso de altera    o do dissector podem ser feitas  em plugins ftt  sendo esta compila    o mais 
42. t  sticas  para analisar o tr  fego  da rede  que mostram por exemplo     e informa    es sobre os protocolos usados  e informa    es sobre conversa    es    e gr  ficos de throughput e tempo sequ  ncia    3 3 Packet Dissection    Os componentes do Wireshark que descodificam os pacotes sao chamados  protocol dissectors  Estes componentes s  o m  dulos de c  digo fonte indi   viduais que d  o instru    es    main do Wireshark em como descodificar um  tipo de protocolo espec  fico     3 3 1 Funcionamento    Cada dissector descodifica a sua parte do protocolo  e depois entrega des   codifica    o a dissectors subsequentes para algum protocolo encapsulado      cada fase detalhes do pacote s  o descodificados e mostrados     O processo de  Dissection   Quando o Wireshark l   um pacote realiza os seguintes passos     1  Os dados da frame  s  o passados pela fun    o epan dissect run      Uma frame    a estrutura b  sica de comunica    o de dados conjunto de bits que cons   tituem um pacote  2Fun    o que desencadeia o processo de dissection de um pacote    3 4 Programa    o    2  A fun    o epan dissect run   define os ponteiros para a frame  column  e data e chama a fun    o dissect packet     3  A fun    o dissect packet cria o  primeiro  tubuffl e depois chama a fun       o dissect frame       4  A fun    o dissect frame   descodifica os dados da frame e mostra a na  janela Decode do GUI     5  A fun    o dissect frame   chama a fun    o dissector_try_port   para  ver se existem
43. tecta uma  mensagem do tipo Trigger Message e tem acesso   s mesmas estruturas que  a anterior  mais o acesso    tree do protocolo    A fun    o come  a por recolher a informa    o estrutural da mensagem   o sequence number  as flags  o n  mero de Synchronous Data Messages e  o n  mero de Asynchronous Data Messages  Estas informa    es juntamente  com outras informa    es da mensagem s  o colocadas num array de estruturas  em que cada posi    o representa um EC  Cada posi    o do contem as seguintes  informa    es     e N  mero da frame da Trigger Message   e Tempo da mensagem   e Sequence Number     e N  mero de Synchronous Data Messages por enviar para efeito de de   tec    o de erros      e N  mero de Asynchronous Data Messages por enviar para efeito de  detec    o de erros      39    Descri    o Funcional do c  digo do dissector para FTT SE    e Arvore bin  ria com as informa    es de cada Synchronous Data Mes   sage     e   rvore bin  ria com as informa    es de cada Asynchronous Data Mes   sage     Cada posi    o da   rvore bin  ria    indexada pelo Jd da mensagem e possui  as seguintes informa    es     e Numero de fragmentos   e  liberdade para colocar mais informa    o      Consoante o n  mero de cada tipo de mensagem a ser transmitido s  o re   colhidas as informa    es de cada mensagem  o Ide o Fragmentation Number  e s  o guardadas em estruturas adequadas    O pr  ximo passo    discriminar em summary   na coluna Info  a quanti   dade de mensagens de cada tipo que 
44. tree ti   ett PROTOABBREV        x add an item to the subtree  see section 1 6 for more  information x     proto tree add item  PROTOABBREV  tree   hf PROTOABBREV FIELDABBREV  tvb  offset   len  FALSE         Continue adding tree items to process the packet here x             If this protocol has a sub   dissector call it here  see  section 1 8          Return the amount of data this dissector was able to  dissect     return tvb length tvb      i       Esta    a fun    o principal do dissector nela tem se acesso a varias estru   turas que cont  m informa    o sobre o pacote a ser analisado  elas s  o     packet info  pinfo   estrutura com variadas informa    es sobre o pacote   ex  tempo  tcp port       mais informa    es no ficheiro  epan packet info h     tvbuff t  tvb   estrutura com buffers com a raw data do pacote  mais  informa    es no ficheiro  epan tvbuff h     Nesta fun    o deve se come  ar por verificar as informa    es principais so   bre o pacote para garantir que o pacote pertence ao protocolo que se est    analisar  Ap  s isso    recomend  vel que se coloque informa    o sobre a men   sagem na summary window  colocando informa    o na column e info column      recomend  vel tambem criar uma subtree para mostrar informa    o sobre o  protocolo na zona protocol tree da GUI do Wireshark pode ainda colocar se  algum processamento de dados nesta fun    o  mas caso o dissector a imple   mentar seja muito complexo    recomend  vel que se divida o processamento  dos d
45. uma nova Trigger Message  sem  que tenham sidas detectadas todas as Synchronous Data Messages  correspondentes ao EC anterior     Mensagens Assincronias por enviar   Este erro d   se quando se de   tecta o inicio de um novo EC   chegada de uma nova Trigger Mes   sage  sem que tenham sidas detectadas todas as Asynchronous Data  Messages correspondentes ao EC anterior     Erro no n  mero de sequ  ncia da Trigger Message   Este erro d   se  quando se detecta a chegada de uma Trigger Message com o Se   quence Number diferente do anterior incrementado de um     Para acedermos a uma lista detalhada de todos os erros numa captura  podemos aceder a Expert Info ou Expert Info Composite em Analyze na  barra de menus     Expert Info   Lista sequencial de todos os erros  Figura  6 1      Expert Info Composite   Lista de erros agrupados por tipo de erro  Fi     gura  6 2     6 3 Filtragem    Uma das ferramentas do Wireshark    a interface de Display Filters que  tem a capacidade de filtrar os pacotes mostrados no GUI por par  metros  embebidos no dissector    Os par  metros implementados neste dissector est  o a seguir descritos     30 Funcionalidades do dissector FTT SE       Figura 6 1  Expert Info    FTT Ethemet ERROR 1  Messagem n  o incluida na TM  FTT Ethemet ERROR 5   Erro no numero de sequencia  FTT Ethemet ERROR 3   Mensagens sincronas por enviar       Figura 6 2  Expert Info Composite    6 3 1 Tipo    Aplicavel a todas as mensagens do protocolo     6 3 Filtragem 31    Intervalo 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Dieu veut la vie et la vie en abondance (Genèse 9,1-29)    ZyXEL GS-105B  Exercices de géométrie affine  Operating instructions  Trust Bling Bling  directives importantes lire et conserver  Samsung AZ12PHA دليل المستخدم  PÉRIMÉ - Direction des structures  AC4C1 Owner's Manual    Copyright © All rights reserved. 
   Failed to retrieve file