captura de pacotes de rede Wireshark (três) - Protocolo de rede

captura de pacotes de rede Wireshark (três) - Protocolo de rede

Um, protocolo ARP

ARP (Address Resolution Protocol) protocolo de resolução de endereço, para resolver o endereço IP para um endereço MAC.

endereço de IP na terceira camada do modelo OSI, o endereço MAC na segunda camada de OSI, não em comunicação directa uns com os outros;

Ela ocorre quando o pacote de IP através da Ethernet, primeira camada de encapsulamento, terceiro (endereço IP de 32 bits) e uma segunda camada (endereço MAC de 48 bits) do cabeçalho;

Mas porque só saber o endereço IP de destino quando o envio de pacotes, não sei o endereço MAC e não pode cruzar o segundo, três, por isso necessidade de usar o ARP.

ARP pedido e resposta sub-fluxo de trabalho:

janela do DOS dentro de um "ping" o domínio para pegar o pacote:

 

Dois, protocolo IP

IP (Internet Protocol) Protocolo Internet, o objetivo principal é permitir inter-rede podem se comunicar uns com os outros , a camada OSI localizado é responsável pela comunicação através de um endereço de rede.

Ao transmitir pacotes de dados em um modo de transmissão, o endereço MAC está posicionado, e precisa de um computador na mesma sub rede.

Quando não estiver na mesma sub-rede de roteamento necessidades para enviar, desta vez você precisa para localizar o endereço IP.

Também dentro dos janela "ping" para agarrar um pacotes de nome de domínio:

 

Três, protocolo TCP

TCP (Transmission Control Protocol) de controlo de transporte protocolo A, o protocolo de transporte orientado para ligação fiável, baseado em IP, o objectivo principal é o de proporcionar final fiável para a transmissão de dados final.

A quarta camada na obra modelo OSI, e capaz de processar a sequência de recuperação de erros de dados, para assegurar que os dados podem, eventualmente, ser alcançado onde chega.

1) bandeira

SYN: sincronização , o número de sincronização é utilizado ao estabelecer a conexão. SYN = 1, ACK = 0 indica um pedido de ligação do segmento. SYN = 1, ACK = 1 concordaram em estabelecer uma conexão.

FIN: de terminação , FIN = 1, isso indica que o segmento de terminal de transmissão de dados tenha sido transmitida, e para a libertação de ligações de transmissão.

ACK: reconhecimento , ACK = 1, que é um reconhecimento em nome do pacote TCP, o valor 0 não é um pacote de confirmação.

DUP ACK: repita , mensagem de confirmação de repetição, pacotes duplicados, geralmente é causada pela perda de pacotes ou atraso, esta deve ser uma mensagem para ver a perda.

Urg: emergência , quando Urg = 1, dados representação segmento de emergência para ser transmitido mais rapidamente possível

PSH: impulso , quando o remetente PSH = 1, a extremidade de recepção o mais rapidamente possível para entregar processo de aplicação

RST: Repor Quando RST = 1, mostram que erros graves ocorreram no TCP conexão, a conexão deve ser liberado e re-estabelecer a conexão

2) porta

Quando o cliente estabelece uma conexão com um servidor diferente, os portos de origem e destino pode ser diferente.

3) três vias handshake TCP

4) quatro TCP onda

Quatro TCP desconexão, como desligar a página quando ela será desconectada.

5) conceito TCP

1. Enviar janela

não pode ser visto o tamanho da janela basta enviar, a janela será determinado pelo elemento de rede de envio. Enviar janela define uma bytes de cabelo, estes bytes e MSS é definido pelo número de pacotes transmitidos.

janela 2. congestionamento (cwnd)

Ele descreve o número de pacotes transmitidos a uma fonte de, no caso do controlo de congestão.

No remetente mantém uma janela de congestionamento virtual e usar vários algoritmos para torná-lo tão perto do verdadeiro ponto de congestionamento.

restrições de rede na janela de envio, é implementado pela janela de congestionamento.

3. Número de trânsito de bytes (bytes em voo)

Ela foi enviada, mas o número de bytes ainda não foi reconhecido.

O número de bytes em trânsito = Seq + Len - Ack

Seq Len e em que um pacote de dados a partir do emissor, e o Ack a partir de um receptor de dados em pacotes.

4. Ponto de congestionamento (ponto de congestionamento)

Quando ocorre congestionamento no congestionamento da rede é o número de bytes ponto de trânsito naquele momento.

