Relação entre porta, número de porta e protocolo?

3
  1. Uma "porta" é um terminal de comunicação (na camada de transporte)?

    Um "número da porta" é um endereço atribuído a uma porta?

    Dada uma porta, podemos alterar o número da porta atribuído a ela, semelhante a que é possível alterar o endereço IP atribuído a uma interface de rede?

  2. De link

    sockets with TCP port 53 and UDP port 53 are distinct sockets

    O que a citação significa? Especificamente,

    • Uma porta pode ser usada por dois protocolos de transporte (por exemplo, TCP e UDP) simultaneamente? (Meu entendimento é que um porto faz parte de um protocolo de transporte, e não pode pertencer a outro protocolo, mesmo em um tempo diferente.)

    • A citação significa que um número de porta 53 pode ser atribuído a uma porta no TCP e a uma porta no UDP em momentos diferentes (mas não simultaneamente)?

por Tim 15.10.2015 / 21:13

2 respostas

4

Um computador pode ter um ou mais endereços IP.

Alguns protocolos IP, como o ICMP, precisam apenas de endereços IP para se comunicar. Outros, como UDP e TCP, exigem que os pacotes sejam endereçados a uma porta, bem como a um endereço IP. Geralmente, você tem um programa que implementa um serviço de escuta em uma porta conhecida para que outros sistemas saibam como contatá-lo. Um servidor ssh irá, por exemplo, escutar na porta 22 / tcp:

$ netstat -a -t
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:ssh                   *:*                     LISTEN     

$ netstat -a -t -n
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN   

O programa netstat dará nomes simbólicos aos números de portas, procurando em /etc/services , e um programa como sshd chamará getservbyname (" ssh "," tcp ") para converter um nome para um número de porta.

Se você ouvir o endereço IP 0.0.0.0 , isso significa ouvir todos os endereços IP de um sistema, e é por isso que o netstat imprime * .

O servidor ssh não tem para escutar na porta 22. Você pode alterar seu arquivo de configuração para escutar na porta 8022, por exemplo. Contanto que o usuário remoto saiba o número da porta, e qualquer firewall interferente permita o tráfego para a porta 8022, ele funcionará.

Para centenas de serviços em todo o mundo, os números de porta conhecidos são mantidos no Nome do Serviço e Registro do Número de Porta do Protocolo de Transporte . É um superconjunto do /etc/services do seu sistema local.

Um soquete é um terminal de comunicação. Antes de poder ser usado, ele deve estar vinculado a um endereço IP, número de porta e protocolo. Se estiver usando TCP, ele deve estar conectado a outro soquete antes que os pacotes possam ser trocados. Um servidor chama socket para criar um soquete, bind para vinculá-lo e listen para escutar conexões. Um cliente usa socket e bind e, em seguida, connect para se conectar a um servidor. (A chamada para bind é opcional para um cliente; quando connect for chamado, o sistema alocará uma porta não usada e escolherá um endereço IP apropriado para ligar ao soquete.)

sockets with TCP port 53 and UDP port 53 are distinct sockets

Se um serviço pode ser oferecido em TCP e UDP, é habitual que o número da porta seja o mesmo em ambos os protocolos. No caso acima, você provavelmente teria um único servidor DNS que cria dois sockets, um que escuta em 0.0.0.0:53/tcp e o outro escuta em 0.0.0.0:53/udp .

Alguns serviços mais antigos foram projetados para serem executados em apenas um protocolo e, nesses casos, você pode ver dois serviços usando o mesmo número de porta (mas, é claro, em protocolos diferentes). Por exemplo, 512 / tcp é para rexec, mas 512 / udp é para biff. Sistemas como este têm programas completamente diferentes ouvindo nas portas. rexecd escuta em 512 / tcp e comsat escuta em 512 / udp.

    
por 22.10.2015 / 20:45
8

TCP e UDP são dois protocolos diferentes sobre IP. O número da porta TCP faz parte do protocolo TCP e a parte do número da porta UDP do protocolo UDP. Então, sim, os dois podem ser usados simultaneamente, já que o TCP e o UDP são dois protocolos diferentes, com diferentes números de protocolo (veja /etc/protocols ).

Um servidor DNS pode e escuta UDP / 53 e TCP / 53, ao mesmo tempo, pois o UDP é mais rápido e tem menos sobrecarga para solicitações diárias, enquanto o TCP pode ser necessário para solicitações de DNS especialmente grandes de limites de tamanho de pacote UDP desde o caminho de volta quando. Aqui está named ouvindo os dois, ao mesmo tempo, por exemplo:

$ sudo lsof -i -nP | fgrep \*:53
named    1267  named   20u  IPv6    9691      0t0  TCP *:53 (LISTEN)
named    1267  named  512u  IPv6    9690      0t0  UDP *:53 
$ 

Esse named pode atender centenas ou até milhares de solicitações simultâneas de clientes UDP e TCP por meio das duas portas distintas listadas acima.

TCP e UDP, de outra forma, são duas implementações distintas de uma camada de transporte e suportam dois campos de dezesseis bits cada, que especificam a porta de origem e a porta de destino para cada pacote TCP ou UDP. O número da porta para nomear o relacionamento de mapeamento poderia ser corrigido ajustando o arquivo /etc/services (provavelmente uma idéia muito, muito ruim), ou um servidor poderia ser instruído a escutar em algum número de porta não padrão, assumindo que os sistemas cliente estão todos corretamente reconfigurado para se conectar a ele naquele número de porta não padrão, por exemplo sshd -p 1234 em server e, em seguida, ssh -p 1234 server para se conectar a essa porta TCP não padrão 1234, em vez do usual tcp/22 . Ou, um servidor DNS pode ser configurado para ser executado na porta UDP 8475, embora seja necessário usar um programa cliente personalizado, como dig -p 8475 @server ... , para consultar essa porta UDP personalizada, já que os sistemas operacionais em geral só conversam UDP / 53 ou TCP / 53 em qualquer IP do servidor de nomes que eles recebem.

    
por 15.10.2015 / 21:29

Tags