[Programação de rede · Camada de rede] Protocolo IP


Os alunos que precisam de servidores em nuvem e outros produtos em nuvem para aprender Linux podem migrar para / --> Tencent Cloud <-- / --> Alibaba Cloud <-- / --> Huawei Cloud <-- / site oficial, servidores em nuvem leves são baixo custo para 112 yuans/ano, e novos usuários podem desfrutar de descontos ultrabaixos em seu primeiro pedido. 


Índice

1. O conceito de protocolo IP

2. Cabeçalho do protocolo IP

1. Comprimento de quatro cabeças

2. Comprimento total de 16 bits (descompactado)

3. Protocolo de 8 bits (uso separado)

4. Soma de verificação do cabeçalho de 16 bits

5. Tempo de sobrevivência de 8 bits

6. IP de origem de 32 bits e IP de destino de 32 bits

7. Versão de 4 bits/tipo de serviço de 8 bits

8. Identificação de 16 bits

9. Marca de 3 dígitos

Deslocamento de fatia de 10 e 13 bits

3. Divisão do segmento de rede do protocolo IP

1. Por que a criação de sub-redes é necessária?

2. Regras de segmentação de rede

2.1 Antigo esquema de divisão de número de rede e número de host (compatível com o novo esquema)

2.2 Novo esquema de divisão de número de rede e número de host CIDR

4. Endereço IP especial

5. Resolva o limite do número de endereços IP

6. IP privado e IP público

6.1NAT

6.2NAPT

6.3 Defeitos de NAT

7. Roteamento e tabela de roteamento

1. Roteamento

2. Tabela de roteamento

3. Algoritmo de geração de tabela de roteamento


1. O conceito de protocolo IP

IP: O endereço de um host de destino na rede de destino

Host: um dispositivo equipado com um endereço IP, mas não capaz de controlar o roteamento; Roteador: equipado com um endereço IP, mas capaz de controlar o roteamento; Node: um nome coletivo para host e roteador;

A função do endereço IP: localizar o host e enviar de forma confiável o datagrama do host A através da rede para o host B (os dados têm uma alta probabilidade de serem enviados com sucesso. Se o envio não for bem-sucedido, as várias estratégias do TCP permitem que o IP realize a transmissão de dados novamente. A combinação de TCP e IP garante comunicação de rede confiável)

2. Cabeçalho do protocolo IP

1. Comprimento de quatro cabeças

Como o protocolo TCP, o comprimento do cabeçalho de quatro bits do protocolo IP representa o comprimento total da mensagem = comprimento do cabeçalho de 4 bits * 4 bytes (o intervalo de valores dos bits de 4 bits é 0-15, e o comprimento do cabeçalho tem pelo menos 20 bytes, portanto o comprimento total da mensagem varia de 20 a 60 bytes)

Olhando para a mensagem na imagem acima, há um prompt de 20 bytes à direita. Este é um IP padrão. Para IP padrão, os dados binários do comprimento do cabeçalho de quatro dígitos são 0101 (5*4 é igual a 20)

2. Comprimento total de 16 bits (descompactado)

O comprimento total de 16 bits do protocolo IP inclui o cabeçalho e a carga útil, para que você possa obter o comprimento da carga útil através do comprimento total de 16 bits - cabeçalho (para a camada de aplicação, sua carga útil é a mensagem fornecida pela camada de transporte )

3. Protocolo de 8 bits (uso separado)

O número do protocolo da camada de transporte é escrito no protocolo de 8 bits, para que, ao entregar para cima, o protocolo IP saiba para qual protocolo da camada superior deseja entregar a carga útil.

4. Soma de verificação do cabeçalho de 16 bits

Se a verificação falhar, a mensagem será descartada diretamente. O TCP possui um mecanismo de retransmissão de tempo limite e a reenviará para o IP.

5. Tempo de sobrevivência de 8 bits

Durante a transmissão de mensagens pela rede, uma vez enviada do host, a mensagem não fica mais sob o controle do host. A mensagem será passada entre roteadores, podendo ocorrer problemas como encaminhamento de loop. Se o roteador não tiver o direito de descartar a mensagem, a mensagem será encaminhada em loop, ocupando recursos da rede em vão.

O tempo de vida de 8 bits do protocolo IP especifica o número máximo de saltos para este datagrama chegar ao seu destino, que geralmente é 64. (Cada vez que passa por uma rota, o TTL é reduzido e, quando chega a 0, o pacote é descartado diretamente)

6. IP de origem de 32 bits e IP de destino de 32 bits