Iniciar Wireshark encontrar um primeiro pacote de retransmissão nas séries, para encontrar o número de bytes do pacote original em trânsito última hora de transmissão pacote original calculadas com base na Seq.

5. partida lenta

RFC recomendado inicial da janela de congestionamento de envio 2, 3 ou 4 MSS, se o pacote pode ser enviado for confirmada, não indica a ponto de congestionamento, pode receber confirmações aumentar o n n MSS

6. Congestion Avoidance

Depois do início lento por algum tempo, congestionamento janela para chegar a um valor maior, você tem que desacelerar RFC proposto para aumentar um MSS em cada tempo de ida e volta, por exemplo, fez uma MSS 16 confirmam, então aumentada para 17 MSS

7. retransmissão timeout

O pacote enviado depois de esperar por algum tempo (RTO), a confirmação não for recebida, você só pode retransmitido

8. A retransmissão rápido (Fast retransmitir)

O tempo não é impulsionado, os dados-driven e de retransmissão. Se o pacote não chega de forma contínua, é provável que o pacote ACK final está perdido, se o remetente do ACK. 3 recebem os mesmos vezes consecutivas, retransmissões.

9. SACO (confirmação seletiva)

Selective ACK dados retransmissão reconhecimento ou o ACK rápido retransmitir, relatando SACO é recebida, o fim de transmissão pode saber quais dados para estar em conformidade com o backhaul SACO, o que não é.

10. O atraso de confirmação (ACK retardado)

Se um pacote é recebido temporariamente há dados para o seu parceiro, em seguida, uma revalidação atraso. Se este tempo só tem dados para enviar e reconhecimento de que as informações de dados podem ser transmitidos em um pacote.

11. LSO

LSO salvar CPU fora do criativo, a fim de aliviar a pressão sobre a CPU, a parte do seu trabalho terceirizado para o cartão, tais como segmentos TCP.

Depois de ativar o LSO, camada TCP pode ser maior do que os blocos de dados MSS directamente para o cartão, para que o cartão é responsável pela segmentação.

Por exemplo, "Seq = 348586, Len = 2776", o cartão é dividido em "Seq = 348586, Len = 1388" e "Seq = 349974, Len = 1388" pacote de dois.

Captura no final de transmissão correspondente ao CPU ângulo de pé, só para ver um grande segmento do pacote anterior, eo receptor pode ver dois pacotes.

Assim, dando origem serra o pacote de retransmissão, mas nenhum caso de embalagem original.

algoritmo 12. Nagle

Antes que os dados enviados não foi confirmado, se existem poucos dados é gerado, então os poucos dados coletados, recolheu um total ou MSS, etc. e, em seguida, receber uma confirmação é enviado.

algoritmo 13. Vegas

Ajuste da velocidade por meio do monitoramento contrato de status da rede.

Quando o estado da rede é boa, os pacotes RTT é relativamente estável, em seguida, a janela de congestionamento pode ser aumentada;

Começa quando a rede estiver ocupada, uma linha de Início de pacote, o RTT torna-se maior, quando a janela de congestionamento é reduzida.

6) campo Opções

O PTR (o registro do ponteiro) : registro de ponteiro, nomes de domínio recorde resolve PTR para endereços IP

TTL (Time To Live) :

Sobrevivência, limite de tempo do pacote na rede, para evitar que pacotes de dados que circulam continuamente sobre o IP da Internet, o valor inicial é geralmente de 64, cada rota depois de subtrair um 1.

TTL por pacote de filtração operadores sequestro, pacote falso é o primeiro a responder, e por isso verdadeiro TTL do pacote pode ser diferente (por exemplo ip.ttl == 54)

Seq : número de sequência de segmentos de dados, quando o receptor recebe os pacotes de fim, com base neste número pode ser encomendada, e similares em um número actual Seq Seq adquirido através da adição do comprimento

Len : comprimento do segmento de dados, o comprimento de cabeçalho do TCP não inclui

ACK : número de reconhecimento, o remetente recebe o reconhecimento direcção qual os bytes foram recebidos

O RTT (Round Trip Time) : um pacote que é enviado para trás a partir do momento

O RTO (retransmissão o tempo limite) : retransmissão contador de tempo limite, os pacotes de dados de descrição transmitidos a partir de um intervalo de tempo de falha, é um parâmetro importante para determinar se ou não a perda de pacotes e o congestionamento da rede se

A MTU (Unidade Máxima de Transmissão) : unidade de transmissão máxima

