Como as portas funcionam com IPv6?

143

A notação quadrangular pontilhada IPv4 convencional separa o endereço da porta com dois pontos, como neste exemplo de servidor da web na interface de loopback:

127.0.0.1:80

mas com a notação IPv6, o endereço em si pode conter dois pontos. Por exemplo, esta é a forma abreviada do endereço de loopback:

::1

Como as portas (ou seu equivalente funcional) são expressas em uma representação textual de um endereço IPv6 / terminal de porta?

Peter Wone
fonte

Respostas:

33

Os protocolos usados ​​no IPv6 são os mesmos que no IPv4. A única coisa que mudou entre as duas versões é o esquema de endereçamento, DHCP [DHCPv6] e ICMP [ICMPv6]. Então, basicamente, qualquer coisa relacionada ao TCP / UDP, incluindo o intervalo de portas (0-65535), permanece inalterada.

Edit: Port 0 é uma porta reservada no TCP, mas existe. Veja RFC793

Andrew Moore
fonte
6

Eles são iguais, não são? Agora estou perdendo a confiança em mim mesmo, mas realmente pensei que o IPv6 era apenas uma mudança de endereçamento. TCP e UDP ainda são endereçados como estão no IPv4.

Oli
fonte
3
Não é apenas uma alteração de endereço. Ele deve trazer alguns recursos interessantes (por exemplo, multicast global). Mas sim, é transparente para as camadas superiores.
Tarnay Kálmán
4
É "apenas" uma alteração de endereço. O que você está falando é abordar :) Mas a razão pela qual preocupa / confunde as pessoas é que o design de rede trata "endereçamento" como endereços e "serviços" como números de porta. Mas você não pode fazer nada no TCP ou UDP sem os dois, portanto a maioria das pessoas está tentando fazer o endereçamento no nível do soquete funcionar e não consegue entender por que as pessoas continuam inventando ou alterando o delimitador: espaços, pontos e pontos. dois pontos e sinais de libra? Então, sim, vejo o IPv6 preocupando as pessoas.
benc
6

Estou bastante certo de que as portas têm apenas uma parte no tcp e no udp. Portanto, é exatamente o mesmo, mesmo se você usar um novo protocolo IP

svrist
fonte
1
O DCCP e o SCTP também têm portas, mas as portas no SCTP são um pouco diferentes devido ao identificador de associação adicional.
James woodyatt
6

A Wikipedia aponta que a sintaxe de um endereço IPv6 inclui dois pontos e tem um formato curto, impedindo a análise de comprimento fixo, e, portanto, é necessário delimitar a parte do endereço com []. Isso evita completamente os erros de análise ímpares.

(Extraído de uma edição que Peter Wone fez da pergunta original.)

Ajedi32
fonte
5

Eu diria que a melhor referência é o formato para endereços IPv6 literais nos URLs onde o uso de [] é definido.

Além disso, se for para programação e código, especificamente Java, eu sugiro que leia Classe para definição java / net / URL da Classe para Inet6Address, onde o uso do endereço Inet4 na conotação Inet6 e outros casos são apresentados em detalhes. Para o meu caso, o endereço mapeado para IPv4 No formato :: ffff: wxyz, o endereço IPv6 é usado para representar um endereço IPv4 também resolveu meu problema. Ele permite que o programa nativo use a mesma estrutura de dados de endereço e também o mesmo soquete ao se comunicar com os nós IPv4 e IPv6. Este é o caso da configuração padrão das caixas Linux na nuvem da Amazon.

zhrist
fonte