TCP와 UDP를 비교하여 공부하는 중에 TCP는 UDP에 비하여 오버헤드가 높다 라고 하는데 오버헤드의 의미는?
오버헤드란, 데이터를 전송할 때 실질적인 데이터 외에 추가로 발생하는 부가적인 작업이나 리소스를 뜻합니다. 여기에는 프로토콜의 제어 정보나 오류 검사, 흐름 제어 등이 포함됩니다. 오버헤드가 높다는 것은 데이터를 전송하기 위해 추가적으로 사용되는 리소스(예: 대역폭, CPU 처리, 메모리 등)가 많다는 뜻입니다.
TCP와 UDP의 경우 오버헤드의 차이는 주로 다음에서 발생합니다.
- 연결 관리
TCP는 신뢰성 있는 연결을 제공하기 위해 세션을 설정하고 관리합니다. 이 과정에서 3-way handshake라는 초기 연결 설정 단계가 필요합니다. 반면, UDP는 별도의 연결 설정 과정이 없어 오버헤드가 적습니다. - 오류 검사 및 복구
TCP는 패킷이 유실되거나 손상될 경우 재전송을 통해 데이터를 복구하고, 수신된 데이터의 순서를 맞추기 위한 기능을 포함합니다. 이로 인해 오류 검출 및 재전송에 필요한 오버헤드가 발생하게 됩니다. UDP는 이러한 기능이 없어 오버헤드가 낮지만, 데이터가 유실되더라도 복구하지 않습니다. - 흐름 제어 및 혼잡 제어
TCP는 수신 측의 상태에 따라 전송 속도를 조절하는 흐름 제어와 네트워크 상태에 따라 트래픽을 조절하는 혼잡 제어 기능을 갖추고 있습니다. 이러한 제어 작업이 TCP의 오버헤드를 높이는 요인입니다. UDP는 흐름 제어나 혼잡 제어가 없으므로 더 가볍게 동작합니다.
따라서, TCP는 신뢰성과 안정성을 위해 추가적인 기능들을 포함하고 있기 때문에 상대적으로 오버헤드가 높으며, UDP는 이러한 기능을 생략하여 오버헤드가 낮습니다
728x90