Я читаю книгу о сетевом программировании на Go. Одна из глав посвящена файлу / etc / services. При исследовании этого файла я заметил, что некоторые популярные записи, такие как HTTP и SSH, которые используют TCP на транспортном уровне, имеют вторую запись для UDP. Например, в 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
Кто-нибудь знает, почему у них есть две записи? Я не верю, что SSH или HTTP когда-либо используют UDP (подтверждается этим вопросом для SSH).
22/udp
был удален в Debian в 2016 году. IANA по-прежнему перечисляет 22 / udp и перечисляет как udp, так и tcp для большинства протоколов, которые обычно реализуются только на одном из них. Может быть, это означает, что 22 зарезервировано для ssh на тот случай, если кто-нибудь захочет реализовать ssh через udp когда-нибудь?