Este artigo apresenta outra ferramenta útil de captura de pacotes, Wireshark, usada para obter pacotes de dados de rede, incluindo HTTP, TCP, UDP e outros pacotes de protocolo de rede.
Lembro que aprendi o protocolo de três vezes do TCP quando estava na faculdade. Naquela época, eu sabia que, embora tivesse lido muitos materiais TCP e UDP no livro, nunca tinha visto esses pacotes de dados. Eu sempre senti como se estivesse flutuando na nuvem e não estava aprendendo de forma constante. Com o Wireshark, esses pacotes de rede podem ser interceptados e cada campo no pacote pode ser visto claramente. Pode aprofundar ainda mais nossa compreensão dos protocolos de rede.
Para mim, o Wireshark é a melhor ferramenta para aprender protocolos de rede.
Leitura de conteúdo
Introdução ao Wireshark
Site de download oficial de Wireshark: http://www.wireshark.org/
O Wireshark é um software de análise de pacotes de rede muito popular, com funções muito poderosas. Vários pacotes de rede podem ser interceptados e informações detalhadas dos pacotes de rede podem ser exibidas.
O Wireshark é um software de código aberto que pode ser usado com confiança. Pode ser executado no Windows e Mac OS.
As pessoas que usam o Wireshark devem entender o protocolo de rede, caso contrário, não entenderão o Wireshark.
O que o Wireshark não pode fazer
Por razões de segurança, o Wireshark só pode visualizar o pacote, mas não pode modificar o conteúdo do pacote ou enviar o pacote.
Wireshark vs Fiddler
Fiddler é um programa em execução no Windows, usado especificamente para capturar HTTP e HTTPS.
O Wireshark pode obter HTTP e HTTPS, mas não pode descriptografar o HTTPS, para que o Wireshark não possa entender o conteúdo no HTTPS.
Em resumo, se você estiver usando HTTP, HTTPS ou Fiddler, outros protocolos como TCP e UDP, use Wireshark
Outras ferramentas do mesmo tipo
Monitor de rede da Microsoft
sniffer
Quem usaria o Wireshark
1. Os administradores de rede usarão o Wireshark para verificar os problemas de rede
2. Os engenheiros de teste de software usam o Wireshark para capturar pacotes para analisar o software que testaram
3. Os engenheiros envolvidos em programação de soquete usarão Wireshark para depurar
4. Ouvi dizer que a maioria dos engenheiros da Huawei e da ZTE usa o Wireshark.
Em suma, o Wireshark pode ser usado para coisas relacionadas à Internet.
Wireshark começa a agarrar
Inicie a interface
O Wireshark é um pacote de rede que captura uma determinada placa de rede na máquina. Quando existem vários cartões de rede em sua máquina, você precisa escolher uma placa de rede.
Clique em Caputre-> Interfaces. A caixa de diálogo a seguir aparece e selecione a placa de rede correta. Em seguida, clique no botão "Iniciar" para começar a agarrar
Introdução da janela Wireshark
Wireshark é dividido principalmente nessas interfaces
1. Filtro de exibição, usado para filtrar
2. PAIN LISTA DE PACOTOS (Lista de pacotes), exibe o pacote capturado, o endereço ativo e o endereço de destino e o número da porta. Cores diferentes representam
3. Detalhes do pacote painel (detalhes do pacote), exibindo campos no pacote
4. Painel de dissector (dados hexadecimais)
5. Miscellanos (barra de endereço, diversos)
Filtragem de exibição de Wireshark
Usar a filtragem é muito importante. Quando os iniciantes usam o Wireshark, eles receberão muitas informações redundantes, que são tão difíceis de encontrar a parte de que precisam em milhares ou até dezenas de milhares de registros. Isso me deixou tonto.
Os filtros nos ajudarão a encontrar rapidamente as informações necessárias em uma grande quantidade de dados.
Existem dois tipos de filtros.
Um é o filtro de exibição, que é o da interface principal, usado para encontrar os registros necessários nos registros capturados.
Um é um filtro de captura, usado para filtrar pacotes capturados para evitar capturar muitos registros. Configurações em Capture -> Capture Filters
Salvar filtro
Na coluna do filtro, depois de preencher a expressão do filtro, clique no botão Salvar e dar um nome. Por exemplo, "filtro 102",
Há um botão "Filtro 102" adicional na barra de filtro.
Regras para filtrar expressões
Regras de expressão
1. Filtragem do protocolo
Por exemplo, o TCP exibe apenas o protocolo TCP.
2. Filtragem IP
Por exemplo, ip.src == 192.168.1.102 mostra que o endereço de origem é 192.168.1.102.
ip.dst == 192.168.1.102, o endereço de destino é 192.168.1.102
3. Filtragem da porta
tcp.port == 80, porta 80
tcp.srcport == 80, exibe apenas que a porta de desejo do protocolo TCP é 80.
4. Filtragem do modo HTTP
http.request.method == "Get", exibe apenas o método HTTP GET.
5. O operador lógico é e/ou
Expressões de filtro comumente usadas
| Expressões de filtro | usar |
| http | Veja apenas os registros do protocolo HTTP |
| ip.src == 192.168.1.102 ou ip.dst == 192.168.1.102 | O endereço de origem ou o endereço de destino é 192.168.1.102 |
Painel da lista de pacotes
A lista de pacotes exibe o número, registro de data e hora, endereço de origem, endereço de destino, protocolo, comprimento e informações de pacotes no painel. Você pode ver que diferentes protocolos são exibidos em cores diferentes.
Você também pode modificar essas regras de cores exibidas, visualizar -> Regras para colorir.
Detalhes do pacote painel
Este painel é a nossa coisa mais importante para ver todos os campos do protocolo.
As informações em cada linha são
Quadro: Visão geral dos quadros de dados para camada física
Ethernet II: Link de dados Camada Ethernet Frame Informações do cabeçalho
Internet Protocol Versão 4: Informações do cabeçalho do pacote IP da camada da Internet
Protocolo de controle de transmissão: as informações do cabeçalho do segmento de dados da camada de transporte t, aqui está o TCP
Protocolo de transferência de hipertexto: informações da camada de aplicativos, aqui está o protocolo HTTP
Wireshark e modelo de sete camadas OSI correspondente
Conteúdo específico do pacote TCP
Na figura abaixo, você pode ver cada campo no pacote TCP capturado pelo Wireshark.
Exemplo de análise do processo de handshake de três vezes TCP
Vendo isso, eu basicamente ganhei um entendimento preliminar de Wireshak. Agora, vejamos um exemplo de aperto de mão TCP tricampeão.
O processo de tricô de três vezes é
Eu já vi essa foto muitas vezes. Desta vez, usamos o Wireshark para realmente analisar o processo de três apertos de mão.
Abra o Wireshark, abra o navegador e digite http://www.cnblogs.com/tankxiao
Digite http para filtrar no Wireshark e selecione o registro de get /tankxiao http /1.1, clique com o botão direito do mouse e clique com "Siga o TCP Stream",
O objetivo disso é obter os pacotes de dados relacionados à abertura do site pelo navegador. Você vai tirar a seguinte foto
Na figura, você pode ver que o Wireshark interceptou três pacotes de dados de três apertos de mão. O quarto pacote é HTTP, que mostra que o HTTP usa o TCP para estabelecer conexões.
Pacote de primeiro aperto de mão
O cliente envia um TCP com o bit syn sin e o número de série é 0, o que representa a solicitação do cliente para estabelecer uma conexão. A figura a seguir
Pacote de dados para o segundo aperto de mão
O servidor envia de volta o pacote de confirmação, o sinalizador é SYN e ACK. Defina o número de confirmação (número de reconhecimento) como o ISN do cliente mais 1. Ou seja, 0+1 = 1, como mostrado na figura abaixo
O pacote de dados para o terceiro aperto de mão
O cliente envia o pacote de reconhecimento (ACK) novamente. O bit sin sinalizador é 0 e o bit de sinalizador ACK é 1. E o servidor envia o campo Número ACK +1 e coloca o campo de confirmação para a outra parte. E coloca o +1 do ISN no segmento de dados, como mostrado na figura abaixo:
Dessa forma, o aperto de mão do TCP foi passado três vezes e a conexão foi estabelecida.
O exposto acima é a introdução básica ao Wireshark e aprendendo TCP três vezes. Continuaremos a organizar o conhecimento relevante no futuro. Obrigado pelo seu apoio a este site!