Estou lendo um livro sobre programação de rede com o Go. Um dos capítulos trata do arquivo / etc / services. Algo que notei ao explorar esse arquivo é que determinadas entradas populares como HTTP e SSH, que usam TCP na camada de transporte, têm uma segunda entrada para UDP. Por exemplo, no Ubuntu 14.04:
ubuntu@vm1:~$ grep ssh /etc/services
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp
ubuntu@vm1:~$ grep http /etc/services
http 80/tcp www # WorldWideWeb HTTP
http 80/udp # HyperText Transfer Protocol
Alguém sabe por que estes têm duas entradas? Não acredito que o SSH ou o HTTP use o UDP (confirmado por esta pergunta para o SSH).
linux
networking
services
protocols
sixty4bit
fonte
fonte
22/udp
foi removido no Debian em 2016. A IANA ainda lista 22 / udp e lista o udp e o tcp para a maioria dos protocolos que geralmente são implementados apenas em um deles. Pode ser que isso signifique 22 para o ssh, caso alguém queira implementar o ssh sobre o udp algum dia?Respostas:
Basicamente, é porque essa era a tradição desde quando os números de porta começaram a ser atribuídos até aproximadamente 2011. Veja, por exemplo, §7.1 “Princípios Passados” da RFC 6335 :
É possível que eles sejam desalocados algum dia, é claro, já que as portas 1023 e abaixo são as "portas do sistema", tratadas especialmente pela maioria dos sistemas operacionais, e a maior parte desse intervalo está atualmente atribuída.
E, a propósito, o HTTP / 3 funciona com UDP. Embora possa usar qualquer porta UDP, não apenas 80/443. Então, esses ainda não foram utilizados.
No que diz respeito ao Debian, ele
/etc/services
já tinha 22 / udp em 1.0 (buzz 1996) .No entanto, foi removido neste commit em 2016, lançado pela primeira vez na versão 5.4 do
netbase
pacote.Até o momento, a versão estável mais recente do Debian (buster) possui a versão 5.6 . E o último pacote netbase do Ubuntu LTS (18.04, biônico) é baseado no Debian netbase 5.4 e você pode ver que o seu log de alterações também menciona a remoção do udp / 22 .
fonte