O número da porta fornecido pela camada de aplicação é para a camada de transporte e o IP fornecido é para o protocolo IP. um pouco.

7. Versão de 4 bits/tipo de serviço de 8 bits

A versão de 4 dígitos é preenchida com 4, que representa ipv4 (ipv6 e ipv4 são incompatíveis)

Tipo de serviço de 8 bits: campo de prioridade de 3 bits (obsoleto), campo TOS de 4 bits e campo reservado de 1 bit (deve ser definido como 0). O TOS de 4 dígitos representa respectivamente: atraso mínimo, rendimento máximo, confiabilidade máxima e custo mínimo.Esses quatro entram em conflito entre si e apenas um pode ser selecionado. Para aplicações como ssh/telnet, o atraso mínimo é mais importante; para programas como ftp, o rendimento máximo é mais importante.

8. Identificação de 16 bits

Identificação (id) de 16 bits: identifica exclusivamente a mensagem enviada pelo host. Se a mensagem IP for maior que a unidade máxima de transmissão da camada de enlace de dados, fazendo com que a camada IP seja fragmentada, então o ID em cada fragmento será o mesmo.

9. Marca de 3 dígitos

Campo de sinalização de 3 dígitos: O primeiro bit é reservado (reservado significa ainda não usado, reservado). O segundo bit é 1, o que significa que a fragmentação é proibida. Neste momento, se o comprimento da mensagem exceder o MTU, o módulo IP descartará a mensagem. O terceiro bit significa "mais fragmentos". Se fragmentado, o último fragmento é definido como 0, os outros são 1. Se o bit do fragmento for 1, significa que o fragmento não é o último fragmento de toda a mensagem.

Para o sinalizador de proibição de fragmentação, se definido como 1, a fragmentação é proibida. Quando o pacote passa por um roteador na estrada, se o MTU máximo do roteador for menor que a carga útil do pacote, o roteador na estrada não poderá fragmentá-lo porque o sinalizador de proibição de fragmentação está definido como 1, e o pacote será descartado. A camada de transporte atingirá o tempo limite e retransmitirá a mensagem e selecionará um caminho de roteamento que possa satisfazer a transmissão de dados. (Encontrando o caminho para um maior rendimento). Então não seria bom definir o MTU máximo de todos os roteadores para 1.500 bytes? Na verdade, roteadores com MTU máximo menor são mais adequados para a passagem de cargas úteis de pequena capacidade e a velocidade é mais rápida.

Deslocamento de fatia de 10 e 13 bits

Deslocamento de fragmentação de 13 bits (deslocamento de framegament): É o deslocamento do fragmento em relação ao início da mensagem IP original. Na verdade, indica onde o fragmento atual está na mensagem original. O número real de bytes do deslocamento is Este valor é obtido por * 8. Portanto, exceto a última mensagem, o comprimento das demais mensagens deve ser um número inteiro múltiplo de 8 (caso contrário as mensagens não serão contínuas).

O protocolo de quadro MAC da camada de enlace de dados estipula que sua carga útil não pode exceder 1.500 bytes (MTU (unidade máxima de transmissão, que pode ser modificada)).Este limite de 1.500 bytes inclui o cabeçalho IP + a carga útil na mensagem IP.

O tamanho do pacote de dados só pode ser controlado pela camada de transporte, mas às vezes ainda ultrapassa 1.500 bytes, o que só pode ser resolvido pela fragmentação e montagem do protocolo IP. A camada IP final de envio se fragmenta, e cada fragmento terá um Cabeçalho IP.A camada IP final é montada (o limite de bytes faz com que a camada IP seja fragmentada e montada, o que não é bom, porque a fragmentação aumentará a probabilidade de perda de pacotes ). Os frames TCP e MAC não se preocupam com a fragmentação IP e a montagem de pacotes de dados, este é apenas o comportamento da própria camada IP.

Fragmentação: Se Mais Fragmentos for 1, significa que a mensagem foi fragmentada. Se mais fragmentos forem 0 e o deslocamento do fragmento for igual a 0, significa que não há fragmentação e vice-versa.

Montagem: Basta classificar os pacotes IP fragmentados de acordo com o deslocamento da foto em ordem crescente.

Como garantir a montagem correta: O protocolo IP possui uma soma de verificação de cabeçalho de 16 bits e o protocolo TCP também possui uma soma de verificação.

