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)
- 파일 다운로드
- 이메일 전송
요청 흐름 예시
- 브라우저에 www.naver.com 입력
- DNS 서버에서 IP 주소 조회 (223.130.195.200)
- 해당 IP와 포트(80)로 서버에 요청
- 서버와 3-Way Handshake 진행 후 통신 시작
- 서버에서 HTML, CSS, JS 파일을 응답으로 보냄
- 브라우저가 받은 파일을 해석해 화면에 표시