CS 공부

DNS, IP, 포트, TCP, 3-Way Handshake까지 네트워크 흐름 정리

NiceKHJ 2025. 5. 29. 12:36

DNS

  • DNS (Domain Name System) 는 사람이 기억하기 쉬운 도메인을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 시스템
  • 예) www.google.com -> 142.250.206.68
  • DNS가 없다면 매번 사이트에 접속할 때마다 IP 주소를 직접 입력해야 한다.
  • 예시)
    • 브라우저 주소창에 www.naver.com 입력
    • DNS 서버에서 IP 주소(223.130.195.200)를 찾아서 반환
    • 해당 IP로 접속

 

IP

  • IP 주소 (Internet Protocol Address) 는 인터넷에서 컴퓨터의 위치를 나타내는 고유한 주소
  • 예) 네이버 : 223.130.195.200 , 구글 : 142.250.206.68
  • IP는 네트워크 상에서 컴퓨터를 구분하기 위해 사용한다.
  • 예시)
    • React 개발 서버 : localhost:3000
    • Node.js API 서버 : localhost:4000

 

포트

  • 포트 번호는 하나의 IP 주소 안에서 여러 개의 프로그램(서비스)을 구분하는 번호
  • 예) 80(HTTP) , 443(HTTPS), 3306(MySQL), 3000(React), 4000(Node.js)
  • 포트 번호가 없으면 컴퓨터는 어떤 프로그램에 요청을 보내야 하는지 알 수 없다.

 

3-Way Handshake

  • TCP 연결을 시작할 때 클라이언트와 서버가 서로 연결을 맺는 과정
  • 총 3단계 (SYN -> SYN-ACK -> ACK)로 이루어진다.
    • 1. SYN : 클라이언트 -> 서버 : 연결 요청 보냄
    • 2. SYN-ACK : 서버 -> 클라이언트 : 요청 받음. 준비 완료
    • 3. ACK : 클라이언트 -> 서버 : 확인. 데이터 전송 시작
  • 이 과정을 통해 데이터 전송 전에 서로 통신할 준비가 됐는지 확인한다.
  • TCP는 HTTP 요청뿐만 아니라 파일 전송, 메일 전송 등 다양한 네트워크 통신에서 사용된다.

*TCP (Transmission Control Protocol) 란 ?

  • 데이터를 주고받을 때 정확하고 안전하게 전송하기 위해 만든 통신 규칙(프로토콜)
  • 인터넷에서 가장 많이 쓰이는 전송 방식

TCP의 특징

특징 설명
신뢰성 보장 데이터가 손실 없이 정확히 도착하도록 보장
순서 보장 데이터가 전송 순서대로 도착하도록 보장
흐름 제어 수신자가 처리 가능한 만큼만 보내서 과부하 방지
오류 검출 및 재전송 전송중 오류 발생 시 자동으로 재전송

 

TCP 사용 예

  • 웹사이트 접속 (HTTP, HTTPS)
  • 파일 다운로드
  • 이메일 전송

 

요청 흐름 예시

  1. 브라우저에 www.naver.com 입력
  2. DNS 서버에서 IP 주소 조회 (223.130.195.200)
  3. 해당 IP와 포트(80)로 서버에 요청
  4. 서버와 3-Way Handshake 진행 후 통신 시작
  5. 서버에서 HTML, CSS, JS 파일을 응답으로 보냄
  6. 브라우저가 받은 파일을 해석해 화면에 표시