Unity

[TIL] 네트워크 프로토콜 IP, TCP, UDP

unihee1 2025. 5. 16. 18:51

1. IP

컴퓨터 간 데이터가 어디에서 어디로 가야 하는지 알려주는 주소 체계를 제공하고 데이터를 목적지까지 전달한다.

패킷이라는 단위로 데이터를 나눠서 전송하며 각 패킷에는 출발지 IP, 목적지IP, 순번 등이 포함된다.

 

  • 버전
- IPv4: 32비트 주소로 현재 가장 널리 사용되고 있다.
- IPv6: 128비트 주소로 IPv4 주소 부족 문제를 해결한다.

 

  • 한계점
- 패킷들의 도착 순서가 바뀔 수 있다.
- 패킷이 유실되어도 재전송하지 않는다.
- 데이터 손상 여부만 확인하고 수정은 하지 않는다.

 

  • 사용 예시
웹사이트에 접속하면 브라우저는 서버의 Ip주소를 알아낸 후 해당 서버에 IP 패킷을 보낸다.

 


2. TCP

IP위에서 작동하며 데이터를 안전하게 순서대로 빠짐없이 전송하는 프로토콜이다.

 

  • 주요 특징
- 연결 지향(Connection-oriented): 먼저 통신 연결을 설정해야 한다 (3-Way Handshake로 연결을 설정) 

- 데이터 흐름 제어 (Flow Control): 송신 속도를 수신 측 상태에 맞게 조절한다.

- 혼잡 제어 (Congestion Control): 네트워크에 과부하가 생기지 않도록 전송 속도를 조절한다.

- 오류 제어 (Error Control): 패킷 유실이나 손상 시 재전송한다.

- 순서 보장 (Sequencing): 받은 데이터의 순서에 맞춰서 애플리케이션에 전달한다.

 

  • TCP 패킷 구조 예시
헤더 정보에는 다음과 같은 것이 포함된다.
- 포트 번호 (송신/수신)
- 시퀀스 번호 (패킷 순서)
- ACK 번호 (응답 확인)
- 플래그 (SYN, ACK, FIN 등)

 

  • 사용 예시
웹(HTTP, HTTPS)
이메일(SMTP, IMAP, POP3)
파일 전송(FTP)

3. UDP

TCP보다 빠르지만 신뢰성이 떨어지는 전송 방식이다.

 

  • 주요 특징
- 비연결형(Connectionless): TCP처럼 연결을 먼저 설정하지 않기 때문에 빠르게 전송 시작 가능.
- 오류 제어 없음: 유실된 데이터나 순서가 뒤바뀐 데이터는 무시한다.
- 경량 프로토콜: 헤더 구조가 단순해 속도가 빨라 지연 시간에 민감한 애플리케이션에 적합하다.
- 브로드캐스트 및 멀티캐스트 지원: 다수에게 동시에 데이터 전송이 가능하다.

 

  • UDP 패킷 구조
헤더 정보에는 다음과 같은 것이 포함된다.
- 송신/수신 포트 번호
- 길이
- 체크섬

 

  • 사용 예시
스트리밍(YouTube, Netflix 등)
온라인 게임 
VoIP (카카오톡 통화, Zoom, Discord 등)
DNS 요청