Retransmissão de perda de pacote: Se um determinado pedaço de pacote for perdido devido à fragmentação, o conjunto de emenda falhará. Então o par precisa reemitir. O mecanismo de reemissão está disponível apenas na camada TCP. O IP não tem a função de reemissão. No entanto, para o TCP, o TCP não se importa como o IP é fragmentado e qual parte é perdida. Não importa , o TCP reenviará apenas uma mensagem completa para a camada IP.

3. Divisão do segmento de rede do protocolo IP

O endereço IP tem um total de 32 bits e é dividido em duas partes, o número da rede e o número do host.

Número da rede: Certifique-se de que os dois segmentos de rede conectados entre si tenham identidades diferentes; (assim como diferentes faculdades na escola têm números diferentes)

Número de host: No mesmo segmento de rede, os hosts possuem o mesmo número de rede, mas devem ter números de host diferentes;

1. Por que a criação de sub-redes é necessária?

Cada host na Internet deve pertencer a uma determinada sub-rede, para facilitar a localização desse host. O Host A envia dados para o Host B. Quando o datagrama passa pelo roteador, o número de rede correto será selecionado, excluindo instantaneamente um grande número de endereços IP, melhorando significativamente a eficiência da pesquisa.

2. Regras de segmentação de rede

1. O encaminhamento de dados entre diferentes segmentos de rede depende de roteadores, portanto, roteadores são dispositivos que pertencem a vários segmentos de rede. O roteador também é um host e possui um endereço IP do segmento de rede atual em vários segmentos de rede. Normalmente, o endereço IP da sub-rede do roteador é o identificador do segmento de rede.1 (porta LAN)

2. Em uma sub-rede, o dispositivo IP na sub-rede de gerenciamento geralmente é um roteador.

3. Existe uma tecnologia chamada DHCP, que pode atribuir automaticamente endereços IP a novos nós de host na sub-rede, evitando a inconveniência do gerenciamento manual de IP. Roteadores gerais têm função DHCP, portanto, o roteador também pode ser considerado um servidor DHCP.

2.1 Antigo esquema de divisão de número de rede e número de host (compatível com o novo esquema)

Todos os endereços IP são divididos em cinco categorias:

Classe A 0.0.0.0 a 127.255.255.255

Classe B 128.0.0.0 a 191.255.255.255

Classe C 192.0.0.0 a 223.255.255.255

Classe D 224.0.0.0 a 239.255.255.255

Classe E 240.0.0.0 a 247.255.255.255

Este método de divisão não é razoável. Por exemplo, para um endereço IP Classe A, o número da rede tem apenas 7 dígitos, mas o número do host tem 24 dígitos. Existem muito poucos cenários em que há tantos hosts em uma sub-rede, fazendo com que a Classe A endereços de classe B são muito desperdiçados; os endereços de classe B são mais razoáveis, o que faz com que a maioria das organizações solicitem endereços de classe B, fazendo com que os endereços de classe B sejam alocados antecipadamente.

Em resposta a este esquema de divisão irracional, as pessoas propuseram um novo esquema de divisão CIDR (Classless Interdomain Routing)

2.2 Novo esquema de divisão de número de rede e número de host CIDR

Introduza uma máscara de sub-rede adicional para distinguir o número da rede e o número do host:

A máscara de sub-rede também é um número inteiro positivo de 32 bits. Geralmente termina com uma string "0";

Execute uma operação "E bit a bit" no endereço IP e na máscara de sub-rede e o resultado será o número da rede;

A divisão de números de rede e números de host não tem nada a ver com o fato de o endereço IP ser Classe A, Classe B ou Classe C;

Nota: O número da rede é determinado pela posição do bit mais baixo do binário 1 da máscara de sub-rede. Os dígitos após o dígito binário mais baixo da máscara de sub-rede, 1, pertencem ao número do host.

Exemplo 1:

Execute uma operação AND bit a bit nos números binários do endereço IP e da máscara de sub-rede para obter o número da rede. O número do host é 0-255 (0000 0000-1111 1111), mas os dois números de host 0 e 255 não serão usados, porque 0 representa o número da rede e 255 representa o endereço de broadcast.

Exemplo 2: 

4. Endereço IP especial

1. Defina todos os endereços de host no endereço IP como 0, que se torna o número da rede, representando esta LAN;

2. Defina todos os endereços de host no endereço IP como 1, que se torna um endereço de broadcast, usado para enviar pacotes de dados a todos os hosts conectados entre si no mesmo link;

3. O endereço IP 127.* é usado para testes de loopback local, geralmente 127.0.0.1

5. Resolva o limite do número de endereços IP