A MSS (o máximo do segmento Tamanho) :-se segmento, a quantidade máxima de dados que podem ser transportados no pacote de TCP, um cabeçalho TCP não está incluído e Opção. Normalmente valor é subtraído de MTU IPv4 cabeçalho (pelo menos 20 bytes), e o cabeçalho do TCP (pelo menos 20 bytes) obtido.

Win (tamanho da janela) : declarar sua janela própria receber

Window Scale TCP : expansão janela, Opção no além cabeçalho TCP, para a outra parte para declarar uma contagem de mudança, como um índice de 2, multiplicado pela definição da janela de recepção TCP, obter a janela TCP reais

O DF (o Não o fragmento) : na camada de rede, o cinto se ele é descartado sem fragmentação

O MF (Mais fragmentos) : 0 indica o último fragmento, não é a última representa um

7) expressão de filtro

pedido aperto de mão foi recusado: tcp.flags.reset === 1 && tcp.seq === 1

pedido de retransmissão Handshake: tcp.flags.syn === 1 && tcp.analysis.retransmission

Filtro de atraso de confirmação: tcp.analysis.ack_rtt> 0,2 e tcp.len == 0

Quatro, o protocolo UDP

UDP (User Datagram Protocol) protocolo User Datagram, não fornece uma simples e serviços de mensagens orientada a transação confiáveis.

Os dados da rede transmitir numa forma de comprimido de pacotes de dados. Os primeiros 8 bytes de cada informação de cabeçalho de pacote é armazenado, a transmissão restante contém dados específicos.

Embora UDP não é protocolo de transporte confiável, mas é a informação protocolo de distribuição ideal, tais como relatórios de mercado de ações na tela, exibir informação aeronáutica;

Modificar o Routing Information Protocol RIP (Routing Information Protocol) tabela de rotas, chat QQ, Thunder, telefonia via Internet.

eficiência TCP não é necessariamente menor do que o UDP, desde que a janela é grande o suficiente, o TCP não pode ser limitado pelo tempo de ida e volta e o fluxo constante de transferência de dados.

1) vantagem UDP

1. UDP comprimento de cabeçalho de protocolo é menos do que metade do cabeçalho do TCP, o mesmo tamanho dos pacotes UDP saco de líquidos que transportem mais de TCP,

2. Não há nenhum conceito Seq e ACK, etc., eliminando a sobrecarga de estabelecer uma conexão, resolve DNS sobre o uso do protocolo UDP.

2) desvantagem UDP

1. superior a MTU, quando a camada de rede remetente é responsável pela fragmentação, destinatário fragmentação após a recepção montado, esta consome os recursos de processo, reduzir o desempenho.

2. Sem retransmissão, perda de pacotes pelo processamento de camada de aplicação, uma operação de gravação tem seis blocos, quando há uma perda de tempo, ele deve re-enviar o pacote de 6.

3. fraquezas mecanismo de fragmentação, o receptor é um pacote de "Mais fragmentos" sinalizador para determinar se o pacote tenha sido completamente recebido, bem como fatia representa 1, 0 indica o último fragmento para ser montado.

Se você continuar a enviar marcar como UDP 1, o receptor não pode ser montado, é possível ficar sem memória.

 

Cinco, protocolo ICMP

ICMP (Internet Control Message Protocol) protocolo de mensagens de controle da Internet para a transmissão de informações de controle, relatórios de erros , não são extremamente importantes para a segurança da rede.

Por exemplo solicitado serviço não está disponível, ou roteamento host inacessível, o protocolo ICMP se baseia em protocolo IP para completar a tarefa, é parte integrante do protocolo IP.

Os programas do usuário geralmente não são diretamente usar a rede, usado para tais procedimentos de diagnóstico de ping tracert e similares.

 

Seis, protocolo DNS

DNS (Domain Name System) Sistema de nome de domínio, DNS é uma resolução de nomes de domínio do servidor.

execuções do protocolo DNS mais de protocolo UDP, a porta 53, funciona como se segue:

processo de resolução de DNS:

cliente DNS envia uma consulta para o servidor de nomes local A, se nenhum endereço IP A manutenção de registos, A enviará uma solicitação para o servidor de nomes de raiz B

Se B não é, A enviar um pedido a um C, para enviar nenhum pedido para D, em seguida, E, vai encontrar o endereço para o cliente DNS.

processo de resolução de nomes de domínio envolve consultas recursivas e consultas iterativas.

O cliente, em seguida, se conectar ao servidor Web.

 

Sete, o protocolo HTTP

