Análise de captura de pacotes Protocolo TCP

O protocolo TCP é um protocolo de comunicação da camada de transporte baseado em fluxo de bytes, orientado à conexão e confiável na camada de transporte.

Preparação ambiental

As ferramentas de teste de interface podem ser classificadas nas seguintes categorias:

Ferramentas de detecção de rede: tcpdump, wireshark
Ferramentas de proxy: fiddler, charles, anyproxyburpsuite, mitmproxy
Ferramentas de análise: curl, postman, chrome Devtool

Captura de pacotes e análise do protocolo TCP

tcpdump
tcpdump é uma ferramenta que intercepta completamente o "cabeçalho" dos pacotes de dados transmitidos na rede e fornece análise. Ele suporta filtragem por camada de rede, protocolo, host, rede ou porta e fornece instruções lógicas como e, ou, para não remover informações inúteis.

Deixe o tcpdump escutar a porta 443 o tempo todo e insira-o no arquivo de log se houver alguma anormalidade

sudo tcpdump port 443 -v -w /tmp/tcp.log

Com este comando o relatório obtido será colocado  /tmp/tcp.log no diretório.

Parâmetros comuns significado
porta 443 Ouça na porta 443
-v gerar informações mais detalhadas
-c gravar dados no log

Wireshark
Wireshark também é uma ferramenta de detecção de rede. Além da função tcpdump, possui funções mais estendidas, como ferramentas de análise. No entanto, no teste de interface, o processo de captura de pacotes geralmente é executado no servidor, e o servidor geralmente o faz. não fornece uma interface UI, portanto, o wireshark não pode funcionar no servidor e só pode usar tcpdump para capturar pacotes para gerar logs e, em seguida, importar os logs para o wireshark para análise no cliente com interface UI.

Análise de captura de pacotes Protocolo TCP

Pegue uma solicitação http get:

Procure por mp3 no Baidu http://www.baidu.com/s?wd=mp3
Use tcpdump para interceptar esta solicitação get e gerar um log
Abra o log gerado pelo tcpdump com wireshark

Use o wireshark para visualizar o log:

As primeiras informações no log são o handshake triplo. Como o canal não é confiável, é necessário garantir que o canal esteja estável antes de enviar dados, e o handshake triplo é semelhante às seguintes operações:

O primeiro handshake: Quando a conexão é estabelecida, o cliente envia um pacote syn (syn = j) ao servidor e entra no estado SYN_SENT, aguardando a confirmação do servidor.
O segundo handshake: o servidor recebe o pacote syn, deve confirmar o SYN do cliente (ack=j+1), e ao mesmo tempo enviar um pacote SYN (seq=k), ou seja, o pacote SYN+ACK, e o O servidor entra no estado SYN_RECV neste momento;
O terceiro handshake: o cliente recebe o pacote SYN+ACK do servidor e envia um pacote de confirmação ACK (ack=k+1) para o servidor. Depois que o pacote é enviado, o cliente e O servidor entra no estado ESTABLISHED (conexão TCP bem-sucedida) e completa três apertos de mão.

Após um handshake de três vias, a comunicação adicional é possível, como segue:

No final da troca, também são necessários quatro acenos de mão:

A primeira onda: o cliente envia um FIN ao servidor, solicitando o encerramento da transmissão de dados.
A segunda onda: o servidor recebe o FIN do cliente e envia um ACK ao cliente, onde o valor do ack é igual a FIN+SEQ.
Terceira onda: O servidor envia um FIN ao cliente, informando o aplicativo cliente para fechar.
A quarta onda: o cliente recebe o FIN do servidor e responde um ACK ao servidor. O valor de ack é igual a FIN+SEQ.
Nota: Uma solicitação pode ser dividida em vários pacotes, assim como um dado, então você verá muitos pacotes no wireshark.

Por fim, gostaria de agradecer a todos que leram meu artigo com atenção. A reciprocidade é sempre necessária. Embora não seja algo muito valioso, se você puder usá-lo, poderá retirá-lo diretamente: [Coletar no final do artigo ]


     [A seguir está o diagrama de sistema de arquitetura de conhecimento de aprendizado do engenheiro de teste de software mais completo + conjunto completo de materiais que compilei em 2023]


1. Da entrada ao domínio da programação Python

2. Projeto de automação de interface de combate real 

3. Combate Real do Projeto de Automação Web


4. Combate real do projeto de automação de aplicativos 

5. Currículo dos fabricantes de primeira linha


6. Teste e desenvolva sistema DevOps 

7. Ferramentas de teste automatizado comumente usadas

Oito, teste de desempenho JMeter 

9. Resumo (pequena surpresa no final)

a vida é longa, então adicione óleo. Todo esforço não será decepcionado, desde que você persevere, haverá recompensas no final. Valorize seu tempo e persiga seus sonhos. Não se esqueça da intenção original, siga em frente. O seu futuro está nas suas mãos!

A vida é curta, o tempo é precioso, não podemos prever o que acontecerá no futuro, mas podemos compreender o momento presente. Valorize cada dia e trabalhe duro para se tornar mais forte e melhor. Crença firme, busca persistente, o sucesso acabará por pertencer a você!

Somente desafiando-se constantemente você poderá se superar constantemente. Persista em perseguir seus sonhos e avance com coragem, e você descobrirá que o processo de luta é tão belo e valioso. Acredite em você, você consegue!  

Acho que você gosta

Origin blog.csdn.net/nhb687095/article/details/132297781
Recomendado
Clasificación