Os endereços IP têm apenas 32 bits. Devido à existência de alguns endereços IP para fins especiais, os endereços IP disponíveis são muito inferiores a 4,29 bilhões. No entanto, o protocolo TCP/IP estipula que cada host precisa de um endereço IP (na verdade, cada rede cartão precisa ser configurado com um ou mais IPs), então o endereço IP está longe de ser suficiente. Embora o CIDR alivie até certo ponto o problema da baixa utilização de IP do antigo padrão, o número total de IPs não aumentou.

Use os seguintes métodos para resolver o problema de endereços IP insuficientes:

1. Alocação dinâmica de endereços IP: atribua endereços IP apenas a dispositivos conectados à rede, portanto, dispositivos com o mesmo endereço MAC podem não obter necessariamente o mesmo endereço IP sempre que se conectam à Internet;

2. Tecnologia NAT

3. IPv6: IPv6 não é uma simples versão atualizada do IPv4. São dois protocolos não relacionados e não compatíveis entre si: o IPv6 usa 16 bytes e 128 bits para representar um endereço IP; no entanto, o IPv6 ainda não é popular;

6. IP privado e IP público

Se uma organização estabelecer uma LAN internamente, o endereço IP será usado apenas para comunicação dentro da LAN e não estará diretamente conectado à Internet. Em teoria, qualquer endereço IP pode ser usado, mas a RFC 1918 estipula endereços IP privados para estabelecer uma LAN.

1. 10.*, os primeiros 8 dígitos são o número da rede, um total de 16.777.216 endereços (usados ​​por roteadores de nível empresarial)

2. 172.16 a 172.31., os primeiros 12 dígitos são o número da rede, um total de 1.048.576 endereços (usados ​​por roteadores de nível empresarial)

3. 192.168.*, os primeiros 16 dígitos são o número da rede, um total de 65.536 endereços (usados ​​por roteadores domésticos)

Os incluídos nesta faixa tornam-se IPs privados e os demais são chamados de IPs globais (ou IPs públicos).

O papel do roteador:

1. Encaminhamento de pacotes de dados

2. Função DHCP, configuração de uma sub-rede (como configurar uma rede sem fio. Nota: LAN é um IP de intranet)

3. Função NAT

6.1NAT

1. O segundo ponto mencionou que os roteadores podem construir sub-redes. Para roteadores domésticos, a sub-rede construída contém vários hosts. Para roteadores de operadora, a sub-rede construída contém vários roteadores domésticos. Quando enviamos dados do host, os dados não estão necessariamente na rede pública, mas também podem estar na sub-rede da operadora, e o pacote de dados ainda pode estar no ambiente da intranet.

2. O roteador será equipado com pelo menos dois IPs, um dos quais é o IP da sub-rede, também chamado de IP da porta LAN, que corresponde à sub-rede construída pelo roteador; o outro IP é o IP da porta WAN, que é o IP externo. Sim, está conectado ao roteador de nível superior. A porta WAN do roteador da operadora mais externa está conectada ao IP público.

3. Roteadores diferentes têm o mesmo IP de sub-rede (geralmente 192.168.1.1). Os endereços IP de host na mesma sub-rede não podem ser repetidos, mas os endereços IP entre sub-redes diferentes podem ser repetidos.

4. Quando a rede interna IP192.168.1.201 envia dados para a rede pública IP122.77.241.3, a sub-rede descobre que o IP de destino não pertence ao segmento de rede atual e entregará o pacote de dados ao roteador, permitindo o roteador prossegue camada por camada, procure a entrega e finalmente chegue ao IP de destino. De acordo com o terceiro ponto, se o servidor com o IP de destino obtiver o IP da intranet, ele não poderá devolvê-lo tocando no cabo de rede. Como esse IP da intranet pode existir em várias intranets, é necessário que o host entregue o pacote de dados ao roteador.Substitua o IP passo a passo pelo IP da porta WAN do roteador. Essa tecnologia de substituição de porta WAN é chamada NAT (Network Address Translation) .

Na LAN, existem vários hosts acessando o mesmo servidor de rede externo. Nos dados retornados pelo servidor, o número da rede de destino é o mesmo. Então, como o roteador NAT determina para qual host da LAN encaminhar esse pacote de dados? Até mesmo diferentes processos de cliente em um host na LAN iniciam a transmissão de dados para a extremidade remota por meio de diferentes números de porta de cliente. Para enviar os pacotes corretos para o processo correto, o roteador NAT precisa usar NAPT para resolver este problema, utilizando o formulário IP+porta para estabelecer a associação.