HTTP (Hypertext Transfer Protocol) Protocolo de Transferência de Hipertexto, HTTP é um protocolo da camada de aplicação, sem estado, composto de solicitações e respostas, é um modelo cliente-servidor padrão.

HTTP fluxo de trabalho é o seguinte:

O seguinte é uma descrição de campo cabeçalho da mensagem, tirada da mesa " HTTP gráfico ."

Cabeçalho HTTP request:

 Aceitar  tipo de mídia (agente do usuário pode processar o MIME ) tipo de mídia e a prioridade relativa, "text / plain; q = 0,3"
 Accpet-Charset  A prioridade relativa do conjunto de caracteres e conjunto de caracteres para informar o suporte do servidor do agente do usuário, "iso-8859-5"
 Accept-Encoding  Informar o conteúdo de suporte agente usuário servidor de codificação e ordem de prioridade "gzip, deflate"
 Accept-Language  conjunto de linguagem natural para informar o agente usuário servidor é capaz de processar, e uma prioridade "zh-CN, zh; q = 0,7"
 Autorização  informações de autenticação do agente do usuário (valor certificado), "dWVub3NlbjpwYNzd Básico =="
 Espero  Prevista para ocorrer em certos comportamentos, retorna "417 Expectativa falhada" erro "100-continue"
 A partir de  O endereço do usuário de e-mail, agente do usuário a fim de mostrar a pessoa encarregada dos motores de busca e outras informações de contato, "[email protected]"
 Hospedeiro  Recursos que o nome do host Internet e número de porta do pedido devem ser incluídos no cabeçalho do pedido, "www.hh.com"
 Se-Match  pedido condicional, somente quando o Se-Match ETag corresponde ao valor do campo vai aceitar o pedido, caso contrário, "412 Precondition falhou"
 If-Modified-Since  Se o valor do campo é atualizado mais cedo do que os recursos de tempo (Last-Modified), o recurso não é atualizado retorna "304 não modificado"
 If-None-Match  Em contraste com o Se-Match
 Se-Range  Coincide valor do campo e ETag solicitar recursos ou tempo, como o âmbito do processamento do pedido, caso contrário, retornará todos os recursos
 Se-Unmodified-Since  E If-Modified-Since o efeito oposto
 Max-Forwards  Especifica o número máximo de servidores pode ser submetido a um número inteiro decimal. Servidor reduzindo a frente uma vez, 1, quando a transferência não é 0
 Proxy-Autorização  Ao receber o servidor enviado a partir do desafio de autenticação proxy envia neste campo, informações de notificação necessária para servidor de autenticação
 Alcance  Somente a extensão dos recursos solicitar seção de aquisição "5001-10000" de 5001 bytes para 10000 recursos bytes.
 referer  URI pedido recurso original está de volta
 TO  cliente codificação de transferência pode processar a resposta e a prioridade relativa pode especificar campo de reboque de modo a transferência fragmentada codificação. "Gzip, deflate; q = 0,5"
Agente de usuário  Criando navegador e agente de usuário nome e outras informações solicitadas

cabeçalhos de resposta HTTP:

 Accpet-Ranges  Quer dizer ao cliente servidor pode lidar com uma solicitação de intervalo para especificar o acesso a recursos no lado do servidor de uma seção. "Bytes"
 Era  Quanto tempo antes de criar a resposta do servidor de origem, o valor do campo em segundos
 ETag  identificador da entidade cliente, um dispositivo que pode identificar exclusivamente os recursos para fazer uma maneira corda
 Localização  O receptor em resposta a um pedido de posição guia URI configura diferentes recursos 3xx: redirecionamento de resposta
 Proxy-Authenticate  As informações de autenticação exigida pelo servidor proxy para o cliente
 Repetir-Depois  O cliente deve informar quanto tempo depois (em segundos ou data específica) envia uma solicitação novamente, principalmente com "503 Serviço indisponível" ou "3xx Redirect".
 Servidor  Informações sobre os aplicativos de servidor HTTP atuais instalados no servidor, incluindo o número da versão. "Apache / 2.2.6 (Unix) PHP / 5.2.5"
 Variar  controle de cache, defina "Accept-Language", se o valor do campo é o mesmo, a resposta é devolvida a partir do cache.
 WWW-Authenticate  autenticação de acesso HTTP, diz ao cliente para uma solicitação de acesso URI recursos de certificação aplicáveis ​​programa (Basic ou o Digest) e parâmetros especificados prompt de pergunta (desafio)

