네트워크/네트워크 기초

[네트워크 기초] 3. IP주소, TCP/IP, UDP

라이튼 2025. 1. 6. 23:13

이전글

 

[네트워크 기초] 2. 클라이언트, P2P, 서버

이전글 [네트워크 기초] 1. 네트워크와 웹네트워크와 웹  과거 초창기 컴퓨터는 다른 컴퓨터와 통신하지 않았습니다. 그저 컴퓨터 내부에 존재하는 프로그램을 혼자서 실행할 뿐이었습니다. 

kwjdnjs.tistory.com

 

IP주소, TCP/IP, UDP

 지난 글에서 클라이언트와 서버에 대해 알아보았습니다. 이번 글에서는 서버와 클라이언트가 어떻게 데이터를 주고받는지에 대해 알아보겠습니다.

 

1. IP 주소

 클라이언트와 서버가 데이터를 주고받기 위해서는 주소가 필요합니다. 현실에서 택배를 보낼 때 주소가 필요한 것과 같은 원리입니다. 단지 여기에서의 택배는 물리적인 것이 아니라 전자적인 데이터일 뿐입니다.

 

 인터넷의 세계에서 서로의 데이터를 주고받기 위한 주소를 IP 주소라고 합니다. IP 주소는 다음과 같이 255까지의 3자리 숫자 4개를 이용하는 32비트 크기의 IPv4와 16진수 8자리로 표현하는 128비트 크기의 IPv6가 있습니다.

 

IPv4: 221.23.222.222

IPv6: 2606:2800:021f:cb07:6820:80da:af6b:8b2c

 

 IPv4가 상대적으로 크기가 작다 보니 IP 주소 고갈을 우려하여 크기가 더 큰 IPv6 표준이 등장했지만, 아직 범용적으로 사용되고 있지는 않습니다.

 

2. TCP

 이제 주소를 이용해 데이터를 보낼 차례입니다. 데이터를 보내기 위한 표준이 여러 개 존재하는데, 이번 글에서는 주로 사용되는 TCP와 UDP에 대해 알아보겠습니다.

 

 먼저 TCP입니다. TCP는 웹에서 자주 쓰이는 표준으로, 서버와 클라이언트가 우선 연결을 한 뒤 데이터를 주고받는다는 특징이 있습니다. 보통 IP까지 함께 묶어 TCP/IP로 부릅니다.

 

 TCP로 데이터는 보내려면 먼저 서버와 클라이언트의 연결을 생성해야 합니다. 이때 3-way 핸드셰이크라는 방식을 이용합니다. 실제로 3-way 핸드셰이크로 연결이 진행되는 과정을 간단하게 정리해 보겠습니다.

 

 먼저 클라이언트가 연결을 생성하기 위해 서버로 SYN이라는 메시지를 보냅니다. 서버는 클라이언트로 SYN을 받았다는 의미의 SYN-ACK을 보냅니다. 클라이언트는 다시 서버로 SYN-ACK을 받았다는 ACK을 보내는데, 이 과정을 거치면 연결이 완성됩니다. SYN, SYN-ACK, ACK의 3단계를 거치기 때문에 3-way 핸드셰이크라고 불립니다. 연결에 성공하면 본격적으로 데이터를 전송하기 시작합니다.

 

 

 참고로 SYN은 synchronize, ACK은 acknowledgment의 약자입니다.

 

 데이터 전송이 끝나 연결을 종료할 때에는 FIN, ACK, FIN, ACK의 4-way 핸드셰이크를 사용합니다.

 

 

3. UDP

 데이터를 전송할 때 꼭 모든 데이터를 완벽하게 주고받을 필요가 없는 경우가 있습니다. 예를 들어 동영상을 전송하는 경우 일부 한 두 개 픽셀의 데이터 손실이 발생한다고 해도 영상을 보는 것에는 큰 문제가 없습니다. 이 경우 데이터 손실로 데이터를 다시 요청하는 등 데이터를 완벽하게 검증하며 주고받는 것이 아니기 때문에, 클라이언트와 서버가 꼭 연결을 해야 할 필요는 없습니다. 이때 사용되는 것이 UDP입니다.

 

 UDP는 TCP와는 다르게 서버와 클라이언트 사이의 연결 없이 데이터를 전송하기 위한 표준입니다. 즉, 핸드셰이크 등 연결을 위한 과정을 생략하고 정해진 IP 주소로 데이터를 계속 보내기만 합니다. 일부 발생하는 데이터 손실을 무시하고 빠른 속도를 지향하기 때문에, 온라인 게임이나 스트리밍 서비스 등에 주로 사용됩니다.

 

 

 지금까지 IP 주소가 무엇인지, TCP와 UDP를 이용하여 어떻게 웹 페이지 등의 데이터를 주고받을 수 있는지 간단하게 알아봤습니다. 감사합니다.