Estou lendo um livro sobre programação de rede com Go. Um dos capítulos trata do arquivo /etc/services. Algo que notei ao explorar esse arquivo é que certas entradas populares como HTTP e SSH, ambas usando 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 eles têm duas entradas? Não acredito que SSH ou HTTP usem UDP (confirmado por esta pergunta para SSH).
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 não sejam alocados 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, HTTP/3 roda sobre UDP. Embora possa usar qualquer porta UDP, não apenas 80/443. Então, realmente, aqueles ainda não são usados.
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) tem 5.6 . E o pacote netbase mais recente do Ubuntu LTS (18.04, bionic) é baseado no Debian netbase 5.4 e você pode ver que seu changelog também menciona a remoção de udp/22 .