TCP를 사용하는 인기 있는 서비스의 /etc/services에 UDP 및 TCP 항목이 있는 이유는 무엇입니까?

TCP를 사용하는 인기 있는 서비스의 /etc/services에 UDP 및 TCP 항목이 있는 이유는 무엇입니까?

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의 경우).

답변1

기본적으로 포트번호는 아주 오래전부터 부여되었기 때문인데, 이는 2011년 정도까지 전통이었습니다. 예를 들어 다음을 참조하세요.§7.1 "과거의 원칙"~의RFC 6335:

두 포트 중 하나가 요청되면 TCP 및 UDP 포트를 모두 할당합니다.

물론 포트 1023 이하는 대부분의 운영 체제에서 특별히 취급되는 "시스템 포트"이고 해당 범위의 대부분이 현재 할당되어 있으므로 언젠가는 할당이 해제될 가능성이 있습니다.

그런데 HTTP/3은 UDP 위에서 실행됩니다. 80/443뿐만 아니라 모든 UDP 포트를 사용할 수 있습니다. 그래서 실제로 이것들은 아직 사용되지 않습니다.

데비안의 경우,1.0에는 /etc/services이미 22/udp가 있습니다 (버즈 1996)..

그런데 삭제됐네요이번에 제출하세요2016년에는 netbase패키지 버전 5.4가 처음으로 출시되었습니다.

이 글을 쓰는 시점에서 데비안(버스터)의 최신 안정 버전은5.6이 있습니다. 그리고 최신 Ubuntu LTS(18.04, Bionic)네트워크 기본 패키지Debian netbase 5.4를 기반으로 볼 수 있습니다.변경 로그에는 udp/22 제거도 언급되어 있습니다..

관련 정보