TCP vs UDP & TCP 3-way handshake

2022. 12. 29. 22:28CS

TCP vs UDP

TCP(Transmission Control Protocol: 전송 제어 프로토콜) 및 UDP(User Datagram Protocol: 사용자 데이터그램 프로토콜)는 네트워크를 통해 데이터를 전송하는 데 사용되는 두 가지 일반적인 프로토콜이다. 둘 다 인터넷 프로토콜 스택의 전송 계층에 속하며 장치 간의 종단 간 통신 설정을 담당한다. 그러나 다음과 같은 몇 가지 주요 차이점이 있다.

 

연결 지향 vs 비연결 (Connection-oriented vs Connectionless)

TCP는 연결 지향 프로토콜이다. 즉, 데이터를 전송하기 전에 두 장치 간에 안정적인 연결을 설정한다. 여기에는 연결을 설정하기 위한 3방향 핸드셰이크(3-way handshake) 프로세스와 신뢰할 수 있는 전달을 보장하기 위한 오류 검사 및 손실된 데이터의 재전송이 포함되며, 이 연결은 데이터 전송 기간 내내 유지된다. 반면 UDP는 연결이 없는 프로토콜이므로 데이터를 전송하기 전에 가상 연결을 설정하지 않는다. 대신 데이터그램이라는 데이터 패킷을 별도의 메커니즘 없이 목적지(대상 장치)로 보낸다.

 

전달 보장 (Delivery guarantee)

TCP는 연결 지향 특성으로 인해 전송하는 데이터에 대한 전달을 보장한다. 전송 중에 데이터가 손실되면 TCP는 자동으로 데이터를 재전송하여 대상 장치에서 모든 데이터를 수신하도록 한다. 반면 UDP는 전송을 보장하지 않으며 손실된 데이터를 재전송하지 않는다.

속도 (Speed)

TCP는 연결을 설정하고 안정적인 데이터 전달을 보장하므로 일반적으로 UDP보다 느리다. 연결이 없고 오류 검사나 재전송에 관심이 없는 UDP가 더 빠르고 효율적이다.

사용 사례 (Use cases)

안정성과 오류 검사 기능으로 인해 TCP는 일반적으로 파일이나 웹 페이지와 같은 민감하거나 중요한 데이터를 전송하는 데 사용된다. UDP는 온라인 게임이나 비디오 스트리밍과 같이 짧은 대기 시간과 빠른 속도가 필요한 실시간 응용 프로그램에 자주 사용된다.

전반적으로 TCP와 UDP 사이의 선택은 응용 프로그램의 요구 사항과 데이터 전송 요구 사항에 따라 다르다. 두 프로토콜 모두 고유한 장점이 있으며, 다양한 사용 사례에 적합할 수 있다.

 

TCP 3-way handshake

TCP 3방향 핸드셰이크는 TCP를 사용하여 두 장치 간에 안정적인 연결을 설정하는 데 사용되는 프로세스로, 두 장치 간에 메시지를 교환하여 연결을 협상하고 설정하는 3단계 프로세스이다.

 

다음은 TCP 3방향 핸드셰이크의 작동 방식이다.

 

1단계 SYN

클라이언트는 연결을 시작하기 위해 서버에 SYN(동기화) 메시지라는 메시지를 보낸다. SYN 메시지에는 클라이언트가 데이터를 보내는 데 사용할 초기 시퀀스 번호가 포함되어 있다.

2단계 SYN-ACK

서버는 SYN 메시지 수신을 확인하고 자체 초기 시퀀스 번호를 포함하는 SYN-ACK(동기화-확인) 메시지로 응답한다.

3단계 ACK

클라이언트는 SYN-ACK 메시지 수신을 확인하는 ACK(확인) 메시지로 응답한다. 이 시점에서 연결이 설정되고 클라이언트와 서버가 서로 데이터를 보내기 시작할 수 있다.

TCP 3방향 핸드셰이크는 두 장치가 통신할 준비가 되어 있고 데이터가 교환되기 전에 연결이 적절하게 설정되도록 하기 때문에 TCP 프로토콜의 중요한 부분이다. 또한 오류를 방지하고 연결의 신뢰성을 보장하는 데 도움이 된다.

 

요약

TCP와 UDP는 인터넷을 통해 데이터를 전송하는 데 사용되는 두 가지 프로토콜이다. TCP는 오류 검사 및 재전송 메커니즘을 포함하는 연결 지향 프로토콜인 반면 UDP는 이러한 기능이 없는 연결 없는 프로토콜이다. TCP 3방향 핸드셰이크는 TCP를 사용하여 데이터를 전송하기 전에 두 장치 간에 가상 연결을 설정하는 데 사용되는 프로세스이다.

반응형