6.2NAPT

 O roteador NAT mantém uma tabela de conversão K/V. Por exemplo, o endereço de origem é 10.0.0.11: 1025 e o endereço de destino é 163.221.120.9: 80. Após a conversão da porta WAN do roteador NAT, o endereço de destino permanece inalterado e o endereço de origem é substituído por 202.244.174.37:1025.

Há outro conjunto de endereços de origem e de destino na figura. Ao passar pelo roteador NAT, o IP da porta WAN será substituído por 202.244.174.37. Para distinguir, diferentes números de porta serão usados ​​para estabelecer o relacionamento de mapeamento.

Portanto, o endereço de origem + o endereço de destino antes da conversão e o endereço de origem e o endereço de destino após a conversão formam uma tabela de mapeamento que é um valor-chave um para o outro.Esta tabela é chamada de tabela de conversão NAT. Esta tabela de conversão pode ser consultada em ambas as direções.

6.3 Defeitos de NAT

Não foi possível estabelecer conexão do NAT externo com o servidor interno;

A geração e destruição de tabelas de tradução exigem sobrecarga adicional;

Assim que o dispositivo NAT se tornar anormal durante o processo de comunicação, todas as conexões TCP serão desconectadas mesmo se houver backup a quente.

7. Roteamento e tabela de roteamento

1. Roteamento

O processo de roteamento é um processo de "pedir direções", passo a passo.

O chamado "um salto" é um intervalo na camada de enlace de dados. Especificamente, em Ethernet, refere-se ao intervalo de transmissão do quadro do endereço MAC de origem até o endereço MAC de destino.

O processo de transmissão de pacotes de dados IP também é o mesmo que pedir instruções:

1. Quando o pacote de dados IP chega ao roteador, o roteador primeiro verificará o IP de destino;

2. O roteador decide se o pacote de dados pode ser enviado diretamente ao host de destino ou se precisa ser enviado ao próximo roteador. Repita sucessivamente até que o endereço IP de destino seja alcançado; (se um host não conseguir encontrar um gateway disponível, ele enviará o pacote de dados para o gateway designado padrão e este gateway processará o pacote de dados. O gateway usado pelo host agora geralmente refere-se ao gateway padrão.)

3. Use a tabela de roteamento para determinar para onde o pacote de dados deve ser enviado.

2. Tabela de roteamento

Use o comando route para visualizar a tabela de roteamento da máquina Linux:

[jly@VM-4-11-centos linux-code]$ route
Kernel IP routing table
目标网络			下一跳(网关)	子网掩码		   使用状态					哪个接口
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 eth0 //默认网关
10.0.4.0        0.0.0.0         255.255.252.0   U     0      0        0 eth0
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 eth0

[jly@VM-4-11-centos linux-code]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.4.11  netmask 255.255.252.0  broadcast 10.0.7.255
        inet6 fe80::5054:ff:fe9c:67a2  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:9c:67:a2  txqueuelen 1000  (Ethernet)
        RX packets 171933080  bytes 33378182758 (31.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 165679727  bytes 28636998057 (26.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12503288  bytes 1870189412 (1.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12503288  bytes 1870189412 (1.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Neste momento existe um destino IP10.0.4.0

1. Percorra a tabela de roteamento

2. O IP de destino e a máscara de sub-rede configuradas na tabela de roteamento determinam a rede de destino à qual o pacote de dados é destinado.

3. Compare os resultados de e com a rede alvo (destino)

4. Encontre a rede de destino no roteador. Essa rede de destino é o destino do próximo salto.

Neste momento existe outro destino IP202.10.1.2

1. Repita as etapas acima e descubra que não há rede de destino na tabela de roteamento.

2. Em seguida, o destino do próximo salto do roteador é o gateway padrão configurado no roteador.

3. Envie mensagens pela interface Iface

Nota: Os números de rede dos datagramas localizados em diferentes roteadores são diferentes. A máscara de sub-rede está ficando cada vez mais longa, indicando que a rede de destino do datagrama está se tornando cada vez mais específica.

3. Algoritmo de geração de tabela de roteamento

A tabela de roteamento pode ser mantida manualmente pelo administrador da rede (roteamento estático) ou gerada automaticamente por meio de alguns algoritmos (roteamento dinâmico), como algoritmo de vetor de distância, algoritmo LS, algoritmo Dijkstra, etc.

Acho que você gosta

Origin blog.csdn.net/gfdxx/article/details/132241708
Recomendado
Clasificación