CHAPTER 02 · ADDRESS, PORT & PROTOCOL
난 어디 사는
누구인가?
이름과 주소가 정확해야 상대가 나를 찾을 수 있습니다.
네트워크에서도 예외는 없습니다.

01
이제 나를 소개할 수 있다
1장에서 명령어를 배웠다면, 이제 내가 누구인지, 어디에 있고, 어디에 소속되어 있으며, 어디가 출입구인지 확인할 수 있습니다.
이 정보들은 서로 독립적이지 않습니다. 하나라도 잘못 입력하면 통신이 실패하거나 엉뚱한 목적지로 향합니다. 사람의 소개에서 이름과 주소가 중요한 것처럼, 네트워크 설정에서도 정확성이 가장 중요합니다.
02
자신의 이름을 잘못 입력한 경우
상대가 내 이름을 다르게 알고 있다면 나를 제대로 찾을 수 없습니다. 네트워크에서는 잘못된 호스트 이름이나 DNS 정보가 이와 비슷한 혼란을 만듭니다.




이름이 틀리면 상대를 식별하지 못한다. DNS는 도메인 이름과 IP 주소를 연결하며, hostname은 장비를 사람이 구분하기 쉽게 만든다.
03
자신의 주소를 잘못 입력한 경우
주소가 잘못되면 이름을 정확히 알아도 목적지에 도착할 수 없습니다. IP 주소, 서브넷, 게이트웨이 중 하나만 틀려도 통신은 예상치 못한 방향으로 흘러갑니다.






주소는 비슷한 값이 아니라 정확한 값이어야 한다
IP 주소는 내 위치, 서브넷 마스크는 같은 동네의 범위, 기본 게이트웨이는 다른 동네로 나가는 출입구입니다. DNS는 목적지의 이름을 주소로 번역합니다.
04
Netplan에 정확히 기록하기
Ubuntu에서는 /etc/netplan/*.yaml 파일에 네트워크 설정을 기록합니다. YAML은 들여쓰기가 문법이므로 탭 대신 공백을 사용하고 정렬을 정확하게 맞춰야 합니다.

- dhcp4: false
- DHCP 자동 할당을 끄고 직접 주소를 지정합니다.
- addresses
192.168.0.30/24처럼 IP와 네트워크 범위를 설정합니다.- routes / via
- 기본 경로와 게이트웨이 주소를 지정합니다.
- nameservers
- 도메인 이름을 해석할 DNS 서버를 지정합니다.
$ sudo netplan try
$ sudo netplan apply
$ ip addr
$ ip route
$ resolvectl statusnetplan try를 먼저 사용하면 안전합니다. 일정 시간 안에 확인하지 못하면 설정을 되돌리므로, 원격 서버에서 잘못된 설정 때문에 접속이 끊기는 위험을 줄일 수 있습니다.
05
IP가 집이라면 포트는 방이다
IP 주소만으로는 컴퓨터 안의 어떤 프로그램과 대화할지 알 수 없습니다. 포트 번호는 한 장비 안에서 실행 중인 여러 서비스 중 목적지를 구분하는 번호입니다.

택배가 집 주소에 도착한 뒤 정확한 방을 찾아가듯, 패킷은 IP 주소에 도착한 뒤 포트 번호로 서비스를 찾습니다. 포트 번호는 0부터 65535까지 사용하며, 실제로 열려 있는 포트는 ss -tuln으로 확인할 수 있습니다.
자주 사용하는 포트와 프로토콜
TCPFTP파일 전송과 제어에 사용합니다. 암호화되지 않으므로 실무에서는 SFTP를 주로 사용합니다.TCPSSH / SFTP서버 원격 접속, 명령 실행과 안전한 파일 전송에 사용합니다.TCPTelnet원격 접속용이지만 평문 통신이므로 보안상 사용을 피해야 합니다.TCPSMTP메일 서버 사이에서 이메일을 전송합니다.UDP / TCPDNS도메인을 IP로 변환합니다. 일반 질의는 UDP, 큰 응답이나 영역 전송은 TCP도 사용합니다.UDPDHCP서버가 클라이언트에 IP, 게이트웨이, DNS 정보를 자동 할당합니다.TCPHTTP암호화되지 않은 웹 페이지 요청과 응답에 사용합니다.TCPPOP3메일 서버에서 이메일을 내려받습니다.UDPNTP컴퓨터와 서버의 시스템 시간을 동기화합니다.TCPIMAP메일을 서버에 보관하면서 여러 장치에서 동기화합니다.UDPSNMP네트워크 장비 상태를 조회하고 장애 알림을 전달합니다.TCP / UDPLDAP사용자와 조직 정보 등 디렉터리 서비스를 조회합니다.TCPHTTPSTLS로 암호화된 안전한 웹 통신에 사용합니다.TCPSMBWindows 환경의 파일·프린터 공유에 사용합니다.TCPMySQLMySQL·MariaDB 데이터베이스 접속에 사용합니다.TCP / UDPRDPWindows 원격 데스크톱 화면 접속에 사용합니다.TCPPostgreSQLPostgreSQL 데이터베이스 접속에 사용합니다.06
프로토콜은 대화의 약속이다
같은 주소와 방을 찾아가도 서로 다른 언어를 쓰면 대화할 수 없습니다. 프로토콜은 데이터를 어떤 형식과 순서로 주고받을지 정한 약속입니다.
TCP
정확성과 신뢰성이 중요한 전송- 통신 전에 연결을 맺습니다.
- 데이터의 도착 여부와 순서를 확인합니다.
- 손실되면 다시 전송하여 빠진 데이터를 복구합니다.
- 웹, SSH, 이메일, 파일 전송 등에 적합합니다.
UDP
속도와 실시간성이 중요한 전송- 연결 확인 없이 바로 데이터를 보냅니다.
- 도착 확인과 재전송을 기본적으로 하지 않습니다.
- 빠르지만 손실·순서 변경이 발생해도 자체 복구를 보장하지 않습니다.
- 실시간 영상·음성, 게임, DNS 등에 적합합니다.
정확히 이해하기: TCP라고 물리적인 데이터 손실 자체가 없는 것은 아닙니다. 전송 도중 손실을 감지하면 재전송해 애플리케이션에는 빠짐없이 전달합니다. UDP도 항상 손실되는 것은 아니지만, 손실 여부를 확인하거나 자동으로 복구해 주지 않습니다.
네트워크에서 나를 정확히 소개하려면 IP·서브넷·게이트웨이·DNS가 필요하다. 서비스를 찾아가려면 포트가, 서로 대화하려면 프로토콜이 필요하다.