HTTP Geral campo de cabeçalho:

Controlo de Cache mecanismo de funcionamento Cache, uma pluralidade de instruções com "" split "privada, max-age = 0, no-cache"
Conexão Controle não é encaminhada para o campo de cabeçalho e agentes de gerenciamento conexões persistentes, "keep-alive"
Encontro A data ea hora HTTP pacote
Pragema HTTP1.1 antes campo legado, definida como compatibilidade com versões anteriores, o cliente solicitante única enviada. "No-cache"
Reboque Descrito mais tarde campo de cabeçalho de registo corpo da mensagem que pode ser aplicado quando o bloco de transporte codificada. Na última mensagem escrita informações importantes
Transfer-Encoding esquema de codificação usado para transmitir o pacote quando a transmissão bloco de "blocos"
Melhoria Detectar se o protocolo HTTP e outros protocolos podem ser usados ​​para a comunicação mais tarde
Através da Rastreando solicitações entre clientes e servidores e a mensagem de resposta caminho de transmissão, cada servidor proxy irá adicionar suas próprias informações para o servidor Via
Atenção Informar o usuário sobre algumas das questões relacionadas com o aviso de cache

HTTP campos de cabeçalho entidade:

 Permitir  告知客户端能够支持Request-URI指定资源的所有HTTP方法,“GET,HEAD”。当不支持,会返回“405 Method Not Allowed”
 Content-Encoding  服务器对实体的主体部分选用的内容编码方式,在不丢失内容的前提下进行压缩。“gzip”
 Content-Language  实体主体使用的自然语言(中文或英文等)
 Content-Length  主体部分的大小(单位是byte)
 Content-Location  给出与报文主体部分相对应的URI,与Location不同
 Content-MD5  一串由MD5算法生成的值,目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达
 Content-Range  针对范围请求,作为响应返回的实体的哪个部分符合范围请求,单位为byte。“bytes 5001-10000/10000”
 Content-Type  实体主体内对象的媒体类型,与Accpet一样,字段值用type/subtype形式赋值。“text/html; charset=UTF-8”
 Expires  将资源失效的日期告知客户端。当首部字段Cache-Control有指定max-age指令时,优先处理max-age指令
 Last-Modified  指明资源最终修改时间,一般来说,这个值就是Request-URI指定资源被修改的时间

详细信息可以参考MDN的《HTTP Headers

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准,一种通知客户端其接收文件的多样性的机制,文件后缀名在网页上并没有明确的意义。

 

八、HTTPS协议

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)基于SSL的HTTP协议,HTTP的安全版。

使用端口43,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输和身份认证的网络协议。

1)HTTPS工作流程

2)SSL

SSL(Secure Sockets Layer)安全套接层,TLS(Transport Layer Security)传输层安全是其继任者。

SSL和TLS在传输层对网络连接进行加密。

SSL协议分为两层,SSL记录协议(SSL Record Protocol)和SSL握手协议(SSL Handshake Protocol)。

SSL记录协议建立在TCP之上,提供数据封装、压缩加密基本功能的支持。

SSL握手协议建立在SSL记录协议之上,在数据传输之前,通信双方进行身份认证、协商加密算法和交换加密秘钥等。

SSL工作分为两个阶段,服务器认证和用户认证。

SSL协议既用到了公钥加密(非对称加密)又用到了对称加密技术。

3)数据包

客户端与服务器之间的通信:

1.客户端发出请求(Client Hello)

2.服务器响应(Server Hello)

3)证书信息

3.密钥交换

4.应用层信息通信

用户可以发送通过TLS层使用RC4的写实例加密过的普通HTTP消息,也可以解密服务端RC4写实例发过来的消息。

此外,TLS层通过计算消息内容的HMAC_MD5哈希值来校验每一条消息是否被篡改。

 

参考资料:

Wireshark网络分析的艺术

Wireshark数据包分析实战详解

车小胖谈网络:MTU 与 MSS

MTU & MSS 详解记录

网络传输分片、MTU、MSS

理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)

wireshark抓包图解 TCP三次握手/四次挥手详解

TCP 的那些事儿(下)

TCP segment of a reassembled PDU

SSL/TLS协议运行机制的概述

如何通过Wireshark查看HTTPS、HTTP/2网络包(解码TLS、SSL)

发布了37 篇原创文章 · 获赞 124 · 访问量 14万+

Acho que você gosta

Origin blog.csdn.net/zam183/article/details/103772175
Recomendado
Clasificación